Você está na página 1de 4

1o Trabalho: Multiplicacao pelo Algoritmo de Booth

Algoritmo de Multiplicacao Convencional


Algoritmo de Booth:

Multiplicando = M = b b b b b b Multiplicador = 0 1 0 1 1 0
5 4 3 2 1 0

Realiza multiplicao de inteiros Opera nmeros com sinal (positivos e negativos)

Produto = M multiplicador b b b b b b 0 1 0 1 1 0
5 4 3 2 1 0

Implementao em hardware:

Melhor que solues vistas em aula

Trabalho:

Projetar circuito multiplicador de inteiros, baseado no algoritmo de Booth Implementar circuito projetado no LogiSim Fazer relatrio sobre circuito projetado +

0 0 0 0 0 0 b b b b b b 0 b b b b b b 0 0 0 0 0 0 0 0 0 0 0 b b b b b b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Produto

= = =

M 21 = M 1 M 22 = M 2 M 24 = M 4

M 1

+ M 2

+ M 4

Para cada bit em 1 no multiplicador:

Soma multiplicando, devidamente shiftado, ao produto

Ideia
A = 0 0 1 0 0 0 0 0
7 6 5 4 3 2 1 0

Ideia do Algoritmo de Booth para Multiplicacao

= 25

Multiplicao:

Multiplicando = M Multiplicador Produto = M multiplicador = = M (27 25 + 23 20 ) M 27 M 25 + M 23 M 20 M 7 M 5 + M 3 M 0

B = 0 0 0 1 1 1 1 1
7 6 5 4 3 2 1 0

= 24 + 23 + 22 + 21 + 20 = A 1 = 25 1

M 0 1 1 0 0 1 1 1 C = 0 0 0 0 0 0 1 1
7 6 5 4 3 2 1 0

= 2 +2

= 2 1

7 6

D = 0 0 0 1 1 1 0 0
7 6 5 4 3 2 1 0

= BC = (25 1) (22 1) = 25 1 22 + 1 = 25 22

= Idia:

Para cada bloco de bits em 1 consecutivos no multiplicador:

E = 0 1 1 0 0 1 1 1
7 6 5 4 3 2 1 0

= 27 25 + 23 20

Soma multiplicando, devidamente shiftado, ao produto Subtrai multiplicando, devidamente shiftado, ao produto

Exemplos

Algoritmo de Booth

Exemplo 1:

Multiplicao:

Multiplicando = M Multiplicador = 0 0 0 0 0 1 1 1
7 6 5 4 3 2 1 0

multiplicando: n bits multiplicador: n bits produto: 2 n bits

Produto = M 00000111 = (M 23 ) (M 20 ) = (M 3) (M 0)

Inicializao:

Representa multiplicando com 2 n bits, estendendo o sinal Representa multiplicador com n bits Representa produto com 2 n bits, inicializado com o valor 0 Usa um bit extra, denominado bit descartado, inicializado com 0

Exemplo 2:

Multiplicando = M Multiplicador = 0 1 0 0 1 1 1 0
7 6 5 4 3 2 1 0

Produto = M 01001110 = (M 27 ) (M 26 ) + (M 24 ) (M 21 ) = (M 7) (M 6) + (M 4) (M 1)

Repete n iteraes: 1. ... 2. ...

Algoritmo de Booth (continuacao)

Exemplo de Execucao do Algoritmo de Booth

Repete n iteraes: 1. Testa bit menos signicativo do multiplicador e bit descartado: Se so 0 e 0 Ento No faz nada (est entre dois blocos de bits 1s consecutivos) Seno, se so 1 e 1 Ento No faz nada (est dentro de um bloco de bits 1s consecutivos) Seno, se so 1 e 0 Ento Faz produto = produto multiplicando (est comeando um bloco de bits 1s consecutivos) Seno, se so 0 e 1 Ento Faz produto = produto + multiplicando (terminou um bloco de bits 1s consecutivos) 2. Shifta multiplicando 1 bit para a esquerda, inserindo um bit 0 na direita Shifta multiplicador 1 bit para a direita, inserindo um bit 0 na esquerda Guarda o bit desprezado da direita do multiplicador em bit descartado
7

Multiplicando = 0010
Iterao Passo

Multiplicador = 0011
Multiplicador 0011
"

Multiplicando 0000 0010


"

Bit descartado 0
"

Produto 0000 0000 1111 1110


" " "

Inicializao 1 1 2 2 1 2 3 1 2 4 1 2

0000 0100
"

0001
"

1
"

0000 1000
"

0000
"

1
"

0000 0110
" " "

0001 0000
"

0000
"

0
"

0010 0000

0000

Trabalho

Relatorio do Trabalho
1. Circuito multiplicador projetado

Projetar o circuito multiplicador baseado no algoritmo de Booth:


Para multiplicando e multiplicador de 4 bits cada e produto de 8 bits Projeto deve permitir generalizao para n bits Questes a serem denidas no projeto:

Desenhar diagrama de blocos do circuito, com:


Sinais de entrada, de sada e internos, largura em bits dos sinais Mdulos internos, largura em bits dos mdulos internos

2. Controle de operao do circuito implementado

Quais mdulos internos ? Qual a largura em bits dos mdulos ? Precisa de unidade de controle ? Precisa de sinal do clock ?

Circuito possui unidade de controle ?


Se no, por que no precisa ? Se sim, como foi implementada ?


Circuito combinacional ? Mquina de estados ? Moore ou Mealy ?

Implementar no LogiSim o circuito projetado:

3. Multiplicao de nmeros negativos no circuito implementado

Pode usar todos os recursos disponveis no LogiSim, exceto multiplier

Circuito funciona com multiplicando e/ou multiplicador negativos ?


Se sim, fazer exemplo de execuo com operando(s) negativo(s) Se no, possvel modic-lo para funcionar com nmeros negativos ? Descrever modicaes

10

Relatorio do Trabalho (continuacao)


4. Desempenho do multiplicador implementado

Interface do Circuito Multiplicador


Nome do circuito: mult Sinais de entrada:

Uma operao de multiplicao consome quantos ciclos do clock ? Um nico ciclo ou ...

multiplicando : 4 bits multiplicador : 4 bits start : 1 bit clock : 1 bit

5. Melhorias no projeto do circuito

possvel modicar o projeto do multiplicador, para reduzir custo do hardware e/ou melhorar desempenho ? Se sim, descrever modicaes e por que melhora

Sinal de sada:

produto : 8 bits

Comportamento:

11

12

Entrega do Trabalho

Grupos: de 2 alunos Data de entrega: 30 de abril, 2a. feira Submisso no Moodle:

Submeter um nico arquivo trab1.zip, contendo:


Arquivo mult.circ do LogiSim com circuito mult desenvolvido Arquivo relatorio.pdf com:

Nomes dos integrantes do grupo Relatrio do trabalho

Importante:

Circuito desenvolvido deve usar exatamente a interface fornecida de sinais de entrada e sada Correo do circuito ser automtica

13