Eletrônica Digital

Eletrônica Digital

(Parte 1 de 2)

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

Capítulo VI Circuitos Aritméticos

1 Introdução

No capítulo anterior estudamos a soma e subtração de números binários. Neste capítulo estudaremos como as operações aritméticas de soma e subtração entre números binários podem ser implementadas através da combinação de funções lógicas. Quando reunidas em um único CI , estas funções lógicas aritméticas constituem uma Unidade Lógica e Arimética (ULA). Uma ULA é um bloco funcional fundamental em um microprocessador.

2 Meio Somador •••• Conforme vimos no Capítulo V as regras básicas para adição binária são:

1011=+ →O “1” no resultado é o “vai-um” (carry) gerado por ter sido esgotado a capacidade de contagem. O carry deve ser acrescentado à soma dos bits imediatamente mais significativos à esquerda daqueles que deram origem ao carry .

•••• Estas operações são realizadas por um circuito lógico denominado Meio-Somador (half – adder).

•••• Um meio-somador recebe dois bits de entrada Ae B e produz dois bits de saída: o bit de soma BA+=Σ e o bit de carry outC, conforme mostram as Figuras 1 e 2 e a Tabela 1 a seguir:

Figura 1: Símbolo lógico de um meio-somador.

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

Tabela 1: Tabela Verdade de um meio-somador.

Figura 2: Diagrama lógico de um meio-somador.

3 Somador Inteiro

•••• Um Somador Inteiro (full-adder) recebe 3 bits de entrada A,B, e inC (o último correspondendo a eventual carry gerado na operação com bits menos significativos) e produz dois bits de saída: o bit de soma BA+=Σ e o bit de carry outC, conforme mostram as Figuras 3 a 5 e a Tabela 2 a seguir:

Figura 3: Símbolo lógico de um somador inteiro.

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

Tabela 2: Tabela Verdade de um somador inteiro. Note que a tabela obedece as regras para soma binária com carry, estudada no capítulo anterior.

Figura 4: (a) Lógica necessária para formar a soma dos bits de entrada AeB com o carry de entrada inC. (b) Diagrama lógico do somador inteiro, composto pelos meio-somadores I e I, o qual implementa a Tabela 2 (verifique).

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

Figura 5: (a) Diagrama lógico alternativo representando um somador inteiro implementado a partir de 2 meio-somadores. (b) Símbolo lógico do somador inteiro resultante.

Exemplo 1: Determine as saídas Σ e outC para as situações de entrada do somador inteiro mostrado na Figura 6.

Figura 6: Somador inteiro com situações de entrada distintas. Solução:

(a) Σ = 1 + 0 + 0 = 1 com carry 0=outC

(b) Σ = 1 + 1 + 0 = 0 com carry 1=outC (c) Σ = 1 + 0 + 1 = 0 com carry 1=outC

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

4 Somadores de Palavras Binárias

•••• Para somar palavras binárias de N bits é necessário colocar em paralelo N somadores inteiros, conforme mostram as Figuras 7,8 e 9:

Figura 7: Somador para palavras binárias de 2 bits.

Figura 8: Soma dos números 101 e 011 através de um somador de 3 bits.

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

Figura 9: Somador para palavras binárias de 4 bits. (a) Diagrama de blocos (b) Símbolo lógico.

•••• A tabela verdade para o n-ésimo somador inteiro de um somador de palavras binárias de N bits é:

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

Tabela 3: Tabela Verdade para o n-ésimo somador inteiro de um somador de palavras binárias de N. Note que a tabela é idêntica à Tabela 2.

5 Somadores Ripple Carry × Somadores Look-ahead Carry

•••• O somador mostrado na Figura 9(a) é um somador do tipo Ripple Carry, o qual maneja os bits de carry da mesma maneira que efetuamos em uma soma manual:

•••• Ou seja, 4C não será determinado antes que cada coluna tenha sido formada. Note que cada coluna representa a ação do respectivo somador inteiro na Figura 9(a).

⇒⇒⇒⇒ Isto significa que o Tempo de Propagação (já estudado no Capítulo IV) das portas será acumulado, atrasando a determinação de 4C. É dito que o bit de carry fica “ondulando” entre os somadores inteiros (daí o nome ripple – ondulação) e, portanto, atrasa a definição do resultado da soma.

•••• Para evitar este efeito de atraso, um somador Look-Ahead Carry efetua a operação de adição obtendo o bit de carry diretamente a partir dos bits de entrada, sem precisar a definição dos bits de saída de cada somador inteiro:

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

Figura 10: Somador Look-Ahead Carry para palavras binárias de 4 bits. As portas no interior do retângulo cinza são as responsáveis pela obtenção do bits de carry diretamente a partir dos bits de entrada.

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

Figura 1: Operação do somador Look-Ahead Carry para palavras binárias de 4 bits. É mostrado os valores lógicos gerados no circuito quando são somados

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

6 Implementação em MSI (Medium Scale Integration)

•••• A Figura 12 a seguir mostra os diagramas de dois CIs MSI para a implementação da função somador Look-Ahead Carry para palavras de 4 bits:

Figura 12: TTL 7483 e TTL 74283, somadores Look-Ahead Carry para palavras binárias de 4 bits. (a) Pinagem (b) Diagrama lógico. Ambos os CIs são funcionalmente idênticos, diferindo apenas na pinagem.

•••• A Tabela 4 mostra os Tempos de Propagação destes somadores:

Tabela 4: Tempos de Propagação dos CIs TTL 74283 e 7483 - somadores Look-Ahead Carry para palavras de 4 bits.

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

7 Operação em Cascata de Somadores

Figura 13: (a) Operação em cascata de somadores de 4 bits para formar um somador de 8 bits. (b) Operação em cascata de somadores de 4 bits para formar um somador de 16 bits.

8 Somador/Subtrator

•••• Estudamos no Capítulo V que a subtração BA− entre duas palavras binárias A e B é executada atarvés da operação {}BAIIC+ onde {}⋅IIC é o operador denominado Complemento de 2. A operação {}⋅IIC é equivalente a acrescentar o sinal “ – ” ao número binário.

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

•••• Vimos que a operação {}BIIC efetuada sobre uma palavra binária B é dada por {}{}1+=BIC , onde {}BIC é a operação de inversão (NOT) do valor lógico de cada bit da palavra binária B (operação conhecida como Complemento de 1).

Que resulta em:

prosseguindo:

carry odescartar

••••Vimos também que, alternativamente, podemos implementar a operação

{}BIIC através do seguinte procedimento: Efetuamos a leitura da palavra binária B da direita para a esquerda até encontrarmos o primeiro “1” e a seguir invertemos o valor lógico de todos os bits à esquerda do primeiro “1”.

••••Por exemplo, supondo que queremos achar o Complemento de 2 do número binário 10222=10110=A através da técnica descrita no parágrafo anterior obtemos diretamente {}01010=10110IIC.

•••• Portanto, a operação BA− pode ser efetuada em um somador através operação {}BAIIC+, conforme mostra a Figura 14:

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

Figura 14: Se 0=Controle, é executada a operação BA+ conforme discutido em parágrafos anteriores, sendo A e B números de 4 bits. Se 1=Controle então é executada a operação BA− através de

portas XOR 1-4 efetuam a operação {}BIC. Note também que nesta situação o Complemento de 2 de B é efetuado através de {}{}0+=CBBIIICC, onde 1==0 ControleC .

•••• O circuito completo de um Somador/Subtrator para palavras de 4 bits é obtido quando definimos o modo em que o circuito irá administrar as situações de 1) overflow e 2) resultado negativo.

•••• Para tanto, vamos experimentalmente fazer operações entre números de 4 bits que gerem as situações 1) e 2), procurando inferir a lógica da operação:

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

(b) Operação 1010104−=9−5=−BANote que quando o carry 0=4C

1=4C significa que os 4 bits do resultado representam um número positivo.

significa que os 4 bits do resultado representam um número negativo, e que, para obtermos a magnitude deste número de 4 bits basta efetuar o Complemento de 2 do resultado (em verde na figura).

(b) Operação 10101013−=15−2=−BANote que quando o carry 0=4C

1=4C significa que os 4 bits do resultado representam um número positivo.

significa que os 4 bits do resultado representam um número negativo, e que, apesar de ter ocorrido overflow na aritmética de 4 bits em Complemento de 2, para obtermos a magnitude deste número de 4 bits basta efetuar o Complemento de 2 do resultado (em verde na figura).

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

•••• Portanto, as Figuras 15 e 16 sugerem o seguinte circuito sinalizador para resultado negativo:

Figura 17: Se 1=Controle (operação BA−) e se simultaneamente 0=4C (resultado negativo) o LED acende, indicando um número negativo.

•••• Vimos na análise da Figura 16 que quando o carry 0=4C os 4 bits do resultado representam um número negativo e que para obtermos a magnitude deste número de 4 bits basta efetuar o Complemento de 2 do resultado, independentemente de ter ocorrido overflow ou não. Portanto a Figura 16 sugere o seguinte circuito para obtenção da magnitude do resultado de 4 bits (o sinal é indicado pelo LED da Figura 17):

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

Figura 18: Circuito para obtenção da magnitude do resultado de 4 bits do 1° CI 7483 através da operação Complemento de 2 efetuada pelas portas XOR 5-8 em conjunto com o 2° CI 7483.

•••• Tendo definido o modo em que o circuito Somador/Subtrator administra as situações de overflow e resultado negativo, o circuito completo fica sendo:

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

Figura 19: Circuito completo do Somador/Subtrator de palavras de 4 bits em aritmética Complemento de 2.

Exemplo 2: Determine o valor lógico em cada entrada/saída das portas e dos CIs 7483 na Figura 19, bem como o estado do LED, quando a operação

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

Figura 20: Valor lógico em cada entrada/saída das portas e dos CIs 7483 na Figura 19 quando a operação efetuada é 10101014=9+5=+BA.

Exemplo 3: Determine o valor lógico em cada entrada/saída das portas e dos CIs 7483 na Figura 19, bem como o estado do LED, quando a operação

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

Figura 21: Valor lógico em cada entrada/saída das portas e dos CIs 7483 na Figura 19 quando a operação efetuada é 1010104=5−9=−BA.

Exemplo 4: Determine o valor lógico em cada entrada/saída das portas e dos CIs 7483 na Figura 19, bem como o estado do LED, quando a operação

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

Figura 2: Valor lógico em cada entrada/saída das portas e dos CIs 7483 na Figura 19 quando a operação efetuada é 1010104−=9−5=−BA.

9 Somador BCD

•••• Estudamos no Capítulo I que o código BCD (Binary Coded Decimal) expressa cada dígito de um número decimal por uma palavra binária de 4 bits

(Nibble) no formato 0123bbbbatravés da relação:

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

Tabela 5: Tabela para conversão de um nibble BCD em um algarismo decimal.

Note que existem 6 nibbles inválidos na contagem da tabela, porque com 4 bits é possível contar de 0 a 15 mas o código BCD só representa algarismos decimais de 0 a 9.

•••• Por exemplo, o número binário 010101111000 codificado em BCD, quando convertido para decimal resulta em

•••• Quando efetuamos a soma de dois números binários A e B codificados em BCD é necessário levar em consideração a existência dos 6 nibbles inválidos mostrados na Tabela 5.

•••• Consideremos os seguintes exemplos:

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

♦ Note que não ocorre overflow na aritmética BCD (8 está dentro da faixa 0-9) e portanto o nibble resultante é um número BCD válido.

♦ Ocorre overflow na aritmética BCD (13 está fora da faixa 0-9) e portanto o nibble resultante é um número BCD inválido.

⇒⇒⇒⇒ Daí, é necessário somar 6 ao resultado para compensar a contagem dos 6 nibbles inválidos da Tabela 5:

⇒⇒⇒⇒ Note que, após a soma de 6 ao nibble inválido, o novo resultado expressa corretamente 1013 01 =0001 em BCD.

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

♦ Ocorre overflow na aritmética BCD (17 está fora da faixa 0-9) e portanto o nibble resultante é um número BCD inválido. Observe que ocorreu um carry

⇒⇒⇒⇒ Somando 6 ao resultado:

⇒⇒⇒⇒ Note que, após a soma de 6 ao nibble inválido, o novo resultado expressa corretamente 1017 0111 =0001 em BCD.

♦♦♦♦ Os exemplos anteriores mostram que é necessário somar 6 ao resultado da operação BA+ quando:

! Ocorre um carry 1=4C no resultado da operação BA+ OU

! O resultado da operação BA+é um dos 6 nibbles inválidos da Tabela 5.

⇒⇒⇒⇒ Mas, a análise da Tabela 5 mostra que os 6 nibbles inválidos ou são da forma

ou são da forma

não havendo nenhuma outra possibilidade para sua representação. Lembre que X representa valor lógico irrelevante (don’t care).

♦♦♦♦ Portanto é necessário somar 6 ao resultado da operação BA+em BCD somente quando:

! Ocorre um carry 1=4C no resultado da operação BA+ OU

! O resultado da operação BA+é da forma

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

OU ! O resultado da operação BA+é da forma

•••• A discussão nos parágrafos anteriores sugere o seguinte circuito para efetuar a soma BCD:

Figura 23: Circuito Somador BCD para palavras de 4 bits.

Exemplo 5: Determine o valor lógico em cada entrada/saída das portas e dos CIs 7483 na Figura 23 quando a operação efetuada é

PUCRS – Faculdade de Engenharia Elétrica – Departamento de Engenharia Elétrica

Eletrônica DigitalCap. VI por F.C.C. De Castro

Figura 24: Valor lógico em cada entrada/saída das portas e dos CIs 7483 na Figura 23 quando a operação efetuada é 10101012=3+9=+BA.

Exemplo 6: Determine o valor lógico em cada entrada/saída das portas e dos CIs 7483 na Figura 23 quando a operação efetuada é

(Parte 1 de 2)

Comentários