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

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

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

Transkrypt

1 Języki Opisu Sprzętu Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D , tel. w , Dwa oblicza systemu cyfrowego Opcje projektowe dla systemu cyfrowego Wykład październik 2018 Przykład syntezy Typy danych do Veriloga Modelowanie na poziomie bramek AGH WFiIS Informatyka Stosowana Języki Opisu Sprzętu 1

2 Współprojektowanie sprzętu i oprogramowania System Sprzęt Program Hardware/Software codesign Współprojektowanie oprogramowania i sprzętu to projektowanie współpracujących składników sprzętowych i programowych w jednym zadaniu projektowym. Sprzęt (hardware) Oprogramowanie (software) Sztywny (fixed) Elastyczny (flexible) Współprojektowanie oprogramowania i sprzętu to podział projektu aplikacji na część stałą i elastyczną.

3 Opcje projektowe układu cyfrowego Układ cyfrowy może być zaprojektowany jako: ASP Application-Specific Processors CSPP Computing Systems with Programmable Procedure RCS Reconfigurable Computing Systems ASIC µp µc DSP Układ programowalny Fullcustom Cellbased Gate Array GA PLD FPGA CPLD SCL Biblioteka komórek standardowych Makra skompilowane RAM/ROM/PLA Platformy IP ROM PLA PAL Czyste FPGA Słowniczek: SCL Standard Cell Library ASIC Application Specific Integrated Circuits µc microcontroller PLD Programmable Logic Device µp microprocessor CPLD Complex Programmable Logic Device DSP Digital Signal Processor IP Intellectual Property PLA Programmable Logic Array PAL Programmable Array Logic SoC System-on-Chip SoPC System-on-Programmable-Chip DSP FPGA Platformy FPGA dla SoPC 3

4 Synteza Kod RTL licznika 4-bitowego w Verilogu: Rozwiniecie tego kodu w syntezatorze w postaci schematu: module count (input clk, rst, output reg [3:0] q); clk) if(rst) q <= 4 b0; else q <= q + 1 b1; endmodule Synplify, Synopsys

5 module count (clk, rst, q); input clk, rst ; output [3:0] q ; wire clk, rst ; wire [3:1] q_rno; wire [0:0] q_i; wire GND_x, VCC_x, GND, VCC ; LUT2_L q_rno[1] (.I0(q[0]),.I1(q[1]),.LO(q_RNO[1])); defparam q_rno[1].init=4'h6; LUT1_L q_i[0] (.I0(q[0]),.LO(q_i[0])); defparam q_i[0].init=2'h1; LUT3_L q_rno[2] (.I0(q[0]),.I1(q[1]),.I2(q[2]),.LO(q_RNO[2])); defparam q_rno[2].init=8'h78; LUT4_L q_rno[3] (.I0(q[0]),.I1(q[1]),.I2(q[2]),.I3(q[3]),.LO(q_RNO[3])); defparam q_rno[3].init=16'h7f80; FDR q[3] (.Q(q[3]),.D(q_RNO[3]),.C(clk),.R(rst)); FDR q[2] (.Q(q[2]),.D(q_RNO[2]),.C(clk),.R(rst)); FDR q[1] (.Q(q[1]),.D(q_RNO[1]),.C(clk),.R(rst)); FDR q[0] (.Q(q[0]),.D(q_i[0]),.C(clk),.R(rst)); GND GND_cZ (.G(GND)); VCC VCC_cZ (.P(VCC)); endmodule /* count */ Synteza Synplify, Synopsys 5

6 Węzeł (net) Jest to klasa typów danych, z których największe znaczenie ma typ wire. Słowo net nie jest słowem kluczowym. Węzeł reprezentuje połączenie między elementami sprzętu. Węzeł ma wartość w sposób ciągły sterowaną przez wyjście przyrządu (driver), do którego jest połączony (gate level). Przypisania do zmiennych węzłowych mogą się odbywać jedynie za pomocą przypisania ciągłego assign (data flow level). Najczęściej używanym typem węzła jest wire. Domyślną wartością węzła jest z. Typ wire jest typem domyślnym. wire a; wire [3:0] b; wire d = 1 b0; Uproszczona wersja przypisania ciągłego Inne typy węzłowe: wand wor tri triand Montażowy AND (open kolektor) Montażowy OR Typy danych Veriloga Typ podobny do wire ale umożliwiający użycie na nim więcej niż jednego sterownika Montażowy AND (open kolektor) //deklaracja węzła a //deklaracja magistrali czterobitowej //deklaracja i ustawienie na stałe //wartości zero trior tri0 tri1 trireg Montażowy OR Domyślne 0 gdy węzeł nie jest sterowany Domyślne 1 gdy węzeł nie jest sterowany Węzeł utrzymujący wartość Typy wire i tri są identyczne składniowo i funkcjonalnie. Standard definiuje dwie nazwy aby nazwa typu węzła wskazywała na role tego węzła w modelu. Węzeł typu wire należy używać dla węzłów sterowanych jedną bramką lub przypisaniem ciągłym. Węzeł typu tri należy używać tam gdzie wiele sterowników steruje węzłem. 6

7 module closedrain(input w, x, y, z, output wire f); nand n1 (f, w, x); nand n2 (f, y, z); endmodule Typy danych Veriloga wire 0 1 x z 0 0 x x 0 1 x 1 x 1 x x x x x z 0 1 x z Tabela prawdy rozwiązywania konfliktów dwóch sterowników (o tej samej mocy sygnału) dla węzła typu wire i tri. Incisive, Cadence f w x y z 7

8 wire 8

9 module tb; reg w, x, y, z; wire f; module opendrain(input w, x, y, z, output wand f); nand n1 (f, w, x); nand n2 (f, y, z); endmodule opendrain uut (.w(w),.x(x),.y(y),.z(z),.f(f)); initial begin w = 1'b0; x = 1'b0; y = 1'b0; z = 1'b0; #10 x = 1'b1; #10 w = 1'b1; #40 $finish; end endmodule Typy danych Veriloga wand 0 1 x z x 1 x 0 x x x z 0 1 x z Tabela prawdy rozwiązywania konfliktów dwóch sterowników (o tej samej mocy sygnału) dla węzła typu wand i triand Incisive, Cadence f w x y z 9

10 wand open drain open drain 10

11 Incisive, Cadence Typy danych Veriloga module opendrain(input w, x, y, z, output wor f); nor n1 (f, w, x); nor n2 (f, y, z); endmodule wor 0 1 x z x x x 1 x x z 0 1 x z Tabela prawdy rozwiązywania konfliktów dwóch sterowników (o tej samej mocy sygnału) dla węzła typu wor i trior f w x y z wire f w x y z wor 11

12 wor 12

13 Rejestr (reg) Reprezentuje element przechowujący informację. Należy rozróżnić dwie rzeczy: rejestr sprzętowy zbudowany z przerzutników, rejestr w Verilog-u czyli zmienną utrzymującą wartość. Rejestry w przeciwieństwie do węzłów nie potrzebują układów sterujących. Zmienna typu reg może zmieniać wartość w każdej chwili symulacji ale wyłącznie za pomocą przypisania proceduralnego (behavioral level). Domyślną wartością zmiennej typu reg jest x. reg reset; Typy danych Veriloga //deklaracja zmiennej reset initial begin reset = 1 b1; //inicjacja zmiennej reset na 1 #100 reset = 1 b0; //po 100 jednostkach czasu reset jest //zerowany end 13

14 Typy danych Veriloga Wektory Węzły i zmienne typu reg mogą być deklarowane jako wektory. Nawiasy kwadratowe pomiędzy słowem kluczowym a nazwą zmiennej określają ilość bitów i ich kolejność. Pierwsza liczba w nawiasach zawsze oznacza najbardziej znaczący bit. wire [7:0] bus; //deklaracja magistrali 8-bitowej bus wire [31:0] busa, busb, busc; //trzy magistrale 32-bitowe reg [0:40] virtual_addr; //wektor rejestrowy 41-bitowy Jak odwoływać się do tak zadeklarowanych zmiennych? bus[7] //najbardziej znaczący bit magistrali bus busa[31] //najbardziej znaczący bit magistrali busa bus[2:0] //trzy najmniej znaczące bity wektora bus bus[0:2] //niepoprawne odwołanie gdyż najbardziej //znaczący bit zawsze musi stać po lewej //stronie zakresu specyfikacji virtual_addr[0:1] //dwa najbardziej znaczące bity wektora //virtual_addr 14

15 Typ rejestrowy integer Wartości typu reg są bez znaku (unsigned). Wartości typu integer są ze znakiem (signed). Wygodniejsze np. do zliczania. Typowa szerokość: 32 bity. integer counter; initial counter = -1; Typy danych Veriloga //deklaracja zmiennej counter //-1 wpisano do counter Typ rejestrowy real Liczby rzeczywiste mogą być w notacji dziesiętnej (decimal) lub naukowej (scientific). Kiedy wartość zmiennej real jest przypisywana do zmiennej typu integer jest ona zaokrąglana do najbliższej wartości całkowitej. real delta; //deklaracja zmiennej rzeczywistej initial begin delta = 4e10; //przypisanie w notacji naukowej delta = 2.13; //przypisanie w notacji dziesiętnej end integer i; initial i = delta; //i otrzymuje wartość 2 (zaokrąglone 2.13) Wynik otrzymany w symulatorze Incisive : 0ns delta=2.13 i=2 15

16 Typ rejestrowy time Typy danych Veriloga Symulacje prowadzone są względem czasu symulacji. Jest on przechowywany w specjalnym rejestrze time. Jest on co najmniej 64-bitowy. Funkcja systemowa $time służy do określania bieżącego czasu symulacji. Czas symulacji jest mierzony w sekundach symulacyjnych. Związanie tego czasu z rzeczywistym czasem upływającym w prawdziwym układzie cyfrowym odbywa się przez zdefiniowanie skali czasowej. Można to zrobić oddzielnie dla każdego modułu za pomocą dyrektywy kompilatora `timescale. time save_sim_time; initial save_sim_time = $time; //deklaracja zmiennej czasowej //zapamiętaj bieżący czas symulacji Typ rejestrowy realtime Przechowuje czas symulacji w postaci zmiennej rzeczywistej Typ indeksowy genvar Podobny do integer, ale o specjalnym zastosowaniu do indeksowania pętli generate. 16

17 Tablice (arrays) W Verilogu-95 możliwe są tylko tablice jednowymiarowe zmiennych rejestrowych. Zmienne węzłowe w ogóle nie mogą występować w postaci tablic. Należy je odróżnić od wektorów. Wektor to element n-bitowy, podczas gdy tablica jest obiektem wieloelementowym złożonym z 1- lub n-bitowych elementów. integer count[0:7] //zmienna tablicowa o 8-u elementach //integer reg bool[31:0] //zmienna tablicowa o 32-u //elementach reg skalarnych time chk_point[1:100] //tablica 100 punktów czasowych reg [4:0] port_id[0:7] count[5] Typy danych Veriloga //tablica 8 wektorów 5-bitowych //typu reg //wartość 5-ego elementu w tablicy count chk_point[100] //wartość 100-ego elementu czasowego w //tablicy chk_point port_id[3] //5-bitowa wartość 3-ego elementu w tablicy //port_id 17

18 Typy danych Veriloga Pamięci (memories) Są to tablice rejestrów. Każdy element tablicy to jedno słowo. Słowo jest dostępne poprzez adres, którym jest indeks tablicy. Verilog-1995 reg mem1bit[0:1023] //pamięć o pojemności 1K 1-bitowych słów reg [7:0] membyte[0:1023] //pamięć o pojemności 1K 8- //bitowych słów membyte[511] //pobranie 1 bajtowego słowa spod adresu

19 Tablice wielowymiarowe W Verilog-2001, - zarówno zmienne węzłowe jak i rejestrowe mogą być deklarowane w postaci wielowymiarowych tablic: reg [31:0] array2[0:255][0:15]; wire [7:0] array3[0:255][0:255][0:255]; trój-wymiarowa tablica ośmiobitowych węzłów dwu-wymiarowa tablica 32-bitowych wektorów rejestrowych Verilog-2001 Dostęp do takich danych jest możliwy zarówno do całego słowa jak i do jednego bitu jaki i do części jednego słowa: wire [7:0] out3 = array3[addr1][addr2][addr3]; do całego słowa wire [7:0] out2 = array2[100][7][31:24]; najbardziejznaczący bajt jednego słowa w dwu-wymiarowej tablicy 19

20 Poziom bramek Poziom bramek - gate level Moduł jest tutaj opisywany z użyciem konkretyzacji innych modułów tzn. bramek logicznych i połączeń między nimi. Ten poziom jest bardzo podobny do tworzenia schematu układu z użyciem bramek logicznych. Realizacje modułów - Instances Moduł jest wzorcem, z którego można stworzyć rzeczywisty obiekt. Kiedy chcemy wykorzystać istniejący moduł, Verilog kreuje unikalny obiekt według wzorca zawartego w module. Ten proces kreowania obiektów z wzorcowych modułów nazywa się urealnianiem instantiation. Powstałe w ten sposób obiekty nazywa się urealnieniami (konkretyzacjami, aktualizacjami, urzeczywistnieniami, realizacjami, instancjami) instances. gate level 20

21 Urealnienia z parametrami gate level modulename [#(listaparam)] instancename (portconnect); Indywidualizacja instancji przez przypisanie parametrom wartości. Elementy tej listy:.paramname_module(value),... Wartość parametru value może być podana: Bezpośrednio liczbą Za pomocą lokalnego parametru localparam lub dostarczonego z wyższego poziomu hierarchii poprzez parametr. 21

22 Instancja (urealnienie) Lista parametrów kolejność lub przez nazwy.nazwa(wartość) gate level instances modulename #(paramters) instancename (portconnect); Nazwa urealnianego modułu Nazwa urealnienia Lista połączeń specyfikowana przez kolejność lub przez nazwy.name_module(name_instance) 22

23 Bufory predefiniowane Verilog posiada predefiniowane bufory (proste i odwracające). Nie potrzebują one definicji modułów ale można je urealniać w taki sposób jak inne moduły. gate level Bufory Invertery buf not zwykłe bufif1 notif1 Trójstanowe sterowane stanem wysokim bifif0 notif0 Trójstanowe sterowane stanem niskim Mogą mieć wiele wyjść ale dokładnie jedno wejście. Ostatni port jest wejściem, a pozostałe wyjściami. Jeśli występuje dodatkowy port sterujący to on jest ostatni. wire OUT1, OUT2, IN, CTRL; buf b1(out1, IN); buf b1_2out(out1, OUT2, IN); bufif1 b1(out1, IN, CTRL); Tabele prawdy tych elementów uwzględniają wartości x i z na wejściach. 23

24 not Bufory predefiniowane in out not in out gate level X Z X X buf in out buf in out X Z X X 24

25 notif1 in Bufory predefiniowane ctrl out ctrl notif1 0 1 X Z 0 Z 1 H H 1 Z 0 L L in X Z X X X gate level Z Z X X X bufif1 in out ctrl bufif1 0 1 X Z 0 Z 0 L L ctrl in 1 Z 1 H H X Z X X X Z Z X X X 25

26 notif0 in Bufory predefiniowane ctrl out ctrl notif0 0 1 X Z 0 1 Z H H 1 0 Z L L in X X Z X X gate level Z X Z X X bufif0 in out ctrl bufif0 0 1 X Z 0 0 Z L L ctrl in 1 1 Z H H X X Z X X Z X Z X X 26

27 Multiplekser 2-do-1 i0 i1 out module mux (output tri out, input i0, i1, s); bufif0 b0 (out, i0, s); bufif1 b1 (out, i1, s); endmodule s i0 Incisive, Cadence i1 out s 27

28 Bramki predefiniowane gate level Verilog posiada predefiniowane bramki. Nie potrzebują one definicji modułów ale można je urealniać w taki sposób jak inne moduły. and or xor nand nor xnor N-wejściowe bramki: Pierwszy port jest wyjściem, a następne wejściami. wire OUT, IN1, IN2, IN3; and a1 (OUT, IN1, IN2); nand na1_3 (OUT, IN1, IN2, IN3); //urealnianie bez nazwy jest także poprawne and (OUT, IN1, IN2); Tabele prawdy tych elementów uwzględniają wartości x i z na wejściach. 28

29 Bramki predefiniowane i1 gate level nand i1 i2 out i2 nand 0 1 X Z X X X 1 X X X Z 1 X X X i1 and i1 i2 out i2 and 0 1 X Z X X X 0 X X X Z 0 X X X 29

30 nor Bramki predefiniowane i1 out i2 i1 nor 0 1 X Z X X i X X 0 X X Z X 0 X X gate level i1 or i1 i2 out or 0 1 X Z X X i X X 1 X X Z X 1 X X 30

31 Bramki predefiniowane xnor i1 i2 out i1 xnor 0 1 X Z X X i X X X X X X X Z X X X X gate level i1 xor i1 i2 out xor 0 1 X Z X X i X X X X X X X Z X X X X 31

32 Multiplekser 2-do-1 i0 i1 s out s i0 i s i0 i out = s i0 + s i1 a0 a1 32

33 i0 sbar Multiplekser 2-do-1 a0 i1 out s a1 module mymux (output out, input s, i0, i1); wire sbar; not (sbar, s); and (a0, i0, sbar); and (a1, i1, s); or (out, a1, a0); endmodule 33

34 i0 sbar Multiplekser 2-do-1 a0 i1 a1 out s Incisive, Cadence i0 i1 out s 34

35 Multiplekser D 0 D 1 D 2 D 3 Z D 0... D n Z A 0...A m A 0 A 1 Multiplekser 4-do-1 Potrzebuje dwa wejścia adresowe do zakodowania czterech różnych adresów Multiplekser n-do-1 gdzie n=2 m -1 gdzie m jest liczbą bitów wejścia adresowego 35

36 module mux4_to_1(output out, wire s1n, s0n; wire y0, y1, y2, y3; not (s1n, s1); not (s0n, s0); and (y0, i0, s1n, s0n); and (y1, i1, s1n, s0); and (y2, i2, s1, s0n); and (y3, i3, s1, s0); or (out, y0, y1, y2, y3); endmodule Multiplekser 4 do 1 input i0, i1, i2, i3, s1, s0); Uwaga Bramki podstawowe nie wymagają nazw urealnień (instancji). Instancje modułów definiowanych przez nas muszą mieć unikalne nazwy. gate level To jest nie konieczne gdyż sygnały jednobitowe domyślnie są typu wire. 36

37 Opóźnienia Inercyjne Właściwe dla bramek i przypisań ciągłych. Sygnał krótszy od opóźnienia bramki w ogóle nie jest przez bramkę propagowany. in in t p =3 out out Inercyjne Transportowe Każdy sygnał krótszy jest przez połączenie propagowany. Transportowe AGH, WFiIS, IS, st.i, HDL 37

38 Parametry czasowe bramek gate level Czas narastania narast Potrzebny na przejście wyjścia bramki dostanu 1 Czas opadania opad Potrzebny na przejście wyjścia bramki dostanu 0 Czas wyłączenia wył Potrzebny na przejście wyjścia bramki dostanu z 0, x, z 1, x, z Dla przejścia do wartości x działa najmniejsza z trzech wartości. and #(czas) a1(out, i1, i2); and #(narast, opad) a1(out, i1, i2); narast opad 1 0 bufif0 #(narast, opad, wył) b1(out1, out2, in, control); Dodatkowo każdy z trzech czasów może być podany za pomocą trzech liczb rozdzielonych dwukropkami: min:typ:max. Odpowiednia wartość jest wybierana w zależności od opcji linii komend elaboratora. bufif0 #(2:3:4, 3:4:5, 4:5:6) b1(out1, out2, in, control); AGH, WFiIS, IS, st.i, HDL 38

39 Opóźnienia bramek max/typ/min gate level Opóźnienia mogą być maksymalne, typowe lub minimalne. Wyboru można dokonywać w czasie wykonania za pomocą opcji elaboratora: -maxdelays, -typdelays, -mindelays. Domyślnie przyjmowane są wartości typowe. //if -mindelays, opóźnienie=4 //if -typdelays, opóźnienie=5 //if -maxdelays, opóźnienie=6 and #(4:5:6) a1(out, i1, i2); //if -mindelays, narast=3, opad=5, wył=min(3,5) //if -typdelays, narast=4, opad=6, wył=min(4,6) //if -maxdelays, narast=5, opad=7, wył=min(5,7) and #(3:4:5, 5:6:7) a1(out, i1, i2); Incisive, Cadence irun maxdelays *.v //if -mindelays, narast=2, opad=3, wył=4 //if -typdelays, narast=3, opad=4, wył=5 //if -maxdelays, narast=4, opad=5, wył=6 bufif0 #(2:3:4, 3:4:5, 4:5:6) b1(out1, out2, in, control); AGH, WFiIS, IS, st.i, HDL 39

40 Opóźnienia bramek i węzłów module del(); reg i1, i2; wire #(2) in2 = i2; wire #(1) in1 = i1; and #(5) a1 (o1, in1, in2); Incisive, Cadence initial begin i2 = 1'b1; i1 = 1'b0; #3 i1 = 1'b1; #6 i1 = 1'b0; #1 i1 = 1'b1; #5 i1 = 1'b0; #6 i1 = 1'b1; end endmodule i1 i2 in1 in2 o1 Inercyjne AGH, WFiIS, IS, st.i, HDL 40

41 Opóźnienia bramek i węzłów module del(); reg i1, i2; wire #(3) in2 = i2; wire #(2) in1 = i1; and #(5) a1 (o1, in1, in2); i1 Incisive, Cadence initial begin i2 = 1'b1; i1 = 1'b0; #3 i1 = 1'b1; #6 i1 = 1'b0; #1 i1 = 1'b1; #5 i1 = 1'b0; #6 i1 = 1'b1; end endmodule i2 in1 in2 o1 Inercyjne AGH, WFiIS, IS, st.i, HDL 41

42 Opóźnienia bramek i węzłów module buf3del(); reg i, ctrl; bufif1 #(2) b1 (o1, i, ctrl); bufif1 #(2,3) b2 (o2, i, ctrl); bufif1 #(2,3,1) b3 (o3, i, ctrl); Incisive, Cadence initial begin i = 1'b0; ctrl = 1'b0; #2 ctrl = 1'b1; #6 i = 1'b1; #4 i = 1'b0; #6 i = 1'b1; #7 ctrl = 1'b0; end endmodule ctrl i o1 o2 o3 AGH, WFiIS, IS, st.i, HDL 42

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

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

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

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

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

Konwencje językowe Verilog-a APSC

Konwencje językowe Verilog-a APSC Konwencje językowe Verilog-a APSC Podstawowe konwencje są takie same jak w C. Elementami języka są: komentarze, ograniczniki, liczby, ciągi znaków, identyfikatory i słowa kluczowe. Verilog rozróżnia małe

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

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

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

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

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

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

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

Wykład 4. Języki Opisu Sprzętu 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 Wprowadzenie do Veriloga Przypisania proceduralne (c. d.) Wykład 4 2017 8 listopad

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

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

Bramki logiczne Podstawowe składniki wszystkich układów logicznych Układy logiczne Bramki logiczne A B A B AND NAND A B A B OR NOR A NOT A B A B XOR NXOR A NOT A B AND NAND A B OR NOR A B XOR NXOR Podstawowe składniki wszystkich układów logicznych 2 Podstawowe tożsamości

Bardziej szczegółowo

Elementy cyfrowe i układy logiczne

Elementy cyfrowe i układy logiczne Elementy cyfrowe i układy logiczne Wykład 5 Legenda Procedura projektowania Podział układów VLSI 2 1 Procedura projektowania Specyfikacja Napisz, jeśli jeszcze nie istnieje, specyfikację układu. Opracowanie

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

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

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

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne Spis treści 5 Spis treœci Co to jest mikrokontroler? Wprowadzenie... 11 Budowa systemu komputerowego... 12 Wejścia systemu komputerowego... 12 Wyjścia systemu komputerowego... 13 Jednostka centralna (CPU)...

Bardziej szczegółowo

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL Instrukcja pomocnicza do laboratorium z przedmiotu Synteza układów

Bardziej szczegółowo

Synteza 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

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych: Zmienna i typ Pascal typy danych Zmienna to obiekt, który może przybierać różne wartości. Typ zmiennej to zakres wartości, które może przybierać zmienna. Deklarujemy je w nagłówku poprzedzając słowem kluczowym

Bardziej szczegółowo

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

Wykład 1. 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 Komputer, CPU Sprzęt a program Wykład 1 2017 11 październik 2017 Opcje projektowe

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

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

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

Bardziej szczegółowo

Sposoby projektowania systemów w cyfrowych

Sposoby projektowania systemów w cyfrowych Sposoby projektowania systemów w cyfrowych Top-down Idea całości projektu Dekompozycja na mniejsze bloki Projekt i rafinacja podbloków Łączenie bloków w całość PRZYKŁAD (sumator kaskadowy) zdefiniowanie

Bardziej szczegółowo

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

OPTYMALIZACJA MODELI SYMULACYJNYCH ZAMODELOWANYCH W JĘZYKU VERILOG HDL Z WYKORZYSTANIEM INTERFEJSU PLI

OPTYMALIZACJA MODELI SYMULACYJNYCH ZAMODELOWANYCH W JĘZYKU VERILOG HDL Z WYKORZYSTANIEM INTERFEJSU PLI OPTYMALIZACJA MODELI SYMULACYJNYCH ZAMODELOWANYCH W JĘZYKU VERILOG HDL Z WYKORZYSTANIEM INTERFEJSU PLI Arkadiusz Bukowiec Roman Drożdżyński mgr inż. Agnieszka Węgrzyn Instytut Informatyki i Elektroniki,

Bardziej szczegółowo

Projektowanie Urządzeń Cyfrowych

Projektowanie Urządzeń Cyfrowych Projektowanie Urządzeń Cyfrowych Laboratorium 2 Przykład prostego ALU Opracował: mgr inż. Leszek Ciopiński Wstęp: Magistrale: Program MAX+plus II umożliwia tworzenie magistral. Magistrale są to grupy przewodów

Bardziej szczegółowo

Układy 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

Projektowanie hierarchiczne Mariusz Rawski

Projektowanie hierarchiczne Mariusz Rawski CAD Projektowanie hierarchiczne rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/ Zamek elektroniczny: Elektroniczny zamek kod 4 cyfrowy kod wprowadzony z klawiatury ready sygnalizacja gotowości

Bardziej szczegółowo

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

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

Specyfika projektowania Mariusz Rawski

Specyfika projektowania Mariusz Rawski CAD Specyfika projektowania Mariusz Rawski rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/ System cyfrowy pierwsze skojarzenie Urządzenia wprowadzania danych: klawiatury czytniki urządzenia przetwarzania

Bardziej szczegółowo

Programowalne Układy Logiczne. Wykład I dr inż. Paweł Russek

Programowalne Układy Logiczne. Wykład I dr inż. Paweł Russek Programowalne Układy Logiczne Wykład I dr inż. Paweł Russek Literatura www.actel.com www.altera.com www.xilinx.com www.latticesemi.com Field Programmable Gate Arrays J.V. Oldfield, R.C. Dorf Field Programable

Bardziej szczegółowo

Tranzystor JFET i MOSFET zas. działania

Tranzystor JFET i MOSFET zas. działania Tranzystor JFET i MOSFET zas. działania brak kanału v GS =v t (cutoff ) kanał otwarty brak kanału kanał otwarty kanał zamknięty w.2, p. kanał zamknięty Co było na ostatnim wykładzie? Układy cyfrowe Najczęściej

Bardziej szczegółowo

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

Modelowanie złożonych układów cyfrowych (1) Modelowanie złożonych układów cyfrowych () funkcje i procedury przykłady (przerzutniki, rejestry) style programowania kombinacyjne bloki funkcjonalne bufory trójstanowe multipleksery kodery priorytetowe

Bardziej szczegółowo

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

Systemy Czasu Rzeczywistego FPGA

Systemy Czasu Rzeczywistego FPGA 01. Systemy Czasu Rzeczywistego FPGA 1 Systemy Czasu Rzeczywistego FPGA laboratorium: 03 autor: mgr inż. Mateusz Baran 01. Systemy Czasu Rzeczywistego FPGA 2 1 Spis treści FPGA... 1 1 Spis treści... 2

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania wykład 2 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula Język programowania Każdy język ma swoją składnię: słowa kluczowe instrukcje

Bardziej szczegółowo

Systemy Czasu Rzeczywistego FPGA

Systemy Czasu Rzeczywistego FPGA 01. Systemy Czasu Rzeczywistego FPGA 1 Systemy Czasu Rzeczywistego FPGA laboratorium: 05 autor: mgr inż. Mateusz Baran 01. Systemy Czasu Rzeczywistego FPGA 2 1 Spis treści FPGA... 1 1 Spis treści... 2

Bardziej szczegółowo

Liczniki z zastosowaniem

Liczniki z zastosowaniem Liczniki z zastosowaniem FPGA i µc Fizyka Medyczna, studia II stopnia, Dozymetria i elektronika w medycynie 1 Liczniki Rodzaje implementacji: Układy średniej skali integracji MSI Mikrokontroler Układ FPGA

Bardziej szczegółowo

LABORATORIUM ELEKTRONIKA Projektowanie koderów, transkoderów i dekoderów w języku VHDL

LABORATORIUM ELEKTRONIKA Projektowanie koderów, transkoderów i dekoderów w języku VHDL LABORATORIUM ELEKTRONIKA Projektowanie koderów, transkoderów i dekoderów w języku VHDL 1. Cel ćwiczenia W ćwiczeniu student projektuje i implementuje w strukturze układu FPGA (Field Programmable Gate Array)

Bardziej szczegółowo

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

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

Sterowniki Programowalne (SP)

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

Bardziej szczegółowo

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

Projektowanie układów na schemacie

Projektowanie układów na schemacie Projektowanie układów na schemacie Przedstawione poniżej wskazówki mogą być pomocne przy projektowaniu układach na poziomie schematu. Stałe wartości logiczne Aby podłączyć wejście do stałej wartości logicznych

Bardziej szczegółowo

Układy logiczne układy cyfrowe

Układy logiczne układy cyfrowe Układy logiczne układy cyfrowe Jak projektować układy cyfrowe (systemy cyfrowe) Układy arytmetyki rozproszonej filtrów cyfrowych Układy kryptograficzne X Selektor ROM ROM AND Specjalizowane układy cyfrowe

Bardziej szczegółowo

Języki projektowania HDL

Języki projektowania HDL Języki projektowania HDL Wykład dr inż. Marek Wójcikowski Ver: 2015-03-11 1 Zasady zaliczenia Wykład 2 kolokwia: 22.5+22.5 punktów=45 punktów Obecność na wykładzie 5 punktów Laboratorium 50 punktów Warunek

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

Ada 95 #1/5 - typy. Typy skalarne. Hierarchia typów w Adzie. Typ znakowy. Typy dyskretne. Plan wykładu

Ada 95 #1/5 - typy. Typy skalarne. Hierarchia typów w Adzie. Typ znakowy. Typy dyskretne. Plan wykładu Plan wykładu Ada 95 #1/5 - typy Wojciech Complak, Instytut Informatyki, Politechnika Poznańska e-mail : Wojciech.Complak@cs.put.poznan.pl www : http://www.cs.put.poznan.pl/wcomplak Hierarchia typów w Adzie

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

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

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

Temat: Pamięci. Programowalne struktury logiczne.

Temat: Pamięci. Programowalne struktury logiczne. Temat: Pamięci. Programowalne struktury logiczne. 1. Pamięci są układami służącymi do przechowywania informacji w postaci ciągu słów bitowych. Wykonuje się jako układy o bardzo dużym stopniu scalenia w

Bardziej szczegółowo

Projektowanie układów VLSI-ASIC techniką od ogółu do szczegółu (top-down) przy użyciu pakietu CADENCE

Projektowanie układów VLSI-ASIC techniką od ogółu do szczegółu (top-down) przy użyciu pakietu CADENCE Katedra Elektroniki Akademia Górniczo-Hutnicza w Krakowie Projektowanie układów VLSI-ASIC techniką od ogółu do szczegółu (top-down) przy użyciu pakietu CADENCE opis układu w Verilog, kompilacja i symulacja

Bardziej szczegółowo

Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych

Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych (Na przykładzie projektowania układów sterujacych) Grzegorz Łabiak i Marek Węgrzyn Instytut Informatyki

Bardziej szczegółowo

Projekt prostego procesora

Projekt prostego procesora Projekt prostego procesora Opracowany przez Rafała Walkowiaka dla zajęć z PTC 2012/2013 w oparciu o Laboratory Exercise 9 Altera Corporation Rysunek 1 przedstawia schemat układu cyfrowego stanowiącego

Bardziej szczegółowo

Język FBD w systemie Concept

Język FBD w systemie Concept 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

Układy mnoŝące H D L. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska

Układy mnoŝące H D L. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska Układy mnoŝące 1 MnoŜenie w układzie sekwencyjnym P = A X = N 1 k = 0 k a k 2 X MnoŜenie szeregowo-równoległe równoległe Czynnik X jest przesuwany o k pozycji: jeŝeli a k 0 to X*2 k jest dodawane i zapisywane

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Krótkie przypomnienie

Krótkie przypomnienie Krótkie przypomnienie x i ={,} y i ={,} w., p. Bramki logiczne czas propagacji Odpowiedź na wyjściu bramki następuje po pewnym, charakterystycznym dla danego układu czasie od momentu zmiany sygnałów wejściowych.

Bardziej szczegółowo

Języki opisu sprzętu VHDL Mariusz Rawski

Języki opisu sprzętu VHDL Mariusz Rawski CAD Języki opisu sprzętu VHDL rawski@tele.pw.edu.pl http://rawski.zpt.tele.pw.edu.pl/ Języki opisu sprzętu System cyfrowy może być opisany na różnych poziomach abstrakcji i z wykorzystaniem różnych sposobów

Bardziej szczegółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

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

Bardziej szczegółowo

Podstawy Informatyki Elementarne podzespoły komputera

Podstawy Informatyki Elementarne podzespoły komputera Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Reprezentacja informacji Podstawowe bramki logiczne 2 Przerzutniki Przerzutnik SR Rejestry Liczniki 3 Magistrala Sygnały

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

Języki projektowania HDL

Języki projektowania HDL Języki projektowania HDL Wykład dr hab. inż. Marek Wójcikowski Ver: 2019-02-22 1 Zasady zaliczenia Wykład 2 kolokwia: 25+25 punktów=50 punktów Obecność na wykładzie +5 punktów Laboratorium 50 punktów (kierunkowy

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

Technika mikroprocesorowa

Technika mikroprocesorowa Technika mikroprocesorowa zajmuje się przetwarzaniem danych w oparciu o cyfrowe programowalne układy scalone. Systemy przetwarzające dane w oparciu o takie układy nazywane są systemami mikroprocesorowymi

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Układy programowalne. Wykład z ptc część 5

Układy programowalne. Wykład z ptc część 5 Układy programowalne Wykład z ptc część 5 Pamięci ROM Pamięci stałe typu ROM (Read only memory) umożliwiają jedynie odczytanie informacji zawartej w strukturze pamięci. Działanie: Y= X j *cs gdzie j=linia(a).

Bardziej szczegółowo

Język opisu sprzętu VHDL

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

Bardziej szczegółowo

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA Instrukcja pomocnicza do laboratorium z przedmiotu Programowalne Struktury

Bardziej szczegółowo

Informatyka I. Wykład 4. Tablice. Dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Wykład 4. Tablice. Dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Wykład 4. Tablice. Dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Tablice Tablica uporządkowany zbiór elementów określonego typu Każdy element tablicy posiada

Bardziej szczegółowo

Systemy na Chipie. Robert Czerwiński

Systemy na Chipie. Robert Czerwiński Systemy na Chipie Robert Czerwiński Cel kursu Celem kursu jest zapoznanie słuchaczy ze współczesnymi metodami projektowania cyfrowych układów specjalizowanych, ze szczególnym uwzględnieniem układów logiki

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

Magistrale na schematach

Magistrale na schematach Magistrale na schematach Jeśli w projektowanym układzie występują sygnały składające się z kilku powiązanych ze sobą logicznie linii (na przykład liczby wielobitowe) wskazane jest używanie magistrali (Bus).

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

Cyfrowe układy scalone

Cyfrowe układy scalone Ryszard J. Barczyński, 2 25 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego Układy cyfrowe stosowane są do przetwarzania informacji zakodowanej

Bardziej szczegółowo

Realizacja bezpiecznego programowalnego sterownika logicznego z wykorzystaniem języków HDL

Realizacja bezpiecznego programowalnego sterownika logicznego z wykorzystaniem języków HDL Realizacja bezpiecznego programowalnego sterownika logicznego z wykorzystaniem języków HDL Arkadiusz Bukowiec 1 Radosław Gąsiorek 2 Agnieszka Węgrzyn 3 Prezentowany referat przedstawia ogólną koncepcję

Bardziej szczegółowo

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

Układy reprogramowalne i SoC Implementacja w układach FPGA Układy reprogramowalne i SoC Implementacja w układach FPGA Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez

Bardziej szczegółowo

Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach

Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach Marcin Stępniak Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach 1. Informacje Matematyk o nazwisku Bool wymyślił gałąź matematyki do przetwarzania wartości prawda

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

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

Modelowanie logiki rewersyjnej w języku VHDL

Modelowanie logiki rewersyjnej w języku VHDL PNIEWSKI Roman 1 Modelowanie logiki rewersyjnej w języku VHDL WSTĘP Konwencjonalne komputery wykorzystują dwuwartościową logikę Boole a. Funkcje opisujące układ cyfrowy wykorzystują najczęściej dwa operatory

Bardziej szczegółowo

Opisy efektów kształcenia dla modułu

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

Bardziej szczegółowo

Podstawy elektroniki cz. 2 Wykład 2

Podstawy elektroniki cz. 2 Wykład 2 Podstawy elektroniki cz. 2 Wykład 2 Elementarne prawa Trzy elementarne prawa 2 Prawo Ohma Stosunek natężenia prądu płynącego przez przewodnik do napięcia pomiędzy jego końcami jest stały R U I 3 Prawo

Bardziej szczegółowo

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

THE HARDWARE IMPLMENTATION OF THE PS/2 PROTOCOL ON SPARTAN 3 FPGA DEVICE IMPLEMENTACJA SPRZĘTOWA PROTOKOŁU PS/2 W UKLADZIE FPGA SPARTAN 3 Szymon Kozień IV rok Koło Naukowe Techniki Cyfrowej Dr inż. Wojciech Mysiński opiekun naukowy THE HARDWARE IMPLMTATION OF THE PS/ PROTOCOL ON SPARTAN FPGA DEVICE IMPLEMTACJA SPRZĘTOWA PROTOKOŁU PS/ W UKLADZIE

Bardziej szczegółowo

(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 programowalne. Wykład z ptc część 5

Układy programowalne. Wykład z ptc część 5 Układy programowalne Wykład z ptc część 5 Pamięci ROM Pamięci stałe typu ROM (Read only memory) umożliwiają jedynie odczytanie informacji zawartej w strukturze pamięci. Działanie: Y= X j *cs gdzie j=linia_pamięci(a).

Bardziej szczegółowo

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35 LABORATORIUM TECHNIKA CYFROWA Pamięci Rev.1.35 1. Cel ćwiczenia Praktyczna weryfikacja wiedzy teoretycznej z projektowania modułów sterowania oraz kontroli pamięci 2. Kolokwium Kolokwium wstępne sprawdzające

Bardziej szczegółowo

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

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