CAP4 - Circuitos Combinacionais (1)

39

Click here to load reader

Transcript of CAP4 - Circuitos Combinacionais (1)

Page 1: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

52

Capítulo 4: Circuitos Combinacionais Circuitos combinacionais são aqueles cujas saídas dependem somente dos níveis das entradas em qualquer instante. Os circuitos vistos até então possuem esta característica. Aqui serão apresentados circuitos combinacionais que realizam funções específicas.

1. Multiplexadores

Multiplexador, ou seletor de dados, é um circuito lógico que aceita várias entradas de dados e só permite que uma de cada vez alcance a linha de saída. São circuitos utilizados no compartilhamento de um único canal por vários sinais. Operam como chaves seletoras de dados, como mostrado abaixo:

O roteamento do dado que está na entrada que desejamos colocar na saída é controlado pelas entradas de seleção ou entradas de endereço. A figura seguinte apresenta o símbolo de um multiplexador, ou simplesmente mux, com quatro entradas (canais) de dados, C0, C1, C2 e C3, e duas entradas de seleção, S0 e S1. S1 corresponde à entrada de seleção mais significativa. O código digital aplicado as entradas de seleção controla qual dos dados de entrada vai ser colocado na saída.

O número de entradas de seleção é tal que 2M = N, onde N é o número de combinações diferentes das entradas. A cada entrada de seleção está associada uma entrada de dados. O circuito funciona do seguinte modo: a saída assume o nível presente na entrada (canal) de dados Ci enquanto a combinação binária presente nas entradas de seleção (endereço) permanecer equivalente ao decimal “i”. Ou seja:

S1 S0 F 0 0 C0 0 1 C1 1 0 C2 1 1 C3

Page 2: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

53

Exemplo: Projeto de um mux de 2 entradas (canais) de dados. Para um mux de 2 canais de dados (C0 e C1) é necessário somente 1 entrada de endereço (S0).

Modo de operação: S0 F 0 C0 1 C1

Tabela verdade:

S0 C0 C1 F 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1

Mapa de Karnaugh:

C C0 1. C C0 1. C C0 1. C C0 1.

S0 0 0 1 1

S0 0 1 1 0

Equação minimizada:

0010 C.SC.SF +=

Circuito lógico:

O nível lógico aplicado a entrada So determina qual das portas E estará habilitada, de modo que seu dado de entrada passará pela porta OU, em direção a saída.

Vê-se no circuito obtido a característica de seleção da porta AND. Um nível 0 em uma de suas entrada “anula” os demais sinais presentes na mesma porta, enquanto um nível 1 “permite” a passagem do dado, como se vê abaixo:

entrada de dados

entrada de seleção

Page 3: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

54

Para o projeto de um mux com duas entradas, foi necessário um mapa de Karnaugh com três variáveis. Para se projetar um com quatro entradas seria necessário um mapa com seis variáveis. Acima de quatro entradas já é impossível se projetar o mux pelo mapa de Karnaugh. Por isso, passa-se a fazê-lo por analogia ao mux com duas entradas. Exemplo: Projeto do circuito lógico de um mux com 4 entradas (4/1). Temos quatro entradas que são seletivamente transmitidas para a saída, de acordo com as quatro possíveis combinações das duas linhas de seleção So e S1. Cada entrada de dado é identificado por uma combinação diferente dos níveis lógicos presentes nas linhas de seleção.

Modo de operação:

S1 S0 F

0 0 C0 0 1 C1 1 0 C2 1 1 C3

301201101001 CSSCSSCSSCSSF +++=

Circuito lógico:

1.1. Produtos Canônicos

Como já visto, com n variáveis booleanas podem-se fazer 2n combinações. Por exemplo, com 2 variáveis:

A.B=P 1=B e 1=A )d

BA.=P 0=B e 1=A )c

B.A=P 1=B e 0=A )b

B.A=P 0=B e 0=A )a

3

2

1

0

Os produtos P0, P1, P2 e P3 com duas variáveis são denominados produtos canônicos. No caso (a), o produto P0 é igual a 1 somente quando A=0 e B=0. No caso (b), o produto P1 é igual a 1 somente quando A=0 e B=1; e assim sucessivamente.

Page 4: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

55

Pode-se utilizar um circuito gerador de produtos canônicos para implementar um mux. Isto dá ao circuito resultante uma característica modular. Exemplo:

1.2. Entradas Strobe

A entrada denominada strobe (também chamada de enable ou habilitação) em circuitos combinacionais é usada para bloquear a operação do mesmo. Quando assume nível 1, a saída do mux vai a 0 independentemente das entradas de seleção e de dados. Quando assume nível 0, o mux fica liberado. A seguir, exemplo de um mux de 4 canais com entrada strobe (G).

1.3. Aplicação de Multiplexadores

a) Geração de Funções Para o uso de multiplexadores na implementação de funções, deve-se escolher um mux com número de entradas de endereço (seleção) igual ou maior ao número de variáveis da função e relacionar cada entrada de dados com um mintermo da função. Cada variável deve então ser associada à entrada de endereço de mesma significação. Quando a função é igual a 1 para um mintermo, colocar nível 1 nos canais correspondentes. Exemplo: Projeto da função abaixo usando muxs.

∑=m

(0,1,4,5))C,B,A(F

Como a função tem 3 variáveis, escolhe-se um mux com 3 entradas de seleção. Somente os canais de dados 0, 1, 4 e 5 são polarizados com nível 1.

Page 5: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

56

A entrada de dados C7 é a entrada mais significativa (MSB) pois corresponde a combinação das entradas de seleção S2S1S0 = 111 e a entrada de dados C0 é a menos significativa (LSB) pois corresponde a combinação das entradas de seleção S2S1S0 = 000. Por exemplo, se tivermos nas entradas de dados C0= C1= C4= C5= 1 e C2= C3= C6= C7= 0 teremos na saída a seguinte sequência de bits: 00110011, onde o bit mais significativo (MSB) corresponde a C7 e o bit menos significativo (LSB) corresponde a C0. Exercícios: Construir um circuito lógico para as expressões: a) ∑=

m1,14,15)(0,5,6,8,1)D,C,B,A(F b) ∑=

m)(1,4,5,6,7)C,B,A(F

c) Com um MUX de 16/1 (4 variáveis de entrada) obter na saída os números primos.

b) Associação de Multiplexadores Vários multiplexadores podem ser arranjados de modo a expandir o número de entradas de dados. Exemplo 1: Obtenção de mux com 4 canais de dados a partir de muxs de 2 canais de dados.

Ao entrarmos com o endereço AB = 00, deveremos encontrar na saída o informação D0. Com o endereço AB = 01, deveremos encontrar na saída o informação D1, e assim por diante.

Page 6: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

57

Exemplo 2: Obtenção de mux com 16 entradas de dados a partir de muxs de 8 entradas de dados com strobe (enable), um inversor e uma porta OU. O circuito tem um total de 16 dados de entrada, oito dos quais aplicados a cada um dos dois multiplexadores, cujas saídas estão combinadas através da porta OU, para produzirem uma única saída X. As quatro linhas de seleção, S3S2S1S0 vão selecionar uma das 16 entradas e passá-la para a saída X. A entrada S3 determina qual dos multiplexadores estará habilitado. Quando S3=0, o multiplexador de cima é habilitado, e as entradas S2S1S0 determinam quais dos seus dados de entrada vai passar pela porta OU e aparecer na saída X. Quando S3=1, o multiplexador de baixo é habilitado, e as entradas S2S1S0 selecionam uma de suas entradas para aparecer em X.

Co

C1

C3

C4

C5

C6 ZC7

ES2

S1

So

entradade dados

S3

S2

S1

S0

Co

C1

C3

C4

C5

C6 ZC7

ES2

S1

So

entrada dedados

X

Exemplo 3: Obtenção de um MUX de 16 canais de dados utilizando somente blocos de 8 canais de dados. O mux que possui as entradas de seleção curto circuitadas apresentará somente os endereços 000 (A=0) ou 111 (A=1), então só usaremos as entradas de dados C0 e C7 sendo que as demais entradas de dados ficam em aberta (não são endereçadas). A entrada de seleção A é a mais significativa, depois teremos B, C e D.

Page 7: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

58

C0

C1

C2

C3

C4

C5

C6

C7

S2 S1 S0

C0

C1

C2

C3

C4

C5

C6

C7

S2 S1 S0

C0 (000)C1

C2

C3

C4

C5

C6

C7 (111)S2 S1 S0

I0

I1

I2

I3

I4

I5

I6

I7

I8

I9

I10

I11

I12

I13

I14

I15

B C D A (MSB)

S

Exercício: Implementar um multiplexador de 16 canais de dados utilizando dois mux de 8 canais e um de 2 canais de dados. c) Seleção de Palavras Muitas vezes interessa a seleção de uma dentre várias palavras com n bits. Isto é possível pela distribuição conveniente, nos canais de um multiplexador, dos bits das palavras a serem selecionadas. No exemplo apresentado deseja-se selecionar uma entre quatro palavras (X, Y, Z e W), cada uma com 2 bits. Distribui-se a palavra X (X1X0) nos canais 0, a palavra Y (Y1Y0) nos canais 1, a palavra Z (Z1Z0) nos canais 2 e a palavra W (W1W0) nos canais 3 em dois multiplexadores com 4 canais. Uma entrada de seleção, A e B, respectivamente iguais a 0 e 1, por exemplo, seleciona a palavra Y.

Page 8: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

59

1.4. Circuitos Integrados Comerciais

74157 multiplexador 2:1 quádruplo TTL 74153 multiplexador 4:1 duplo TTL 74151 multiplexador 8:1 TTL 74150 multiplexador 16:1 TTL 74253 seletor de dados/multiplexador 4:1 duplo 4019 multiplexador 2:1 quádruplo CMOS

2- Decodificadores

Um decodificador é um circuito lógico que converte um código binário de N bits que lhe é apresentado como entrada, em M linhas de saída, sendo que cada linha de saída será ativada por uma, e somente uma, das possíveis combinações dos bits de entrada (também chamados de códigos). O número de entradas de dados N pode ser um número inteiro qualquer e o número de saídas M é sempre um inteiro menor ou igual a 2N. A figura abaixo apresenta o diagrama funcional de um decodificador simples. Possui 2 entradas de dados (E0 e E1) e 4 saídas (S0, S1, S2 e S3).

Cada uma das M saídas é associada a uma, e somente uma, das 2N combinações de 0’s e 1’s nas entradas. Os decodificadores são classificados como circuitos a multifunção, ou seja, circuitos com mais de uma saída, cada uma correspondendo a uma função booleana. As saídas correspondem a funções com as mesmas variáveis e devem ser projetadas individualmente. Para cada uma das combinações de entrada, apenas uma das M linhas de saída poderá estar ativada (ALTO), devendo as demais estar necessariamente desativadas (BAIXO). Muitos decodificadores são construídos de forma a produzir saídas ativas-BAIXO, onde somente a linha de saída selecionada estará no nível BAIXO, ao passo que todas as demais deverão estar no nível ALTO. Esta situação é indicada com a bolha de inversão nas linhas de saída do decodificador. Funciona da seguinte forma: a saída Si, e somente ela, assume nível 0 quando a combinação de 0’s e 1’s nas entradas for equivalente ao decimal “i”. Exemplo:

Page 9: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

60

E1 E0 S0 S1 S2 S3

0 0 0 1 1 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0

Observa-se neste caso que as saídas ativas estão em nível BAIXO (Low) devido a utilização das portas lógicas NAND.

Dependendo do número de entradas e saídas, os decodificadores recebem denominações especiais, tais como, decodificador hexadecimal (4 para 16 linhas), decimal (4 para 10 linhas) ou decodificador 3/8 (3 para 8 linhas).

2.1. Decodificadores Hexadecimais

A figura seguinte mostra a tabela de combinações e o símbolo de um circuito decodificador comercial típico com 16 saídas. Além das entradas de dados DCBA (D corrrespondendo à entrada mais significativa), o circuito possui, também, entrada para bloqueio tipo strobe (G), ou seja, a habilitação do circuito. Enquanto G permanecer em 1, as saídas, independentemente das entradas de dados, permanecem em 1, ou seja, o circuito não realiza a decodificação. O circuito fica liberado enquanto o strobe permanecer em nível 0.

Entradas Saídas D C B A G S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 X X X X 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0

Decodificador Hexadecimal

Page 10: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

61

No projeto de um decodificador devemos considerar o fato de as 16 funções (S0 S1 S2 ... S15) possuírem as mesmas 5 variáveis (DCBAG). Cada função deve ser projetada individualmente. Seja a expressão algébrica minimizada da função S8 obtida com o mapa de Karnaugh:

S D C B A G8 = + + + +

A mesma expressão poderia ser obtida através de seu único maxtermo. A expressão obtida corresponde a uma porta OR com cinco entradas. Se for convenientemente manipulada podemos obter uma expressão equivalente a uma porta NAND com cinco entradas, ou seja:

S DCBA G8 = .

Nota-se que o termo DCBA corresponde à expressão algébrica do mintermo oito e está diretamente relacionado com a saída S8. Ou seja, considerando a similaridade das demais funções do decodificador, podemos concluir, sem a necessidade da implementação da cada função no mapa de Karnaugh, que:

S DCBA G0 = . S DCBA G4 = . S DCBA G8 = . S DCBA G12 = .

S DCBA G1 = . S DCBA G5 = . S DCBA G9 = . S DCBA G13 = .

S DCBA G2 = . S DCBA G6 = . S DCBA G10 = . S DCBA G14 = .

S DCBA G3 = . S DCBA G7 = . S DCBA G11 = . S DCBA G15 = . Estas equações são usadas para a obtenção do circuito decodificador hexadecimal com entrada strobe.

2.2. Decodificadores Decimais

São apresentados a seguir o diagrama funcional, a tabela de combinações e as equações algébricas obtidas de forma similar àquelas do hexadecimal, com a exclusão da entrada G.

Entradas Saídas D C B A S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0

Decodificador Decimal

Page 11: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

62

Seja a expressão algébrica da função S0 obtida através de seu único maxtermo ou minimizada com o mapa de Karnaugh:

ABCDS0 +++=

A expressão obtida corresponde a uma porta OR com quatro entradas. Se for convenientemente manipulada podemos obter uma expressão equivalente a uma porta NAND com quatro entradas, ou seja:

ABCDS0 =

Nota-se que o termo ABCD corresponde à expressão algébrica do mintermo zero e está diretamente relacionado com a saída S0. Ou seja, considerando a similaridade das demais funções do decodificador, podemos concluir, sem a necessidade da implementação da cada função no mapa de Karnaugh, que:

S DCBA0 = S DCBA1 = S DCBA2 = S DCBA3 = S DCBA4 =

S DCBA5 = S DCBA6 = S DCBA7 = S DCBA8 = S DCBA9 = Nos decodificadores decimais, ou BCD-decimal, não é apresentada a lei de formação para números maiores do que 9, no entanto, se utilizarmos 4 variáveis de entrada teremos 16 combinações possíveis, portanto, tanto faz o valor assumido nas possibilidades excedentes já que estas não irão ocorrer. Normalmente, nos CI’s comerciais com saídas ativo-BAIXO, as combinações correspondentes aos decimais 10 a 15 apresentam todas as saídas em 1.

2.3. Decodificadores 3/8

A tabela abaixo representa o modo de funcionamento de um decodificador 3/8. Trata-se de um decodificador 3 para 8 linhas, ou seja, um decodificador com 8 canais de saída. Também é chamado de decodificador 1 de 8 pois apenas uma dos 8 canais está ativo em cada instante.

Entradas Saídas C B A S0 S1 S2 S3 S4 S5 S6 S7 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0

C, B e A são as entradas de seleção, onde C corresponde à entrada mais significativa. As

equações para implementação do decodificador 3 para 8 linhas são obtidas de forma análoga aos decodificadores anteriores. Se as saídas são ativo-BAIXO a implementação do circuito é realizada com portas NAND. Poderíamos utilizar um decodificador com saídas ativo-ALTO, ou seja, com a saída habilitada em 1 e as demais saídas desabilitadas em 0. Para implementar o circuito ativo-ALTO são utilizadas portas AND. O circuito integrado 74138 pode ser utilizado como decodificador 1 para 8. Este CI possui 3 entradas de habilitação ( 1E , 2E e E3) que são usadas para controlar a operação do circuito. Estas entradas de habilitação estão ligadas a uma porta AND e a saída desta AND deve

Page 12: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

63

estar em nível lógico ALTO para habilitar o decodificador e este responder as entradas A2A1A0. Isto só vai ocorrer quando 1E = 2E =0 e E3=1. Se uma das entradas de habilitação estiver no seu nível inativo, a saída da AND será BAIXO e o decodificador estará desabilitado, independente do código aplicado na entrada.

A2

A1 Decodificador - 74138

A0

código deseleção

O7 O6 O5 O4 O3 O2 O1 O0

Entrada de habilitação E1 E2 E3

Porta AND interna, Habilitada em nível ALTO

2.4. Aplicações

a) Geração de funções Um decodificador com n entradas pode ser usado para implementar qualquer função com n variáveis, desde que: i) Cada linha de saída seja associada a um dos mintermos da função; ii) As entradas de mesma significação da função e do decodificador sejam interligadas; iii) Se a saída do decodificador for ativo-BAIXO, a saída da função será obtida de uma porta NAND cujas entradas coincidam com as saídas do decodificador correspondentes a mintermos para os quais a função assume 1. iv) Se a saída do decodificador for ativo-ALTO, a saída da função será obtida de uma porta OU cujas entradas coincidam com as saídas do decodificador correspondentes a mintermos para os quais a função assume 1. Por exemplo, deseja-se implementar a função F(X,Y,Z,W) = ∑m(1, 3, 6, 7, 10) usando decodificador:

Exercício: Implementar um detetor de números primos utilizando um decocificador com saída ativo-BAIXO.

Page 13: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

64

b) Associação de decodificadores Um arranjo conveniente de circuitos decodificadores pode ser desenvolvido para a obtenção de um circuito equivalente a um decodificador com número de saídas elevado. O procedimento apresentado a seguir vale para decodificadores que possuam entradas tipo enable ou strobe: i) Selecionar o circuito integrado; ii) Interligar as entradas com mesma significação; ii) Obter as entradas de dados a partir das entradas do tipo enable. iv) Projetar um circuito de controle que garanta a operação de apenas um dos decodificadores, enquanto os demais ficam bloqueados. O próximo exemplo apresenta a associação de dois decodificadores com 16 canais para a obtenção de um circuito equivalente a um decodificador com 32 canais. Nas 16 primeiras combinações E4 = 0, o que garante o bloqueio do decodificador inferior.

Exercício: Mostrar como o 74138 pode ser configurado para funcionar como um decodificador 1 de 16, ou seja, uma saída ativa das 16.

2.5. Circuitos Integrados Comerciais

A tabela abaixo apresenta alguns dos circuitos integrados decodificadores. 74138 decodificador/demultiplexador 3 para 8 linhas 7442 decodificador de BCD para decimal 7445 decodificador de BCD para decimal coletor aberto

74154 decodificador/demultiplexador de 4 para 16 linhas

Page 14: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

65

3- Codificadores

Os codificadores (encoders) executam operação inversa dos decodificadores. Um codificador opera com entradas que têm a característica de, em qualquer momento, somente uma ser escolhida para ter nível lógico diferente de todas as outras. As entradas do codificador muitas vezes são as saídas de um decodificador. Para cada linha de entrada escolhida, uma palavra de código correspondente aparece nas linhas de saída. A figura abaixo apresenta o diagrama funcional de um codificador simples. Possui 4 entradas de dados (E0, E1, E2 e E3) e 2 saídas (S0 e S1). Em geral, não é necessário que exista uma relação especial entre o número de linhas de entrada e o número de linhas de saída. Cada uma das N entradas Ei é associada ao decimal “i”. Quando um nível 0 é colocado na entrada Ei, o equivalente binário ao decimal “i” aparece nas M saídas.

E0 E1 E2 E3 S1 S0

0 1 1 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 0 1 1

Já estudamos o funcionamento de um decodificador 3 para 8 e vimos que ele aceita um código de entrada de três bits e ativa uma das oito linhas de saída correspondente a este código. Um codificador 8 para 3 realiza a função exatamente oposta: ele aceita oito linhas de entrada e produz um código de três bits na saída, correspondente a entrada ativada. A figura abaixo mostra o diagrama lógico do codificador octal-binário com entradas ativas-BAIXO e sua tabela verdade. Podemos verificar que um nível BAIXO em qualquer uma das entradas vai produzir um código

binário na saída correspondente a entrada ativada. Por exemplo, um nível BAIXO 3A (enquanto todas as demais entradas estiverem em ALTO) produzirá na saída 011, que vem a ser o código

binário correspondente a 3. Note que 0A não está conectado as portas lógicas, pois a saída do

decodificador deve ser 000 quando nenhuma das entradas 1A a 9A estiver em BAIXO.

O0

LSB

O1

O2

MSB

A0

A1

A2

A3

A4

A5

A6

A7

8entradas

0A 1A

2A 3A

4A 5A

6A 7A O2 O1 O0

X 1 1 1 1 1 1 1 0 0 0 X 0 1 1 1 1 1 1 0 0 1 X 1 0 1 1 1 1 1 0 1 0 X 1 1 0 1 1 1 1 0 1 1 X 1 1 1 0 1 1 1 1 0 0 X 1 1 1 1 0 1 1 1 0 1 X 1 1 1 1 1 0 1 1 1 0 X 1 1 1 1 1 1 0 1 1 1

Page 15: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

66

75310

76321

76542

AAAAO

AAAAO

AAAAO

+++=

+++=

+++=

Exercícios: 1- Projetar o codificador acima com entrada ativo-ALTO. 2- Projetar o seguinte codificador:

entrada saída I0 00110011 I1 11110000 I2 01010101 I3 00011100

O codificador pode ser usado na interface entre um teclado e um circuito digital. Quando uma tecla é pressionada, apenas uma das várias saídas do teclado é desativada (nível 0) e consequentemente, apenas uma das entradas do codificador recebe sinal 0. Desta forma, o binário na saída do codificador corresponde ao decimal da tecla pressionada.

A tabela de combinações abaixo representa o codificador com prioridade. Isto porque quando duas entradas forem acionadas ao mesmo tempo, a saída responderá à entrada com maior índice, ou seja, se as entradas E5 e E4 forem acionadas simultaneamente, o circuito optará por fornecer o binário equivalente ao decimal 5. Assim, a entrada E5 tem prioridade sobre as entradas E4, E3, E2, E1 e E0. A entrada EI corresponde à entrada enable. Quando em nível 0, o circuito fica habilitado. As saídas (S2, S1 e S0) apresentam resultado na forma complementar, ou seja, quando a entrada E5 é acionada (nível 0), em vez de apresentar o resultado 101 (decimal 5), apresenta 010 (complemento de 5).

Entradas Saídas EI E0 E1 E2 E3 E4 E5 E6 E7 S2 S1 S0 GS E0 1 X X X X X X X X 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0

Page 16: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

67

0 X X X X X X X 0 0 0 0 0 1 0 X X X X X X 0 1 0 0 1 0 1 0 X X X X X 0 1 1 0 1 0 0 1 0 X X X X 0 1 1 1 0 1 1 0 1 0 X X X 0 1 1 1 1 1 0 0 0 1 0 X X 0 1 1 1 1 1 1 0 1 0 1 0 X 0 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1

GS e E0 correspondem às saídas de controle. Quando em operação (EI = 0) são complementares entre si. Quando EI = 0, GS assume 0 enquanto uma tecla permanecer pressionada. Quando a tecla é liberada, GS retorna ao nível 1. Os sinais gerados em GS e E0 são usados, por exemplo, nas entradas tipo clock (relógio) de registradores para armazenamento de dados, os quais serão vistos posteriormente. 3.1. Circuitos Integrados Comerciais

A tabela abaixo apresenta alguns dos circuitos integrados codificadores.

74147 codificador decimal-BCD com prioridade 74148 codificador de 8 para 3 linhas com prioridade

4- Demultiplexadores

Estes circuitos realizam a operação inversa àquela dos multiplexadores. A informação recebida acessa uma única entrada de dados. Esta informação é enviada para uma das N saídas definida por uma combinação binária presente nas M entradas de seleção. O número M de entradas de seleção é tal que 2M = N. Assim, cada uma das 2M combinações binárias possíveis nas entradas de seleção corresponde a um dos N canais de saída. Em outras palavras, o demultiplexador pega bits de uma fonte de dados, um de cada vez, e os distribui seletivamente para um dos N caminhos de saída, como se fosse uma chave seletora de diversas posições.

Abaixo, a tabela correspondente à figura anterior e a estrutura lógica de um

demultiplexador de uma linha para quatro linhas (1/4). Note que este último é um decodificador com a modificação que cada porta tem uma entrada adicional a qual é ligada à linha de dados.

Entradas de seleção Decimal Destino S1 S0 Equivalente do Dado 0 0 0 C0 0 1 1 C1 1 0 2 C2 1 1 3 C3

Page 17: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

68

4.1. Aplicações

a) Associação de demultiplexadores O prodedimento é similar àquele usado na associação de decodificadores e multiplexadores. Como exemplo é apresentado o circuito equivalente a um demultiplexador com 16 saídas.

b) Uso do decodificador como demux Um decodificador, quando ligado convenientemente, pode realizar a função de um demux. Abaixo são apresentados os procedimentos para obtenção de um demux a partir de um decodificador: i) No caso de decodificadores com N entradas, considera-se a entrada mais significativa do decodificador como entrada de dados; ii) Considera-se as demais entradas do decodificador como entrada de seleção do demux; iii) Das 2N saídas do decodificador, considera-se as primeiras 2N-1 saídas menos significativas como saídas do demux.

Page 18: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

69

A entrada D (a mais significativa) é usada como entrada de dados, enquanto as demais entradas (C, B e A) como entradas de seleção do demultiplexador. Somente as oito primeiras saídas do decodificador foram consideradas como saídas do demux. Exercício: O 74154 é um decodificador que pode ser usado como demultiplexador de 16 saídas. Este CI possui 4 entradas de dados, 16 saídas e 2 entradas de habilitação ativo-BAIXO. Utilize CI’s 74154 para construir um demux de 32 canais. O circuito integrado 74138 pode ser utilizado como decodificador 1 para 8, mas também como um demultiplexador. A entrada de habilitação 1E é usada como entrada de dados, enquanto as duas outras entradas de habilitação são mantidas em seus estados ativos. As entradas A2A1A0 são usadas como linhas de seleção. Para ilustrar a operação do circuito vamos assumir que as entradas de seleção são 000. Com tal código de entrada a única saída ativa é 0O , ao passo

que todas as demais estão no nível alto. 0O assume nível alto se 1E for para alto e assume nível

baixo de 1E for para o nível baixo. De forma idêntica, um outro código aplicado as entradas A2A1A0 vai fazer com que a saída selecionada siga o dado na entrada de dados.

Entrada de dados

+5V E1 E2 E3

A2

A1 Decodificador/demultiplicador - 74138

A0

código deseleção

O7 O6 O5 O4 O3 O2 O1 O0

4.2. Circuitos Integrados Comerciais

A tabela abaixo apresenta alguns dos circuitos integrados demultiplexadores.

74154 decodificador/demultiplexador de 4 para 16 linhas 74155 decodificador/demultiplexador duplo de 2 para 4 linhas 74138 decodificador/demultiplexador de 3 para 8 linhas

Page 19: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

70

5 Conversores de Códigos

Freqüentemente, uma informação disponível em forma codificada deve ser traduzida para um código diferente. Um circuito lógico que realiza esta tradução é chamado conversor de

código. Um conversor de código pode ser construído ligando um decodificador a um codificador em cascata, conforme a figura abaixo. Um arranjo particular de bits identifica uma linha Z. Correspondendo à linha Z selecionada, um outro arranjo particular de bits, ou seja, uma palavra característica, aparecerá na saída do codificador. O número máximo de palavras de saída possível é 2M, mas o número de bits na palavra de saída não precisa guardar nenhuma relação especial com o número de linhas de entrada do decodificador.

Z0

Z1.

ZN-1

CodificadorDecodificador

A0

A1.

.

AM-1

B0

B1.

.

BK-1

5.1. Conversor BCD para 7 segmentos

Um exemplo de conversor de código aparece em conexão com o dispositivo digital de display representado abaixo. Este dispositivo, chamado display de sete segmentos, possui sete segmentos, identificados pelas letras de a a g, que podem ser iluminados individualmente para formar os dígitos decimais de 0 a 9 e algumas vezes os hexadecimais de A a F. A iluminação é feita através de diodos emissores de luz (LEDs) que são feitos de um material que emite luz quando a corrente elétrica passa por eles.

Nos casos destes displays, um decodificador especial, decodificador para sete segmentos, aciona convenientemente um grupo desses segmentos para formar o caracter desejado. Por exemplo, se a entrada BCD (decimal codificado em binário) for DCBA = 0100, correspondente ao decimal 4, o decodificador aciona os segmentos bcfg, ou seja, os leds contidos em tais segmentos são acesos. A disposição dos leds no interior dos segmentos pode ser segundo uma das formas apresentas a seguir:

Page 20: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

71

Decodificadorpara 7

SegmentosTipo

AnodoComum

Decodificadorpara 7

SegmentosTipo

CatodoComum

DCBA

DCBA

Vcc

Na figura anterior à esquerda o anodo é ligado a Vcc. Neste caso, cada led acende com um nível 0 colocado no seu catodo pelo decodificador para 7 segmentos. O display é conhecido como do tipo anodo comum, por exemplo, o 7446. No caso da figura à direita, o catodo é ligado à terra. Neste caso, o led acende com um nível 1 colocado no seu anodo pelo decodificador para sete segmentos. O display é conhecido como do tipo catodo comum, por exemplo, o 7448. Ao se adquirir um display, deve-se cuidar para que ele seja compatível com o decodificador, ou seja, ambos devem ser do mesmo tipo: anodo ou catodo comum. Enquanto os leds operam emitindo luz, os displays tipo cristal líquido (Liquid-Crystal-

Display - LCD) operam refletindo a luz. A grande vantagem dos LCDs sobre os LEDs está no seu baixo consumo, da ordem de nanowatts. Por esta razão, são usados largamente em circuitos alimentados por baterias, tais como calculadoras e relógios. Não há concordância completa sobre a terminologia a ser aplicada a conversores de código. Por exemplo, o conversor de código BCD para sete segmentos descrito acima, que é um componente comercial disponível, é chamado, por alguns fabricantes, decodificador porque o conversor de código acoplado ao display recebe a entrada em BCD e mostra a mesma explicitamente. Vista desta maneira, a combinação de conversor e display constitui-se em um decodificador e, por extensão, o termo é aplicado também ao conversor de código.

5.2. Conversor BCD 8421 para Excesso de 3

Monta-se a tabela verdade na qual as entradas são os bits do código de BCD 8421 e as saídas são os respectivos bits do código Excesso de 3.

BCD 8421 Excesso 3 A B C D S3 S2 S1 S0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 0 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 1 0 1 0 0 0 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 0 X X X X 1 0 1 1 X X X X 1 1 0 0 X X X X 1 1 0 1 X X X X 1 1 1 0 X X X X 1 1 1 1 X X X X

Page 21: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

72

Nota-se que o código Excesso de 3 é utilizado aqui para representar até o algarismo 9. As outras possibilidades não irão ocorrer, logo, para estas condições a resposta torna-se irrelevante. Da tabela são extraídas as expressões:

S ABCD ABCD ABCD ABCD ABCD3 = + + + + S ABCD ABCD ABCD ABCD ABCD2 = + + + + S ABCD ABCD ABCD ABCD ABCD1 = + + + + S ABCD ABCD ABCD ABCD ABCD0 = + + + + Para simplificar as expressões, utiliza-se o mapa de Karnaugh:

S3 CD CD CD CD AB 0 0 0 0

AB 0 1 1 1

AB X X X X

AB 1 1 X X

S A BD BC3 = + +

S2 CD CD CD CD AB 0 1 1 1

AB 1 0 0 0

AB X X X X

AB 0 1 X X

S BD BC BCD2 = + +

S1 CD CD CD CD AB 1 0 1 0

AB 1 0 1 0

AB X X X X

AB 1 0 X X

S CD CD1 = +

S0 CD CD CD CD AB 1 0 0 1

AB 1 0 0 1

AB X X X X

AB 1 0 X X

S D0 = O circuito decodificador/conversor fica:

Page 22: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

73

Ao ser aplicado o código BCD nos terminais de entrada A, B, C e D, aparecerá o código Excesso de 3 nos terminais de saída S3, S2, S1 e S0. O procedimento anterior é o mesmo para o projeto de quaisquer conversores de códigos. Dados dois códigos, um de entrada e outro de saída, projeta-se o circuito combinacional que realiza a conversão entre eles utilizando-se a tabela verdade dos respectivos códigos e o mapa de Karnaugh para simplificá-lo. Exercícios: Projetar o circuito combinacional para realizar a conversão:

1- do código Gray para binário. 2- de BCD para binário. 3- de binário para BCD. 4- de excesso 3 para BCD 5- de BDC para o código deGray. 6- de BCD para código de 7 segmentos.

6- Circuitos Aritméticos Denomina-se circuito aritmético àquele capaz de executar operações aritméticas, tais como adição, subtração, multiplicação e divisão. As operações aritméticas no sistema binário seguem o mesmo princípio usado na aritmética decimal. 6.1. Adição

Para executar a adição de dois números binários, deve-se fazer uso da seguinte tabuada:

0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 e vai 1

1 + 1 + 1 = 1 e vai 1

Page 23: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

74

Este último caso acontece quando há dois bits 1 em determinada posição e o carry (vai um) gerado pela posição anterior é 1. O bit vai um (carry) corresponde ao conhecido transporte na adição decimal. Por exemplo, 9 + 8 = 7 e vai 1. Exemplo: Realizar a operação 12 + 6 em binário.

1 1 1 1 0 0 +

0 1 1 0 1 0 0 1 0

Solução: 100102 = 1810 Adição Binária versus Adição Lógica- É importante entender a diferença entre adição lógica e adição binária. A adição lógica corresponde à adição booleana OU, realizada pela porta lógica OU, a qual produz uma saída 1 sempre que uma ou mais de suas entradas for 1. A adição binária é uma adição aritmética que produz a soma algébrica de dois números distintos. Embora o símbolo + seja utilizado para indicar ambas as operações, o seu significado estará claramente definido pelo contexto em que for utilizado. Adição lógica Adição binária 1 + 1 = 1 1 + 1 = 0 e vai 1 1 + 1 + 1 = 1 1 + 1 + 1 = 1 e vai 1 Exercícios: Adicione aritmeticamente os seguintes números binários: (a) 10110 + 00111, (b) 011.101 + 010.010, (c) 10001111 + 00000001, (d) 1010 + 1011 O objetivo a seguir é projetar um circuito com portas lógicas que permita a obtenção da soma de duas palavras (A e B), cada uma com 4 bits:

C4 C3 C2 C1 0 ← Transporte Palavra A → A4 A3 A2 A1 +

Palavra B → B4 B3 B2 B1

S4 S3 S2 S1 O circuito que vai executar a soma dos bits A1 e B1 é conhecido como somador incompleto. Ele possui duas entradas (A1 e B1) e fornece duas saídas: a soma S1 e o transporte C1. Este transporte será acrescentado à soma dos bits A2 e B2. O circuito que vai executar a soma dos bits 2, 3 e 4, ou seja, A2 com B2, A3 com B3 e A4 com B4 é conhecido como somador completo. Ele possui três entradas: Ai, Bi (i = 2, 3, 4) e Cj (j = 1, 2, 3). Fornece duas saídas: a soma dos bits correspondente e o transporte. 6.1.1. Somador Incompleto (Half Adder)

Entradas Soma Carry Ai Bi Si Ci 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1

Si = Ai ⊕ Bi

Page 24: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

75

Ci = Ai Bi

6.1.2. Somador Completo (Full Adder)

Ci Ai Bi Si 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

Si = Ai ⊕ Bi ⊕ Ci Co = Ai Bi + Ci Ai + Ci Bi

O circuito que executa a soma de duas palavras de 4 bits pode ser obtido pelo cascateamento de um somador incompleto e três somadores completos (somador paralelo), conforme a figura abaixo. O útimo carry (C4) pode ser usado como um sinal de overflow (erro de transbordo). Ele será igual a 1 quando a soma das duas parcelas ultrapasar o decimal 15. Pode ser considerado como o bit mais significativo do resultado. Por outro lado, o somador incompleto da figura anterior pode ser substituído por um somador completo desde que o carry de entrada seja colocado em nível 0.

6.1.3. Somador Completo a partir de Meios Somadores

Page 25: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

76

Pode-se construir um somador completo com dois meios somadores a partir da análise das expressões de ambos. Para o meio somador tem-se:

Si = Ai ⊕ Bi Ci = Ai Bi

E para o somador completo:

Si = Ai ⊕ Bi ⊕ Ci Co = Ai Bi + Ci Ai + Ci Bi = Ci (Ai ⊕ Bi) + Ai Bi

6.2. Subtração Para executarmos a subtração de dois números binários, devemos fazer uso da seguinte tabuada:

0 − 0 = 0 0 − 1 = 1 e empresta 1 1 − 0 = 1 1 − 1 = 0

O bit empresta (borrow) tem o mesmo significado daquele do sistema decimal. Por exemplo, 7 - 9 = 8 e empresta 1. Exemplo: Realizar a subtração dos números 1100 e 0110.

-1 -1 1 1 0 0 - 0 1 1 0 0 1 1 0

Solução: 01102 = 610 Aqui se pode adotar um procedimento similar à adição no projeto de circuitos subtratores incompleto e completo. 6.2.1. Subtrator Incompleto

Page 26: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

77

Entradas Subtração Empréstimo

A1 B1 S1 E1 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0

S A B1 1 1= ⊕ E A B1 1 1= ⋅

6.2.2. Subtrator Completo

Ei Ai Bi Si Eo 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1

S A B Ei i i i= ⊕ ⊕ Ei iEi ii io B + A + BAE =

6.3. Somador/Subtrator Completo Agora pode-se realizar um circuito que realize as duas operações. Para isso é introduzida outra entrada que permanecendo em nível 0, faz o circuito efetuar uma soma completa e, permanecendo em nível 1, efetua uma subtração completa. Monta-se a tabela verdade deste circuito sendo M a variável de controle, Ti o transporte de entrada e To o transporte de saída:

EI

EI

E0

Page 27: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

78

M A B Ti S To 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 0 0 1 1 1 1 0 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 0 0 1 1 1 0 0 0 1 1 1 1 1 1

As equações simplificadas ficam:

S = A ⊕ B ⊕ Ti To = B.Ti + (M ⊕ A).(B + Ti)

Exercícios: 1- Implementar o circuito somador/subtrator com portas lógicas. 2- Esquematizar o circuito de um subtrator completo para dois números de quatro algarismos

utilizando blocos subtratores.

6.4. Números Negativos

A operação subtração pode ser executada através de um procedimento de adição. 6.4.1. Representação sinal-magnitude

Esta notação utiliza um bit a mais para a distinção entre números positivos e negativos. Quando o número é negativo, o bit mais à esquerda deve ser 1; já quando o número é positivo este bit deve ser 0. Exemplo:

+14 = 01110 -14 = 11110

6.4.2. Complemento de 1

Neste caso, o número negativo é obtido do complemento, bit a bit, do número positivo. Exemplo: Representar o -14 em complemento de 1.

-14 = 0001 6.4.3. Complemento de 2

O número negativo é obtido da representação em complemento de 1 acrescido de uma unidade. Se n bits são usados para escrever um número, pode-se mostrar que inteiros de (-2n-1) a (2n-1)-1 podem ser representados de maneira única, incluindo o zero.

Page 28: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

79

Por exemplo: com 2 bits temos 4 números que podem ser escritos - -2, -1, 0, 1; com 3 bits temos 8 números diferentes que podem ser representados: -4, -3, -2, -1, 0, 1, 2, 3; com 4 bits podemos representar os números de –8 a +7. Exemplo: Representar o -14 em complemento de 2.

Neste exemplo são necessários, pelo menos, 5 bits, já que este número está entre 15 e -16.

0 1 1 1 0 (14 em 5 bits)

1 0 0 0 1 (14 em C1) + 1

1 0 0 1 0 (14 em C2) Dado um número representado em complemento de 2, pode-se saber se este número é positivo ou negativo observando seu bit mais à esquerda. Se for igual a 0 o número é positivo, e se for igual a 1 o número é negativo. Podemos utilizar outro método para obter o complemento de 2: começando pelo bit menos significativo e movendo-se para a esquerda, repetimos cada bit até passarmos pelo primeiro bit 1, a partir daí complementamos cada bit. Representação de números com sinal em complemento de 2: O sistema em complemento de 2 para representação de números binários com sinal funciona como a seguir: • Se o número é positivo, a magnitude é representada na forma normal do número, com um bit

de sinal de valor 0, colocado a esquerda do bit mais significativo da magnitude. Exemplo: +45=0101101.

• Se o número é negativo, a magnitude é representada na forma de complemento de 2 do número, e um bit de sinal de valor 1 é colocado a esquerda do bit mais significativo da magnitude. Exemplo: -45=1010011.

O módulo de um número negativo representado em complemento de 2 pode ser obtido realizando-se a operação mostrada no exemplo a seguir. Exemplo: Seja o número 10010 em complemento de 2. Obter o módulo deste número.

1 0 0 1 0 (C2)

0 1 1 0 1 (C1) + 1

0 1 1 1 0 (módulo) Ou seja: 011102 = 1410 Portanto, o número binário 10010, em complemento de 2, representa o decimal -14.

Exercícios: 1- Transforme os números decimais em números binários, representando em complemento de 2.

Use um total de cinco bits, incluindo o do sinal: (a) +13, (b) –9, (c) +3, (d) –2, (e) –8. 2- Transforme os números decimais em números binários, representando em complemento de 2.

Use um total de oito bits, incluindo o do sinal: (a) +32, (b) –14, (c) +63, (d) –104, (e) –1.

Page 29: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

80

3- Cada número binário está representado em complemento de 2. Determine o valor decimal de cada um deles: (a) 01100, (b) 11010, (c) 10001, (d) 100011, (e) 1000000, (f) 0111111, (g) 01111011, (h) 100000, (i) 11111111, (j) 10000001.

A operação em complemento de 2 permite transformar uma operação de subtração em uma operação de soma. Pode-se mostrar que quando inteiros sinalizados em complemento de 2, se adicionados na maneira usual, o resultado será corretamente expresso em complemento de 2 sendo que somente os n bits menos significativos são considerados. As parcelas que serão adicionadas devem apresentar sempre o mesmo número de bits e o resultado também terá o mesmo número de bits. Exemplo 1: Realizar a operação 72-35 em complemento de 2.

Tem-se que 72-35 = 72 + (-35) e n deve ser, no mínimo, igual a 8, caso não seja especificado nenhum outro valor (possível). Desse modo: 7210 = 010010002 3510 = 001000112 ⇒ 11011100 (C1) ⇒ 11011101 (C2)

0 1 0 0 1 0 0 0 + 1 1 0 1 1 1 0 1

1 0 0 1 0 0 1 0 1

O resultado obtido é 00100101. É um número positivo e corresponde ao decimal 37.

Exemplo 2: Realizar a operação -29-90 em complemento de 2.

Tem-se que -29-90 = -29 + (-90) e n deve ser, no mínimo, igual a 8, já que o resultado deve ser -119 e será expresso em complemento de 2. Desse modo: 2910 = 000111012 ⇒ 11100010 (C1) ⇒ 11100011 (C2) 9010 = 010110102 ⇒ 10100101 (C1) ⇒ 10100110 (C2)

1 1 1 0 0 0 1 1 + 1 0 1 0 0 1 1 0

1 1 0 0 0 1 0 0 1

O resultado obtido é 10001001. É um número negativo e, portanto, está em complemento de 2. Para obtermos o

módulo do número correspondente em decimal devemos obter o complemento de 2 do resultado e, teremos, o decimal -119.

Descartado – o resultado contém o mesmo número de bits que as parcelas

Descartado

Page 30: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

81

Exercícios: 1- Realize as operações: a) 20 + 15 b) 20 – 15, c) –20 + 15, d) –20 – 15. 2- Adicione os seguintes números binários com sinal. Expresse a soma como número binário e

como decimal: (a) 100111 + 111011, (b) 100111 + 011001. 3- Encontre o resultado da subtração dos pares de números listados a seguir, representados em

complemento de 2. Expresse o resultado em binário e como decimal: (a) 01001 – 11010, (b) 10010 - 10011.

4- Efetue as seguintes operações no sistema em complemento de 2. Use oito bits, incluindo o do sinal, para cada número. Verifique os resultados convertendo de volta para o sistema decimal. (a) adicione +9 a +6, (b) adicione +14 a –17, (c) adicione +19 a –24, (d) adicione -48 a –80, (e) subtraia +16 de +17, (f) subtraia +21 de –13, (g) subtraia –36 de –15.

6.5. Multiplicação e Divisão

Multiplicação e divisão no sistema binário são efetuadas da mesma maneira que no sistema decimal. Exemplo de multiplicação em aritmética binária:

1 1 1 0 × 1 0 1 1 1 1 0 0 0 0 0 1 1 1 0

1 0 0 0 1 1 0 Exemplo de divisão em aritmética binária:

1 0 0 1 0 0 1 1 0 1 1 0 1 1 1 1 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1

Exercícios: 1- Multiplique os seguintes pares de números: (a) 111 x 101, (b) 1011 x 1011, (c) 101.101 x 110.010, (d) .1101 x .1011 2- Efetue as seguintes divisões: (a) 1100 ÷ 100, (b) 111111 ÷ 1001, (c) 10111 ÷ 100

7- Comparadores

Este tipo de circuito é usado quando se deseja fazer a comparação entre as magnitudes de duas palavras (A e B), cada uma com n bits. O circuito meio-comparador indica as relações entre duas variáveis, sendo cada uma constituída de um bit. Sua tabela verdade fica:

← Resto

Page 31: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

82

A B A > B A < B A = B 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1

As expressões lógicas são dadas por:

BAB AB AF

B AF

B AF

)BA(

)BA(

)BA(

⊕=+=

=

=

=

<

>

E o circuito:

Em um comparador completo as saídas do meio-comparador são combinadas com os dois bits de entrada do primeiro para a formação das saídas. Portas OU-EXCLUSIVO também podem ser usadas para comparar dois números e determinar se eles são iguais. O circuito compara os dois números bit a bit sendo que o bit menos significativo de cada uma das palavras é colocada numa ou-exclusiva, a seguir o próximo bit até chegarmos nos bits mais significativos. A saída de cada porta ou-exclusiva é colocada como entrada de uma NÃO-OU. Um 0 na saída da NÃO-OU indica que os números não são iguais e um nível 1 na saída significa que os números são iguais.

8- Unidade Lógica-Aritmética (ULA)

Uma unidade lógica-aritmética (ULA) é um dispositivo combinacional que aceita duas palavras de entrada de n bits A = An-1...A0 e B = Bn-1...B0. As entradas A e B podem ser números ou, simplesmente, representar alguma informação arbitrária codificada em forma binária. A ULA tem uma entrada de modo M e um número de bits seletores de função S0, S1, ... A ULA gera uma função de saída F = Fn-1...F0, que é relacionada às entradas por lógica ou aritmética. A entrada de modo M determina se a função gerada é lógica ou aritmética. Os bits seletores de função determinam a função específica a ser gerada. Como um somador de diversos bits, uma ULA pode ser construída como uma cascata de estágios idênticos, conforme indicado na figura . Aqui se usou dois bits seletores de função. Uma estrutura de portas possível para cada um dos estágios (idênticos) é mostrada na figura 1b. Quando uma operação lógica for desejada, faz-se M = 0. No modo aritmético M= 1 e a porta que recebe o vai-um é habilitada.

Page 32: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

83

Figura 1a

Figura 1b Abaixo, as tabelas de funções geradas pela estrutura lógica da figura 1. Observe que nas duas últimas, o símbolo “+” é usado para indicar uma soma e não uma operação lógica OU.

Função lógica com M = 0 Função S1 S0 Lógica Fi Comentário 0 0 Fi = Ai Entrada A transferida para a saída 0 1 Fi = Ai Entrada A complementada e transferida 1 0 Fi = Ai ⊕ Bi OU-EXCLUSIVO 1 1 Fi = Ai ⊕ Bi NÃO-OU-EXCLUSIVO

Funções aritméticas com M = 1 e C0 = 0

Função S1 S0 Aritmética F Comentário 0 0 F = A Entrada A transferida para a saída 0 1 F = A Complemento de um de A 1 0 F = A + B Soma de A e B 1 1 F = A + B Soma de B e complemento de um de A

Funções aritméticas com M = 1 e C0 = 1

Page 33: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

84

Função S1 S0 Aritmética F Comentário 0 0 F = A + 1 Incrementa A 0 1 F = A + 1 Complemento de dois de A 1 0 F = A + B + 1 Incrementa soma de A e B 1 1 F = A + B + 1 B menos A

9- Geradores e Detetores de Paridade

Freqüentemente um bit extra é adicionado a uma palavra binária para dar paridade a esta palavra, ou seja, para podermos testar se algum bit da palavra mudou ao longo da transmissão de dados de um circuito a outro.

Uma palavra binária tem paridade par ou ímpar conforme o número de bits iguais a 1 na palavra for par ou ímpar. Assim o byte 10000011 tem paridade ímpar e o byte 10000001 tem paridade par. O estabelecimento de paridade é vantajoso quando as palavras devem ser transmitidas de um ponto a outro e existe a possibilidade de que distúrbios aleatórios possam causar erros na transmissão de modo que um 1 transmitido seja recebido como um 0 ou vice-versa.

9.1. Circuito gerador de paridade

Dada uma palavra com 3 bits, deseja-se realizar um circuito que dê paridade ímpar a esta palavra.

A2 A1 A0 P 0 0 0 1 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0

Logo, 012 AAAP ⊕⊕=

9.2. Circuito detetor de paridade

Dada uma palavra com 4 bits, sendo um bit paridade, deseja-se realizar um circuito que verifique se a palavra tem paridade ímpar. A saída S = 0 indica que o dado está correto. Uma saída igual a S = 1 indica que houve erro na transmissão.

Page 34: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

85

A2 A1 A0 P S 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 1 0 0 0 0 1 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1

Portanto, PAAAS 012 ⊕⊕⊕= Como ambos circuitos obtidos são semelhantes, pode-se definir uma estrutura que realize tanto a geração quanto a deteção de paridade, conforme mostra a figura seguinte.

Operação:

Se X = 0 ⇒ Y = P (gerador) Se X = P ⇒ Y = S (detetor)

Esquema de transmissão paralela de dados com paridade:

Page 35: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

86

Exercícios: 1) Esquematize o bloco de um multiplex para executar a expressão: L = A ⊕ B ⊕ C. 2) Utilizando o bloco de um multiplex, elabore o circuito que executa a tabela abaixo:

A B C S

0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0

3) Refira-se à figura abaixo. Nela são apresentadas as formas de onda nos pinos de seleção e strobe de um multiplexador. Liste as saídas durante cada um dos pulsos (a, b, c, ...). Considere que nos canais de dados são apresentados os bits 10010110 e mantidos constantes durante a operação do mux. Obs.: nível lógico alto = 1; nível lógico baixo = 0.

4) Utilizando blocos multiplex, confeccione um decodificador que transforme do sistema binário comum para o código de Gray.

A B C D S1 S2 S3 S4 Canais de Informação

0 0 0 0 0 0 0 0 I0 0 0 0 1 0 0 0 1 I1 0 0 1 0 0 0 1 1 I2 0 0 1 1 0 0 1 0 I3 0 1 0 0 0 1 1 0 I4 0 1 0 1 0 1 1 1 I5 0 1 1 0 0 1 0 1 I6 0 1 1 1 0 1 0 0 I7 1 0 0 0 1 1 0 0 I8 1 0 0 1 1 1 0 1 I9 1 0 1 0 1 1 1 1 I10 1 0 1 1 1 1 1 0 I11 1 1 0 0 1 0 1 0 I12 1 1 0 1 1 0 1 1 I13 1 1 1 0 1 0 0 1 I14 1 1 1 1 1 0 0 0 I15

5) (a) Use multiplexadores de oito entradas de dados para gerar Z = Σm(0, 3, 5, 6, 9, 10, 12, 15).

(b) Desenhe a estrutura que gera a mesma função usando somente portas NAND.

Page 36: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

87

(c) Suponha que as portas NAND disponíveis são do tipo duplo com quatro entradas (ou seja, cada CI contém duas portas NAND, e cada porta possui quatro entradas). Compare o número de CIs necessários para os dois tipos de implementação.

6) Utilizando somente blocos multiplex de oito canais, esquematize um sistema multiplex de 32 canais. 7) Elabore um decodificador 3 para 8 onde, conforme as combinações entre as entradas, uma entre as oito saídas é ativada em nível 1. 8) Projete um circuito combinacional para em um conjunto de 4 saídas fornecer nível 0 em apenas cada uma delas por vez (estando as demais em nível 1), conforme seleção binária aplicada às entradas digitais. 9) Elabore um codificador Decimal/Binário para, a partir de um conjunto de teclas numeradas de 0 a 9, fornecer nas saídas o código correspondente. Considere que as entradas das portas em vazio equivalem a aplicação de nível lógico 1. 10) Desenhe o diagrama lógico de um codificador com prioridade que possua quatro entradas I0, I1, I2 e I3 e duas saídas A1 e A0. I3 deve ter prioridade sobre I2, e assim por diante. Inclua uma entrada de habilitação. Faça com que as entradas e saídas sejam ativas quando altas. 11) Liste as leituras (4 bits) nas saídas dos indicadores BCD para cada um dos pulsos mostrados na figura abaixo.

12) Desenhe o circuito de um demultiplex de 16 canais. 13) Utilizando o bloco de um demultiplex, elabore um decodificador 4 para 16, onde apenas uma saída é ativada para cada combinação da entrada. 14) Projete o circuito lógico de um demux usando um decodificador. 15) Refira-se à figura abaixo. Liste a saída (0-7) do demultiplexador que está sendo ativada durante cada um dos pulsos de entrada

Page 37: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

88

17) Projete um conversor de código que aceite como entrada a representação BCD de um dígito decimal e, como saídas, linhas que acionem os segmentos apropriados de um display de sete segmentos (catodo comum) que mostre o dígito decimal que aparece na entrada. 18) Faça o projeto de um circuito para, a partir de um código binário, escrever a seqüência do sistema hexadecimal em um display de 7 segmentos anodo comum. 19) Realize as seguintes operações aritméticas binárias:

a) 11000011 + 00111100 b) 01101110 + 00111101 c) 11011000 − 00110011 d) 1001 × 1101

20) O número 01111110 está representado em complemento de dois. Este número é positivo ou negativo? Por quê? 21) Represente os seguintes números decimais com sinal para sua forma complemento de dois de um byte e forma sinal-magnitude de 8 bits: +12 −12 22) Converta os seguintes números dados em complemento de dois para seus equivalentes decimais com sinal:

01110100 11011101 23) Faça as seguintes operações usando números em complemento de dois, primeiro em 8 bits e, em seguida, utilizando o número mínimo de bits:

a) 13−5 b) 19−29 c) 12+13 d)12−13 e) −12+13 f) −12−13

24) Desenhe um sistema somador para 2 números de 2 bits apenas com blocos de Somadores Completos. 25) Desenvolva um circuito com uma entrada de controle M, para fornecer à saída o complemento de 1 de um número binário de 1 bit, ou seja,

M = 0 ⇒ Saída = número de entrada ou M = 1 ⇒ Saída = complemento de 1. 26) Esquematize, em blocos, um sistema subtrator para 2 números de 2 bits.

Page 38: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

89

27) Elabore um Meio Somador (M = 0) / Meio Subtrator (M = 1). 28) Esquematize, em blocos, um sistema subtrator para 2 números de 4 bits. 29) Utilizando o sistema obtido no exercício anterior, faça um estudo e conclua qual o resultado obtido no caso do minuendo ser menor que o subtraendo. 30) Esquematize, em blocos, um sistema Somador/Subtrator para 2 números de 4 bits. 31) Utilizando blocos de Somadores Completos, elabore um sistema subtrator para 2 números de 2 bits. 32) Utilizando blocos Somadores Completos, elabore um sistema para números de 2 bits que faça soma ou subtração, conforme o nível aplicado a uma entrada de controle M (M=0 ⇒ soma, M=1 ⇒ subtração) 33) Esquematize um sistema Somador/Subtrator Completo para dois números binários de três algarismos. 34) Projetar um comparador para duas palavras de dois bits, A1A0 e B1B0. 35) No esquema de transmissão de dados com paridade apresentado no texto, estes são enviados em paralelo. Quais elementos digitais poderiam ser incluídos no esquema para que os dados fossem transferidos de modo serial? Quais as vantagens de desvantagens dos modos de transmissão serial e paralelo? 36) O circuito da figura abaixo mostra como um multiplexador de oito entradas pode ser usado para gerar uma função lógica de quatro variáveis, apesar do MUX ter apenas três linhas de seleção. Três das variáveis lógicas, A, B e C, são ligadas às três entradas de seleção (S2 – MSB),

enquanto a quarta variável D e seu inverso D são conectadas a algumas entradas de dados do próprio MUX, de acordo com a função lógica que desejamos implementar. As outras entradas de dados são ligadas à terra ou à Vcc, conforme a função lógica. a) Obtenha a tabela verdade da função implementada pelo MUX mostrando a saída como

função das 16 possíveis combinações das variáveis de entrada. b) Obtenha a equação minimizada a partir da tabela verdade.

Io I1 I2 I3 I4 I5 I6 I7

ESo MUXS1

S2

+5V

ABCD

Z 37) O circuito apresentado na figura 1a, o 7445, trata-se de um decodificador BCD para Decimal. A entrada DCBA do decodificador é inicialmente igual a 1111. Para essa condição, todas as

Page 39: CAP4 - Circuitos Combinacionais (1)

CIRCUITOS COMBINACIONAIS

90

formas de onda de saída começam altas no diagrama de tempo da figura 1b. Supõe-se que um outro circuito, que não é mostrado, produza os seguintes valores de entrada DCBA: 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000 e 1001. Analisando as formas de onda de saída (figura 1b) para estas entradas, responda:

a) O que está errado com este circuito lógico? Justifique. b) Para uma entrada 1000, qual pastilha está ativa? Justifique.

Y0

Y1

Y2

Y3

Y4

Y5

Y6

Y7

Y8

Y9

A

B

C

D

Pastilha 0 Pastilha 1 Pastilha 9. . . . . . . . .

Figura 1a

Y0

Y1

Y2

Y3

Y4

Y5

Y6

Y7

Y8

Y9

Figura 1b

38) Sejam as variáveis inteiras A e B representadas em 16 bits, e a variável inteira C representada em 8 bits. Os valores de B e C são, respectivamente, 02BFH e 8CH. O valor de A é dado pela subtração de B (minuendo) com C (subtraendo). Sabendo que as variáveis B e C estão em complemento de 2, qual é o valor de A expresso em hexadecimal?