Você está na página 1de 11

6/24/2010

Operações com dados


„ Nesse capítulo desenvolveremos blocos
lógicos básicos de uso geral, e os utilizaremos
de diversas formas
Circuitos Digitais
Capítulo 4 – Operações com Dados
Parte a – Somadores

Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

Somador de palavras de 2 bits Bloco Básico Somador


„ Podemos projetar um A B „ Possibilita a construção, de uma maneira
somador de duas palavras A1 A0 B1 B0 S2 S1 S0 extremamente simples, de somadores de
0 0 0 0 0 0 0
de 2 bits utilizando as 0 0 0 1 0 0 1
palavras com qualquer número de bits:
A3 A2 A1 A0
técnicas da Álgebra de 0
0
0
0
1
1
0
1
0
0
1
1
0
1

Boole já aprendidas 0 1 0 0 0 0 1 B3 B2 B1 B0
0 1 0 1 0 1 0

„ Caso necessitemos de um 0 1 1 0 0 1 1
Ai Bi Ai Bi Ai Bi Ai Bi
0 1 1 1 1 0 0

somador de palavras de 1 0 0 0 0 1 0
Ci+1
+ Ci Ci+1
+ Ci Ci+1
+ Ci Ci+1
+
1 0 0 1 0 1 1
largura diferente, teremos 1 0 1 0 1 0 0 Si Si Si Si
1 0 1 1 1 0 1
que fazer um novo projeto! 1 1 0 0 0 1 1
1 1 0 1 1 0 0 S4 S3 S2 S1 S0
1 1 1 0 1 0 1
1 1 1 1 1 1 0
Full-adder Half-adder
Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

Bloco Básico Somador Meio-Somador (Half-Adder)


A3 A2 A1 A0 „ O meio-somador (half-adder) implementa a
B3 B2 B1 B0 soma de dois bits Ai e Bi . O resultado da
1 0 1 1 0 1 1 1 operação consiste:
Ai Bi Ai Bi Ai Bi Ai Bi
1 1 1 … no bit da Soma Si ; e
Ci+1
+ Ci Ci+1
+ Ci Ci+1
+ Ci Ci+1
+ … no bit de Carry Ci+1 para a próxima posição (vai-
(vai
Si Si Si Si
1 0 1 0 0 um)
S4 S3 S2 S1 S0 Carry 1 0 0 0
1 1 1 1 1 1 0 0
1 1 0 1
1+ 0+ 1+ 0+
0 1 1 1 +
Soma 0 1 1 0
1 0 1 0 0
Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

1
6/24/2010

Meio-Somador (Half-Adder) Meio-Somador (Half-Adder)


„ O circuito que implementa o half-adder
apresenta duas entradas (os bits a serem
somados) e duas saídas (a soma e o carry)
Ai Bi Si Ci+1
Ai Bi Si Ci+1
0 0 0 0
Si = Ai Bi + Ai Bi = Ai ⊕ Bi 0 0 0 0
0 1 1 0
1 0 1 0 Ci +1 = Ai Bi 0 1 1 0
1 1 0 1 1 0 1 0
1 1 0 1 Ai Bi
Ci+1
+
Si

Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

Somador-completo (Full-Adder) Somador-completo (Full-Adder)


„ O somador-completo (full-adder) implementa „ O circuito que implementa o full-adder
a soma de dois bits, juntamente com o carry apresenta três entradas (os bits Ai e Bi a serem
proveniente a posição anterior. O resultado da somados, juntamente com o carry Ci
operação consiste: proveniente do estágio anterior) e duas saídas
… no bit da Soma; e (o bit de soma Si e o bit de carry Ci+1 para o
… no bit de Carry para a próxima posição (vai-um) próximo estágio)
Carry-out 1 1 Carry-in
0 Ai Bi

1+ Ci+1
+ Ci
Si
Soma 0

Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

Somador-completo (Full-Adder) Somador-completo (Full-Adder)


„ Geração do bit de soma Si AiBi „ Geração do bit de carry Ci+1
Ci 00 01 11 10 AiBi
0 1 1 Ci 00 01 11 10
Ai Bi Ci Si Ci+1 Ai Bi Ai Si Ci+1 0 1
1 1 1
1 1 1 1
0 0 0 0 0 0 0 0 0 0
Si = Ai Bi Ci + Ai Bi Ci + Ai Bi Ci + Ai Bi Ci
0 0 1 1 0 0 0 1 1 0
0 1 0 1 0 ( ) (
Si = Ai Bi + Ai Bi Ci + Ai Bi + Ai Bi Ci ) 0 1 0 1 0 Ci +1 = Ai Bi + Bi Ci + Ai Ci

= (A ⊕ B ) C + ( A ⊕ B ) C
0 1 1 0 1 0 1 1 0 1
Si i i i i i i
1 0 0 1 0 1 0 0 1 0
1 0 1 0 1 Si = ( Ai ⊕ Bi ) ⊕ Ci 1 0 1 0 1
1 1 0 0 1 1 1 0 0 1
1 1 1 1 1 1 1 1 1 1

Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

2
6/24/2010

Somador-completo (Full-Adder) Full-adder construído com half-adders


„ Resumindo: Ci Bi Ai

Bi Ai
Ci+1
+
Si
Ai Bi
Ai ⊕ Bi
Ci+1
+ Ci
Si
Ai Bi
Ci+1
+
Si

Ci +1 = Ai Bi + Ci ( Ai ⊕ Bi ) Si = Ai ⊕ Bi ⊕ Ci
Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

Full-adder construído com half-adders Geração de Si a partir de Ci+1


„ Verificação da validade de Ci+1 „ Por decomposição do mapa de Karnaugh:

Ci +1 = Ai Bi + Ci ( Ai ⊕ Bi ) AiBi
00 01 11 10
AiBi
00 01 11 10
Ci Ci

( )
0 1 1 1 0 1 1
Ci +1 = Ai Bi + Ci Ai Bi + Ai Bi 1 1 1 1 1 1 1

( Ai + Bi + Ci ) Ci +1
(
Ci +1 = Bi Ai + Ai Ci + Ai Bi + Bi Ci ) ( ) Ai + Bi + Ci
AiBi
Ci +1 = Ai Bi + Ai Ci + Bi Ci Ci 00 01 11 10
0 1 1
1 1 1

Si = ( Ai + Bi + Ci ) Ci +1 + Ai Bi Ci
Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

Geração de Si a partir de Ci+1 Somador TTL 7482


„ Somador de duas palavras de dois bits
Si = ( Ai + Bi + Ci ) Ci +1 + Ai Bi Ci

Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

3
6/24/2010

Somador TTL 7482 Somador TTL 7482


„ Utiliza, para cada um dos estágios, a geração
de Si a partir de Ci+1

Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

Somador TTL 7482 Somador/subtrator


B3 B2 B1 B0
A3 A2 A1 A0

0 1 0 1 0 1 0 1
Sel Sel Sel Sel

Ai Bi Ai Bi Ai Bi Ai Bi
Ci+1
+ Ci Ci+1
+ Ci Ci+1
+ Ci Ci+1
+ Ci
Si Si Si Si

S3 S2 S1 S0

Add / Subtract
Overflow
Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

Somador/subtrator Funcionamento como somador


„ O somador/subtrator assume que os operandos Add / Subtract ="0" S = A+ B
estão na representação complemento-a-dois
A3 A2 A1 A0
„ O bloco seletor apresenta em sua saída
B3 B2 B1 B0
…o valor lógico presente em sua entrada “0” quando
S l “0”
Sel= 0 Ai Bi Ai Bi Ai Bi Ai Bi
… o valor lógico presente em sua entrada “1” quando Ci+1
+ Ci Ci+1
+ Ci Ci+1
+ Ci Ci+1
+ Ci “0”
Sel=“1” X Y Si Si Si Si
Sel Z
0 1 S3 S2 S1 S0
Sel 0 X
1 Y
Z Overflow
Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

4
6/24/2010

Funcionamento como subtrator Funcionamento como subtrator


Add / Subtract ="1" S = A− B „ Note que efetivamente o complemento-a-dois
do segundo operando é que está sendo
A3 A2 A1 A0
apresentado ao somador, pois todos os seus
B3 B2 B1 B0 bits estão complementados, e o valor “1” está
sendo adicionado à posição menos
Ai Bi Ai Bi Ai Bi Ai Bi
significativa através do carry!
Ci+1
+ Ci Ci+1
+ Ci Ci+1
+ Ci Ci+1
+ Ci “1”
Si Si Si Si „ O overflow é sinalizado quando o carry de
entrada para a posição mais significativa for
S3 S2 S1 S0
diferente do carry de saída, tanto para a
operação de soma quanto para a subtração.
Overflow
Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

Tempo de propagação do carry Tempo de propagação do carry


„ Na discussão a seguir estamos considerando a „ Supondo que os números A e B são
implementação tradicional para o full-adder: apresentados simultaneamente ao somador
A3 A2 A1 A0
B3 B2 B1 B0
Ai Bi
Ci+1
+ Ci Ai Bi Ai Bi Ai Bi Ai Bi
0
Si Ci+1
+ Ci Ci+1
+ Ci Ci+1
+ Ci Ci+1
+
Si Si Si Si

C4 @8 C3 @6 C2 @4 C1 @2
S3 @7 S2 @5 S1 @3 S0 @2

Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

Tempo de propagação do carry Tempo de propagação do carry


„ O atraso na geração do carry de saída de um „ Diagrama de tempo
estágio equivale ao retardo de duas portas com S0 e C1 válidos
relação ao aparecimento do carry em sua S1 válido
C2 válido
entrada: S2 válido
C3 válido
S3 válido
Ai @0 @1 C4 válido
@N+1
Bi @0
t
Ci @N Ci+1 @N+2
@0 @2 @4 @6 @8
Ai @0
Bi @0 @1 A e B apresentados ao somador
Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

5
6/24/2010

Somador Carry Look-ahead Somador Carry Look-ahead (CLA)


„ O conceito do carry lookahead (antecipação „ O bit de soma Si pode ser expresso em termos
do carry) envolve a geração rápida do carry de Pi:
para grupos (normalmente 4 ou 5) de estágios Si = Ai ⊕ Bi ⊕ Ci = Pi ⊕ Ci
de full adder.
„ Uma
U ddas fformas dde iimplementação
l t ã dod carry Ai
lookahead utiliza, para cada estágio de full Bi Pi @1
adder, os sinais Generate (Gi) e Propagate (Pi)
Ci Si @2
Gi = Ai Bi (o carry é gerado no full-adder quando Ai=Bi=“1”)
Pi = Ai ⊕ Bi (o carry-out é igual ao carry-in) Gi @3

Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

Somador Carry Look-ahead Somador Carry Look-ahead


„ O bit de carry Ci+1 pode ser expresso em „ Geração do carry para o primeiro estágio
termos de Pi e de Gi: Ci +1 = Gi + Ci Pi
Ci +1 = Gi + Ci Pi (ou o carry é gerado no bloco ou ele se propaga)
C1 = G0 + C0 P0
„ Essa expressão de Ci+1 corresponde à do carry
gerado por um full-adder convencional:
Ci +1 = Ai Bi + Ci ( Ai ⊕ Bi ) C0

Ci +1 = Ai Bi + Ci Ai Bi + Ai Bi ( ) P0 C1

(
Ci +1 = Bi Ai + Ai Ci + Ai Bi + Bi Ci ) ( ) G0

Ci +1 = Ai Bi + Ai Ci + Bi Ci
Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

Somador Carry Look-ahead Somador Carry Look-ahead


„ Geração do carry para o segundo estágio „ Geração do carry para o terceiro estágio
Ci +1 = Gi + Pi Ci C2 = G1 + P1C1 Ci +1 = Gi + Pi Ci C3 = G2 + P2C2
„ Como C1 = G0 + P0C0 „ Como C2 = G1 + P1G0 + P1 P0C0
C2 = G1 + P1G0 + P1 P0C0 C3 = G2 + P2G1 + P2 P1G0 + P2 P1 P0C0
C0 P2
P0 P1
P0
P1 C0
P2
G0 P1
C2 G0
P1
P2 C3
G1
G1
G2
Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

6
6/24/2010

Somador Carry Look-ahead 74283


„ Geração do carry para o quarto estágio „ 4-bit binary full-adder with fast-carry
Ci +1 = Gi + Pi Ci C4 = G3 + P3C3
„ Como C3 = G2 + P2G1 + P2 P1G0 + P2 P1 P0C0
C4 = G3 + P3G2 + P3 P2G1 + P3 P2 P1G0 + P3 P2 P1P0C0
P3
P1 P2
P0
C0
P3
P1 P2
G0
P3
P2
G1
P C4
G2 3
Márcio Brandão – CIC/UnB – Circuitos Digitais G3 Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

74283 74HC283 – tempos de propagação

Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

74HC283 – tempos de propagação Somador sem carry look-ahead


„ Formas de onda „ Tempos de propagação

A3 A2 A1 A0
B3 B2 B1 B0

Ai Bi Ai Bi Ai Bi Ai Bi
0
Ci+1
+ Ci Ci+1
+ Ci Ci+1
+ Ci Ci+1
+
Si Si Si Si

C4 @8 C3 @6 C2 @4 C1 @2
S3 @7 S2 @5 S1 @3 S0 @2

Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

7
6/24/2010

Somador com carry look-ahead CLA de 4 bits com LCU


A3 B3 A2 B2 A1 B1 A0 B0
„ Tempos de propagação
Ai Bi Ai Bi Ai Bi Ai Bi
A3 A2 A1 A0 + Ci + Ci + Ci + Ci
Si Pi Gi Si Pi Gi Si Pi Gi Si Pi Gi
B3 B2 B1 B0
C4 @3 C3 @3 C2 @3 C1 @3
S3 S2 S1 S0
Ai Bi Ai Bi Ai Bi Ai Bi
C0
+ Ci
+ Ci
+ Ci
+ Ci P3 G3 C3 P2 G2 C2 P1 G1 C1 P0 G0
Si Si Si Si C4 Lookahead Carry Unit C0
PG GG
C4 @3 S3 @4 S2 @4 S1 @4 S0 @2 (Group Propagate) PG = P3 P2 P1 P0
(Group Generate) GG = G3 + P3G2 + P3 P2G1 + P3 P2 P1G0
Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

Somador de 16 bits com LCU Somador de 16 bits com LCU


„ LCU = Look-ahead Carry Unit „ Tempos de resposta

4 4 4 4 4 4 4 4 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] 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 + C12 + C8 + C4 + C0

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


4 4 4 4 4 4 4 4

@8 @2 @3 @8 @2 @3 @7 @2 @3 @4 @2 @3
@5 @5 @4

C16 P3 G3 C3 P2 G2 C2 P1 G1 C1 P0 G0 C16 P3 G3 C3 P2 G2 C2 P1 G1 C1 P0 G0
C4 Lookahead Carry Unit C0 C4 Lookahead Carry Unit C0
@4
PG GG PG GG
@3 @5

Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

74S182 – Lookahead Carry Unit 74S182 – Lookahead Carry Unit

Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

8
6/24/2010

74S182 – Lookahead Carry Unit 74S182 – Lookahead Carry Unit

Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

74S182 – Lookahead Carry Unit Carry Look-ahead com Full-adders


„ Aplicação típica „ Utilizam um grupo de full-adders
convencionais, sendo a geração rápida do
carry de saída realizada externamente

A4 B4 A3 B3 A2 B2 A1 B1

C5 C1

S4 S3 S2 S1
Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

Somadores com carry look-ahead Somadores com carry look-ahead


„ Exemplo: somador de 13 bits „ Situação de maior retardo:
„ Note a necessidade de um half-adder para … Carry gerado no full-adder 1, e se propagando
efetuar a soma dos bits menos significativos através dos full-adders 2, 3 e 4
das palavras … C5 se propagando através de todas as estruturas de
contorno centrais
… Carry de entrada do último bloco de carry look-
ahead (C9 ) se propagando até o penúltimo full-
adder (11)

Half-adder
Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

9
6/24/2010

Somadores com carry look-ahead Somadores com carry look-ahead


„ Assumindo que o tempo de propagação do „ Generalizando para N grupos de somadores
carry d=2tpd, o tempo T de espera para a com carry look-ahead, podemos dizer que o
situação de maior retardo vale tempo T de espera vale
T = 3.5d + 1.5d + 3d = 8d T = 3.5d + 1.5( N − 2)d + 3d = 3.5d + 1.5 Nd
N N-1 2 1

„ Note que para um somador de 13 bits sem


carry look-ahead o tempo T de espera para a „ No caso de somadores de (4N+1) bits sem
situação de maior retardo vale carry look-ahead o tempo T de espera vale:
T = 13d T = (4 N + 1)d
Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

Somadores com carry look-ahead Somadores - aplicações


„ Tempo T de espera × N „ Somador de 3 bits

Sem carry look-ahead


T = (4 N + 1)d

„ Um somador de 2 bits e um de 1 bit


Com carry look-ahead
T = 3.5d + 1.5 Nd

Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

Somadores - aplicações Somadores - aplicações


„ Codificador de 5 entradas „ Detetor de maioria com 5 entradas
…O número binário apresentado nas saídas (Σ3, Σ2, … Quando a maioria das entradas I1, I2, I3, I4e I5
Σ1) corresponde ao número de entradas (I1, I2, I3, estiver no nível lógico “1”, a saída M5 estará no
I4, I5) que estão em nível lógico “1” nível lógico “1”

Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

10
6/24/2010

Referências
„ Katz, Randy H. (1993), Contemporary Logic
Design, Benjamin Cummings/ Addison
Wesley.
„ Hill, F. & Peterson, G. (1981), Introduction to
S it hi Theory
Switching Th andd Logical
L i l Design,
D i J h
John
Wiley & Sons.
„ Wakerly, John F., Digital Design Principles
and Practices

Márcio Brandão – CIC/UnB – Circuitos Digitais Capítulo 4 – Operações com Dados

11