You are on page 1of 22

FTN Novi Sad

Merni instrumenti - Digitalna elektronika

4. PRIMERI
KOMBINACIONE
LOGIKE
dr Zoran Mitrović
8-mar.-07

Primeri kombinacione logike

Opšta procedura razvoja


Primeri
Podsistem kalendara
Kontroler displeja BCD u 7-segment
Kontroler procesne linije
Logička funkcijska jedinica
Aritmetička kola
Predstavljanje prirodnih brojeva
Sabiranje/oduzimanje
Aritmetičko/logička jedinica

8-mar.-07 Merni instrumenti - Digitalna elektronika 2


Opšta procedura razvoja kombinacione logike

1. Razumevanje problema
Šta kolo treba da radi?
Zapisati ulaze (podaci, kontrola) i izlaze
Nacrtati blok-dijagram ili drugu sliku
2. Formulisati problem korišćenjem pogodne
reprezentacije
Tipično kombinacionom tabelom ili vremenskim dijagramom
Može da zahteva kodiranje simboličkih ulaza i izlaza
3. Izabrati “metu” implementacije
ROM, PAL, PLA
Mux, dekoder i OR-gejt
Diskretni gejtovi
4. Slediti proceduru implementacije
K-mape za logiku u dva nivoa, više nivoa
Alati za razvoj i jezik za opis hardvera (npr., Verilog)
8-mar.-07 Merni instrumenti - Digitalna elektronika 3

Podsistem kalendara

Utvditi broj dana u mesecu (za kontrolu displeja sata)


Koriste se za kontrolu
displeja LCD ekrana na integer number_of_days ( month, leap_year_flag) {
ručnom časovniku switch (month) {
case 1: return (31);
case 2: if (leap_year_flag == 1)
Ulazi: mesec, indikator then return (29)
else return (28);
prestupne godine case 3: return (31);
case 4: return (30);
Izlazi: broj dana case 5: return (31);
case 6: return (30);
case 7: return (31);
case 8: return (31);
Koristiti softversku case 9: return (30);

implementaciju
case 10: return (31);
case 11: return (30);

da se pomogne
case 12: return (31);
default: return (0);

razumevanju problema
}
}

8-mar.-07 Merni instrumenti - Digitalna elektronika 4


Formalizovati problem

Kodiranje:
Binarni broj za mesec: 4 bits
mesec prest 28 29 30 31
4 žice za 28, 29, 30, i 31 0000 – – – – –
samo jedan je TRUE u 0001 – 0 0 0 1
jednom trenutku 0010 0 1 0 0 0
0010 1 0 1 0 0
0011 – 0 0 0 1
Blok dijagram (šema): 0100 – 0 0 1 0
mesec prest 0101 – 0 0 0 1
0110 – 0 0 1 0
0111 – 0 0 0 1
1000 – 0 0 0 1
1001 – 0 0 1 0
1010 – 0 0 0 1
1011 – 0 0 1 0
1100 – 0 0 0 1
1101 – – – – –
111– – – – – –
28 29 30 31

8-mar.-07 Merni instrumenti - Digitalna elektronika 5

Izabrati “metu” implementacije i uraditi mapiranje

Diskretni gejtovi mesec prest 28 29 30 31


0000 – – – – –
0001 – 0 0 0 1
28 = m8’ m4’ m2 m1’ leap’ 0010 0 1 0 0 0
0010 1 0 1 0 0
0011 – 0 0 0 1
0100 – 0 0 1 0
29 = m8’ m4’ m2 m1’ leap 0101 – 0 0 0 1
0110 – 0 0 1 0
0111 – 0 0 0 1
30 = m8’ m4 m1’ + m8 m1 1000 – 0 0 0 1
1001 – 0 0 1 0
1010 – 0 0 0 1
31 = m8’ m1 + m8 m1’ 1011 – 0 0 1 0
1100 – 0 0 0 1
1101 – – – – –
Može se prevesti u 111– – – – – –

zbir proizvoda ili u


proizvod zbirova

8-mar.-07 Merni instrumenti - Digitalna elektronika 6


Displej kontroler BCD u 7-segment

Razumevanje problema
Ulaz je 4-bitna BCD cifra (A, B, C, D)
Izlaz su kontrolni signali za displej (7 izlaza C0 – C6)
Blok dijagram c0
c5 c1

c6
c4 c2

c3
c0 c1 c2 c3 c4 c5 c6

BCD u 7–segment
dekoder signala

A B C D

8-mar.-07 Merni instrumenti - Digitalna elektronika 7

Formalizacija problema

Kombinaciona tabela
Prikazati stanja nije-važno A B C D C0 C1 C2 C3 C4 C5 C6
0 0 0 0 1 1 1 1 1 1 0
Izabrati “metu” 0 0 0 1 0 1 1 0 0 0 0
implementacije 0 0 1 0 1 1 0 1 1 0 1
0 0 1 1 1 1 1 1 0 0 1
Ako je ROM, gotovo 0 1 0 0 0 1 1 0 0 1 1
Stanja nije-važno čine 0 1 0 1 1 0 1 1 0 1 1
PAL/PLA atraktivnim 0 1 1 0 1 0 1 1 1 1 1
0 1 1 1 1 1 1 0 0 0 0
Slediti proceduru 1 0 0 0 1 1 1 1 1 1 1
implementacije 1 0 0 1 1 1 1 0 0 1 1
1 0 1 – – – – – – – –
Minimizacija pomoću K-mapa
1 1 – – – – – – – – –

8-mar.-07 Merni instrumenti - Digitalna elektronika 8


Implementacija kao minimizovan zbir proizvoda

15 jedinstvenih “product termova” kad se individualno


minimizira
A A A A A

1 0 X 1 1 1 X 1 1 1 X 1 1 0 X 1 1 0 X 1
0 1 X 1 1 0 X 1 1 1 X 1 0 1 X 0 0 0 X 0
D D D D D
C 1 1 X X C 1 1 X X C 1 1 X X C 1 0 X X C 0 0 X X
1 1 X X 1 0 X X 0 1 X X 1 1 X X 1 1 X X
B B B B B
A A

1 1 X 1 0 1 X 1 C0 = A + B D + C + B' D'
0 1 X 1
D
0 1 X 1
D C1 = C' D' + C D + B'
C 0 0 X X C 1 0 X X C2 = B + C' + D
C3 = B' D' + C D' + B C' D + B' C
0 1 X X 1 1 X X
C4 = B' D' + C D'
B B C5 = A + C' D' + B D' + B C'
C6 = A + C D' + B C' + B' C

8-mar.-07 Merni instrumenti - Digitalna elektronika 9

Implementacija kao minimizovana suma proizvoda (nastavak)

Može i bolje...
9 jedinstvenih “product termova” (umesto 15)
Izrazi se dele između izlaza
Nije obavezno da svaki izlaz bude u minimizovanoj formi
A A
C2 1 1 X 1
C2 1 1 X 1
1 1 X 1 1 1 X 1
D D
C 1 1 X X C 1 1 X X
0 1 X X 0 1 X X
B B

C0 = A + B D + C + B' D' C0 = B C' D + C D + B' D' + B C D' + A


C1 = C' D' + C D + B' C1 = B' D + C' D' + C D + B' D'
C2 = B + C' + D C2 = B' D + B C' D + C' D' + C D + B C D'
C3 = B' D' + C D' + B C' D + B' C C3 = B C' D + B' D + B' D' + B C D'
C4 = B' D' + C D' C4 = B' D' + B C D'
C5 = A + C' D' + B D' + B C' C5 = B C' D + C' D' + A + B C D'
C6 = A + C D' + B C' + B' C C6 = B' C + B C' + B C D' + A
8-mar.-07 Merni instrumenti - Digitalna elektronika 10
PLA implementacija
A B C D

BC'
B'C
B'D
BC'D
C'D'
CD
B'D'
A
BCD'

C0 C1 C2 C3 C4 C5 C6 C7

8-mar.-07 Merni instrumenti - Digitalna elektronika 11

PAL implementacija

Granica je 4 proizvodna izraza (product term) po izlazu


Dekompozicija funkcija sa većim brojem izraza
Ne deliti izraze u PAL
(iako postoje neki sa zajedničkim izrazima)
C2 = B + C' + D

C2 = B' D + B C' D + C' D' + C D + B C D'

C2 = B' D + B C' D + C' D' + W potreban je drugi ulaz i drugi izlaz


W = C D + B C D'
Decompozicija u logiku u više nivoa (ako postoji CAD podrška)
⌧Naći zajedničke pod-izraze među funkcijama
C0 = C3 + A' B X' + A D Y
C1 = Y + A' C5' + C' D' C6
C2 = C5 + A' B' D + A' C D X = C' + D'
C3 = C4 + B D C5 + A' B' X' Y = B' C'
C4 = D' Y + A' C D'
C5 = C' C4 + A Y + A' B X
C6 = A C4 + C C5 + C4' C5 + A' B' C
8-mar.-07 Merni instrumenti - Digitalna elektronika 12
Kontrola proizvodne linije

Štapovi promenljive dužine (+/-10%) voze se trakastim


transporterom
Mehanička ruka gura štapove koji su unutar granica (+/-5%) na
jednu stranu
Druga ruka gura preduge štapove na drugu stranu
Štapovi koji su prekratki ostaju na transporteru
3 svetlosne barijere (svetlosni izvor + fotoćelija) kao senzori
Projektovati kombinacionu logiku da aktivira ruke
Razumevanje problema
Ulazi su tri senzora
Izlazi su dva kontrolna signala za ruke
Pretpostavimo da je izlaz senzora "1" kad je aktiviran, inače "0"
Nazovimo senzore A, B, C

8-mar.-07 Merni instrumenti - Digitalna elektronika 13

Skica problema

Pozicioniranje senzora
A do B raspon = specifikacija – 5%
A do C raspon = specifikacija + 5%

spec
- 5%

spec
Predugo Unutar Prekratko + 5%
spec.

B
C

8-mar.-07 Merni instrumenti - Digitalna elektronika 14


Formalizacija problema

Kombinaciona tabela
Prikazati stanja nije-važno

A B C Funkcija logička implementacija je sad pravolinijska


0 0 0 ne radi ništa treba samo postaviti 3-ulazne AND gejtove
0 0 1 ne radi ništa
0 1 0 ne radi ništa
0 1 1 ne radi ništa “prekratko" = AB'C'
1 0 0 prekratko (samo prvi senzor je aktivan)
1 0 1 nije važno
1 1 0 u granicama “u granicama" = A B C'
1 1 1 predugo (prva dva senzora su aktivna)

“predugo" = A B C
(sva tri senzora su aktivna)

8-mar.-07 Merni instrumenti - Digitalna elektronika 15

Logička funkcijska jedinica

Višenamenski funkcijski blok


3 kontrolna ulaza za specificiranje operacije koja se vrši na
operandima
2 ulaza podataka za operande
1 izlaz iste širine (broja bita) kao operandi
C0 C1 C2 Funkcija Komentar
0 0 0 1 uvek 1
0 0 1 A+B logičko OR
3 kontrolna ulaza: C0, C1, C2
0 1 0 (A • B)' logičko NAND
2 ulaza podataka: A, B
0 1 1 A xor B logičko xor
1 izlaz: F
1 0 0 A xnor B logičko xnor
1 0 1 A•B logičko AND
1 1 0 (A + B)' logičko NOR
1 1 1 0 uvek 0

8-mar.-07 Merni instrumenti - Digitalna elektronika 16


Formalizacija problema
C0 C1 C2 A B F
0 0 0 0 0 1
0 0 0 0 1 1
0 0 0 1 0 1 izabrati tehnologiju implementacije
0 0 0 1 1 1
0 0 1 0 0 0 K-mapa sa 5 promenljivih
0 0 1 0 1 1
0 0 1 1 0 1 ka implementaciji u vidu multipleksera
0 0 1 1 1 1
0 1 0 0 0 1 sa diskretnim gejtovima
0 1 0 0 1 1
0 1 0 1 0 1
0
0
1
1
0
1
1
0
1
0
0
0
1 0
0 1 1 0 1 1 1
0 1 1 1 0 1 A
0 1 1 1 1 0 B 2
F
1
1
0
0
0
0
0
0
0
1
1
0 A 3 8:1 MUX
1 0 0 1 0 0 B 4
1 0 0 1 1 1
1 0 1 0 0 0 5
A
1 0 1 0 1 0 6
1 0 1 1 0 0 B
1 0 1 1 1 1 0 7
1 1 0 0 0 1 S2 S1 S0
1 1 0 0 1 0
1 1 0 1 0 0
1 1 0 1 1 0
1 1 1 0 0 0 C0 C1 C2
1 1 1 0 1 0
1 1 1 1 0 0
1 1 1 1 1 0

8-mar.-07 Merni instrumenti - Digitalna elektronika 17

Aritmetička kola

Odlični primeri projekta sa kombinacionom logikom


“Trgovina” vreme - prostor
Ako želimo da kolo radi brzo, često imamo više logičkih kola, a
samim tim i veći zauzet prostor
Primer: logika za prenos koji se generiše unapred (carry
lookahead logic)
Aritmetičke i logičke jedinice
Blokovi opšte namene
Kritične komponente puteva podataka u procesoru
Koriste se unutar mnogih računarskih instrukcija

8-mar.-07 Merni instrumenti - Digitalna elektronika 18


Brojni sistemi

Predstavljanje pozitivnih brojeva je isto u većini sistema


Velike razlike su u predstavljanju negativnih brojeva
Negativni brojevi se predstavljaju jednim od tri načina
Znak i veličina
prvi komplement (1s complement)
drugi komplement (2s complement)
Pretpostavke
Posmatraćemo četvorobitnu mašinsku reč
16 različitih vrednosti može biti prikazano
Grubo rečeno, pola je pozitivno, pola je negativno.

8-mar.-07 Merni instrumenti - Digitalna elektronika 19

Znak i veličina (magnituda)

Jedan bit se koristi kao znak


(pozitivan ili negativan) 0 100 = + 4

znak: 0 = pozitivan (ili nula), 1 = negativan 1 100 = – 4

Ostatak predstavlja apsolutnu


–7 +0
vrednost ili magnitudu
–6 1111 0000 +1
tri najniža bita: 0 (000) do 7 (111) 1110 0001
–5 +2
Opseg od n bita 1101 0010
–4
1100 0011 +3
+/– 2n–1 –1 (dva načina prikaza nule)
–3 1011 0100 +4
Glomazno sabiranje/oduzimanje
–2 1010 0101 +5
moraju da se porede magnitude 1001 0110
da se odredi znak rezultata –1 1000 0111 +6
–0 +7

8-mar.-07 Merni instrumenti - Digitalna elektronika 20


Prvi komplement

Ako je N pozitivan broj, tada je negativni broj N' ( njegov


prvi komplement ili N' ) N' = (2n– 1) – N
Primer: Prvi komplement broja 7
4
2 = 10000
1 = 00001
4
2 –1 = 1111
7 = 0111
1000 = –7 u formi prvog komplementa

Brži način: prosto se izračuna bit-po-bit komplement


( 0111 -> 1000 )

8-mar.-07 Merni instrumenti - Digitalna elektronika 21

Prvi komplement (nastavak)

Oduzimanje se implementira kao prvi komplement i


zatim sabiranje
Dva načina prikaza nule
Pravi probleme pri sabiranju –0 +0
–1 +1
1111 0000
Najviši bit ponaša se 1110 0001
–2 +2
kao znak 1101 0010
–3
1100 0011 +3
0 100 = + 4
–4 1011 0100 +4
1 011 = – 4 1010 0101
–5 +5
1001 0110
–6 1000 0111 +6

–7 +7

8-mar.-07 Merni instrumenti - Digitalna elektronika 22


Drugi komplement

Prvi komplement sa negativnim brojevima pomeren za


jednu poziciju udesno
Samo jedna oznaka za nulu
Ima jedan negativni broj više od pozitivnih
Najviši bit se ponaša kao znak –1 +0
–2 +1
1111 0000
–3 1110 0001
+2
1101 0010
0 100 = + 4
–4
1100 0011 +3
1 100 = – 4
–5 1011 0100 +4
1010 0101
–6 +5
1001 0110
–7 1000 0111 +6

–8 +7
8-mar.-07 Merni instrumenti - Digitalna elektronika 23

Drugi komplement (nastavak)

Ako je N pozitivni broj, tada je negativni broj N (njegov


drugi komplement ili N* ) je N* = 2n – N
Primer: drugi komplement broja 7 4
2 = 10000
oduzmi 7 = 0111
1001 = prikaz broja –7

4
Primer: drugi komplement broja –7 2 = 10000
oduzmi –7 = 1001
0111 = prikaz broja 7

Savet: drugi komplement = bit-po-bit komplement + 1


⌧0111 -> 1000 + 1 -> 1001 (prikaz broja -7)
⌧1001 -> 0110 + 1 -> 0111 (prikaz broja 7)

8-mar.-07 Merni instrumenti - Digitalna elektronika 24


Sabiranje i oduzimanje u drugom komplementu

Prosto sabiranje i oduzimanje


Prosta šema računanja izdvaja drugi komplement kao
najpogodniji način predstavljanja celih brojeva u računarskoj
tehnici
4 0100 –4 1100
+3 0011 + (– 3) 1101
7 0111 –7 11001

4 0100 –4 1100
–3 1101 +3 0011
1 10001 –1 1111

8-mar.-07 Merni instrumenti - Digitalna elektronika 25

Zašto bit prenosa (izlazni, Carry-out) može da se


zanemari (ignoriše)?

Ne može potpuno da se ignoriše


Mora da se proveri da li dolazi do prekoračenja (videti dva
sledeća slajda)
Kad nema prekoračenja, izlazni signal prenosa (carry-
out) može da bude TRUE, ali i tada može da se zanemari
– M + N when N > M:
M* + N = (2n – M) + N = 2n + (N – M)

zanemarivanje carry-out je kao oduzimanje 2n


– M + – N where N + M ≤ 2n–1
(– M) + (– N) = M* + N* = (2n– M) + (2n– N) = 2n – (M + N) + 2n

zanemarivanje prenosa je kao prikaz u drugom


komplementu broja – (M + N)
8-mar.-07 Merni instrumenti - Digitalna elektronika 26
Prekoračenje prilikom sabiranja/oduzimanja
u drugom komplementu

Uslovi prekoračenja
Sabiranjem dva pozitivna broja dobija se negativan broj
Sabiranjem dva negativna broja dobija se pozitivan broj
–1 +0 –1 +0
–2 +1 –2 +1
1111 0000 1111 0000
–3 1110 0001 –3 1110 0001
+2 +2
1101 0010 1101 0010
–4 –4
1100 0011 +3 1100 0011 +3

–5 1011 0100 +4 –5 1011 0100 +4


1010 0101 1010 0101
–6 +5 –6 +5
1001 0110 1001 0110
–7 1000 0111 +6 –7 1000 0111 +6

–8 +7 –8 +7
5 + 3 = –8 –7 – 2 = +7
8-mar.-07 Merni instrumenti - Digitalna elektronika 27

Uslovi prekoračenja

Prekoračenje kad je prenos u poziciju bita znaka nije


isto što i carry-out (izlazni prenos)
0 1 1 1 1 0 0 0
0101 1001
5 –7
0011 1110
3 –2
1000 10111
–8 7
prekoračenje prekoračenje
0 0 0 0
1 1 1 1
0101 1101
5 –3
0010 1011
2 –5
0111 11000
7 –8
nema prekoračenja nema prekoračenja
8-mar.-07 Merni instrumenti - Digitalna elektronika 28
Kola za binarno sabiranje

Polusabirač (sabiranje dva jednobitna broja)


Sum = Ai' Bi + Ai Bi' = Ai xor Bi
Cout = Ai Bi
Pun sabirač (ulazni prenos za kaskadu – višebitne sabirače)
Sum = Ci xor A xor B
Cout = B Ci + A Ci + A B = Ci (A + B) + A B
Ai Bi Cin Sum Cout
0 0 0 0 0
Ai Bi Sum Cout 0 0 1 1 0
0 0 0 0 0 1 0 1 0
0 1 1 0 0 1 1 0 1
1 0 1 0 1 0 0 1 0
1 1 1 1 1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
8-mar.-07 Merni instrumenti - Digitalna elektronika 29

Implementacije punog sabirača


A
Standardni pristup B
S
6 gejtova Cin

2 XOR, 2 AND, 2 OR A
B
Cin
Cout
A
B

Cout = A B + Cin (A xor B) = A B + B Cin + A Cin


Alternativne implementacije
5 gejtova
polusabirač je XOR gejt i AND gejt
2 XOR, 2 AND, 1 OR
A Sum A xor B Sum A xor B xor Cin Sum
Polu Polu
B sabirač sabirač
Cout A B Cout Cin (A xor B)
Cin Cout
8-mar.-07 Merni instrumenti - Digitalna elektronika 30
Sabirač/oduzimač

Upotreba sabirača za oduzimanje zahvaljujući


predstavljanju u drugom komplementu
A – B = A + (– B) = A + B' + 1
Kontrolni signal bira B ili drugi komplement B
A3 B3B3' A2 B2B2' A1 B1B1' A0 B0B0'

Sel 0 1 Sel 0 1 Sel 0 1 Sel


0 1

A B A B A B A B
Saberi'
Cout Cin Cout Cin Cout Cin Cout Cin
Oduzmi
Sum Sum Sum Sum

S3 S2 S1 S0

Prekoračenje
8-mar.-07 Merni instrumenti - Digitalna elektronika 31

Sabirač sa brzim generisanjem prenosa

Kritično kašnjenje
Propagacija signala prenosa od nižih ka višim stepenima
Cin
4 – stepeni
@0 A @1 @N+1 sabirač
@0 B A0 S0 @2
@N Cin B0 C1 @2
Cout
@N+2
@0 A
@0 B @1 A1 S1 @3
B1 C2 @4
signal koji dva kašnjenja gejta
kasno stigne da se izračuna Cout A2 S2 @5
B2 C3 @6

A3 S3 @7
B3 Cout @8

8-mar.-07 Merni instrumenti - Digitalna elektronika 32


Sabirač sa brzim generisanjem prenosa (nastavak)

Kritično kašnjenje
Propagacija signala prenosa od nižih ka višim stepenima
1111 + 0001 je najgori slučaj
Signal prenosa mora da propagira kroz sve bite

S0, C1 Valid S1, C2 Valid S2, C3 Valid S3, C4 Valid

T0 T2 T4 T6 T8

8-mar.-07 Merni instrumenti - Digitalna elektronika 33

Logika za predviđanje signala prenosa

Generisanje Carry signala: Gi = Ai Bi


Mora se generisati carry kad je A = B = 1
Propagacija Carry signala: Pi = Ai xor Bi
Ovde je Carry-in jednak sa carry-out
Zbir i Cout mogu da se izraze preko
generisanja/propagacije (generate/propagate):
Si = Ai xor Bi xor Ci
= Pi xor Ci

Ci+1 = Ai Bi + Ai Ci + Bi Ci
= Ai Bi + Ci (Ai + Bi)
= Ai Bi + Ci (Ai xor Bi)
= Gi + Ci Pi

8-mar.-07 Merni instrumenti - Digitalna elektronika 34


Logika za predviđanje signala prenosa (nastavak)

Ponovo napišimo logiku signala prenosa kao:


C1 = G0 + P0 C0
C2 = G1 + P1 C1 = G1 + P1 G0 + P1 P0 C0
C3 = G2 + P2 C2 = G2 + P2 G1 + P2 P1 G0 + P2 P1 P0 C0
C4 = G3 + P3 C3 = G3 + P3 G2 + P3 P2 G1 + P3 P2 P1 G0
+ P3 P2 P1 P0 C0

Svaka od jednačina signala prenosa može da se


implementira kao logika u dva nivoa
Svi ulazi su sada direktno izvedeni iz ulaza podataka, a ne iz
signala među-prenosa
ovo omogučava da se svi izlazi za zbir računaju paralelno

8-mar.-07 Merni instrumenti - Digitalna elektronika 35

Implementacija logike za predviđanje signala prenosa

Sabirač sa izlazima za propagaciju i generisanje


Ai Pi @ 1 kašnjenje gejta
Bi

Ci Si @ 2 kašnjenja gejta

Gi @ 1 kašnjenje gejta povećava se kompleksnost


logike za signal prenosa

C0 C0 C0
P0 C1 P0 P0
G0 P1 P1
P2 P2
G0 P3
C0 P1 G0
P0 P2 P1
P1 P2
G1 C3 P3
G0 P2 G1
P1 C2
P2
G2 P3
G1 C4
G2
P3
G3
8-mar.-07 Merni instrumenti - Digitalna elektronika 36
Implementacija logike za predviđanje signala
prenosa (nastavak)
Logika za predviđanje signala prenosa generiše pojedinačne
signale prenosa
Sume se računaju brže paralelno
Međutim, cena logike za prenos se povećava sa brojem stepeni
Cin
Cin
A0 S0 @2
A0 S0 @2 B0
B0 C1 @2
C1 @3
A1 S1 @4
A1 S1 @3 B1
B1 C2 @4
C2 @3
A2 S2 @4
A2 S2 @5 B2
B2 C3 @6
C3 @3
A3 S3 @4
A3 S3 @7 B3
B3 Cout @8
C4 @3 C4 @3
8-mar.-07 Merni instrumenti - Digitalna elektronika 37

Sabirač sa logikom za predviđanje signala prenosa


sa kaskadiranom logikom predviđanja

Sabirač sa logikom za predviđanje signala prenosa


4 četvorobitna sabirača sa internom logikom za predviđanje
Drugi nivo logike za predviđanje proširuje ovu logiku na 16 bita

4 4 4 4 4 4 4 4

A[15-12]B[15-12] A[11-8] B[11-8] A[7-4] B[7-4] A[3-0] B[3-0]


C12 C8 C4 C0
4-bit sabiračr 4-bit sabirač 4-bit sabirač 4-bit sabirač @0
P G P G P G P G
4 4 4 4

S[15-12] S[11-8] S[7-4] S[3-0]


@8 @2 @3 @8 @2 @3 @7 @2 @3 @4 @2 @3
@5 @5 @4
P3 G3 C3 P2 G2 C2 P1 G1 C1 P0 G0
C16 C4 C0 C0
@4 Jedinica za predviđanje signala prenosa @0
P3-0 G3-0
@3 @5

8-mar.-07 Merni instrumenti - Digitalna elektronika 38


Sabirač sa izborom signala prenosa

Redundantni hardver da bi se ubrzalo računanje prenosa


Računa dve najviše sume paralelno dok čeka na carry-in
Jedna podrazumeva da je carry-in 0, druga da je 1
Bira se ispravan rezultat kad se carry-in izračuna

C8 4-bit sabirač 1 sabirač


[7:4] high

C8 4-bit sabirač 0
[7:4] sabirač
low

pet 1 0 1 0 10 1 0 1 0 C4 4-Bit sabirač C0


2:1 mux [3:0]

C8 S7 S6 S5 S4 S3 S2 S1 S0
8-mar.-07 Merni instrumenti - Digitalna elektronika 39

Specifikacija za razvoj aritmetičko-logičke jedinice

M = 0, logičke bit-po-bit operacije


S1 S0 Funkcija Komentar
0 0 Fi = Ai ulaz Ai se prenosi na izlaz
0 1 Fi = not Ai komplement Ai se prenosi na izlaz
1 0 Fi = Ai xor Bi izračunaj XOR funkciju Ai, Bi
1 1 Fi = Ai xnor Bi izračunaj XNOR funkciju Ai, Bi
M = 1, C0 = 0, aritmetička operacija
0 0 F=A ulaz A prenosi se na izlaz
0 1 F = not A komplement A prenosi se na izlaz
1 0 F = A plus B suma A i B
1 1 F = (not A) plus B suma B i komplementa A
M = 1, C0 = 1, aritmetička operacija
0 0 F = A plus 1 inkrement A
0 1 F = (not A) plus 1 drugi komplement A
1 0 F = A plus B plus 1 inkrement sume A i B
1 1 F = (not A) plus B plus 1 B minus A

logičke i aritmetičke operacije


nisu sve operacije korisne, ali se dobijaju uzgred, pa se pojavljuju u tabeli
8-mar.-07 Merni instrumenti - Digitalna elektronika 40
Specifikacija za razvoj aritmetičko-logičke
jedinice (nastavak)
M S1 S0 Ci Ai Bi Fi Ci+1
Primer kombinacione
0 0 0 X 0 X 0 X
X 1 X 1 X
0 1 X 0 X 1 X
tabele za ALU 1 0
X
X
1
0
X
0
0
0
X
X
X 0 1 1 X
X 1 0 1 X
X 1 1 0 X
1 1 X 0 0 1 X
X 0 1 0 X
X 1 0 0 X
X 1 1 1 X
1 0 0 0 0 X 0 X
0 1 X 1 X
0 1 0 0 X 1 X
0 1 X 0 X
1 0 0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 1 0 0 0 1 0
0 0 1 0 1
0 1 0 0 0
0 1 1 1 0
1 0 0 1 0 X 1 0
1 1 X 0 1
0 1 1 0 X 0 1
1 1 X 1 0
1 0 1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
1 1 1 0 0 0 1
1 0 1 1 1
1 1 0 1 0
1 1 1 0 1
8-mar.-07 Merni instrumenti - Digitalna elektronika 41

Razvoj aritmetičko-logičke jedinice (nastavak)

Primer implementacije ALU u logici sa više nivoa sa


diskretnim gejtovima
\S1 [35] M
\Bi Ci Ci
[33] \Co
Ci
M [30] Co [30]
[33]
S1 [33] [33] Fi
Bi \Co
M
[30]
Ci
[35]
S0 [30] [30]
\Co
Ai \[30]
\[35]

12 gejtova

8-mar.-07 Merni instrumenti - Digitalna elektronika 42


Aritmetičko-logička jedinica (nastavak)

Primer ALU – implementacija u više nivoa


S1 Bi S0 Ai M Ci gejtovi prvog nivoa
koristiti S0 za komplement Ai
A1 X1 A2
S0 = 0 gejt X1 propušta Ai
S0 = 1 gejt X1 propušta Ai'
koristiti S1 da se blokira Bi
S1 = 0 gejt A1 definiše da se Bi prosleđuje kao 0
(ne želimo Bi za operacije u kojima se koristi A)
S1 = 1 gejt A1 propušta Bi
koristiti M da se blokira Ci
X2 M=0 gejt A2 definiše da se Ci propušta kao 0
(ne želimo Ci u logičkim operacijama)
M=1 gejt A2 propušta Ci

ostali gejtovi
za M=0 (logičke operacije, Ci se ne koristi)
A3 A4
Fi = S1 Bi xor (S0 xor Ai)
= S1'S0' ( Ai ) + S1'S0 ( Ai' ) +
S1 S0' ( Ai Bi' + Ai' Bi ) + S1 S0 ( Ai' Bi' + Ai Bi )
za M=1 (aritmetičke operacije)
Fi = S1 Bi xor ( ( S0 xor Ai ) xor Ci ) =
X3
O1 Ci+1 = Ci (S0 xor Ai) + S1 Bi ( (S0 xor Ai) xor Ci ) =

potpun sabirač sa ulazima S0 xor Ai, S1 Bi, i Ci


Ci+1 Fi
8-mar.-07 Merni instrumenti - Digitalna elektronika 43

You might also like