Projektowanie hierarchiczne Mariusz Rawski
|
|
- Mieczysław Żurek
- 6 lat temu
- Przeglądów:
Transkrypt
1 CAD Projektowanie hierarchiczne
2 Zamek elektroniczny: Elektroniczny zamek kod 4 cyfrowy kod wprowadzony z klawiatury ready sygnalizacja gotowości pracy, rozpoczęcie wprowadzania kodu zmienia ten sygnał na nieaktywny open sygnał otwarcia zamka Wprowadzenie poprawnego kodu otwiera zamek na określony czas Sterowanie klawiaturą numeryczna A B C * 0 # D open ready
3 Elektroniczny zamek schemat blokowy Kontroler klawiatury: podaje sygnał naciśnięcia klawisza podaje kod naciśniętego klawisza Wykrywanie sekwencji: analizuje kody klawiszy i wykrywa sekwencje kodową otwierającą zamek Układ czasowy: odmierza określony czas po otwarciu zamka i wysyła sygnał zamknięcia zamka A B C * 0 # D Kontroler klawiatury kod klawisza naciśnięty zamknij Wykrywanie sekwencji Układ czasowy otwarty open ready
4 Kontroler klawiatury: Kontroler klawiatury podanie sygnału aktywnego na linie kolejnych wierszy sprawdzanie linii kolumn w celu wykrycia sygnału aktywnego pochodzącego ze zwarcia styków klawisza col[ ] A B C * 0 # D row[ ] Kontroler klawiatury key key_pulse
5 Kontroler klawiatury schemat blokowy Kontroler klawiatury: licznik generuje liczby 4 bitowe, 2 najstarsze bity sterują dekoderem, wystawiając sygnał aktywny na kolejne linie wierszy klawiatury 2 młodsze bity sterują multiplekserem przeglądając kolejne linie kolumn klawiatury wystąpienie na wyjściu multipleksera sygnału aktywnego sygnalizuje naciśnięcie klawisza zatrzymuje licznik kodem klawisza jest wartość licznika może się okazać konieczne przekodowanie col[ ] A B row[ ] q[1..0] q[3..0] key C * 0 # D q[3..2] q[3..0] Licznik 4-bit stop key_pulse
6 Sterownik klawiatury problemy Naciśnięcie dwóch klawiszy jednocześnie może doprowadzić do zwarcia wyjść row[] co może spowodować uszkodzenie układu Naciśnięcie klawisza wywołuje drgania styków, które generują sygnał prostokątny mogący zaburzać pracę układu
7 Problem 1 koncepcja Rozwiązanie polega na zastosowaniu buforów izolujących na wyjściach row[] Do tego celu nadają się bramki trójstanowe TRI umożliwiają one galwaniczną izolacje wyjść nieaktywnych Zmieniona zostanie koncepcja realizacji klawiatura będzie skanowana stanem niskim VCC col[ ] A B row[ ] q[1..0] q[3..0] key C * 0 # D q[3..2] q[3..0] Licznik 4-bit stop key_pulse
8 Problem 1 realizacja architecture data_flow of kb_ctrl_pckg_tri is signal key_pulse_i : std_logic; signal q_i : std_logic_vector(3 downto 0); begin signal tri_buf_oe : std_logic_vector(3 downto 0); kb_cnt : cnt_4 port map( rst => rst, clk => clk, ena => key_pulse_i, value => q_i ); kb_mux : mux_2x4 port map( q_i(1 downto 0), col, key_pulse_i ); Sygnały sterujące buforami trójstanowymi Ponieważ skanowanie odbywa się logicznym 0 zmiana koncepcji licznik zatrzymywany jest gdy key_pulse_i = 0 wyjście key_pulse jest zanegowanym sygnałem key_pulse_i kb_dec : dec_2x4 port map( a => q_i(3 downto 2), o => tri_buf_oe ); row(0) <= '0' when tri_buf_oe(0) = '1' else 'Z'; row(1) <= '0' when tri_buf_oe(1) = '1' else 'Z'; row(2) <= '0' when tri_buf_oe(2) = '1' else 'Z'; row(3) <= '0' when tri_buf_oe(3) = '1' else 'Z'; Wyjścia row(i) sterowane są przez bufory trójstanowe q <= q_i; key_pulse <= not key_pulse_i; end data_flow;
9 Problem 1 działanie Naciśnięcie klawisza row = 0, col = 2 Skanowanie wiersz row(0) stanem niskim, Pozostałe wiersze stan wysokiej impedancji
10 Problem 2 koncepcja Naciśnięcie klawisza wywołuje drgania styków, które generują sygnał prostokątny mogący zaburzać pracę układu. W celu usunięcia tego problemu należy zastosować moduł usuwający niepożądane drgania. Można to zrobić projektując układ akceptujący sygnał trwający dostatecznie długo.
11 Problem 2 rozwiązanie library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity debounce is port( clk : in std_logic; in_sig : in std_logic; pulse : out std_logic ); end debounce; architecture data_flow of debounce is signal counter : unsigned(7 downto 0); constant all_ones : unsigned(7 downto 0) := (others =>'1'); constant pulse_value : unsigned(7 downto 0) := (0 => '0', others => '1'); begin process(clk) begin if in_sig = '0' then counter <= (others => '0'); elsif rising_edge(clk) then if counter /= all_ones then counter <= counter + 1; else counter <= counter; end if; end if; end process; pulse <= '1' when (counter = pulse_value) else '0'; end data_flow; Na wejściu in_sig pojawia się sygnał z drgających styków przełącznika. Na wyjściu pulse pojawi się wartość 1 na czas jednego okresu zegara, tylko wtedy gdy sygnał wejściowy będzie stabilny przez dostatecznie długi czas. Stała reprezentująca wektor samych jedynek (MAX) Stała reprezentująca wektor z jednym zerem na najmłodszym bicie (MAX 1) Licznik jest zerowany ilekroć sygnał wejściowy jest równy 0. W czasie, gdy sygnał wejściowy jest równy 1 liczni odlicza do maksymalnej wartości i się zatrzymuje. Na wyjściu pojawia się 1, gdy licznik doliczy do wartości MAX - 1
12 Problem 2 działanie Zbyt krótkie sygnały nie są akceptowane Tylko dostatecznie długi sygnały są akceptowane Częstotliwość zegara taktującego moduł filtrujący drgania powinien być odpowiednio dobrany
13 Problem 2 realizacja library ieee; architecture data_flow of kb_ctrl_pckg_tri_deb is signal key_pulse_i : std_logic; signal q_i : std_logic_vector(3 downto 0); signal tri_buf_oe : std_logic_vector(3 downto 0); component debounce is port( clk : in std_logic; in_sig : in std_logic; pulse : out std_logic ); end component; Deklaracja komponentu można umieścić w pakiecie begin row(0) <= '0' when tri_buf_oe(0) = '1' else 'Z'; row(1) <= '0' when tri_buf_oe(1) = '1' else 'Z'; row(2) <= '0' when tri_buf_oe(2) = '1' else 'Z'; row(3) <= '0' when tri_buf_oe(3) = '1' else 'Z'; kb_debounce : debounce port map( clk => clk, in_sig => not key_pulse_i, pulse => key_pulse ); Wpięcie modułu filtrującego drgania pomiędzy sygnał key_pulse_i a wyjście key_pulse q <= q_i; end data_flow;
14 Sterownik klawiatury - wyniki Zbyt krótkie naciśnięcie (drganie) nie jest akceptowane Tylko dostatecznie długie naciśnięcie jest akceptowane Fitter Summary Top-level Entity Name kb_ctrl_pckg_tri_deb Family Stratix Device EP1S10B672C6 Total logic elements 23 / 10,570 ( < 1 % ) Total pins 15 / 346 ( 4 % ) Total virtual pins 0 Total memory bits 0 / 920,448 ( 0 % ) DSP block 9-bit elements 0 / 48 ( 0 % ) Total PLLs 0 / 6 ( 0 % ) Total DLLs 0 / 2 ( 0 % ) Fitter Resource Utilization by Entity Compilation Hierarchy Node Logic Cells LC Registers kb_ctrl_pckg_tri_deb 23 (0) 12 cnt_n:kb_cnt 5 (5) 4 debounce:kb_debounce 12 (12) 8 dec_2x4:kb_dec 4 (4) 0 mux_2x4:kb_mux 2 (2) 0
15 Wykrywanie sekwencji Wykrywanie sekwencji: analizuje kody klawiszy i wykrywa sekwencje kodową otwierającą zamek sekwencja kodowa oznaczona jako P1 P2 P3 P4! P1! P2! P3! P4 P1 P2 P3 ready S1 S2 S3 open P4
16 library ieee; use ieee.std_logic_1164.all; Wykrywanie sekwencji realizacja (1) entity sequence_search is port( clk : in std_logic; close : in std_logic; valid : in std_logic; code : in std_logic_vector(3 downto 0); ready : out std_logic; unlock : out std_logic ); end; Interfejs układu: close sygnał zamknięcia zamka valid sygnał naciśnięcia klawisza code numer klawisza redy sygnał gotowości unlock sygnał otwarcia zamka architecture data_flow of sequence_search is constant P1 : std_logic_vector(3 downto 0) := "0100"; constant P2 : std_logic_vector(3 downto 0) := "1000"; constant P3 : std_logic_vector(3 downto 0) := "1100"; constant P4 : std_logic_vector(3 downto 0) := "0100"; type STATE_TYPE is (s_ready, s1, s2, s3, s_unlock); signal state_reg, state_next : STATE_TYPE; begin process (clk, close) begin if (close = '1') then state_reg <= s_ready; elsif rising_edge(clk) then state_reg <= state_next; end if; end process; Stałe opisujące kod otwarcia zamka Stany automatu Sygnał close działa jak reset. Wprowadza automat w stan początkowy zamyka zamek.
17 Wykrywanie sekwencji realizacja (2) process (state_reg, valid, code) begin ready <= '0'; unlock <= '0'; case state_reg is when s_ready => ready <= '1'; if (valid = '1') then if (code = P1) then state_next <= s1; else state_next <= s_ready; end if; else state_next <= s_ready; end if; when s1 => if (valid = '1') then if (code = P2) then state_next <= s2; else state_next <= s_ready; end if; else state_next <= s1; end if; Domyślne wartości sygnałów wyjściowych Zmiana stanu następuje tylko wtedy, gdy wejście valid jest aktywne zaznaczając, że kod klawisza podany do automatu jest kodem naciśniętego klawisza Po wejściu do stanu s_unlock automat otwiera zamek i pozostaje w tym stanie do momentu, gdy sygnał close nie zresetuje automatu zaykając zamek when s2 => if (valid = '1') then if (code = P3) then state_next <= s3; else state_next <= s_ready; end if; else state_next <= s2; end if; when s3 => if (valid = '1') then if (code = P4) then state_next <= s_unlock; else state_next <= s_ready; end if; else state_next <= s3; end if; when s_unlock => unlock <= '1'; state_next <= s_unlock; end case; end process; end data_flow;
18 Wykrywanie sekwencji - wyniki Kody skanowanych klawiszy Klawisz naciśnięty Zamek otwarty Zamknięcie zamka Fitter Summary Top-level Entity Name sequence_search Family Stratix Device EP1S10B672C6 Total logic elements 11 / 10,570 ( < 1 % ) Total pins 9 / 346 ( 3 % ) Total virtual pins 0 Total memory bits 0 / 920,448 ( 0 % ) DSP block 9-bit elements 0 / 48 ( 0 % ) Total PLLs 0 / 6 ( 0 % ) Total DLLs 0 / 2 ( 0 % )
19 Wykrywanie sekwencji problemy Automat ten pozwala na bardzo łatwe złamanie kodu zamka Automat po podaniu cyfry, która nie występuje w kodzie wraca do stanu początkowego Wystarczy niewielka liczba prób, aby odgadnąć kod! P1! P2! P3! P4 P1 P2 P3 ready S1 S2 S3 open P4
20 Wykrywanie sekwencji wersja bezpieczniejsza (1) Wystarczy wprowadzić niewielkie modyfikacje do grafu automatu, aby znacznie utrudnić złamanie kodu w3 w2 w5! P1 w1! P2 w4! P3 w6! P4 P1 P2 P3 ready S1 S2 S3 open P4
21 Wykrywanie sekwencji wersja bezpieczniejsza (2) architecture data_flow of sequence_search is type STATE_TYPE is (s_ready, s1, s2, s3, w1, w2, w3, w4, w5, w6, s_unlock); signal state_reg, state_next : STATE_TYPE; begin process (state_reg, valid, code) begin ready <= '0'; unlock <= '0'; case state_reg is when s_ready => ready <= '1'; if (valid = '1') then if (code = P1) then state_next <= s1; else state_next <= w1; end if; else state_next <= s_ready; end if; when s1 => if (valid = '1') then if (code = P2) then state_next <= s2; else state_next <= w4; end if; else state_next <= s1; end if; Nowe stany automatu Gdy kod klawisza nie jest prawidłowy przechodzimy do dodatkowych stanów zamiast do stanu s_ready when s2 => if (valid = '1') then if (code = P3) then state_next <= s3; else state_next <= w6; end if; else state_next <= s2; end if; when s3 => if (valid = '1') then if (code = P4) then state_next <= s_unlock; else state_next <= s_ready; end if; else state_next <= s3; end if;
22 Wykrywanie sekwencji - wyniki Błędny kod Stany wczytujące kolejne kody Fitter Summary Top-level Entity Name sequence_search Family Stratix Device EP1S10B672C6 Total logic elements 13 / 10,570 ( < 1 % ) Total pins 9 / 346 ( 3 % ) Total virtual pins 0 Total memory bits 0 / 920,448 ( 0 % ) DSP block 9-bit elements 0 / 48 ( 0 % ) Total PLLs 0 / 6 ( 0 % ) Total DLLs 0 / 2 ( 0 % )
23 Wykrywanie sekwencji kodowanie when w1 => library ieee; use ieee.std_logic_1164.all; entity sequence_search_modif_cod is port( clk : in std_logic; close : in std_logic; valid : in std_logic; code : in std_logic_vector(3 downto 0); ready : out std_logic; unlock : out std_logic ); end sequence_search_modif_cod; architecture data_flow of sequence_search_modif_cod is constant P1: std_logic_vector(3 downto 0) := "0100"; constant P2: std_logic_vector(3 downto 0) := "1000"; constant P3: std_logic_vector(3 downto 0) := "1100"; constant P4: std_logic_vector(3 downto 0) := "0100"; Narzucenie kodowania użytkownika. Kodowanie kolejnymi kodami NKB. Fitter Summary Top-level Entity Name Family Device sequence_search_modif_cod Stratix EP1S10B672C6 Total logic elements 20 / 10,570 ( < 1 % ) Total pins 9 / 346 ( 3 % ) Total virtual pins 0 Total memory bits 0 / 920,448 ( 0 % ) DSP block 9-bit elements 0 / 48 ( 0 % ) Total PLLs 0 / 6 ( 0 % ) Total DLLs 0 / 2 ( 0 % ) constant s_ready : std_logic_vector(3 downto 0) := "0000"; constant s1 : std_logic_vector(3 downto 0) := "0001"; constant s2 : std_logic_vector(3 downto 0) := "0010"; constant s3 : std_logic_vector(3 downto 0) := "0011"; constant w1 : std_logic_vector(3 downto 0) := "0100"; constant w2 : std_logic_vector(3 downto 0) := "0101"; constant w3 : std_logic_vector(3 downto 0) := "0110"; constant w4 : std_logic_vector(3 downto 0) := "0111"; constant w5 : std_logic_vector(3 downto 0) := "1000"; constant w6 : std_logic_vector(3 downto 0) := "1001"; constant s_unlock : std_logic_vector(3 downto 0) := "1010"; signal state_reg, state_next : std_logic_vector(3 downto 0);
24 Wykrywanie sekwencji minimalizacja stanów Automat ten nie jest automatem minimalnym S\key OK. WRONG READY OPEN Stany identyczne można zastąpić jednym stanem np. n1 ready s1 w1 1 0 s1 s2 w4 0 0 s2 s3 w5 0 0 s3 open ready 0 0 open open open 0 1 w1 w2 w2 0 0 w2 w3 w3 0 0 w3 ready ready 0 0 w4 w5 w5 0 0 w5 ready ready 0 0 w6 ready ready 0 0 Jeśli stany w3, w5 i w6 zostaną zastąpione stanem n1 to stany w2 i w4 też będą identyczne można zastąpić jednym stanem np. n2
25 Wykrywanie sekwencji minimalizacja stanów Automat ten jest automatem minimalnym S\key OK. WRONG READY OPEN ready s1 w1 1 0 s1 s2 n2 0 0 s2 s3 n1 0 0 s3 open ready 0 0 open open open 0 1 w1 w2 w2 0 0 n2 n1 n1 0 0 w1 n2 n1 n1 ready ready 0 0 ready S1 S2 S3 ready! P1! P2! P3 P1 P2 P3! P4 open P4 25
26 Automat minimalny wyniki Fitter Summary Top-level Entity Name sequence_search_min Family Stratix Device EP1S10B672C6 Total logic elements 14 / 10,570 ( < 1 % ) Total pins 9 / 346 ( 3 % ) Total virtual pins 0 Total memory bits 0 / 920,448 ( 0 % ) DSP block 9-bit elements 0 / 48 ( 0 % ) Total PLLs 0 / 6 ( 0 % ) Total DLLs 0 / 2 ( 0 % ) Liczba komórek się zwiększyła pomimo mniejszej liczby stanów. Dowodzi to, że realizacja automatów jest złożonym procesem i trudno jest podać optymalny sposób postępowania.
27 Automat minimalny kodowanie library ieee; use ieee.std_logic_1164.all; entity sequence_search_modif_cod is port( clk : in std_logic; close : in std_logic; valid : in std_logic; code : in std_logic_vector(3 downto 0); ready : out std_logic; unlock : out std_logic ); end sequence_search_modif_cod; architecture data_flow of sequence_search_modif_cod is constant P1: std_logic_vector(3 downto 0) := "0100"; constant P2: std_logic_vector(3 downto 0) := "1000"; constant P3: std_logic_vector(3 downto 0) := "1100"; constant P4: std_logic_vector(3 downto 0) := "0100"; Narzucenie kodowania użytkownika dla automatu zminimalizowanego. Kodowanie kolejnymi kodami NKB. Fitter Summary Top-level Entity Name Family Device sequence_search_min_cod Stratix EP1S10B672C6 Total logic elements 13 / 10,570 ( < 1 % ) Total pins 9 / 346 ( 3 % ) Total virtual pins 0 Total memory bits 0 / 920,448 ( 0 % ) DSP block 9-bit elements 0 / 48 ( 0 % ) Total PLLs 0 / 6 ( 0 % ) Total DLLs 0 / 2 ( 0 % ) constant s_ready : std_logic_vector(2 downto 0) := "000"; constant s1 : std_logic_vector(2 downto 0) := "001"; constant s2 : std_logic_vector(2 downto 0) := "010"; constant s3 : std_logic_vector(2 downto 0) := "011"; constant w1 : std_logic_vector(2 downto 0) := "100"; constant n1 : std_logic_vector(2 downto 0) := "101"; constant n2 : std_logic_vector(2 downto 0) := "110"; constant s_unlock : std_logic_vector(2 downto 0) := "111"; signal state_reg, state_next : std_logic_vector(3 downto 0);
28 Kodowanie stanów Encoding Type: One-Hot State Machine - sequence_search_min state_reg Name q7 q6 q5 q4 q3 q2 q1 q0 state_reg.s_ready state_reg.s state_reg.s state_reg.s state_reg.w state_reg.n state_reg.n state_reg.s_unlock Fitter Summary Top-level Entity Name sequence_search_min Family Stratix Device EP1S10B672C6 Total logic elements 14 / 10,570 ( < 1 % ) Total pins 9 / 346 ( 3 % ) Total virtual pins 0 Total memory bits 0 / 920,448 ( 0 % ) DSP block 9-bit elements 0 / 48 ( 0 % ) Total PLLs 0 / 6 ( 0 % ) Total DLLs 0 / 2 ( 0 % ) Encoding Type: Custom State Machine - sequence_search_min_cod state_reg Name q2 q1 q0 state_reg.s_ready state_reg.s state_reg.s state_reg.s state_reg.w state_reg.n state_reg.n state_reg.s_unlock Fitter Summary Top-level Entity Name sequence_search_min_cod Family Stratix Device EP1S10B672C6 Total logic elements 13 / 10,570 ( < 1 % ) Total pins 9 / 346 ( 3 % ) Total virtual pins 0 Total memory bits 0 / 920,448 ( 0 % ) DSP block 9-bit elements 0 / 48 ( 0 % ) Total PLLs 0 / 6 ( 0 % ) Total DLLs 0 / 2 ( 0 % )
29 Zaawansowane metody syntezy logicznej Metoda minimalizacji stanów automatu pozwoliła zrealizować układ przy wykorzystaniu mniejszej ilości zasobów struktury programowalnej bez straty szybkości działania, nawet ją zwiększając. Jednakże istnieją inne, bardziej zaawansowane algorytmy syntezy logicznej umożliwiające realizację projektu w taki sposób, aby jak najlepiej wykorzystać cechy struktury programowalnej, w której ten projekt zostanie umieszczony. Dekompozycja funkcjonalna jest metodą syntezy logicznej szczególnie dobrze przystosowaną do realizacji funkcji w strukturach FPGA, do których zaliczają się układy z rodziny FLEX10K czy Stratix.
30 Wykrywanie sekwencji inne sposoby realizacji Automat można przedstawić jako rejestr oraz blok kombinacyjny funkcja generująca następne wartości rejestru i wartości wyjść. Stan automatu Wejścia Wejściami funkcji są wyjścia rejestru reprezentujące stan bieżący oraz wejścia układu Wyjściami funkcji są bity reprezentujące stan następny i wyjścia układu Funkcja wzbudzeń i wyjść automatu Rejestr
31 Blok kombinacyjny.i 8.o 5.ilb state_reg(2) state_reg(1) state_reg(0) valid code(3) code(2) code(1) code(0).ob state_next(2) state_next(1) state_next(0) ready open Stan automatu Wejścia Funkcja wzbudzeń i wyjść automatu Rejestr e
32 Automat inne sposoby realizacji library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity sequence_search_komb is port( clk : in std_logic; close : in std_logic; valid : in std_logic; code : in std_logic_vector(3 downto 0); ready : out std_logic; unlock : out std_logic ); end sequence_search_komb; state_next in_sig Część kombinacyjna out_sig code valid architecture data_flow of sequence_search_komb is state_reg ready unlock signal in_sig : std_logic_vector(7 downto 0); signal out_sig : std_logic_vector(4 downto 0); signal state_reg, state_next : std_logic_vector(2 downto 0); begin process (clk, close) begin if (close = '1') then state_reg <= "000"; elsif rising_edge(clk) then state_reg <= state_next; end if; end process; in_sig <= (state_reg & valid & code); state_next <= out_sig(4 downto 2); ready <= out_sig(1); unlock <= out_sig(0); Sygnały dla celów podłączenia do części kombinacyjnej Opis rejestru Podłączenie do części kombinacyjnej
33 Automat inne sposoby realizacji out_sig <= "00010" when (std_match(in_sig," ")) else "00110" when (std_match(in_sig," ")) else "10110" when (std_match(in_sig," ")) else "10110" when (std_match(in_sig," ")) else "10110" when (std_match(in_sig," ")) else "10110" when (std_match(in_sig," ")) else "00100" when (std_match(in_sig," ")) else "01000" when (std_match(in_sig," ")) else "11000" when (std_match(in_sig," ")) else "11000" when (std_match(in_sig," ")) else "11000" when (std_match(in_sig," ")) else "11000" when (std_match(in_sig," ")) else "01000" when (std_match(in_sig," ")) else "01100" when (std_match(in_sig," ")) else "11100" when (std_match(in_sig," ")) else "11100" when (std_match(in_sig," ")) else "11100" when (std_match(in_sig," ")) else "11100" when (std_match(in_sig," ")) else "01100" when (std_match(in_sig," ")) else "10000" when (std_match(in_sig," ")) else "00000" when (std_match(in_sig," ")) else "00000" when (std_match(in_sig," ")) else "00000" when (std_match(in_sig," ")) else "00000" when (std_match(in_sig," ")) else "10001" when (std_match(in_sig," ")) else "10100" when (std_match(in_sig," ")) else "11000" when (std_match(in_sig," ")) else "11000" when (std_match(in_sig," ")) else "11100" when (std_match(in_sig," ")) else "11100" when (std_match(in_sig," ")) else "00000" when (std_match(in_sig," ")) else "-----"; end data_flow; Opis części kombinacyjnej
34 Wykrywanie sekwencji - wyniki Najlepsze rozwiązanie! Fitter Summary Top-level Entity Name sequence_search_komb Family Stratix Device EP1S10F484C5 Total logic elements 8 / 10,570 ( < 1 % ) Total pins 9 / 336 ( 3 % ) Total virtual pins 0 Total memory bits 0 / 920,448 ( 0 % ) DSP block 9-bit elements 0 / 48 ( 0 % ) Total PLLs 0 / 6 ( 0 % ) Total DLLs 0 / 2 ( 0 % ) Dużo zależy od sposobu opisu. Wysoki poziom abstrakcji może powodować gorszą jakość realizacji
35 Tablica przejść-wyjść podejście drugie Stosując dodatkowe narzędzia CAD można poddać optymalizacji blok kombinacyjny i dopiero wtedy wykorzystać go w systemie CAD Należy wyniki optymalizacji zapisać w formacie akceptowalnym przez system CAD może VHDL Wykorzystane zostanie narzędzie akademickie do syntezy logicznej
36 Narzędzia uniwersyteckie code valid in_sig state_next out_sig state_reg ready unlock
37 Automat dekompozycja architecture data_flow of sequence_search_komb_dek is signal g1_2, g1_1 : std_logic; signal block1_1_in : std_logic_vector(1 to 4); signal block2_1_in : std_logic_vector(1 to 3); signal block3_1_in : std_logic_vector(1 to 4); signal block4_1_in : std_logic_vector(1 to 6); signal block4_2_in : std_logic_vector(1 to 6); signal block5_1_in : std_logic_vector(1 to 3); signal block5_2_in : std_logic_vector(1 to 3); Sygnały do połączenia bloków dekompozycji signal state_reg, state_next : std_logic_vector(2 downto 0); begin process (clk, close) begin if (close = '1') then state_reg <= "000"; elsif rising_edge(clk) then state_reg <= state_next; end if; end process; block1_1_in <= state_reg(2) & state_reg(1) & state_reg(0) & valid; block1_1: process (block1_1_in) begin case block1_1_in is when "0000" => state_next(0) <= '0'; when "0001" => state_next(0) <= '1'; when "1110" => state_next(0) <= '1'; when "1111" => state_next(0) <= '0'; when others => state_next(0) <= '0'; end case; end process block1_1; Jeden z procesów opisujących bloki dekompozycji
38 Wykrywanie sekwencji dekompozycja Fitter Summary Top-level Entity Name sequence_search_komb_dek Family Stratix Device EP1S10F484C5 Total logic elements 8 / 10,570 ( < 1 % ) Total pins 9 / 336 ( 3 % ) Total virtual pins 0 Total memory bits 0 / 920,448 ( 0 % ) DSP block 9-bit elements 0 / 48 ( 0 % ) Total PLLs 0 / 6 ( 0 % ) Total DLLs 0 / 2 ( 0 % ) Nie jest lepiej! Po co zadawać sobie trud użycia narzędzia akademickiego? Ten przykład jest niewielki. Dla większych przykładów wykorzystanie narzędzi akademickich bardzo często prowadzi do lepszych wyników
39 Wykorzystanie specjalizowanych bloków pamięciowych Struktury programowalne posiadają różnorodne mechanizmy pozwalające efektywniej realizować urządzenia cyfrowe. Jednym z takich mechanizmów są matryce EAB (Embedded Array Block) Mogą być wykorzystane do realizacji pamięci RAM, ROM, buforów Można przy pomocy tych bloków realizować logikę użytkownika I/O Element (IOE) IOE IOE IOE IOE Embedded Array Block IOE IOE IOE IOE IOE IOE Fast Track Interconnect IOE IOE Logic Element (LE) IOE IOE Embedded Array Block Logic Array Block (LAB) IOE IOE IOE IOE IOE IOE Logic Array
40 Sposób realizacji Wymagana pojemność pamięci = 2 (m+n) (n + y), gdzie m + n liczba bitów adresowych, a n + y długość słowa, zaś m liczba wejść automatu n liczba bitów kodujących stany y liczba wyjść X m n Register (m + n) ROM F y Q
41 Realizacja na pamięci ROM architecture data_flow of sequence_search_rom is type ROM_ARRAY is array(0 to 255) of std_logic_vector(4 downto 0); signal ROM : ROM_ARRAY := ( "00010", "00010", "00010", "00010", "00010", "00010", "00010", "00010", "00010", "00010", "00010", "00010", "00010", "00010", "00010", "00010", "11100", "11100", "11100", "11100", "11100", "11100", "11100", "11100", "00000", "00000", "00000", "00000", "00000", "00000", "00000", "00000", "00000", "00000", "00000", "00000", "00000", "00000", "00000", "00000" ) ; Deklaracja pamięci ROM signal in_sig : std_logic_vector(7 downto 0); signal out_sig : std_logic_vector(4 downto 0); signal state_reg, state_next : std_logic_vector(2 downto 0); begin process (clk) begin if rising_edge(clk) then out_sig <= ROM(to_integer(unsigned(in_sig))) ; end if; end process; Proces opisujący działanie pamięci ROM in_sig ready unlock <= (out_sig(4 downto 2) & valid & code) when close = '0' else " "; <= out_sig(1); <= out_sig(0); end data_flow;
42 Wykrywanie sekwencji dekompozycja Wykorzystanie pamięci spowolniło układ Fitter Summary Top-level Entity Name Family Device sequence_search_rom Stratix EP1S10F484C5 Total logic elements 8 / 10,570 ( < 1 % ) Total pins 22 / 336 ( 7 % ) Total virtual pins 0 Total memory bits 1,280 / 920,448 ( < 1 % ) DSP block 9-bit elements 0 / 48 ( 0 % ) Total PLLs 0 / 6 ( 0 % ) Ale zajmuje 8 komórek więc Total DLLs 0 / 2 ( 0 % ) nic nie zyskaliśmy. Znowu powodem jest to, że jest to mały przykład
43 Realizacja na pamięci ROM LPM library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; library lpm; use lpm.lpm_components.all; architecture data_flow of sequence_search_rom is Wykorzystanie biblioteki LPM signal in_sig : std_logic_vector(7 downto 0); signal out_sig : std_logic_vector(4 downto 0); signal state_reg, state_next : std_logic_vector(2 downto 0); begin process (clk, close) begin if (close = '1') then state_reg <= "000"; elsif rising_edge(clk) then state_reg <= state_next; end if; end process; my_rom: lpm_rom generic map ( lpm_widthad => 8, lpm_outdata => "unregistered", lpm_address_control => "unregistered", lpm_file => "my_rom.mif", -- init data lpm_width => 5) port map ( address => in_sig, q => out_sig); Tego typu pamięć może być wykorzystana tylko w niektórych układach (np. FLEX) Konkretyzacja modułu LPM_ROM i mapowanie parametrów i sygnałów in_sig <= (state_reg & valid & code); state_next <= out_sig(4 downto 2); ready <= out_sig(1); unlock <= out_sig(0); end data_flow;
44 Realizacja na pamięci ROM kreator komponentów
45 Realizacja na pamięci ROM kreator komponentów
46 Realizacja na pamięci ROM kreator komponentów architecture data_flow of sequence_search_rom is component rom PORT ( address : in std_logic_vector (7 downto 0); clock : in std_logic; q : out std_logic_vector (4 downto 0) ); end component; Deklaracja komponentu stworzonego z wykorzystaniemkreatora signal in_sig : std_logic_vector(7 downto 0); signal out_sig : std_logic_vector(4 downto 0); begin my_rom: rom port map ( address => in_sig, clock => clk, q => out_sig ); in_sig <= (out_sig(4 downto 2) & valid & code); ready <= out_sig(1); unlock <= out_sig(0); Konkretyzacja rom i mapowanie parametrów i sygnałów end data_flow;
47 Modyfikacja adresu Wykorzystanie koncepcji modyfikacji adresu pozwala projektantowi efektywnie wykorzystywać wbudowane matryce pamięciowe X x q b a A d d r e s s m o d ifie r c < b R e g is t e r ( a + c ) < (x + q ) R O M y F Q
48 Synteza logiczna automaty FF_MAX+PlusII FF_DEMAIN ROM AM_ROM Example Speed Speed Speed Speed LCs/Bits LCs/Bits LCs/Bits LCs/Bits [MHz] [MHz] [MHz] [MHz] DESaut 46/0 41,1 28/0 61,7 8/ ,8 7/896 47,1 5B6B 93/0 48,7 43/0 114,9 6/448 48,0 3) 3) count4 72/0 44,2 11/0 68,5 18/0 1) 86,2 1) 13/0 2) 90,0 2) 16/ ) 12/ ,5 1) FSM described with special AHDL construction; 2) decomposition with the minimum number of logic levels, 3) decomposition not possible; 4) not enough memory bits to implement the project
49 Układ odmierzania czasu library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity cnt_n is generic( WIDTH : natural := 4 ); port( rst : in std_logic; clk : in std_logic; ena : in std_logic; cout : out std_logic; value : out std_logic_vector(width - 1 downto 0) ); end cnt_n; architecture behavior of cnt_n is constant max_value : unsigned(width - 1 downto 0) := (others => '1'); signal counter : unsigned(width - 1 downto 0); begin process(rst, clk) begin if rst = '1' then counter <= (others => '0'); elsif rising_edge(clk) then if ena = '1' then counter <= counter + 1; else counter <= counter; end if; end if; end process; value <= std_logic_vector(counter); cout <= end behavior ; '1' when counter = max_value else '0'; Układ odmierzania czasu: zadaniem układu jest odmierzenie określonego czasu w celu zamknięcia zamka, wejście ena uruchamia pracę czasomierza na wyjście wystawiamy sygnał gdy odmierzony zostanie określony czas Układ zostanie zrealizowany z wykorzystaniem licznika parametryzowanego
50 Zamek całość Fitter Resource Utilization by Entity Compilation Hierarchy Node Logic Cells LC Registers electronic_lock 30 (0) 11 cnt_n:inst2 6 (6) 4 kb_ctrl_pckg_tri:inst1 11 (0) 4 cnt_n:kb_cnt 5 (5) 4 dec_2x4:kb_dec 4 (4) 0 mux_2x4:kb_mux 2 (2) 0 sequence_search_min_cod:inst 13 (13) 3
51 Zamek wyniki Naciśnięcia klawiszy Zamek otwarty Zamek zamknięty Wydaje się że wszystko działa!!! Fitter Summary Top-level Entity Name electronic_lock Family Stratix Device EP1S10B672C6 Total logic elements 30 / 10,570 ( < 1 % ) Total pins 12 / 346 ( 3 % ) Total virtual pins 0 Total memory bits 0 / 920,448 ( 0 % ) DSP block 9-bit elements 0 / 48 ( 0 % ) Total PLLs 0 / 6 ( 0 % ) Total DLLs 0 / 2 ( 0 % )
52 Nieprawidłowe działanie Wszystko działa? Czy aby na pewno Dlaczego przejście do stanu ready następuje już po 7 takcie zegara układ czasowy miał doliczyć do 16
53 Zamek całość jeszcze raz
54 Szpilki w układach kombinacyjnych To jest powód złego działania
55 Najprostszy układach kombinacyjnych Przecież to najprostszy układ jaki można wymyślić Należy to zbadać
56 Najprostszy układach kombinacyjnych??? Co to oznacza? Niech opóźnienie bramki AND wynosi 0,5 ns, czyli: dla sygnału a: opóźnienie sygnału a + opóźnienie AND = 9,9 ns opóźnienie sygnału a + 0,5 ns = 9,9 ns, czyli opóźnienie sygnału a = 9,4 ns dla sygnału b: opóźnienie sygnału b + opóźnienie AND = 10,4 ns opóźnienie sygnału b + 0,5 ns = 10,4 ns, czyli opóźnienie sygnału b = 9,9 ns
57 Najprostszy układach kombinacyjnych Różnica pomiędzy opóźnieniami na wejściach określa szerokość szpilki t 0 = 500 ns t 1 = t 0 + 9,4 ns = 509,4 ns t 2 = t 1 + 0,5 ns = 509,9 ns t 3 = t 0 + 9,9 ns = 509,9 ns t 4 = t 3 + 0,5 ns = 510,4 ns jednoczesna zmiana sygnału na wejściach a i b zmiana sygnału a dociera do bramki AND na wyjściu AND ustala się stan VCC na zmiana sygnału b dociera do bramki AND na wyjściu AND ustala się stan GND
58 Projektowanie logiki kombinacyjnej Nawet tak prosty projekt jak bramka AND może sprawiać kłopoty W przypadku logiki kombinacyjnej należy brać pod uwagę opóźnienia sygnałów jak i opóźnienia bramek Funkcjonalnie: na wyjściu out powinien pozostać stan GND Czasowo: pojawia się szpilka o szerokości 0,5 ns Układy należy projektować tak aby działały prawidłowo przy uwzględnieniu tych zjawisk
Projektowanie hierarchiczne Mariusz Rawski
CAD Projektowanie hierarchiczne rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/ Zamek elektroniczny: Elektroniczny zamek kod 4 cyfrowy kod wprowadzony z klawiatury ready sygnalizacja gotowości
Bardziej szczegółowoProjektowanie złożonych układów cyfrowych
rojektowanie złożonych układów cyfrowych Mariusz Rawski rawski@tele.pw.edu.pl www.zpt.tele.pw.edu.pl/~rawski/ Mariusz Rawski 1 Zamek elektroniczny: Elektroniczny zamek kod 4 cyfrowy kod wprowadzony z klawiatury
Bardziej szczegółowoSpecyfika projektowania Mariusz Rawski
CAD Specyfika projektowania Mariusz Rawski rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/ System cyfrowy pierwsze skojarzenie Urządzenia wprowadzania danych: klawiatury czytniki urządzenia przetwarzania
Bardziej szczegółowoProjektowanie automatów z użyciem VHDL
Projektowanie automatów z użyciem VHDL struktura automatu i jego modelu w VHDL przerzutnik T jako automat przykłady automatów z wyjściami typu: Moore'a Mealy stanu kodowanie stanów automatu Wykorzystano
Bardziej szczegółowoProjekt prostego procesora
Projekt prostego procesora Opracowany przez Rafała Walkowiaka dla zajęć z PTC 2012/2013 w oparciu o Laboratory Exercise 9 Altera Corporation Rysunek 1 przedstawia schemat układu cyfrowego stanowiącego
Bardziej szczegółowoUkłady reprogramowalne i SoC Język VHDL (część 4)
Język VHDL (część 4) Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój Politechniki
Bardziej szczegółowoSystemy Czasu Rzeczywistego FPGA
01. Systemy Czasu Rzeczywistego FPGA 1 Systemy Czasu Rzeczywistego FPGA laboratorium: 05 autor: mgr inż. Mateusz Baran 01. Systemy Czasu Rzeczywistego FPGA 2 1 Spis treści FPGA... 1 1 Spis treści... 2
Bardziej szczegółowoSystemy Czasu Rzeczywistego FPGA
01. Systemy Czasu Rzeczywistego FPGA 1 Systemy Czasu Rzeczywistego FPGA laboratorium: 03 autor: mgr inż. Mateusz Baran 01. Systemy Czasu Rzeczywistego FPGA 2 1 Spis treści FPGA... 1 1 Spis treści... 2
Bardziej szczegółowoPolitechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki
Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 7 (2h) Obsługa urządzenia peryferyjnego z użyciem pamięci w VHDL. Instrukcja do zajęć laboratoryjnych z przedmiotu
Bardziej szczegółowoCyfrowe przetwarzanie sygnałów Mariusz Rawski
CAD Cyfrowe przetwarzanie sygnałów Mariusz Rawski rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/ Cyfrowe przetwarzanie sygnału A/D konwersja sygnału analogowego na cyfrowy (próbkowanie, kwantyzacja,
Bardziej szczegółowoAltera Quartus II. Opis niektórych komponentów dostarczanych razem ze środowiskiem. Opracował: mgr inż. Leszek Ciopiński
Altera Quartus II Opis niektórych komponentów dostarczanych razem ze środowiskiem Opracował: mgr inż. Leszek Ciopiński Spis treści Opis wybranych zagadnień obsługi środowiska Altera Quartus II:...1 Magistrale:...
Bardziej szczegółowoSynteza strukturalna Mariusz Rawski
CAD Synteza strukturalna rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/ Strukturalna realizacja przepływu danych Koncepcja zmiennych i sekwencyjnego wykonania operacji tak charakterystyczna dla
Bardziej szczegółowoWOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego LABORATORIUM UKŁADÓW PROGRAMOWALNYCH I SPECJALIZOWANYCH
WOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego LABORATORIUM UKŁADÓW PROGRAMOWALNYCH I SPECJALIZOWANYCH SPRAWOZDANIE Temat: Projekt notesu elektronicznego w języku VHDL przy użyciu układów firmy
Bardziej szczegółowoPUCY Kolos 2: Reloaded
PUCY Kolos 2: Reloaded 1) Narysować schemat układu mikroprogramowalnego z licznikiem rozkazów. 2) Narysować schemat elementu ścieżki cyklicznej dla sygnału kombinacyjnego 3) Narysować schemat elementu
Bardziej szczegółowoRealizacja algorytmu wyznaczania wyrazów ciągu w języku VHDL z zastosowaniem podziału projektu na moduły: FSM i Data Path.
Zakład Cyberbezpieczeństwa, Instytut Telekomunikacji, Politechnika Warszawska, 2015. 1 Układy Cyfrowe laboratorium Przykład realizacji ćwiczenia nr 6 (wersja 2015) 1. Wstęp 1.1. Algorytm Realizacja algorytmu
Bardziej szczegółowoModelowanie złożonych układów cyfrowych (1)
Modelowanie złożonych układów cyfrowych () funkcje i procedury przykłady (przerzutniki, rejestry) style programowania kombinacyjne bloki funkcjonalne bufory trójstanowe multipleksery kodery priorytetowe
Bardziej szczegółowoVHDL. Zebrał i opracował R.Walkowiak PTC wykład 2013/2014
VHDL przykłady rozwiązań Zebrał i opracował R.Walkowiak PTC wykład 2013/2014 for generate Tworzenie wektora obiektów : for in generate -- wyrażenia równoległe end
Bardziej szczegółowoSystemy Czasu Rzeczywistego FPGA
01. Systemy Czasu Rzeczywistego FPGA 1 Systemy Czasu Rzeczywistego FPGA laboratorium: 04 autor: mgr inż. Mateusz Baran 01. Systemy Czasu Rzeczywistego FPGA 2 1 Spis treści FPGA... 1 1 Spis treści... 2
Bardziej szczegółowoProjektowanie Urządzeń Cyfrowych
Projektowanie Urządzeń Cyfrowych Laboratorium 2 Przykład prostego ALU Opracował: mgr inż. Leszek Ciopiński Wstęp: Magistrale: Program MAX+plus II umożliwia tworzenie magistral. Magistrale są to grupy przewodów
Bardziej szczegółowoUkłady Cyfrowe laboratorium
Układy Cyfrowe laboratorium Przykład realizacji ćwiczenia nr 7 Temat: Realizacja układu sterującego systemu cyfrowego z uwzględnieniem kodowania i dekompozycji funkcji pw automatu dla Metody Newtona, tj.
Bardziej szczegółowoLaboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje.
Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje. 1. W języku VHDL zdefiniowano mechanizm odczytywania i zapisywania danych z i do plików. Pliki te mogą być wykorzystywane
Bardziej szczegółowoLABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35
LABORATORIUM TECHNIKA CYFROWA Pamięci Rev.1.35 1. Cel ćwiczenia Praktyczna weryfikacja wiedzy teoretycznej z projektowania modułów sterowania oraz kontroli pamięci 2. Kolokwium Kolokwium wstępne sprawdzające
Bardziej szczegółowoRealizacja logiki kombinacyjnej Mariusz Rawski
CAD Realizacja logiki kombinacyjnej rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/ Logika kombinacyjna Logika jest logiką kombinacyjna jeśli wartość wyjść w danej chwili zależy wyłącznie od wartości
Bardziej szczegółowoSposoby projektowania systemów w cyfrowych
Sposoby projektowania systemów w cyfrowych Top-down Idea całości projektu Dekompozycja na mniejsze bloki Projekt i rafinacja podbloków Łączenie bloków w całość PRZYKŁAD (sumator kaskadowy) zdefiniowanie
Bardziej szczegółowoProjektowanie układów kryptograficznych Mariusz Rawski rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/
CAD Projektowanie układów kryptograficznych rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/ Kryptografia Kryptografia to dziedzina nauki, zajmująca się przekształcaniem informacji zwanej tekstem
Bardziej szczegółowoTechnika cyfrowa projekt: Sumator 4 bitowy równoległy
Technika cyfrowa projekt: Sumator 4 bitowy równoległy Autorzy: Paweł Bara Robert Boczek Przebieg prac projektowych: Zadany układ dostaje na wejściu dwie czterobitowe liczby naturalne, sumuje je, po czym
Bardziej szczegółowo1. ISE WebPack i VHDL Xilinx ISE Design Suite 10.1 VHDL Tworzenie projektu Project Navigator Xilinx ISE Design Suite 10.1 File
1. ISE WebPack i VHDL Celem ćwiczenia jest szybkie zaznajomienie się ze środowiskiem projektowym Xilinx ISE Design Suite 10.1 oraz językiem opisu sprzętu VHDL. Tworzenie projektu Uruchom program Project
Bardziej szczegółowoPolitechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL
Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL Instrukcja pomocnicza do laboratorium z przedmiotu Synteza układów
Bardziej szczegółowoSynteza strukturalna
Synteza strukturalna Analizując algorytm pracy układu opisany siecią działań dobiera się: bloki funkcjonalne służące do przechowywania zmiennych, bloki operacyjne służące do wykonywania operacji występujących
Bardziej szczegółowoPolitechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki
Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 9 (3h) Projekt struktury hierarchicznej układu cyfrowego w FPGA. Instrukcja pomocnicza do laboratorium z przedmiotu
Bardziej szczegółowoImplementacja algorytmu szyfrującego
Warszawa 25.01.2008 Piotr Bratkowski 4T2 Przemysław Tytro 4T2 Dokumentacja projektu Układy Cyfrowe Implementacja algorytmu szyfrującego serpent w układzie FPGA 1. Cele projektu Celem projektu jest implementacja
Bardziej szczegółowoProgramowalne układy logiczne
Programowalne układy logiczne Worek różności jak dobrać się do gotowców w Spartanach? Szymon Acedański Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 12 kwietnia 2011 Spis treści Wbudowane
Bardziej szczegółowoKrótkie wprowadzenie do ModelSim i Quartus2
Krótkie wprowadzenie do ModelSim i Quartus2 wersja 04.2011 1 Plan Oprogramowanie Pliki źródłowe Scenariusze użycia 2 Programy Programy w wersji darmowej do pobrania ze strony www.altera.com ModelSim-Altera
Bardziej szczegółowoAby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.
Generowanie sygnałów testowych VHDL Wariant współbieżny (bez procesu): sygnał
Bardziej szczegółowoXC4000: LUT jako ROM Układy Cyfrowe i Systemy Wbudowane 2 Układy FPGA cz. 2 ROM32X1 VHDL inference example ROM 16x2b type
Układy Cyfrowe i Systemy Wbudowane 2 XC4000: LUT jako ROM Układy FPGA cz. 2 dr inż. Jarosław Sugier Jaroslaw.Sugier@pwr.edu.pl W-4/K-9, pok. 227 C-3 FPGA(2) - 1 FPGA(2) - 2 ROM32X1 VHDL inference example
Bardziej szczegółowoProgramowalne układy logiczne
Programowalne układy logiczne Układy kombinacyjne Szymon Acedański Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 28 września 2015 Co to jest układ kombinacyjny? Stan wyjść zależy tylko
Bardziej szczegółowoWydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYNTEZA UKŁADÓW CYFROWYCH ES2D100005
Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYNTEZA UKŁADÓW CYFROWYCH ES2D100005 Ćwiczenie Nr 8 Implementacja prostego
Bardziej szczegółowoJęzyki opisu sprzętu VHDL Mariusz Rawski
CAD Języki opisu sprzętu VHDL rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/ Języki opisu sprzętu System cyfrowy może być opisany na różnych poziomach abstrakcji i z wykorzystaniem różnych sposobów
Bardziej szczegółowoMetoda Newtona przyjmuje następujące założenia dla funkcji :
Zakład Cyberbezpieczeństwa, Instytut Telekomunikacji, Politechnika Warszawska, 2015. 1 Układy Cyfrowe laboratorium Przykład realizacji ćwiczenia nr 5 wersja 2015) 1. Temat Realizacja iteracyjnego algorytmu
Bardziej szczegółowoProgramowalne układy logiczne
Programowalne układy logiczne Przerzutniki Szymon Acedański Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 20 maja 2013 Przerzutnik synchroniczny Układ synchroniczny wyzwalany ustalonym
Bardziej szczegółowoPodstawy techniki cyfrowej zima 2017 Rafał Walkowiak Synteza strukturalna wyższego poziomu
Podstawy techniki cyfrowej zima 2017 Rafał Walkowiak Wykład: synteza wyższego poziomu 16.12.2017 1 Układy cyfrowe synteza strukturalna wyższego poziomu Ogólna struktura logiczna UC: bloki funkcjonalne
Bardziej szczegółowomgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec
Programowanie Układów Logicznych kod kursu: ETD6203 Analiza układów sekwencyjnych W3 7.03.2018 mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec Zmiany w terminach Plan wykładu 1 2 3 4 5 6 Ciekawostki
Bardziej szczegółowoDOKUMENTACJA PROJEKTU
AKADEMIA GÓRNICZO-HUTNICZA w Krakowie KATEDRA ELEKTRONIKI DOKUMENTACJA PROJEKTU Projekt z przedmiotu Sprzętowa Implementacja Algorytmów: Dekoder klawiatury na PS/2 Prowadzący: Dr inż. Paweł Russek Wykonali:
Bardziej szczegółowoPodstawy techniki cyfrowej zima 2015 Rafał Walkowiak
Podstawy techniki cyfrowej zima 2015 Rafał Walkowiak Wykład: synteza wyższego poziomu 1 Układy cyfrowe synteza strukturalna wyższego poziomu Ogólna struktura logiczna UC: bloki funkcjonalne dla realizacji
Bardziej szczegółowo1.Wprowadzenie do projektowania układów sekwencyjnych synchronicznych
.Wprowadzenie do projektowania układów sekwencyjnych synchronicznych.. Przerzutniki synchroniczne Istota działania przerzutników synchronicznych polega na tym, że zmiana stanu wewnętrznego powinna nastąpić
Bardziej szczegółowoUkłady reprogramowalne i SoC Implementacja w układach FPGA
Układy reprogramowalne i SoC Implementacja w układach FPGA Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez
Bardziej szczegółowoProjektowanie w VHDL
Projektowanie w VHDL powtórka wiadomości o języku VHDL słowa zastrzeżone typy danych, deklaracje obiektów instrukcje współbieżne i sekwencyjne pętle for, while typowe bloki układów cyfrowych przykłady
Bardziej szczegółowoĆwiczenie 1 VHDL - Licznik 4-bitowy.
Ćwiczenie 1 VHDL - Licznik 4-bitowy. Zadaniem studenta jest zaprojektowanie w układzie CoolRunner2 układu, który dzieli częstotliwość zegara wejściowego generując sygnał taktowania licznika 4-bitowego,
Bardziej szczegółowoInstrukcje sekwencyjne
nstrukcje sekwencyjne nstrukcje sekwencyjne są stosowane w specyfikacji behawioralnej (behavioral description) rzede wszystkim w tzw. procesach (process) roces nstrukcja F nstrukcja CASE Z 1 rocesy Konstrukcja
Bardziej szczegółowoTHE HARDWARE IMPLMENTATION OF THE PS/2 PROTOCOL ON SPARTAN 3 FPGA DEVICE IMPLEMENTACJA SPRZĘTOWA PROTOKOŁU PS/2 W UKLADZIE FPGA SPARTAN 3
Szymon Kozień IV rok Koło Naukowe Techniki Cyfrowej Dr inż. Wojciech Mysiński opiekun naukowy THE HARDWARE IMPLMTATION OF THE PS/ PROTOCOL ON SPARTAN FPGA DEVICE IMPLEMTACJA SPRZĘTOWA PROTOKOŁU PS/ W UKLADZIE
Bardziej szczegółowoSystemy Czasu Rzeczywistego FPGA
01. Systemy Czasu Rzeczywistego FPGA 1 Systemy Czasu Rzeczywistego FPGA laboratorium: 06 autor: mgr inż. Mateusz Baran 01. Systemy Czasu Rzeczywistego FPGA 2 1 Spis treści FPGA... 1 1 Spis treści... 2
Bardziej szczegółowoPolitechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. Automaty stanów
Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 6 (2h) Automaty stanów Instrukcja do zajęć laboratoryjnych z przedmiotu Synteza układów cyfrowych studia niestacjonarne,
Bardziej szczegółowoProgramowalne Układy Cyfrowe Laboratorium
Zdjęcie opracowanej na potrzeby prowadzenia laboratorium płytki przedstawiono na Rys.1. i oznaczono na nim najważniejsze elementy: 1) Zasilacz i programator. 2) Układ logiki programowalnej firmy XILINX
Bardziej szczegółowoWydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: PROGRAMOWALNE STRUKTURY LOGICZNE
Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: PROGRAMOWALNE STRUKTURY LOGICZNE ES1C420 300 Ćwiczenie Nr 8 KONFIGUROWALNE
Bardziej szczegółowoĆw. 7: Układy sekwencyjne
Ćw. 7: Układy sekwencyjne Wstęp Celem ćwiczenia jest zapoznanie się z sekwencyjnymi, cyfrowymi blokami funkcjonalnymi. W ćwiczeniu w oparciu o poznane przerzutniki zbudowane zostaną następujące układy
Bardziej szczegółowoUkłady reprogramowalne i SoC Specjalizowane moduły FPGA
Specjalizowane moduły FPGA Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój
Bardziej szczegółowoProgramowanie Układów Logicznych kod kursu: ETD6203 W dr inż. Daniel Kopiec. Pamięć w układach programowalnych
Programowanie Układów Logicznych kod kursu: ETD623 Pamięć w układach programowalnych W6 6.4.26 dr inż. Daniel Kopiec Plan wykładu Pamięć w układach programowalnych Zasada działania, podział pamięci Miara
Bardziej szczegółowoMMfpga01. MMfpga11. Instrukcja konfiguracji środowiska, przykładowy projekt oraz programowanie układu
MMfpga01 MMfpga11 Instrukcja konfiguracji środowiska, przykładowy projekt oraz programowanie układu 1 Spis treści 1. Instalacja aplikacji QUARTUS II Web Edition...3 2. Instalacja programu QUARTUS II Web
Bardziej szczegółowoElementy języka VHDL. obiekty typy danych atrybuty pakiety i biblioteki instrukcje współbieżne instrukcje sekwencyjne. PUE-w3 1
Elementy języka VHDL obiekty typy danych atrybuty pakiety i biblioteki instrukcje współbieżne instrukcje sekwencyjne PUE-w3 1 Obiekty (sygnały, zmienne, stałe, pliki) Obiekty służą do zapisu i pamiętania
Bardziej szczegółowoPolitechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki
Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 2 (3h) Przełączniki, wyświetlacze, multipleksery - implementacja i obsługa w VHDL Instrukcja pomocnicza do laboratorium
Bardziej szczegółowoKURS Hexcalcul (2) Implementacja kalkulatora kodu BCD na Hex w układzie programowalnym
KURS Hexcalcul (2) Implementacja kalkulatora kodu BCD na Hex w układzie programowalnym Dodatkowe materiały na CD Na przykładzie dosyć złożonego funkcjonalnie kalkulatora przeliczania kodu BCD na Hex, prezentujemy
Bardziej szczegółowoCZ1. Optymalizacja funkcji przełączających
CZ1. Optymalizacja funkcji przełączających 1. Proszę opisać słownie metodę i dokonać optymalizacji łącznej następujących funkcji (najmłodszy bit wejścia proszę oznaczyć A) : F1=SUM m(1,3,5,7,9,13,15) F2=SUM
Bardziej szczegółowoAHDL - Język opisu projektu. Podstawowe struktury języka. Komentarz rozpoczyna znak i kończy znak %. SUBDESIGN
AHDL - Język opisu projektu. Podstawowe struktury języka Przykładowy opis rewersyjnego licznika modulo 64. TITLE "Licznik rewersyjny modulo 64 z zerowaniem i zapisem"; %------------------------------------------------------------
Bardziej szczegółowoWPROWADZENIE Mikrosterownik mikrokontrolery
WPROWADZENIE Mikrosterownik (cyfrowy) jest to moduł elektroniczny zawierający wszystkie środki niezbędne do realizacji wymaganych procedur sterowania przy pomocy metod komputerowych. Platformy budowy mikrosterowników:
Bardziej szczegółowoUkłady sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).
Ćw. 10 Układy sekwencyjne 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z sekwencyjnymi, cyfrowymi blokami funkcjonalnymi. W ćwiczeniu w oparciu o poznane przerzutniki zbudowane zostaną układy rejestrów
Bardziej szczegółowoSławomir Kulesza. Projektowanie automatów asynchronicznych
Sławomir Kulesza Technika cyfrowa Projektowanie automatów asynchronicznych Wykład dla studentów III roku Informatyki Wersja 3.0, 03/01/2013 Automaty skończone Automat skończony (Finite State Machine FSM)
Bardziej szczegółowoElementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.
Elementy struktur cyfrowych Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych. Magistrale W układzie bank rejestrów do przechowywania danych. Wybór źródła danych
Bardziej szczegółowoAsynchroniczne statyczne układy sekwencyjne
Asynchroniczne statyczne układy sekwencyjne Układem sekwencyjnym nazywany jest układ przełączający, posiadający przynajmniej jeden taki stan wejścia, któremu odpowiadają, zależnie od sygnałów wejściowych
Bardziej szczegółowoPodstawowe moduły układów cyfrowych układy sekwencyjne cz.2 Projektowanie automatów. Rafał Walkowiak Wersja /2015
Podstawowe moduły układów cyfrowych układy sekwencyjne cz.2 Projektowanie automatów synchronicznych Rafał Walkowiak Wersja.2 24/25 UK Funkcje wzbudzeń UK Funkcje wzbudzeń Pamieć Pamieć UK Funkcje wyjściowe
Bardziej szczegółowoLABORATORIUM OPTOELEKTRONIKA I SENSORYKA Oprogramowanie bariery podczerwieni w układzie CPLD
LABORATORIUM OPTOELEKTRONIKA I SENSORYKA Oprogramowanie bariery podczerwieni w układzie CPLD 1. Wstęp i cel ćwiczenia W ćwiczeniu student tworzy barierę podczerwieni złożoną z diody nadawczej IR (Infra
Bardziej szczegółowoProjektowanie Scalonych Systemów Wbudowanych VERILOG
Projektowanie Scalonych Systemów Wbudowanych VERILOG OPIS BEHAWIORALNY proces Proces wątek sterowania lub przetwarzania danych, niezależny w sensie czasu wykonania, ale komunikujący się z innymi procesami.
Bardziej szczegółowoTranzystor JFET i MOSFET zas. działania
Tranzystor JFET i MOSFET zas. działania brak kanału v GS =v t (cutoff ) kanał otwarty brak kanału kanał otwarty kanał zamknięty w.2, p. kanał zamknięty Co było na ostatnim wykładzie? Układy cyfrowe Najczęściej
Bardziej szczegółowoUkłady Cyfrowe projekt. Korekcja jasności obrazów w 24-bitowym formacie BMP z użyciem funkcji gamma. Opis głównych modułów sprzętowych
Michał Leśniewski Tomasz Władziński Układy Cyfrowe projekt Korekcja jasności obrazów w 24-bitowym formacie BMP z użyciem funkcji gamma Opis głównych modułów sprzętowych Realizacja funkcji gamma entity
Bardziej szczegółowoImplementacja algorytmu DES
mplementacja algorytmu DES Mariusz Rawski rawski@tele.pw.edu.pl www.zpt.tele.pw.edu.pl/~rawski/ Z Mariusz Rawski 1 Algorytm DES DES (Data Encryption Standard) - jest szyfrem blokowym, o algorytmie ogólnie
Bardziej szczegółowoLABORATORIUM ELEKTRONIKA Projektowanie koderów, transkoderów i dekoderów w języku VHDL
LABORATORIUM ELEKTRONIKA Projektowanie koderów, transkoderów i dekoderów w języku VHDL 1. Cel ćwiczenia W ćwiczeniu student projektuje i implementuje w strukturze układu FPGA (Field Programmable Gate Array)
Bardziej szczegółowo1. Synteza układów opisanych w języku VHDL Xilinx ISE Design Suite 10.1 VHDL 2. Obsługa przetwornika CA Project Add source...
1. Synteza układów opisanych w języku VHDL Celem ćwiczenia jest szybkie zaznajomienie się ze środowiskiem projektowym Xilinx ISE Design Suite 10.1 oraz językiem opisu sprzętu VHDL, także przetwornikiem
Bardziej szczegółowoSumatory H D L. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska
Sumatory 1 Sumator 1-bitowy full adder Równanie boolowskie sumy: s k = a k XOR b k XOR c k = a k b k c k Równanie boolowskie przeniesienia: c k+1 = (a k AN b k ) OR (a k AN c k ) OR (b k AN c k ) = (a
Bardziej szczegółowoLaboratorium przedmiotu Technika Cyfrowa
Laboratorium przedmiotu Technika Cyfrowa ćw.3 i 4: Asynchroniczne i synchroniczne automaty sekwencyjne 1. Implementacja asynchronicznych i synchronicznych maszyn stanu w języku VERILOG: Maszyny stanu w
Bardziej szczegółowoUkłady reprogramowalne i SoC Testbenches. Symulacja sterowana zdarzeniami.
Testbenches. Symulacja sterowana zdarzeniami. Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń -
Bardziej szczegółowoUkłady reprogramowalne i SoC Język VHDL (część 3)
Układy reprogramowalne i SoC Język VHDL (część 3) Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń
Bardziej szczegółowoProgramowanie Układów Logicznych kod kursu: ETD6203. Komunikacja z układami cyfrowymi W dr inż. Daniel Kopiec
Programowanie Układów Logicznych kod kursu: ETD6203 Komunikacja z układami cyfrowymi W5 30.03.2016 dr inż. Daniel Kopiec Plan wykładu 1 2 3 4 5 6 Standard komunikacji RS232 Enkoder obrotowy Wyświetlacz
Bardziej szczegółowoUkłady FPGA w przykładach, część 2
Układy FPGA w przykładach, część 2 W drugiej części artykułu zajmiemy się omówieniem wyposażenia (po mikrokontrolerowemu : peryferiów) układów FPGA z rodziny Spartan 3, co ułatwi ich wykorzystywanie w
Bardziej szczegółowoSpis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM
Spis treści 1. Wstęp... 9 2. Ćwiczenia laboratoryjne... 12 2.1. Środowisko projektowania Quartus II dla układów FPGA Altera... 12 2.1.1. Cel ćwiczenia... 12 2.1.2. Wprowadzenie... 12 2.1.3. Przebieg ćwiczenia...
Bardziej szczegółowoUKŁADY MIKROPROGRAMOWALNE
UKŁAD MIKROPROGRAMOWALNE Układy sterujące mogą pracować samodzielnie, jednakże w przypadku bardziej złożonych układów (zwanych zespołami funkcjonalnymi) układ sterujący jest tylko jednym z układów drugim
Bardziej szczegółowoProgramowalne układy logiczne
Programowalne układy logiczne Układy synchroniczne Szymon Acedański Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 26 października 2015 Co to jest układ sekwencyjny? W układzie sekwencyjnym,
Bardziej szczegółowoTechnika Cyfrowa. Wprowadzenie do laboratorium komputerowego część II
Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie Wydział IET Katedra Elektroniki Technika Cyfrowa Wprowadzenie do laboratorium komputerowego część II Wstęp W ramach zajęć przedstawione zostaną
Bardziej szczegółowoProjekt Koder HDB-3. Wykonali: Agnieszka Sikorska, Łukasz Kokosza EiTI Politechnika Warszawska Warszawa Projekt UCYF Koder HDB-3
Projekt Koder HDB-3 Wykonali: EiTI Politechnika Warszawska Warszawa 2005-1 1.Wstęp teoretyczny W wielokrotnych systemach o modulacji impulsowo-kodowej PCM sygnały cyfrowe są przed wysłaniem ich w linię
Bardziej szczegółowoSystemy wbudowane. Układy programowalne
Systemy wbudowane Układy programowalne Układy ASIC Application Specific Integrated Circuits Podstawowy rozdział cyfrowych układów scalonych: Wielkie standardy: standardowe, uniwersalne elementy o strukturze
Bardziej szczegółowoUkłady logiczne układy cyfrowe
Układy logiczne układy cyfrowe Jak projektować układy cyfrowe (systemy cyfrowe) Układy arytmetyki rozproszonej filtrów cyfrowych Układy kryptograficzne X Selektor ROM ROM AND Specjalizowane układy cyfrowe
Bardziej szczegółowoUkłady reprogramowalne i SoC Język VHDL (część 2)
Układy reprogramowalne i SoC Język VHDL (część 2) Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń
Bardziej szczegółowoPojedyncze wartości zadeklarowanego typu Ustawiane przed rozpoczęciem symulacji bez moŝliwości
Stałe - constant Pojedyncze wartości zadeklarowanego typu Ustawiane przed rozpoczęciem symulacji bez moŝliwości późniejszych zmian Deklarowane w ciele architektury Widoczne dla całej architektury architecture
Bardziej szczegółowoVHLD Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (VHDL)
VHLD Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (VHDL) Język VHDL jest jednym z nowszych języków opisu i projektowania układów cyfrowych. W lipcu 1983 roku firmy Intermetrics,
Bardziej szczegółowoElementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.
Elementy struktur cyfrowych Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych. PTC 2015/2016 Magistrale W układzie cyfrowym występuje bank rejestrów do przechowywania
Bardziej szczegółowoVHDL cz.1. Rafał Walkowiak IIn PP Wer
VHDL cz.1 Rafał Walkowiak IIn PP Wer 2.0 11.2013 VHDL VHDL (ang. Very High Speed Integrated Circuits Hardware Description Language ) jest popularnym językiem opisu sprzętu używanym w komputerowym projektowaniu
Bardziej szczegółowoPrzykładowe pytania z części PSPICE. 1. Podaj zasady tworzenia pliku symulacyjnego. 2. Czy składnia PSPICE jest czuła na wielkość liter? 3.
Przykładowe pytania z części PSPICE. 1. Podaj zasady tworzenia pliku symulacyjnego. 2. Czy składnia PSPICE jest czuła na wielkość liter? 3. Jak umieszcza się komentarze w pliku symulacyjnym PSPICE? 4.
Bardziej szczegółowoPolitechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA
Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA Instrukcja pomocnicza do laboratorium z przedmiotu Programowalne Struktury
Bardziej szczegółowoBramki logiczne Podstawowe składniki wszystkich układów logicznych
Układy logiczne Bramki logiczne A B A B AND NAND A B A B OR NOR A NOT A B A B XOR NXOR A NOT A B AND NAND A B OR NOR A B XOR NXOR Podstawowe składniki wszystkich układów logicznych 2 Podstawowe tożsamości
Bardziej szczegółowoTechnika Mikroprocesorowa
Technika Mikroprocesorowa Dariusz Makowski Katedra Mikroelektroniki i Technik Informatycznych tel. 631 2648 dmakow@dmcs.pl http://neo.dmcs.p.lodz.pl/tm 1 System mikroprocesorowy? (1) Magistrala adresowa
Bardziej szczegółowoUkłady asynchroniczne
Układy asynchroniczne Model układu asynchronicznego y x n UK y m układ kombinacyjny q k BP q k blok pamięci realizuje opóźnienia adeusz P x x t s tan stabilny s: δ(s,x) = s automacie asynchronicznym wszystkie
Bardziej szczegółowoBezpieczeństwo informacji oparte o kryptografię kwantową
WYŻSZA SZKOŁA BIZNESU W DĄBROWIE GÓRNICZEJ WYDZIAŁ ZARZĄDZANIA INFORMATYKI I NAUK SPOŁECZNYCH Instrukcja do laboratorium z przedmiotu: Bezpieczeństwo informacji oparte o kryptografię kwantową Instrukcja
Bardziej szczegółowo