multiplicação e divisão serial conceitos básicos

14
Multiplicação e Multiplicação e Divisão Serial Divisão Serial Conceitos básicos Conceitos básicos Moraes/Ney - 07/novembro/2007

Upload: orinda

Post on 11-Jan-2016

83 views

Category:

Documents


0 download

DESCRIPTION

Multiplicação e Divisão Serial Conceitos básicos. Moraes/Ney - 07/novembro/2007. Representações de Inteiros - 4 formas. -8. -Exemplo para 4 bits - * polarização = 2 (n-1) =8. BIAS*. +7. -7. 0. 2’s. -1. +1. +0. +6. -6. 1’s. -0. +1. -2. +2. +0. SM. -7. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Multiplicação e  Divisão Serial Conceitos básicos

Multiplicação e Multiplicação e Divisão SerialDivisão Serial

Conceitos básicosConceitos básicos

Moraes/Ney - 07/novembro/2007

Page 2: Multiplicação e  Divisão Serial Conceitos básicos

2

Representações de Inteiros - 4 formas-Exemplo para 4 bits

- * polarização = 2(n-1) =8

00000001

0010

0011

0100

0101

0110

011110001001

1010

1011

1100

11011110

1111

+0

+0

0

-8

+1+1

+1-7

+2+2

+2-6

+3+3

+3-5

+4 +4 +4 -4

+5+5

+5-3+6

+6+6

-2

+7+7

+7-1

+0-8

-7

-0-1

-6-7

+1

+2-6

-5-2+3

-5-4

-3

+4 -4 -3 -4

+5-3

-2-5

+6-2

-1-6

+7-1

-0-7 SM

1’s

2’s

BIAS*

ConfiguraçãoBinária

Bias tem distribuição

uniforme com relação a

binários puros;

Complemento de 2

facilita soma;

Complemento de 1

facilita complementação;

SM é fácil de entender e

separa sinal de valor;

Page 3: Multiplicação e  Divisão Serial Conceitos básicos

3

Multiplicação serial

Solução para a*b: somas sucessivas n passos

Inicialmente, P=0, A=a, B=b. Cada passo, duas partes:– soma carregada em P;– P & A deslocado um bit para a direita.

+

P A

B

n

nn

DeslocamentoVai-um

Page 4: Multiplicação e  Divisão Serial Conceitos básicos

4

A = 11011 (27)B = 00101 (5)

Multiplicação A*B

P Apasso 0 0 0 0 0 0 1 1 0 1 1

0 0 0 1 0 1 1 1 0 1 11

2

3

4

5

0 0 0 1 0 1 1 1 0 100 0 1 1 1 1 1 1 0 10

0 0 1 1 1 1 1 1 0000 0 1 1 1 1 1 1 000

0 0 1 1 1 1 1 10001 1 0 1 1 1 1 1000

1 1 0 1 1 1 100000 0 0 1 1 1 10100

0 0 0 1 1 101000

135 100 00111

Page 5: Multiplicação e  Divisão Serial Conceitos básicos

5

A = 00110 (6)B = 01100 (12)

Multiplicação A*B

P Apasso

1

2

3

4

5

72 0100 1000

Page 6: Multiplicação e  Divisão Serial Conceitos básicos

6

Solução para a/b: subtrações sucessivas, n passos

Cada passo, quatro partes: 1) desloca P&A p/ esq 1 bit; 2) P<- P-B; 3) If (passo 2<0), A0=0 else A0 =1; 4) If (passo 2<0), restaura P fazendo P<-P+B.

-+

P A

B

n

nn+1

Deslocamento

0

1

n+1

n+1

n+1

Controle

Divisão serial

Page 7: Multiplicação e  Divisão Serial Conceitos básicos

7

A = 11011 (27)B = 00101 (5)

Divisão A/B

P (conterá o resto) A (conterá a divisão)passo 0 0 0 0 0 0 1 1 0 1 1

0 0 0 0 0 1 1 0 1 1 010 0 0 0 0 1 1 0 1 1 0

2

3

4

5

1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A0=0 else A0 =1; 4) If (P<0), restaura P fazendo P P+B

Page 8: Multiplicação e  Divisão Serial Conceitos básicos

8

A = 11011 (27)B = 00101 (5)

P (conterá o resto) A (conterá a divisão)passo 0 0 0 0 0 0 1 1 0 1 1

0 0 0 0 0 1 1 0 1 1 010 0 0 0 0 1 1 0 1 1 00 0 0 0 1 1 0 1 1 0 020 0 0 0 1 1 0 1 1 0 0

3

4

5

Divisão A/B

1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A0=0 else A0 =1; 4) If (P<0), restaura P fazendo P P+B

Page 9: Multiplicação e  Divisão Serial Conceitos básicos

9

A = 11011 (27)B = 00101 (5)

P (conterá o resto) A (conterá a divisão)passo 0 0 0 0 0 0 1 1 0 1 1

0 0 0 0 0 1 1 0 1 1 010 0 0 0 0 1 1 0 1 1 00 0 0 0 1 1 0 1 1 0 020 0 0 0 1 1 0 1 1 0 00 0 0 1 1 0 1 1 0 0 030 0 0 0 0 1 1 1 0 0 1

4

5

Divisão A/B

1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A0=0 else A0 =1; 4) If (P<0), restaura P fazendo P P+B

00110 - 00101 = 001

Page 10: Multiplicação e  Divisão Serial Conceitos básicos

10

A = 11011 (27)B = 00101 (5)

P (conterá o resto) A (conterá a divisão)passo 0 0 0 0 0 0 1 1 0 1 1

0 0 0 0 0 1 1 0 1 1 010 0 0 0 0 1 1 0 1 1 00 0 0 0 1 1 0 1 1 0 020 0 0 0 1 1 0 1 1 0 00 0 0 1 1 0 1 1 0 0 030 0 0 0 0 1 1 1 0 0 10 0 0 0 1 1 1 0 0 1 040 0 0 0 1 1 1 0 0 1 0

5

Divisão A/B

1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A0=0 else A0 =1; 4) If (P<0), restaura P fazendo P P+B

Page 11: Multiplicação e  Divisão Serial Conceitos básicos

11

A = 11011 (27)B = 00101 (5)

P (conterá o resto) A (conterá a divisão)passo 0 0 0 0 0 0 1 1 0 1 1

0 0 0 0 0 1 1 0 1 1 010 0 0 0 0 1 1 0 1 1 00 0 0 0 1 1 0 1 1 0 020 0 0 0 1 1 0 1 1 0 00 0 0 1 1 0 1 1 0 0 030 0 0 0 0 1 1 1 0 0 10 0 0 0 1 1 1 0 0 1 040 0 0 0 1 1 1 0 0 1 00 0 0 1 1 1 0 0 1 0 050 0 0 0 1 0 0 0 1 0 1

Resto = 2 resultado=5

Divisão A/B

1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A0=0 else A0 =1; 4) If (P<0), restaura P fazendo P P+B

Page 12: Multiplicação e  Divisão Serial Conceitos básicos

12

VHDLentity divide is generic(N: integer := 16); port( divisor: in std_logic_vector( (N-1) downto 0); dividendo: in std_logic_vector( (N-1) downto 0); clock,start : in std_logic; endop : out std_logic; divisao : out std_logic_vector( N-1 downto 0); resto : out std_logic_vector( N-1 downto 0));end;

architecture rtl of divide is type State_type is (inicializa, desloca, calc, fim); signal EA: State_type; signal regP : std_logic_vector( N*2 downto 0); signal regB : std_logic_vector( N downto 0); signal diferenca : std_logic_vector( N downto 0); signal itershift: std_logic_vector( N downto 0); begin

regP( N*2 downto N) <= (others=>'0');regP( N-1 downto 0) <= divisor;regB( N ) <= '0'; regB( N-1 downto 0) <= dividendo;

INICIALIZAÇÕESregP(0)<='1';regP( N*2 downto N) <= diferenca;

regP <= regP( N*2-1 downto 0) & regP(N*2);

rotação

atribuição

Page 13: Multiplicação e  Divisão Serial Conceitos básicos

13

Integração ao MIPS – bloco de controle

Reset=’1’ (todos os

registradores são zerados)

Swbk wreg wpc

Sfetch CY1

Sld ce wmdr

IR=LBU/LW

Sst rw0, ce, wpc bw0 se IR=SB

Ssalta wpc wreg se IR=JAL/JALR

Sreg CY2 Init_mul se IR=MULTU

IR=SB/ SW IR =J/JAL/JALR/JR /BEQ/

BGEZ/BLEZ/BNE

Sidle

Salu wAlu

Caso geral

Reset=’1’

Reset=’0’

IR=(MULTU e End_mul=’0’) ou (DIVU e End_div=’0’) (IR=MULTU e End_mul=’1’)

ou (IR=DIVU e End_div=’1’)

wpc

Page 14: Multiplicação e  Divisão Serial Conceitos básicos

14

Integração ao MIPS – bloco de dados

wmdr

CY2

RB

CY2

RA

ce rw bw

D_address

ce/rw

outalu

walu

AL

U

RALU

OP1

data

Me

ria

de

D

ad

os

CY2

IMED

OP2

MDR

RBRA comparador

RB

salta

x“000000” & data

HIMULT

DIV Lo

start_mult_div end_div

start_mult_div end_mult

result