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

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

Multiplicação e Divisão Serial Moraes/Ney - 07/novembro/2007

Apresentações semelhantes


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

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

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

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. Deslocamento Vai-um P A n n + B n

4 Multiplicação A*B 135  100 00111 A = 11011 (27) B = 00101 (5) P A 1 1
passo 1 1 1 1 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1

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

6 Divisão serial - + 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. Deslocamento n+1 P A n+1 n - + n+1 n+1 B Controle 1 n

7 Divisão A/B A = 11011 (27) B = 00101 (5) P (conterá o resto)
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 A = (27) B = (5) P (conterá o resto) A (conterá a divisão) passo 1 1 1 1 1 1 1 1 1 1 2 3 4 5

8 Divisão A/B A = 11011 (27) B = 00101 (5) P (conterá o resto)
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 A = (27) B = (5) P (conterá o resto) A (conterá a divisão) passo 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 3 4 5

9 Divisão A/B A = 11011 (27) B = 00101 (5) P (conterá o resto)
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 A = (27) B = (5) P (conterá o resto) A (conterá a divisão) passo 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 3 1 1 1 1 1 4 5 = 001

10 Divisão A/B A = 11011 (27) B = 00101 (5) P (conterá o resto)
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 A = (27) B = (5) P (conterá o resto) A (conterá a divisão) passo 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 4 1 1 1 1 1 5

11 Divisão A/B A = 11011 (27) B = 00101 (5) P (conterá o resto)
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 A = (27) B = (5) P (conterá o resto) A (conterá a divisão) passo 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 4 1 1 1 1 1 1 1 1 5 1 1 1 1 1 Resto = 2 resultado=5

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

13 Integração ao MIPS – bloco de controle

14 Integração ao MIPS – bloco de dados
wmdr CY2 RB RA ce rw bw D_address ce/rw outalu walu AL U RALU OP1 data Memória de Dados IMED OP2 MDR comparador salta x“000000” & data HI MULT DIV Lo start_mult_div end_div end_mult result


Carregar ppt "Multiplicação e Divisão Serial Moraes/Ney - 07/novembro/2007"

Apresentações semelhantes


Anúncios Google