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

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

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

DIGITAL TECHNICS I. Dr. Bálint Pődör. Óbuda University, Microelectronics and Technology Institute 12. LECTURE: FUNCTIONAL BUILDING BLOCKS III

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

Bevezetés az informatikába

DIGITÁLIS TECHNIKA I BINÁRIS SZÁMRENDSZER BEVEZETŐ ÁTTEKINTÉS BINÁRIS SZÁMRENDSZER HELYÉRTÉK. Dr. Lovassy Rita Dr.

Dr. Oniga István DIGITÁLIS TECHNIKA 8

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

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

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

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

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

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

Digitális Technika II.

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

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

DIGITÁLIS TECHNIKA 13. Dr. Oniga István

Dr. Oniga István DIGITÁLIS TECHNIKA 9

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

Digitális rendszerek tervezése FPGA áramkörökkel Verilog RTL kódolás

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

Hardver leíró nyelvek (HDL)

Újrakonfigurálható eszközök

Egyszerű RISC CPU tervezése

Digitális elektronika gyakorlat

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

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

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

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

A Picoblaze Core implementálása FPGA-ba

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

10-es számrendszer, 2-es számrendszer, 8-as számrendszer, 16-os számr. Számjegyek, alapműveletek.

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

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

Verilog HDL ismertető

Összeadás BCD számokkal

DIGITÁLIS TECHNIKA BINÁRIS SZÁMRENDSZER BEVEZETŐ ÁTTEKINTÉS BINÁRIS SZÁMRENDSZER HELYÉRTÉK. Dr. Lovassy Rita Dr.

DIGITÁLIS TECHNIKA I

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

Számítógépek felépítése, alapfogalmak

Dr. Oniga István DIGITÁLIS TECHNIKA 4

2. Fejezet : Számrendszerek

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

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

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

Véges állapotú gépek (FSM) tervezése

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

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

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

DIGITÁLIS TECHNIKA I SZÁMRENDSZEREK HELYÉRTÉK SZÁMRENDSZEREK RÓMAI SZÁMOK ÉS RENDSZERÜK. Dr. Lovassy Rita Dr.

A mikroprocesszor felépítése és működése

A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg.

Assembly Utasítások, programok. Iványi Péter

TestLine - HalózatGyakorlat dolgozat (Hardver) Minta feladatsor

Újrakonfigurálható eszközök

A MiniRISC processzor

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

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

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

Az MSP430 mikrovezérlők digitális I/O programozása

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

Digitális elektronika gyakorlat

Újrakonfigurálható eszközök

DIGITÁLIS TECHNIKA 8 Dr Oniga. I stván István

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

Digitális technika VIMIAA hét

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003

Verilog HDL ismertető

DIGITÁLIS TECHNIKA I 6. ELİADÁS SZÁMRENDSZEREK BEVEZETİ ÁTTEKINTÉS. Római számok és rendszerük. Helyérték

Adatok ábrázolása, adattípusok

Összetett feladatok megoldása

Hobbi Elektronika. A digitális elektronika alapjai: További logikai műveletek

Aritmetikai utasítások I.

Digitális technika VIMIAA hét

Véges állapotú gépek (FSM) tervezése

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

Informatika 1 2. el adás: Absztrakt számítógépek

Tervezési módszerek programozható logikai eszközökkel

PROGRAMOZHATÓ LOGIKAI. Előadó: Dr. Oniga István

DIGITÁLIS TECHNIKA II

DIGITÁLIS TECHNIKA II

Digitális Rendszerek és Számítógép Architektúrák (Levelező BSc)

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK

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

Az INTEL D-2920 analóg mikroprocesszor alkalmazása

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

4. Fejezet : Az egész számok (integer) ábrázolása

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

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

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

1. Az utasítás beolvasása a processzorba

IV. A SystemC alapelemei

Számítógép Architektúrák

Blaise Pascal ( )

Digitális Rendszerek és Számítógép Architektúrák

Beágyazott és Ambiens Rendszerek Laboratórium BMEVIMIA350. Mérési feladatok az 1., 2. és 3. mérési alkalomhoz

A Verilog HDL áttekintése

Tartalom Tervezési egység felépítése Utasítások csoportosítása Értékadás... 38

DIGITÁLIS TECHNIKA I

Átírás:

LOGIKI TERVEZÉS HRDVERLEÍRÓ NYELVEN Dr. Oniga István

Digitális komparátorok Két szám között relációt jelzi, (egyenlő, kisebb, nagyobb). három közül csak egy igaz Egy bites komparátor B Komb. hál. fi <B fe =B fs >B B fi<b fe=b fs>b f e = B = B+ B= B+ B f i = B f s = B

Két bites komparátor III module compare_2_ algoritmikus (output reg _lt_b, _gt_b, _eq_b, input [:],B); always @ ( or B) // Esemény figyelő begin _lt_b = ; _gt_b = ; _eq_b = ; if (==B) _eq_b = ; else if (>B) _gt_b = ; else _lt_b = ; end endmodule

Komparátorok modellezése Verilogban // // Unsigned 8-bit Greater or Equal Comparator // module v_comparator_ (, B, CMP); input [7:] ; input [7:] B; output CMP; assign CMP = ( >= B)? 'b : 'b; endmodule

Paritásellenőrző áramkör Paritásellenőrző áramkör 4 bites szavak részére 2 3 Y Y2 Y3 2 3 P P2 Y Y2 P3 Y3 P Paritás típus beállító jel: Y3 P P Y P4 Y 2 3 P Y P = => Y = Y3 => páros paritás generáló P = => Y = Y3 => páratlan paritás generáló

Paritásellenőrző áramkör module oddparity_for (output reg parity, input [7:] data); integer k; always@(data) begin parity = ; for (k = ; k <= 7; k = k+) begin if (data[k] == ) parity = ~parity; end end endmodule

Fél összeadok Nem veszik figyelembe az előző helyérték átvitelét Csak a legkisebb helyértéken használható S C = = B B + B = B

-bites fél összeadó Verilog strukturális modellje module half_add(output sum, carry, input a, b); xor (sum, a, b); and (carry, a,b); // exclusive OR // and endmodule

Teljes összeadok Figyelembe veszik az előző helyérték átvitelét i B i C i- S i C i Teljes összeadó két félösszeadóból: i B i B ½Σ Σ Cout S' i C' i B S i C ½Σ Σ i Cout = i Bi Ci = i B i + C i i + i B i C i- S i C'' C i Σ B i C i C i- C i S i

Verilog nested structural model of a -bit full-adder with carry with port connection by position module full_add(output sum_out, carry_out, input a_in, b_in, carry_in); endmodule wire w, w2, w3; half_add M (w, w2, a_in, b_in); half_add M2 (sum_out, w3, carry_in, w); or (carry_out, w2, w3);

Verilog nested structural model of a -bit full-adder with carry with port connection by name module full_add(output sum_out, carry_out, input a_in, b_in, carry_in); endmodule wire w, w2, w3; half_add M (.a(a_in),.sum(w),.b(b_in),.carry(w2)); half_add M2 (.sum(sum_out),.b(w),.carry(w3),.a(carry_in)); or (carry_out, w2, w3);

Példa bites összeadó module add_full (input a, b, cin, output cout, s); xor3_m xor(.i(a),.i(b),.i2(cin),.o(s)); wire a, a, a2; and2_m and(.i(a),.i(b),.o(a)); and2_m and(.i(a),.i(cin),.o(a)); and2_m and2(.i(b),.i(cin),.o(a2)); or3_m or(.i(a),.i(a),.i2(a2),.o(cout)) endmodule module add_full (input a, b, cin, output cout, s); assign s = a ^ b ^ cin; assign cout = (a & b) (a & cin) (b & cin); endmodule module add_full (input a, b, cin, output cout, s); assign {cout, s} = a + b + cin; endmodule

Cin B Sum Cout

Több bites összeadók I több bites számokat teljes összeadókból építhetjük meg Soros átvitelű 4 bites összeadó (Ripple carry adder): 7483 4 B 4 3 B 3 2 B 2 B C B C in B C in B C in B C in C out Σ C out Σ C out Σ C out Σ C 4 C 3 S 4 C S 3 C 2 S 2 S Lassú S i és C i eredményt csak azután kapjuk meg amikor C i- felvette végső értékét

Példa 4 bites összeadó module add4 (input [3:] a, b, output [4:] s); wire [3:] cout; add_full add(.a(a[]),.b(b[]),.cin('b),.cout(cout[]),.s(s[])); add_full add(.a(a[]),.b(b[]),.cin(cout[]),.cout(cout[]),.s(s[])); add_full add2(.a(a[2]),.b(b[2]),.cin(cout[]),.cout(cout[2]),.s(s[2])); add_full add3(.a(a[3]),.b(b[3]),.cin(cout[2]),.cout(s[4]),.s(s[3])); endmodule module add4 (input [3:] a, b, output [4:] s); assign s = a + b; endmodule

Példa 4 bites összeadó, str.

Példa 4 bites összeadó, +

Példa 4 bites összeadó, + IBUF IBUF [3] I b_ibuf[3] IBUF O [3] [3] [3] LUT2_6 XORCY [3] OBUF [4] I O s_obuf[4] [4] [4:] s[4:] IBUF [2] I O b_ibuf[2] IBUF [2] [3] I a_ibuf[3] O LUT2_6 [3] s_axb_3 MUXCY_L s_s_3 MUXCY S OBUF [3] I O s_obuf[3] [3] [] I O b_ibuf[] [] [2] I O a_ibuf[2] [2] [2] [2] s_axb_2 S [2] DI LO [3] DI CI O [4] OBUF [2] I O [2] b[3:] [3:] IBUF [] I O b_ibuf[] [] [] I IBUF a_ibuf[] O [] [] [] LUT2_6 s_axb_ [] DI MUXCY_L S LO CI s_cry_2 s_cry_3 XORCY [2] s_obuf[2] OBUF [] I O [] a[3:] [3:] IBUF [] I O a_ibuf[] [] [] [] LUT2_6 s_axb_ [] [] S [] DI MUXCY_L LO CI s_cry_ s_s_2 XORCY [] s_obuf[] OBUF [] I O [] CI s_s_ s_obuf[] s_cry_

RITMETIKI-LOGIKI EGYSÉGEK (LU) LU minden processzorban van, de önálló, diszkrét áramkörként is gyártják. z LU egy kombinációs hálózat - a bemeneteikre érkező két számmal ( és B) - S bemeneteken megadott logikai vagy aritmetikai műveletet végzik el - az eredményt az F kimeneteken jelenítik meg. - Összeadás és kivonás művelet elvégzésekor figyelembe veszik az előző helyérték átvitelét (Cn), és az előállított átvitelt továbbítják a következő helyértékre (C). Műveletek: bináris aritmetikai utasítások (összeadás, kivonás, stb.), logikai műveletek (ND, OR, stb.), regiszterműveletek (jobbra-balra léptetés, inkrementálás, dekrementálás),

4-bites LU - 74LS8 Két 4-bites operandus (, B) 4 bites eredmény (F) Átvitel: CarryIn/ Out S2: ritmetikai/ logikai mód választó(mux) S, S: művelet kiválasztó Jelzőbitek: carry-in, carry-outátviteleket, előjel bitet(sign), túlcsordulást(overflow), alulcsordulást(underflow).

BITES TELJES KIVONÓ

4-bites teljes kivonó -B=+(-B) -B N = B N (2) -B=+ B N (2) B (2) =B+ 3 2 B 3 B 2 B B 3 2 B 3 B 2 B B 4 BITES ÖSSZEDÓ C S3 S2 S S S 3 S 2 S S

bites LU (LU = arithmetic + logic unit) C in_i = C out_i- C in_ =F

Optimalizált bites LU C in_i = C out_i- C in_ =F

Optimalizált 4 bites LU Összeadás: Kivonás: Mode = => b i =b i Mode = => b i =b i b 3 b 2 b b

Massachusetts Institute of Technology - 6. introductory digital systems laboratory

Massachusetts Institute of Technology - 6. introductory digital systems laboratory

Massachusetts Institute of Technology - 6. introductory digital systems laboratory