You are on page 1of 31

Aritmetička kola

Vanr.prof.dr.Lejla Banjanović-
Mehmedović
Sadržaj izlaganja
 Aritmetička kola
 Verilog programiranje aritmetičkih kola

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Operacije sabiranja, oduzimanja i
množenja
 Osnovna kola u binarnoj aritmetici su sabirači.
 Operacija oduzimanja se realizuje sabiranjem u drugom
komplementu.
 Operacija množenja se često izvodi korištenjem
sabiračkih kola.

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Polusabirač
 Osnovnu jedinicu složenijih sabirača čine polusabirači (eng. half-adder,
HA), koji sabiraju samo dva jednobitna binarna broja.
 Najmanje značajan bit u rezultatu: ex-or (s )
 Najznačajniji bit (c . engl.: carry): prenos i formira ulaz za sljedeći stepen.

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Primjer: Polusabirač (Half Adder) u
Verilogu
A module half_adder(S, C, A, B);
S
output S, C;
B input A, B;
C
wire S, C, A, B;

assign S = A ^ B;
A S
Half assign C = A & B;
B Adder C
endmodule

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Sabiranje više-bitnih brojeva
 Daleko značajniji i više primjenljiv slučaj je kada veći
brojevi imaju više bita.
 Neophodno je sabirati svaki par bita na svakoj i-
poziciji, pri čemu operacija sabiranja mora uključiti i
carry-bit sa predhodne bit pozicije i − 1.

Primjer 5-bitnog sabirača

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Puni sabirač

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Verilog kod punog sabirača korištenjem
gate primitiva

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Verilog kod punog sabirača korištenjem
kontinulanog pridruživanja

Kontinulano pridruživanje

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Dekompozicija punog sabirača
korištenjem polu-sabirača

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Dekompozicija punog sabirača korištenjem
polu-sabirača u Verilogu
in1 A Half S I1 A Half S sum
Adder 1 Adder
in2 B C I2 B C I3
ha1 ha2 cout

cin
module full_adder(sum, cout, in1, in2, cin);
output sum, cout;
input in1, in2, cin;

wire sum, cout, in1, in2, cin;


Module wire I1, I2, I3; Ime instance
ime
half_adder ha1(I1, I2, in1, in2);
half_adder ha2(sum, I3, I1, cin);

assign cout = I2 || I3;

endmodule

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Ripple–Carry sabirač
 Kaskadnom vezom punih sabirača moguće sabiranje
višebitnih brojeva.
 Formiranje zbira date mreže se vrši paralelno, s tim da se
bitovi prenosa prostiru serijski kroz pojedine module
sabirača što značajno usporava rad kola.
 Postoje kola koja pomoću dvostepene logičke mreže
određuju da li se može očekivati bit prenosa kod nekog
bita, što značajno ubrzava rad sabirača.

Sabiranje dva četvorobitna


broja kaskadnom
vezom potpunih sabirača.

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Verilog kod 4-bitnog sabirača

Verilog kod Ripple-Carry sabirača


gdje su puni sabirači podkomponente
(instanca iskazi) - moduli fulladd

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Verilog kod 4-bitnog sabirača
korištenjem vektora
Primjeri vektora:

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


n-bitni ripple-carry sabirač

 Kašnjenje kroz kompletan sabirač:

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Verilog kod n-bitnog ripple-carry sabirača
Korištenje konstante, koja omogućava
da se definiše sabiranje brojeva
bilo koje dužine bita:

32-bitni sabirač

For iskaz u proceduralnom


bloku always

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Verilog kod n-bitnog sabirača
Varijanta koda korištenjem aritmetičkog pridruživanja, koja ne uključuje
carry-out signal niti aritmetički overflow signal.

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Verilog kod n-bitnog sabirača
cn korespondira carryout

overflow korespondira cn−1

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Jednostavnija specifikacija n-bitnog
sabirača

Korištenje ulančavanja (aritmetički operator


koji proizvodi rezultat na bitu većeg prioriteta) :

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Bihejvistička specifikacija sabirača

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Kreiranje brojeva sa predznakom
 Kreiranje brojeva sa predznakom:
 Predstavljanje broja sa predznakom i iznosom
vrijednosti
 Forma 1’-vi komplement
 Forma 2’-gi komplement

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Predstavljanje broja sa predznakom i
vrijednošću

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Formiranje 1-vog i 2-gog
komplementa
 1’-vi komplement K1:
 2’-gi komplement K2:

 Pri čemu je n-bitni negativni broj, P- pozitivan broj


 Primjenjeno pravilo nalaženja 2’-gog komplementa:

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Interpretacija 4-bitnog broja sa
predznakom

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Sabirač/oduzimač
 Korištenjem dvojnog komplementa –razlika između
sabiranja i oduzimanja
Add ⁄ Sub control –
određuje da li se radi o
sabiranju (c0 = 0) ili
oduzimanju (c0 = 1)

Add/Sub = 0, Y
Add/Sub = 1, 1’komplement od Y

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Sabirač/oduzimač
 Za oduzimanje,
omogućavamo kontrolni
signal (ulaz).

Primjer više-funkcionalnog
kola

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Množenje
 Primjer množenja binarnih brojeva bez predznaka

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


4x4 množač

m3q2 m2q2 m1q2 m0q2

m0q1

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


BCD kod

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic


Struktura i Verilog kod 4-bitnog BCD
sabirača

Block diagram for a one-digit BCD adder


If Adjust = 0, then S = Z + 0;
if Adjust = 1, then S = Z + 6 and carry-out = 1.
PLS_7 Copyright: Lejla Banjanovic-Mehmedovic
Logička realizacija 4-bitnog BCD
sabirača

PLS_7 Copyright: Lejla Banjanovic-Mehmedovic

You might also like