
138 LECT¸ IA 10. Circuite aritmetice
Select¸ia Ie¸siri Operat¸ia
S
2
S
1
S
0
{C
O
, REZ
[3:0]
}
0 0 0 00000 reset
0 0 1 B − A sc˘adere
0 1 0 A − B sc˘adere
0 1 1 A + B adunare
1 0 0 A ⊕ B XOR
1 0 1 A + B OR
1 1 0 A · B AND
1 1 1 A trece A
ˆ
In plus fat¸˘a de cei 4 bit¸i de date de ie¸sire, ALU mai are o ie¸sire C
o
, cu semnificat¸ia ”dep˘a¸sire”, activat˘a doar ˆın
cazul operat¸iilor aritmetice.
Care sunt valorile rezultatelor la ie¸sirea ALU, dac˘a la intrare se aplic˘a operanzii A
[3:0]
= 1101 ¸si B
[3:0]
= 0101?
7. Proiectat¸i o unitate logico-aritmetic˘a pe 1 bit care are simbolul ¸si tabela de funct¸ionare prezentate ˆın figura
10.10. ALU are dou˘a intr˘ari de date (A ¸si B), o intrare de transport relevant˘a la operat¸iile aritmetice ¸si 2 bit¸i
de select¸ie a operat¸iei realizate.
ˆ
In plus fat¸˘a de ie¸sirea de rezultat R mai exist˘a o ie¸sire de transport C
o
a c˘arei
valoare este setat˘a ˆın cazul operat¸iilor aritmetice (ˆın rest C
o
= 0).
Select¸ie Ie¸siri Operat¸ie
S
2
S
1
S
0
{C
O
, REZ
[3:0]
}
0 0 0 0 reset
0 0 1 A − B − C
i
sc˘adere
0 1 0 B − A − C
i
sc˘adere
0 1 1 A + B + C
i
adunare
1 0 0 A ⊕ B XOR
1 0 1 A + B OR
1 1 0 A · B AND
1 1 1 A trece A
Figura 10.10 ALU pe 1 bit: simbol ¸si tabel de funct¸ionare.
Solut¸ie
ALU implementeaz˘a 8 funct¸ii. Cele 3 intr˘ari de select¸ie ale funct¸iei S[2 : 0] se conecteaz˘a pe intr˘arile de select¸ie
ale unui MUX 8:1. Ie¸sirea multiplexorului va fi ie¸sirea ALU, R. Intr˘arile multiplexorului sunt conectate conform
tabelului de funct¸ionare astfel: I
0
= 0, I
4
= A ⊕ B, I
5
= A + B, I
6
= A · B, I
7
= A.
Operat¸iile aritmetice se pot implementa cu circuite aritmetice sumatoare/sc˘az˘atoare de 1 bit. Ie¸sirile de date
ale acestora se conecteaz˘a la intr˘arile multiplexorului I
1
, I
2
, I
3
. Se poate face o optimizare pentru a se utiliza
acela¸si circuit de sc˘adere ˆın cazurile S = 1 ¸si S = 2, dac˘a la intr˘arile de date se plaseaz˘a dou˘a multiplexoare 2:1
avˆand datele A ¸si B inversate ¸si pe select¸ie S[0].
Bitul de transport C
o
poate fi generat fie cu un multiplexor 8:1 cu select¸ie S[2 : 0] ¸si date provenind de la bitul de
transport al circuitelor de adunare/sc˘adere, fie cu un MUX 4:1 (select¸ie S[1 : 0]) urmat de un MUX 2:1 (select¸ie
S[2]).
8. Utilizat¸i module de tipul ”ALU pe 1 bit” descrise la problema 7 pentru a proiecta o unitate logico-aritmetic˘a pe
8 bit¸i.
9. Proiectat¸i un circuit de incrementare (adunare cu 1) a numerelor reprezentate pe 4 bit¸i, utilizˆand 4 semi-
sumatoare de 1 bit.
Solut¸ie
Un semi-sumator adun˘a doi bit¸i de date ¸si prezint˘a la ie¸sirea circuitului suma lor, reprezentat˘a pe doi bit¸i. Se
poate considera c˘a cel mai put¸in semnificativ bit este rezultatul iar cel mai semnificativ bit este bitul de transport
c˘atre un sumator de ordin superior.
Circuitul de incrementare se poate realiza cu 4 semi-sumatoare de 1 bit dac˘a acestea se conecteaz˘a astfel:
- Cel mai put¸in semnificativ semi-sumator adun˘a 1 la cel mai put¸in semnificativ bit al operandului. Rezultatul
reprezint˘a bitul cel mai put¸in semificativ iar transportul devine unul din operanzii semi-sumatorului de ordin
superior.