circuitos digitais unidade aritmética e lógica - ula ...johann/circuitos/aula14b.pdf · 0-3 b 0-3...
TRANSCRIPT
CircuitosCircuitosDigitaisDigitais
ULA MultifunçãoMultiplicadores
Aula 14
INF01058
Circuitos Digitais
Unidade Aritmética Unidade Aritmética e e Lógica Lógica - ULA- ULAExemplo Exemplo de de uma uma ULA Simples de 4 Bits - 12 ULA Simples de 4 Bits - 12 EntradasEntradas, 5 , 5 SaídasSaídas
F0-3
ALUALU
C4
Cin
MS0-1
B0-3A0-3 M = Modo• 1 funções aritméticas• 0 funções lógicas
S = Seleção da função
cada estágiocada estágio
S1Bi
Ci+1
Fi
S0Ai
MCin
Circuitos Digitais
Funções Lógicas Funções Lógicas com M = 0com M = 0
- O valor de Cin não importa- Ci+1 pode ser 0 ou 1, dependendo de Ai e Bi, mas isto não
afeta o estágio seguinte Portanto: Fi depende apenas de Ai, Bi e da seleção S0 e S1
S10011
S00101
FiAiAiAi ⊕ BiAi ⊕ Bi = Ai ⊕ Bi (função equivalência)
Circuitos DigitaisFunções Aritméticas Funções Aritméticas com M = 1 e com M = 1 e CCin in = 0= 0
M = 1 faz com que Ci se propague através do estágio
S10011
S00101
FFi = Ai F = AFi = Ai F = A F = 1’s de AFi = Bi ⊕ Ai ⊕ Ci F = A mais BFi = Bi ⊕ Ai ⊕ Ci F = A mais B = B + 1’s de A ou B – A em 1’s
Funções Aritméticas Funções Aritméticas com M = 1 e com M = 1 e CCin in = 1= 1
FF0 = A0 ⊕ 1F0 = A0 ⊕ 1F0 = A0 ⊕ B0 ⊕ 1F0 = A0 ⊕ B0 ⊕ 1
S10011
S00101
F0 = A0 mais 1 F = A mais 1F0 = A0 mais 1 F = A mais 1 = 2’s de AF0 = A0 mais B0 mais 1 F = A mais B mais 1F0 = A0 mais B0 mais 1 F = A mais B mais 1
= B – A em 2’s
Circuitos Digitais
Para M=1, S1=1 e Cin(0) =(0,1) a ULA converte-se em um bloco Somador/Subtrator
Ai Bi
Cout
Soma/Dif.(i)
Cin Fulladder
Circuitos Digitais
Comparador
X
YCOMP = 1 se X = Y
= 0 se X ≠ Y
X Y COMP
0 0 1
0 1 01 0 0
1 1 1
COMP = X Y + X Y = X ⊕ Y
Circuitos Digitais
Planta Baixa tipo Bit-Slice
Bit 3
Bit 2
Bit 1
Bit 0
Re g
i st e
r
Add
er
Shi f
ter
Mul
tipl
exer
Control
Dat
a -In
Dat
a-O
ut Bit-Slice de mesma altura“Tiling” de elementos aritméticos e registradores
Circuitos Digitais
Multiplicador de 2 bits. Síntese de circuito combinacional
X1 X0 Y1 Y0 P3 P2 P1 P0
0 0 0 0 0 0 0 00 0 0 1 0 0 0 00 0 1 0 0 0 0 00 0 1 1 0 0 0 00 1 0 0 0 0 0 00 1 0 1 0 0 0 10 1 1 0 0 0 1 00 1 1 1 0 0 1 11 0 0 0 0 0 0 01 0 0 1 0 0 1 01 0 1 0 0 1 0 01 0 1 1 0 1 1 01 1 0 0 0 0 0 01 1 0 1 0 0 1 11 1 1 0 0 1 1 01 1 1 1 1 0 0 1
P3 = m15
P2 = ∑ m (10, 11, 14)
P1 = ∑ m (6, 7, 9, 11, 13, 14)
P0 = ∑ m (5, 7, 13, 15)
1 1
1 1
1 1
P1X1X0
Y1Y000 01 11 10
00
01
11
10
P1 = X1X0Y1 + Y1Y0X1 + X1X0Y0 + Y1Y0X0
0
00
00
0 0 0 0
0
Circuitos Digitais
Multiplicador através de ‘Rede de Somadores’
A ⇒ a3 a2 a1 a0 B ⇒ b3 b2 b1 b0
_____________________________________________
a3.b0 a2.b0 a1.b0 a0.b0a3.b1 a2.b1 a1.b1 a0.b1
a3.b2 a2.b2 a1.b2 a0.b2 a3.b3 a2.b3 a1.b3 a0.b3 +
__________________________________________________________________________________________
P7 P6 P5 P4 P3 P2 P1 P0
(A x B = P)(A x B = P)
• Os produtos an.bn são obtidos através da função AND entre an e bn.
• As somas são realizadas com somadores completos (FA) e meio-somadores (HA)
• Há diversas formas de agrupar as somas, cuidando sempre para que os carry-outs
(‘vai um’) gerados sejam considerados na coluna seguinte.
Circuitos Digitais
Uso de Produtos Parciais
1 0 1 1
1 0 1 0 1 0
0 0 0 0 0 0
1 0 1 0 1 0
1 0 1 0 1 0
1 0 1 0 1 0
×
1 1 1 0 0 1 1 1 0
+
Produtos Parciais
Operação AND
Circuitos Digitais
Multiplicador tipo array de 4 bits(Produto Z tem 8 bits)
HA FA FA HA
FA FA FA HA
FA FA FA HA
X0X1X2X3 Y1
X0X1X2X3 Y2
X0X1X2X3 Y3
Z1
Z2
Z3Z4Z5Z6
Z0
Z7
16 ANDS 4 Half-Adders 8 Full-Adders
Circuitos Digitais
Multiplicador de M bits x N bits -Caminhos críticos
HA FA FA HA
HAFAFAFA
FAFA FA HA
Critical Path 1
Critical Path 2
Critical Path 1 & 2
Circuitos Digitais
Multiplicador tipo carry-saveHA HA HA HA
FAFAFAHA
FAHA FA FA
FAHA FA HA
Vector Merging Adder
Circuitos Digitais
Multiplicador Wallace Tree
Circuitos Digitais
Multiplicadores - Sumário• Otimização específica das Células de FA, HA, AND
• Identificar o caminho crítico combinacional
• Outras técnicas utilizadas na prática
- Recodificação do Multiplicando (Codificação de Booth)- Pipelinização do multiplicador
Otimizações no nível sistema (Barramentos p/ Operandos)
- Atraso logarítmico versus Linear (Árvore deWallace para Multiplicação)