Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Circuitos combinacionais Multiplexadores (seletores) Multiplexadores de 1 bit podem ser usados para implementar equações booleanas Implementam a função do circuito diretamente a partir da tabela verdade O número de entradas da equação a ser implementada deve ser igual ao número de bits de seleção do multiplexador Multiplexador 4:1 (2 bit de seleção): implementa qualquer equação imaginável de 2 variáveis Multiplexador 8:1 (3 bit de seleção): implementa qualquer equação imaginável de 3 variáveis Multiplexador 16:1 (4 bit de seleção): implementa qualquer equação de imaginável 4 variáveis Circuitos combinacionais Multiplexadores (seletores) Igualdade de 2 números de 2 bits A: A1 A0 B: B1 B0 Igual ← 1 quando A = B, senão 0 = Iguais A B 2 2 Circuitos combinacionais Multiplexadores (seletores) Igualdade de 2 números de 2 bits A1 A0 B1 B0 Iguais 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 Pode ser implementado usando um único multiplexador 16:1 (4 bits de seleção) Circuitos combinacionais Multiplexadores (seletores) Igualdade de 2 números de 2 bits A1 A0 B1 B0 Iguais 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 Pode ser implementado usando um único multiplexador 16:1 (4 bits de seleção) Circuitos combinacionais Multiplexadores (seletores) Contador de 1s Circuito cuja saída apresenta em binário o número de entradas em 1 X ← número de bits iguais a 1 Exemplos: a=1, b=0, c=1 → X = 2 a=1, b=1, c=1 → X = 3 Contador de 1s a b c X 2 Circuitos combinacionais Multiplexadores (seletores) Contador de 1s Circuito cuja saída apresenta em binário o número de entradas em 1 X ← número de bits iguais a 1 Exemplos: a=1, b=0, c=1 → X = 2 a=1, b=1, c=1 → X = 3 a b c X1 X0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 Pode ser implementado usando 2 multiplexadores 8:1 (3 bits de seleção) Circuitos combinacionais Multiplexadores (seletores) Contador de 1s Circuito cuja saída apresenta em binário o número de entradas em 1 X ← número de bits iguais a 1 Exemplos: a=1, b=0, c=1 → X = 2 a=1, b=1, c=1 → X = 3 a b c X1 X0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 Pode ser implementado usando 2 multiplexadores 8:1 (3 bits de seleção) Circuitos combinacionais Somador de 2 bits com detecção de overflow A1 A0 B1 B0 S1 S0 V 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 0 1 0 0 0 1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 1 1 1 X X 1 1 0 0 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 X X 1 1 0 1 1 X X 1 1 1 0 0 1 1 0 1 1 0 1 X X 1 1 1 1 0 X X 1 1 1 1 1 X X 1 S1 B1B0 A1A0 00 01 11 10 00 0 0 1 1 01 0 1 X 1 11 1 X X X 10 1 1 X X S0 B1B0 A1A0 00 01 11 10 00 0 1 1 0 01 1 0 X 1 11 1 X X X 10 0 1 X X S1 = A1 + B1 + A0 . B0 S0 = !A0.B0 + A0.!B0 Circuitos combinacionais Somador de 2 bits com detecção de overflow A1 A0 B1 B0 S1 S0 V 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 0 1 0 0 0 1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 1 1 1 X X 1 1 0 0 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 X X 1 1 0 1 1 X X 1 1 1 0 0 1 1 0 1 1 0 1 X X 1 1 1 1 0 X X 1 1 1 1 1 X X 1 V B1B0 A1A0 00 01 11 10 00 0 0 0 0 01 0 0 1 0 11 0 1 1 1 10 0 0 1 1 V = A1.B1 + A1.A0.B0 + A0.B1.B0 Circuitos combinacionais Somador de 2 bits com detecção de overflow A1 A0 B1 B0 S1 S0 V 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 0 1 0 0 0 1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 0 0 1 1 1 X X 1 1 0 0 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 X X 1 1 0 1 1 X X 1 1 1 0 0 1 1 0 1 1 0 1 X X 1 1 1 1 0 X X 1 1 1 1 1 X X 1 Circuitos combinacionais O projeto de somadores grandes a partir da tabela verdade torna-se inviável Exemplo: somador de 4 bits Entradas 4 bits para operando A 4 bits para operando B Total: 8 bits de entrada Tabela verdade: 256 linhas (28) A tabela verdade de um somador de 8 bits teria 65536 linhas (216) A tabela verdade de um somador de 16 bits teria mais de 4 bilhões de linhas (232) e milhões de portas lógicas! Circuitos combinacionais O projeto de somadores deve seguir uma abordagem baseada em blocos Cada bloco é um pequeno somador de 1 bit A partir da interconexão de somadores de 1 bit, cria-se somadores de n bits Mesma idéia de criar decodificadores/multiplexadores maiores a partir de decodificadores/multiplexadores menores Circuitos combinacionais 13 Relembrando a uma soma de binária em 4 bits (números em representação direta) 01112 (7) + 01012 (5) 13 Circuitos combinacionais 14 Relembrando a uma soma de binária em 4 bits (números em representação direta) 0 1 1 1 01112 (7) + 01012 (5) 11002 (12) Inicialmente vamos nos concentrar em construir um circuito que efetue a soma dos dois bits em destaque acima Este circuito tem duas saídas 1 bit de soma 1 bit de carry (vai um) A B S C HA 14 Circuitos combinacionais Meio somador (half adder) Soma dois números de 1 bit Gera um bit de soma e um bit de carry A B C S 0 0 0 1 1 0 1 1 A B S C HA Circuitos combinacionais Meio somador (half adder) Soma dois números de 1 bit Gera um bit de soma e um bit de carry A B C S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 C = A.B S = !A.B + A.!B S = A B A B S C HA Circuitos combinacionais 17 Relembrando a uma soma de binária em 4 bits (números em representação direta) 0 1 1 1 01112 (7) + 01012 (5) 11002 (12) O meio somador realiza a soma dos bits menos significativos 17 Circuitos combinacionais 18 Necessita-se agora de um circuito que some 3 números de 1 bit A + B + carry Este circuito também tem duas saídas 1 bit de soma 1 bit de carry (vai um) Relembrando a uma soma de binária em 4 bits (números em representação direta) 0 1 1 1 01112 (7) + 01012 (5) 11002 (12) A B S Co Ci FA 18 Circuitos combinacionais Somador completo (full adder) Soma três números de 1 bit Gera um bit de soma e um bit de carry A B Ci Co S 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 A B S Co Ci FA 19 Circuitos combinacionais Somador completo (full adder) Soma três números de 1 bit Gera um bit de soma e um bit de carry A B Ci Co S 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 Co Ci A B 0 1 00 0 0 01 0 1 11 1 1 10 0 1 Co = A.B + A.Ci + B.Ci S = A B Ci Porta XOR de 3 entradas A B S Co Ci FA 20 Circuitos combinacionais Somador completo (full adder) Soma três números de 1 bit Gera um bit de soma e um bit de carry A B Ci Co S 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 Co Ci A B 0 1 00 0 0 01 0 1 11 1 1 10 0 1 Co = A.B + A.Ci + B.Ci S = A B Ci Porta XOR de 3 entradas 21 Circuitos combinacionais 22 Relembrando a uma soma de binária em 4 bits (números em representação direta) 0 1 1 1 01112 (7) + 01012 (5) 11002 (12) Mais dois somadores completos são usados para somar os demais bits Observe que o circuito imita a forma como a soma é feita manualmente (uma coluna de cada vez) 22 Circuitos combinacionais 23 Relembrando a uma soma de binária em 4 bits (números em representação direta) 0 1 1 1 01112 (7) + 01012 (5) 11002 (12) S0 S1 S2 S3 A0 A1 A2 A3 B0 B1 B2 B3 FA FA FA HA 23 Circuitos combinacionais Somador paralelo Somador de n bits construído a partir de n somadores de 1 bit Estrutura criada a partir da interconexão dos carries (carry out e carry in) Exemplo: somador de 4 bits S = A + B A: A3 A2 A1 A0 B: B3 B2 B1 B0 S: S3 S2 S1 S0 Somador A B S 4 4 4 4 4 4 S = A + B Soma aritmética! 24 Circuitos combinacionais Somador paralelo Somador de 4 bits 3 somadores completos (full adder) 1 meio somador (half adder) A0 B0 S0 HA A1 B1 S1 FA A2 B2 S2 FA A3 B3 S3 FA Exemplo: 9 + 5 10012 + 01012 1 1 0 0 0 1 0 1 0 1 1 0 1 0 1 0 4 4 4 14 25 Circuitos combinacionais Somador paralelo Somador de 4 bits Logisim 26 Circuitos combinacionais Somador paralelo Somador de 4 bits usando apenas somadores completos (full adders) A1 B1 S1 FA A2 B2 S2 FA A3 B3 S3 FA A0 B0 S0 FA 0 Carry out Carry in 4 4 4 Carry out Carry in 27 Circuitos combinacionais Somador paralelo Existem várias outras implementações de somadores paralelos O somador paralelo visto é conhecido como Ripple Carry. Ele é caracterizado pela propagação do bit de carry de um somador até o próximo, da maneira como efetuamos em uma soma manual 28 Circuitos combinacionais Processador MIPS Organização/Arquitetura de computadores Circuitos combinacionais Somador paralelo Preencher os valores de S de acordo com as entradas X e Y X1 X0 Y1 Y0 S 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 Valores em decimal 30 Circuitos combinacionais Somador paralelo Preencher os valores de S de acordo com as entradas X e Y X1 X0 Y1 Y0 S 0 0 0 0 46 0 0 0 1 35 0 0 1 0 57 0 0 1 1 79 0 1 0 0 35 0 1 0 1 24 0 1 1 0 46 0 1 1 1 68 1 0 0 0 57 1 0 0 1 46 1 0 1 0 68 1 0 1 1 90 1 1 0 0 79 1 1 0 1 68 1 1 1 0 90 1 1 1 1 112 Valores em decimal 31 Circuitos combinacionais Somador paralelo Criar um somador de 8 bits a partir de somadores de 1 bit 8 8 8 Carry out 32 Circuitos combinacionais Somador paralelo Somador de 8 bits a partir de 2 somadores de 4 bits 4 4 4 4 4 4 Carry out (3:0) (3:0) (7:4) (7:4) (3:0) (7:4) A: 00001100 B: 11101011 1011 1100 1110 0000 0111 1111 S: 11110111 33 Circuitos combinacionais Somador paralelo Somador de 16 bits a partir de 2 somadores de 8 bits 8 8 8 8 8 8 Carry out (7:0) (7:0) (15:8) (15:8) (7:0) (15:8) 34 Circuitos combinacionais Somador paralelo Somador de 16 bits a partir de 4 somadores de 4 bits 4 4 4 4 4 4 Carry out (11:8) (11:8) (15:12) (15:12) (11:8) (15:12) 4 4 4 4 4 4 (3:0) (3:0) (7:4) (7:4) (3:0) (7:4) 35 Circuitos combinacionais Somador paralelo Somador de 4 bits + decodificador BCD-7 segmentos 36 Circuitos combinacionais Somador paralelo Somador de 4 bits + decodificador BCD-7 segmentos + multiplexador 37 Circuitos combinacionais Somador paralelo Somador de 4 bits para somar 3 números S = A + B + C 38 Circuitos combinacionais Somador paralelo Somador de 4 bits para somar 4 números S = A + B + C + D 39 Circuitos combinacionais Somadores Meio somador (half adder) Somador de 1 bit Soma dois números de 1 bit de largura Somador completo (full adder) Somador de 1 bit Soma três números de 1 bit de largura Somador paralelo (Ripple Carry): Somador de n bits É construído a partir de n somadores de 1 bit (half/full adders) Soma dois números de n bits 40
Compartilhar