Wykład 4. Języki Opisu Sprzętu

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

Download "Wykład 4. Języki Opisu Sprzętu"

Transkrypt

1 Języki Opisu Sprzętu Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D , tel. w , Wprowadzenie do Veriloga Przypisania proceduralne (c. d.) Wykład listopad 2017 Operatory w Verilogu Logika iteracyjna a automat skończony Struktura automatu skończonego (FSM) Przykład ręcznego projektowania automatu skończonego: detektor sekwencji 101 Metody kodowania w Verilogu automatu skończonego a wyniki z syntezy AGH WFiIS Informatyka Stosowana Języki Opisu Sprzętu 1

2 reg x, y,z; initial begin x = #5 1'b0; //x otrzymuje wartość 0 w chwili 5 y = #3 1'b1; //y otrzymuje wartość 1 w chwili 8 z = #6 1'b0; //z otrzymuje wartość 0 w chwili 14 end x y z Incisive, Cadence AGH, WFiIS, HDL 2

3 reg x, y,z; initial begin x <= #5 1'b0; //x otrzymuje wartość 0 w chwili 5 y <= #3 1'b1; //y otrzymuje wartość 1 w chwili 3 z <= #6 1'b0; //z otrzymuje wartość 0 w chwili 6 end x y z Incisive, Cadence AGH, WFiIS, HDL 3

4 reg a, b,c, d; initial begin a <= #5 1'b0; //a otrzymuje wartość 0 w chwili 5 b = #3 1'b1; //b otrzymuje wartość 1 w chwili 3 c <= #6 1'b0; //c otrzymuje wartość 0 w chwili 9 d = #7 1'b0; //d otrzymuje wartość 0 w chwili 10 end a b c d Incisive, Cadence AGH, WFiIS, HDL 4

5 reg a, b,c, d; initial begin a = #5 1'b0; //a otrzymuje wartość 0 w chwili 5 b <= #3 1'b1; //b otrzymuje wartość 1 w chwili 8 c = #6 1'b0; //c otrzymuje wartość 0 w chwili 11 d <= #7 1'b0; //d otrzymuje wartość 0 w chwili 18 end a b c d Incisive, Cadence AGH, WFiIS, HDL 5

6 Nieblokujące przypisanie proceduralne (c.d.) Stosowane są jako metoda modelowania równoczesnego transferu danych kilkoma różnymi drogami zachodzącego w momencie wystąpienia pewnego zdarzenia. (posedge clock) begin reg1 <= #1 in1; reg2 clock) in2 ^ in3; reg3 <= #1 reg1; //stara wartość reg1 end Przy każdym narastającym zboczu zegara zachodzi następująca sekwencja zdarzeń: Odczytane zostają wartości zmiennych in1, in2, in3, reg1 występujących po stronie prawej przypisań. Wyrażenia występujące z prawej strony są obliczane, a ich wyniki zapamiętywane w tymczasowych zmiennych symulatora. Operacje wpisania uzyskanych wyników do strony lewej są umieszczane w kolejce wykonania pod czasami określonymi w instrukcjach. Tzn. zapis zmiennych reg1 i reg3 jest zaplanowany na chwilę czasu 1 po narastającym zboczu zegara, a zapis zmiennej reg2 odbędzie się w chwili wystąpienia opadającego zbocza zegara. Operacje przypisania są wykonywane w przewidzianym czasie. Faktyczna kolejność przestaje być istotna gdyż przypisywane wartości są już obliczone i czekają. W ten sposób wiadomo, że w reg3 znajdzie się stara wartość reg1 nawet jeśli przypisanie do reg1 nastąpi wcześniej. AGH, WFiIS, HDL 6

7 Nieblokujące przypisanie proceduralne (c.d.) Dwa równoczesne bloki always z przypisaniami sekwencyjnymi clock) a = b; clock) b = a; Występuje hazard. Nie wiemy, która z operacji zostanie wykonana wcześniej. Zawartości rejestrów nie zostaną wymienione, ale w obydwu znajdzie się ta sama wartość tzn. początkowa wartość a lub b, zależnie od konkretnej implementacji Veriloga. AGH, WFiIS, HDL 7

8 Nieblokujące przypisanie proceduralne (c.d.) Dwa równoczesne bloki always z przypisaniami równoczesnymi clock) a <= b; clock) b <= a; Zawartości zmiennych a i b zostaną zamienione na każdym narastającym zboczu zegara, gdyż operacje są wykonywane z pośredniczeniem przez zmienne tymczasowe. To samo można osiągnąć inaczej, ale dłużej przy użyciu zmiennych tymczasowych. AGH, WFiIS, HDL 8

9 Nieblokujące przypisanie proceduralne (c.d.) Stosowanie przypisań nie blokujących wyklucza potrzebę używania zmiennych tymczasowych. clock) begin temp_a = a; temp_b = b; a = temp_b; b = temp_a; end Stosowanie przypisań równoczesnych jest rekomendowane gdyż zabezpiecza przed powstaniem hazardu tzn. rezultat nie zależy od kolejności wykonania operacji. Z drugiej strony przypisania równoczesne mogą spowodować spowolnienie symulacji i większe zużycie pamięci. AGH, WFiIS, HDL 9

10 Przypisania z opóźnieniami Pięć przypadków: #d a = b; LHS Blocking Left Hand Side a = #d b; RHS Blocking Right Hand Side #d a <= b; LHS Nonblocking Left Hand Side a <= #d b; RHS Nonblocking Right Hand Side assign #d a = b; Continuous AGH, WFiIS, HDL 10

11 Blocking assignment delay models module adder_lhs_b (input [3:0] a, b, input ci, output reg co, output reg [3:0] sum); #12 {co, sum} = a + b + ci; LHS Blocking Assignment endmodule ISim, Xilinx WARNING:Xst:916 - adder_lhs_b.v" line 8: Delay is ignored for synthesis. Symulacja po syntezie będzie zupełnie odmienna. #12 a b ci sum co ISim, Xilinx Model błędny! Nie istnieje odpowiedni sprzęt. Opóźnienie #12 jest obliczane od pierwszej zmiany na wejściach, a wynik jest obliczany w oparciu o bieżące wartości sygnałów. AGH, WFiIS, HDL 11

12 LHS Blocking Assignment Rekomendacje do modelowania: Nie stawiaj opóźnień z lewej strony przypisania blokującego w modelach układów kombinacyjnych. To jest zły styl kodowania. Rekomendacje do modułów testujących: Używanie opóźnień z lewej strony przypisania blokującego w modułach testujących jest właściwe. To jest poprawny sposób modelowania odstępów czasowych pomiędzy kolejnymi zdarzeniami wymuszeń na wejściach testowanego modułu. AGH, WFiIS, HDL 12

13 Blocking assignment delay models RHS Blocking Assignment module adder_rhs_b (input [3:0] a, b, input ci, output reg co, output reg [3:0] sum); endmodule {co, sum} = #12 a + b + ci; #12 a b ci sum co Model błędny! Nie istnieje odpowiedni sprzęt. Opóźnienie #12 jest obliczane od pierwszej zmiany na wejściach, a wynik jest obliczany w oparciu o stare wartości sygnałów. ISim, Xilinx AGH, WFiIS, HDL 13

14 RHS Blocking Assignment Rekomendacje do modelowania: Nie stawiaj opóźnień z prawej strony przypisania blokującego w modelach układów kombinacyjnych. To jest zły styl kodowania. Rekomendacje do modułów testujących: Nie stawiaj opóźnień z prawej strony przypisania blokującego w modułach testujących. Ogólna rekomendacja: Używanie opóźnień z prawej strony przypisania blokującego jest zarówno mylące jak i w złym stylu. Należy unikać! AGH, WFiIS, HDL 14

15 Nonblocking assignment delay models module adder_lhs_nb (input [3:0] a, b, input ci, output reg co, output reg [3:0] sum); endmodule #12 {co, sum} <= a + b + ci; LHS Nonblocking Assignment #12 a b ci sum co Model błędny! Nie istnieje odpowiedni sprzęt. ISim, Xilinx Opóźnienie #12 jest obliczane od pierwszej zmiany na wejściach, a wynik jest obliczany w oparciu o bieżące wartości sygnałów. AGH, WFiIS, HDL 15

16 LHS Nonblocking Assignment Rekomendacje do modelowania: Nie stawiaj opóźnień z lewej strony przypisania nieblokującego w modelach układów kombinacyjnych. To jest zły styl kodowania. Rekomendacje do modułów testujących: Przypisania nieblokujące są mniej efektywne niż przypisania blokujące. Dlatego generalnie odradza się stosowania opóźnień po lewej stronie przypisań nieblokujących zarówno w modelach jak i modułów testujących. AGH, WFiIS, HDL 16

17 Nonblocking assignment delay models module adder_rhs_nb (input [3:0] a, b, input ci, output reg co, output reg [3:0] sum); endmodule {co, sum} <= #12 a + b + ci; RHS Nonblocking Assignment #12 a b ci sum co Poprawne modelowanie logiki transportowej ISim, Xilinx AGH, WFiIS, HDL 17

18 RHS Nonblocking Assignment Rekomendacje do modelowania: Używaj opóźnień z prawej strony przypisania nieblokującego do modelowania cyfrowej linii opóźniającej. To jest dobry styl kodowania. Rekomendacje do modułów testujących: Ten styl jest często stosowany w modułach testujących kiedy wymuszenie musi być zaplanowane na przyszłych krawędziach zegara lub po ustalonym opóźnieniu, nie blokując przydziału kolejnych zdarzeń wymuszających w tym samym bloku proceduralnym. Ogólna rekomendacja: Stosuj opóźnienia z prawej strony przypisania nieblokującego tylko przy modelowaniu propagacji sygnałów wyjściowych o zachowaniu transportowym. Ten styl kodowania będzie dokładnie modelował linie opóźniające i logikę kombinacyjną z czysto transportowymi opóźnieniami. Jednak ten styl powoduje spowolnienie symulacji. AGH, WFiIS, HDL 18

19 Continuous assignment delay models module adder_lhs_cont (input [3:0] a, b, input ci, output reg co, output reg [3:0] sum); endmodule assign #12 {co, sum} = a + b + ci; LHS Continuous Assignment #12 a b ci sum co Poprawne modelowanie logiki inercyjnej ISim, Xilinx AGH, WFiIS, HDL 19

20 LHS Continuous Assignment Rekomendacje do modelowania: Używaj z prawej strony przypisania ciągłych z opóźnieniami do modelowania prostej logiki kombinacyjnej. To jest dobry styl kodowania do poprawnego modelowania logiki kombinacyjnej z opóźnieniem inercyjnym. Rekomendacje do modułów testujących: Ciągłe przypisania mogą być używane w dowolnym miejscu w modułach testujących, aby sterować wartościami wymuszeń na portach wejściowych i dwukierunkowych portach instancji modułów testowanych. Ogólna rekomendacja: Do modelowania złożonej logiki kombinacyjnej z użyciem konstrukcji typu casecasez-casex lub if-else należy zawsze używać bloków always bez opóźnień. Wyjścia z takich bloków mogą być następnie skierowane do przypisania ciągłych w celu zastosowania opóźnień do takich modeli. Taki styl kodowania poprawnie modeluje złożoną logikę kombinacyjną z opóźnieniem inercyjnym. AGH, WFiIS, HDL 20

21 Zestawienie rekomendacji stosowania przypisań z opóźnieniami RTL TB blocking LHS error correct blocking RHS error avoid nonblocking LHS error avoid nonblocking RHS transport correct continuous LHS inertial correct AGH, WFiIS, HDL 21

22 module blk (input clk, d, output reg [1:0] r); clk) begin r[0] = d; r[1] = r[0]; end endmodule Na każdym zboczu narastającym zegara wartość z wejścia d zostanie przypisana do obu bitów rejestru r. Jeśli d=1 b1 to początkowo niezainicjowany rejestr r=2 bxx zmieni wartość na r=2 b11. module NONblk (input clk, d, output reg [1:0] r); clk) begin r[0] <= d; r[1] <= r[0]; end endmodule Na każdym zboczu narastającym zegara wartości wejścia d i mniejznaczącego bitu rejestru r zostaną zapamiętane w zmiennych tymczasowych, a następnie przypisane. Jeśli d=1 b1 to początkowo niezainicjowany rejestr r=2 bxx na pierwszym narastającym zboczu zegara zmieni wartość na r=2 bx1., a na drugim na r=2 b11. AGH, WFiIS, HDL 22

23 module blk (input clk, d, output reg [1:0] r); clk) begin r[0] = d; r[1] = r[0]; end endmodule Incisive, Cadence r clk d Wynik syntezy: Encounter RTL Compiler, Cadence AGH, WFiIS, HDL 23

24 module NONblk (input clk, d, output reg [1:0] r); clk) begin r[0] <= d; r[1] <= r[0]; end endmodule r Incisive, Cadence r[1] r[0] clk Wynik syntezy: d AGH, WFiIS, HDL Encounter RTL Compiler, Cadence 24

25 Reguły stosowania przypisań blokujących i nieblokujących Podstawowe zasady syntezowalności kodu Zawsze używaj przypisań blokujących (=) w blokach always przeznaczonych do tworzenia układów kombinacyjnych, Zawsze używaj przypisań nieblokujących (<=) w blokach always przeznaczonych do tworzenia układów sekwencyjnych, Nie mieszaj obu typów przypisań w jednym bloku always, Nie wykonuj przypisań do tej samej zmiennej w dwóch różnych blokach always. AGH, WFiIS, HDL 25

26 Modelowanie za pomocą bloku always Modelowanie układów sekwencyjnych Na liście wrażliwości znajduje się aktywne zbocze sygnału zegarowego i ewentualnie aktywne zbocze asynchronicznego sygnału kasowania: clk, posedge rst) Zatrzaski Są sekwencyjne gdyż trudno nie przyznać, że są to elementy pamięciowe Są kombinacyjne, gdyż powstają przy błędnym modelowaniu układów kombinacyjnych Modelowanie układów kombinacyjnych Na liście wrażliwości znajdują się zmiany wartości wszystkich sygnałów występujących po stronie prawej przypisań w tym bloku: AGH, WFiIS, HDL 26

27 Operatory arytmetyczne Operatory dwuargumentowe: (**) potęgowanie, (*) mnożenie, (/) dzielenie, (+) dodawanie, (-) odejmowanie, (%) modulo. Jeśli jakikolwiek bit argumentów ma wartość nieokreśloną x to cały wynik jest nieokreślony. Operatory jednoargumentowe (+) i (-) określają znak argumentu. reg [3:0] A, B; integer D, E; //A = 4 b0011; B = 4 b0100; D = 6; E = 4; A + B //wynik 4 b0111 D/E //wynik 1; obcina czesc ułamkową A * B //wynik 4 b1100 B A //wynik 4b 0001 Wynikiem operacji będzie real jeśli jeden z argumentów jest real. Jeśli obydwa argumenty są bez znaku to wynik także jest bez znaku. data flow level AGH, WFiIS, HDL 27

28 Operatory logiczne data flow level Operatory dwuargumentowe: ( ) logiczne-lub, (&&) logiczne-i. Operatory jednoargumentowe: (!) logiczne-nie. Wynikiem zawsze jest wartość jednobitowa: 0 fałsz, 1 prawda lub x nieokreślony. Wynik różny od zera jest traktowany jak prawda. //A = 3; B = 0; A && B //daje falsz A B //daje prawda!a //daje falsz!b //daje prawda //A = 2 b0x; B = 2 b10; A && B //daje x AGH, WFiIS, HDL 28

29 Operatory relacyjne data flow level (>) większy, (<) mniejszy, (>=) większy-lub-równy, (>=) mniejszy-lub-równy. Jeśli argument jest x lub z to wynik jest x. //A = 4; B = 3; X = 4 b1010; Y = 4 b1101; Z = 4 b1xxx; A <= B A > B Y >= X Y < Z //wynik 0-falsz //wynik 1-prawda //wynik 1-prawda //wynik x AGH, WFiIS, HDL 29

30 Operatory równości Operatory dwuargumentowe: (==) równość, (!=) nierówność oraz wersje z uwzględnieniem x i z (===) i (!==). Wynikiem zawsze jest wartość jednobitowa: 0 fałsz, 1 prawda, a wartość x nieokreślony może się pojawić tylko w przypadkach (==) i (!=). //A = 4; B = 3; //X = 4 b1010; Y = 4 b1101; //Z = 4 b1xxz; M = 4 b1xxz; N = 4 b1xxx; A == B A!= B X == Z Z === M Z === N M!== N //daje falsz //daje prawda //daje x //daje prawda //daje falsz //daje prawda data flow level Używać oszczędnie w zastosowaniu do syntezy: reg a; if (a == 1 b1)... ; //jest równoważne if(a)... ; AGH, WFiIS, HDL 30

31 Operatory bitowe Operatory dwuargumentowe: ( ) bitowe-lub, (&) bitowe-i, (^) bitowe-xor, (~^ lub ^~) bitowe-xnor. data flow level Operatory jednoargumentowe: (~) bitowe-nie. Jeśli argumenty są różnych rozmiarów to krótszy uzupełniany jest zerami z przodu. & 0 1 x x x 0 x x 0 1 x x x x 1 x ^ 0 1 x x x x x x x ^~ 0 1 x x x x x x x //X = 4 b1010; Y = 4 b1101; z jest traktowane jak x. //Z = 4 b10x1; ~X //daje 4 b0101 X & Y //daje 4 b1000 X Y //daje 4 b1111 a X Y daje 1 b1 X ^ Y //bitowy xor daje 4 b0111 X ~^ Y //bitowy xnor daje 4 b1000 X & Z //daje 4 b10x0 ~ x x AGH, WFiIS, HDL 31

32 Operatory redukcyjne Operatory jednoargumentowe : ( ) or, (&) and, (^) xor, (~ ) nor, (~&) nand, (~^ lub ^~) xnor. data flow level //X = 4 b1010; &X //1 & 0 & 1 & 0 daje 1 b0 X // daje 1 b1 ^X //1 ^ 0 ^ 1 ^ 0 daje 1 b0 AGH, WFiIS, HDL 32

33 Operatory przesunięć Operatory dwuargumentowe: (>>) w prawo, (<<) w lewo. data flow level działają na wektorach, przesuwają określoną w drugim argumencie ilość bitów, powstające miejsce zapełniają zawsze zerami (nie ma zawijania). //X = 4 b1100; Y = X >> 1; //daje 4 b0110 Y = X << 1; //daje 4 b1000 Y = X << 2; //daje 4 b0000 AGH, WFiIS, HDL 33

34 Operator dołączania Operatory wieloargumentowy: ({}) łączenie. Działa na argumentach o znanym rozmiarze. data flow level //A=1 b1, B=2 b00, C=2 b10, D=3 b110 reg [3:0] Y0; reg [10:0] Y1; reg [2:0] Y2; Y0 = {B,C}; //daje 4 b0010 Y1 = {A,B,C,D,3 b001}; //daje 11 b Y2 = {A,B[0],C[1]}; //daje 3 b101 AGH, WFiIS, HDL 34

35 Operator powtarzania data flow level Polega na wielokrotnym łączeniu tyle razy ile określono w stałej replikacji {stala_repli{arg}} reg A; reg [1:0] B, C; reg [2:0] D; //A=1 b1; B=2 b00; C=2 b10; reg [3:0] Y0; reg [7:0] Y1; reg [9:0] Y2; Y0 = { 4{A} }; //daje 4 b1111 Y1 = { 4{A}, 2{B} }; //daje 8 b Y2 = { 4{A}, 2{B}, C}; //daje 10 b AGH, WFiIS, HDL 35

36 Operator warunkowy Zastępuje instrukcję if, Dostarcza konstrukcji multipleksera 2 do 1: data flow level warunek? wyraz_prawda : wyraz_falsz //bufor trójstanowy trzy-bitowego wire [2:0] addr_bus, adrr_out; assign addr_bus = driver_enable? adrr_out : 3 bz; //2-do-1 mux assign out = control? in1 : in2; //zagniezdzanie assign out = (A==3)? (control?x:y) : (control?m:n); AGH, WFiIS, HDL 36

37 Charakteryzuje się: Układ synchroniczny jednym sygnałem zegarowym (master clock) i jednym sygnałem ustawiania/kasowania (master set/reset), które sterują wszystkimi elementami sekwencyjnymi w projekcie. Za najbardziej bezpieczne podejście w dziedzinie zapewnienia właściwych relacji czasowych w układzie scalonym uważa się metodologię układu synchronicznego. Podejście w pełni synchroniczne może wydłużać wstępną fazę projektu (up-front design time). Jednak osiągamy znaczną oszczędność w czasie weryfikacji. Całkowicie synchroniczny projekt może używać więcej zasobów ale: Układ będzie bardziej stabilny, Krótszy będzie czas debugowania, Skuteczna będzie statyczna analiza czasowa, Łatwość przeniesienia na inną technologię. AGH, WFiIS, HDL 37

38 Reguły projektu synchronicznego Wszystkie przerzutniki w ścieżce danych powinny być bezpośrednio połączone do jednego wspólnego globalnego bufora zegara, Wszystkie przerzutniki powinny być wyzwalane na tym samym zboczu zegara, Nie mogą istnieć przerzutniki taktowane sygnałem innym niż zegar, Jeśli potrzeba więcej niż jeden zegar i dane wędrują pomiędzy domenami różnych zegarów, to muszą być resynchronizowane za pomocą kilku przerzutników gdy przechodzą z jednej domeny do drugiej. nie_zegar) AGH, WFiIS, HDL 38

39 Detektor sekwencji 0101 x[3:0] z[3:0] 1/0 1/0 0/0 0/0 A B C D 0/0 1/0 0/0 1/1 AGH, WFiIS, HDL 39

40 Wejścia Wyjścia ps x ns z A 0 B 0 A 1 A 0 B 0 B 0 B 1 C 0 C 0 D 0 C 1 A 0 D 0 B 0 D 1 C 1 Detektor sekwencji 0101 Wejścia Wyjścia ps0,ps1 x ns0,ns1 z 0,0 0 0,1 0 0,0 1 0,0 0 0,1 0 0,1 0 0,1 1 1,0 0 1,0 0 1,1 0 1,0 1 0,0 0 1,1 0 0,1 0 1,1 1 1,0 1 1/0 0/0 0/0 A B C D 0/0 1/0 1/1 1/0 0/0 ns1 = x ps0,ps1 x ps0,ps1 x ns0 = ps1 x + ps0 ps1 x z = ps0 ps1 x ps0,ps1 x AGH, WFiIS, HDL 40

41 Logika iteracyjna ns0 = ps1 x + ps0 ps1 x ns1 = x z = ps0 ps1 x nst[1] ps0 ps1 x[1] ns0 ns1 nst[2] z[1] AGH, WFiIS, HDL 41

42 Logika iteracyjna x[0] x[1] x[2] x[n-1] ps0 nst[0] ns0 nst[1] ps0 ns0 nst[2] ps0 ns0 ps0 nst[n-1] ns0 nst[n] ps1 ns1 ps1 ns1 ps1 ns1 ps1 ns1 z[0] z[1] z[2] z[n-1] AGH, WFiIS, HDL 42

43 Logika iteracyjna module celastanu(input x, input [1:0] pst, output reg z, output reg [1:0] nst); module seqdet_iter #(parameter N=6) (input [N-1:0] x, output [N-1:0] z); //N - rozmiar detektora localparam A=2'b00, B=2'b01, C=2'b10, D=2'b11; wire [1:0] nst [N:0]; genvar i; assign nst[0] = A; localparam A=2'b00, B=2'b01, C=2'b10, D=2'b11; //okreslenie nastepnego stanu case(pst) A: nst = x?a:b; B: nst = x?c:b; C: nst = x?a:d; D: nst = x?c:b; endcase //okreslenie wyjscia case(pst) A: z = x?1'b0:1'b0; B: z = x?1'b0:1'b0; C: z = x?1'b0:1'b0; D: z = x?1'b1:1'b0; endcase endmodule generate for(i=1; i<=n; i=i+1) begin: det0101 celastanu statecell (x[i-1], nst[i-1], z[i-1], nst[i]); end endgenerate endmodule AGH, WFiIS, HDL 43

44 Idea automatu skończonego x[0] x[1] x[2] x[n-1] ps0 nst[0] ns0 nst[1] ps0 ns0 nst[2] ps0 ns0 ps0 nst[n-1] ns0 nst[n] ps1 ns1 ps1 ns1 ps1 ns1 ps1 ns1 z[0] z[1] z[2] z[n-1] Przejście do automatu skończonego x[i] ps0 ps1 ns0 ns1 nst[i] Rejestr stanu z[i] AGH, WFiIS, HDL 44

45 X 1 X 2 X m Z 1 Z 2 Z n Uogólniony model automatu Q 1 + Q 1 Mealy ego Q 1 Uklad kombinacyjny Q 2 + Q 2 X=[X 1, X 2,... X m ] wektor wejść Z=[Z 1, Z 2,... Z n ] wektor wyjść S=[Q 1, Q 2,... Q k ] wektor stanu S + =[Q 1+, Q 2+,... Q k+ ] wektor stanu następnego Q 2 Q k Q k + Q k Z = λ(s,x) S + = δ(s,x) funkcja wyjść funkcja stanu clk AGH, WFiIS, HDL 45

46 Uogólniony model automatu Moore a Q + Q 1 1 Z = λ(s) S + = δ(s,x) funkcja wyjść funkcja stanu X 1 X 2 X m Q 1 Uklad Kombinacyjny stanu następnego Q 2 (wejścia rejetrus stanu) Q 2 + Q 2 Układ kombiancyjny wyjść Z 1 Z 2 Z n Q k Q k + Q k clk AGH, WFiIS, HDL 46

47 Detektor sekwencji - przykład Projekt detektora sekwencji 101. Jest to układ, który analizuje ciąg zer i jedynek przychodzący na wejście X i generujący wyjście Z=1, gdy wykryta zostanie określona sekwencja. X clk rst US Specyfikacja: Sygnał wejściowy X może się zmieniać tylko pomiędzy aktywnymi zboczami zegara, Każda sekwencja 101 pojawiająca się w strumieniu bitowym X powoduje pojawienie się 1 na wyjściu Z w momencie ostatniej jedynki, Układ nie jest resetowany w momencie pojawienia się 1 na wyjściu. Przykładowwe działanie układu: X= Z= time AGH, WFiIS, HDL 47 Z 1

48 Detektor sekwencji - przykład Konstrukcja grafu stanów dla automatu Mealy ego. Zaczynamy od stanu resetu układu oznaczonego przez S 0. Jeśli w tym stanie strumień wejściowy X podaje: 0 to układ pozostaje w tym stanie gdyż nie rozpoczęła się poszukiwana sekwencja, 1 to stan układu musi ulec zmianie do S 1 aby zapamiętać, że pierwszy element poszukiwanej sekwencji został wykryty. X=0/Z=0 S 0 X=1/Z=0 S 1 AGH, WFiIS, HDL 48

49 Detektor sekwencji - przykład Analizujemy zachowanie układu w stanie S 1. Jeśli w tym stanie strumień wejściowy X podaje: 1 to układ pozostaje w tym stanie gdyż nowo otrzymana jedynka ponownie rozpoczyna poszukiwaną sekwencja, 0 to stan układu musi ulec zmianie do S 2 aby zapamiętać, że pierwsze dwa elementy poszukiwanej sekwencji zostały wykryte. 0/0 S 0 1/0 S 1 1/0 S 2 0/0 AGH, WFiIS, HDL 49

50 Detektor sekwencji - przykład Analizujemy zachowanie układu w stanie S 2. Jeśli w tym stanie strumień wejściowy X podaje: 1 to poszukiwana sekwencja została ukończona i wyjściowa jedynka ma być wygenerowana. Jaki jednak jest stan następny? Nowy stan czy S 1 czy S 0? S 0 jest wykluczone, gdyż układ nie podlega resetowaniu po rozpoznaniu sekwencji. Oznacza to, że ostatnia jedynka w sekwencji jest równocześnie pierwszą w kolejnej sekwencji. Dlatego stanem następnym musi być S 1. 0 to stan układu powinien być wykasowany do S 0 gdyż jest to drugie zero i sekwencja 00 nie należy do poszukiwanej sekwencji. 0/0 S 0 1/0 0/0 1/1 S 1 1/0 S 2 0/0 AGH, WFiIS, HDL 50

51 Detektor sekwencji - przykład 0/0 S 0 1/0 0/0 1/1 S 1 1/0 S 2 0/0 Tabela stanów: Stan obecny Stan następny Obecne wyjście Z Nazwa Symbol X=0 X=1 X=0 X=1 Start S 0 S 0 S Kończące 1 S 1 S 2 S Kończące 10 S 2 S 0 S AGH, WFiIS, HDL 51

52 Detektor sekwencji - przykład Tabela stanów: Stan obecny Stan następny Obecne wyjście Z Nazwa Symbol X=0 X=1 X=0 X=1 Start S 0 S 0 S Kończące 1 S 1 S 2 S Kończące 10 S 2 S 0 S Stany kodujemy za pomocą dwóch przerzutników A i B. Tabela przejść: Stan obecny Stan następny A n+1 B n+1 Obecne wyjście Z Nazwa A n B n X=0 X=1 X=0 X=1 Start Kończące Kończące AGH, WFiIS, HDL 52

53 Detektor sekwencji - przykład Tabelę przejść rozpisujemy na tabele Karnougha: Stan obecny Stan następny A n+1 B n+1 Obecne wyjście Z Nazwa A n B n X=0 X=1 X=0 X=1 Start Kończące Kończące Nie potrzebny 11 xx xx x x AB X x x AB X x x AB X x x A n+1 = X B B n+1 = X Z = XA AGH, WFiIS, HDL 53

54 Detektor sekwencji - przykład Na podstawie tabel Karnaugha - ręcznie Układ Mealy ego i przebiegi czasowe w nim Incisive, Cadence clk rst X Z state Wyjście zmienia się asynchronicznie w stosunku do sygnału zegarowego AGH, WFiIS, HDL 54

55 Detektor sekwencji - przykład Konstrukcja grafu stanów dla automatu Moore a. Zaczynamy od stanu resetu układu oznaczonego przez S 0. Jeśli w tym stanie strumień wejściowy X podaje: 0 to układ pozostaje w tym stanie gdyż nie rozpoczęła się poszukiwana sekwencja, 1 to stan układu musi ulec zmianie do S 1 aby zapamiętać, że pierwszy element poszukiwanej sekwencji został wykryty. X=0 S 0 Z=0 X=1 S 1 Z=0 AGH, WFiIS, HDL 55

56 Detektor sekwencji - przykład Analizujemy zachowanie układu w stanie S 1. Jeśli w tym stanie strumień wejściowy X podaje: 1 to układ pozostaje w tym stanie gdyż nowo otrzymana jedynka ponownie rozpoczyna poszukiwaną sekwencję, 0 to stan układu musi ulec zmianie do S 2 aby zapamiętać, że pierwsze dwa elementy poszukiwanej sekwencji zostały wykryte. 0 1 S 0 Z=0 1 S 1 Z=0 0 S 2 Z=0 AGH, WFiIS, HDL 56

57 Detektor sekwencji - przykład Analizujemy zachowanie układu w stanie S 2. Jeśli w tym stanie strumień wejściowy X podaje: 1 to układ musi przejść do nowego stanu S 3 (nie może powrócić do S 1 ) gdyż nowo otrzymana jedynka kończy poszukiwaną sekwencję i sygnał wyjściowy musi ulec zmianie, 0 to układu wymaga wykasowania gdyż sekwencja 100 jest błędna. 0 1 S 0 Z=0 1 S 1 Z=0 0 0 S 3 Z=1 1 S 2 Z=0 AGH, WFiIS, HDL 57

58 Detektor sekwencji - przykład Analizujemy zachowanie układu w stanie S 3. Jeśli w tym stanie strumień wejściowy X podaje: 1 to układ musi powrócić do S 1 gdyż nowo otrzymana jedynka rozpoczyna ponownie poszukiwaną sekwencję, 0 to układ powinien wrócić do S 2 gdyż sekwencja 1010 powinna znów dać Z=1 po kolejnej jedynce na wejściu. 0 1 S 0 Z=0 1 S 1 Z= S 3 Z=1 0 1 S 2 Z=0 AGH, WFiIS, HDL 58

59 Detektor sekwencji - przykład 0 1 S 0 Z=0 1 S 1 Z=0 1 0 Tabela stanów: Stan obecny S 3 Z=1 0 S 2 Z=0 Stan następny Obecne wyjście Z Nazwa Symbol X=0 X=1 X=1 Start S 0 S 0 S 1 0 Kończące 1 S 1 S 2 S 1 0 Kończące 10 S 2 S 0 S 3 0 Kończące 101 S 3 S 2 S AGH, WFiIS, HDL 59

60 Detektor sekwencji - przykład Tabela stanów: Stan obecny Stan następny Obecne wyjście Z Nazwa Symbol X=0 X=1 X=1 Start S 0 S 0 S 1 0 Kończące 1 S 1 S 2 S 1 0 Kończące 10 S 2 S 0 S 3 0 Kończące 101 S 3 S 2 S 1 1 Tabela przejść: Stan obecny Stany kodujemy za pomocą dwóch przerzutników A i B. Stan następny A n+1 B n+1 Obecne wyjście Z Nazwa A n B n X=0 X=1 X=1 Start Kończące Kończące Kończące AGH, WFiIS, HDL 60

61 Detektor sekwencji - przykład Stan obecny Stan następny A n+1 B n+1 Obecne wyjście Z Nazwa A n B n X=0 X=1 X=1 Start Kończące Kończące Kończące AB X 0 1 AB X 0 1 A B Z = AB A n+1 = X B + XAB B n+1 = X AGH, WFiIS, HDL 61

62 Detektor sekwencji - przykład Na podstawie tabel Karnaugha - ręcznie Układ Moore a i przebiegi czasowe w nim Incisive, Cadence clk rst X Z state Wyjście zmienia się synchronicznie względem sygnału zegarowego AGH, WFiIS, HDL 62

63 Detektor sekwencji - przykład Układ Mealy ego Porównanie przebiegów czasowych Incisive, Cadence clk rst X Z state Układ Moore a clk rst X Z state Wyjście zmienia się asynchronicznie w stosunku do sygnału zegarowego Incisive, Cadence Wyjście zmienia sie synchronicznie względem sygnału zegarowego AGH, WFiIS, HDL 63

64 Detektor sekwencji - przykład Układ Mealy ego Porównanie wyników automatycznej syntezy za pomocą programu RTL Compiler Encounter RTL Compiler, Cadence Układ Moore a Encounter RTL Compiler, Cadence AGH, WFiIS, HDL 64

65 Metody kodowania automatu Dwa typy opisu automatu skończonego FSM w HDL: Implicite stany nie są deklarowane wyraźnie, Explicite wyraźnie zadeklarowane stany automatu. Metody opisu typu explicite w Verilogu: Metoda jedno procesowa, Metoda dwu procesowa, Metoda trój procesowa, Metoda z funkcją. Uwagi: Stosowanie assign w miejsce always do opisu bloków kombinacyjnych, zwłaszcza dla określenia funkcji wyjść może być wygodne. Wyjście rejestrowane może być potrzebne w przypadku automatów Mealy ego. Prezentowane schematy pochodzą z syntezy za pomocą RTL Compiler (Cadence) AGH, WFiIS, HDL 65

66 Opis bez wyraźnej deklaracji stanów module sum_3data_implicite #(parameter n=8) (input clk, input [n-1:0] data, output reg [n-1:0] total); always clk) total <= clk) total <= total + clk) total <= total + data; end endmodule niesyntezowalne Bardzo zły styl kodowania! clk) jest konstrukcją typu sterowania czasem i jako taka nie jest syntezowalna. AGH, WFiIS, HDL 66

67 Opis z wyraźną deklaracją stanów module sum_3data_explicite #(parameter n=8) (input clk, rst, input [n-1:0] data, output reg [n-1:0] total); reg [1:0] state; localparam A=2'b00, B=2'b01, C=2'b10; Deklaracja stanów automatu clk, negedge rst) if (~rst) state <= A; else case (state) A: begin total <= data; state <= B; end B: begin total <= total + data; state <= C; end C: begin total <= total + data; state <= A; end endcase endmodule AGH, WFiIS, HDL 67

68 Metoda jedno procesowa module seqdet_fsm1a (input clk, rst, x, output reg z); localparam A=2'b00, B=2'b01, C=2'b10; reg [1:0] state; clk, negedge rst) if(~rst) begin state <= A; z <= 1 b0; end else case(state) A: state <= x?a:b; B: state <= x?c:b; C: begin state <= A; z <= x; end endcase endmodule Encounter RTL Compiler, Cadence Jest to styl rozrzutny pod względem użytych zasobów sprzętowych, gdyż każdy sygnał wyjściowy jest syntezowany za pomocą przerzutnika. Oznacza to także, że wyjścia są dostarczane dopiero na następnym zboczu zegara po tym jak wyliczył je automat. AGH, WFiIS, HDL 68

69 Metoda dwu procesowa module seqdet_fsm1a (input clk, rst, x, output reg z); localparam A=2'b00, B=2'b01, C=2'b10; reg [1:0] state, nst; clk, negedge rst) if(~rst) state <= A; else state <= nst; Styl rekomendowany! begin nst = A; z = 1'b0; case(state) A: nst = x?a:b; B: nst = x?c:b; C: begin nst = A; z = x; end endcase end endmodule Encounter RTL Compiler, Cadence AGH, WFiIS, HDL 69

70 Metoda trój procesowa module seqdet_fsm1a (input clk, rst, x, output reg z); localparam A=2'b00, B=2'b01, C=2'b10; reg [1:0] state, nst; clk, negedge rst) if(~rst) state <= A; else state <= nst; begin nst = A; case(state) A: nst = x?a:b; B: nst = x?c:b; C: nst = A; endcase end begin z = 1'b0; case(state) A: z = 1'b0; B: z = 1'b0; C: z = x; endcase end endmodule AGH, WFiIS, HDL Encounter RTL Compiler, Cadence Przy dużej ilości wyjść warto je oddzielić w postaci osobnego bloku kombinacyjnego. Nie wpływa to na wynik syntezy. 70

71 Stosowanie assign module seqdet_fsm1a (input clk, rst, x, output z); localparam A=2'b00, B=2'b01, C=2'b10; Encounter RTL Compiler, Cadence reg [1:0] state, nst; clk, negedge rst) if(~rst) state <= A; else state <= nst; Blok kombinacyjny można też zapisać za pomocą przypisania ciągłego. begin nst = A; case(state) A: nst = x?a:b; B: nst = x?c:b; C: nst = A; endcase end assign z = (state == C) & x; endmodule AGH, WFiIS, HDL 71

72 Rejestrowane wyjścia Encounter RTL Compiler, Cadence module seqdet_fsm1a (input clk, rst, x, output reg z); localparam A=2'b00, B=2'b01, C=2'b10; reg [1:0] state, nst; clk, negedge rst) if(~rst) state <= A; else state <= nst; begin nst = A; case(state) A: nst = x?a:b; B: nst = x?c:b; C: nst = A; endcase end AGH, WFiIS, HDL posedge clk, negedge rst) if(~rst) z <= 1'b0; else begin case(state) A: z <= 1'b0; B: z <= 1'b0; C: z <= x; endcase end endmodule 72

73 Wnioskowane będą zatrzaski dla zmiennej nst gdyż brak określenia wartości domyślnych dla tej zmiennej. module seqdet_fsm1a (input clk, rst, x, output z); Metoda z funkcją Inny sposób uniknięcia zatrzasków to umieszczenie bloku logiki wewnątrz funkcji. module seqdet_fsm1a (input clk, rst, x, output z); localparam A=2'b00, B=2'b01, C=2'b10; reg [1:0] state; localparam A=2'b00, B=2'b01, C=2'b10; reg [1:0] state, nst; clk, negedge rst) if(~rst) state <= A; else state <= nst; begin case(state) A: nst = x?a:b; B: nst = x?c:b; C: nst = A; endcase end assign z = (state == C) & x; endmodule clk, negedge rst) if(~rst) state <= A; else state <= fsmnextstate(state, x); function [1:0] fsmnextstate (input [1:0] pst, input x); reg [1:0] nst; begin case(pst) A: nst = x?a:b; B: nst = x?c:b; C: nst = A; endcase fsmnextstate = nst; end endfunction assign z = (state == C) & x; endmodule AGH, WFiIS, HDL 73

74 module seqdet_fsm1a (input clk, rst, x, output z); localparam A=2'b00, B=2'b01, C=2'b10; reg [1:0] state, nst; clk, negedge rst) if(~rst) state <= A; else state <= nst; Encounter RTL Compiler, Cadence Wnioskowanie zatrzasków begin case(state) A: nst = x?a:b; B: nst = x?c:b; C: nst = A; endcase end assign z = (state == C) & x; endmodule AGH, WFiIS, HDL 74

75 module seqdet_fsm1a (input clk, rst, x, output z); localparam A=2'b00, B=2'b01, C=2'b10; reg [1:0] state, nst; clk, negedge rst) if(~rst) state <= A; else state <= nst; Encounter RTL Compiler, Cadence Unikanie wnioskowania zatrzasków poprzez wartość domyślną begin nst = A; case(state) A: nst = x?a:b; B: nst = x?c:b; C: nst = A; endcase end assign z = (state == C) & x; endmodule AGH, WFiIS, HDL 75

76 Unikanie wnioskowania zatrzasków poprzez zastosowanie funkcji Encounter RTL Compiler, Cadence module seqdet_fsm1a (input clk, rst, x, output z); localparam A=2'b00, B=2'b01, C=2'b10; reg [1:0] state; clk, negedge rst) if(~rst) state <= A; else state <= fsmnextstate(state, x); function [1:0] fsmnextstate (input [1:0] pst, input x); reg [1:0] nst; begin case(pst) A: nst = x?a:b; B: nst = x?c:b; C: nst = A; endcase fsmnextstate = nst; end endfunction assign z = (state == C) & x; endmodule AGH, WFiIS, HDL 76

77 wejście X Model automatu w Verilog-u Układ kombinacyjny funkcji stanu następnego case(stan) S0: nast_stan =...; S1:...;... Sn:...; endcase localparam S0=,..., Sn= ; reg [m:0] stan, next_stan; Rejestr stanu clk, negedge rst) if(~rst) stan <= S0; else stan <= nast_stan; stan stan X Układ kombinacyjny funkcji wyjść case(stan) S0: Z =...; S1: Sn:...; endcase wyjście Z AGH, WFiIS, HDL 77

Automat skończony FSM Finite State Machine

Automat skończony FSM Finite State Machine Automat skończony FSM Finite State Machine Projektowanie detektora sekwencji Laboratorium z Elektroniki Współczesnej A. Skoczeń, KOiDC, WFiIS, AGH, 2019 AGH, WFiIS, Elektronika Współczesna 1 Deterministyczny

Bardziej szczegółowo

Wykład 4. Języki Opisu Sprzętu. Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D , tel. w ,

Wykład 4. Języki Opisu Sprzętu. Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D , tel. w , Języki Opisu Sprzętu Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D-10 222, tel. w. 28-72, e-mail: skoczen@fis.agh.edu.pl Przypisania nieblokujące Stosowanie opóźnień w przypisaniach Wykład 4 2018

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

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

Wykład 5. Języki Opisu Sprzętu. Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D , tel. w ,

Wykład 5. Języki Opisu Sprzętu. Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D , tel. w , Języki Opisu Sprzętu Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D-10 222, tel. w. 28-72, e-mail: skoczen@fis.agh.edu.pl Proceduralne przypisanie ciągłe Wykład 5 2019 16 październik 2019 Operatory

Bardziej szczegółowo

Wykład 3. Języki Opisu Sprzętu. Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D , tel. w ,

Wykład 3. Języki Opisu Sprzętu. Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D , tel. w , Języki Opisu Sprzętu Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D-10 222, tel. w. 28-72, e-mail: skoczen@fis.agh.edu.pl Tablice i wektory Reguły łączenia portów Wykład 3 2018 10 październik 2018

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

(przykład uogólniony)

(przykład uogólniony) Serial Peripheral Interface (przykład uogólniony) Brak standardu. Inne stosowane nazwy: Synchronous Serial Port (SSP), 4 wire SSI (Synchronous Serial Interface, Texas Instrument), Microwire (National Semiconductor).

Bardziej szczegółowo

Układy cyfrowe w Verilog HDL. Elementy języka z przykładami. wersja: cz.3

Układy cyfrowe w Verilog HDL. Elementy języka z przykładami. wersja: cz.3 Układy cyfrowe w Verilog Elementy języka z przykładami wersja: 10.2009 cz.3 1 Układy sekwencyjne Układy sekwencyjne mają pamięć Układy synchroniczne najczęściej spotykane wszystkie elementy są kontrolowane

Bardziej szczegółowo

Programowalne układy logiczne kod kursu: ETD Podstawy języka Verilog W

Programowalne układy logiczne kod kursu: ETD Podstawy języka Verilog W Programowalne układy logiczne kod kursu: ETD008270 Podstawy języka Verilog W2 2.03.2018 mgr inż. Maciej Rudek 2 Tematyka kursu wykład Poziom abstrakcji systemów opisu sprzętu Historia Verilog został stworzony

Bardziej szczegółowo

Laboratorium Podstaw Techniki Cyfrowej

Laboratorium Podstaw Techniki Cyfrowej Laboratorium Podstaw Techniki Cyfrowej Ćwiczenie 5: Wprowadzenie do języków opisu sprzętu 1. Języki opisu sprzętu Języki opisu sprzętu(hdl Hardware Description Language) to języki słuŝące do opisu układów

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

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

Programowalne układy logiczne kod kursu: ETD Układy kombinacyjne, przypisania, blokujące i nieblokujące cz.2 W

Programowalne układy logiczne kod kursu: ETD Układy kombinacyjne, przypisania, blokujące i nieblokujące cz.2 W Programowalne układy logiczne kod kursu: ETD008270 Układy kombinacyjne, przypisania, blokujące i nieblokujące cz.2 W4 23.03.2018 mgr inż. Maciej Rudek UKŁADY KOMBINACYJNE Układy kombinacyjne Układ kombinacyjny

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

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

Systemy wbudowane. Projektowanie systemów wbudowanych na bazie układów CPLD/FPGA Język opisu sprzętu Verilog cz.1

Systemy wbudowane. Projektowanie systemów wbudowanych na bazie układów CPLD/FPGA Język opisu sprzętu Verilog cz.1 Systemy wbudowane Projektowanie systemów wbudowanych na bazie układów CPLD/FPGA Język opisu sprzętu Verilog cz.1 System Quartus II Opis projektu Tekstowy (język opisu sprzętu np. Verilog) Graficzny Wykresy

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

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

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

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

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

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

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

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

Sławomir Kulesza. Projektowanie automatów synchronicznych

Sławomir Kulesza. Projektowanie automatów synchronicznych Sławomir Kulesza Technika cyfrowa Projektowanie automatów synchronicznych Wykład dla studentów III roku Informatyki Wersja 2.0, 20/12/2012 Automaty skończone Automat Mealy'ego Funkcja wyjść: Yt = f(st,

Bardziej szczegółowo

LABORATORIUM TECHNIKA CYFROWA LICZNIKI I REJESTRY. Rev.1.1

LABORATORIUM TECHNIKA CYFROWA LICZNIKI I REJESTRY. Rev.1.1 LABORATORIUM TECHNIKA CYFROWA LICZNIKI I REJESTRY Rev.1.1 1. Cel ćwiczenia Praktyczna weryfikacja wiedzy teoretycznej z zakresu projektowania układów kombinacyjnych oraz arytmetycznych 2. Projekty Przy

Bardziej szczegółowo

Przerzutnik ma pewną liczbę wejść i z reguły dwa wyjścia.

Przerzutnik ma pewną liczbę wejść i z reguły dwa wyjścia. Kilka informacji o przerzutnikach Jaki układ elektroniczny nazywa się przerzutnikiem? Przerzutnikiem bistabilnym jest nazywany układ elektroniczny, charakteryzujący się istnieniem dwóch stanów wyróżnionych

Bardziej szczegółowo

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Projektowanie Scalonych Systemów Wbudowanych VERILOG 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

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Projektowanie Scalonych Systemów Wbudowanych VERILOG 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 Verilog cz.1 wstęp

Kurs Verilog cz.1 wstęp Kurs Verilog cz.1 wstęp Złożoność układów cyfrowych zgodnie z prawem Moore a, podwaja się co około 18 miesięcy. Liczba tranzystorów znajdujących się w układzie scalonym sięga już dziesiątek, a nawet setek

Bardziej szczegółowo

Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak Wersja

Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak Wersja Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak Wersja 0.1 29.10.2013 Przypomnienie - podział układów cyfrowych Układy kombinacyjne pozbawione właściwości pamiętania stanów, realizujące

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

PRZERZUTNIKI: 1. Należą do grupy bloków sekwencyjnych, 2. podstawowe układy pamiętające

PRZERZUTNIKI: 1. Należą do grupy bloków sekwencyjnych, 2. podstawowe układy pamiętające PRZERZUTNIKI: 1. Należą do grupy bloków sekwencyjnych, 2. podstawowe układy pamiętające Zapamiętywanie wartości wybranych zmiennych binarnych, jak również sekwencji tych wartości odbywa się w układach

Bardziej szczegółowo

Technika Cyfrowa 1 wykład 12: sekwencyjne układy przełączające

Technika Cyfrowa 1 wykład 12: sekwencyjne układy przełączające Technika Cyfrowa 1 wykład 12: sekwencyjne układy przełączające Dr inż. Jacek Mazurkiewicz Katedra Informatyki Technicznej e-mail: Jacek.Mazurkiewicz@pwr.edu.pl Sekwencyjny układ przełączający układ przełączający

Bardziej szczegółowo

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Wyrażenia 2 Wyrażenia w języku C są bardziej elastyczne niż wyrażenia w jakimkolwiek innym języku

Bardziej szczegółowo

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem. Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -

Bardziej szczegółowo

SWB - Projektowanie synchronicznych układów sekwencyjnych - wykład 5 asz 1. Układy kombinacyjne i sekwencyjne - przypomnienie

SWB - Projektowanie synchronicznych układów sekwencyjnych - wykład 5 asz 1. Układy kombinacyjne i sekwencyjne - przypomnienie SWB - Projektowanie synchronicznych układów sekwencyjnych - wykład 5 asz 1 Układy kombinacyjne i sekwencyjne - przypomnienie SWB - Projektowanie synchronicznych układów sekwencyjnych - wykład 5 asz 2 Stan

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

Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA

Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA Licznik binarny Licznik binarny jest najprostszym i najpojemniejszym licznikiem. Kod 4 bitowego synchronicznego licznika binarnego

Bardziej szczegółowo

Układy kryptograficzne z uŝyciem rejestrów LFSR

Układy kryptograficzne z uŝyciem rejestrów LFSR Układy kryptograficzne z uŝyciem rejestrów FSR Algorytmy kryptograficzne uŝywane w systemach telekomunikacyjnych własność modulo 2 funkcji XOR P K K = P = P 2 Rejestr z liniowym sprzęŝeniem zwrotnym FSR

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

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

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

TEMAT: PROJEKTOWANIE I BADANIE PRZERZUTNIKÓW BISTABILNYCH

TEMAT: PROJEKTOWANIE I BADANIE PRZERZUTNIKÓW BISTABILNYCH Praca laboratoryjna 2 TEMAT: PROJEKTOWANIE I BADANIE PRZERZUTNIKÓW BISTABILNYCH Cel pracy poznanie zasad funkcjonowania przerzutników różnych typów w oparciu o różne rozwiązania układowe. Poznanie sposobów

Bardziej szczegółowo

Plan wykładu. Architektura systemów komputerowych. Cezary Bolek

Plan wykładu. Architektura systemów komputerowych. Cezary Bolek Architektura systemów komputerowych Poziom układów logicznych. Układy sekwencyjne Cezary Bolek Katedra Informatyki Plan wykładu Układy sekwencyjne Synchroniczność, asynchroniczność Zatrzaski Przerzutniki

Bardziej szczegółowo

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów Adresowanie obiektów Bit - stan pojedynczego sygnału - wejście lub wyjście dyskretne, bit pamięci Bajt - 8 bitów - wartość od -128 do +127 Słowo - 16 bitów - wartość od -32768 do 32767 -wejście lub wyjście

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

Krótkie przypomnienie

Krótkie przypomnienie Krótkie przypomnienie Prawa de Morgana: Kod Gray'a A+ B= Ā B AB= Ā + B Układ kombinacyjne: Tablicy prawdy Symbolu graficznego Równania Boole a NOR Negative-AND w.11, p.1 XOR Układy arytmetyczne Cyfrowe

Bardziej szczegółowo

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1 Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1. Podstawowe operacje logiczne dla cyfr binarnych Jeśli cyfry 0 i 1 potraktujemy tak, jak wartości logiczne fałsz i prawda, to działanie

Bardziej szczegółowo

Wykład 2. Języki Opisu Sprzętu. Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D , tel. w ,

Wykład 2. Języki Opisu Sprzętu. Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D , tel. w , Języki Opisu Sprzętu Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D-10 222, tel. w. 28-72, e-mail: skoczen@fis.agh.edu.pl Dwa oblicza systemu cyfrowego Opcje projektowe dla systemu cyfrowego Wykład

Bardziej szczegółowo

Projekt prostego układu sekwencyjnego Ćwiczenia Audytoryjne Podstawy Automatyki i Automatyzacji

Projekt prostego układu sekwencyjnego Ćwiczenia Audytoryjne Podstawy Automatyki i Automatyzacji WOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego Projekt prostego układu sekwencyjnego Ćwiczenia Audytoryjne Podstawy Automatyki i Automatyzacji mgr inż. Paulina Mazurek Warszawa 2013 1 Wstęp Układ

Bardziej szczegółowo

Wstęp do Techniki Cyfrowej... Teoria automatów i układy sekwencyjne

Wstęp do Techniki Cyfrowej... Teoria automatów i układy sekwencyjne Wstęp do Techniki Cyfrowej... Teoria automatów i układy sekwencyjne Alfabety i litery Układ logiczny opisywany jest przez wektory, których wartości reprezentowane są przez ciągi kombinacji zerojedynkowych.

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

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

Wstęp do Techniki Cyfrowej... Układy kombinacyjne

Wstęp do Techniki Cyfrowej... Układy kombinacyjne Wstęp do Techniki Cyfrowej... Układy kombinacyjne Przypomnienie Stan wejść układu kombinacyjnego jednoznacznie określa stan wyjść. Poszczególne wyjścia określane są przez funkcje boolowskie zmiennych wejściowych.

Bardziej szczegółowo

Verilog HDL. Język Opisu Sprzętu Hardware Description Language Część I. Elementy języka. dr inż. Paweł Tomaszewicz H D L

Verilog HDL. Język Opisu Sprzętu Hardware Description Language Część I. Elementy języka. dr inż. Paweł Tomaszewicz H D L Verilog Język Opisu Sprzętu ardware escription anguage Część I. Elementy języka dr inż. Paweł Tomaszewicz 1 istoria krótko ata '80 potrzeba stworzenia jednego języka do symulacji na różnych poziomach opisu

Bardziej szczegółowo

Operatory w C++ Operatory arytmetyczne. Operatory relacyjne (porównania) Operatory logiczne. + dodawanie - odejmowanie * mnożenie / dzielenie % modulo

Operatory w C++ Operatory arytmetyczne. Operatory relacyjne (porównania) Operatory logiczne. + dodawanie - odejmowanie * mnożenie / dzielenie % modulo Operatory w C++ Operatory arytmetyczne + dodawanie - odejmowanie * mnożenie / dzielenie % modulo Operatory relacyjne (porównania) < mniejszy niż większy niż >= większy lub równy

Bardziej szczegółowo

Podstawowe elementy układów cyfrowych układy sekwencyjne. Rafał Walkowiak

Podstawowe elementy układów cyfrowych układy sekwencyjne. Rafał Walkowiak Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak 3.12.2015 Przypomnienie - podział układów cyfrowych Układy kombinacyjne pozbawione właściwości pamiętania stanów, realizujące funkcje

Bardziej szczegółowo

Zmienne, stałe i operatory

Zmienne, stałe i operatory Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe

Bardziej szczegółowo

Język VERILOG w praktyce

Język VERILOG w praktyce Język VERLOG w praktyce RUS RUS Język VERLOG rzykłady syntezy blokowej RUS RUS Elementy systemu cyfrowego magistrala danych cd. module swap (Data, Resetn, w, Clock, Extern, RinExt, Busires); input [7:0]

Bardziej szczegółowo

Arytmetyka liczb binarnych

Arytmetyka liczb binarnych Wartość dwójkowej liczby stałoprzecinkowej Wartość dziesiętna stałoprzecinkowej liczby binarnej Arytmetyka liczb binarnych b n-1...b 1 b 0,b -1 b -2...b -m = b n-1 2 n-1 +... + b 1 2 1 + b 0 2 0 + b -1

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

Proste układy sekwencyjne

Proste układy sekwencyjne Proste układy sekwencyjne Układy sekwencyjne to takie w których niektóre wejścia są sterowany przez wyjściaukładu( zawierają sprzężenie zwrotne ). Układy sekwencyjne muszą zawierać elementy pamiętające

Bardziej szczegółowo

Język Verilog w projektowaniu układów FPGA

Język Verilog w projektowaniu układów FPGA POLITECHNIKA ZIELONOGÓRSKA Wydział Elektryczny Język Verilog w projektowaniu układów FPGA Jacek Bieganowski Grzegorz Wawrzyniak Promotor: dr inż. Marek Węgrzyn Zielona Góra, czerwiec 2001 Spis treści 1.

Bardziej szczegółowo

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Poniżej pozwoliłem sobie za cytować za wikipedią definicję zmiennej w informatyce.

Bardziej szczegółowo

WFiIS CEL ĆWICZENIA WSTĘP TEORETYCZNY

WFiIS CEL ĆWICZENIA WSTĘP TEORETYCZNY WFiIS LABORATORIUM Z ELEKTRONIKI Imię i nazwisko: 1. 2. TEMAT: ROK GRUPA ZESPÓŁ NR ĆWICZENIA Data wykonania: Data oddania: Zwrot do poprawy: Data oddania: Data zliczenia: OCENA CEL ĆWICZENIA Ćwiczenie

Bardziej szczegółowo

Podstawy układów mikroelektronicznych

Podstawy układów mikroelektronicznych Podstawy układów mikroelektronicznych wykład dla kierunku Technologie Kosmiczne i Satelitarne Część 2. Podstawy działania układów cyfrowych. dr inż. Waldemar Jendernalik Katedra Systemów Mikroelektronicznych,

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

Logika Temporalna i Automaty Czasowe

Logika Temporalna i Automaty Czasowe Modelowanie i Analiza Systemów Informatycznych Logika Temporalna i Automaty Czasowe (7) Automaty czasowe NuSMV Paweł Głuchowski, Politechnika Wrocławska wersja 2.3 Treść wykładu NuSMV NuSMV symboliczny

Bardziej szczegółowo

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011 Układy arytmetyczne Joanna Ledzińska III rok EiT AGH 2011 Plan prezentacji Metody zapisu liczb ze znakiem Układy arytmetyczne: Układy dodające Półsumator Pełny sumator Półsubtraktor Pełny subtraktor Układy

Bardziej szczegółowo

Podstawy Elektroniki dla Elektrotechniki. Liczniki synchroniczne na przerzutnikach typu D

Podstawy Elektroniki dla Elektrotechniki. Liczniki synchroniczne na przerzutnikach typu D AGH Katedra Elektroniki Podstawy Elektroniki dla Elektrotechniki Liczniki synchroniczne na przerzutnikach typu D Ćwiczenie 7 Instrukcja do ćwiczeń symulacyjnych 2016 r. 1 1. Wstęp Celem ćwiczenia jest

Bardziej szczegółowo

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1 Część 3 Układy sekwencyjne Układy sekwencyjne i układy iteracyjne - grafy stanów 18.11.2017 TCiM Wydział EAIiIB Katedra EiASPE 1 Układ cyfrowy - przypomnienie Podstawowe informacje x 1 x 2 Układ cyfrowy

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

Podstawy programowania w języku C i C++

Podstawy programowania w języku C i C++ Podstawy programowania w języku C i C++ Część czwarta Operatory i wyrażenia Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,

Bardziej szczegółowo

Technika Cyfrowa 1 wykład 11: liczniki sekwencyjne układy przełączające

Technika Cyfrowa 1 wykład 11: liczniki sekwencyjne układy przełączające Technika Cyfrowa 1 wykład 11: liczniki sekwencyjne układy przełączające Dr inż. Jacek Mazurkiewicz Katedra Informatyki Technicznej e-mail: Jacek.Mazurkiewicz@pwr.edu.pl Liczniki klasyfikacja Licznik asynchroniczny:

Bardziej szczegółowo

Spis treści. Przedmowa Wykaz oznaczeń Wstęp Układy kombinacyjne... 18

Spis treści. Przedmowa Wykaz oznaczeń Wstęp Układy kombinacyjne... 18 Spis treści Przedmowa... 11 Wykaz oznaczeń... 13 1. Wstęp... 15 1.1. Układycyfrowe... 15 1.2. Krótki esej o projektowaniu.... 15 2. Układy kombinacyjne... 18 2.1. Podstawyprojektowaniaukładówkombinacyjnych...

Bardziej szczegółowo

Inwerter logiczny. Ilustracja 1: Układ do symulacji inwertera (Inverter.sch)

Inwerter logiczny. Ilustracja 1: Układ do symulacji inwertera (Inverter.sch) DSCH2 to program do edycji i symulacji układów logicznych. DSCH2 jest wykorzystywany do sprawdzenia architektury układu logicznego przed rozpoczęciem projektowania fizycznego. DSCH2 zapewnia ergonomiczne

Bardziej szczegółowo

Podstawy programowania w języku C

Podstawy programowania w języku C Podstawy programowania w języku C WYKŁAD 1 Proces tworzenia i uruchamiania programów Algorytm, program Algorytm przepis postępowania prowadzący do rozwiązania określonego zadania. Program zapis algorytmu

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

Podstawy Techniki Cyfrowej Teoria automatów

Podstawy Techniki Cyfrowej Teoria automatów Podstawy Techniki Cyfrowej Teoria automatów Uwaga Niniejsza prezentacja stanowi uzupełnienie materiału wykładowego i zawiera jedynie wybrane wiadomości teoretyczne dotyczące metod syntezy układów asynchronicznych.

Bardziej szczegółowo

Lista zadań nr 5. Ścieżka projektowa Realizacja każdego z zadań odbywać się będzie zgodnie z poniższą ścieżką projektową (rys.

Lista zadań nr 5. Ścieżka projektowa Realizacja każdego z zadań odbywać się będzie zgodnie z poniższą ścieżką projektową (rys. Sterowanie procesami dyskretnymi laboratorium dr inż. Grzegorz Bazydło G.Bazydlo@iee.uz.zgora.pl, staff.uz.zgora.pl/gbazydlo Lista zadań nr 5 Zagadnienia stosowanie skończonych automatów stanów (ang. Finite

Bardziej szczegółowo

Struktura i działanie jednostki centralnej

Struktura i działanie jednostki centralnej Struktura i działanie jednostki centralnej ALU Jednostka sterująca Rejestry Zadania procesora: Pobieranie rozkazów; Interpretowanie rozkazów; Pobieranie danych Przetwarzanie danych Zapisywanie danych magistrala

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

Podstawy techniki cyfrowej. Układy asynchroniczne Opracował: R.Walkowiak Styczeń 2014

Podstawy techniki cyfrowej. Układy asynchroniczne Opracował: R.Walkowiak Styczeń 2014 Podstawy techniki cyfrowej Układy asynchroniczne Opracował: R.Walkowiak Styczeń 2014 Charakterystyka układów asynchronicznych Brak wejścia: zegarowego, synchronizującego. Natychmiastowa (niesynchronizowana)

Bardziej szczegółowo

LICZNIKI PODZIAŁ I PARAMETRY

LICZNIKI PODZIAŁ I PARAMETRY LICZNIKI PODZIAŁ I PARAMETRY Licznik jest układem służącym do zliczania impulsów zerojedynkowych oraz zapamiętywania ich liczby. Zależnie od liczby n przerzutników wchodzących w skład licznika pojemność

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

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

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5. Operatory w Javie W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje wykonywane są na operandach (argumentach

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

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

PoniŜej zamieszczone są rysunki przedstawiane na wykładach z przedmiotu Peryferia Komputerowe. ELEKTRONICZNE UKŁADY CYFROWE

PoniŜej zamieszczone są rysunki przedstawiane na wykładach z przedmiotu Peryferia Komputerowe. ELEKTRONICZNE UKŁADY CYFROWE PoniŜej zamieszczone są rysunki przedstawiane na wykładach z przedmiotu Peryferia Komputerowe. ELEKTRONICZNE UKŁADY CYFROWE Podstawowymi bramkami logicznymi są układy stanowiące: - funktor typu AND (funkcja

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

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy Testowanie układów kombinacyjnych Przykładowy układ Wykrywanie błędów: 1. Sklejenie z 0 2. Sklejenie z 1 Testem danego uszkodzenia nazywa się takie wzbudzenie funkcji (wektor wejściowy), które daje błędną

Bardziej szczegółowo

Materiały pomocnicze do ćwiczeń z podstaw techniki cyfrowej (przygotował R.Walkowiak) Dla studiów niestacjonarnych rok AK 2017/18

Materiały pomocnicze do ćwiczeń z podstaw techniki cyfrowej (przygotował R.Walkowiak) Dla studiów niestacjonarnych rok AK 2017/18 Materiały pomocnicze do ćwiczeń z podstaw techniki cyfrowej (przygotował R.Walkowiak) Dla studiów niestacjonarnych rok AK 2017/18 ZADANIE 1 Komparator szeregowy 2 liczb Specyfikacja wymagań dla układu

Bardziej szczegółowo

Zadania do wykładu 1, Zapisz liczby binarne w kodzie dziesiętnym: ( ) 2 =( ) 10, ( ) 2 =( ) 10, (101001, 10110) 2 =( ) 10

Zadania do wykładu 1, Zapisz liczby binarne w kodzie dziesiętnym: ( ) 2 =( ) 10, ( ) 2 =( ) 10, (101001, 10110) 2 =( ) 10 Zadania do wykładu 1,. 1. Zapisz liczby binarne w kodzie dziesiętnym: (1011011) =( ) 10, (11001100) =( ) 10, (101001, 10110) =( ) 10. Zapisz liczby dziesiętne w naturalnym kodzie binarnym: (5) 10 =( ),

Bardziej szczegółowo

Podstawy elektroniki cyfrowej dla Inżynierii Nanostruktur. Piotr Fita

Podstawy elektroniki cyfrowej dla Inżynierii Nanostruktur. Piotr Fita Podstawy elektroniki cyfrowej dla Inżynierii Nanostruktur Piotr Fita Elektronika cyfrowa i analogowa Układy analogowe - przetwarzanie sygnałów, których wartości zmieniają się w sposób ciągły w pewnym zakresie

Bardziej szczegółowo

Statyczne badanie przerzutników - ćwiczenie 3

Statyczne badanie przerzutników - ćwiczenie 3 Statyczne badanie przerzutników - ćwiczenie 3. Cel ćwiczenia Zapoznanie się z podstawowymi strukturami przerzutników w wersji TTL realizowanymi przy wykorzystaniu bramek logicznych NAND oraz NO. 2. Wykaz

Bardziej szczegółowo

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h> Szablon programu: /* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include /* opcjonalne: deklaracja typów o rozmiarze jednego i dwóch

Bardziej szczegółowo