Escolar Documentos
Profissional Documentos
Cultura Documentos
MULTIPLICADOR BINRIO
Rev.1
1.Algoritmo Tradicional
O algoritmo tradicional de multiplicao binria de dois nmeros binrios sem sinal feita com sucessivos deslocamentos do multiplicando esquerda (que constituem as parcelas do clculo dos produtos parciais) e uma soma. Vamos executar este algoritmo com os nmero binrios 1101 e 1011, como ilustrado abaixo.
13 11 1101 1011 1101 1101 0000 1101 10001111 multiplicando multiplicador produtos parciais
.
143
produto
A execuo do algoritmo leva em considerao um bit do multiplicador de cada vez, com o bit menos significativo em primeiro lugar. Se o bit do multiplicador for 1, o multiplicando copiado para ser somado posteriormente. Em caso contrrio, o bit do multiplicador for 0, um valor nulo copiado em seu lugar. Os nmeros copiados em linhas sucessivas so deslocados esquerda de uma posio em relao linha anterior. Finalmente, os nmeros so somados gerando o produto final. Um circuito digital que implementa este algoritmo deve executar esta soma em etapas. Assim, quando um novo nmero for copiado, duas parcelas devem ser somadas gerando uma soma parcial. Ilustramos abaixo esta modificao no mesmo exemplo acima.
13 11 1101 multiplicando 1011 multiplicador 1101 1101 . soma dos 100111 produtos 0000 . parciais 100111 2 a 2 1101 10001111 produto
.
143
Este algoritmo tradicional, inspirado no processo manual que utilizamos para multiplicar, apresenta, como grande desvantagem, a necessidade de se utilizar um somador de 2n bits, quando os operandos possuirem n bits.
03/06/2004
1/12
PCS2304
MULTIPLICADOR BINRIO
Rev.1
2. Algoritmo Melhorado
O somador de 2n bits pode ser substitudo por um de n bits com um algoritmo levemente diferente. O algoritmo melhorado, que apresentamos aqui, necessita de um somador de n bits e de operaes de deslocamento para a direita do produto parcial. O algoritmo segue os seguintes passos: 1. Inicialmente o produto parcial ajustado para 0 (zero); 2. Um bit do multiplicador processado de cada vez, comeando pelo bit menos significativo; 2.1. Se o bit sendo processado for 1 (um), o multiplicando somado ao produto parcial e depois realizado um deslocamento pela direita do produto parcial; 2.2. Se o bit sendo processado for 0 (zero), o produto parcial apenas deslocado para a direita; 3. O bit de vai-um ("carry") do somador armazenado em um flip-flop que deve estar conectado ao registrador deslocador contendo o produto parcial; 4. A soma deve ser realizada apenas nos n bits mais significativos de produto parcial. Um exemplo de aplicao deste algoritmo com n=4, ilustrado abaixo:
13 11 1101 1011 0000 1101 1101 0110 1101 1 0011 1001 0100 1101 1 0001 1000 multiplicando multiplicador valor inicial do produto parcial soma multiplicando, bit do multiplicador 1 1 1 11 111 111 1111 desloca para a direita soma multiplicando, bit do multiplicador 1 desloca para a direita s desloca para a direita, bit do multiplicador 0 soma multiplicando, bit do multiplicador 1 desloca para a direita produto
143
10001111
O diagrama de blocos de um circuito que executa tal algoritmo ser apresentado na figura 3.
03/06/2004
2/12
PCS2304
MULTIPLICADOR BINRIO
Rev.1
MB
OUT ( 7:0 )
* Num projeto "profissional", o sinal CLOCK gerado internamente ao Sistema Digital, atravs, por exemplo, de um cristal.
03/06/2004 3/12
PCS2304
MULTIPLICADOR BINRIO
Rev.1
SD UC
CLOCK
FD
PCS2304
MULTIPLICADOR BINRIO
Rev.1
Registrador B
Contador P
Cout
Somador Binrio
Detetor de Zero
Q0
Unidade de Controle
* Neste diagrama omitiram-se os sinais de comando dos registradores/contador (tipo LOAD, CLEAR, etc) e tambm o CLOCK.
03/06/2004 5/12
PCS2304
MULTIPLICADOR BINRIO
Rev.1
PARADO
INICIAR
C0 A0 P n-1 MUL0
Q0
AA+B C Cout
(Fracasso)
ZERO
(Sucesso)
Contador no chegou em 0
PCS2304
MULTIPLICADOR BINRIO
Rev.1
Q0
ZERO INICIAR
y0
CIRCUITO COMBINATRIO
D
CLO CK
y1
Trs estados 2 Flip-flops Sadas 8 CLEAR A, CLEAR C, LOAD P LOAD A, LOAD C, SHIFT A, SHIFT Q, CONTA
O circuito final pode ser montado com portas e flip-flops, ou com EPROM e flip-flops ou com PAL que tenha flip-flops na sada. Com relao s sadas, podemos faz-las totalmente independentes, gerando 8 sinais ou ento, adotamos a estratgia resumida abaixo: "Agrupamos sadas que sempre tem que estar ativas nas mesmas situaes."
03/06/2004
7/12
PCS2304
MULTIPLICADOR BINRIO
Rev.1
Observando o ASM, verificamos, por exemplo, que sempre que devemos acionar Shift A, tambm temos que acionar Shift Q. Portanto, uma nica sada Shift, ligada aos dois registradores, suficiente. A tabela 1 mostrada a seguir resume essa estratgia.
Bloco
Ao
Condio
PARADO . INICIAR
Reg A
F.F.C.
A 0 (Clear A) A A+B (Load A) C || A || Q SR C || A || Q (Shift A) C 0 (Clear C) C Cout (Load C) C || A || Q SR C || A || Q (Shift Q) P n - 1 (Load P) P P - 1 (Conta)
MUL0 . Q0 MUL1
PARADO . INICIAR+MUL1
1 2 3 4 2 3 1 3
MUL0 . Q0 MUL1
PARADO . INICIAR
Reg Q Cont P
MUL1
varivel estado
PARADO 1 0 0
MUL0 0 1 0
MUL1 0 0 1
Adotando esta tcnica e agrupando as sadas como detalhado anteriormente, o circuito resultante mostrado na figura 7. Observe que as expresses das sadas j esto expressas na prpria tabela 1, na coluna CONDIO. Essa soluo requer que a condio inicial, imposta ao ligar o circuito, seja 100 (ou seja, estado PARADO).
03/06/2004
8/12
PCS2304
MULTIPLICADOR BINRIO
Rev.1
DIAGRAMA ASM
Entrada Entrada
CIRCUITO
S0
Estado
D C
S0
Sada Sada
( a ) Bloco de Estado
Entrada Entrada
Sada 0
( b ) Bloco de Deciso
Entrada 1
Entrada 2
Entrada 1
Entrada 2
Sada Sada
( c ) Juno
Entrada Entrada
1 X y =1
PCS2304
MULTIPLICADOR BINRIO
Rev.1
PARADO
D
1
PARADO
INICIAR
INITIALIZE
CLEAR_C MUL0
Q0
MUL0
LOAD
D
2
MUL1
D
CLO CK
3
MUL1
SHIFT_DEC
ZERO
FF - 1 FF - 0 FF - 0
PCS2304
MULTIPLICADOR BINRIO
Rev.1
c) Modelo Registrador de Estado-Decodificador A soluo do item b apresenta a grande vantagem de facilitar a obteno do circuito mas, quando o nmero de estados muito grande, o nmero de flip-flops pode encarecer o produto. Por outro lado, muito conveniente ter a informao sobre os estados, de forma decodificada. Por exemplo, para saber se o circuito est num estado Si s olhar para a sada do Flip-flop do estado Si. O modelo apresentado na figura 8 uma mistura dos modelos a) e b). Os estados sero representados de forma codificada (n flip-flops 2 n estados), mas sero decodificados, de forma a se obter variveis iguais s do item b, para represent-los ( PARADO, MUL0 MUL1).
ZERO INCIAR
Q0
INCIAR ZERO
D C
y0
INITIALIZE
0 DEC y1 1 2 3
CIRCUITO
CLEAR_C
COMBINATRIO
LOAD
DA SADA
SHIFT_DEC
CLO CK
Condies
Iniciar Zero 0 1 X X X X X X 0 1
Prximo Estado
y1 0 0 1 0 0 y0 0 1 0 1 0
Decodificador
PARADO 1 1 0 0 0 MUL0 0 0 1 0 0 MUL1 0 0 0 1 1
Tabela 2 Tabela de transio Observando a tabela (e lembrando que Di (t) = yi (t+1)), temos D0 = (PARADO) . (INICIAR) + (MUL1) . (ZERO) D1 = MUL0 Portanto, o circuito final est detalhado na figura 9, onde se observa que a porta comum ao bloco combinatrio do prximo estado e ao bloco combinatrio da sada.
03/06/2004 11/12
PCS2304
MULTIPLICADOR BINRIO
Rev.1
INCIAR
INITIALIZE
CLEAR_C
D0
ZERO
D C
y0 DECODER A0 0 1 2 A1 3
MUL0 MUL1 SHIFT_DEC PARADO
D1
y1
Q0
LOAD
CLO CK
4.Bibliografias Importantes
Midorikawa, ET, multiplicador binrio - Apostila de PCS 2355 / 2308
Kime, CR; Mano, MM. Logic and Computer Design Fundamentals. New Jersey Prentice Hall - 2000
03/06/2004
12/12