Escolar Documentos
Profissional Documentos
Cultura Documentos
CIRCUITOS COMBINACIONAIS
Os circuitos digitais de um modo geral podem ser divididos em duas categorias principais:
Circuitos Combinacionais são aqueles em que o sinal de saída depende única e exclusivamente
das combinações dos sinais de entrada.
Os circuitos deste tipo não possuem nenhum tipo de memória, ou seja, as saídas não dependem
de nenhum estado anterior do circuito. Os circuitos combinacionais são compostos somente por
portas lógicas.
Outra categoria de circuitos digitais são os que possuem realimentação, ou seja, o sinal de saída
depende não somente dos valores atuais dos sinais de entrada, mas também dos valores de
estados anteriores do circuito. Estes circuitos são denominados circuitos seqüenciais. Os
circuitos seqüenciais possuem, além de portas lógicas, algum tipo de dispositivo de memória.
• Codificador
• Decodificador
• Somador
• Comparador
• Gerador de paridade
• Multiplexador
• Demultiplexador
• Contador
• Registrador
• Controlador
• Multiplicador
PA
Sensor do Partida
Câmbio M
AL
Alarme
Sensor do
LM
Freio
Led do
F
Sistema Câmbio
de
P Controle Led do
Sensor da Freio
LF
Porta
Led da
LP Porta
Sensor do C
Cinto
Led do
LC Cinto
O automóvel possui os seguintes sensores, com seus respectivos valores lógicos correspondentes
à cada situação:
⎧ = 1 , posição neutro
Sensor do Câmbio: M⎨
⎩ = 0 , posição diferente de neutro
⎧ = 1 , acionado
Sensor do Freio de Estacionamento: F ⎨
⎩ = 0 , livre
⎧ = 1 , fechada
Sensor da Porta: P⎨
⎩ = 0 , aberta
⎧ = 1 , fechado
Sensor do Cinto de segurança: C⎨
⎩ = 0 , aberto
Ao ser acionada a ignição, os seguintes requisitos devem ser obedecidos para que a partida seja
efetivada:
• a) Para dar a partida, o câmbio deve estar na posição neutro. Caso não esteja soar o
alarme e acender o LED correspondente ao câmbio no painel
• b) Se a porta estiver aberta, a partida será dada somente se o freio de estacionamento
estiver acionado. Caso não esteja, soar o alarme e acender o LED correspondente.
• c) Se o cinto de segurança estiver aberto, será acionada a partida, porém o alarme
deverá soar e o LED correspondente ao cinto deverá acender.
M F P C PA AL LM LF LP LC
0 0 0 0 0 1 1 1 1 1
0 0 0 1 0 1 1 1 1 0
0 0 1 0 0 1 1 1 0 1
0 0 1 1 0 1 1 1 0 0
0 1 0 0 0 1 1 0 1 1
0 1 0 1 0 1 1 0 1 0
0 1 1 0 0 1 1 0 0 1
0 1 1 1 0 1 1 0 0 0
1 0 0 0 0 1 0 1 1 1
1 0 0 1 0 1 0 1 1 0
1 0 1 0 1 1 0 1 0 1
1 0 1 1 1 0 0 1 0 0
1 1 0 0 1 1 0 0 1 1
1 1 0 1 1 1 0 0 1 0
1 1 1 0 1 1 0 0 0 1
1 1 1 1 1 0 0 0 0 0
PA = Σ(10,11,12,13,14,15)
AL = Σ(0,1,2,3,4,5,6,7,8,9,10,12,13,14)
Utilizando o mapa de Karnaugh para encontrar a expressão mínima das funções, temos:
M M
1 1 1 1 1
1 1 1 1 1
C C
1 1 1 1
P P
1 1 1 1 1 1
F B
PA = MF + MP AL = M + P + C
LM = M
LF = F
LP = P
LC = C
M F P C
PA
AL
LM
LF
LP
LC
Níveis Lógicos
Nos circuitos digitais, os dois valores possíveis para as variáveis lógicas são representados por
dois níveis diferentes de tensão. Em uma lógica positiva, o bit “1” é representado por um nível
alto de tensão, enquanto o bit “0” é representado por um nível baixo de tensão.
Os níveis de tensão utilizados para representar os valores lógicos 1 e 0 são chamados níveis
lógicos. Numa situação ideal, um nível de tensão representa a condição “alta” e outro nível de
tensão representa a condição “baixa”.
Na prática, a condição “alta” pode ser representada por um valor de tensão situado entre um valor
mínimo e um valor máximo especificado para aquela condição. Da mesma forma, a condição
“baixa” pode ser representado por uma valor de tensão entre o mínimo e o máximo especificado.
Níveis Lógicos
VHmax
Tensão “alta”
bit “1”
VHmin
Indefinido
VLmax
Tensão
“baixa”
VLmin
Para os dispositivos da família TTL, os valores limites dos níveis lógicos estão mostrados na
figura abaixo:
VIH VOH
Nível alto -“1” Nível alto -“1”
2,4V VOHmin
2,0V VIHmin
Indefinido Indefinido
0,8V VILmax
VIL 0,4V VOLmax
Nível baixo - “0” VOL Nível baixo - “0”
0,0V VILmin 0,0V VOLmin
ENTRADA SAÍDA
Considerando uma tensão de alimentação de 5V, os valores limites dos níveis lógicos para os
dispositivos da família CMOS estão mostrados na figura abaixo:
Indefinido Indefinido
1,5V VILmax
VIL
Nível baixo - “0” 0,1V VOLmax
VOL Nível baixo - “0”
0,0V VILmin 0,0V VOLmin
ENTRADA SAÍDA
Sinais Digitais
Os sinais digitais são formados por uma seqüência valores altos e baixos de tensão, os quais são
denominados pulsos.
Pulso Positivo:
Nível alto
Nível baixo
t0 t1
Pulso Negativo:
Nível alto t0 t1
Nível baixo
Características do Pulso:
90%
50% Amplitude
10%
tW
Largura do pulso
tr tf
T
Período
f=1/T T=1/f
A “Relação de trabalho” (Duty Cicle) de um sinal digital periódico é definida pela relação entre a
largura do pulso tW e o período, em percentagem.
Exemplo:
No sinal digital abaixo, determinar:
a) Freqüência
b) Período
c) Relação de trabalho
ms
0 1 10 11 20 21 30 31
Período: T = 10 ms
Frequência: f = 1 / T = 1 / 10×10-3 = 100 Hz
Relação de trabalho = (tW / T)×100 = (10-3 / 10×10-3) ×100 = 10%
CODIFICADORES
Considere o codificador mostrado na figura abaixo, onde temos quatro, entradas identificadas
como E1, E2, E3 e E4.
E1
A2
E2 CODIFI- A1
E3 CADOR
A0
E4
Na saída do codificador temos o valor binário equivalente à entrada que estiver ativada:
Entrada ativa A2 A1 A0
E1 0 0 1
E2 0 1 0
E3 0 1 1
E4 1 0 0
Projetar o codificador caracterizado acima, considerando que uma e somente uma das entradas
está ativada em determinado instante.
A tabela verdade é:
E4 E3 E2 E1 A2 A1 A0
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
E4 E4 E4
E1 E1 E1
E2 E2 E2
E3 E3 E3
A2 = A1 = A0 =
Entrada ativa A2 A1 A0
E1 0 0 1
E2 0 1 0
E3 0 1 1
E4 1 0 0
Outro 0 0 0
E4 E3 E2 E1 A2 A1 A0
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
As funções são:
E1 E1 E1
E2 E2 E2
E3 E3 E3
A2 =
A1 =
A0 =
E4 E3 E2 E1
A2
A1
A0
No codificador com prioridade, podemos ter uma ou mais linhas de entrada ativas
simultaneamente porém, a saída do codificador corresponde ao estado da linha de mais alta
prioridade que está ativada.
Entrada ativa A2 A1 A0
E1 0 0 1
E2 0 1 0
E3 0 1 1
E4 1 0 0
Para o projeto do codificador, vamos considerar que a linha de mais alta prioridade é E4 e a de
mais baixa prioridade é E1
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
As funções são:
E4 E4 E4
E1 E1 E1
E2 E2 E2
E3 E3 E3
A2 = A1 = A0 =
DECODIFICADORES
Considere a situação abaixo, onde temos um valor em binário nas linhas A, B e C. Conforme o
valor presente nestas linhas, queremos sinalizar o led correspondente num painel. Desta forma, se
o valor presente nas linhas for A=0, B=0, e C=0 o led de número 0 do painel deverá acender, se o
valor for A=1, B=0, e C=1 o led de número 5 deverá acender e assim sucessivamente para os
demais valores.
L0 0
L1 1
L2
A 2
L3
DECODI- 3
Binári B L4
FICADOR 4
L5
C 5
L6
6
L7 7
Tabela verdade:
A B C L0 L1 L2 L3 L4 L5 L6 L7
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
Assim:
L0 = L1 =
L2 = L3 =
L4 = L5 =
L6 = L7 =
A B C
L0
L1
L2
L3
L4
L5
L6
L7
Obs.: É interessante observar que cada uma das saídas do decodificador acima,
corresponde à um minterm da função. Portanto, o circuito pode ser considerado um
gerador de minterms.
Considere um codificador(encoder), que a partir de sinais de entrada gera dados no código Gray.
Para utilizar os dados gerados pelo encoder, é necessário uma conversão dos mesmos para o
código binário. Projetar o decodificador para efetuar esta conversão, conforme o diagrama
esquemático mostrado abaixo.
A B3
B B2
Entrada ENCODER DECODI-
C FICADOR B1
D B0
Gray Binário
Tabela verdade:
A B C D B3 B2 B1 B0
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
(B3) (B2)
A A
D D
C C
B B
B3 = B2 =
(B1) (B0)
A A
D D
C C
B B
B1 =
B0 =
O display de 7 segmentos é composto por 7 diodos emissores de luz (LED), identificados como a,
b, c, d, e, f, g, e dispostos conforme a figura abaixo:
f b
e c
Cada um dos leds pode ser acionado a partir de um circuito digital, de duas maneiras diferentes,
conforme mostrado abaixo:
S Vcc
Circuito
R
R
S
Circuito
(a) (b)
Na configuração (a) o led apaga quando o nível do sinal S for baixo (bit 0) e acende quando o
nível do sinal S for alto (bit 1).
Na configuração (b) o led acende quando o nível do sinal S for baixo (bit 0) a apaga quando o
nível do sinal S for alto (bit 1).
O display de 7 segmentos pode estar na configuração anodo comum ou catodo comum, conforme
mostrado na figura abaixo:
É necessário que exista uma saída no decodificador para acionar cada um dos leds, conforme
mostrado no diagrama esquemático abaixo:
a
A
b
B c
Binário d
C
e
D f
g
As saídas estão identificadas com as mesmas letras do led que deve ser acionado.
A B C D a b c d e f g
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
Portanto: a=∑
b=∑
c=∑
d=∑
e=∑
f=∑
g=∑
(a) (b)
A A
D D
C C
B B
a= b=
( c) (d)
A A
D D
C C
B B
c= d=
( e) (f)
A A
D D
C C
B B
e= f =
(g)
A
B
g=
(a) (b)
A A
D D
C C
B B
a= b=
( c) (d)
A A
D D
C C
B B
c= d=
( e) ( f) (g)
A A A
D D D
C C C
B B B
e= f =
g=
COMPARADOR
O comparador é um circuito que realiza a comparação entre duas palavras de n bits, indicando na
saída o relacionamento (do ponto de vista de valores) entre estas duas palavras.
Tomemos como exemplo, o projeto de um circuito comparador, para comparar duas palavras de
um bit A e B, produzindo uma saída S, sendo:
A
COMPA
S
RADOR
B
A B S
0 0 0
0 1 1
1 0 1
1 1 0
A função é,
S = AB + A B = A ⊕ B
A
S
B
Projetar um circuito comparador para comparar duas palavras de dois bits A e B, produzindo uma
saída S conforme abaixo:
A B S
0 0 1
0 1 0
1 0 0
1 1 1
A função é,
S = A ⋅ B + AB = A ⊕ B
A
S
B
A1
A0 COMPA S
RADOR
B1
B0
A1 A0 B1 B0 S
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
S = A1 A 0 B 1 B 0 + A1 A0 B 1 B0 + A1 A 0 B1 B 0 + A1 A0 B1 B0
Como pode-se observar, a função não pode ser simplificada. No entanto, é possível representar a
função de outra maneira:
S 0 = A1 B 1 ( A 0 B 0 + A0 B0 ) + A1 B1 ( A 0 B 0 + A0 B0 )
= A1 B 1 ( A0 ⊕ B0 ) + A1 B1 ( A0 ⊕ B0 )
= ( A1 B 1 + A1 B1 )( A0 ⊕ B0 )
= ( A1 ⊕ B1 )( A0 ⊕ B0 )
A1
B1
S
A0
B0
Exercício:
Projetar um circuito para comparar duas palavras de 4 bits A e B, produzindo
uma saída S sendo:
S = 1, se as duas palavras forem iguais;
S = 0, se as duas palavras forem diferentes.
Por analogia com o desenvolvimento do comparador para duas palavras de 2 bits visto acima, a
função correspondente a um comparador para duas palavras de 4 bits é:
S = ( A3 ⊕ B3 )( A2 ⊕ B2 )( A1 ⊕ B1 )( A0 ⊕ B0 )
O circuito correspondente é:
A3
B3
A2
B2
S
A1
B1
A0
B0
Nos comparadores vistos acima, a saída S indica simplesmente se as duas palavras comparadas
são iguais ou diferentes. Veremos agora, um circuito comparador para comparar duas palavras A e
B, cujas saídas indicam se: A < B, A = B ou A > B.
A>B
A
COMPA
A=B
RADOR
B
A<B
Saídas do comparador:
(A>B) = 1 se A > B;
(A=B) = 1 se A = B;
(A<B) = 1 se A < B;
( A > B) = A B
( A = B) = A ⊕ B
( A < B) = AB
Circuito do comparador:
A B
A>B
A=B
A<B
Veremos a seguir um circuito para comparar a magnitude de duas palavras A e B, de dois bits cada
uma,
A1
A>B
A
A0
COMPA A=B
RADOR
B1
B A<B
B0
Tabelas verdade:
Funções:
(A=B) = Σ(0,5,10,15)
(A>B) = Σ(4,8,9,12,13,14)
(A<B) = Σ(1,2,3,6,7,11)
Portanto:
( A = B) = ( A1 ⊕ B1 )( A0 ⊕ B0 )
( A > B) = A1 B1 + A1 A0 B 0 + A0 B1 B 0
( A < B) = A1 B1 + A1 A 0 B0 + A 0 B1 B0
( A > B) = A1 B1 + A1 A0 B1 B 0 + A1 A0 B1 B 0
= A1 B1 + A0 B 0 ( A1 B1 + A1 B1 )
= A1 B1 + A0 B 0 ( A1 ⊕ B1 )
( A < B) = A1 B1 + A1 A 0 B1 B0 + A1 A 0 B1 B0
= A1 B1 + A 0 B0 ( A1 B1 + A1 B1 )
= A1 B1 + A 0 B0 ( A1 ⊕ B1 )
O circuito correspondente é:
A1 A0 B1 B0
A>B
A=B
A<B
MULTIPLEXADOR
Um multiplexador digital é um circuito que possui mais de uma entrada de dados digitais e
seleciona um deles, em um determinado instante, para transferir para a saída. A seleção de qual
entrada deverá ser transferida para a saída é feita através de entradas de seleção, também
chamadas de entradas de endereço. O multiplexador atua como uma chave de múltiplas posições
controlada digitalmente, de modo que o valor digital aplicado às entradas de seleção define qual
entrada de dados será comutada para a saída.
E1
MUX S (Saída)
E0
A
Entrada de seleção
O número de linhas de entrada que podem ser selecionadas é 2n, onde n é o número de entradas de
seleção disponíveis. No multiplexador mostrado acima, como temos somente duas entradas, é
necessária somente uma entrada de seleção (A).
Neste multiplexador, temos a entrada de seleção A e duas entradas de dados, E1 e E0 que serão
multiplexadas para a saída S, de acordo com o valor de A.
A E1 E0 S
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1
E1
S
E0
Veremos a seguir um multiplexador com duas entradas de seleção (A e B), com capacidade
portanto, de selecionar uma dentre quatro linhas de entrada. O diagrama esquemático do
multiplexador está mostrado na figura abaixo:
E3
E2
MUX S
E1
E0
A B
A especificação de qual entrada deve ser transferida para a saída em função das entradas de
seleção, está mostrada na tabela:
A B S
0 0 E0
0 1 E1
1 0 E2
1 1 E3
A B
E3
E2
S
E1
E0
No multiplexador de duas entradas cujo diagrama esquemático está mostrado abaixo, a entrada H
habilita o funcionamento do circuito.
H
E1 MUX S
E0
O circuito correspondente é:
H A
E1
S
E0
E0 E1
13
D1 12
14 QD
D0
10 157
C1 9
11 QC
C0
6
B1 7
5 QB
B0
3
A1 4
2 QA
A0
1
SEL
15
H EN
7
EN
12
13
7 151
6
14
5
15 5
4 Y
1
3 6
2 W
2
3
1
4
0
9
C
10
B
11
A
7
EN
E7 12
13
7 151
E6 6
14
E5 5
15 5
E4 4 Y
1
E3 3 6
E2 2 W
2
3
E1 1
4
E0 0
D 9
10
C
C B
11
B A
A S
7
EN
E15 12
13
7 151
E14 6
E13 14
5
E12 15 5
1
4 Y
E11 3 6
E10
2 W
2
3
E9 1
4
E8 0
9
C
10
B
11
A
Da mesma forma, é possível ligar quatro multiplexadores 74xx151 em cascata, para se obter um
multiplexador de 32 entradas, e assim sucessivamente.
DEMULTIPLEXADOR
S1
E DEMUX
S0
A
Entrada de seleção
No demultiplexador mostrado acima, o sinal presente na linha de entrada (E) será transferido para
a linha de saída S1 ou S0, em função do valor da entrada de seleção (A), conforme mostrado na
figura abaixo.
A S0 S1
0 E 0
1 0 E
A E S0 S1
0 0 0 0
0 1 1 0
1 0 0 0
1 1 0 1
S0 = AE
S1 = AE
E S0
S1
A B S0 S1 S2 S3
0 0 E 0 0 0
0 1 0 E 0 0
1 0 0 0 E 0
1 1 0 0 0 E
As funções são:
S0 = A ⋅ BE
S1 = ABE
S1 = A BE
S0 = ABE
Circuito:
A B
S0
E
S1
S2
S3
SOMADOR BINÁRIO
Um meio somador (half adder) é um circuito que executa a soma binária de dois bits. O circuito
possui duas saídas, uma correspondente à soma destes dois bits e outra correspondente ao “vai
um” (Carry).
A S (Soma)
MEIO
SOMADOR
B C (Vai um)
A B S C
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
As funções são:
S = AB + A B = A ⊕ B
C = AB
A
S
B
Na soma de dois números binários com n bits, são somados os bits coluna a coluna, com os dígitos
menos significativos somados primeiro. A soma de cada par de bits gera um bit de soma (S) e um
bit de vai um (C) como foi visto acima.
Para a soma do primeiro par de bits (menos significativo), pode ser utilizado um meio somador,
visto que só existem dois bits a serem somados. Na soma seguinte, é necessário somar três bits: os
dois bits dos números a serem somados mais o bit de vai um da soma anterior. A mesma situação
ocorre com as colunas subseqüentes.
Para estas somas, o meio somador não é adequado. É necessário neste caso, um circuito com
capacidade para somar três bits. Este circuito é chamado somador completo (full adder).
A
S
B SOMADOR
COMPLETO
Co
Ci
A B Ci S Co
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
As funções são:
S = ABC i + A B ⋅ C i + A ⋅ BC i + ABC i
= ( AB + A B)C i + ( A ⋅ B + AB)C i
= ( A ⊕ B)C i + ( A ⊕ B)C i
= A ⊕ B ⊕ Ci
C 0 = AB + AC i + BC i
B
S
Ci
Co
A3 B3 A2 B2 A1 B1 A0 B0
Cin
A
Ci
Ci
Ci
Ci
Co
Co
Co
S
Cout
S3 S2 S1 S0
No somador binário paralelo, existe um número de somadores completos igual ao número de bits a
serem somados.
No somador binário paralelo visto acima, embora a soma seja feita em paralelo, com cada par de
bits sendo somados por um somador completo, o resultado final da soma somente estará completo
depois que o “vai um” se propagar por toda a cadeia de somadores. Se imaginarmos um somador
para um grande número de bits, 32 bits por exemplo, este tempo de propagação do vai um pode
ser significativo.
Uma forma de evitar esta propagação é antecipar o bit de vai um para todos os somadores, de
modo que o bit de vai um esteja disponível a todos os somadores simultaneamente.
Cin
A
B
Somador Ci
Co
Cout
A condição para que um bit de “vai um” vindo de um somador anterior seja propagado através do
somador atual é:
Cp = A+ B
Portanto, vai existir um “vai um” na saída de um somador qualquer, se este “vai um” for gerado no
somador ou se for propagado através do mesmo.
Assim, C out = C g + C p C in
A3 B3 A2 B2 A1 B1 A0 B0
Cin3 Cin2 Cin1 Cin0
A
Ci
Ci
Ci
Ci
Co
Co
Co
S
S3 S2 S1 S0
C g 3 = A3 B3 C g 2 = A2 B 2 C g1 = A1 B1 C g 0 = A0 B0
C p 3 = A3 + B3 C p 2 = A2 + B2 C p1 = A1 + B1 C p 0 = A0 + B0
No somador 0:
C out 0 = C g 0 + C p 0 C in 0 = A0 B0 + ( A0 + B0 )C in 0
= A0 B0 + A0 C in 0 + B0 C in 0
Somador 1:
C in1 = C out 0
C out 1 = C g1 + C p1C in1
= C g1 + C p1 (C g 0 + C p 0 C in 0 )
= C g1 + C p1C g 0 + C p1C p 0 C in 0
Somador 3:
C in 2 = C out1
C out 2 = C g 2 + C p 2 C in 2
= C g 2 + C p 2 (C g1 + C p1C g 0 + C p1C p 0 C in 0 )
= C g 2 + C p 2 C g1 + C p 2 C p1C g 0 + C p 2 C p1C p 0 C in 0
Somador 4:
C in3 = C out 2
C out 3 = C g 3 + C p 3 C in3
= C g 3 + C p 3 (C g 2 + C p 2 C g1 + C p 2 C p1C g 0 + C p 2 C p1C p 0 C in 0 )
= C g 3 + C p 3 C g 2 + C p 3 C p 2 C g1 + C p 3C p 2 C p1C g 0 + C p 3C p 2 C p1C p 0 C in 0
Cg3
Cp3
Som_1
B
B3
S3
A3
A
Ci
Cg2
Cp2
Som_1
B2
S2
A2
A
Ci
Cp1
Cg1
Som_1
B
B1
S1
S
A1
A
Ci
Cg0
Cp0
Som_1
B
B0
S0
A0
A
Ci
Ci0
SUBTRATOR
Uma operação de subtração de dois números pode ser realizada através de uma soma, trocando-se
o sinal do subtraendo.
A − B = A + (− B ) = A + B + 1
Desta forma, é possível utilizar um somador para efetuar uma subtração (A-B), complementando a
entrada B e somando 1.
A B
Ci = 1
A
Ci
Somador
Co
Co S
Para se obter um subtrator para números binários de n bits, basta ligar em cascata n subtratores.
Na figura abaixo é mostrado um circuito subtrator de para números binários de 4 bits.
Ci = 1
A
Ci
Ci
A
Ci
Ci
Co
Co
Co
S
S
Co
Implementando uma lógica adicional, é possível construir um circuito que execute as operações de
soma e de subtração.
Circuito Somador/Subtrator
A3 B3 A2 B2 A1 B1 A0 B0
OP
OP = 0, Soma
OP = 1, Subtração
A B Ci A B Ci A B Ci A B Ci
Co S Co S Co S Co S
Cout
S3 S2 S1 S0
-2n-1 ≤ N ≤ 2n-1 - 1
Qualquer operação aritmética cujo resultado esteja fora destes limites, produz uma condição de
estouro (overflow). Caso isto ocorra, o resultado da operação é um número binário que não
representa o resultado correto da operação.
É importante em muitos casos, que uma condição de overflow possa ser detectada, evitando assim
o uso inadvertido de resultados inválidos.
a) Soma de dois números positivos, cujo resultado seja maior que ≤ 2n-1 - 1
b) Soma de dois números negativos, cujo resultado seja menor que -2n-1
Consideremos um somador binário paralelo com n estágios, conforme mostrado na figura abaixo:
An-1 Bn-1 A0 B0
Cin-1 Cin0
A
Ci
Ci
Somador . . . . . . . . . . . . . . Somador
Co
Co
S
S
Cout0
Coutn-1 Sn-1 S0
Na tabela verdade abaixo, estão representadas todas as possibilidades que podem ocorrer no
último estágio (n-1) do somador.
Através da tabela é possível observar que uma condição de overflow ocorre somente em duas
situações:
OV = A n −1 B n −1 S n −1 + An −1 Bn −1 S n −1
OV = C in−1 ⊕ C outn −1