1 Wstęp. 2 Operatory. 3 Blok always dla układów kombinacyjnych. 4 Instrukcja IF. 5 Instrukcja CASE. 6 Struktury konstrukcji warunkowych

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

Download "1 Wstęp. 2 Operatory. 3 Blok always dla układów kombinacyjnych. 4 Instrukcja IF. 5 Instrukcja CASE. 6 Struktury konstrukcji warunkowych"

Transkrypt

1 Wstęp PROGRAMOWANIE STRUTUR CYFROWYCH Układy kombinacyjne poziomu RT c Dr inż. Ignacy Pardyka UNIWERSYTET JANA OCHANOWSIEGO w ielcach 1 Rok akad. 2013/ Instytut Fizyki, Zakład Informatyki, ignacy.pardyka@ujk.edu.pl c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 Wstęp Układy kombinacyjne poziomu RT Układy kombinacyjne poziomu RT (przesłań międzyrejestrowych) układy złożone z elementów strukturalnych, takich jak sumatory, komparatory, multipleksery Projektowanie z zastosowaniem operatorów Verilog: arytmetycznych (aritmetic) przesunięć (shift) relacji (relational) równości (equality) bitowych (bitwise) redukcji (reduction) logicznych (logical) konkatenacji (concatenation) warunkowych (conditional) 2 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50

2 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 arytmetyczne Sześć operatorów arytmetycznych: +, -, *, /, %, ** reprezentują kolejno: dodawanie, odejmowanie, mnożenie, dzielenie, modulo, potęgowanie W rezultacie syntezy, operatory + i generują sumator i układ odejmujący - implementowane w FPGA na poziomie podstawowych funktorów logicznych Synteza operacji mnożenia zależy od narzędzia syntezy i od technologii docelowej /, %, ** zwykle nie podlegają automatycznej syntezie. c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50

3 przesunięcia relacji i równości Cztery operatory przesunięcia: >>, <<, >>>, <<< pierwsze dwa, to logiczne przesunięcie w prawo i w lewo, a kolejne dwa, to przesunięcie arytmetyczne w prawo i w lewo Jeśli oba operandy są sygnałami, jak w a << b, to narzędzie syntezy utworzy przesuwnik krążący (barrel shifter) Przykłady: Operacje przesuwania można opisać również za pomocą operatora konkatenacji. Cztery operatory relacji: >, <, <=, >= porównują dwa operandy i zwracają 1-bitową wartość logiczną: 0 gdy fałsz, 1 gdy prawda Cztery operatory równości: ==,!=, ===,!== zwracają 1-bitową wartość 0 gdy fałsz, 1 gdy prawda operatory ===,!== uwzględniają bity o wartościach x oraz z, nie podlegają syntezie. relacji oraz operatory ==,!= są syntezowane jako komparatory. c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 bitowe, redukcji i logiczne bitowe, redukcji i logiczne bitowe (bitwise) Cztery podstawowe operatory bitowe: & (and), (or), ^ (xor), ~ (not) Przykład: sygnały 4-bitowe a, b, c wire [3:0] a, b, c; instrukcja assign c = a b; jest równoważna instrukcjom assign c[3] = a[3] b[3]; assign c[2] = a[2] b[2]; assign c[1] = a[1] b[1]; assign c[0] = a[0] b[0]; redukcji operatory &,, ^ mogą mieć tylko jeden operand, i wtedy działają jako operatory redukcji operacja jest wykonywana na wszystkich bitach i zwracana jest 1-bitowa wartość 0 albo 1 Przykład: mamy 4-bitowy sygnał a oraz 1-bitowy sygnał y: wire [3:0] a; wire y; instrukcja assign y = a; jest równoważna instrukcji assign y = a[3] a[2] a[1] a[0]; c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50

4 bitowe, redukcji i logiczne logiczne operatory &&,,! operandy operatorów logicznych mogą mieć wartości logiczne: fałsz (false) gdy wszystkie bity operandu są zerowe, albo prawda (true) gdy przynajmniej jeden z bitów reprezentacji operandu ma wartość 1 rezultatem operacji jest zawsze 1-bitowa wartość logiczna Z zasady używamy operatorów logicznych w wyrażeniach boolowskich, a operatorów bitowych do bitowych operacji na sygnałach Przykłady: c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 konkatenacji i replikacji Operator konkatenacji, { }, łączy części elementów i tablice tworząc tablice o większych rozmiarach wire al; wire [3:0] a4; wire [7:0] b8, c8, d8;... assign b8 = {a4, a4}; assign c8 = {al, al, a4, 2 b00}; assign d8 = {b8[3:0], c8[3:0]}; Operator konkatenacji można zastosować do realizacji operacji przesuwania (shift) i rotacji (rotate) o zadaną liczbę pozycji wire [7:0] a; wire [7:0] rot, shl, sha;... assign rot = {a[2:0], a[7:3]}; // rotate right 3 bits assign shl = {3 b000, a[7:3]}; // logical shift assign sha = {3{a[7]}, a[7:3]}; // arithmetic shift c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 warunkowe Operator? :, wymaga trzech operandów [signal] = [boolean-exp]? [true-exp] : [false-exp]; Przykład 1: większa z wartości a, b: assign max = (a>b)? a : b; Przykład 2: największa z wartości a, b, c: assign max = (a>b)? ((a>c)? a : c) : ((b>c)? b : c ); W rezultacie syntezy tworzony jest multiplekser 2x1. c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 Ustalanie liczby bitów wartości wyrażenia Wyznaczana jest liczba bitów najdłuższego z operandów z kontekstu obejmującego wyrażenie z prawej strony i sygnału z lewej Reprezentację każdego z sygnałów występujących w wyrażeniu prawostronnym rozszerza się do reprezentacji na maksymalnej liczbie bitów, a następnie oblicza się wartość wyrażenia Rezultat przypisuje się do sygnału z lewej strony instrukcji przypisania. Jeśli liczba bitów reprezentacji sygnału jest mniejsza od liczby bitów reprezentacji rezultatu, to obcinane są starsze bity. Przykład: wire [7:0] a, b; wire [7:0] sum8; wire [8:0] sum9; assign sum8 = a + b; assign sum9 = a + b; w pierwszym przypadku, ewentualny bit przeniesienia (carry-out) zostanie zgubiony. c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50

5 Blok always dla układów kombinacyjnych Synteza układu z wartościami z Wartości z implikują syntezę układu z buforem 3-stanowym assign y = (oe)? a_in : 1 bz; 2 Typowe zastosowanie bufora 3-stanowego to implementacja portu dwukierunkowego (inout) c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 Blok always dla układów kombinacyjnych Blok always dla układów kombinacyjnych Blok always można traktować jako czarną skrzynkę, której działanie jest opisane przez instrukcje proceduralne nie wszystkie instrukcje proceduralne są syntezowalne w pojedyncze, typowe układy Synteza układów kombinacyjnych: przypisanie proceduralne blokujące instrukcja if instrukcja case c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 Blok always dla układów kombinacyjnych Składnia i działanie Uproszczona składnia bloku always z listą wrażliwości: begin [optional name] [optional local variable declaration]; [procedural statement]; [procedural statement]; Term [sensitivity_list] to lista sygnałów i zdarzeń, na które blok always ma odpowiadać (jest wrażliwy na ) wszystkie sygnały wejściowe układu kombinacyjnego muszą występować na liście wrażliwości jeśli którykolwiek z sygnałów listy wrażliwości zmieni wartość lub zajdzie zdarzenie, to blok jest aktywowany i wykonywane są instrukcje zawarte w bloku always po wykonaniu instrukcji w bloku always, proces jest usypiany (zawieszany). c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50

6 Blok always dla układów kombinacyjnych Przypisanie proceduralne Blok always dla układów kombinacyjnych Przykład: komparator 1-bitowy Przypisanie proceduralne może być użyte jedynie w bloku always lub w bloku initial Są dwa rodzaje przypisań proceduralnych: blokujące i nieblokujące [variable_name] = [expression] ; // blocking assignment [variable_name] <= [expression] ; // nonblocking assignment przypisanie blokujące: wyrażenie jest obliczane i jego wartość jest natychmiast przypisywana do zmiennej, tzn. przed wykonaniem następnej instrukcji przypisanie nieblokujące: wyrażenie jest obliczane, jednak przypisanie jest odkładane w czasie aż do końca bloku always (przypisanie nie blokuje więc następnych instrukcji zawartych w always) Przypisania blokujące należy stosować do opisu układów kombinacyjnych, a nieblokujące do opisu układów sekwencyjnych. module eq1_always (input wire i0, i1, output reg eq ); // eq declared as reg // p0 and p1 declared as reg reg p0, p1; i1) // i0 an i1 must be in sensitivity list begin // the order of statements is important p0 = ~i0 & ~i1; p1 = i0 & i1; eq = p0 p1; Verilog-2001 wprowadza notację implikującą umieszczenie na liście wrażliwości wszystkich sygnałów wejściowych. c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 Instrukcja IF Instrukcja IF Instrukcja IF 2 Uproszczona składnia instrukcji if: if [boolean_expr] begin [procedural statement]; [procedural statement]; else begin [procedural statement]; [procedural statement]; c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50

7 Instrukcja IF Przykład: dekoder binarny za pomocą instrukcji if Instrukcja CASE module decoder_2_4_if (input wire [1:0] a, input wire en, output reg [3:0] y); if (en==1 b0) y = 4 b0000; else if (a==2 b00) y = 4 b0001; else if (a==2 b01) y = 4 b0010; else if (a==2 b10) y = 4 b0100; else y = 4 b1000; // can be written as (~en) 2 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 Instrukcja CASE Składnia instrukcji CASE Instrukcja CASE Przykład: dekoder binarny za pomocą instrukcji case Uproszczona składnia instrukcji case: case [case_expr] [item]: begin procedural statement]; procedural statement]; [item]: begin procedural statement]; default: begin procedural statement]; case c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 module decoder_2_4_case ( input wire [1:0] a, input wire en, output reg [3:0] y ); case({en,a}) 3 b000, 3 b001, 3 b010, 3 b011: y = 4 b0000; 3 b100: y = 4 b0001; 3 b101: y = 4 b0010; 3 b110: y = 4 b0100; 3 b111: y = 4 b1000; // default can also be used case c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50

8 Instrukcja CASE Struktury konstrukcji warunkowych Instrukcje CASEZ i CASEX Instrukcja casez: wartość z na pozycji znaku? jest traktowana jako nieistotna (don t-care) odpowiednie bity nie są brane pod uwagę przy dopasowaniu Instrukcja casex: wartości z i x na pozycji znaku? są nieistotne oder priorytetowy za pomocą instrukcji casez: module prio_encoder_casez (input wire [4:1] r, output reg [2:0] y); casez(r) 4 b1???: y = 3 b100; 4 b01??: y = 3 b011; 4 b001?: y = 3 b010; 4 b0001: y = 3 b001; 4 b0000: y = 3 b000; // default can also be used case 2 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 Struktury konstrukcji warunkowych Struktury konstrukcji warunkowych Struktury konstrukcji warunkowych Implementacja instrukcji if (rutowanie priorytetowe) Ewaluacja wszystkich wyrażeń zachodzi współbieżnie, a pożądany rezultat jest doprowadzany do wyjścia (rutowany) Dwa sposoby rutowania: rutowanie priorytetowe multipleksowanie Rutowanie priorytetowe: if (m==n) r = a + b + c; else if (m > n) r = a - b; else r = c + 1; c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50

9 Struktury konstrukcji warunkowych Implementacja równoległa instrukcji case multipleksowanie Przykład: wire [1:0] sel; case (sel) 2 b00: r = a + b + c; 2 b10: r = a - b; default: r = c + 1; // 2 b01, 2 b1l case Schemat: Zasady konstruowania kodu w bloku always 2 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 Zasady konstruowania kodu w bloku always Zasady konstruowania kodu w bloku always Modelowanie układów kombinacyjnych: przypisywanie wartości do danej zmiennej - tylko w jednym z bloków always stosować instrukcje blokujące stosować umieszczającą wszystkie wejścia układu na liście wrażliwości w opisie uwzględniać wszystkie rozgałęzienia instrukcji if i case w każdym rozgałęzieniu przypisywać rezultat do wyjść domyślne wartości wyjść nadawać na początku bloku always w opisie kodu z zastosowaniem always nie stosować dyrektyw ani atrybutów mieć świadomość sposobu rutowania w implementacji różnych konstrukcji sterujących Myśleć sprzętowo, a nie programowo (przecież nie piszemy tu programu w języku C). 2 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50

10 Dobra zasada: wszystkie stałe literały zastąpić stałymi symbolami stałe deklarować jako localparam ( parametr lokalny ): localparam DATA_WIDTH = 8, DATA_RANGE = 2**DATA_WIDTH - 1; localparam UART_PORT = 4 b0001; wyrażenia w deklaracji, jak np. 2**DATA_WIDTH-1, są ewaluowane przez preprocesor, więc nie generują układu fizycznego Przykład: module adder_carry_local_par (input wire [3:0] a, b, output wire [3:0] sum, output wire cout); localparam N = 4, N1 = N-1; wire [N:0] sum_ext; assign sum_ext = {1 b0, a} + {1 b0, b}; assign sum = sum_ext[n1:0]; assign cout = sum_ext[n]; Verilog pozwala parametryzować moduły, czyli przekazywać parametr zewnętrzny do wnętrza modułu uproszczona składnia: module [module_name] #(parameter [parameter_name] = [default_value], [parameter_name] = [default_value]) ( // I/O port declaration ); Dzięki parametryzacji kod jest skalowalny, szerokość układu można dostosować do potrzeb (układ n-bitowy) Definiując parametr można określić jego typ i zakres (więcej w opisie standardu IEEE ). c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 Przykład deklarowania sumatora Sumator z parametrem: module adder_carry_para #(parameter N=4) ( input wire [N-1:0] a, b, output wire [N-1:0] sum, output wire cout // carry-out ); localparam N1 = N-1; wire [N:0] sum_ext; assign sum_ext = {1 b0, a} + {1 b0, b}; assign sum = sum_ext[n1:0]; assign cout= sum_ext[n]; Aktualną wartość parametru przekazujemy do podzespołu podczas jego deklaracji (component instantiation). Nadawanie wartości parametrowi przypomina przypisywanie sygnałów do portów - przez nazwę, albo przez listę. c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 module adder_insta ( input wire [3:0] a4, b4, output wire [3:0] sum4, output wire c4, input wire [7:0] a8, b8, output wire [7:0] sum8, output wire c8 ); // instantiate 8-bit adder adder_carry_para #(.N(8)) unit1 (.a(a8),.b(b8),.sum(sum8),.cout(c8)); // instantiate 4-bit adder adder_carry_para unit2 (.a(a4),.b(b4),.sum(sum4),.cout(c4)); c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50

11 2 wskaźnik 7-segmentowy a b c d e f g dp common anode c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 4-cyfrowy wyświetlacz na płycie Nexys2 Sterowanie wyświetlaczem 4-cyfrowym c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50

12 4 cyfry wyświetlacza Transkoder kodu szesnastkowego do 7-seg A3 A2 A1 A0 a b c d e f g dp c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 +V module hex_to_sseg ( input wire [3:0] hex, input wire dp, output reg [7:0] sseg ); // output active low begin case(hex) 4 h0: sseg[6:0] = 7 b ; 4 h1: sseg[6:0] = 7 b ; 4 h2: sseg[6:0] = 7 b ; 4 h3: sseg[6:0] = 7 b ; 4 h4: sseg[6:0] = 7 b ; 4 h5: sseg[6:0] = 7 b ; 4 h6: sseg[6:0] = 7 b ; 4 h7: sseg[6:0] = 7 b ; 4 h8: sseg[6:0] = 7 b ; 4 h9: sseg[6:0] = 7 b ; 4 ha: sseg[6:0] = 7 b ; 4 hb: sseg[6:0] = 7 b ; 4 hc: sseg[6:0] = 7 b ; 4 hd: sseg[6:0] = 7 b ; 4 he: sseg[6:0] = 7 b ; default: sseg[6:0] = 7 b ; case sseg[7] = dp; //4 hf c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 Układ testujący Struktura układu testujacego Na płycie prototypowej wyświetlacz złożony z 4 cyfr 7-segmentowych Aby zredukować liczbę wyjść z układu FPGA stosuje się multipleksowanie (time-multiplexing) układ realizujący multipleksowanie: disp_mux: wejścia in0, inl, in2, in3 przekazują cztery 8-bitowe kody sterujące wskaźnikami 7-segmentowymi (z układu hex_to_sseg) wyjście an to 4-bitowy sygnal wybierający jedną z 4 cyfr wyjście sseg to 8-bitowy sygnal sterujący wskaźnikiem 7-segmentowym na razie traktujmy ten układ jako czarną skrzynkę i zadeklarujmy w module hex_to_sseg_test (zakładając, że opis stosownego modułu jest dostępny). c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50

13 Opis układu testującego Literatura Literatura module hex_to_sseg_test ( input wire clk, input wire [7:0] sw, output wire [3:0] an, output wire [7:0] sseg ); wire [7:0] inc; wire [7:0] led0, led1, led2, led3; assign inc = sw + 1; // to increment input // instantiate four instances of hex decoders hex_to_sseg sseg_unit_0 (.hex(sw[3:0]),.dp(1 b0),.sseg(led0)); hex_to_sseg sseg_unit_1 (.hex(sw[7:4]),.dp(1 b0),.sseg(led1)); // instance for 4 LSBs of incremented value hex_to_sseg sseg_unit_2 (.hex(inc[3:0]),.dp(1 b1),.sseg(led2)); // instance for 4 MSBs of incremented value hex_to_sseg sseg_unit_3 (.hex(inc[7:4]),.dp(1 b1),.sseg(led3)); // instantiate 7-seg LED display time-multiplexing module disp_mux disp_unit (.clk(clk),.reset(1 b0),.in0(led0),.in1(led1),.in2(led2),.in3(led3),.an(an),.sseg(sseg)); c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50 D.M. Harris, S.L. Harris, Digital Design and Computer Architecture, Elsevier, Z. Hajduk, Wprowadzenie do języka Verilog, BTC, M. Pawłowski, A. Skorupski, Projektowanie złożonych układów cyfrowych, WiŁ, P. Pong. Chu, FPGA Prototyping by Verilog examples, Wiley, IEEE Standard Verilog R Hardware Description Language, IEEE, Xilinx ISE WebPack: Digilent Nexys2: OpenCores: c Dr inż. Ignacy Pardyka (Inf U J ) programowanie struktur cyfrowych Rok akad. 2013/ / 50

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

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

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

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

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

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

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

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 3 (4h) Konwersja i wyświetlania informacji binarnej w VHDL Instrukcja do zajęć laboratoryjnych z przedmiotu Synteza

Bardziej szczegółowo

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

PROGRAMOWANIE STRUKTUR CYFROWYCH. Konwencje dla asemblera KCPSM3. Simple IO. PicoBlaze - projekty. c Dr inż. Ignacy Pardyka. Rok akad.

PROGRAMOWANIE STRUKTUR CYFROWYCH. Konwencje dla asemblera KCPSM3. Simple IO. PicoBlaze - projekty. c Dr inż. Ignacy Pardyka. Rok akad. PROGRAMOWANIE STRUTUR CYFROWYCH PicoBlaze - projekty c Dr inż. Ignacy Pardyka UNIWERSYTET JANA OCHANOWSIEGO w ielcach 1 Rok akad. 2014/2015 1 Instytut Fizyki, Zakład Informatyki, e-mail: ignacy.pardyka@ujk.edu.pl

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

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH reprezentacja danych ASK.RD.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok

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

Podstawy programowania w języku C i C++

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

Bardziej szczegółowo

Automatyka. Treść wykładów: Multiplekser. Układ kombinacyjny. Demultiplekser. Koder

Automatyka. Treść wykładów: Multiplekser. Układ kombinacyjny. Demultiplekser. Koder Treść wykładów: utomatyka dr inż. Szymon Surma szymon.surma@polsl.pl http://zawt.polsl.pl/studia pok., tel. +48 6 46. Podstawy automatyki. Układy kombinacyjne,. Charakterystyka,. Multiplekser, demultiplekser,.

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

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

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

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

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

Struktura i działanie jednostki centralnej

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

Bardziej szczegółowo

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

Technika cyfrowa projekt: Sumator 4 bitowy równoległy Technika cyfrowa projekt: Sumator 4 bitowy równoległy Autorzy: Paweł Bara Robert Boczek Przebieg prac projektowych: Zadany układ dostaje na wejściu dwie czterobitowe liczby naturalne, sumuje je, po czym

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Programowalne układy logiczne

Programowalne układy logiczne Programowalne układy logiczne Układy kombinacyjne Szymon Acedański Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 28 września 2015 Co to jest układ kombinacyjny? Stan wyjść zależy tylko

Bardziej szczegółowo

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

Ćwiczenie 27 Temat: Układy komparatorów oraz układy sumujące i odejmujące i układy sumatorów połówkowych i pełnych. Cel ćwiczenia

Ćwiczenie 27 Temat: Układy komparatorów oraz układy sumujące i odejmujące i układy sumatorów połówkowych i pełnych. Cel ćwiczenia Ćwiczenie 27 Temat: Układy komparatorów oraz układy sumujące i odejmujące i układy sumatorów połówkowych i pełnych. Cel ćwiczenia Poznanie zasad budowy działania komparatorów cyfrowych. Konstruowanie komparatorów

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

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

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

Bardziej szczegółowo

Technika cyfrowa Synteza układów kombinacyjnych

Technika cyfrowa Synteza układów kombinacyjnych Sławomir Kulesza Technika cyfrowa Synteza układów kombinacyjnych Wykład dla studentów III roku Informatyki Wersja 2.0, 05/10/2011 Podział układów logicznych Opis funkcjonalny układów logicznych x 1 y 1

Bardziej szczegółowo

Układy logiczne. Wstęp doinformatyki. Funkcje boolowskie (1854) Funkcje boolowskie. Operacje logiczne. Funkcja boolowska (przykład)

Układy logiczne. Wstęp doinformatyki. Funkcje boolowskie (1854) Funkcje boolowskie. Operacje logiczne. Funkcja boolowska (przykład) Wstęp doinformatyki Układy logiczne komputerów kombinacyjne sekwencyjne Układy logiczne Układy kombinacyjne Dr inż. Ignacy Pardyka Akademia Świętokrzyska Kielce, 2001 synchroniczne asynchroniczne Wstęp

Bardziej szczegółowo

LABORATORIUM TECHNIKA CYFROWA LICZNIKI I REJESTRY. Rev.1.1

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

Bardziej szczegółowo

Kombinacyjne bloki funkcjonalne

Kombinacyjne bloki funkcjonalne Sławomir Kulesza Technika cyfrowa Kombinacyjne bloki funkcjonalne Wykład dla studentów III roku Informatyki Wersja., 5//2 Bloki cyfrowe Blok funkcjonalny to układ cyfrowy utworzony z pewnej liczby elementów

Bardziej szczegółowo

SML3 październik

SML3 październik SML3 październik 2005 35 160_7SEG2 Moduł zawiera dwupozycyjny 7-segmentowy wyświetlacz LED ze wspólną anodą, sterowany przez dwa dekodery HEX->7SEG zrealizowane w układach GAL16V8. Dekodery przypominają

Bardziej szczegółowo

Układy kombinacyjne. cz.2

Układy kombinacyjne. cz.2 Układy kombinacyjne cz.2 Układy kombinacyjne 2/26 Kombinacyjne bloki funkcjonalne Kombinacyjne bloki funkcjonalne - dekodery 3/26 Dekodery Są to układy zamieniające wybrany kod binarny (najczęściej NB)

Bardziej szczegółowo

AHDL - Język opisu projektu. Podstawowe struktury języka. Komentarz rozpoczyna znak i kończy znak %. SUBDESIGN

AHDL - Język opisu projektu. Podstawowe struktury języka. Komentarz rozpoczyna znak i kończy znak %. SUBDESIGN AHDL - Język opisu projektu. Podstawowe struktury języka Przykładowy opis rewersyjnego licznika modulo 64. TITLE "Licznik rewersyjny modulo 64 z zerowaniem i zapisem"; %------------------------------------------------------------

Bardziej szczegółowo

Projektowanie 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

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

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

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

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

Wstęp do Informatyki i Programowania (kierunek matematyka stosowana)

Wstęp do Informatyki i Programowania (kierunek matematyka stosowana) Wstęp do Informatyki i Programowania (kierunek matematyka stosowana) Jacek Cichoń Przemysław Kobylański Instytut Matematyki i Informatyki Politechnika Wrocławska Na podstawie: M.Summerfield.Python 3. Kompletne

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Operatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1

Operatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1 Operatory Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1 Przypomnienie: operatory Operator przypisania = przypisanie x = y x y Operatory arytmetyczne

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

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

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

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. Operacje logiczne A B A OR B

1. Operacje logiczne A B A OR B 1. Operacje logiczne OR Operacje logiczne są operacjami działającymi na poszczególnych bitach, dzięki czemu można je całkowicie opisać przedstawiając jak oddziałują ze sobą dwa bity. Takie operacje logiczne

Bardziej szczegółowo

Technika cyfrowa Synteza układów kombinacyjnych (I)

Technika cyfrowa Synteza układów kombinacyjnych (I) Sławomir Kulesza Technika cyfrowa Synteza układów kombinacyjnych (I) Wykład dla studentów III roku Informatyki Wersja 2.0, 05/10/2011 Podział układów logicznych Opis funkcjonalny układów logicznych x 1

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

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń. Podstawy programowania Programowanie wyrażeń 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń. W językach programowania są wykorzystywane

Bardziej szczegółowo

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop. 2017 Spis treści O autorze 9 Wprowadzenie 11 Rozdział 1. Sterownik przemysłowy 15 Sterownik S7-1200 15 Budowa zewnętrzna

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

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); } OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;

Bardziej szczegółowo

Ćwiczenie 28. Przy odejmowaniu z uzupełnieniem do 2 jest wytwarzane przeniesienie w postaci liczby 1 Połówkowy układ

Ćwiczenie 28. Przy odejmowaniu z uzupełnieniem do 2 jest wytwarzane przeniesienie w postaci liczby 1 Połówkowy układ Temat: Układy odejmujące połówkowe i pełne. Cel ćwiczenia Ćwiczenie 28 Poznanie teorii uzupełniania. Budowanie układów odejmujących połówkowych pełnych. Czytanie schematów elektronicznych, przestrzeganie

Bardziej szczegółowo

Układ sterowania 4-cyfrowym wyświetlaczem 7-segmentowym LED

Układ sterowania 4-cyfrowym wyświetlaczem 7-segmentowym LED Język Verilog w przykładach (2) Dodatkowe materiały na CD Układ sterowania 4-cyfrowym wyświetlaczem 7-segmentowym LED W tej części kursu opiszemy bloki funkcjonalne układu sterowania 4-cyfrowym wyświetlaczem

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

Podstawy programowania w języku C

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

Bardziej szczegółowo

Architektura typu Single-Cycle

Architektura typu Single-Cycle Architektura typu Single-Cycle...czyli budujemy pierwszą maszynę parową Przepływ danych W układach sekwencyjnych przepływ danych synchronizowany jest sygnałem zegara Elementy procesora - założenia Pamięć

Bardziej szczegółowo

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości

Bardziej szczegółowo

Architektura systemów komputerowych. Poziom układów logicznych. Układy mnoŝące i dzielące

Architektura systemów komputerowych. Poziom układów logicznych. Układy mnoŝące i dzielące Architektura systemów komputerowych Poziom układów logicznych. Układy mnoŝące i dzielące Cezary Bolek Katedra Informatyki Plan wykładu Układy mnoŝące liczby całkowite MnoŜenie liczb bez znaku MnoŜarka

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

Ćwiczenie 01 - Strona nr 1 ĆWICZENIE 01

Ćwiczenie 01 - Strona nr 1 ĆWICZENIE 01 ĆWICZENIE 01 Ćwiczenie 01 - Strona nr 1 Polecenie: Bez użycia narzędzi elektronicznych oraz informatycznych, wykonaj konwersje liczb z jednego systemu liczbowego (BIN, OCT, DEC, HEX) do drugiego systemu

Bardziej szczegółowo

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

Bardziej szczegółowo

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania Wykład: 4 Instrukcje sterujące, operatory 1 programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe ; instrukcja_krok ) tresc_petli ; instrukcja_ini

Bardziej szczegółowo

Plan wykładu. Architektura systemów komputerowych. MnoŜenie realizacja sprzętowa (wersja 1) Układy mnoŝące liczby całkowite.

Plan wykładu. Architektura systemów komputerowych. MnoŜenie realizacja sprzętowa (wersja 1) Układy mnoŝące liczby całkowite. Plan wykładu rchitektura systemów komputerowych Poziom układów logicznych. Układy mnoŝące i dzielące Cezary Bolek Katedra Informatyki Układy mnoŝące liczby całkowite MnoŜenie liczb bez znaku MnoŜarka sekwencyjna

Bardziej szczegółowo

Funkcja Boolowska a kombinacyjny blok funkcjonalny

Funkcja Boolowska a kombinacyjny blok funkcjonalny SWB - Kombinacyjne bloki funkcjonalne - wykład 3 asz 1 Funkcja Boolowska a kombinacyjny blok funkcjonalny Kombinacyjny blok funkcjonalny w technice cyfrowej jest układem kombinacyjnym złożonym znwejściach

Bardziej szczegółowo

Język VERILOG w praktyce

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

Bardziej szczegółowo

Technika cyfrowa i mikroprocesorowa. Zaliczenie na ocenę. Zaliczenie na ocenę

Technika cyfrowa i mikroprocesorowa. Zaliczenie na ocenę. Zaliczenie na ocenę I. KARTA PRZEDMIOTU Nazwa przedmiotu/modułu: Nazwa angielska: Kierunek studiów: Poziom studiów: Profil studiów: Jednostka prowadząca: Technika cyfrowa i mikroprocesorowa Edukacja techniczno-informatyczna

Bardziej szczegółowo

Python wstęp do programowania dla użytkowników WCSS

Python wstęp do programowania dla użytkowników WCSS Python wstęp do programowania dla użytkowników WCSS Dr inż. Krzysztof Berezowski Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Wprowadzenie CHARAKTERYSTYKA JĘZYKA Filozofia języka

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Wykład jest przygotowany dla IV semestru kierunku Elektronika i Telekomunikacja. Studia I stopnia Dr inż. Małgorzata Langer Architektura komputerów Prezentacja multimedialna współfinansowana przez Unię

Bardziej szczegółowo

Mikrokontroler ATmega32. Język symboliczny

Mikrokontroler ATmega32. Język symboliczny Mikrokontroler ATmega32 Język symboliczny 1 Język symboliczny (asembler) jest językiem niskiego poziomu - pozwala pisać programy złożone z instrukcji procesora. Kody instrukcji są reprezentowane nazwami

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

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

Przykładowe pytania DSP 1

Przykładowe pytania DSP 1 Przykładowe pytania SP Przykładowe pytania Systemy liczbowe. Przedstawić liczby; -, - w kodzie binarnym i hexadecymalnym uzupełnionym do dwóch (liczba 6 bitowa).. odać dwie liczby binarne w kodzie U +..

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

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki ĆWICZENIE Nr 2 (3h) Przełączniki, wyświetlacze, multipleksery - implementacja i obsługa w VHDL Instrukcja pomocnicza do laboratorium

Bardziej szczegółowo

Laboratorium przedmiotu Technika Cyfrowa

Laboratorium przedmiotu Technika Cyfrowa Laboratorium przedmiotu Technika Cyfrowa ćw.3 i 4: Asynchroniczne i synchroniczne automaty sekwencyjne 1. Implementacja asynchronicznych i synchronicznych maszyn stanu w języku VERILOG: Maszyny stanu w

Bardziej szczegółowo

Języki i paradygmaty programowania

Języki i paradygmaty programowania Języki i paradygmaty programowania Instytut Teleinformatyki ITI PK Kraków marzec 2012 Spis rzeczy 1 Operatory w C/C++ Operatory Operatory w C/C++ operator - rodzaj funkcji wbudowanej w język; różnica notacja

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

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

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

Bardziej szczegółowo

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

Układy sekwencyjne. Wstęp doinformatyki. Zegary. Układy sekwencyjne. Automaty sekwencyjne. Element pamięciowy. Układy logiczne komputerów

Układy sekwencyjne. Wstęp doinformatyki. Zegary. Układy sekwencyjne. Automaty sekwencyjne. Element pamięciowy. Układy logiczne komputerów Wstęp doinformatyki Układy sekwencyjne Układy logiczne komputerów Układy sekwencyjne Dr inż. Ignacy Pardyka Akademia Świętokrzyska Kielce, 2001 Wstęp do informatyki I. Pardyka Akademia Świętokrzyska Kielce,

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

Mikrooperacje. Mikrooperacje arytmetyczne

Mikrooperacje. Mikrooperacje arytmetyczne Przygotowanie: Przemysław Sołtan e-mail: kerk@moskit.ie.tu.koszalin.pl Mikrooperacje Mikrooperacja to elementarna operacja wykonywana podczas jednego taktu zegara mikroprocesora na informacji przechowywanej

Bardziej szczegółowo

System operacyjny Linux

System operacyjny Linux Paweł Rajba pawel.rajba@continet.pl http://kursy24.eu/ Zawartość modułu 6 Język bash Pierwszy skrypt Rozwinięcia parametryczne Bloki instrukcji Dwa przydatne polecenia Tablice Sprawdzanie warunków Instrukcje

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

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

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW Projektowanie urządzeń cyfrowych przy użyciu układów TTL polegało na opracowaniu algorytmu i odpowiednim doborze i zestawieniu układów realizujących różnorodne funkcje

Bardziej szczegółowo

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch. Instrukcje warunkowe i skoku. Spotkanie 2 Dr inż. Dariusz JĘDRZEJCZYK Wyrażenia i operatory logiczne Instrukcje warunkowe: if else, switch Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania

Bardziej szczegółowo

Lista zadań nr 1. Zagadnienia stosowanie sieci Petriego (ang. Petri net) jako narzędzia do modelowania algorytmów sterowania procesami

Lista zadań nr 1. Zagadnienia stosowanie sieci Petriego (ang. Petri net) jako narzędzia do modelowania algorytmów sterowania procesami Warsztaty Koła Naukowego SMART dr inż. Grzegorz Bazydło G.Bazydlo@iee.uz.zgora.pl, staff.uz.zgora.pl/gbazydlo Lista zadań nr 1 Zagadnienia stosowanie sieci Petriego (ang. Petri net) jako narzędzia do modelowania

Bardziej szczegółowo

Instrukcje sekwencyjne

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

Bardziej szczegółowo

Stałe definiuje się używając funkcji define. Przykład: define( PODATEK, 22); define( INSTALACJAOS, 70); define( MS, Microsoft );

Stałe definiuje się używając funkcji define. Przykład: define( PODATEK, 22); define( INSTALACJAOS, 70); define( MS, Microsoft ); Stałe definiuje się używając funkcji define. Przykład: define( PODATEK, 22); define( INSTALACJAOS, 70); define( MS, Microsoft ); Dobrą praktyką jest używanie wielkich liter jako nazw stałych. Nie jest

Bardziej szczegółowo

Algorytmika i Programowanie VBA 1 - podstawy

Algorytmika i Programowanie VBA 1 - podstawy Algorytmika i Programowanie VBA 1 - podstawy Tomasz Sokół ZZI, IL, PW Czas START uruchamianie środowiska VBA w Excelu Alt-F11 lub Narzędzia / Makra / Edytor Visual Basic konfiguracja środowiska VBA przy

Bardziej szczegółowo

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

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

Bardziej szczegółowo