Projektowanie hierarchiczne Mariusz Rawski

Wielkość: px
Rozpocząć pokaz od strony:

Download "Projektowanie hierarchiczne Mariusz Rawski"

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

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ółowo

Projektowanie złożonych układów cyfrowych

Projektowanie 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ółowo

Specyfika projektowania Mariusz Rawski

Specyfika 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ółowo

Projektowanie automatów z użyciem VHDL

Projektowanie 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ółowo

Projekt prostego procesora

Projekt 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ółowo

Układy reprogramowalne i SoC Język VHDL (część 4)

Ukł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ółowo

Systemy Czasu Rzeczywistego FPGA

Systemy 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ółowo

Systemy Czasu Rzeczywistego FPGA

Systemy 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ółowo

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Politechnika 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ółowo

Cyfrowe przetwarzanie sygnałów Mariusz Rawski

Cyfrowe 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ółowo

Altera 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 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ółowo

Synteza strukturalna Mariusz Rawski

Synteza 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ółowo

WOJSKOWA 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 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ółowo

PUCY Kolos 2: Reloaded

PUCY 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ółowo

Realizacja algorytmu wyznaczania wyrazów ciągu w języku VHDL z zastosowaniem podziału projektu na moduły: FSM i Data Path.

Realizacja 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ółowo

Modelowanie złożonych układów cyfrowych (1)

Modelowanie 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ółowo

VHDL. Zebrał i opracował R.Walkowiak PTC wykład 2013/2014

VHDL. 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ółowo

Systemy Czasu Rzeczywistego FPGA

Systemy 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ółowo

Projektowanie Urządzeń Cyfrowych

Projektowanie 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ółowo

Układy Cyfrowe laboratorium

Ukł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ółowo

Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje.

Laboratorium 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ółowo

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

LABORATORIUM 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ółowo

Realizacja logiki kombinacyjnej Mariusz Rawski

Realizacja 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ółowo

Sposoby projektowania systemów w cyfrowych

Sposoby 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ółowo

Projektowanie układów kryptograficznych Mariusz Rawski rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/

Projektowanie 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ółowo

Technika cyfrowa projekt: Sumator 4 bitowy równoległy

Technika 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ółowo

1. 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 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ółowo

Politechnika 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 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ółowo

Synteza strukturalna

Synteza 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ółowo

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Politechnika 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ółowo

Implementacja algorytmu szyfrującego

Implementacja 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ółowo

Programowalne układy logiczne

Programowalne 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ółowo

Krótkie wprowadzenie do ModelSim i Quartus2

Kró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ółowo

XC4000: LUT jako ROM Układy Cyfrowe i Systemy Wbudowane 2 Układy FPGA cz. 2 ROM32X1 VHDL inference example ROM 16x2b type

XC4000: 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ółowo

Programowalne układy logiczne

Programowalne 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ółowo

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYNTEZA UKŁADÓW CYFROWYCH ES2D100005

Wydział 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ółowo

Języki opisu sprzętu VHDL Mariusz Rawski

Ję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ółowo

Metoda Newtona przyjmuje następujące założenia dla funkcji :

Metoda 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ółowo

Programowalne układy logiczne

Programowalne 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ółowo

Podstawy techniki cyfrowej zima 2017 Rafał Walkowiak Synteza strukturalna wyższego poziomu

Podstawy 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ółowo

mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec

mgr 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ółowo

DOKUMENTACJA PROJEKTU

DOKUMENTACJA 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ółowo

Podstawy techniki cyfrowej zima 2015 Rafał Walkowiak

Podstawy 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ółowo

1.Wprowadzenie do projektowania układów sekwencyjnych synchronicznych

1.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ółowo

Układy reprogramowalne i SoC Implementacja w układach FPGA

Ukł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ółowo

Projektowanie w VHDL

Projektowanie 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. Ć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ółowo

Instrukcje sekwencyjne

Instrukcje 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ółowo

THE HARDWARE IMPLMENTATION OF THE PS/2 PROTOCOL ON SPARTAN 3 FPGA DEVICE IMPLEMENTACJA SPRZĘTOWA PROTOKOŁU PS/2 W UKLADZIE FPGA SPARTAN 3

THE 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ółowo

Systemy Czasu Rzeczywistego FPGA

Systemy 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ółowo

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. Automaty stanów

Politechnika 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ółowo

Programowalne Układy Cyfrowe Laboratorium

Programowalne 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ółowo

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: PROGRAMOWALNE STRUKTURY LOGICZNE

Wydział 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 Ć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ółowo

Układy reprogramowalne i SoC Specjalizowane moduły FPGA

Ukł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ółowo

Programowanie Układów Logicznych kod kursu: ETD6203 W dr inż. Daniel Kopiec. Pamięć w układach programowalnych

Programowanie 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ółowo

MMfpga01. MMfpga11. Instrukcja konfiguracji środowiska, przykładowy projekt oraz programowanie układu

MMfpga01. 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ółowo

Elementy 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 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ółowo

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Politechnika 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ółowo

KURS 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 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ółowo

CZ1. Optymalizacja funkcji przełączających

CZ1. 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ółowo

AHDL - 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. 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ółowo

WPROWADZENIE Mikrosterownik mikrokontrolery

WPROWADZENIE 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ółowo

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

Ukł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ółowo

Sławomir Kulesza. Projektowanie automatów asynchronicznych

Sł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ółowo

Elementy 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. 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ółowo

Asynchroniczne statyczne układy sekwencyjne

Asynchroniczne 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ółowo

Podstawowe 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. 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ółowo

LABORATORIUM OPTOELEKTRONIKA I SENSORYKA Oprogramowanie bariery podczerwieni w układzie CPLD

LABORATORIUM 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ółowo

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Projektowanie 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ółowo

Tranzystor JFET i MOSFET zas. działania

Tranzystor 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ółowo

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

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 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ółowo

Implementacja algorytmu DES

Implementacja 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ółowo

LABORATORIUM 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 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ółowo

1. 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 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ółowo

Sumatory H D L. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska

Sumatory 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ółowo

Laboratorium przedmiotu Technika Cyfrowa

Laboratorium 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ółowo

Układy reprogramowalne i SoC Testbenches. Symulacja sterowana zdarzeniami.

Ukł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ółowo

Układy reprogramowalne i SoC Język VHDL (część 3)

Ukł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ółowo

Programowanie 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 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ółowo

Układy FPGA w przykładach, część 2

Ukł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ółowo

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM

Spis 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ółowo

UKŁADY MIKROPROGRAMOWALNE

UKŁ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ółowo

Programowalne układy logiczne

Programowalne 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ółowo

Technika Cyfrowa. Wprowadzenie do laboratorium komputerowego część II

Technika 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ółowo

Projekt Koder HDB-3. Wykonali: Agnieszka Sikorska, Łukasz Kokosza EiTI Politechnika Warszawska Warszawa Projekt UCYF Koder HDB-3

Projekt 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ółowo

Systemy wbudowane. Układy programowalne

Systemy 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ółowo

Układy logiczne układy cyfrowe

Ukł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ółowo

Układy reprogramowalne i SoC Język VHDL (część 2)

Ukł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ółowo

Pojedyncze wartości zadeklarowanego typu Ustawiane przed rozpoczęciem symulacji bez moŝliwości

Pojedyncze 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ółowo

VHLD Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (VHDL)

VHLD 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ółowo

Elementy 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. 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ółowo

VHDL cz.1. Rafał Walkowiak IIn PP Wer

VHDL 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ółowo

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.

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. 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ółowo

Politechnika 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 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ółowo

Bramki logiczne Podstawowe składniki wszystkich układów logicznych

Bramki 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ółowo

Technika Mikroprocesorowa

Technika 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ółowo

Układy asynchroniczne

Ukł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ółowo

Bezpieczeństwo informacji oparte o kryptografię kwantową

Bezpieczeń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