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

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

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

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

Dr. Oniga István DIGITÁLIS TECHNIKA 4

DIGITÁLIS TECHNIKA I

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.

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

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

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

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

Digitális Technika II.

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

Dr. Oniga István DIGITÁLIS TECHNIKA 8

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

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

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

Dr. Oniga István DIGITÁLIS TECHNIKA 9

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

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

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

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)

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

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

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

Digitális technika (VIMIAA02) Laboratórium 3

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

Digitális technika (VIMIAA02) Laboratórium 3

Hardver leíró nyelvek (HDL)

Digitális elektronika gyakorlat

Dr. Oniga István DIGITÁLIS TECHNIKA 2

Újrakonfigurálható eszközök

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

DIGITÁLIS TECHNIKA I

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 gyakorlatokhoz kidolgozott DW példák a gyakorlathoz tartozó Segédlet könyvtárban találhatók.

DIGITÁLIS TECHNIKA I

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

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

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

Egyszerű RISC CPU tervezése

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

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

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

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 8 Dr Oniga. I stván István

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

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

DIGITÁLIS TECHNIKA I PÉLDA A LEGEGYSZERŰBB KONJUNKTÍV ALAK KÉPZÉSÉRE LEGEGYSZERŰBB KONJUNKTÍV ALGEBRAI ALAK. Kódok, kódolás: alapfogalmak

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

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

Verilog HDL ismertető

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

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

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

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

Újrakonfigurálható eszközök

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

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

A Picoblaze Core implementálása FPGA-ba

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

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

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

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

Elektronikus dobókocka tervezési példa

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

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

Összeadás BCD számokkal

Digitális elektronika gyakorlat

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

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

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

A MiniRISC processzor

A Verilog HDL áttekintése

Integrált áramkörök/4 Digitális áramkörök/3 CMOS megvalósítások Rencz Márta

DIGITÁLIS TECHNIKA II

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

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

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

Újrakonfigurálható eszközök

Dr. Oniga István DIGITÁLIS TECHNIKA 9

Újrakonfigurálható eszközök

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

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

Digitális technika VIMIAA01 6. hét Fehér Béla BME MIT

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

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

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

Funkcionális áramkörök vizsgálata

DIGITÁLIS TECHNIKA II

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

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

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

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

DIGITÁLIS TECHNIKA feladatgyűjtemény

Átírás:

LOGIKI TERVEZÉS PROGRMOZHTÓ ÁRMKÖRÖKKEL Elő Előadó: Dr. Oniga István

Funkcionális kombinációs ió egységek 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 kódoló egy olyan áramkör amelynek bármelyik az m - ből bemenetének az aktiválása esetén egy k bites kódot szolgál m Y a decimális CD átalakító r n I n r =,,,(k-) ), I Y 3 Y 2 Y Y I I I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 Decimális bemenet 2 3 4 5 6 7 8 9 2 4 8 CD kimenet

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

Decimális CD átalakító strukturális leírása module CDmod( input [9:] din, output [3:] led ); assign led[]=din[] din[3] din[5] din[7] din[9]; di [] di [3] di [5] di [7] di [9] assign led[]=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]; din[8] din[9]; endmodule NET "led<>" LOC="P59" ; NET "led<>" LOC="P58" ; NET "led<2>" LOC="P54" ; NET "led<3>" LOC="P53" ; NET "din<>" LOC="P" ; NET "din<>" 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="P4" ; NET "din<9>" LOC="P38" ;

Decimális CD átalakító procedurális leírása // 3-it -of-9 Priority Encoder // 3-it -of-9 Priority Encoder module v_priority_encoder_ (sel, code); input [7:] sel; output [2:] code; reg [2:] code; always @(sel) begin if (sel[]) code = 3'b; else if (sel[]) code = 3'b; else if (sel[2]) code = 3'b; else if (sel[3]) code = 3'b; else if (sel[4]) code = 3'b; else if (sel[5]) code = 3'b; else if (sel[6]) code = 3'b; else if (sel[7]) code = 3'b; else code = 3'bxxx; end endmodule module v_priority_encoder_ (input [7:] sel, output [2:] reg code); always @(sel) begin if (sel[]) code = 3'b; else if (sel[]) code = 3'b; else if (sel[2]) code = 3'b; else if (sel[3]) code = 3'b; else if (sel[4]) code = 3'b; else if (sel[5]) code = 3'b; else if (sel[6]) code = 3'b; else if (sel[7]) code = 3'b; else code = 3'bxxx; end endmodule

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

ináris i dekódoló 2-ról 4-re

reg [3:] output; wire [:] select; wire enable; always @( * ) if (enable) else output <=; case (select) 2'b : output <= 4'b; 2'b : output <= 4'b; 2'b : output <= 4'b; 2'b : output <= 4'b; default : output <= 4'b; endcase Decoder wire [3:] output; wire [:] select; wire enable; assign output = enable << (select);

i á i d kód 3 ól 8 ináris dekóder 3-ról 8-ra 2 Y Y Y2 Y3 Y4 Y5 Y6 Y7 dekóder elvi rajza

ináris i dekóder 3-ról 8-ra Verilog leírása module decod( input, input, input 2, output [7:] led ); assign led[]=~&~&~2; assign led[]=&~&~2; assign led[2]=~&&~2; assign led[3]=&& 2; assign led[4]=~&~&2; assign led[5]=&~&2; assignled[6]= &&2; assign led[7]=&&2; endmodule NET "" LOC="P4" ; NET "" LOC="P38" ; NET "2" LOC= P36 ; NET "led<>" LOC="P59" ; NET "led<>" LOC="P58" ; NET led<2> LOC="P54" ; NET "led<3>" LOC="P53" ; NET "led<4>" LOC="P52" ; NET "led<5>" LOC="P5" ; NET "led<6>" LOC="P5" ; NET "led<7>" LOC="P43" ;

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. datgyűjtés, adatelosztás nalóg multiplexelés, digitális multiplexelés yte vagy bitszervezésű multiplexelés Időmultiplexelés vagy címszerinti multiplexelés

MULTIPLEXEREK multiplexer olyan digitális kapcsoló amelyik m (m=2 n ) különböző forrásból multiplexer olyan digitális kapcsoló, amelyik m (m=2 n ) különböző forrásból származó adatokat kapcsol egy kimenetre. kiválasztó bemenetek határozzák meg, hogy melyik adatforrás jele kerül a kimenetre 2 n fél 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 2: multiplexer l module mux_2 (input in, in, sel, output r); assign r = (sel== b)? in : in; endmodule module mux_2 (input in, in, sel, output reg r); always @ (*) if (sel== b) r <= in; else r <= in; endmodule module mux_2 (input in, in, sel, output reg r); always @ (*) case(sel) b: r <= in; b: r <= in; endmodule ssign If Case

4 x 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ó MUX dat kimenet D D D dat bemenetek D2 D3 2 3 D D2 Y D3

Multiplexer l (4:) module mux_4 (input in, in, in2, in3, input [:] sel, output reg r); always @ (*) case(sel) 2 b: r <= in; 2 b: r <= in; 2 b: r <= in2; 2 b: r <= in3; endcase endmodule

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

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

Háromállapotú vonalak // Tristate Description Using Combinatorial lways lock // module v_three_st_ (T, I, I, O); input T, I, I; output O; reg O; always @(T or I) begin if (~T) O = I; else O = 'bz; bz; end assign O = O&I; assign O O & I; endmodule

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

Multiplexer er alkalmazási példák I Több digites 7 szegmenses kijelzők meghajtása egy CD/7 szegmenses dekóderrel 4 két bemenetű ( és ) multiplexer - 74LS57 CD/7 szegmenses dekóder - 74LS47 Vcc 2:4 dekóder 74LS39 2 5 Y4 O3 2 43 2Y7 7 4 3Y9 4Y2 2 6 C O D OC 2 OD 3 6 3 2 5 ~L OE9 3 4 ~R OF5 ~I/ OG4 34 T I 5~/ RO ~G G F E D C G F E D C C C 2 3 ~ G Y Y 4 5 Y 6 Y 7 2 3

Demultiplexerek erek demultiplexer egy olyan digitális kapcsoló, amely egy bemenő forrást n kimenet valamelyikére kapcsolja. Általában n-ből 2n re dekódolót használunk. dekódoló engedélyező jele a demultiplexer adatbemenete.

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 Komb. hál. fi < fi< fe= fs> fe = fs > f e f i f s

Legyen a két szám: Két bites komparátor I 2 2 Két bites számok akkor egyenlők, ha az azonos helyértékű bitek egyenlők F ( )( ) 2 2 = = = = = = = =

Két bites komparátor II Két bites komparátor II z egyenlőtlenségi relációkat jelző logikai függvények: < akkor igaz, ha <, ill. ha = és < > kk i h > ill h é > ) ( F > akkor igaz, ha >, ill. ha = és > ) ( F

Két bites komparátor III Két bites komparátor III F ) ( F F ) ( F < = > P P8 < P5 P2 = > < P3 P7 P6 P9 = > P3 P6 P4 >

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

Több bites komparátorok Négybites nagyság g komparátor SN 7485 típusú áramkör emenetei a két összehasonlítandó szám bitjei (,, 2, 3 és,, 2, 3) a bővítő bemenetek i<i, i=i, i>i, amelyekre az alacsonyabb helyértékű négy bit összehasonlításának eredményét kell adni. Kimenetei a relációkat jelzik (<, =, >). Komparátorok soros bővítése:

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

Paritásképzés és ellenőrzés HIFELISMERŐ ÉS HIJVÍTÓ KÓDOK Páros paritás Páratlan paritás Legegyszerűbb hibafelismerési eljárás: - paritásbit átvitele paritáselemes kód elve - egy adott kód kódszavát kiegészítjük úgy, hogy a kiegészített kódszóban az - esek száma páros, vagy páratlan legyen. páros paritás páratlan paritás P CD P CD paritás képzés hátrányai: Nem tudjuk kijavítani a hibát, ha detektáljuk is Ha egyszerre több bit hibásodik meg, nem biztos, hogy a paritásellenőrzés ő felfedezi, mert lehet, hogy egyszerre két (vagy páros számú) bit is megváltoztatja értékét. Legegyszerűbb paritásképző: XOR kapu x y x y x XOR y

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

Paritásellenőrző e ő ő áramkör áa 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 endmodule end

datátviteli te rendszer e paritásellenőrzéssel e ő DÓ paritásgeneráló: - z adott jel biteket kiegészítjük a paritás bittel => a kiegészített kódszóban az -esek száma páros. VEVŐ paritásvizsgáló: - kiegészített kódszó - paritásellenőrzés ^ Jel bitek 2 3 P Y ^ 2 3 Paritás bit P Y Y ^ Paritás hiba jelző

Összeadok z összeadó áramkör (adder) bemenetek ésérkező számok az előző helyérték átvitel (Cin-carry) kimenetek az összeg (S) átvitel (Cout) é S ( C in C out k Fél összeadók (half adder) Teljes összeadók (full adder) Működési mód tekintetében: SOROS ÖSSZEDÓK PÁRHUZMOS ÖSSZEDÓK z operandusok kódolását tekintve: INÁRIS ÖSSZEDÓK CD ÖSSZEDÓK

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

-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 i C i- S i C i Teljes összeadó két félösszeadóból: i i ½Σ Σ S' i S i C ½Σ Σ i S i i i i i C C i i i C' i C'' Cout Cout Σ C i i i C i- 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 y_ 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 add M2 (.sum(sum_out),.b(w),.carry(w3),.a(carry_in)); or (carry_out, w2, w3);

Példa bit 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); module add_full (input a, b, cin, output cout, s); assign {cout, s} = a + b + cin; endmodule

Cin 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 4 3 3 2 2 C C in C in C in C in C out C out C out C out C 4 C 3 S C S 3 C 2 S 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ó, + IUF IUF [3] I b_ibuf[3] IUF O [3] [3] [3] LUT2_6 XORCY [3] OUF [4] I O s_obuf[4] [4] [4:] s[4:] IUF [2] I b_ibuf[2] IUF O [3] I [2] a_ibuf[3] O LUT2_6 [3] s_axb_3 MUXCY_L s_s_3 MUXCY S OUF [3] I O s_obuf[3] [3] [] I O [2] I O [] [2] b_ibuf[] a_ibuf[2] [2] [2] s_axb_2 S [2] DI LO [3] DI CI O [4] OUF [2] I O [2] b[3:] [3:] [] I IUF b_ibuf[] O [] I [] IUF a_ibuf[] O [] [] [] LUT2_6 s_axb_ [] DI MUXCY_L S LO CI s_cry_2 s_cry_3 XORCY [2] s_obuf[2] OUF [] I O [] a[3:] [3:] [] I IUF a_ibuf[] O [] [] [] LUT2_6 s_axb_ [] [] S [] DI MUXCY_L LO CI s_cry_ s_s_2 XORCY [] s_obuf[] OUF [] 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 ) - 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 (, ) 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).

ITES TELJES KIVONÓ

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

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

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

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

4 bites teljes összeadó