(4453A-02) Prof. Dr. Fabian Vargas - politecnica.pucrs.brCKT-DIG)-2017-02.pdf · A conversão de...
Transcript of (4453A-02) Prof. Dr. Fabian Vargas - politecnica.pucrs.brCKT-DIG)-2017-02.pdf · A conversão de...
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
1
Índice
1. SISTEMAS NUMÉRICOS
1.1 Caracterização dos Sistemas Numéricos
1.2 Sistemas Numéricos em uma Base B Qualquer
1.2.1 Sistema de Numeração Decimal 1.2.2. Sistema de Numeração Binário 1.2.3 Sistema Octal 1.2.4 Sistema Hexadecimal
1.3 Conversão de Números Inteiros
1.3.1 Conversão de Binário em Decimal 1.3.2 Conversão de Decimal em Binário 1.3.3 Conversão de Octal em Binário 1.3.4 Conversão de Binário em Octal 1.3.5 Conversão de Octal em Decimal 1.3.6 Conversão Decimal para Octal 1.3.7 Conversão Hexa para Binário 1.3.8 Conversão Binária para Hexa
1.4 Conversão de Números Fracionários
1.4.1 Conversão de Números Binários Fracionários em Decimal 1.4.2 Conversão de Número Decimal Fracionário em Binário
2. PORTAS LÓGICAS E EXPRESSÕES BOOLEANAS
BÁSICAS
2.1. Portas Lógicas
2.1.1. Porta OR 2.1.2. Porta AND 2.1.3. Porta NOT
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
2
2.1.4. Porta NOR 2.1.5. Porta NAND 2.1.6. Porta XOR 2.1.7. Porta XNOR
2.2. Diagramas de Tempo
2.3. Universalidade das Portas NAND E NOR
2.3.1. Universalidade das Portas NAND
2.3.2. Universalidade das Portas NOR
2.4. Expressões Booleanas
2.4.1. Equação Booleana a partir do Diagrama de Portas
Lógicas
2.5. Obtenção do Circuito a partir das Equações Booleanas
2.6. Obtenção das Expressões Booleanas a partir da Tabela Verdade
2.7. Obtenção da Tabela Verdade a partir de uma Descrição
3. ÁLGEBRA BOOLEANA
3.1. Leis
3.2. Regras
3.3. Teoremas de DeMorgan
4. CIRCUITOS COMBINACIONAIS
4.1. Introdução aos Circuitos Combinacionais 4.2. Unidade Lógica de 1 Bit 4.3. Somador Parcial / Somador Completo 4.4. Bit-Slice de uma ULA para 4 Operações 4.5. ULA de 32 Bits para 4 Operações 4.6. Somador Carry Lookahead
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
3
1. SISTEMAS NUMÉRICOS
1.1. Caracterização dos Sistemas Numéricos
Todos nós, quando ouvimos pronunciar a palavra números,
automaticamente a associamos ao sistema decimal com o qual estamos
acostumados a operar. Este sistema está fundamentado em certas regras que são
base para qualquer outro. Vamos, portanto, estudar estas regras e aplicá-las aos
sistemas de numeração binária, octal e hexadecimal. Estes sistemas são
utilizados em computadores digitais, circuitos lógicos em geral e no
processamento de informações dos mais variados tipos.
1.2. Sistemas Numéricos em uma Base B Qualquer
1.2.1. Sistema de Numeração Decimal
Entre os sistemas numéricos existentes, o sistema decimal é o mais
utilizado. Os elementos são agrupados de dez em dez e, por essa razão, os
números podem ser expressos por intermédio de potência de dez e recebem o
nome de sistema de numeração decimal.
Dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9
Base 10
Organização posicional:
486 = 400 + 80 + 6 = 4 x 100 + 8 x 10 + 6 x 1 = 4 x 102 + 8 x 101 + 6 x 100,
ou seja:
486 = 4 x 102 + 8 x 101 + 6 x 100
Note que aquele algarismo situado na extrema esquerda do número está
sendo multiplicado pela potência de dez maior, ou seja, é o dígito mais
significativo (most significant digit – MSD).
Analogamente, o que está situado na extrema direita será multiplicado
pela menor potência, ou seja, é o dígito menos significativo (least significant digit –
LSD).
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
4
1.2.2. Sistema de Numeração Binário
Os atuais computadores processam suas operações em um sistema
diferente do decimal, o sistema binário.
O sistema binário corresponde a qualquer conjunto dual, como por
exemplo: não e sim; falso e verdadeiro; desligado e ligado; negativo e positivo
falso e verdadeiro, etc. Nos circuitos lógicos, 0 e 1 representam respectivamente
níveis de tensão baixa e alto ou estados de saturação e corte de transistores. Daí,
uma outra designação comum: L e H ( Low e High levels do inglês: baixo e alto
níveis de tensão).
Na seqüência binária, cada digito é chamado de BIT (Binary Digit).
Dígitos: 0 e 1
Base 2
Organização posicional:
10101 = 1x24 + 0x23 + 1x22 + 0x21 + 1x20
Números são expressos como somas de potências de 2 (a base do
sistema binário)
MSB (bit mais significativo): Bit mais a esquerda.
LSB (bit menos significativo): Bit mais a direita.
Agrupamento de dados:
4 bits: NIBBLE.
8 bits: BYTE.
1.2.3. Sistema Octal
É utilizado por ser um sistema que tem relação direta com o sistema
binário.
Para representação de um número no sistema octal, considera-se três
dígitos binários. Assim, o maior dígito que pode ser representado neste sistema é
111 ou em decimal 7.
Dígitos: 0, 1, 2, 3, 4, 5, 6 e 7
Base 8
Organização posicional:
108 = 1x81 + 0x80 = 8+0 = 810
Números são expressos como somas de potências de 8 (a base do
sistema octal)
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
5
MSB (bit mais significativo): Bit mais a esquerda.
LSB (bit menos significativo): Bit mais a direita.
1.2.4. Sistema Hexadecimal
O sistema hexadecimal (hexa) foi criado com o mesmo propósito do
sistema octal, para minimizar a representação de um número binário que é o
utilizado em processamento. Tanto os números em hexa como em octal são os
meios de manipulação do homem, porém existirão sempre conversores internos à
máquina que os converta em binário, com o qual a máquina trabalha.
Analogamente, se considerarmos quatro dígitos ou bits binários, o maior
número que se pode ser expresso por esses quatro dígitos é 1111 ou em decimal
15, da mesma forma que 15 é o algarismo mais significativo do sistema
hexadecimal, portanto com a combinação de 4 bits ou dígitos binários pode-se ter
o algarismo hexadecimal correspondente.
Assim, com esse grupamento de 4 bits ou dígitos, podem-se definir 16
símbolos, 0 até 15.
Contudo, como não existem símbolos dentro do sistema arábico que
possam representar os números decimais entre 10 e 15 sem repetir os símbolos
anteriores, foram usados os símbolos A, B, C, D, E e F, portanto o sistema
hexadecimal será formato por 16 símbolos alfanuméricos.
Dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F.
Base: 16
Organização posicional:
1016 = 1x161 + 0x160 = 16+0 = 1610
MSB (bit mais significativo): Bit mais a esquerda.
LSB (bit menos significativo): Bit mais a direita.
1.3. Conversão de Números Inteiros
1.3.1. Conversão de Binário em Decimal
Exemplo: 101112 = 1 x 24 + 0 x 23 + 1 x 22 + 1 x 21 + 1 x 20 = 16 + 0 + 4 +
2 + 1 = 23
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
6
Exemplo: 100101102 = 1 x 27 + 0 x 26 + 0 x 25 + 1 x 24 + 0 x 23 + 1 x 22 + 1
x 21 + 0 x 20 = 128 + 0 + 0 + 16 + 0 + 4 + 2 + 0 = 150
1.3.2. Conversão de Decimal em Binário
Na conversão decimal-binário pode ser utilizado o método dito das
divisões sucessivas, consiste m dividir sucessivamente o número por 2 até
obtermos o cociente 0 (zero). O resto dessa divisão colocado na ordem inversa
corresponde ao número binário, resultado da conversão de decimal em binário de
um certo número de dados.
Exemplo: 5410 542
54 |_2_
0 27 |_2_
1 13 |_2_
1 6 |_2_
0 3 |_2_
1 1 |_2_
1 0
5410 = 1101102
1.3.3. Conversão de Octal em Binário
A conversão de uma base em outra é bastante simples, uma vez que se
trata da operação inversa à já descrita, ou seja, basta converter individualmente
cada dígito octal em três binários.
Exemplo: 1378 = ?2
O número 1 equivale a 0012, o número 3 igual a 0112 e o número 7 vale
1112. Portanto:
1378 = 0010111112 ou seja 1378 = 10111112
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
7
1.3.4. Conversão de Binário em Octal
É feita pela combinação de três dígitos binários, como vimos, podendo
assim ter todos os algarismos octais:
Exemplo: 110110112 = 11 011 011 = 3 3 3 8 110110112 = 3338
Exemplo: 10111012 = 1 011 101 = 1 3 5 8 10111012 = 1358
1.3.5. Conversão de Octal em Decimal
Esta conversão se passa primeiramente de octal para binário e
posteriormente para decimal, ou seja:
Exemplo: 178 = 001 1112 1 x 23 + 1 x 22 + 1 x 21 + 1 x 20 = 8
+ 4 + 2 + 1 = 1510
1.3.6. Conversão Decimal para Octal
Esta conversão se passa primeiramente de decimal para binário e
posteriormente para octal, ou seja:
Exemplo: 2210 = 101102 10 110 = 268
1.3.7. Conversão Hexa para Binário
Basta converter cada dígito hexadecimal em seu similar binário, ou seja,
cada dígito em hexa equivale a um grupo de 4 bits.
Exemplo: B1516 = ?2
B 10112
1 00012
5 01012
Logo, B1516 = 1011.0001.01012
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
8
1.3.8. Conversão Binária para Hexa
De maneira análoga, basta realizar o processo inverso de hexa para
binário.
Exemplo: 100110112 = ?16
10012 9 16
10112 B16
Portanto, 100110112 = 9B16
1.4. Conversão de Números Fracionários
1.4.1. Conversão de Números Binários Fracionários em
Decimal
A conversão segue o mesmo processo binário para decimal já visto,
utilizando a mesma expressão, inclusive os dígitos após a vírgula em que as
potências ficam com o expoente negativo.
Exemplo: 110,112 = 1 x 22 + 1 x 21 + 0 x 20 + 1 x 2-1 + 1 x 2-2 = 4 + 2 + 0 +
1x1/21 + 1x1/22 = 4 + 2 + 0 + 0,5 + 0,25 = 6,75
Portanto: 110,112 = 6,75
1.4.2. Conversão de Número Decimal Fracionário em
Binário
Neste tipo de conversão, o processo é dividido em duas etapas:
conversão da parte inteira (já estudada) e conversão da parte fracionária.
Exemplo: 6,6
6 = parte inteira
0,6 = parte fracionária
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
9
A parte inteira do número é convertida conforme o processo já
demonstrado anteriormente, e obtemos o número 1102. A parte fracionária, 0,6, é
convertida da seguinte maneira:
Multiplica-se a parte fracionária (multiplicando) pela base “b”
(multiplicador), neste caso o 2, e separa-se a parte inteira do produto. O resultado
obtido da subtração da parte inteira do produto passa a ser o próximo
multiplicando. Faz-se sucessivamente esta operação até que consiga uma
precisão satisfatória. Lê-se os algarismos separados de cima para baixo.
Exemplo:
4,610 = ?2
0,6 x 2=1,2
menos a parte inteira (1 ) = 0,2
x 2 = 0,4
menos a parte inteira (0) = 0,4
x 2 = 0,8
menos a parte inteira (0) = 0,8
x 2 = 1,6
menos a parte inteira (1) = 0,6
x 2 = 1,2
menos a parte inteira (1) = 0,2
e assim por diante.
Lendo de cima para baixo teremos 10011, então 0,610=100112. Se
fizermos uma conferência, descobriremos que 0,100112 é igual a:
1x2-1 + 0x2-2 + 0x2-3 + 1x2-4 + 1x2-5 = ½ + 1/16 + 1/32 = 19/32 = 0,59375 ≈ 0,6.
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
10
Portanto, como podemos perceber, teremos sempre diferenças de
precisão entre bases.
2. PORTAS LÓGICAS E EXPRESSÕES BOOLEANAS
BÁSICAS
2.1. PORTAS LÓGICAS
2.1.1. PORTA OR
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
11
Aplicações com portas OR:
Dadas as entradas que variam no tempo, determine a saída da porta OR:
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
12
2.1.2. PORTA AND
Dadas as entradas que variam no tempo, determine a saída da porta AND:
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
13
2.1.3. PORTA NOT
2.1.4. PORTA NOR
Dadas as entradas que variam no tempo, determine a saída da porta OR:
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
14
2.1.5. PORTA NAND
Determine a saída da porta NAND onde é dado as entradas que variam no tempo:
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
15
2.1.6. PORTA XOR
Determine a saída da porta XOR onde é dado as entradas que variam no tempo:
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
16
2.1.7. PORTA XNOR
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
17
2.2. Diagramas de Tempo
Determine o diagrama de tempo dos seguintes circuitos lógicos:
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
18
2.3. Universalidade das Portas NAND e NOR
2.3.1. Universalidade das Portas NAND
As portas NAND podem ser usadas para implementar qualquer função
booleana.
2.3.2. Universalidade das Portas NOR
As portas NOR podem ser usadas para implementar qualquer função
booleana.
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
19
2.4. Expressões Booleanas
2.4.1. Equação Booleana a partir do Diagrama de Portas Lógicas
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
20
2.5. Obtenção do Circuito a partir das Equações Booleanas
Exemplo 3:
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
21
Exemplo 4:
Exemplo 5:
Exemplo 6:
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
22
Exemplo 7:
Exemplo 8:
Exemplo 9:
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
23
2.6. Obtenção das Expressões Booleanas a partir da Tabela
Verdade
Exemplo 1:
Exemplo 2:
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
24
2.7. Obtenção da Tabela Verdade a partir de uma Descrição
Exemplo1:
Determinar a tabela verdade que implementa o problema abaixo.
Em uma sala há três pessoas (A,B,C) que podem votar Sim (1) ou Não
(0), sobre um determinado assunto. Implemente a lógica que seja capaz de
identificar as seguintes situações.
X - Indicar que a maioria votou Sim;
Y - Indicar que a maioria votou Não;
W - Indicar que houve unanimidade de Sim;
Z - Indicar que houve unanimidade de Não.
Solução:
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
25
Exemplo2:
Em uma fábrica que produz uma determinada luminária (que possui quatro
lâmpadas denominadas de: A, B, C, D) o teste final de produção tem por objetivo
liberar as luminárias para os clientes (X = 1) ou devolver para o setor de
recuperação da produção (Y = 1) em função da detecção de pelo menos uma
lâmpada com defeito.
Notação: lâmpada sem defeito: 1; lâmpada com defeito: 0.
Implemente a função lógica que seja capaz de identificar as seguintes
situações (Implemente também a Tabela Verdade e o circuito lógico).
Solução:
X = A.B.C.D
Y = /A.B.C.D + A./B.C.D + A.B./C.D + A.B.C./D +
+ /A./B.C.D + /A.B./C.D + /A.B.C./D + A./B./C.D + A./B.C./D + A.B./C./D +
+ /A./B./C.D + /A.B./C./D + A./B./C./D +
+ /A./B./C./D
OBS: implemente também a Tabela Verdade e o circuito lógico...
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
26
3. ÁLGEBRA BOOLEANA
3.1. Leis
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
27
3.2. Regras
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
28
3.3. Teoremas de DeMorgan
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
29
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
30
4. CIRCUITOS COMBINACIONAIS
4.1. Introdução aos Circuitos Combinacionais
De acordo com o comportamento temporal, podemos classificar os
circuitos eletrônicos digitais em dois grandes grupos: os circuitos combinacionais
e os circuitos seqüenciais. Os circuitos seqüenciais são mais complexos e
envolvem "elementos de memória" além de blocos combinacionais.
Conceito:
Um circuito combinacional consiste num arranjo de portas lógicas
conectadas, com um conjunto de saídas, tais que, em qualquer momento, os
valores nas saídas dependem apenas dos valores instantâneos das
entradas.
Em contraposição, em circuitos seqüências as saídas dependem,
além dos valores de suas entradas, do "estado" da máquina. O "estado" de
uma máquina seqüencial é definido como o conjunto de valores
armazenados nos elementos de memória desta. Por isso, circuitos
seqüenciais são chamados alternativamente, de "máquinas de estado".
Diagrama de blocos de um circuito combinacional:
O vetor de saída “S”, em qualquer momento, é dado por S = f (E), onde E
é o vetor de entradas.
A função lógica f (E) pode ser representada de várias maneiras, entre as
quais:
- Tabelas-Verdade
- Circuitos Lógicos (interconexões de portas lógicas)
- Equações Lógicas
- Mapas de Karnaugh
1.1.
n
Circui
to
Com
binacional
1.2. E
m
S
= f(E)
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
31
Veremos agora alguns exemplos destas maneiras, bem como algumas
conversões entre formas:
Ex.: 1: Dadas as equações lógicas, monte o Diagrama de Blocos, a Tabela-
Verdade e o Circuito Lógico.
Solução:
a) Diagrama de Blocos para o circuito combinacional:
b) Tabela-Verdade: elaboramos a grade com todas as 8 combinações
possíveis das variáveis de entrada. A partir daí, preenchemos a tabela de saídas
calculando o valor através da equação. Se necessário, por questões de clareza,
podemos inserir colunas de resultados parciais como abaixo:
A B C AB X Y
0 0 0 1 0 0 0
0 0 1 1 0 1 1
0 1 0 0 0 0 0
0 1 1 0 0 0 0
1 0 0 0 0 0 1
1 0 1 0 0 0 1
1 1 0 0 1 1 1
1 1 1 0 1 1 1
c) Circuito Lógico: se fizermos a minimização da função, usando teoremas
ou Mapas de Karnaugh, obteremos o seguinte diagrama:
ABCBAX )(
ACCBAY
CABABX
CBAY
BA
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
32
Ex.: 2: Dado o circuito lógico abaixo, encontrar as Equações Lógicas e a Tabela
Verdade envolvidas:
4.2. Unidade Lógica de 1 Bit
Fig. 1. Unidade Lógica de 1 bit para as operações "AND" e "OR".
32.11 EEES 4)32.1(2 EEEES 5).42.1(3 EEEES
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
33
4.3. Somador Parcial / Somador Completo
O carry do estágio Ci pode ser expresso como:
Ci = Gi + Pi.Ci-1 [1]
Onde: Gi = Ai.Bi (generate signal) [2]
Pi = Ai + Bi (propagate signal) [3]
A soma Si é gerada por:
Si = Ci-1 Ai Bi = Ci-1 Pi [4]
A B Carry -in
Carry -out
Soma
Somador Completo (Full Adder)
A B
Carry -out
Soma
Somador Parcial (Half Adder) Fig. 2. Somador de 1 bit.
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
34
Entradas Saídas
a b Vem-
um
Vai-um Soma
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
Tabela. 1. Tabela verdade do somador de 1 bit.
4.4. Bit-Slice de uma ULA para 4 Operações
Fig. 3. Unidade Lógica e Aritmética de 1 bit Fig. 4. ULA de 1 bit que SOMA,
e que realiza AND, OR e SOMA SUBTRAI. realiza as operações lógicas
"AND" e "OR".
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
35
4.5. ULA de 32 Bits para 4 Operações
Finalmente, 32 destas ULAs de 1 bit (Fig. 4) podem ser conectadas para formar uma
ULA de 32 bits, conforme ilustrado na Fig. 5.
a0
b0
a1
b1
a2
b2
a31
b31
ALU0
ALU1
ALU2
ALU31
::
:
:
Resultado 0
Resultado 1
Resultado 2
Resultado 31
Vem-Um
Vem-Um
Vem-Um
Vem-Um
Vem-Um
Vai-Um
Vai-Um
Vai-Um
Vai-Um
OperaçãoInverte
Fig. 5. ULA de 32 bits.
O símbolo mais comumente utilizado para representar uma ULA na representação
em diagrama de blocos do sistema é mostrado na Fig. 6.
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
36
Carry -out
Zero
Resultado
Overflow
a
ALU
Operação
3
b
Linhas de Controle da ULA
OperaçãoInv erte
00
01
10
10
0
0
0
1 subtrai
soma
OU
E
Função
Fig. 6. Símbolo para ULA (a linha "Operação" inclui as linhas "Inverte" e "Operação" da
Fig. 4).
4.6. Somador Carry Lookahead
O crescimento linear do delay com o tamanho da palavra de entrada
(conforme visto na Fig.5) pode ser melhorado através do cálculo dos carries de cada estágio
em paralelo. O carry do estágio Ci pode ser expresso como:
Ci = Gi + Pi.Ci-1
[1]
Onde:
Gi = Ai.Bi (generate signal) [2]
Pi = Ai + Bi (propagate signal). [3]
Expandindo [1], temos:
Ci = Gi + PiCi-1 + PiPi-1Gi-2 + ... + Pi ... P1C0
A soma Si é gerada por:
Si = Ci-1 Ai Bi = Ci-1 Pi
3
2
3
2
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
37
A quantidade de portas lógicas necessárias para implementar este somador pode
claramente explodir exponencialmente. Como conseqüência, o número de estágios do
Lookahead é normalmente limitado a quatro. Para um somador de quatro estágios (quatro
bits), os termos apropriados são os seguintes:
C1 = G1 + P1.C0
C2 = G2 + P2G1 + P2P1C0
C3 = G3 + P3G2 + P3P2G1 + P3P2P1C0
C4 = G4 + P4G3 + P4P3G2 + P4P3P2G1 + P4P3P2P1C0
Duas possíveis implementações para este somador Carry Lookahead podem ser
vistas na Fig. 7.
(
a)
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia
Disciplina de Circuitos Digitais - ECA (4453A-02)
Prof. Dr. Fabian Vargas
38
C1P1
C0
G1
C2
G2
P2
P3
C3
G3
A1
B1
P1
G1
A2
B2
P2
G2
A3
B3
P3
G3
A1
B1 S1
S2
S3
C0
A2
B2
C1
A3
B3
C2
Fig. 7. Duas versões de circuitos lógicos para implementação de um Somador
Carry Lookahead de 4 bits.
(
b)