Você está na página 1de 34

ISDB – Instituto Superior

Don Bosco
Sistemas Digitais I

Circuitos Combinatórios

Docente:
Eng.º Adélio Francisco Tembe, MSc.
CIRCUITOS COMBINATÓRIOS (1)

São constituídos por uma combinação de gates AND, OR, NOT, NAND, NOR e XOR
onde as suas saídas só dependem do valor das entradas e se estas deixarem de
estar presentes a saída muda imediatamente.

Os circuitos combinatórios que vamos estudar


são:
- Geradores de bit de paridade;
- Comparadores;
- Conversores de código;
- Adicionadores/Subtractores;
- Codificadores/Descodificadores;
- Multiplexers/Demultiplexers.

Eng.º Adélio F. Tembe, MSc. 2


CIRCUITOS COMBINATÓRIOS (2)
Circuito Gerador de Bit de Paridade
Uma porta XOR (OU-exclusivo) é uma porta com duas entradas cuja saída é 1 se
uma das entradas for 1, i. é, uma porta XOR produz um 1 na saída se o número
de 1’s na entrada for ímpar (PARIDADE PAR). Caso se trate de uma porta
XNOR (NÃO OU-exclusivo) o resultado é o inverso, i. é, produz um 1 na saída
quando o número de 1’s na entrada for par (PARIDADE ÍMPAR).

(nº de possibilidades com saída igual a 1 ) = 2 (nº de XOR's)


a b S=ab S’ = a  b
0 0 0 1 S = a  b = a b + a b
0 1 1 0
S'= a  b = a  b = a  b + a  b
1 0 1 0
1 1 0 1

a
   S
b
a Exclusive-OR
   S'
b CI 74x86
Eng.º Adélio F. Tembe, MSc. 3
CIRCUITOS COMBINATÓRIOS (3)
Circuito Gerador de Bit de Paridade (cont.)
Implementando n portas XOR em cascata, obtém-se um circuito com n+1 entradas
e uma saída, originando um circuito de paridade ímpar. Ao invertermos essa
saída, resulta um circuito de paridade par (ver figura):

I1
I2
I3
I4

Saída Ímpar
In
Saída Par

Outra forma de implementar este tipo de circuito, de modo a que seja mais rápido,
é em ÁRVORE.

Gerador Bit Paridade


CI 74x280
Eng.º Adélio F. Tembe, MSc. 4
CIRCUITOS COMBINATÓRIOS (4)
Circuito Gerador de Bit de Paridade (cont.)
Caso Prático
Simplificado:
Suponhamos que trasmitimos em paralelo ao longo de uma linha e que
pretendemos usar um bit de paridade para detecção de erros.

X Y

S
Gerador

Detector

Eng.º Adélio F. Tembe, MSc. 5


CIRCUITOS COMBINATÓRIOS (5)
Circuito Comparador
Circuito Comparador de 2 bits, a0 e
b0: a
0 S
b0

Circuito Comparador de 2 números digitais de 4 bits, A = a0 a1


a2 a3 e B = b0 b1 b2 b3:
a0
b0

a1
b1
S
a2
b2

a3 Comparador 4-Bit
b3 CI 74x85
Eng.º Adélio F. Tembe, MSc. 6
CIRCUITOS COMBINATÓRIOS (6)
Circuito Comparador
Iterativo
Dois valores de n-bit podem ser comparados de forma iterativa. Para tal tem que
se ter em conta o bit resultante da comparação anterior (figura circuito para n-bit).
Para implementar este tipo de circuitos, basta juntar n módulos de comparação de
um único bit (figura módulo para um bit).
a b
a b
CMP
EQinput EQoutput
EQI EQO

a0 b0 a1 b1 an-1 bn-1

a b a b a b
CMP CMP CMP
EQ0 EQ1 EQ2 EQn-1 EQn
EQI EQO EQI EQO EQI EQO
1

Eng.º Adélio F. Tembe, MSc. 7


CIRCUITOS COMBINATÓRIOS (7)
Meio-Somador e Somador
Completo
O somador mais simples, designado por MEIO SOMADOR (1/2 Somador – Half
Adder), soma dois operandos de 1 bit, resultando um valor de 2 bits (pois o
resultado varia entre 0 e 2).
Da tabela resulta: Símbolo Lógico:
a b S Cout
0 0 0 0
S = ab
a b
0 1 1 0 Cout = a  b
Half S
1 0 1 0 Adder
Cout
1 1 0 1 Diagrama Lógico:
a b

Cout

Eng.º Adélio F. Tembe, MSc. 8


CIRCUITOS COMBINATÓRIOS (8)
Meio-Somador e Somador Completo
(cont.)
Para somar operandos com mais de um bit, temos que produzir carries entre as
posições dos vários bits, i. é, entre cada posição de um bit. O bloco que realiza
esta operação designa-se por SOMADOR COMPLETO (Full Adder).

Da tabela resulta: Símbolo Lógico:


a b cin S Cout
S = a  b  cin
0 0 0 0 0 a b cin
0 0 1 1 0 Cout = cin  (a  b) + a  b Full S
Diagrama Lógico: Adder
0 1 0 1 0
Cout
0 1 1 0 1 a b cin
1 0 0 1 0
1 0 1 0 1 S
1 1 0 0 1
1 1 1 1 1 Cout

Eng.º Adélio F. Tembe, MSc. 9


CIRCUITOS COMBINATÓRIOS (9)
Somadores de Ripple (Ripple Adders)
Duas palavras binárias, cada uma com n-bits, podem ser adicionadas usando um
somador para n-bits. Este é constituído por n full adders ligados em cascata, onde
cada um suporta uma soma de um bit. Este tipo de somadores designam-se por
somadores de ripple ou ripple adders.

an bn a2 b2 a1 b1 a0 b0

a b cn a b c2 a b c1 a b c0
FA FA FA FA
Cout Sn Cout S2 Cout S1 Cout S0
Cn+1

Eng.º Adélio F. Tembe, MSc. 10


CONVERSORES (1)
Estes circuitos têm por objectivo converter códigos. Desta forma o circuito que
realiza esta conversão é designado de Conversor.
Procedimento para realização de um CONVERSOR

Código de Entradas
origem
Código de Saídas
destino
Mapas de
Karnaugh

Expressões
mínimas

Diagrama Lógico
Conversor

Eng.º Adélio F. Tembe, MSc. 11


CONVERSORES (2)
Exemplo
Projectar um conversor de código XS-3 (Excess-3) para o código NBCD

1. Representação do Código de Origem e Destino na Tabela de


Verdade
Entradas Saídas
BCD XS-3 NBCD8421 2. Dos mapas de Karnaugh obtêm-se as expressões:
DECIMAL I3 I2 I1 I0 D C B A

0 0 0 1 1 0 0 0 0 A = I0
1 0 1 0 0 0 0 0 1 B = I0  I1
2 0 1 0 1 0 0 1 0
C = I0  I 2 + I0  I1  I 2 + I0  I1  I3
3 0 1 1 0 0 0 1 1
D = I0  I1  I3 + I 2  I3
4 0 1 1 1 0 1 0 0
5 1 0 0 0 0 1 0 1
6 1 0 0 1 0 1 1 0
7 1 0 1 0 0 1 1 1
8 1 0 1 1 1 0 0 0
9 1 1 0 0 1 0 0 1

Eng.º Adélio F. Tembe, MSc. 12


CONVERSORES (3)
Exemplo (cont.)
3. Implementação do Diagrama
Lógico
I0 A

I1 B

I2

D
I3

Eng.º Adélio F. Tembe, MSc. 13


DESCODIFICADORES (1)
As quantidades discretas de informação podem ser representadas em sistemas
digitais através de códigos binários. Um código binário de n bits é capaz de
representar até 2n elementos diferentes de uma informação codificada, i. é, cada
palavra de código na entrada produz uma palavra de código diferente na saída.
Um descodificador é um Circuito Combinatório que converte informação
binária desde n linhas de entrada para um máximo de 2n linhas de saída.

Estrutura de um descodificador:

n DESCODIFICADO
R

Palavra de
m
código
Descodificador de n
de entrada
Palavra para m linhas (objecto
p de de estudo) onde:
código
Entradas de saída m  2n
de Enable

Eng.º Adélio F. Tembe, MSc. 14


DESCODIFICADORES (2)
Características gerais:
▪ O código de entrada mais frequentemente usado é o código binário de n-
bits, os quais representam 2n códigos diferentes, normalmente inteiros
desde 0 até 2n-1;
▪ O código de saída mais frequente é o 1-out-of-n, que contém n-bits, onde
simplesmente se encontra activo um bit de cada vez.
Descodificadores Binários:
Trata-se do descodificador mais usual possuindo na sua entrada palavras de
código de n-bits e na saída palavras de código do tipo 1-out-of-2n bits.

Entradas Saídas
EN I1 I2 Y3 Y2 Y1 Y0
0 x x 0 0 0 0
1 0 0 0 0 0 1
1 0 1 0 0 1 0
1 1 0 0 1 0 0
1 1 1 1 0 0 0
Descodificador de 2 para 4 (lógica positiva)

Eng.º Adélio F. Tembe, MSc. 15


DESCODIFICADORES (3)
Descodificadores Binários:
(cont.)
Dual Decoder
I0 Y0 74x139
1Y0
1G 1Y1
I1 Y1
1A 1Y2
1B 1Y3
Y2
2Y0
Y3 2G 2Y1
EN
2A 2Y2
Diagrama Lógico (lógica positiva) 2B 2Y3

Símbolo Lógico (lógica negativa)

Descodificador duplo de 2 para 4


CI 74x139
Eng.º Adélio F. Tembe, MSc. 16
DESCODIFICADORES (4)
Exemplo: Implementação de um descodificador BINÁRIO - OCTAL

Tabela de Verdade do descodificador binário–octal (lógica negativa)

Entradas Saídas
EN A B C Yo Y1 Y2 Y3 Y4 Y5 Y6 Y7
1 x x x 1 1 1 1 1 1 1 1
0 0 0 0 0 1 1 1 1 1 1 1
0 0 0 1 1 0 1 1 1 1 1 1
0 0 1 0 1 1 0 1 1 1 1 1
0 0 1 1 1 1 1 0 1 1 1 1
0 1 0 0 1 1 1 1 0 1 1 1
0 1 0 1 1 1 1 1 1 0 1 1
0 1 1 0 1 1 1 1 1 1 0 1
0 1 1 1 1 1 1 1 1 1 1 0

Descodificador 3 para 8
CI 74x138
Eng.º Adélio F. Tembe, MSc. 17
DESCODIFICADORES (5)
Circuito Lógico do descodificador binário – octal (lógica negativa)

Y0

Y1

Y2
EN

Y3

Y4

Y5
A
Y6
B

Y7
C

Eng.º Adélio F. Tembe, MSc. 18


DESCODIFICADORES (6)
TIPOS DE CIRCUITOS DESCODIFICADORES DISPONÍVEIS NO
MERCADO
Descodificador de BCD/7Segmentos (com
drivers):
- 74x46/47/48/49.
Descodificador BCD/Decimal:
- 74x42/45/145.
Descodificador 4/10 linhas:
- 74x43/44.
Descodificador 4/16 linhas:
- 74x154.
Descodificador 3/8 linhas:
- 74x138.
Descodificador 2x 2/4 linhas:
- 74x139.

Eng.º Adélio F. Tembe, MSc. 19


DESCODIFICADORES (7)
DESCODIFICADORES LIGADOS EM CASCATA (exemplo)
VCC Decoder
74LS138
R
G1 Y0 0
G2A Y1 1
G2B Y2 2
Y3 3
A A Y4 4
Y5 5
B B
Y6 6
C C Y7 7

EN Decoder
74LS138

G1 Y0 8
G2A Y1 9
G2B Y2 10
Y3 11
A Y4 12
Y5 13
B
Y6 14
C Y7 15

Eng.º Adélio F. Tembe, MSc. 20


DESCODIFICADORES (8)
APLICAÇÃO EM CIRCUITOS COMBINACIONAIS (exemplo)
Implementar, com um descodificador 74x138, o circuito correspondente à
função:
f ( a , b, c ) = a  b  c + a  c + b  c

Implementação – Diagrama Lógico


Decoder
74x138

G1
G2A
G2B

Eng.º Adélio F. Tembe, MSc. 21


CODIFICADORES (1)
Um codificador é um Circuito Lógico Combinacional que é construido para
gerar um código de saída binário para n entradas diferentes de caracteres ou
grupos de caractres. O número de bits m necessários na saída do codificador tem
que satisfazer a seguinte relação:
2m  n
EXEMPLO: Implementação de um codificador OCTAL - BINÁRIO (lógica
positiva)

Entradas
Io I1 I2 I3 I4 I5 I6 I7 Y2 Y1 Y0
1 0 0 0 0 0 0 0 0 0 0
Tabela de
Verdade do
0 1 0 0 0 0 0 0 0 0 1
codificador
0 0 1 0 0 0 0 0 0 1 0
octal-binário
0 0 0 1 0 0 0 0 0 1 1
0 0 0 0 1 0 0 0 1 0 0
0 0 0 0 0 1 0 0 1 0 1
0 0 0 0 0 0 1 0 1 1 0
0 0 0 0 0 0 0 1 1 1 1

Eng.º Adélio F. Tembe, MSc. 22


CODIFICADORES (2)
EXEMPLO: Implementação de um codificador OCTAL – BINÁRIO (cont.)

Y0 = I1 + I 3 + I 5 + I 7 I0
Y2
I1
Y1 = I 2 + I 3 + I 6 + I 7
I2
Y2 = I 4 + I 5 + I 6 + I 7 I3
Y1
Equações I4
Lógicas I5
I6
Y0
I7
Diagrama Lógico do codificador octal-
binário
Em geral um codificador de 2n entradas para n saídas pode ser implementado
com portas lógicas OR de 2n-1 entradas.

Eng.º Adélio F. Tembe, MSc. 23


CODIFICADORES (3) - CODIFICADOR DE PRIORIDADE
EXEMPLO: Codificador de Prioridade de 4 bits (lógica positiva)

Entradas Saídas
EN I0 I1 I2 I3 B A IDLE
0 x x x x 0 0 0 Tabela de
1 1 0 0 0 0 0 1 Verdade
1 x 1 0 0 0 1 1
1 x x 1 0 1 0 1
1 x x x 1 1 1 1

I2 I3 I2 I3 I2 I3
I 0 I1 00 01 11 10 00 01 11 10 I 0 I1 00 01 11 10
I 0 I1
00 x 1 1 1 00 x 1 1 00 1 1 1
01 1 1 1 01 1 1 1 01 1 1 1 1
11 1 1 1 11 1 1 1 11 1 1 1 1
10 1 1 1 10 1 1 10 1 1 1 1

B = I2 + I3 A = I 2  I1 + I 3 IDLE = I 0 + I1 + I 2 + I 3
Eng.º Adélio F. Tembe, MSc. 24
CODIFICADORES (3) - CODIFICADOR DE PRIORIDADE
EXEMPLO: Codificador de Prioridade de 4 bits (lógica positiva)

I0
I1
A
I2 B
I3
IDLE

Diagrama
Lógico

Codificador Prioridade de 8-entradas


CI 74x148
Eng.º Adélio F. Tembe, MSc. 25
MULTIPLEXERS
A Multiplexagem consiste em transmitir um grande número de unidades de
informação através de um pequeno número de linhas ou canais de transmissão.
Um multiplexer digital é um circuito combinatório que selecciona a informação
binária de uma das várias linhas de entrada e direcciona-as para uma única linha
de saída.
A selecção de uma determinada linha é efectuada através de um conjunto de linhas
de selecção ou de endereço.
Estrutura de um Multiplexer (mux.) 1D 0

Mux

Enable 1D1 1Y

D0 b
1Dn-1
D1 b
2D0
b Y
2D1 2Y

Dn-1 b
2Dn-1

bD0

s bD1 bY

bDn-1 Selecção Enable


Selecção
Entradas e Saídas do mux. Esquema Funcional do mux.
Eng.º Adélio F. Tembe, MSc. 26
MULTIPLEXERS
(Implementação)

Tabela de Verdade
D1

S Saídas
Y = D1S + D0 S
0 Y = D0 D0

1 Y = D1

S
Selecção

Nota: Implemente um circuito multiplexer de 4 para 1 (mux 4:1)

Eng.º Adélio F. Tembe, MSc. 27


APLICAÇÕES DOS MULTIPLEXERS
Os multiplexers apresentam diversas aplicações entre as quais se
destacam:
- Geradores de funções.
- Conversão paralelo-série.
- Geradores de formas de onda.
- Direccionamento de dados.

GERADORES DE FUNÇÕES
Os multiplexers podem ser usados para implementar funções lógicas directamente
da tabela de verdade sem recorrer a simplificações. Quando usado com esta
finalidade, às entradas de selecção são aplicadas as variáveis lógicas do circuito e
cada uma das entradas é ligada permanentemente a 0 ou 1.

Eng.º Adélio F. Tembe, MSc. 28


MULTIPLEXER COMO GERADOR DE FUNÇÕES (exemplo)
Tabela de Verdade:
a b c F VCC
0 0 0 0
0 0 1 0
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
0 1 0 1
A
0 1 1 1
1 0 0 0 B Mux
8:1
1 0 1 0
C
1 1 0 1
1 1 1 0

Y = a b c + a b c + a b c
F(a, b, c ) =  m(2,3,6)

Eng.º Adélio F. Tembe, MSc. 29


MULTIPLEXER COMO GERADOR DE FUNÇÕES (exercícios)

1. Implementar a função F(a , b, c, d ) =  m(0,1,4,5,6,9,12,14,15) utilizando:


a) Um multiplexer de 8:1 onde as variáveis de endereço são D e C.
b) Um multiplexer de 16:1.

2. Implementar a função F(a , b, c, d ) =  m(1,4,6,7,10,12,13,14,15) utilizando:


a) Um multiplexer de 8:1 onde as variáveis de endereço são C, B e A.
b) Um multiplexer de 4:1 onde as variáveis de endereço são C e D.

3. Implementar a função F(a , b, c, d ) =  m(6,8,9,10,11,14) utilizando:


a) Um multiplexer de 4:1 onde as variáveis de endereço são C e D.

Eng.º Adélio F. Tembe, MSc. 30


MULTIPLEXER COMO CONVERSOR PARALELO-SÉRIE (exemplo)

Y0
Y1
Y2
Y3
Registo de Mux Y
armazenamento Y4 8:1
(8 bits)
Y5
Y6
Y7

A B C
(Contador)

Eng.º Adélio F. Tembe, MSc. 31


DEMULTIPLEXER
Demux

Enable D0 b I0
D1 b I1

Y b

Dn-1 b In-1

Selecção

Eng.º Adélio F. Tembe, MSc. 32


DEMULTIPLEXER ATRAVÉS DE DESCODIFICADORES
Demultiplexer usando o descodificador 74LS138, onde G 2 A funciona como entrada de
informação.

Decoder
74LS138
VCC
G1 Y0
G2A Y1
G2B Y2
Y3
G 2A
A 1 Y4
Y5 Y5
B 0
Y6
Resta Lógica 1
C 1 Y7 ntes
Saídas
Nota: O descodificador 74x154 (descodificador de 4 para 16 linhas) é também
usado como demultiplexer de 1:16.
Eng.º Adélio F. Tembe, MSc. 33
TRANSMISSÃO DE DADOS
Conjugando um multiplexer e um demultiplexer, podemos estabelecer a ligação
através de um bus entre várias entradas e várias saídas. Isso é realizado da
seguinte forma:

b b I0
D0
b b I1
D1
MUX b DEMUX
Dn-1 b b In-1

s s

Selecção Selecção

Eng.º Adélio F. Tembe, MSc. 34

Você também pode gostar