Kombinációs áramkörök modelezése Laborgyakorlat. Dr. Oniga István

Hasonló dokumentumok
LOGIKAI TERVEZÉS PROGRAMOZHATÓ. Elő Előadó: Dr. Oniga István

Dr. Oniga István DIGITÁLIS TECHNIKA 4

Digitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar

Laborgyakorlat 3 A modul ellenőrzése szimulációval. Dr. Oniga István

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Dr. Oniga István

DIGITÁLIS TECHNIKA I

Digitális technika (VIMIAA02) Laboratórium 3

Digitális technika (VIMIAA02) Laboratórium 3

Budapesti Műszaki és Gazdaságtudományi Egyetem. A Verilog HDL II. Nagy Gergely. Elektronikus Eszközök Tanszéke (BME) szeptember 26.

Mérési jegyzőkönyv. az ötödik méréshez

Hardver leíró nyelvek (HDL)

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

FPGA & Verilog ismertetı. BME Méréstechnika és Információs Rendszerek Tanszék

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Dr. Oniga István DIGITÁLIS TECHNIKA 9

Újrakonfigurálható eszközök

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Dr. Oniga István

11. KÓDÁTALAKÍTÓ TERVEZÉSE HÉTSZEGMENSES KIJELZŐHÖZ A FEJLESZTŐLAPON

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Előadó: Dr. Oniga István

4. hét: Ideális és valódi építőelemek. Steiner Henriette Egészségügyi mérnök

Verilog ismertető (Szántó Péter, BME MIT, )

Dr. Oniga István DIGITÁLIS TECHNIKA 8

DIGITÁLIS TECHNIKA I PÉLDA: 3 A 8 KÖZÜL DEKÓDÓLÓ HOGYAN HASZNÁLHATÓ EGY 4/16-OS DEKÓDER 3/8-AS DEKÓDERKÉNT? D 2 3 DEKÓDER BŐVÍTÉS

A feladatokat önállóan, meg nem engedett segédeszközök használata nélkül oldottam meg: Olvasható aláírás:...

Elektronikus dobókocka tervezési példa

1. Kombinációs hálózatok mérési gyakorlatai

Hobbi Elektronika. A digitális elektronika alapjai: Kombinációs logikai hálózatok 2. rész

A Verilog HDL áttekintése

Újrakonfigurálható eszközök

Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás BME MIT FPGA laboratórium

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

A gyakorlatokhoz kidolgozott DW példák a gyakorlathoz tartozó Segédlet könyvtárban találhatók.

1. Kombinációs hálózatok mérési gyakorlatai

PROTOTÍPUSKÉSZÍTÉS. Előadó: Dr. Oniga István

Egyszerű RISC CPU tervezése

Szántó Péter BME Méréstechnika és Információs Rendszerek Tanszék, FPGA Labor

A Picoblaze Core implementálása FPGA-ba

Előadó: Nagy István (A65)

DIGITÁLIS TECHNIKA I

Újrakonfigurálható eszközök

DIGITÁLIS TECHNIKA I. BINÁRIS/GRAY ÁTALAKÍTÁS b3b2b1b0 g3g2g1g0 BINÁRIS/GRAY KONVERZIÓ BINÁRIS/GRAY KÓDÁTALAKÍTÓ BIN/GRAY KONVERZIÓ: G2

Digitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar

Digitális Technika II.

Digitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar

12. NYOMÓGOMBOK ÉS KAPCSOLÓK PERGÉSMENTESÍTÉSE A FEJLESZTŐLAPON

Digitális elektronika gyakorlat

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Kombinációs hálózatok Adatszelektorok, multiplexer

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

EB134 Komplex digitális áramkörök vizsgálata

A VERILOG HARDVER LEÍRÓ NYELV ALKALMAZÁSA A LOGIKAI SZINTÉZISBEN

DIGITÁLIS TECHNIKA 7. Előadó: Dr. Oniga István

Digitális elektronika gyakorlat. A VHDL leírástípusok

Mikrorendszerek tervezése

Újrakonfigurálható eszközök

Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk

LOGSYS LOGSYS SPARTAN-3E FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ szeptember 19. Verzió

10. EGYSZERŰ HÁLÓZATOK TERVEZÉSE A FEJLESZTŐLAPON Ennél a tervezésnél egy olyan hardvert hozunk létre, amely a Basys2 fejlesztőlap két bemeneti

Verilog HDL ismertető 2. hét : 1. hét dia

Digitális technika (VIMIAA02) Laboratórium 1

Ellenőrző mérés mintafeladatok Mérés laboratórium 1., 2011 őszi félév

Újrakonfigurálható eszközök

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

LOGSYS LOGSYS ECP2 FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ szeptember 18. Verzió

DIGITÁLIS TECHNIKA I

Dr. Oniga István DIGITÁLIS TECHNIKA 9

Verilog HDL ismertető 4. hét : hét dia

Békéscsabai Kemény Gábor Logisztikai és Közlekedési Szakközépiskola "Az új szakképzés bevezetése a Keményben" TÁMOP

14. TARTALOM FUTTATÁSA A FEJLESZTŐLAP HÉTSZEGMENSES KIJELZŐJÉN

Máté: Számítógép architektúrák

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Újrakonfigurálható eszközök

2008. október 9. Verzió

F1301 Bevezetés az elektronikába Digitális elektronika alapjai Szekvenciális hálózatok

A/D és D/A konverterek vezérlése számítógéppel

Újrakonfigurálható eszközök

7.hét: A sorrendi hálózatok elemei II.

Mintavételes szabályozás mikrovezérlő segítségével

Név: Logikai kapuk. Előzetes kérdések: Mik a digitális áramkörök jellemzői az analóg áramkörökhöz képest?

funkcionális elemek regiszter latch számláló shiftregiszter multiplexer dekóder komparátor összeadó ALU BCD/7szegmenses dekóder stb...

Kiegészítő segédlet szinkron sorrendi hálózatok tervezéséhez

ISE makró (saját alkatrész) készítése

LOGSYS EGYSZERŰ ALKALMAZÁS KÉSZÍTÉSE A LOGSYS KINTEX-7 FPGA KÁRTYÁRA A XILINX VIVADO FEJLESZTŐI KÖRNYEZET HASZNÁLATÁVAL június 16. Verzió 1.

Verilog HDL ismertető

Digitális ki-bemenetek kezelése, bitszintű műveletek

Digitális technika II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással

Digitális technika (VIMIAA02) Laboratórium 2

Digitális technika VIMIAA02

Digitális technika VIMIAA02 3. EA

Hobbi Elektronika. A digitális elektronika alapjai: Sorrendi logikai áramkörök 3. rész

A MiniRISC processzor

Hobbi Elektronika. A digitális elektronika alapjai: Újrakonfigurálható logikai eszközök

6. hét: A sorrendi hálózatok elemei és tervezése

Digitális technika (VIMIAA01) Laboratórium 4

A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához

Digitális technika VIMIAA01

Digitális technika VIMIAA01

Átírás:

Kombinációs áramkörök modelezése Laborgyakorlat Dr. Oniga István

Funkcionális kombinációs egységek A következő funkcionális egységek logikai felépítésével, és működésével foglalkozunk: kódolók, dekódolók, multiplexerek, demultiplexerek, komparátorok, összeadok, paritásvizsgáló áramkörök.

Kódolók A kódoló egy olyan áramkör amelynek bármelyik 1 az m - ből bemenetének az aktiválása esetén egy k bites kódot szolgál Y m 1 decimális BCD átalakító r 0 a n I n r = 0,1,,(k-1), 3 2 1 0 0 1 2 3 4 5 6 7 8 Decimális bemenet 0 1 2 3 4 5 6 7 8 9 1 2 4 8 BCD kimenet 9

Decimális BCD átalakító A táblázat alapján felírhatók az egyes kimeneteket megvalósító logikai függvények Y 0 =I 1 +I 3 +I 5 +I 7 +I 9 Y 1 =I 2 +I 3 +I 6 +I 7 Y 2 =I 4 +I 5 +I 6 +I 7 Y 3 =I 8 +I 9 I Y 3 Y 2 Y 1 Y 0 I 0 0 0 0 0 I 1 0 0 0 1 I 2 0 0 1 0 I 3 0 0 1 1 I 4 0 1 0 0 I 5 0 1 0 1 I 6 0 1 1 0 I 7 0 1 1 1 I 8 1 0 0 0 I 9 1 0 0 1

Decimális BCD átalakító Verilog modul module BCDmod( input [9:0] din, output [3:0] led ); assign led[0]=din[1] din[3] din[5] din[7] din[9]; assign led[1]=din[2] din[3] din[6] din[7]; assign led[2]=din[4] din[5] din[6] din[7]; assign led[3]=din[8] din[9]; NET "led<0>" LOC="P59" ; NET "led<1>" LOC="P58" ; NET "led<2>" LOC="P54" ; NET "led<3>" LOC="P53" ; NET "din<0>" LOC="P101" ; NET "din<1>" LOC="P95" ; NET "din<2>" LOC="P89" ; NET "din<3>" LOC="P84" ; NET "din<4>" LOC="P78" ; NET "din<5>" LOC="P69" ; NET "din<6>" LOC="P48" ; NET "din<7>" LOC="P47" ; NET "din<8>" LOC="P41" ; NET "din<9>" LOC="P38" ;

Decimális BCD átalakító procedurális leírása // 3-Bit 1-of-9 Priority Encoder //Verilog 1995 module v_priority_encoder_1 (sel, code); input [7:0] sel; output [2:0] code; reg [2:0] code; always @(sel) begin if (sel[0]) code = 3'b000; else if (sel[1]) code = 3'b001; else if (sel[2]) code = 3'b010; else if (sel[3]) code = 3'b011; else if (sel[4]) code = 3'b100; else if (sel[5]) code = 3'b101; else if (sel[6]) code = 3'b110; else if (sel[7]) code = 3'b111; else code = 3'bxxx; end // 3-Bit 1-of-9 Priority Encoder //Verilog 2001 module v_priority_encoder_1 (input [7:0] sel, output reg [2:0] code); always @(sel) begin if (sel[0]) code = 3'b000; else if (sel[1]) code = 3'b001; else if (sel[2]) code = 3'b010; else if (sel[3]) code = 3'b011; else if (sel[4]) code = 3'b100; else if (sel[5]) code = 3'b101; else if (sel[6]) code = 3'b110; else if (sel[7]) code = 3'b111; else code = 3'bxxx; end

8:3 kódoló strukturális leirás Top modul Kódoló modul Implementáció Adja hozzá a megfelelő ucf fájlt

8:3 kódoló - szimuláció Adja hozzá a kódoló modulhoz egy Verilog test fixture fájlt. A test fixture fájlban hozza létre az alábbi ábra szerint a nyolc bites gerjesztő jelet és ellenőrizze az y kimenetet.

Prioritásos kódoló for Loop-al Ha egyidejűleg egynél több bemenet aktív, az eredmény nem meghatározható. A megoldás: a bemenetekhez prioritást rendelünk Ha egy vagy több bemenet aktív, akkor a legmagasabb prioritásúnak megfelelő eredményt kapjuk

Prioritás kódoló szimuláció

Prioritásos kódoló if-el module priority ( input [7:0] sel; output reg [2:0] code); always @(sel) begin if (sel[0]) code <= 3'b000; else if (sel[1]) code <= 3'b001; else if (sel[2]) code <= 3'b010; else if (sel[3]) code <= 3'b011; else if (sel[4]) code <= 3'b100; else if (sel[5]) code <= 3'b101; else if (sel[6]) code <= 3'b110; else if (sel[7]) code <= 3'b111; else code <= 3'bxxx; end

Dekódolók A dekódoló (dekóder) egy olyan áramkör amely a bemenetére adott kód alapján egyetlen kimenetet tesz aktívvá Egy bináris dekódolónak n bemenete és 2 n kimenete van (ezek közül egyidejűleg csak egy lehet aktív logikai értékű).

Bináris dekódoló 2-ról 4-re

Bináris dekódoló 3-ról 8-ra A dekódoló elvi rajza A 2 A 1 A 0 Y 0 Y 1 Y 2 Y 3 Y 4 Y 5 Y 6 Y 7 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1

Bináris dekódoló 3-ról 8-ra - Verilog modul module decod( input A0, input A1, input A2, output [7:0] led ); assign led[0]=~a0&~a1&~a2; assign led[1]=a0&~a1&~a2; assign led[2]=~a0&a1&~a2; assign led[3]=a0&a1&~a2; assign led[4]=~a0&~a1&a2; assign led[5]=a0&~a1&a2; assign led[6]=~a0&a1&a2; assign led[7]=a0&a1&a2; NET "A0" LOC="P41" ; NET "A1" LOC="P38" ; NET "A2" LOC="P36" ; NET "led<0>" LOC="P59" ; NET "led<1>" LOC="P58" ; NET "led<2>" LOC="P54" ; NET "led<3>" LOC="P53" ; NET "led<4>" LOC="P52" ; NET "led<5>" LOC="P51" ; NET "led<6>" LOC="P50" ; NET "led<7>" LOC="P43" ;

Bináris dekódoló 3-ról 8-ra // 1-of-8 decoder (One-Hot) module v_decoders_1 (input [2:0] sel, output reg [7:0] res); // 1-of-8 decoder (One-Cold) module v_decoders_1 (input [2:0] sel, output reg [7:0] res); always @(sel or res) begin case (sel) 3'b000 : res = 8'b00000001; 3'b001 : res = 8'b00000010; 3'b010 : res = 8'b00000100; 3'b011 : res = 8'b00001000; 3'b100 : res = 8'b00010000; 3'b101 : res = 8'b00100000; 3'b110 : res = 8'b01000000; default : res = 8'b10000000; endcase end always @(sel) begin case (sel) 3'b000 : res = 8'b11111110; 3'b001 : res = 8'b11111101; 3'b010 : res = 8'b11111011; 3'b011 : res = 8'b11110111; 3'b100 : res = 8'b11101111; 3'b101 : res = 8'b11011111; 3'b110 : res = 8'b10111111; default : res = 8'b01111111; endcase end

MUX-DEMUX Kevés számú adathordozó (vezeték, rádióhullám, stb.) igénybevételével - nagy számú jelek továbbítására alkalmas. Adatgyűjtés, adatelosztás Analóg multiplexelés, digitális multiplexelés Byte vagy bitszervezésű multiplexelés Időmultiplexelés vagy címszerinti multiplexelés

MULTIPLEXEREK A multiplexer olyan digitális kapcsoló, amely m (m=2 n ) különböző forrásból származó adatokat kapcsol egy kimenetre. A kiválasztó bemenetek határozzák meg, hogy melyik adatforrás jele kerül a kimenetre 2 n féle adathoz 2 n különböző cím kell 2 n különböző címet n bittel tudunk előállítani

Példa MUX 2:1 multiplexer module mux_21 (input in0, in1, sel, output r); assign r = (sel==1 b1)? in1 : in0; module mux_21 (input in0, in1, sel, output reg r); always @ (*) if (sel==1 b1) r <= in1; else r <= in0; module mux_21 (input in0, in1, sel, output reg r); always @ (*) case(sel) 1 b0: r <= in0; 1 b1: r <= in1; Assign If Case

4 x1 MULTIPLEXER 4 féle adathoz két különböző címbit kell 4 vonalas multiplexer blokkdiagramja 4 vonalas multiplexer áramköri megvalósítása Cím választó 0 A 0 1 A 1 0 1 MUX Adat kimenet Adat bemenetek D 0 D 1 D 2 D 3 0 1 2 3 Y = ~A1 & ~A0 & D0 ~A1 & A0 & D1 A1 & ~A0 & D2 A1 & A0 & D3

Multiplexer (4:1) module mux_41 (input in0, in1, in2, in3, input [1:0] sel, output reg r); always @ (*) case(sel) 2 b00: r <= in0; 2 b01: r <= in1; 2 b10: r <= in2; 2 b11: r <= in3; endcase

Quad (2:1) Multiplexer module mux24b (input [3:0] a, b, input s, output reg [3:0] y); always @ (*) if (s==1 b1) y <= b; else y <= a; module mux24b (input [3:0] a, b, input s, output reg [3:0] y); always @ (*) if (s==1 b0) y <= a; else y <= b;

Generikus Multiplexer Feladat: Írjon Verilog kódban egy 4 bites bementekkel rendelkező 3:1 multiplexert

Háromállapotú Multiplexer (4:1) // // 4-to-1 1-bit MUX using tristate buffers. // module v_multiplexers_3 (a, b, c, d, s, o); input a,b,c,d; input [3:0] s; output o; assign o = s[3]? a :1'bz; assign o = s[2]? b :1'bz; assign o = s[1]? c :1'bz; assign o = s[0]? d :1'bz;

Háromállapotú vonalak Ketiranyu kommunikacios vonalak Mai FPGA-kban belul nincs HiZ buffer! Kétirányú kommunikációs vonalak, pl. Külső memóriák adatbusza module tri_state (input clk, inout [7:0] data_io); wire [7:0] data_in, data_out; wire bus_drv; assign data_in = data_io; assign data_io = (bus_drv)? data_out : 8 bz; A kétirányú vonalak meghajtását engedélyező jel (bus_drv) kritikus

Háromállapotú vonalak // // Tristate Description Using Concurrent Assignment // module v_three_st_2 (T, I, O); input T, I; output O; assign O = (~T)? I: 1'bZ;