Elementy języka VHDL

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

Download "Elementy języka VHDL"

Transkrypt

1 Elementy języka VHDL Języki opisu sprzętu: Firmowe - stosowane wyłącznie w systemach danej firmy (AHDL, ABEL) Uniwersalne - stosowane coraz powszechniej w różnych systemach, równolegle z językami firmowymi (VHDL, Verilog) Najpopularniejszym i z opracowanym standardem jest - VHDL Z 1

2 Język VHDL Very high speed integrated circuit Hardware Description Language (VHDL) przemysłowy standard języka HDL Kolejne wersje normy EEE Std 1076: 1987, 1993 owszechnie stosowany w specyfikacjach układów cyfrowego przetwarzania sygnałów: Z 2

3 Język VHDL Zawiera użyteczne konstrukcje semantyczne umożliwiające zwięzłą specyfikację złożonych układów cyfrowych rojekt może być opisany hierarchicznie (na wielu poziomach) Możliwe jest korzystanie z biblioteki gotowych elementów i tworzenie podukładów (tzw. komponentów) Z 3

4 Jednostka projektowa DESGN ENY ENY DECLARAON Deklaracji jednostki EJŚCE/YJŚCE ARAMERY ARCHECURE BODY Blok architektury FUNKCJE DZAŁANE JEDNOSKA ROJEKOA reprezentuje fragment układu cyfrowego; ma dobrze zdefiniowane wejścia i wyjścia; spełnia ściśle określoną funkcję Może mieć dowolny stopień złożoności od prostej bramki do systemu!!! Z 4

5 Specyfikacja jednostki Halfadd: Deklaracje e/y entity HALFADD is port (A,B : in bit; SUM, CARRY : out bit); end HALFADD; A B A B SUM CARRY o samo co w pliku halfadd.vhd architecture BEHAVE of HALFADD is begin SUM <= A xor B; CARRY <= A and B; end BEHAVE; Specyfikacja logiczna Sekcja specyfikacji e same nazwy Z 5

6 Jednostka projektowa języka VHDL entity Komunikacja z otoczeniem architecture architecture architecture Działanie układu Z 6

7 Deklaracja jednostki A B SUM CARRY entity HALFADD is port (A,B : in bit; SUM, CARRY : out bit); end HALFADD; Komunikacja z otoczeniem Deklaracja wyprowadze : nazwy sygnałów tryby typy danych Z 7

8 ryby wyprowadzeń entity HALFADD is ryby port (A,B : in bit; SUM, CARRY : out bit); end HALFADD; ryby portu in -wejściowy out -wyjściowy inout - dwukierunkowy buffer -wyjściowy z możliwością odczytu Z 8

9 ryby wyprowadzeń n ryb ryb Out Buffer n n nout Out Z 9

10 yp danych entity HALFADD is yp danych port (A,B : in bit; SUM, CARRY : out bit); end HALFADD; ypy danych: bit, bit_vector, integer, Boolean Z 10

11 Blok architektury A Działanie lub SUM architecture BEHAVE of HALFADD is begin B budowa CARRY SUM <= A xor B; CARRY <= A and B; end BEHAVE; Architektura opisuje sposób działania jednostki (entity) lub jej budowę (strukturę). VHDL wyraźnie odróżnia opis działania od opisu struktury Style specyfikacji funkcjonalny (behavioralny) przepływ danych (dataflow) strukturalny Z 11

12 Style specyfikacji behavioralny Specyfikowane jest dzia anie uk adu bez podania szczegó ów realizacyjnych przepływ danych (dataflow) , : ,3, ,3. 7, 03, strukturalny Specyfikowana jest budowa układu. opisie podane są komponenty oraz połączenia między nimi. Z 12

13 Deklaracja jednostki entity nazwa_jednostki is deklaracja parametrów ogólnych: generic (lista) deklaracja wyprowadzeń: port (lista) end nazwa_jednostki; aramery ogólne (generics) umożliwiają projektowanie parametryzowanych wzorców układów Z 13

14 Blok architektury architecture nazwa_arch of nazwa_jednostki is begin Definicje i deklaracje: (typów, podtypów, stałych, sygnałów, komponentów, konfiguracji) instrukcje przypisania procesy (instrukcje sekwencyjne) komponenty end nazwa_arch; Z 14

15 Moduły systemowe wspomagające specyfikację dost pne dla wielu jednostek projektowych to biblioteki i pakiety. akiet jest modułem do deklarowania i definiowania obiektów danych, typów, komponentów, funkcji i procedur przeznaczonych do stosowania w wielu jednostkach projektowych. Biblioteka to zbiór zanalizowanych pakietów i jednostek projektowych przechowywanych w danym systemie operacyjnym i dostępnych bezpośrednio wg nazwy logicznej (nie jest to nazwa katalogu w tym systemie). Z 15

16 Dostęp do biblioteki i jej pakietów Dostęp do pakietu osiąga się deklaracją: LBRARY library_name; USE library_name.package_name.all; Biblioteka systemowa EEE Z 16

17 Biblioteka systemowa EEE EEE to najważniejsza biblioteka zawierająca pakiety ze standardowymi typami danych. Odwołanie do tej biblioteki a także polecenie use umożliwiające dostęp do standardowego pakietu: Std_Logic_1164 musi poprzedzać każdą jednostkę projektową. LBRARY EEE; use EEE.Std_Logic_1164.all; Z 17

18 Elementy strukturalne języka VHDL Słowa kluczowe dentyfikatory Obiekty danych Operatory Atrybuty nstrukcje Z 18

19 Obiekty danych Dane liczbowe i alfanumeryczne są przechowywane w obiektach danych. Z punktu widzenia syntezy wyróżnia się trzy klasy obiektów: sygnał signal zmienne variable stałe constant Klasa deklarowana jest przed nazwą obiektu np.: signal s1, s2 : bit; variable u: integer range 0 to 127; Z Odpowiednikiem sprzętowym sygnału jest ścieżka w układzie scalonym. Zmienna nie ma odpowiednika sprzętowego i służy do obliczeń na wyższym poziomie abstrakcji. 19

20 ojęcie typu danych Język VHDL jest silnie zorientowany na typy danych. Każdy obiekt musi mieć zdefiniowany typ i może przechowywać dane tylko tego typu. signal signal_name : type_name ; variable nazwa_zm: typ_zm [ograniczenia] constant nazwa : typ := wartość; rzy operacji przypisania sygnałów, typy danych po każdej stronie operatora przypisania muszą być zgodne Z 20

21 ypy danych yróżnia się 10 typów danych: B, B_VECOR, SD_LOGC, SD_LOGC_VECOR, (SD_ULOGC), SGNED, UNSGNED, NEGER, ENUMERAON, BOOLEAN Z 21

22 Standardowe typy danych SD_LOGC, SD_LOGC_VECOR LBRARY EEE; use EEE.Std_Logic_1164.all; SD_LOGC: 0, 1, Z,, L, H, U, X, SD_LOGC_VECOR jest tablicą obiektów z SD_LOGC Z 22

23 Atrybuty Dostarczaj dodatkowych informacji o obiektach (np.. sygnałach, zmiennych, typach lub komponentach) Składnia obiekt atrybut[(parametr)]; Najczęściej stosowany atrubut: event równy RUE, gdy zachodzi zmiana wartości sygnału, f Clock event and Clock = 1 then Q := D; Z 23

24 nstrukcje SÓƒBE NE SEKENCYJNE spółbie ne (Concurrent assignment statement) Sekwencyjne (Sequential assignment statement) Z 24

25 nstrukcje spółbie ne: Zachowanie układu jest niezale ne od kolejności instrukcji przyporz dkowania sygnałów. Stosowane w specyfikacji typu przepływ danych (dataflow description). Z Sekwencyjne: nstrukcje sekwencyjne s stosowane w specyfikacji behawioralnej (behavioral description). rzede wszystkim w tzw. procesach (process). orządek zapisu instrukcji sekwencyjnych zmienia działanie układu. 25

26 spółbieżne instrukcje przypisania sygnału (Concurrent Signal Assignment Statements) podstawowe przypisanie do sygnału (simple signal assignment statement) warunkowe przypisanie do sygnału (conditional signal assignmenet statement) selektywne przypisanie do sygnału (selected signal assignment statement) when else with select Z 26

27 nstrukcja podstawowa Składnia: signal_name <= wyra enie; boolowskie lub arytmetyczne ypowe zastosowanie: Realizacje układów kombinacyjnych Z 27

28 a b c d MUX y rzykład MUX 4:1 y = s1 s0a + s1s 0b + s1s 0c + s1s 0d S S 1 0 library ieee; use ieee.std_logic_1164.all; entity mux is port ( a, b, c, d : in std_logic ; s: in std_logic_vector (1 downto 0) ; y: out std_logic ) ; end mux; Z 28

29 rzykład MUX 4:1 library ieee; use ieee.std_logic_1164.all; entity mux is port ( a b c d MUX y a, b, c, d : in std_logic ; s: in std_logic_vector (1 downto 0) ; S S 1 0 x: out std_logic ) ; end mux; architecture archmux of mux is begin x <= (a and not(s(1)) and not(s(0))) or (b and not(s(1)) and (s(0)) or (c and (s(1) and not(s(0))) or (d and (s(1) and (s(0)); end archmux; Z 29

30 library ieee; rzykład MUX grupowy 4:1 use ieee.std_logic_1164.all; entity mux is port ( a, b, c, d : in std_logic ; s: in std_logic_vector (1 downto 0) ; x: out std_logic ) ; a b c d MUX S S 1 0 y end mux; a = (a3,a2,a1,a0) b = (b3,b2,b1,b0).. y = (y3,y2,y1,y0) Z 30

31 rzykład MUX grupowy 4:1 Z architecture archmux of mux is begin x (3) <= (a(3) and not(s(1)) and not(s(0))) or (b(3) and not(s(1)) and (s(0)) or (c(3) and (s(1) and not(s(0))) or (d(3) and (s(1) and (s(0)); x (2) <= (a(2) and not(s(1)) and not(s(0))) or (b(2) and not(s(1)) and (s(0)) or (c(2) and (s(1) and not(s(0))) or (d(2) and (s(1) and (s(0)); x (1) <= (a(1) and not(s(1)) and not(s(0))) or (b(1) and not(s(1)) and (s(0)) or (c(1) and (s(1) and not(s(0))) or (d(1) and (s(1) and (s(0)); x (0) <= (a(0) and not(s(1)) and not(s(0))) or (b(0) and not(s(1)) and (s(0)) or (c(0) and (s(1) and not(s(0))) or (d(0) and (s(1) and (s(0)); end archmux; 31

32 nstrukcja warunkowa - when-else Składnia: yrażenie boolowskie signal_name <= value_a when condition1 else value_b when condition2 else value_c when condition3 else... value_x; Z 32

33 rzykład MUX 4:1 library ieee; use ieee.std_logic_1164.all; entity mux is port ( a, b, c, d : in std_logic ; std_logic_vector (3 downto 0); s: in std_logic_vector (1 downto 0) ; y: out std_logic ) ; std_logic_vector (3 downto 0)); end mux; architecture archmux of mux is begin y <= a when (s = 00 ) else b when (s = 01 ) else c when (s = 10 ) else d; end archmux; Dla uzyskania MUX grupowego wystarczy zmienić tylko typ zmiennych w deklaracji Z 33

34 nstrukcja selektywna - with-select Składnia: Zmienna wielowartościowa with sel_sig select signal_name <= value_a when value1_of_sel_sig, value_b when value2_of_sel_sig, value_c when value3_of_sel_sig,... value_x when last_value_of_sel_sig; rzykładzik: Można określać kilka wartości lub zakres artości nie mogą się powtarzać with N_A select Z <= A when 0, B when 1 to 3, C when 4 6 8, D when others; Z 34

35 rzykład MUX 4:1 library ieee; use ieee.std_logic_1164.all; entity mux is port ( end mux; a, b, c, d : in std_logic ; s: in std_logic_vector (1 downto 0) ; y: out std_logic ) ; architecture archmux of mux is begin with s select y <= a when 00, b when 01, c when 10, d when others; end archmux; std_logic_vector (3 downto 0); std_logic_vector (3 downto 0)); Dla uzyskania MUX grupowego wystarczy zmienić tylko typ zmiennych w deklaracji Z 35

36 Ostrzeżenie przed pochopnym wnioskiem Można podać wiele przykładów, w których zastosowanie instrukcji podstawowej prowadzi do znacznie lepszej implementacji Jednym z nich jest komparator Z 36

37 Komparator A B n n K 1 z 3 A < B A = B A > B Z 37

38 Komparator a 3 b 3 i 3 A = a 3 a 2 a 1 a 0 B = b 3 b 2 b 1 b 0 i k = a k b k a 2 b 2 i 2 a 1 b 1 i 1 A eq B = i 3 i 2 i 1 i 0 a 0 b 0 i 0 A < B = A eq B+ A gt B A > B = a 3 + i b 3 3 i 2 + i a 1 3 b a 1 2 b 2 + i 3 i + 2 i 1 a 0 b 0 Z 38

39 Komparator wersja 1 LBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; ENY compare_8bit S OR (A, B: N SD_LOGC_VECOR(7 DONO 0); AeqB, AgtB, AltB: OU SD_LOGC ); END compare_8bit; ARCHECURE Behavior OF compare_8bit S BEGN AeqB <= '1' HEN A = B ELSE '0'; AgtB <= '1' HEN A > B ELSE '0'; AltB <= '1' HEN A < B ELSE '0'; END Behavior; Z 39

40 Komparator wersja 2 LBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; ENY compare_2_8bit S OR (a7,a6,a5,a4,a3,a2,a1,a0: N SD_LOGC; b7,b6,b5,b4,b3,b2,b1,b0: N SD_LOGC; AeqB, AgtB, AltB: OU SD_LOGC); END compare_2_8bit; Z ARCHECURE Behavior OF compare_2_8bit S SGNAL i7,i6,i5,i4,i3,i2,i1,i0: SD_LOGC; SGNAL AequalB,AgreaterB,AlesserB: SD_LOGC; BEGN i7 <= NO (a7 XOR b7); i6 <= NO (a6 XOR b6); i5 <= NO (a5 XOR b5); i4 <= NO (a4 XOR b4); i3 <= NO (a3 XOR b3); i2 <= NO (a2 XOR b2); i1 <= NO (a1 XOR b1); i0 <= NO (a0 XOR b0); 40

41 Komparator wersja 2 c.d. AequalB <= i7 AND i6 AND i5 AND i4 AND i3 AND i2 AND i1 AND i0; AgreaterB <= (a7 AND (not b7)) OR (i7 AND a6 AND (not b6)) OR (i7 AND i6 AND a5 AND (not b5)) OR (i7 AND i6 AND i5 AND a4 AND (not b4)) OR (i7 AND i6 AND i5 AND i4 AND a3 AND (not b3)) OR (i7 AND i6 AND i5 AND i4 AND i3 AND a2 AND (not b2)) OR (i7 AND i6 AND i5 AND i4 AND i3 AND i2 AND a1 AND (not b1)) OR (i7 AND i6 AND i5 AND i4 AND i3 AND i2 AND i1 AND a0 AND (not b0)); AlesserB <= NO (AequalB OR AgreaterB); AeqB <= AequalB; AgtB <= AgreaterB; AltB <= AlesserB; END Behavior; Z 41

42 Realizacje komparatora ersja 1: MAX 7000: 48 makrokomórek, 27 expanderów FLEX: 20 komórek ersja 2: MAX 7000: 32 makrokomórki, 15 expanderów FLEX: 13 komórek Specyfikacja za pomocą instrukcji podstawowej prowadzi do dużo lepszej implementacji!!! Z 42

43 nstrukcje sekwencyjne nstrukcje sekwencyjne są stosowane w specyfikacji behawioralnej (behavioral description) rzede wszystkim w tzw. procesach (process) roces nstrukcja F nstrukcja CASE Z 43

44 roces Name :ROCESS (sensitivity_list) BEGN nstrukcja sekwencyjna #1 nstrukcja sekwencyjna #2... nstrukcja sekwencyjna # N END ROCESS name; Składnia: rocess ( ) begin.. end process Lista czułości nstrukcje sekwencyjne są wykonywane kolejno jedna po drugiej Etykieta jest opcjonalna Z 44

45 rocesy Konstrukcja wykonywana równolegle ystępuje wewnątrz architektury Zawiera opis behawioralny nstrukcje wewnętrzne wykonywane są sekwencyjnie Zawiera: listę czułości (ang. sensitivity list); jest to lista sygnałów, których zmiana powoduje aktywację procesu Z 45

46 nstrukcja warunkowa if then else Jest to instrukcja sekwencyjna Część elsif może wystąpić dowolną liczbę razy Część else nie musi wystąpić Może być zagnieżdżana Składnia: if warunek then sekwencja_instrukcji1 {elsif warunek then sekwencja_instrukcji2 } [else sekwencja_instrukcji3] end if ; Z 46

47 nstrukcja wyboru - case nstrukcja sekwencyjna odobna do instrukcji with select Można określać kilka wartości lub zakres artości nie mogą się powtarzać Składnia (przykład): case zm_wielow is when wybór1 => sekwencja1_instrukcji ; when wybór2 => sekwencja2_instrukcji ; [when others => sekwencja3_instrukcji ;] end case; Z 47

48 Archmux1 i Archmux2 entity mux is port( a, b, c, d: in bit; s: in bit_vector(1 downto 0); y: out bit); end mux; a b c d MUX y Z architecture archmux1 of mux is begin mux4_1: process (a, b, c, d, s) begin if s = "00" then y <= a; elsif s = "01" then y <= b; elsif s = "10" then y <= c; else y <= d; end if; end process mux4_1; end archmux1; S S 1 0 architecture archmux2 of mux is begin y <= a when (s = "00") else b when (s = "01") else c when (s = "10") else d; end archmux2; 48

49 Archmux3 i Archmux4 architecture archmux3 of mux is begin process (a,b,c,d,s) begin case s is when "00" => y<= a; when "01" => y<= b; when "10" => y<= c; when "11" => y<= d; end case; end process; end archmux3; architecture archmux4 of mux is begin with s select y <= a when "00", b when "01", c when "10", d when "11"; End archmux4; Z 49

50 Archmux5 Architecture archmux5 of mux is Begin y <= (a and not(s(1)) and not(s(0))) OR (b and not(s(1)) and s(0)) OR (c and s(1) and not(s(0))) OR (d and s(1) and s(0)); end archmux5; Z 50

51 Archmux6 architecture archmux6 of mux is begin mux4_1: process (a, b, c, d, s) begin if s = "00" then y <= a; end if; if s = "01" then y <= b; end if; if s = "10" then y <= c; end if; if s = "11" then y <= d; end if; end process mux4_1; end archmux6; Z 51

52 Archmux1 i Archmux2 A B C X D N0D N0C N0B Z S1 S0 52

53 Archmux3 i Archmux4 A B C X D N0E N0D N0C N0B S1 S0 Z 53

54 Archmux5 A B C X D Z S1 S0 54

55 Archmux6 C B A N0E X D N0D N0H N0G N0F N0A Z S1 S0 55

56 Synteza układów sekwencyjnych VHDL umożliwia bezpośrednią reprezentację automatu (układu sekwencyjnego). ablicę przejść-wyjść można bezpośrednio przetłumaczyć na specyfikację VHDL. szystkie inne metody, polegające na oddzielnej syntezie części kombinacyjnej, a następnie na dołączaniu do niej rejestru, nie mają sensu Z 56

57 Zasady specyfikacji automatu Stany automatu są reprezentowane przez typ wyliczeniowy, którego wartości są nazwami stanów Synchronizm zapewnia odpowiednie wyrażenie testujące zbocze sygnału zegarowego Funkcje przejść wyjść są realizowane instrukcjami CASE, F HEN wewnątrz ROCESU Specyfikacja jedno- lub dwu-procesowa yjątkiem w stosowaniu typu wyliczeniowego jest automat ze stanami kodowanymi przez użytkownika Z 57

58 yp wyliczeniowy yp wyliczeniowy (enumeration type) może być definiowany przez użytkownika. rzykład: type MY_SAE is (State1, State2, State3, State4);... signal SAE : MY_SAE; SAE <= State1; Z 58

59 Atrybuty Dostarczaj dodatkowych informacji o obiektach (np.. sygnałach, zmiennych, typach lub komponentach) Składnia obiekt atrybut[(parametr)]; Najczęściej stosowany atrubut: event równy RUE, gdy zachodzi zmiana wartości sygnału, f Clock event and Clock = 1 then Q := D; Z 59

60 rzykład: automat Moore a x = 0 Rst x = 1 x s 0 1 z A/z = 0 B/z = 0 A A B 0 x = 0 x = 0 x = 1 B A C 0 C/z = 1 C A C 1 x = 1 Z 60

61 Automat: jednostka deklaracji LBRARY ieee; USE ieee_std_logic_1164.all; ENY automacik S OR (Clock, Rst, x : N SD_LOGC; z : OU SD_LOGC); END automacik; Z 61

62 Automat - wersja Zerowanie asynchroniczne ARCHECURE funkcja_przejsc OF automacik S YE State_type S (A, B, C); SGNAL Q : State_type; BEGN Deklaracja typu i sygnału ROCESS (Rst, Clock) BEGN F Rst = '0' HEN Q <= A; ELSF (Clock'EVEN AND Clock = '1') HEN CASE Q S HEN A => F x = '0' HEN Q <=A; ELSE Q <= B; END F; HEN B => F x = '0' HEN Q <= A; ELSE Q <= C; Synchronizacja END F; HEN C => F x = '0' HEN Q <= A; ELSE Q <= C; END CASE; END F; END ROCESS; z <= '1' HEN Q = C ELSE '0'; END funkcja_przejsc; END F; Z 62

63 Automat Moore a - wersja Z ARCHECURE funkcja_przejsc OF simple S YE State_type S (A, B, C); SGNAL Q_present, Q_next : State_type ; BEGN ROCESS (x, Q_present) BEGN CASE Q_present S HEN A => F x = '0' HEN Q_next <= A; ELSE Q_next <= B; END F; HEN B => F x = '0' HEN Q_next <=A; ELSE Q_next <= C; END F; HEN C=> F x = '0' HEN Q_next <= A; ELSE Q_next <= C; END F; END CASE; END ROCESS; ROCESS (Clock, Rst) BEGN F Rst = '0' HEN Q_present <= A; r o c e s k o m b i n a c y j n y roces sekwencyjny ELSF (Clock'EVEN AND Clock = '1') HEN Q_present <= Q_next; END F; END ROCESS; z <= '1' HEN Q_present = C ELSE '0'; END funkcja_przejsc; 63

64 roces Kombinacyjny Case f hen Else ejścia Układ kombinacyjny Automat Stan następny (next_state) roces Sekwencyjny CLK EVEN and CLK= 1 rzerzutniki Stany bieżące (present_state) Z 64

65 roblem kodowania stanów Specyfikacja automatu: ciekawostka o procesie kompilacji Automaty w komercyjnych kompilatorach VHDL raczej nie są realizowane optymalnie jak też nie zawsze są realizowane na minimalnej liczbie przerzutników Nasz automat w opcji FGA na trzech przerzutnikach!!! Ucieczka przed skomplikowaniem części kombinacyjnej w realizacjach dla struktur FGA Z 65

66 roblem kodowania stanów Dlatego warto w projektach dla urządzeń rynkowych stosować zewnętrzne procedury kodowania stanów automatu. akie procedury są dostępne w oprogramowaniu uniwersyteckim akiet SS JED, NOVA Z 66

67 roblem kodowania stanów Szczęśliwie się składa, iż język VHDL umożliwia wprowadzenie dowolnego, zewnętrznie obliczonego kodowania stanów wewnętrznych architecture nazwa_arch of nazwa_jednostki is begin u kodowanie: za pośrednictwem deklaracji stałych (constant) end nazwa_arch; Z 67

68 Automat Moore a z kodowaniem stanów Z ARCHECURE funkcja_przejsc OF simple S SGNAL Q_present, Q_next: SD_LOGC_VECOR(1 DONO 0) CONSAN A :SD_LOGC_VECOR(1 DONO 0) := "00"; CONSAN B :SD_LOGC_VECOR(1 DONO 0) := "01"; CONSAN C :SD_LOGC_VECOR(1 DONO 0) := "11"; BEGN ROCESS (x, Q_present) BEGN CASE Q_present S HEN A => F x = '0' HEN Q_next <= A; ELSE Q_next <= B; END F; HEN B => F x = '0' HEN Q_next <= A; ELSE Q_next <= C; zabezpieczenie przed nadmiarowym stanem: 10 nny typ zmiennej END F; HEN C => F x = '0' HEN Q_next <= A; ELSE Q_next <= C; END F; HEN OHERS => Q_next <= A; END CASE; END ROCESS; ROCESS (Clock, Rst) BEGN F Rst = '0' HEN Q_next <= A; ELSF (Clock'EVEN AND Clock = '1') HEN Q_present <= Q_next; END F; END ROCESS; z <= '1' HEN Q_present = C ELSE '0'; END funkcja_przejsc; 68

69 SUBDESGN MOORE_AHDL( CLOCK, RESEN, : NU; Z : OUU; ) VARABLE Y : MACHNE H SAES (A, B, C); Automat w AHDL BEGN Y.CLK = CLOCK; Y.RESE =!RESEN; F RESEN == B"0" HEN Y = A; END F; CASE Y S HEN A => F == B"0" HEN Y = A; ELSE Y = B; HEN B => END F; F == B"0" HEN Y = A; ELSE Y= C; HEN C => END F; F == B"0" HEN Y = A; ELSE Y = C; Z END; END CASE; F Y == C HEN Z = B"1"; ELSE Z = B"0"; END F; END F; 69

70 AHDL kontra VHDL AHDL VHDL Variable temp : dff temp.clk = clk; temp.d = data out = temp.out if (clk event and clk= 1 ) then out <= d; end if; Całkowicie behawioralny opis, nawet nie znamy typu przerzutnika Z 70

71 Specyfikacje typowych układów rzerzutniki Rejestry: równoległy, szeregowy Liczniki: w górę, z wpisem równoległym Modelowanie na poziomie strukturalnym rojektowanie większych układów Specyfikacje wszystkich przykładów są podane w książce: rogramowalne układy przetwarzania sygnałów cyfrowych i informacji Z 71

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

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

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

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

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

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

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS Język HDL - VERLOG Hardware Description Language (Syntetyzowalna warstwa języka) RUS RUS VERLOG rzegląd zagadnień RUS RUS prowadzenie do języka Reprezentacja układu cyfrowego w Verilogu opis strukturalny

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

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

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

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

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

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

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

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

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

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

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS Język HDL - VERLOG Hardware Description Language (Syntetyzowalna warstwa języka) RUS RUS Język VERLOG w praktyce RUS RUS VERLOG Specyfikacja układów kombinacyjnych RUS RUS Operator warunkowy Conditional_expression?

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

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.1 12.2015 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

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

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

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

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

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

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

Język VHDL podstawy Mariusz Rawski

Język VHDL podstawy Mariusz Rawski CAD Język VHDL podstawy Mariusz Rawski rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/ Języki opisu sprzętu Very high speed integrated Hardware Description Language Przemysłowy standard języka

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

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

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

Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe. Synteza logiczna. Rajda & Kasperek 2015 Katedra Elektroniki AGH 1

Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe. Synteza logiczna. Rajda & Kasperek 2015 Katedra Elektroniki AGH 1 Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe Synteza logiczna Rajda & Kasperek 2015 Katedra Elektroniki AGH 1 Program wykładu Wstęp do syntezy Sprzętowa reprezentacja obiektów

Bardziej szczegółowo

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

Układy reprogramowalne i SoC Język VHDL (część 5) Układy reprogramowalne i SoC Język VHDL (część 5) Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń

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

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

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

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

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

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

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

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

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

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

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

1 Wstęp. 2 Proste przykłady. 3 Podstawowe elementy leksykalne i typy danych. 6 Opis strukturalny. 7 Moduł testowy (testbench)

1 Wstęp. 2 Proste przykłady. 3 Podstawowe elementy leksykalne i typy danych. 6 Opis strukturalny. 7 Moduł testowy (testbench) Wstęp SYSTEMY WBUDOWANE Układy kombinacyjne c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) Systemy wbudowane Rok akad. 2011/2012

Bardziej szczegółowo

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki. Literatura 1. D. Gajski, Principles of Digital Design, Prentice- Hall, 1997 2. C. Zieliński, Podstawy projektowania układów cyfrowych, PWN, Warszawa 2003 3. G. de Micheli, Synteza i optymalizacja układów

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

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

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

Układy asynchroniczne

Układy asynchroniczne Układy asynchroniczne Model układu sekwencyjnego Model układu asynchronicznego (synchronicznego) y 1 x n UK y m układ kombinacyjny Z clock t 1 q 1 k B x s tan stabilny s: δ(s,x) = s x blok pamięci jest

Bardziej szczegółowo

Język opisu sprzętu VHDL

Język opisu sprzętu VHDL Język opisu sprzętu VHDL dr inż. Adam Klimowicz Seminarium dydaktyczne Katedra Mediów Cyfrowych i Grafiki Komputerowej Informacje ogólne Język opisu sprzętu VHDL Przedmiot obieralny dla studentów studiów

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

Projektowanie scalonych systemów wbudowanych VERILOG. VERLIOG - historia

Projektowanie scalonych systemów wbudowanych VERILOG. VERLIOG - historia Projektowanie scalonych systemów wbudowanych VERILOG VERLIOG - historia Początki lat 80 XX w. Phil Moorby Gateway Design Automation symulator Verilog XL 1987 Synopsys Verilog jako język specyfikacji projektu

Bardziej szczegółowo

Kurs języka VHDL Very High (Speed Integrated Circuits) Description Language

Kurs języka VHDL Very High (Speed Integrated Circuits) Description Language Kurs języka VHDL Very High (Speed Integrated Circuits) Description Language Józef Kalisz, Wojskowa Akademia Techniczna, 2008 Początek: lata 80-te XX w. Kontrakt VHSIC (Department of Defense, USA) Podstawa:

Bardziej szczegółowo

Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści

Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, 2017 Spis treści Przedmowa 11 ROZDZIAŁ 1 Wstęp 13 1.1. Rys historyczny 14 1.2. Norma IEC 61131 19 1.2.1. Cele i

Bardziej szczegółowo

System cyfrowy. Układ sterujący (kontroler) Układ operacyjny (Datapath) Mikrooperacje wywoływane przez sygnały sterujące.

System cyfrowy. Układ sterujący (kontroler) Układ operacyjny (Datapath) Mikrooperacje wywoływane przez sygnały sterujące. System cyfrowy Sygnały sterujące Dane wejściowe Układ sterujący (kontroler) Układ operacyjny (Datapath) Mikrooperacje wywoływane przez sygnały sterujące Stan części operacyjnej Dane wyjściowe Z System

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

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

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

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

Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe. Zaawansowany VHDL. Rajda & Kasperek 2014 Katedra Elektroniki AGH 2

Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe. Zaawansowany VHDL. Rajda & Kasperek 2014 Katedra Elektroniki AGH 2 Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe Zaawansowany VHDL Rajda & Kasperek 2014 Katedra Elektroniki AGH 1 Program wykładu Opis strukturalny map, generate Pojęcia leksykalne

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

VHDL. Behawioralny Strukturalny Czasowy. Poziom RTL

VHDL. Behawioralny Strukturalny Czasowy. Poziom RTL Style opisu VHDL VHDL Behawioralny Strukturalny Czasowy Równania boolowskie Poziom RTL Przebieg czasowy c = a v b c

Bardziej szczegółowo

Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe. Zaawansowany VHDL. Rajda & Kasperek 2015 Katedra Elektroniki AGH 1

Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe. Zaawansowany VHDL. Rajda & Kasperek 2015 Katedra Elektroniki AGH 1 Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe Zaawansowany VHDL Rajda & Kasperek 2015 Katedra Elektroniki AGH 1 Program wykładu Opis strukturalny map, generate Pojęcia leksykalne

Bardziej szczegółowo

Sterowniki Programowalne (SP)

Sterowniki Programowalne (SP) Sterowniki Programowalne (SP) Wybrane aspekty procesu tworzenia oprogramowania dla sterownika PLC Podstawy języka funkcjonalnych schematów blokowych (FBD) Politechnika Gdańska Wydział Elektrotechniki i

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

Projektowanie systemów cyfrowych w językach opisu sprzętu. Studium Zaoczne IV rok kierunek Elektronika i Telekomunikacja. Wykład 2

Projektowanie systemów cyfrowych w językach opisu sprzętu. Studium Zaoczne IV rok kierunek Elektronika i Telekomunikacja. Wykład 2 Projektowanie systemów cyfrowych w językach opisu sprzętu Studium Zaoczne IV rok kierunek Elektronika i Telekomunikacja Wykład 2 Program wykładu VHDL przykłady VHDL jednostki projektowe VHDL pojęcia leksykalne

Bardziej szczegółowo

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014 Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014 Temat 1. Algebra Boole a i bramki 1). Podać przykład dowolnego prawa lub tożsamości, które jest spełnione w algebrze Boole

Bardziej szczegółowo

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

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

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

Programowanie Układów Logicznych kod kursu: ETD6203. VHDL, ISE WebPACK, Plan Ahead, Impact W

Programowanie Układów Logicznych kod kursu: ETD6203. VHDL, ISE WebPACK, Plan Ahead, Impact W Programowanie Układów Logicznych kod kursu: ETD6203 VHDL, ISE WebPACK, Plan Ahead, Impact W2 28.02.2018 mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec Plan wykładu 1 2 3 4 5 6 VHDL powtórka ważniejszych

Bardziej szczegółowo

Laboratorium Projektowania Systemów VLSI-ASIC Katedra Elektroniki Akademia Górniczo-Hutnicza

Laboratorium Projektowania Systemów VLSI-ASIC Katedra Elektroniki Akademia Górniczo-Hutnicza Laboratorium Projektowania Systemów VLSI-ASIC Katedra Elektroniki Akademia Górniczo-Hutnicza Projektowanie układów VLSI-ASIC za pomocą techniki komórek standardowych przy użyciu pakietu Cadence Programowanie,

Bardziej szczegółowo

Rok akademicki: 2013/2014 Kod: JIS s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Rok akademicki: 2013/2014 Kod: JIS s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: - Nazwa modułu: Języki opisu sprzętu Rok akademicki: 2013/2014 Kod: JIS-1-015-s Punkty ECTS: 5 Wydział: Fizyki i Informatyki Stosowanej Kierunek: Informatyka Stosowana Specjalność: - Poziom studiów: Studia

Bardziej szczegółowo

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

Układy reprogramowalne i SoC Język VHDL (część 1) Układy reprogramowalne i SoC Język VHDL (część 1) Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń

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

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe Wydział Zarządzania AGH Katedra Informatyki Stosowanej Podstawy VBA cz. 1 Programowanie 1 Program wykładu Struktura programu Instrukcja przypisania Wprowadzanie danych Wyprowadzanie wyników Instrukcja

Bardziej szczegółowo

Opisy efektów kształcenia dla modułu

Opisy efektów kształcenia dla modułu Karta modułu - Języki opisu sprzętu 1 / 8 Nazwa modułu: Języki opisu sprzętu Rocznik: 2012/2013 Kod: JIS-1-013-s Punkty ECTS: 5 Wydział: Fizyki i Informatyki Stosowanej Poziom studiów: Studia I stopnia

Bardziej szczegółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,

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 3 (4h) Konwersja i wyświetlania informacji binarnej w VHDL Instrukcja do zajęć laboratoryjnych z przedmiotu Synteza

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

Synteza logiczna APSC

Synteza logiczna APSC Jest to proces tłumaczenia opisu projektu przygotowanego na wysokim poziomie abstrakcji na zoptymalizowaną reprezentację na poziomie bramek logicznych w oparciu o zadaną technologiczną bibliotekę komórek

Bardziej szczegółowo

Wyświetlacz siedmiosegmentowy

Wyświetlacz siedmiosegmentowy Wyświetlacz siedmiosegmentowy autorzy: Tomasz Perek Tomasz Biernat Projekt: Układ, który liczbę podaną w postaci binarnej wyświetla w systemie szesnastkowym, ósemkowym oraz dziesiętnym. Wyświetlacz siedmiosegmentowy

Bardziej szczegółowo

Język AHDL. Synteza strukturalna. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska H D L

Język AHDL. Synteza strukturalna. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska H D L Język A Synteza strukturalna 1 Synteza strukturalna icznik Rejestr B l o k i F u n k c j o n a l n e 1. Składamy układ z bloków funkcjonalnych 2. Odwzorowanie technologiczne 2 Komponent Wyboru odpowiedniej

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

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ]; Braki w SQL obsługi zdarzeń i sytuacji wyjątkowych funkcji i procedur użytkownika definiowania złożonych ograniczeń integralnościowych Proceduralny SQL Transact- SQL używany przez Microsoft SQL Server

Bardziej szczegółowo

Bloki anonimowe w PL/SQL

Bloki anonimowe w PL/SQL Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia

Bardziej szczegółowo

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0 Uwaga: DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0 1. Zostały pominięte diagramy: CYFRA, CYFRA SZESNASTKOWA, ZNAK i LITERA. Nie została uwzględniona możliwość posługiwania się komentarzami. 2. Brakuje

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

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Język programowania Ruby Marcin Młotkowski 12 kwietnia 2018 Plan wykładu 1 Wstęp 2 Typy numeryczne Łańcuchy znaków (klasa String) Przedziały Tablice i tablice asocjacyjne Nazwy

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Architektura komputerów Wykład 2

Architektura komputerów Wykład 2 Architektura komputerów Wykład 2 Jan Kazimirski 1 Elementy techniki cyfrowej 2 Plan wykładu Algebra Boole'a Podstawowe układy cyfrowe bramki Układy kombinacyjne Układy sekwencyjne 3 Algebra Boole'a Stosowana

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 Evatronix KontrolerEthernet MAC (Media Access Control)

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 UKŁADÓW PROGRAMOWALNYCH Wydziałowy Zakład Metrologii Mikro- i Nanostruktur SEMESTR LETNI 2016

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH Wydziałowy Zakład Metrologii Mikro- i Nanostruktur SEMESTR LETNI 2016 LABORATORIUM UKŁADÓW PROGRAMOWALNYCH Wydziałowy Zakład Metrologii Mikro- i Nanostruktur SEMESTR LETNI 2016 Prowadzący: dr inż. Daniel Kopiec email: daniel.kopiec@pwr.edu.pl Pierwszy projekt w środowisku

Bardziej szczegółowo

Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne

Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne Schemat ogólny X Y Układ kombinacyjny S Z Pamięć Zegar Działanie układu Zmiany wartości wektora S możliwe tylko w dyskretnych chwilach czasowych

Bardziej szczegółowo