Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)
description
Transcript of Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)
![Page 1: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/1.jpg)
Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-
Carry)
Autori: Milena Dukić 10204 Iva Ćirković 10180
![Page 2: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/2.jpg)
ALU je kombinaciona logička mreža, i deo je centralne procesorske jedinice koja izvršava veći broj aritmetičkih i logičkih operacija nad ulaznim podacima celobrojnog tipa.
Tipovi operacija koje ALU, u konkretnom slučaju, izvršava su:
Logičke operacije AND OR XOR Komplement
Aritmetičke operacije
+ sabiranje
- oduzimanje
Definicija ALU-a i tipovi operacija
![Page 3: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/3.jpg)
Ulazni podaci ALU-a
ALU prihvata sledeće tipove ulaznih signala:
Ulazne operande A i B: n-to bitni podaci nad kojim se izvršavaju aritmetičke i logičke operacije.
Ulazni prenos CarryIn: jednobitna informacija, koja predstavlja ulazni prenos.
Selektorski ulazi: k-to bitna informacija koja definiše tip operacije koju obavlja ALU.
ALU
A
B
Y
Sel
CarryIn
CarryOut
ALU
![Page 4: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/4.jpg)
Izlazni podaci ALU-a
Na izlazu u ALU dobijamo sledeće signale:
Izlazni signal Y: n-to bitni signal koji predstavlja rezultat operacije obavljene nad ulaznim operandima.
Izlazni prenos CarryOut: jednobitni signal koji odgovara izlaznom prenosu aritmetičkih operacija.
ALU
A
B
Y
Sel
CarryIn
CarryOut
ALU
![Page 5: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/5.jpg)
Zadatak
Modelovati Aritmetičko Logičku Jedinicu (ALU), koja će:
- kao ulazne podatke prihvatati:
dva 8-bitna operanda A i B,
jednobitni ulazni prenos CARRY_IN iz prethodne operacije
- kao izlaze generisati:
8-bitni rezultat obavljenje operacije Z,
jednobitni izlazni prenos aritmetičke operacije CARRY_OUT,
-za upravljanje radom ALU-a koristi se:
5-bitni selektorski signal SEL
![Page 6: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/6.jpg)
Tablica ALU funkcija
Aritmetička JedinicaAritmetička JedinicaAritmetička JedinicaAritmetička JedinicaAritmetička JedinicaAritmetička JedinicaAritmetička JedinicaAritmetička Jedinica
Logička JedinicaLogička JedinicaLogička JedinicaLogička Jedinica
Pomeračka JedinicaPomeračka JedinicaPomeračka JedinicaPomeračka Jedinica
Prenosi AInkrementuje ASabira A i BSabira sa Carry-emA + komplement BOduzimanjeDekrementuje APrenosi A
ANDORXORKomplement A
Prenosi APomera ulevo APomera udesno APrenosi 0
0{0},{1}{0},{1}{0},{1}{0},{1}{0},{1}{0},{1}0
0000
0000
Y <= AY <= A + 1Y <= A + BY <= A + B + 1Y <= A + /BY <= A + /B + 1Y <= A - 1Y <= A
Y <= A and BY <= A or BY <= A xor BY <= /A
Y <= AY <= shl AY <= shr AY <= 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0
Implementacioni blok
FunkcijaCarry Out
OperacijaS4 S3 S2 S1 S0 Cin
![Page 7: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/7.jpg)
Postupak projektovanja
Korišćen je behavioral arhitekturni model koji opisuje samo ponašanje komponente, zanemarujući njenu unutrašnju strukturu
Kombinaciona logika, kojom je modelovan konkretan ALU, trenutno reaguje na promene ulaznih signala.
![Page 8: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/8.jpg)
Implementacija ALU-a u VHDL-u
Koji je pristup korišćen ?
ALU je modelovana fragmentacijom strukture na :logičku jedinicuaritmetičku jedinicu pomeračku jedinicu
Šta je prednost ovog pristupa ?
Razdvajanjem tipova operacija na aritmetičke, logičke i operacije pomeranja obezbedilo je lakše kreiranje VHDL kôda
Razdvajanjem ALU-a na pomerač, aritmetičku i logičku jedinicu poboljšale su se performanse sa aspekta brzine rada (kraće je vreme propagacije signala)
![Page 9: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/9.jpg)
Implementacija ALU-a u VHDL-u Konkretno rešenje ALU-a ima sposobnost da obavlja sledećih 14 različitih
operacija : osam aritmetičkih
četiri logičke
dve pomeračke
Ulazni operandi : A i B kao osmobitni
CarryIn jednobitni
Izlazni operandi : Y osmobitni
CarryOut jednobitni
Selektorski ulazi : Sel kao petobitni
entity ALU isport ( Sel: in unsigned(4 downto 0); CarryIn: in std_logic; A,B: in unsigned(7 downto 0); Y: out unsigned(7 downto 0); CarryOut: out std_logic);
end ALU;
![Page 10: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/10.jpg)
Struktura ALU-a
Logičkajedinica
Aritmetičkajedinica
Pomerač
Sel (4:0)Sel (1:0) Sel (2) Sel (4:3)
A (7:0)
B (7:0)
CarryIn
Y (7:0)mux
CarryOut
![Page 11: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/11.jpg)
Implementacija logičke jedinice
Logička jedinica modelovana je korišćenjem jedne case naredbe
Na osnovu selektorskih ulaza, Sel(1:0), određuje se operacija koja će se izvršiti
LOGIC_UNIT: case Sel(1 downto 0) iswhen "00" => LogicUnit := AA and BB;when "01" => LogicUnit := AA or BB;
when "10" => LogicUnit := AA xor BB;when "11" => LogicUnit := not AA;when others => LogicUnit:=(others => 'X');
end case LOGIC_UNIT;
**napomena : signali AA, BB i LogicUnit su interni signali
![Page 12: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/12.jpg)
Implementacija aritmetičke jedinice Aritmetička jedinica modelovana je korišćenjem case naredbe
Na osnovu internog signala Sel0_1_CarryIn određuje se aritmetička operacija koja će se izvršiti nad ulaznim operandima
Sel0_1_CarryIn := Sel(1 downto 0) & CarryIn;ARITH_UNIT: case Sel0_1_CarryIn is
when "000" => ArithUnit := AA;when "001" => ArithUnit := AA + 1;when "010" => ArithUnit := AA + BB;when "011" => ArithUnit := AA + BB + 1;when "100" => ArithUnit := AA + not BB;when "101" => ArithUnit := AA - BB;when "110" => ArithUnit := AA - 1;when "111" => ArithUnit := AA;when others => ArithUnit := (others => 'X');
end case ARITH_UNIT; **napomena : signali AA, BB i ArithUnit su interni signali
![Page 13: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/13.jpg)
Multiplekser-MUX između jedinica
Mux bira izlaz iz aritmetičke ili logičke jedinice i usmerava ga ka pomeračkoj jedinici
Selekcija se vrši na osnovu stanja signala S2 (za S2=0 selektuje se izlaz aritmetičke jedinice, a S2=1 selektuje se izlaz logičke jedinice)
LA_MUX : if (Sel(2) = '1') thenALU_NoShift := LogicUnit;
elseALU_NoShift := ArithUnit;
end if LA_MUX;
**napomena signali ALU_NoShift, LogicUnit i ArithUnit su interni
![Page 14: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/14.jpg)
Pomeračka (shift) jedinica
Izbor operacije u pomeračkoj jedinici vrši se na osnovu selektorskog signala Sel(4:3)
SHIFT : case Sel(4 downto 3) iswhen "00" => Pomoc := ALU_NoShift;when "01" => Pomoc := Shift_left(ALU_NoShift, 1);when "10" => Pomoc := Shift_right(ALU_NoShift, 1);when "11" => Pomoc := (others => '0');when others => Pomoc := (others => 'X');
end case SHIFT;
**napomena: signal Pomoc je interni signal
![Page 15: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/15.jpg)
Logičkajedinica
Aritmetičkajedinica
Shifter
Sel (4:0) Sel (1:0) Sel (2)
Sel (4:3)A (7:0)
B (7:0)
CarryIn
Y (7:0)
mux
CarryOut
1. Na ulaz ALU-a dovodimo ulazne signale A i B
Scenario toka podataka i toka upravljanja
2. Na ulaz dovodimo i ulazni prenos CarryIn3. Selektorskim ulazima S0 i S1 biramo koja će se operacija izvršiti nad ulaznim podacima4. Signali S0,S1 i CarryIn predstavljaju kod operacije koja će se izvršiti u aritmet. jedinici5. Signali S0,S1 predstavljaju kod operacije koja će se izvršiti u logičkoj jedinici6. Selektorski ulaz S2 upravlja multiplekserom, i njime se bira signal koji će biti propušten do pomerača7. S2=0 označava aritmetičku jedinicu dok S2=1 označava logičku jedinicu8. Selektorskim signalima S3 i S4 upravlja se pomeračem9. Na izlazu pomerača se dobija izlazni signal Y i signal izlaznog prenosa CarryOut
![Page 16: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/16.jpg)
Pokrenuti VHDL i učitati ALU projekat
Selektovati ime koda na levoj strani ekrana koji želimo da pokrenemo (u ovom slučaju to je alu.vhd)
Testiranje ALU-a
![Page 17: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/17.jpg)
Pokrenuti waveform za testiranje
Desnim klikom na waveform – add signals dodati signale
Testiranje ALU-a
![Page 18: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/18.jpg)
Desnim klikom na signal izabrati Stimulators i postaviti vrednost signala po bitovima
Proveriti dobijene rezultate sa tablicom funkcija ALU-a
Testiranje ALU-a
![Page 19: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/19.jpg)
Definicija : Množač predstavlja kombinacionu logičku mrežu, koja prihvata na ulazu dva binarna n-to bitna podatka, množenik X i množilac Y, a na izlazu generiše 2n-bitni rezultat Z.
Rezultat predstavlja proizvod množenika i množioca (Z=X*Y).
Definicija Množača 8x6 Ripple-Carry
MnožačMnoženik X
Množilac Y
Rezultat Z
![Page 20: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/20.jpg)
Množenik X, prvi operand predstavljen n-bitnim signalom na ulazu množača
Množilac Y, drugi operand predstavljen n-bitnim signalom na ulazu množača
Rezultat Z, predstavlja rezultat množenja u obliku 2n-bitnog signala na izlazu množača
Blok šema množača
MnožačMnoženik X
Množilac Y
Rezultat Z
![Page 21: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/21.jpg)
Kao i kod decimalnog množača, prvo se formira parcijalni proizvod bita najmanje težine množilaca (Y0) sa svim bitovima množenika.
Postupak se ponavlja za svaki sledeći bit množioca.
U svakom koraku vrši se pomeranje parcijalnog proizvoda za jednu binarnu poziciju ulevo u odnosu na prethodni proizvod, kako bi proizvodi bili pozicionirani u skladu sa težinama bitova množioca.
Da bi dobili konačan rezultat, svi parcijalni proizvodi se sabiraju
Postupak množenja
![Page 22: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/22.jpg)
Zadatak
Modelovati množač 8x6, koji će na ulazu imati kao operande 8-bitni množenik A i 6-bitni množilac B, na izlazu će se dobiti 14-bitni signal Z koji predstavlja rezultat množenja signala na ulazu.
![Page 23: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/23.jpg)
U ovom primeru realizovan je množač koji obavlja množenje neoznačenih celih brojeva.
Ulazni podaci, množenik i množilac su osmobitni i šestobitni, respektivno, dok je izlazni podatak četrnaestobitni.
Množenje se obavlja prema algoritmu množenja počev od cifre najmanje težine množioca, formiranjem parcijalnih proizvoda počev od proizvoda najmanje težine i njihovim sabiranjem.
Postupak rešavanja
![Page 24: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/24.jpg)
U konkretnom slučaju za modeliranje množača korišćena je arhitektura specificirana na behavioral nivou, koja opisuje ponašanje komponente, zanemarujući njenu unutrašnju strukturu.
Imajući u vidu da je množač kombinaciona logička mreža, za sintezu je korišćena kombinaciona logika (bez vremenskih parametara, sve operacije koje se obavljaju trenutno reaguju na promenu ulaznih signala)
entity multipliers isport (
X: in unsigned (7 downto 0);Y: in unsigned (5 downto 0);Z: out unsigned (13 downto 0)
);end entity multipliers;
Postupak modelovanja
![Page 25: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/25.jpg)
Množača tipa 8x6 bita, implementiran je korišćenjem paralelnih sabirača sa serijskim prenosom (RCA-Ripple-Carry Adder)
Ripple Carry sabirač čine 8 dvobitnih sabirača serijski povezani u nizu.
Postupak modelovanja (nastavak)
MFMFMFMFMFMFMF MH
Ripple-Carry sabirač
![Page 26: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/26.jpg)
MH modul predstavlja dvobitni sabirač, realizovan pomoću kola polusabirača i jednog AND kola.
Struktura MH modula
x _ b ity _ b itsu m _ in
su m _ o u t
c_ o u tc_ o u t
su m _ o u t
c_ in
x _ b ity _ b it
H a lfad d e r
H a lfad d e r
ili
sum_out <= ((x_bit and z_bit) xor sum_in);c_out := ((x_bit and z_bit) and sum_in);
![Page 27: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/27.jpg)
MF modul predstavlja dvobitni sabirač, realizovan pomoću kola potpunog sabirača i jednog AND kola.
Struktura MF modula
sum_out <= ((x_bit and y_bit) xor sum_in) xor c_in;c_out := ((x_bit and y_bit) and sum_in) or (((x_bit and y_bit) xor sum_in) or c_in );
x _ b ity _ b itsu m _ in
su m _ o u t
c_ o u tc_ in
F u llad d e r
![Page 28: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/28.jpg)
Blok šema množača 8x6
y0
x0x1x2x3x4x5x6x7
z0
MHMFMFMFMFMFMFMF
y2
z2
MHMFMFMFMFMFMFMF
y3
z3
MHMFMFMFMFMFMFMF
y4
z4
MHMFMFMFMFMFMFMF
y5
z5z6z7z8z9z10z11z12z13
MHMFMFMFMFMFMFMH
y1
z1
![Page 29: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/29.jpg)
Prvi parcijalni proizvod se dobija množenjem Y0 bita sa signalom X(X7:X0)
Množenje se obavlja AND kolom
Bit najmanje težine, prvog parcijalnog proizvoda, direktno upisujemo u izlazni signal na mestu bita najmanjne težine Z0.
Rezultat množenjna upisujemo u pomoćnu promenljivu tipa vektor veličine 8 bita.
Princip rešavanjna problema u VHDL-u
(prvi stepen)
y0x0x1x2x3x4x5x6x7
z0
![Page 30: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/30.jpg)
Za sabiranje parcijalnih proizvoda koristi se paralelni sabirač sa serijskim prenosom(Ripple Carry sabirač) koji je realizovan pomoću MH i MF modula
Na ulaz sabirača se dovode signali :
bit Y1
signal X(X7:X0)
pomoćnu promenljivu - signal proizvoda iz predhodnog stepena
Bit najmanje težine proizvoda, direktno upisujemo u izlazni signal na mestu bita težine Z1.
Rezultat množenjna upisujemo u pomoćnu promenljivu tipa vektor veličine 8 bita.
Princip rešavanjna problema u VHDL-u
(drugi stepen)
MHMFMFMFMFMFMFMH
y1
z1
![Page 31: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/31.jpg)
Predhodni postupak ponavljamo do kraja, u naredna četri stepena.
j := 2;for h in 1 to 4 loop
Z(h+1) <= ((X(0) and Y(h+1)) xor izlaz(0));Carry := ((X(0) and Y(h+1)) and izlaz(0));for i in 1 to 7 loop
izlaz(i-1) := ((X(i) and Y(j)) xor izlaz(i)) xor Carry;Carry := ((X(i) and Y(j)) and izlaz(i)) or (((X(i) and Y(j)) xor izlaz(i)) and
Carry);end loop; izlaz(7) := Carry;j := j + 1;
end loop;
Princip rešavanjna problema u VHDL-u
(treći stepen i ostali nivoi do kraja)
![Page 32: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/32.jpg)
Na kraju, sadržaj pomoćne promenljive upisujemo u izlazni signal.
Z(6) <= izlaz(0);Z(7) <= izlaz(1);Z(8) <= izlaz(2);Z(9) <= izlaz(3);Z(10) <= izlaz(4);Z(11) <= izlaz(5);Z(12) <= izlaz(6);Z(13) <= izlaz(7);
Time je postupak množenja završen
Princip rešavanjna problema u VHDL-u
(treći stepen i ostali nivoi do kraja)
![Page 33: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/33.jpg)
Tok podataka i tok upravljanja
y0
x0x1x2x3x4x5x6x7
z0
MHMFMFMFMFMFMFMF
y2
z2
MHMFMFMFMFMFMFMF
y3
z3
MHMFMFMFMFMFMFMF
y4
z4
MHMFMFMFMFMFMFMF
y5
z5z6z7z8z9z10z11z12z13
MHMFMFMFMFMFMFMH
y1
z1
![Page 34: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/34.jpg)
Pokrenuti VHDL i učitati MULTIPLIERS projekat
Selektovati ime koda na levoj strani ekrana koji želimo da pokrenemo (u ovom slučaju to je multipliers.vhd)
Testiranje ALU-a
![Page 35: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/35.jpg)
Pokrenuti waveform za testiranje
Desnim klikom na waveform – add signals dodati signale
Testiranje ALU-a
![Page 36: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/36.jpg)
Desnim klikom na signal izabrati Stimulators i postaviti vrednost signala po bitovima
Proveriti dobijene rezultate
Testiranje ALU-a
![Page 37: Aritmetičko logička jedinica ALU i Množač (8x6 Ripple-Carry)](https://reader036.fdocument.pub/reader036/viewer/2022081419/56813ab8550346895da2c0c4/html5/thumbnails/37.jpg)
VHDL je jedan od najčešće korišćenih jezika za opis hardware-a (standard IEEE 1076)
Prednosti upotrebe VHDL-a :
jednostavna i efikasna implementacija
skraćeno vreme dizajniranja
lakša detekcija grešaka
jednostavno testiranje
visok nivo apstrakcije
maksimalno tačan i pouzdan dizajn uz najmanju cenu u najkraćem roku razvijanja
Zbog svojih prednosti VHDL se često koristi za dizajniranje komponenata, i razvoj složenih sistema
Zaključak