A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Multiplicação e Divisão Serial Conceitos básicos Moraes/Ney - 07/novembro/2007."— Transcrição da apresentação:

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

2 2 Representações de Inteiros - 4 formas -Exemplo para 4 bits - * polarização = 2 (n-1) =8 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 +0 0 -8 +1 -7 +2 -6 +3 -5 +4 -4 +5 -3 +6 -2 +7 +0 -8 -7 -0 -6 -7 +1 +2 -6 -5 -2 +3 -5 -4 -3 +4-4-3-4 +5 -3 -2 -5 +6 -2 -6 +7 -0 -7 SM 1s 2s BIAS* Configuração Biná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;

3 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. + PA B n nn Deslocamento Vai-um

4 4 A = 11011 (27) B = 00101 (5) Multiplicação A*B PA passo 00000011011 000101110111 2 3 4 5 0001011101 0 0011111101 0 001111110 00 001111110 0 0 00111111 00 0 11011111 00 01101111 00 0 0 0001111 01 0 0 000111 01 0 0 0 135 100 00111

5 5 A = 00110 (6) B = 01100 (12) Multiplicação A*B PA passo 1 2 3 4 5 72 0100 1000

6 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), A 0 =0 else A 0 =1; 4) If (passo 2<0), restaura P fazendo P<-P+B. -+-+ PA B n nn+1 Deslocamento 0 1 n+1 Controle Divisão serial

7 7 A = 11011 (27) B = 00101 (5) Divisão A/B P (conterá o resto)A (conterá a divisão) passo 00000011011 000001101101 00000110110 2 3 4 5 1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A 0 =0 else A 0 =1; 4) If (P<0), restaura P fazendo P P+B

8 8 A = 11011 (27) B = 00101 (5) P (conterá o resto)A (conterá a divisão) passo 00000011011 000001101101 00000110110 000011011002 00001101100 3 4 5 Divisão A/B 1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A 0 =0 else A 0 =1; 4) If (P<0), restaura P fazendo P P+B

9 9 A = 11011 (27) B = 00101 (5) P (conterá o resto)A (conterá a divisão) passo 00000011011 000001101101 00000110110 000011011002 00001101100 000110110003 00000111001 4 5 Divisão A/B 1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A 0 =0 else A 0 =1; 4) If (P<0), restaura P fazendo P P+B 00110 - 00101 = 001

10 10 A = 11011 (27) B = 00101 (5) P (conterá o resto)A (conterá a divisão) passo 00000011011 000001101101 00000110110 000011011002 00001101100 000110110003 00000111001 000011100104 00001110010 5 Divisão A/B 1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A 0 =0 else A 0 =1; 4) If (P<0), restaura P fazendo P P+B

11 11 A = 11011 (27) B = 00101 (5) P (conterá o resto)A (conterá a divisão) passo 00000011011 000001101101 00000110110 000011011002 00001101100 000110110003 00000111001 000011100104 00001110010 000111001005 00001000101 Resto = 2resultado=5 Divisão A/B 1) desloca P&A p/ esq 1 bit; 2) P P-B; 3) If (P<0), A 0 =0 else A 0 =1; 4) If (P<0), restaura P fazendo P P+B

12 12 VHDL entity 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) '0'); regP( N-1 downto 0) <= divisor; regB( N ) <= '0'; regB( N-1 downto 0) <= dividendo; INICIALIZAÇÕES regP(0)<='1'; regP( N*2 downto N) <= diferenca; regP <= regP( N*2-1 downto 0) & regP(N*2); rotação atribuição

13 13 Integração ao MIPS – bloco de controle

14 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 Memória de Dados CY2 IMED OP2 MDR RB RA comparador RB salta x000000 & data HI MULT DIV Lo start_mult_div end_div start_mult_div end_mult result


Carregar ppt "Multiplicação e Divisão Serial Conceitos básicos Moraes/Ney - 07/novembro/2007."

Apresentações semelhantes


Anúncios Google