Wykład 4. Języki Opisu Sprzętu
|
|
- Sylwia Łuczak
- 7 lat temu
- Przeglądów:
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 Projektowanie detektora sekwencji Laboratorium z Elektroniki Współczesnej A. Skoczeń, KOiDC, WFiIS, AGH, 2019 AGH, WFiIS, Elektronika Współczesna 1 Deterministyczny
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
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.
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?
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
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
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
(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).
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
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
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
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
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
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
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
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
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
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
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
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
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
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"; %------------------------------------------------------------
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.
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
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
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,
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
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
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
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
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
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
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
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
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
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
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 -
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
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
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
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
Aby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.
Generowanie sygnałów testowych VHDL Wariant współbieżny (bez procesu): sygnał
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
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
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)
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
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
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
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
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
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
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
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
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.
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ć
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
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.
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
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
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
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
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]
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
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,
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
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.
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.
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
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,
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
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
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
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
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
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:...
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,
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:
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...
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
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
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
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.
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
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
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
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)
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ść
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
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
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
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
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
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
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
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ą
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
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 =( ),
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
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
/* 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