Você está na página 1de 119

ELETRÔNICA DIGITAL

1
1 Sistemas Numéricos Básicos
A tecnologia digital tornou-se generalizada e engloba praticamente todos os aspec-
tos de nossas vidas cotidianas. Podíamos vê-lo sendo usado em computadores e
aparelhos relacionados, entretenimento, automação (robótica), etc médica Embora
quantidades físicas medidos no mundo real são analógicos, a maioria destes são pro-
cessados por meios digitais. A fim de fazer isso, temos que converter a quantidade
medida analógico em digital, processar a quantidade digital usando circuitos digitais
e depois reconverter para analógico.
O conteúdo deste livro concentra-se no projeto de circuitos digitais, para permitir a
transformação da quantidade digital. Mas antes de olharmos para os princípios de
tais projetos, precisamos entender os conceitos básicos de sistemas numéricos.

1.1 Número Decimal


O sistema de numeração decimal é o sistema numérico comumente utilizado que tem
dez dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. É também conhecido como uma sistema de
base (ou raiz), uma vez que tem dez dígitos, que podem ser usados para representar
qualquer número. A Figura 1.1 mostra os valores posicionais ou pesos do sistema
de numeração decimal para um número inteiro.

Figure 1.1: Sistema de numeração decimal para números inteiros.

O dígito de menor peso (ou seja, o primeiro da direita) é conhecido como o dígito
menos significativo (LSD-least significant digit), enquanto o dígito mais à esquerda
(maior peso) é conhecido como o digito mais significativo (MSD-most significant
digit). No exemplo mostrado na figura 1.1, o MSD é o dígito 6, enquanto o LSD é
dígito 3. A Figura 1.2 mostra o caso de número decimal fracionário.

3
Chapter 1 Sistemas Numéricos Básicos

Figure 1.2: Sistema de numeração decimal para números fracionários.

1.2 Outros Sistemas de Numeração - Binário, Octal e


Hexadecimal

lEnquanto sistema de numeração decimal é o sistema numérico utilizado na vida


cotidiana, os dispositivos digitais usa apenas sistema numérico binário, que consiste
em 0 e 1. A base é dois para este sistema e Figura 1.3 mostra um exemplo de número
binário para o equivalente decimal de 6.2510 .

Da mesma forma,sistemas de numeração octal e hexadecimal (abreviadamente hexa)


têm bases numérica de 8 e 16. Para o sistema de numeração octal, os oito dígitos
são 0, 1, 2, 3, 4, 5, 6 e 7, enquanto sistema de número hexadecimal com 16 dígitos:
0, 1, 2, 3, 4, 5, 6, 7, 8 , 9, A, B, C, D, E e F. A Figura 1.4 apresenta exemplos
relativos a estes sistemas numéricos.

4
1.3 Conversão entre diferentes sistemas numéricos

Figure 1.3: Sistema de número binário com um exemplo.

1.3 Conversão entre diferentes sistemas numéricos


Muitas vezes, é necessário para converter um número de um sistema de base para
outro. Converter um número para decimal é bastante simples, como vimos nos ex-
emplos anteriores. Os pesos ou valores posicionais (para a base apropriada) são
multiplicados com o dígito e somados para se obter o valor decimal. Nesta seção,
veremos métodos para converter números de decimal para binário, octal e hexadec-
imal. Outras conversões, como octal para binário (e vice-versa), binário para hex-
adecimal, hex para binário, octal em hexadecimal e hexadecimal para octal também
são possíveis.

1.3.1 Conversão decimal para binário, octal e hexa


Existem dois métodos que podem ser utilizados para alcançar a conversão de binário
decimal. O primeiro método é através da apresentação do valor decimal em unidades,
dezenas, centenas, etc. Por exemplo:

O problema com este método é que certos valores posicionais (tais como 22 e 20 ,
no exemplo acima) pode ser facilmente esquecido. Há um outro método chamado
divisão sucessiva que é mais freqüentemente empregado. A Figura 1.5 ilustra o

5
Chapter 1 Sistemas Numéricos Básicos

Figure 1.4: Exemplos de sistemas numéricos (a) octal (b) Hex.

método. Ele funciona por divisão repetitiva com um valor de 2 (até que o quociente
seja 0) e os dígitos restantes de cada passo representa o número binário (na ordem
inversa).
Da mesma forma, podemos converter um número decimal para octal e hexadecimal.
As Figuras 1.6 e 1.7 ilustram os passos para essas conversões. Lembre-se que a
resposta final está na ordem inversa!

1.3.2 Conversão binário para octal e vice-versa

Qualquer número binário pode ser convertido em octal simplesmente agrupando-os


em grupos de três dígitos. Por exemplo, 1001011102 pode ser convertido em 4568
como mostrado na Figura 1.8 (a). O processo inverso de converter um número octal

6
1.4 Outros códigos numéricos

Figure 1.5: Exemplo de conversão decimal-binário, 3410 = 1000102

a binário pode ser feito exclusivamente de três dígitos equivalente binário de cada
dígito octal. Isto é mostrado na Figura 1.8 (b).

1.3.3 Conversão binário para hexa e vice-versa


Semelhante ao número octal, o número binário pode ser convertido em hexadecimal
simplesmente agrupando-os em grupos de quatro dígitos. Por exemplo, 100101112
pode ser convertido em 9716 como mostrado na Figura 1.9 (a). Um número hexadec-
imal pode ser convertida em binário equivalente escrevendo quatro dígitos binários
para cada dígito hexa. Isto é mostrado na Figura 1.9 (b).

1.4 Outros códigos numéricos


Nesta seção, serão discutidos vários outros códigos usados.

7
Chapter 1 Sistemas Numéricos Básicos

Figure 1.6: Exemplo de conversão decimal-octal, 14910 = 2258

Figure 1.7: Exemplo de conversão decimal-hexa, 56410 = 23416

1.4.1 Código ASCII

ASCII significa American Standard Code Information Interchange. Caracteres como


’a’, ’A’, ’@’, ’$’ cada um tem um código que é reconhecido pelo computador. O
padrão ASCII tem 128 caracteres (representados por sete dígitos binários; 27 =
128), embora os primeiros 32 não sejam mais usado. O ASCII estendido tem mais
de 128 caracteres, principalmente para representar caracteres especiais e símbolos
matemáticos tais como ’Y’ ’E’, ’S’ e ’sv’. A Tabela 1.1 mostra o código ASCII padrão.

1.4.2 Decimal codificado em binário (BCD)

BCD é realmente um conjunto de números binários onde um grupo de quatro


números binários representam um algarismo decimal. Como existem 10 dígitos bási-

8
1.4 Outros códigos numéricos

Figure 1.8: Exemplo de conversão octal-binário e vice-versa. (a)1001011102 = 4568


(b)7528 = 1111010102

Figure 1.9: Exemplo de conversão octal-binário e vice-versa. (a)100101112 = 9716


(b)83216 = 1000001100102

cos no sistema de numeração decimal, quatro dígitos binários (bits) são necessários
(três bits só vão dar oito representações, o que não é suficiente para um sistema
decimal.). A Figura 1.10 apresenta um exemplo, enquanto que a Tabela 1.2 dá o
código BCD.

1.4.3 Código Gray


O código Gray é um outro sistema de código comumente encontradas. A principal
característica deste código é que apenas um bit muda entre dois valores sucessivos.
Este sistema é menos propenso a erros e é considerado muito úteis para aplicações
práticas, tais como interruptores mecânicos e correcção de erros em comunicação
digital, quando comparado com o sistema binário padrão. A tabela 1.3 dá o código
gray de 4 bits (isto é, até ao valor decimal de 15).

9
Chapter 1 Sistemas Numéricos Básicos

Figure 1.10: Exemplo do código BCD

10
1.4 Outros códigos numéricos

Table 1.1: Código ASCII padrão

11
Chapter 1 Sistemas Numéricos Básicos

Table 1.2: Código BCD

Table 1.3: Código Gray

12
2 Introdução as Portas Lógicas
Os blocos de construção básicos de circuitos digitais são portas lógicas. A maioria
das portas lógicas são lógica binária, ou seja, tem dois estados de 0 ou 1. A entrada
ou saída dessas portas lógicas só podem existir em um desses estados, onde um
sistema de lógica positiva trata 0 como valor FALSO e 1 como valor VERDADEIRO
e, inversamente, para o sistema de lógica negativa. A Figura 2.1 mostra uma forma
de onda lógica que é 1 lógico entre um tempo t1 e t2 e é 0 lógico em outros momentos.
A lógica positiva será assumida ao longo do livro, exceto onde indicado o contrário.

Figure 2.1: Forma de onda de lógica positiva

As figuras 2.2 e 2.3 mostram a entrada e faixas de tensão de saída para lógica 0 e
1 para um porta lógica (A porta é realmente um tipo de NAND CMOS. A NAND
será discutida mais adiante neste capítulo.) comum usada em dispositivos digitais.
A região de transição é o intervalo em que a tensão não é definida e, portanto, a
entrada ou a saída de tensão do dispositivo não devem ser incluídas nesta região
como o valor lógico pode ser 0 ou 1. As faixas de saída são menores em comparação
com as faixas de entrada, que é útil para reduzir a interferência de ruído. A diferença
entre as faixas de entrada e saída é conhecido como margem de ruído. Embora seja
habitual ter uma margem de ruído que é a mesma para ambos os valores lógicos,
isto não tem que ser o caso, o tempo todo.
Para ilustrar a utilidade desta margem de ruído, considere um exemplo onde não há
interferência de ruído entre dois dispositivos. Suponhamos que a tensão do primeiro
dispositivo de saída digital é de 4,6 V (isto é, a lógica digital 1) e um spike (ruído)
de -0.5V entra como interferência. O valor da tensão de entrada para o segundo
dispositivo será de 4,1 V, e o nível de entrada digital ainda será 1. Sem esta margem
de ruído, o nível de entrada digital para o segundo dispositivo seja imprevisível,
uma vez que irá cair dentro da região de transição. A diferença entre a entrada ea
saída varia para um dado valor lógico é conhecido como garantida a imunidade ao
ruído, o que é 1V no presente processo. Também deve ser evidente que a região de

13
Chapter 2 Introdução as Portas Lógicas

transição para a tensão de saída será mais larga do que a tensão de entrada, devido
esta margem de ruído.

Figure 2.2: Entrada lógica relacionadas à valores reais

Figure 2.3: Saída lógica relacionadas à valores reais

Forma de onda de pulso real não se assemelha à forma mostrada na figura 2.1, mas é
muito semelhante à que é mostrada na Figura 2.4 (Mesmo esta figura é simplificada
para facilidade de compreensão. Forma de onda real terá muitos picos.), onde existe
um período de tempo necessário para o impulso para subir e descer e estes são
conhecidos como tempos de subida e descida, respectivamente. O tempo necessário
para o impulso a aumentar entre 10% e 90% da amplitude é o tempo de subida,
enquanto o tempo de queda é o tempo necessário para que o valor da amplitude para
cair para 10% de 90%. O aumento real e os tempos de queda para um dispositivo
digital depende de suas especificações; dispositivos caros têm tempos menores. A
largura do pulso é medido utilizando-se 50% do aumento da queda e os valores de
amplitude como mostrado na figura.

14
2.1 Porta AND

Figure 2.4: Um exemplo de um pulso real

2.1 Porta AND


Basicamente a porta AND é composta por duas entradas e uma única saída, como
mostrado na figura 2.5, com representação algébrica (Também conhecida como ex-
pressão lógica ou Booleana) F = A · B ou simplesmente F = AB. O símbolo
tradicional é mostrado na Figura 2.5 (a) e é mais comumente utilizados em livros
textos. No entanto, o símbolo IEEE (Institute of Electrical and Electronic Engi-
neers) / ANSI (American National Standards Institute ), conforme mostrado na
Figura 2.5 (b), está ganhando popularidade e tem a vantagem de conter símbolos
qualificadores dentro do símbolo lógico que descreve a operação da porta. A tabela
de verdade, que dá a saída F para as entradas A e B, é dada na Tabela 2.1. Pode
ser visto que a saída é baixa (FALSE), quando qualquer uma das entradas é baixa
(FALSE) e a saída só é ALTO (TRUE), quando todas as entradas são elevadas
(TRUE).

Figure 2.5: Símbolos lógicos da porta AND (a) Tradicional (b) Padrão IEEE/ANSI

15
Chapter 2 Introdução as Portas Lógicas

Table 2.1: Tabela de verdade para porta AND de duas entradas

Entradas da porta AND não tem de ser limitada a duas, pode ser qualquer número
de entradas maiores do que um, como mostrado na figura 2.6.

Figure 2.6: Porta AND de três e quatro entradas (a) F = A·B·C (b) F = A·B·C·D

2.1.1 Diagrama Temporal

O diagrama de temporização (ou temporal) é útil na descrição da relação entre


as entradas e saídas de uma porta lógica. As entradas de uma porta lógica digital
podem ser mostradam esquematicamente como uma forma de onda que representam
os valores de mudança ao longo do tempo. Uma forma de onda correspondente à
mudança valores das entradas ao longo do tempo irá ser gerada na saída da porta
lógica. A Figura 2.7 mostra exemplos de diagrama temporal de forma de onda para
os ciclos iguais e desiguais. A marca representa o tempo para o nível lógico alto,
enquanto que o espaço representa o tempo para o nível lógico BAIXO. Marca e
espaço iguais requer pulso de relógio periódico (Pulso de Clock será discutido em
capítulos posteriores). Toda a discussão neste livro estará usando somente formas
de onda de marca e espaço iguais.

16
2.2 Porta OR

2.1.2 Exemplo de Diagrama Temporal para porta AND


A Figura 2.8 mostra um exemplo de um diagrama de tempo para uma porta AND
de duas entradas. Em cada bloco de tempo, as entradas A e B afectam a saída F.
Por exemplo, no bloco de tempo t0 a t1 , ambas as entradas são baixas, então a saída
é também baixa. Do mesmo modo, a forma de onda de temporização para a saída
pode ser obtida utilizando a operação AND das entradas em cada bloco de cada vez.

2.2 Porta OR
A porta OR (OU), como mostrado na Figura 2.9 tem representação algébrica, F =
A + B. A tabela de verdade, que dá a saída F para as entradas A e B, é dada na
Tabela 2.2. Pode ser visto que a saída é alta, quando qualquer uma das entradas é
alta e a saída só é baixa, quando todas as entradas são baixas.
Table 2.2: Tabela de verdade para porta AND de duas entradas

Similar à porta AND, pode haver qualquer número de entradas maiores do que um,
como mostrado na Figura 2.10.

2.2.1 Exemplo de Diagrama Temporal para porta OR


A Figura 2.11 apresenta um exemplo de um diagrama de tempo para uma porta
OU de duas entradas. Em cada bloco de tempo, as entradas A e B afetam a saída
F. Por exemplo, no bloco de tempo t5 a t6 , uma entrada é elevada, então a saída é
elevado. Do mesmo modo, a forma de onda de temporização para a saída pode ser
obtido usando operação OR de entradas em cada bloco de cada vez.

2.3 Porta NOT


A porta NOT é também conhecida como inversor, ela inverte (complementa) o nível
lógico de entrada. É mostrada na Figura 2.12 e tem apenas uma entrada e uma

17
Chapter 2 Introdução as Portas Lógicas

saída, com representação algébrica de F = A ou F = A0 . A bolha no símbolo


denota inversão (sem ele, o símbolo representa uma porta Buffer que não altera o
nível lógico, no padrão IEEE / ANSI, a bolha é substituída por um triângulo). A
tabela verdade para porta NOT é dada na Tabela 2.3.

Table 2.3: Tabela de verdade para porta NOT

A porta NOT pode também ser ligada em cascata e alguns exemplos são mostrados
na Figura 2.13. Deve ser óbvio que o número ímpar de ligações de portas NOT dá
um nível lógico de saída que é complementar ao nível lógico de entrada e um número
par de ligações de portas NOT dar um nível lógico de saída que é o mesmo que o
nível lógico de entrada.

2.4 Inplementação de AND com portas ORe


vice-versa
É útil saber que a porta lógica AND pode ser facilmente implementado usando porta
OR e vice-versa através de um processo simples que não utiliza portas adicionais.
Por exemplo, uma porta AND equivalente pode ser construída com uma porta OR
com as entradas e saídas invertidas através de portas NOT. A Figura 2.14 mostra um
exemplo de tabela verdade equivalente na Tabela 2.4. Este é na verdade o primeiro
teorema de DeMorgan , o que será discutido em pormenor no capítulo três. Ele é
mencionado aqui, para que o leitor está ciente de que é possível implementar uma
porta lógica com outra(s) porta (s).

2.5 Porta NAND


Portas NAND e NOR que serão discutidos nas seções seguintes são conhecidas como
portas universais quando combinações destas portas são suficientes para obter uma
operação equivalente das portas OR, AND e NOT. No entanto, isto é diferente da
aplicação discutida na Secção 2.4, quando ambas NAND ou NOR por si próprias
são suficiente para implementar funções lógicas de qualquer uma das outras portas.
O símbolo lógico da porta NAND é mostrado na Figura 2.15 (notar a adição de
uma bolha quando comparada à porta AND) e da sua tabela de verdade é mostrada

18
2.6 Porta NOR

Table 2.4: Tabela verdade ilustrando implementação de porta AND usando portas
OR e NOT

na Tabela 2.5. Uma operação de portas NAND podem também ser obtidas através
da operação em cascata de portas AND e NOT como mostrado na Figura 2.16.
Algebricamente, a operação pode ser definida como F = AB.

Table 2.5: Tabela verdade para porta NAND

A Figura 2.17 mostra um exemplo de implementação de uma porta AND usando


apenas portas NAND. Da mesma forma, outras portas, como OR e NOT podem
ser implementadas usando portas NAND e estas implementações são deixadas como
exercícios para o leitor.

2.6 Porta NOR

A porta NOR é basicamente uma porta OR com a saída invertida. A Figura 2.18
mostra o símbolo lógico com a tabela de verdade mostrada na Tabela 2.6. Alge-
bricamente, a operação pode ser definida como F = A + B. Similarmente a porta
NAND, diversas portas OR podem ser usadas para implementar portas AND, OR
ou NOT. Um exemplo disto é mostrado na Figura 2.19 e o leitor pode facilmente
verificar através do uso da tabela verdade que F = AB.

19
Chapter 2 Introdução as Portas Lógicas

Table 2.6: Tabela verdade para porta NOR

2.7 Circuitos Integrados


Todas as portas que discutimos neste capítulo são fabricadas como circuito integrado
(CI), com várias portas em um CI. Por exemplo, 74LS00 é uma tecnologia transistor-
transistor logic (TTL) com base em CI que tem quatro (quad) NAND de duas
entradas. Complementar Metal-Oxide Semiconductor (CMOS) é outra tecnologia
que é amplamente utilizada para a fabricação de CI, mas dispositivos TTL são mais
comumente utilizados para experimentos de laboratório, pois eles são mais robustos
ao ruído eletrostático. A Figura 2.20 mostra a configuração de pinos do 74LS00 e
a Figura 2.21 mostra um exemplo de configurações de pinos para implementar a
operação NOT. O pino 14 está ligado à fonte de alimentação, enquanto o pino 7 é
o pino de terra. Deve ser óbvio que o diodo emissor de luz só irá acender (isto é, a
saída será ALTA) se a chave A é desligada (isto é, feita a um nível lógico BAIXO)
- similar aos valores de entrada e saída, como na tabela de verdade mostrada na
Tabela 2.3.

20
2.7 Circuitos Integrados

Figure 2.7: Exemplo de forma de onda de diagrama de temporização: marca-


espaço iguais (b) marca-espaço desiguais

21
Chapter 2 Introdução as Portas Lógicas

Figure 2.8: Exemplo de forma de onda de diagrama de temporização para AND


de duas entradas

Figure 2.9: Símbolos lógicos da porta OR (a) Tradicional (b) Padrão IEEE/ANSI

22
2.7 Circuitos Integrados

Figure 2.10: Porta OR de três e quatro entradas (a) F = A + B + C (b) F =


A+B+C +D

Figure 2.11: Exemplo de forma de onda de diagrama de temporização para OR de


duas entradas

23
Chapter 2 Introdução as Portas Lógicas

Figure 2.12: Símbolos lógicos da porta NOT (a) Tradicional (b) Padrão
IEEE/ANSI

Figure 2.13: Conexão em cascata de portas NOT (a) F = A = A (b) F = A = A

Figure 2.14: Implementação de AND com portas OR: (a) F = AB (b) F =


A + B = AB

Figure 2.15: Símbolos lógicos da porta NAND (a) Tradicional (b) Padrão
IEEE/ANSI

24
2.7 Circuitos Integrados

Figure 2.16: Porta NAND usando AND e NOT

Figure 2.17: Implementação de porta AND usando duas portas NAND

Figure 2.18: Símbolos lógicos da porta NOR (a) Tradicional (b) Padrão
IEEE/ANSI

Figure 2.19: Implementação de porta AND usando duas portas NAND

25
Chapter 2 Introdução as Portas Lógicas

Figure 2.20: 74LS00 - NAND quad

Figure 2.21: Exemplo de implementação de porta NOT usando 74LS00

26
3 Circuitos Lógicos Combinacionais
No capítulo anterior, operação e tabelas verdade de portas individuais foram dis-
cutidos. No entanto, na prática, as portas individuais raramente são úteis e as
combinações de várias portas são empreguadas para uma aplicação particular. Por
exemplo, ver a Figura 3.1, onde diferentes portas são utilizados para obter a saída
F.

Figure 3.1: Exemplo de circuito lógico combinacional

3.1 Simplificação de Circuitos Lógicos


Muito frequentemente, existe a necessidade de se simplificar os circuitos lógicos
(sempre que possível). Por exemplo, o circuito mostrado na figura 3.1, requer quatro
portas mas a saída lógica equivalente pode ser obtida apenas com duas portas através
da simplificação da expressão como se segue:

F = AB(B + C) = ABB + ABC = ABC

ABB é zero, devido à presença de BB, como mostrado na tabela de verdade na


Tabela 3.1. O circuito simplificado é apresentado na Figura 3.2. A Tabela 3.2
apresenta a tabela de verdade, pode ser visto que as saídas dada pela expressão
F = AB(B + C), e F = ABC são as mesmas.

27
Chapter 3 Circuitos Lógicos Combinacionais

Table 3.1: Tabela de verdade para ABB

Figure 3.2: Circuito lógico simplificado

A simplificação acima pode não ser clara nesta fase, mas será o objetivo das seções
seguintes ao olhar para a álgebra booleana, que será útil para simplificar circuitos
lógicos. Não só o resultado da simplificação em menor custo, projeto mais simples
(já que menos portas serão usadas), que também irá reduzir a outras complicações,
tais como superaquecimento e atraso de propagação.

3.2 Álgebra Booleana


Os axiomas básicos da álgebra booleana são apresentados na Tabela 3.3, enquanto
a Tabela 3.4 mostra os teoremas booleanos para operação de uma única variável e
uma constante (0 ou 1).
A álgebra booleana satisfaz leis comutativa e associativa. Portanto, a ordem de
variáveis em um produto ou soma não importa a fim de avaliar a sub-expressão
entre parênteses. Por exemplo:
Lei comutativa: A + B = B + A e A · B = B · A;
Lei associativa: A + (B + C) = (A + B) + C = A + B + C; A · (B · C) = (A · B) · C =
A·B·C
A álgebra booleana também satisfaz a lei de distribuição onde a expressão pode ser
expandida através da multiplicação fora dos termos.
Por exemplo:
Lei distributiva: A · (B + C) = A · B + A · C

28
3.3 O teorema de DeMorgan

Table 3.2: Tabela de verdade para F = AB(B + C) e F = ABC

Deve ser evidente agora que quando uma expressão contém AND e OR, o operador
AND tem precedência sobre o operador OR. Por exemplo, 0 · 1 + 1 · 1 = 0 + 1 = 1,
e não 0 · 1 + 1 · 1 = 0 · 1 · 1 = 0.

3.3 O teorema de DeMorgan

O teorema de DeMorgan é muito útil para simplificar expressões quando elas contêm
uma barra (inversão) sobre mais do que uma única variável. Ele afirma que uma
expressão invertida pode ser substituída pelas suas variáveis invertidas individuais,
mas com AND substituída por OR e vice-versa. Por exemplo:

Teorema de DeMorgan: A · B = A + B e A + B = A · B .

A Figura 3.3 mostra o circuito de equivalência usando o teorema de DeMorgan.

3.3.1 Exemplos ilustram o teorema de DeMorgan

Os exemplos a seguir mostram a utilidade de usar o teorema de DeMorgan. Note


que a partir de agora, o uso de AND (·) entre a expressão será descartado por causa
da simplicidade, a menos que indicado de outra maneira, então F = A · B · C será
escrito como F = ABC.

29
Chapter 3 Circuitos Lógicos Combinacionais

Table 3.3: Axiomas básicos da álgebra booleana

30
3.4 Mais exemplos

Table 3.4: Teoremas Booleanos para operação de uma única variável e uma
constante

3.4 Mais exemplos

Nesta seção, alguns exemplos são apresentados para ilustrar a simplificação usando
álgebra booleana e o teorema de DeMorgan:

31
Chapter 3 Circuitos Lógicos Combinacionais

Figure 3.3: Circuito equivalente usando teorema de DeMorgan

32
3.4 Mais exemplos

Figure 3.4: Exemplo de circuito lógico para simplificação

Como outro exemplo, considere o diagrama do circuito apresentado na Figura 3.4,


que pode ser simplificada como:

A veracidade da expressão simplificada pode ser verificada através da construção de


uma tabela de verdade e comparar a saída de ambas as expressões. O diagrama
de circuito lógico simplificado é mostrado na Figura 3.5, onde apenas cinco portas
são necessárias em vez de seis portas no circuito original. Pode ser visto que não
existe qualquer entrada A, tal como o seu valor lógico não afecta a saída com base
na expressão simplificada.
Embora a expressão para o circuito lógico mostrado na Figura 3.5 é simplificado, é
interessante notar que um outro circuito lógico equivalente mostrada na Figura 3.6
só necessita de quatro portas, como F = BC + D = B + C + D.

33
Chapter 3 Circuitos Lógicos Combinacionais

Figure 3.5: Circuito lógico simplificado do exemplo mostrado na Figura 3.4

Figure 3.6: Circuito lógico simplificado do exemplo mostrado na Figura 3.4 e 3.5

Se as entradas complementares estão disponíveis, então o circuito simplificado mostrado


na Figura 3.5 irá necessitar apenas de duas portas como mostrado na Figura 3.7.

3.5 Portas XOR e XNOR


Para concluir o capítulo, é útil olhar para duas portas mais freqüentemente uti-
lizadas: Exclusive OR (XOR) e Exclusive NOR (XNOR). Estas portas são úteis
quando o circuito, como meio somadores e somadores completos são discutidas em
capítulos posteriores. A porta XOR como mostrado na Figura 3.8 tem representação
algébrica, F = AB + AB ou mais vulgarmente escritas como F = A ⊕ B.
A tabela de verdade, que dá a saída F para as entradas A e B, é dada na Tabela 3.5.
Pode ser visto que, quando ambas as entradas tem o mesmo valor lógico, a saída
é BAIXA. A saída é ALTA quando os valores lógicos de entrada são diferentes, ou
seja, uma BAIXA e uma ALTA.
A porta XNOR é simplesmentea XOR com uma inversão. A porta é mostrado na
Figura 3.9 e tem representação algébrica F = AB+AB ou mais vulgarmente escritas
como F = A ⊕ B.

34
3.5 Portas XOR e XNOR

Figure 3.7: Circuito lógico simplificado quando entradas complementares estão


disponíveis

Figure 3.8: Símbolos lógicos da porta XOR (a) Tradicional (b) Padrão IEEE/ANSI

A tabela de verdade é dada na Tabela 3.6. A saída é ALTA quando ambas as


entradas tem o mesmo valor lógico. A saída é BAIXA quando os valores lógicos de
entrada são diferentes, ou seja, uma BAIXA e uma ALTA.

3.5.1 Álgebra booleana para a operação XOR

A Tabela 3.7 mostra a álgebra booleana para a operação XOR. A operação XOR
também é tanto comutativa quanto associativa: A ⊕ B = B ⊕ A e A ⊕ (B ⊕ C) =
(A ⊕ B) ⊕ C = A ⊕ B ⊕ C.

3.5.2 Verificador de paridade

Como mencionado anteriormente, as portas XOR são úteis ao projetar circuitos


mais avançados, como somadores, mas estas também são usadas em dispositivos
verificador de paridade. O verificador de paridade é usados para reduzir os erros
de transmissão de um código binário através de um canal de comunicação. Por

35
Chapter 3 Circuitos Lógicos Combinacionais

Table 3.5: Tabela de verdade para porta XOR de duas entradas

Figure 3.9: Símbolos lógicos da porta XNOR (a) Tradicional (b) Padrão
IEEE/ANSI

exemplo, se o código ASCII de sete bits para W, 1010111 (ver Tabela 1.1), é para
ser transmitido, um oitavo bit de paridade é acrescentado no início do código. Este
bit de paridade será ou 0 ou 1 dependendo se paridade par ou impar é requerida.
Assumindo que é par o verificador de paridade, então o número total de bits será
par. Neste caso, o bit de paridade será de 1 e de código a serem transmitidos será
11010111.
Portas XOR podem ser usadas até mesmo como verificadoras de paridade. Por
exemplo, com três entradas, a expressão serão F = A ⊕ B ⊕ C e a saída é ALTA,
se uma das entradas ou todas as três entradas são ALTAS. Da mesma forma, para
oito entradas, a saída é ALTA quando o número ímpar de entradas é ALTA.
A Figura 3.10 mostra o circuito lógico usando sete de dois portões de entrada XOR
onde os bits que representam o código são A0 , A1 , ...., A6 e o bit de paridade é P .
A saída F será ALTA quando o número ímpar de entradas é ALTO. Portanto, se o
código não é transmitido corretamente (por exemplo, resultando em número ímpar
de 1s), então o LED acende-se para mostrar que um erro ocorreu. Por outro lado,
com a transmissão correta, o número de 1s será ainda par e a saída será BAIXA (ou
seja, o LED não acende).
Deveria ser óbvio que portas XNOR pode ser usada como verificador de paridade
ímpar pois a saída será ALTA somente quando número par de entradas é ALTO.

36
3.5 Portas XOR e XNOR

Table 3.6: Tabela de verdade para porta XNOR de duas entradas

Table 3.7: Álgebra booleana para operação XOR

Figure 3.10: Porta XOR usada como verificador de paridade

37
4 Mapas de Karnaugh
No capítulo anterior, a simplificação de expressões para circuitos lógicos combi-
nacionais foi estudada usando álgebra booleana e teorema de DeMorgan. Neste
capítulo, um método diferente baseado em gráfico chamado mapa de Karnaugh (ou
mapas K) será estudado para simplificar as expressões. Mas antes do mapa K ser
discutido, os dois tipos de métodos para escrever expressões de circuitos lógicos serão
discutidos.

4.1 Soma de produtos


A soma de produtos (SOP - sum of products) é um método de expressar os termos
em uma expressão lógica como uma soma de produtos. Por exemplo:
F = ABC + ABC
F = AB + AB + AB
Os diagramas de circuitos lógicos para estas expressões são apresentados na Figura
4.1. Pode ser visto que cada termo de produto está ligado através de uma porta
OR.
As Tabelas 4.1 e 4.2 dão as tabelas de verdade para essas expressões. Cada termo
do produto resulta na saída F = 1. Por exemplo, a expressão de F = ABC + ABC
dá saída de 1 quando A = 1, B = 1 e C = 1 para F = ABC e similarmente para
F = ABC , A saída é 1 quando A = 1, B = 1 (ou seja, B = 0), e C = 1.

4.2 Produto de somas


Produtos de somas (POS) é outro método para expressar as condições num circuito
lógico de expressão como um produto de somas. Por exemplo:
F = (A + B)(A + B)
F = (A + B + C)(A + C)(B + C)
Os diagramas de circuitos lógicos para estas expressões são apresentados na Figura
4.2. Uma porta AND conecta cada um dos termos da soma.
A tabela de verdade para o primeiro exemplo de POS, é apresentada na Tabela 4.3.

39
Chapter 4 Mapas de Karnaugh

Figure 4.1: Exemplos de circuitos lógicos SOP

Assim, a tabela verdade para termos POS pode ser facilmente preenchido para cada
termo, dando saída F = 0 com as variáveis A e B, seguindo a lógica negativa (isto
é variável complementada é 1 lógico e a não complementada é 0 lógico).
A Tabela 4.4 dá a tabela verdade para o segundo exemplo de POS F = (A + B +
C)(A + C)(B + C).
Expressões POS não são freqüentemente empregadas em sistemas digitais, mas dis-
cutida aqui por causa de completude.

4.3 Mapas K
Como mencionado anteriormente, o mapa K é um método gráfico que é útil para
simplificar expressões lógicas. Embora os métodos algébricos discutido no Capítulo
3 podem igualmente ser usados para simplificar a expressão, é frequentemente mais

40
4.3 Mapas K

Table 4.1: Tabela verdade para F = ABC + ABC

Table 4.2: Tabela verdade para F = AB + AB + AB

fácil simplificar uma expressão utilizando mapas K quando o número de variáveis é


maior.

4.3.1 Mapa K de Duas Variáveis


Considere uma tabela de verdade como na Tabela 4.5 com duas variáveis A e B. O
correspondente mapa K é desenhado na Figura 4.3. O mapa K pode ser preenchido
por combinações variáveis que dão F = 1 e F = 0, como na figura, mas é uma
prática comum de não incluir F = 0 em mapas K, por isso deve incluir apenas as
combinações que dão F = 1 após este exemplo.
Para simplificar a expressão, incia-se pela criação de um laço para F = AB + AB
(isto é, para as células adjacentes), como mostrado na Figura 4.4 (a). Este laço
é conhecido como laço par, pois envolve dois 1s. Desde que F = AB + AB =
A(B + B) = B o looping vai resultar em F = A, ou seja, a variável em forma

41
Chapter 4 Mapas de Karnaugh

Figure 4.2: Exemplos de circuitos lógicos POS

complementada e não complementada desaparece. O processo é repetido até que


todos os 1s foram incluídos (note que os anéis podem sobrepor-se). Assim, repeti-se
o laço conforme mostrado na Figura 4.4 (b), onde F = AB + AB = B(A + A) = B
. Uma vez que todos os 1s no K-mapa foram circundados, maior simplificação não
é possível e a expressão simplificada é uma combinação dos dois termos (cada laço
da um termo): F = A + B.

4.3.2 Mapa K de Três Variáveis

Além de par de laços, podemos ter laços quad (envolvendo quatro 1s). Considere
uma expressão lógica três variáveis: F = ABC + ABC + ABC + ABC + ABC. A
tabela verdade pode ser completada com cada termo ABC, ABC, ABC, ABC e
ABC dando a saída F = 1, como mostrado na Tabela 4.6.
A Figura 4.5 dá o mapa K completo de três variável. Note, em particular na se-
quência de variáveis A e B no mapa K. A seqüência (ordem) segue código de gray
(00 → 01 → 11 → 10 com AB → AB → AB → AB), onde apenas um bit muda

42
4.3 Mapas K

Table 4.3: Tabela verdade F = (A + B)(A + B)

Table 4.4: Tabela verdade F = (A + B + C)(A + C)(B + C).

nas células adjacentes. A Figura 4.6 (a) mostra o laço quad aplicado para quatro 1s
adjacentes. As variáveis B e C estão em formas complementada e não complemen-
tada no laço quad, então essas variáveis vão desaparecer, deixando apenas a variável
A.
No entanto, não é o fim da simplificação, visto que há mais uma 1 que não está
emparelhado (para F = ABC). Laços em mapas K podem envolver em torno, para
criar um par de laço, como mostrado na Figura 4.6 (b). A variável A está nas formas
complementada e não complementada no circuito par, por isso vai desaparecer,
deixando apenas BC. Assim, a expressão simplificada resultante será F = A + BC.
Como outro exemplo, considere F = AB + ABC + ABC. Uma vez que um dos
termos, AB tem apenas duas variáveis, deve ser expandido para dar AB = AB(C +
C)+ = ABC + ABC. Então F = ABC + ABC + ABC + ABC. Agora, o mapa K
pode ser construído como mostrado na Figura 4.7 e o laço quad aplicado para dar
F = B.
Pode-se verificar que a simplificação algébrica também dá o mesmo resultado. Isto

43
Chapter 4 Mapas de Karnaugh

Table 4.5: Exemplo de tabela verdade para mapa K de duas variáveis

Figure 4.3: Mapa K para tabela verdade 4.5

fica de trabalho para o leitor.

4.3.3 Mapa K de Quatro Variáveis

Considere-se uma lógica de expressão com quatro variáveis:

F = ABCD+ABCD+ABCD+ABCD+ABCD+ABCD+ABCD+ABCD+ABCD+ABCD+AB

A Figura 4.8 mostra o mapa K para essa expressão. Com quatro variáveis, laço
octeto (com oito 1s) é possível. Note que os laços devem ser tão grande quanto
possível, por isso, se existe uma escolha de dois laços quádruplos e um laço octeto,
então o laço octeto deve ser criado.
Só permanece a variável C a partir do laço octeto pois as outras variáveis estão nas
fosmas complementadas e não complementadas e então desaparecem. Há dois laços
quad que dão AD e AD. A expressão final é F = AD + AD + C .
Deve ser agora evidente que um loop de um par remove variável, um circuito quad re-
move duas variáveis, enquanto um circuito octeto remove três variáveis. No exemplo
acima, octeto laço variáveis removidos A, B e D.

44
4.3 Mapas K

Figure 4.4: Combinações para mapa K de duas variáveis (a) F = A, (b) F = B.


a expressão simplificada de ambos é F = A + B

4.3.4 Exemplos adicionais

Considere a tabela de verdade como na Tabela 4.7. Para este exemplo, vamos obter
o diagrama de circuito lógico simplificado.
Em primeiro lugar, a expressão lógica deve ser obtida a partir da tabela de verdade
e usando-a, traçar o mapa K (como mostrado na Figura 4.9). Em seguida, pode-
se obter a expressão simplificada e com ela desenhar o diagrama de circuito lógico
simplificado, como mostrado na Figura 4.10. Expressão lógica:

F = ABCD+ABCD+ABCD+ABCD+ABCD+ABCD+ABCD+ABCD+ABCD+ABCD+ABCD

Mapa K
Expressão simplificada: F = A + BD + CD
Diagrama de circuito lógico simplificado:
Como outro exemplo, considere uma expressão lógica

F = ABCD + ABCD + ABCD + ABCD + ABCD + ABCD

, e seu correspondente mapa K como mostrado na Figura 4.11.


A expressão simplificada é F = ABCD + ABC + BD.

45
Chapter 4 Mapas de Karnaugh

Table 4.6: Tabela de verdade de F = ABC + ABC + ABC + ABC + ABC

4.3.5 Condições irrelevantes( don’t care)

No projeto de lógica digital, muitas vezes encontramos condições que não importam
. Estas condições são casos que não irão ocorrer em nosso projeto e, portanto, a
saída pode ser configurada para qualquer valor (0 ou 1). As condições irrelevantes
são denotadas usando X nas tabelas de verdade e mapas K. Por exemplo, considere
um dispositivo de exibição de sete segmentos, como mostrado na Figura 4.12 que é
comumente utilizado para exibir caracteres hexadecimais.
O dispositivo é constituído por 7 diodos emissores de luz (LEDs) no qual a luz
com diferentes padrões dar a saída hexadecimal, conforme mostrado na Figura 4.13.
Note que os caracteres hexadecimais A a F são normalmente apresentados numa
mistura de letras maiúsculas e minúsculas para evitar ambiguidades (por exemplo a
diferenciação D com 0, B com 8, etc.)
A Tabela 4.8 dá as codificações de caracteres para os sete LEDs (a, b, ...., g), onde
o 1 denota que o LED estará ligado e um 0 denota que o LED estará desligado.
Então, para mostrar o numeral 0, os LEDs a, b, c, d, e, f estarão ligados e o LED
g estará desligado. Da mesma forma, para exibir caracteres F, os LEDs, a, e, f, g e
estará ligado enquanto LEDs b, c e d estarão desligado.
Agora, por uma questão de discutir as condições irrelevantes, consideramos que
estamos usando o display de sete segmentos apenas para exibir os números decimais
(ou seja, de 0 a 9). Assim, enquanto que a concepção de fiação necessária para o
dispositivo, podemos agora ignorar mostra o resto das letras A a F. Esta situação
será denotado com X como na Tabela 4.9. Vamos obter a expressão lógica de um
LED a. Para evitar confusão com os caracteres hexadecimais, vamos designar as

46
4.3 Mapas K

Figure 4.5: Mapa K de três variáveis para F = ABC +ABC +ABC +ABC +ABC

variáveis como P, Q, R e S, em vez de A, B, C e D, tal como utilizado anteriormente.


Quatro variáveis (ou seja, quatro entradas) são obrigatórias desde que nós temos dez
combinações possíveis.
Utilizando a tabela verdade, agora podemos construir o K-mapa, como mostrado na
Figura 4.14 (sem considerar condições irrelevantes) e Figura 4.15 (com as condições
irrelevantes).
A expressão simplificada, sem considerar as condições irrelevantes é LEDa = P R +
P QS + P QR + QRS. Note que a solução não é única pois um laço duplo tam-
bém poderia ser formada por P QRS e P QRS dando P QS em vez de QRS, como
mostrado para P QRS e P QRS. Com isso, a expressão simplificada será LEDa =
P R + P QS + P QR + P QS.
Agora, considere a Figura 4.15, onde as condições irrelevantes são contabilizadas.
Uma vez que X é 0 ou 1, podemos supor que seja uma e usar nos procedimentos de
laço.
A expressão simplificada é agora LEDa = P + R + QS + QRS e pode ser visto que
a expressão é mais simples considerando as condições irrelevantes.
Como exemplo final do capítulo, vamos obter a expressão lógica para o LED b. A
Tabela 4.10 apresenta a tabela verdade e a Figura 4.16 mostra o mapa K com as
condições irrelevantes. A expressão lógica simplificada é LEDb = RS + RS + Q =
R ⊕ S + Q. Não deve ser esquecido que os laços devem ser tão grandes quanto
possível.

47
Chapter 4 Mapas de Karnaugh

Figure 4.6: Mapa K de três variáveis mostrado na Figura 4.5 (a) laço quad (b)
laço par

Figure 4.7: Mapa K de três variáveis para F = ABC + ABC + ABC + ABC

48
4.3 Mapas K

Figure 4.8: Mapa K para quatro variáveis

Table 4.7: Tabela de verdade para o exemplo adicional 1

49
Chapter 4 Mapas de Karnaugh

Figure 4.9: Mapa K para o exemplo adicional 1

Figure 4.10: Diagrama de circuito lógico simplificado para o exemplo adicional 1

50
4.3 Mapas K

Figure 4.11: Mapa K para o exemplo adicional 2

Figure 4.12: Display de sete segmentos

Figure 4.13: Mostrador de caractere hexa porum display de setesegmentos

51
Chapter 4 Mapas de Karnaugh

Table 4.8: Codificação de caracter para display de sete segmentos

Figure 4.14: Mapa K para o LED a sem considerar as condições irrelevantes

52
4.3 Mapas K

Table 4.9: Dysplay a LED codificado para decimais (mostrando as condições


irrelevantes)

53
Chapter 4 Mapas de Karnaugh

Figure 4.15: Mapa K para o LED a (considerando as condições irrelevantes)

Table 4.10: Tabela verdade para o LED b

54
4.3 Mapas K

Figure 4.16: Mapa K para o LED b (considerando as condições irrelevantes)

55
5 Circuitos Multivibrador Biestável
Neste capítulo, os circuitos que possuem dois estados estáveis (ou seja, off e on),
será estudado. Estes circuitos são também vulgarmente conhecidos como flip-flops.
Como eles tem dois estados estáveis (isto é valor lógico 0 ou 1) são úteis para
armazenar um bit de dado digitais, ou seja, como elementos de memória. Vários
tipos de flip-flops serão estudados antes de olharmos para outros multivibradores
para gerar um único trem de pulsos.
A Figura 5.1 mostra um símbolo de um flip-flop em geral. Normalmente, há uma ou
duas entradas para o flip-flop e a saída tem também um complemento. As entradas
são 0 ou 1 lógico e comumente conhecido como entrada set (ou preset) quando igual
a 1 (estado ALTO) e entrada reset (ou clear) quando igual a 0 (estado BAIXO).

Figure 5.1: Símbolo de um flip-flop geral

5.1 Flip-Flop S-R


O flip-flop SR (também conhecido como set-reset ou latch) pode ser construído
usando NOR ou NAND. Ambos os tipos de flip-flops são mostrados na Figura 5.2.
A tabela de verdade para o flip-flop SR é mostrada na Tabela 5.1.Q+ aqui indica o
próximo estado da saída Q.
Pode ser observado que para ambos os tipos de portas NAND e NOR, existe reali-
mentação para a saída e a saída complementada para as entradas. Quando ambas
as entradas R e S são baixas (0 lógico), a saída do flip-flop será o mesmo que o
seu estado anterior, isto é, nenhuma mudança no estado Q. Uma entrada S ALTA
(1 lógico) do flip-flop fará com a saída Q+ mude para ALTA. Do mesmo modo, a
entrada R = 1 irá fazer com que a saida do flip-flop SR Q+ = 0. Deve ser óbvio que
a entrada S ajusta o flip-flop para o 1 lógico, enquanto a entrada R reseta o flip-flop

57
Chapter 5 Circuitos Multivibrador Biestável

para 0 lógico. A saída do flip-flop SR não está definida quando as duas entradas são
1, então esta situação deve ser evitada quando se utiliza o flip-flop SR. Na discussão
acima, o estado de Q será oposto ao estado de Q em todos os momentos.

Table 5.1: Tabela verdade do Flip-flop SR

5.1.1 Flip-Flop SR com entrada Habilita (Enable)

Uma entrada de habilitação pode ser usada para controlar o funcionamento dos flip-
flops, como mostrado na Figura 5.3. Aqui as entradas R e S só terão um efeito sobre
a saída Q+ se a entrada de ativação é 1. Quando E = 1, as NAND (em negrito)
atuarão como inversores, assim, o circuito comporta exatamente como o flip-flop SR
com NAND na Figura 5.2 (b). A Tabela 5.2 fornece os valores da tabela verdade.

5.1.2 Flip-Flop SR com Clock

Semelhante à entrada de ativação, pode haver um entada de relógio (isto é, pulsos)


para o flip-flop. O Flip-flop SR com clock é mostrado na Figura 5.4, onde a borda
do relógio (positivo ou negativo) provoca a mudança de estado do flip-flop. O borda
negativa do relógio ocorre quando o pulso de relógio cai de 1 para 0 lógico e é também
conhecido como transição negativa (NGT - negative going transition), enquanto que
a transição positivo (PGT - positive going transition) ocorre quando o pulso de
relógio vai de 0 para 1 lógico. Um clock oposto não afetará a saída do flip-flop.
Por exemplo, um gatilho negativo no flip-flop não mudará o estado durante a borda
positiva. A Tabela 5.3 mostra a tabela de verdade para o flip-flop com clock NGT,
onde pode ser visto que o flip-flop muda de estado durante a correspondente borda
de disparo negativo do relógio. O flip-flop com clock PGT comporta-se de forma
semelhante, exceto que a mudança (se alguma) ocorre durante a transição de borda
positiva do relógio.

58
5.1 Flip-Flop S-R

Table 5.2: Tabela verdade do flip-flop SR com entrada Enable

Alguns exemplos utilizando diagramas de temporização seguem para ilustrar o com-


portamento do flip-flop SR com clock. A Figura 5.5 mostra um exemplo de como os
diagrama de tempo das mudanças para flip-flop um flip-flop SR com NGT. Qualquer
alteração na saída Q só ocorrerá durante a NGT (mostrado por t1 , t2 , ..., t5 ):
- No tempo t1 ,como S = 1, R = 0, Q vai para 1 lógico
- No tempo t2 , como S = 1, R = 0, Q permanece em 1 lógico
- No tempo t3 , como S = 0, R = 1, Q vai para 0 lógico
- No momento t4 , como S = 0, R = 1, Q permanece no estado lógico 0
- No instante t5 , como S = 1, R = 0, Q vai para 1 lógico.
Não haverá nenhuma alteração durantetP GT para o flip-flop com borda negativa.
O exemplo diagrama de temporização para um flip-flop SR com PGT é mostrado
na Figura 5.6. Qualquer alteração na saída Q só ocorrerá durante 0 PGT (mostrado
por t1 , t2 , ..., t5 ):
- No tempo t1 ,como S = 1, R = 0, Q vai para 1 lógico
- No tempo t2 , como S = 0, R = 0, Q permanece em 1 lógico
- No tempo t3 , como S = 0, R = 1, Q vai para 0 lógico

59
Chapter 5 Circuitos Multivibrador Biestável

Table 5.3: Tabela verdade para o flip-flop SR gatilhado por NGT

- No momento t4 , como S = 1, R = 0, Q vai para o nível lógico 1


- No instante t5 , como S = 0, R = 1, Q vai para 0 lógico.
Não haverá nenhuma alteração durantetN GT para o flip-flop com borda positiva.

5.1.3 Flip-Flop com entradas assíncronos


As entradas S e R são conhecidos como entradas síncronas pois os seus efeitos são
sincronizados com o relógio de entrada. Os Flip-flops também pode ter entradas
assíncronas que podem afetar a saída a qualquer momento, independentemente do
pulso de relógio. A Figura 5.7 mostra o símbolo do flip-flop SR NGT, com duas
entradas de pulso adicionais: (P RE) que ajusta a saída para 1 lógico e clear (CLR),
que ajusta a saída para o 0 lógica. Ambas as entradas estão ativas em nível BAIXO
(mostrado com uma barra superior, também observe a existência da bolha na figura),
o que significa que um 0 lógica nestas entradas afetará a saída do flip-flop em vez
de 1 lógico. Entradas assíncronas sempre têm precedência sobre as entradas S e R.
A Figura 5.8 ilustra o efeito destas entradas assíncronas usando um diagrama de
temporização. Quando P RE e CLR são iguais a 1 lógico, o flip-flop se comporta
exatamente como um flip-flop SR com clock NGT . No entanto, quando um pulso
se torna ativo (isto é, passa a 0 lógico), o efeito sobre a saída Q é imediata (isto é,
independente do pulso de relógio):
- No tempo t1 ,como S = 1, R = 0, Q vai para 1 lógico
- No tempo t12 ,como CLR = 0, Q vai para 0 lógico
- No tempo t2 ,como S = 1, R = 0, Q vai para 1 lógico
- No tempo t3 ,como S = 0, R = 1, Q vai para 0 lógico

60
5.2 Flip-Flop J-K

- No tempo t34 , como P RE = 0, Q vai para 1 lógico


- No tempo t4 ,como S = 0, R = 1, Q vai para 0 lógico
- No tempo t5 ,como S = 1, R = 0, Q vai para 1 lógico

5.2 Flip-Flop J-K


O flip-flop RS não é muito usado em sistemas digitais, devido ao estado inválido que
pode ocorrer quando ambas as entradas são 1 lógico. o flip-flop JK (em homenagem
a Jack Kilby) supera esse problema, alternando quando as entradas J = K = 1 (ou
seja, vai para o estado oposto) . A Tabela 5.4 mostra a tabela verdade para este
flip-flop.

Table 5.4: Tabela verdade para o flip-flop JK

Semelhante ao flip-flop RS, o flip-flop JK pode ter permitir entrada habilitadas,


temporizadas ou clocked (NGT ou PGT) e entradas assíncronas. A Figura 5.9
mostra o símbolo do flip-flop J-K borda PGT.
Um exemplo de diagrama de tempo para o flip-flop JK é dado na Figura 5.10. As
discussões anteriores para para o flip-flop SR mantém-se para o flip-flop JK, exceto
que quando J = K = 1, a saída alterna a partir de seu estado anterior:
- No tempo t1 ,como J = 1, K = 0, Q vai para 1 lógico
- No tempo t2 ,como J = 1, K = 1, Q vai alterna para 0 lógico
- No tempo t3 ,como J = 0, K = 0, Q permanece em 0 lógico
- No tempo t4 ,como J = 1, K = 1, Q alterna para 1 lógico
- No tempo t5 ,como J = 0, K = 1, Q vai para 0 lógico.

61
Chapter 5 Circuitos Multivibrador Biestável

A Figura 5.11 dá um exemplo de diagrama de tempo de um flip-flop JK com borda


NGT e com entradas assíncronas:
- No tempo t1 ,como J = 1, K = 1, Q alterna para 1 lógico
- No tempo t12 ,como CLR = 0, Q vai para 0 lógico
- No tempo t2 ,como J = 1, K = 0, Q vai para 1 lógico
- No tempo t3 ,como J = 0, K = 1, Q vai para 0 lógico
- No tempo t34 ,como P RE = 0, Q vai para 1 lógico
- No tempo t4 ,como J = 0, K = 0, Q permanece em 1 lógico
- No tempo t5 ,como J = 1, K = 0, Q permanece em 1 lógico.

5.2.1 Flip-Flop Mestre-Escravo


Como veremos em um capítulo posterior, uma sequência de flip-flops são geralmente
ligados uns aos outros com um único relógio e um exemplo é mostrado na Figura
5.12. Uma vez que pode haver um atraso no pulso de relógio para se chegar a F F2
em comparação com F F1 devido à fiação a mais, a saída pode se torne imprevisível.
Para evitar este problema, um flip-flop mestre-escravo pode ser usado onde F F1 é
o mestre e F F2 é o escravo. As entradas para F F1 são utilizadas para determinar
a saída do mestre durante CLK = ALT O e esta saída é, então, transferida para
o escravo quando CLK = BAIXO. No entanto, flip-flops mestre-escravo (master-
slave) tornaram-se obsoletos com o projeto do moderno flip-flops de edge-triggered
(gatilhado pela borda) que responde com rapidez e confiabilidade suficiente.

5.3 Flip-Flop D
O flip-flop D também é conhecido como flip-flop de dados, uma vez que pode ar-
mazenar um único bit de dados. A saída Q do flip-flop segue a entrada única D aos
respectivos pulsos de relógio. A Figura 5.13 mostra o símbolo do flip-flop D.
A Tabela 5.5 dá a tabela verdade para o flip-flop D. A saída Q seguirá a entrada D
para um clock NGT ou PGT, dependendo se se trata de flip-flop de borda negativa
ou positiva. O flip-flop D também pode ter entradas assíncronas tais como P RE e
CLR que afectam a saída Q independentemente do relógio.
A Figura 5.14 apresenta um exemplo do diagrama de temporização do flip-flop D:
- No tempo t1 ,como D = 1, Q vai para 1 lógico
- No tempo t2 ,como D = 0, Q vai para 0 lógico
- No tempo t23 ,como P RE = 0, Q vai para 1 lógico
- No tempo t3 ,como D = 1, Q permanece em 1 lógico

62
5.4 Flip-Flop T

Table 5.5: Tabela verdade do flip-flop D

- No tempo t4 ,como D = 1, Q permanece em 1 lógico


- No tempo t45 ,como CLR = 0, Q vai para 0 lógico
- No tempo t5 ,como D = 0, Q permanece em 0 lógico.
A Figura 5.15 apresenta como um flip-flop JK pode ser utilizado para construir um
flip-flop D. Quando D = 1, as entradas para o flip-flop JK : D = J = 1 e K = D = 0
e, portanto, Q = 1. Da mesma forma, quando D = 0, as entradas para flip-flop JK:
J = D = 0 e K = D = 1 e, portanto, Q = 0. Assim, a saída Q segue entrada D
como no flip-flop D.

5.4 Flip-Flop T
O último flip-flop a ser considerado neste capítulo é o flip-flop T . A tabela verdade
do flip-flop T é dada na Tabela 5.6 supondo que ele é acionado por um relógio NGT.
A saída para o flip-flop alterna em T = 1, originando, assim, uma forma de onda de
relógio semelhante, mas com metade da frequência, como mostrado pelo diagrama
de temporização da Figura 5.16. Quando T = 0, a saída Q não é alterada.

Table 5.6: Tabela verdade para o flip-flop T com borda NGT

A Figura 5.17 apresenta o símbolo do flip-flop T e também como um flip-flop JK pode


ser usado para construí-lo, curto-circuitando as entradas JK. Quando J = K = 1, a
saída do flip-flop muda e quando J = K = 0, a saída do flip-flop não muda.

63
Chapter 5 Circuitos Multivibrador Biestável

5.5 Multivibradores monoestável e astável


Até agora, temos considerado flip-flops que tem dois estados estáveis. Nesta seção,
vamos olhar para dois dispositivos, um que dar curto pulsos de disparo e outro que
dá dois estados que estão em execução livre. Multivibrador monoestável é também
conhecido como um shot (tiro), pois tem um estado estável (normalmente Q = 0) e
outra estado (normalmente Q = 1) ocorre por um período tp específico de duração
quando acionado. O multivibrador astável não têm um estado estável, mas muda
continuamente entre os dois estados (por exemplo, Q = 0 e Q = 1), que resulta em
um trem de pulsos de onda quadrada (ou retangular) a uma frequência determinada
pelos valores de resistores e capacitores. Os pulsos de onda quadrada (ou seja, com
um ciclo de trabalho de 50%) pode ser usado como relógio de entrada.

5.5.1 Multivibradores monoestável


O multivibrador monoestável pode ser divididos em dois tipos: não-regenerável
e regenerável. O multivibrador monoestável não-regatilhável irá ignorar qualquer
pedido de disparo durante um pulso tp enquanto o regatilhável vai voltar a acionar o
pulso para outra duração tp . Os efeitos de ambos os multivibradores estão ilustradas
nos exemplos apresentados na Figura 5.18. Para o multivibrador monoestável não-
regatilhável, trig2 não tem nenhum efeito, uma vez que está dentro da duração do
impulso tp desencadeado por trig1 . No entanto, para multivibrador monoestável
regatilhável, trig2 tem o efeito de estender a um tiro de pulso por tp duração.

5.5.2 Multivibradores astável


O multivibrador astável projetado usando o CI temporizador 555 é mostrado na
Figura 5.19. Ele gera pulsos retangulares com duração tA e tB . O ciclo de trabalho
é definido como tB /(tA + tB ). Para gerar pulsos de clock, o ciclo tem que ser de
50%, ou seja, tA = tB .
Os valores das resistências R1 e R2 e do capacitor C irão afetar as durações de tA e
tB :
tA = 0.693R2 C
tB = 0.693(R1 + R2 )C
A frequência da pulsação é dado por, f req = 1/(tA + tB ).
Considere um exemplo onde R1 = 47kΩ, R2 = 10.0kΩ e C = 100µF , obtemos
tA = 0.693R2 C = 0.693 · 10kΩ · 100µF = 0.693s
tB = 0.693(R1 + R2 )C = 0.693 · 14.7kΩ · 100µF = 1.01871s
A Frequência é f req = 1/(tA + tB ) = 0.58421Hz .

64
5.5 Multivibradores monoestável e astável

Figure 5.2: Flip-flop S-R: (a) símbolo geral (b) usando portas NAND (c) usando
portas NOR

65
Chapter 5 Circuitos Multivibrador Biestável

Figure 5.3: Flip-flop SR com entrada Enable

Figure 5.4: Flip-flops SR com clock (a) PGT (b) NGT, note a bolha para o flip-flop
gatilhado NGT

66
5.5 Multivibradores monoestável e astável

Figure 5.5: Diagrama temporal para o exemplo de um flip-flop com borda NGT

Figure 5.6: Diagrama temporal para o exemplo de um flip-flop com borda PGT

67
Chapter 5 Circuitos Multivibrador Biestável

Figure 5.7: Símbolo do flip-flop SR NGT com entradas assíncronas

Figure 5.8: Diagrama temporal para o exemplo de um flip-flop SR com borda NGT
e entradas assíncronas

68
5.5 Multivibradores monoestável e astável

Figure 5.9: Símbolo do flip-flop JK com borda PGT e entradas assíncronas

Figure 5.10: Diagrama temporal para o exemplo de um flip-flop JK com borda


PGT

69
Chapter 5 Circuitos Multivibrador Biestável

Figure 5.11: Diagrama temporal para o exemplo de um flip-flop JK com borda


NGT e entradas assíncronas

Figure 5.12: Dois flip-flops conecatado com um único clock

70
5.5 Multivibradores monoestável e astável

Figure 5.13: Símbolo geral do flip-flop D com borda PGT

Figure 5.14: Diagrama temporal para o exemplo de um flip-flop D com borda NGT

71
Chapter 5 Circuitos Multivibrador Biestável

Figure 5.15: Flip-flop tipo D construído usando flip-flop JK

Figure 5.16: Flip-flop T com borda NGT

72
5.5 Multivibradores monoestável e astável

Figure 5.17: Flip-flop T (a) símbolo geral (b) contruído usando flip-flop JK

Figure 5.18: Multivibrador monoestável (a) não regatilhável (b) regatilhável

73
Chapter 5 Circuitos Multivibrador Biestável

Figure 5.19: Multivibrador astável usando o CI 555

74
6 Circuitos aritméticos
Nos computadores, cálculos aritméticos, como adição e subtração binária são feitos
em unidade lógica aritmética (ALU -arithmetic logic unit), que consiste de portas
lógicas e flip-flops. Portas lógicas executam a operação aritmética, enquanto os
flip-flops (ou seja, registro e acumulador) são usados como memória de armazena-
mento temporário (algo como um bloco de rascunho que usamos para realizar cálculo
matemático). Vamos olhar para os circuitos somador e subtrator neste capítulo.

6.1 Meio Somador


Considere a adição de dois bits, A0 e B0 para dar soma S0 e o vai um (carry) de
saída, C1 . A Tabela 6.1 mostra as combinações possíveis que podem ocorrer.

Table 6.1: Combinação do meio somador

Usando os mapas K-como mostrado na Figura 6.2, pode-se obter as expressões


lógicas para e C1 . Pode ser visto que para S0 , não é possível simplificar a expressão
pois nenhum laço é possível e a expressão é

S0 = A0B0 + A0B0
Uma vez que esta é a expressão da XOR (ver Seção 3.5), isto também pode ser
expresso como

75
Chapter 6 Circuitos aritméticos

Figure 6.1: Símbolo do meio somador (HA-Half adder)

S0 = A0 ⊕ B0
Da mesma forma, a expressão para C1 é

C1 = A0 B0

Figure 6.2: Mapas K do meio somador para (a) S0 (b) C1


O circuito lógico do meio somador é mostrado na Figura 6.3.

6.2 Somador completo


Muitas vezes, quando a adição de dois bits, A0 e B0 para dar soma S0 carry de saida
C1 , pode haver uma outra entrada, carry de entrada C0 resultante da adição de bits
anteriores. As combinações possíveis para um somador completo são apresentados na

76
6.2 Somador completo

Figure 6.3: Circuito lógico do meio somador

Tabela 6.2, onde pode ser visto que as três entradas binárias, A0 , B0 e C0 adicionam-
se para dar às duas saídas binárias, S0 e C1 . O símbolodo somador completo é
mostrada na Figura 6.4.
Table 6.2: Combinações para o somador completo

Mapas K para as duas saídas do somador completo são mostrados na Figura 6.5.
Para Σ0 , nenhum laço é possível e a expressão é

Σ0 = A0 B0 C0 + A0 B0 C0 + A0 B0 C0 + A0 B0 C0

   
Σ0 = C0 A0 B0 + A0 B0 + C0 A0 B0 + A0 B0

77
Chapter 6 Circuitos aritméticos

Figure 6.4: Símbolo do somador completo (FA - full adder)

que também podem ser expressas na forma mais simples utilizando expressões XOR
e XNOR assim

 
Σ0 = C0 A0 ⊕ B0 + C0 (A0 ⊕ B0 )

Na verdade, podemos simplificar isto ainda mais, definindo X = A0 ⊕ B0 :

Σ0 = C0 X0 + C0 X0

A simplificação pode ser feita usando uma expressão XOR para dar

Σ0 = A0 ⊕ B0 ⊕ C0

Para C1 , três par de laços são possíveis, resultando em

C1 = A0 B0 + A0 C0 + B0 C0

O circuito somador completo é mostrado na Figura 6.6.


Deve ser óbvio que um somador completo pode ser construído utilizando um somador
completo definindo C0 = 0. Esta situação é ilustrada na Figura 6.7.

6.3 Somador paralelo


Geralmente, a adição é realizada sobre número de bits, utilizando um somador
paralelo, que consiste em vários somadores completo como mostrado na Figura 6.8
para adição de dois números de 3 bits.
Como exemplo, considerar a adição de A = 1 1 1com B = 1 0 1, conforme ilustrado
na Figura 6.9 para dar soma = 1 0 0 e transporte (carry) final 1.

78
6.4 Adição paralela utilizando circuitos integrados

Figure 6.5: Mapas K para o somador completo (a)Σ0 (b)C1

6.4 Adição paralela utilizando circuitos integrados

Adicionadores paralelos na forma de circuitos integrados (CI) estão disponíveis, tais


como o de quatro bits TTL 74LS283, como mostrado na Figura 6.10 (com config-
urações de pinos). Tais somadores podem ser conectadas para adicionar mais bits.
Por exemplo, dois CIs 74LS283 podem ser usados para adicionar dois números de
8 bits, como ilustrado na Figura 6.11 (a pinagem foi modificado para facilitar a
compreensão, a disposição real é como mostrado na Figura 6.10). Os dois números:
A0 , A1 , A2 , A3 , A4 , A5 , A7 e B0 , B1 , B2 , B3 , B4 , B5 , B7 são adicionados em con-
junto com a entrada de transporte C0 para dar soma S0 , S1 , S2 , S3 , S4 , S5 , S7 e
carry de saída C8 . A carry de saída do primeiro CI C4 é transmitido como a entrada
de transporte para o segundo CI.

79
Chapter 6 Circuitos aritméticos

Figure 6.6: Circuito lógico do somador completo

Figure 6.7: Meio somado projetado usando o somador completo

6.5 Subtração paralela


Considere-se um problema de subtração simples: 6 − 4 = 2. Em binário, isto
será 0110 − 0100 = 0010. A subtracção em binário pode ser realizada através da
adição, convertendo o número a ser subtraído (isto é, o subtraendo) para a forma
de complemento de dois e adicionando ao minuendo.

6.5.1 Complemento de 2

Um número binário pode ser convertido em complemento de 2 simplesmente através


da realização de um complemento de 1 (isto é, invertendo) cada bit e em seguida adi-
cionando um aos bits invertidos. Qualquer carry desta operação deve ser descartada.
Por exemplo, o complemento de 2 de 4 em binário é
4 em binário → 0100
Complemento de 1 de 4 → 1011
Complemento de 2 de 4 → 1100

80
6.5 Subtração paralela

Figure 6.8: Layout para um somador paralelo para um número de 3bits

Figure 6.9: Exemplo de adição paralela para um número de 3bits

Agora, 6 − 4 pode ser representado em binário, como mostrado na Figura 6.12. O


transporte é descartado para dar a resposta correta de 2.

Deve ser óbvio que um somador também pode funcionar como subtrator com portas
adicionais. Por exemplo, o somador completo mostrado na Figura 6.4 pode ser
utilizado para desenhar um subtrator invertendo B0 e definindo C0 = 1 (ambas
estas ações irão resultar na forma de complemento de 2 para B0 ), como mostrado
na Figura 6.13. Semelhante a somadores paralelos, subtratores paralelos podem ser
concebidos utilizando vários somadores completo como mostrado na Figura 6.14.

Usando o exemplo da Figura 6.12, o 74LS283 pode ser modificado para atuar
como subtrator como mostrado na Figura 6.15. O minuendo é representado por
A0 , A1 , A2 , A3 e os inversores convertem o subtraendo (B0 , B1 , B2 , B3 ) para um
complemento de 1 e C0 é ajustado a 1 para converter este um número de comple-
mento de 1 para complemento de 2. As saídas (Σ0 , Σ1 , Σ2 , Σ3 ) denotam a resposta
correta como 4 e o carry de saída, C4 = 1 é descartado.

81
Chapter 6 Circuitos aritméticos

Figure 6.10: CI somador de 4 bits, 74LS283 mostrando configuração dos pinos

6.5.2 Dual somador / subtrator


Substituindo os inversores na Figura 6.15 por portas XOR irá resultar em um circuito
no modo dual somador / subtrator . Esta situação é ilustrada na Figura 6.16.
Quando a entrada de controle for 1, o circuito funciona como um subtrator e quando
a entrada de controle é 0, atua como um somador. Por exemplo, quando B0 = 1
e entrada de controle = 1 (durante a subtracção), a saída da XOR é 0, ou seja, a
porta XOR atua como um inversor para se obter um complemento de 1 e C0 = 1
para dar o complemento de 2. Quando B0 = 1 e entrada de controle = 0 (durante
a adição), C0 = 0 e a saída da XOR é 1, isto é, a porta XOR age como um buffer,
sem alterar o valor lógico.

82
6.5 Subtração paralela

Figure 6.11: Dois 74LS283 em cascata para somar um número de 8 bits

Figure 6.12: Subtraindo sois números usando o método do complemento de 2 para


o subtraendo

Figure 6.13: Um somador completo usado como subtrator

83
Chapter 6 Circuitos aritméticos

Figure 6.14: Projeto de um subtrator paralelo usando diversos somadores completo

Figure 6.15: Usando o 74LS283 como subtrator

84
6.5 Subtração paralela

Figure 6.16: Usando o 74LS283 no modo dual como somador/subtrator

85
7 Codificadores e Multiplexadores
Neste capítulo, analisaremos dois tipos de operações que são comuns em disposi-
tivos digitais: codificação e multiplexagem. Dispositivos de codificação podem ser
categorizados como codificadores ou decodificadores e da mesma forma, temos mul-
tiplexadores e de-multiplexadores. CIs popularmentes disponíveis irão ser usado
para ilustrar essas operações.

7.1 Encoder(codificador)
Um codificador é um dispositivo que faz alguma forma de codificação, por exemplo
convertendo um número octal a binário, como mostrado na figura 7.1. Em geral,
um codificador N bits tem 2N linhas de entrada e N linhas de saída, no caso do
codificador octal para binário, é de 8 para 3, ou seja, oito linhas de entrada e três
linhas de saída. Apenas uma entrada é ativa de cada vez.

Figure 7.1: Um exemplo de um codificador geral : octal para binário

A Tabela 7.1 dá a tabela verdade para este codificador. Pode ser visto que apenas
uma linha de entrada está ativa. Por simplicidade de discussão nesta fase, assumimos

87
Chapter 7 Codificadores e Multiplexadores

que as linhas de entrada e saída para o decodificador é ativo em ALTO, embora nós
veremos mais tarde que a maioria dos decodificadores têm linhas de saída e de
entrada ativo em BAIXO. Quando uma entrada é ativada, o binário correspondente
é a saída. Por exemplo, quando I6 = 1, as saídas são O2 = 1, O1 = 1 e O0 = 0,
que é o número binário para seis. Note-se a ordenação dos índices para as linhas
de entrada e saída na Tabela 7.1: I7 , I6 , ...., I0 são ordenados da esquerda para a
direita, enquanto é O2 , O1 , O0 para as saídas. Este esquema de ordenação é apenas
escolhido para permitir a fácil compreensão dos conceitos.

Table 7.1: Tabela verdade para o codificador 8 para 3

7.1.1 Codificação de Prioridade


Apesar de apenas uma linha de entrada deve estar ativa em um determinado mo-
mento, é possível ter várias linhas, sendo ativa, talvez devido ao ruído ou erro na
concepção da lógica. Para evitar a saída imprevisível em tais situações, a codificação
de prioridade pode ser utilizada. Codificadores de prioridade permitem que as linhas
de indexação superiores a ter precedência sobre os pinos de indexação inferiores.
Consideree um codificador 4-para-2 com a tabela verdade, como mostrado na Tabela
7.2. Sempre que a linha de indexação superior de entrada está ativa, as linhas de
indexação inferiores não tem qualquer efeito (independentemente de ser ativa ou
não). Por exemplo, quando I3 = 1, os valores lógicos para I0 , I1 e I2 não afetam a
saída (mostrado por não condições irrelevante X) e a saída será O1 = 1 e O0 = 1.
Os mapas K para saídas O0 e O1 são como mostrado na Figura 7.2. No entanto,
as condições irrelevantes agora aparecem nas entradas, o que é diferente para as
condições irrelevantes com as saídas que foi estudado no Capítulo 4. Para completar

88
7.1 Encoder(codificador)

Table 7.2: Tabela verdade para codificador de prioridade 4 para 2 prioridade (com
condições irrelevantes)

os mapas K, temos que expandir a Tabela 7.2 para incluir tanto os casos 0 e 1 para
as condições irrelevantes, como mostrado na Tabela 7.3. A partir dos mapas K, as
expressões para as saídas são

O0 = I2 I1 + I3 ,

O1 = I2 + I3 .

A partir da Tabela 7.3, podemos também observar que as saídas serão todas 0 lógico
para dois casos: quando todas as entradas são 0 e I0 = 1. Esta ambiguidade pode
ser resolvida por meio de um pino de saída especial e será discutida mais tarde.
A Figura 7.3 mostra os circuitos lógicos para as saídas O0 e O1 .

7.1.2 Entradas de habilitação


A Figura 7.4 mostra um CI codificador 8 para 3 , 74xx148 com sua pinagem. Ambas
as entradas e saídas são ativas em nível BAIXO, ou seja, habilitado / ativado em 0
lógico. É também um codificador de prioridade, assim as entradas maior indexação
têm prioridade.
A Tabela 7.4 mostra a tabela verdade e pode ser visto que há entradas e saídas
adicionais: Enable Input (EI), Enable Output (EO) e Group Select (GS). Todos os
pinos de habilitação são também ativo em nível BAIXO, como mostrado pelas barras
na Tabela 7.4 e pela presença de bolhas na Figura 7.4. EI habilita o dispositivo e
permite que os valores de entrada alterem as saídas. Tal como mostrado na Tabela
7.4, quando EI = 1 as saídas são todas inativas (ou seja, 1 lógico). Quando EI = 0
as entradas são ativadas e afetam as saídas. Por exemplo, quando I7 = 0, as saídas

89
Chapter 7 Codificadores e Multiplexadores

Table 7.3: Tabela verdade para codificador de prioridade 4 para 2 prioridade


(mostrando todos casos das condições irrelevantes)

são O2 = O1 = O0 = 0. Da mesma forma, quando I3 = 0, as saídas são O2 = 1 e


O1 = O0 = 0 (note que as saídas estão ativas em nível baixo, assim isso representa
3 em binário).

Quando todas as entradas estão inativas, GS está desativado(GS = 1) e quando


qualquer uma entrada está ativa, então GS = 0. Assim GS é útil para indicar se a
condição de O2 = O1 = O0 = 1 é causada por I0 = 0 ou se todas as entradas estão
inativas.

EO é usada quando vários codificadores estão em cascata de para formar um sistema


de codificação de maior prioridade. Para esta finalidade, a saída é ligada à entrada
do codificador de prioridade inferior.

90
7.2 Decodificadores

Table 7.4: Tabela verdade para o codificador 74xx148

7.2 Decodificadores
O decodificador é o oposto do codificador, por exemplo, um descodificador 3 para
8, que aceita três entradas binárias e ativa a saída única correspondente, conforme
mostrado na Figura 7.5. A Figura 7.6 mostra um CI 74xx138, que é um descodifi-
cador binário para octal (3 para 8) . As três entradas estão ativas em nível ALTO
(note que não há bolha na figura), mas as oito saídas são todas ativas em nível
BAIXO. Além disso, três entradas de habilitação: dois ativas em nível BAIXO e
uma ativa em nível ALTO necessitam estar no modo afirmado para habilitar o CI
(ou seja, E3 = 1, E2 = 0 e E1 = 0). Se qualquer uma dessas entradas estão em
um estado inativo, então todas as saídas estarão em estado inativo (i.e 1 lógico uma
vez que estes são pinos ativos em nível BAIXO), independentemente das entradas,
como mostrado pelas três primeiras linhas da Tabela 7.5. Quando E3 , E2 e E1 estão
ativados, as entradas afetam a saída. Por exemplo, quando I 2 = I 1 = I 0 = 1 então
o pino O7 torna-se baixo e quando I 2 = I 1 = 1 e I 0 = 0 o pino O6 torna-se baixo

7.3 Multiplexador
O Multiplexador (também conhecido como seletor de dados) é um dispositivo digital
que funciona como um interruptor tomando várias entradas e ligando uma entrada

91
Chapter 7 Codificadores e Multiplexadores

Table 7.5: Tabela verdade para o 74xx138

selecionada para a saída de cada vez. Multiplexadores de duas e quatro entradas


são mostrados na Figura 7.7. Para o multiplexador de duas entradas, existe duas
entradas: I1 e I0 e com uma saída, O0 . O selector de entrada, S0 vai decidir o
percurso a partir da entrada para a saída. Por exemplo, quando S0 = 1, I1 é selec-
cionado e os dados de I1 são encaminhados para a saída O0 . Para o multiplexador
de quatro entrada, existem quatro entradas: I3 , I2 , I1 e I0 com uma saída, O0 . As
entradas selectoras S1 e S0 decidirão qual a ligação é feita a partir da entrada para
a saída. Por exemplo, quando S1 = S0 = 1, I3 é seleccionado e os dados I3 são
encaminhados para a saída O0 . As Tabelas 7.6 e 7.7 mostram a tabela verdade para
estes multiplexadores.
Para obter o diagrama de circuito lógico para omultiplexador de duas entradas, uma
tabela de verdade como na Tabela 7.8 deve ser construída. Com isso, o mapa K da
saída O0 pode ser obtido como se mostra na Figura 7.8. Dois pares de laços podem
ser desenhados para se obter o resultado como

O0 = S0 I0 + S0 I1

O diagrama de circuito lógico é mostrado na Figura 7.9. Abordagem semelhante


poderia ser utilizada para obter diagramas de circuitos lógicos para multiplexers de
mais entradas.

92
7.4 Demultiplexador

Table 7.6: Tabela verdade para um multiplexador de duas entradas

Table 7.7: Tabela verdade para um multiplexador de quatro entradas

7.3.1 Exemplo de CI Multiplexador

Um multiplexador (IC 74xx157) quádruplo 2-linha para uma linha é mostrado na


Figura 7.10. O CI contém dois conjuntos de quatro entradas (I0a , I1a , I2a , I3A e
I0b , I1b , I2b , I3b ) que podem ser encaminhadas para as quatro saídas (O0 , O1 , O2 , O3 ),
dependendo da selecção de entrada, S0 . A entrada E de habilitação deve ser ajus-
tada, isto é, deve ser 0 lógico para o CI ser ativado. A Tabela 7.9 dá a tabela
verdade para este CI. Quando S0 = 0, as saídas seguem as entradas I0a , I1a , I2a , I3A ,
e quando S0 = 1, as saídas seguem as entradas I0b , I1b , I2b , I3b .

7.4 Demultiplexador
Um demultiplexador faz o oposto do multiplexador levando uma única entrada para
uma saída seleccionada. Por isso, é também conhecido como distribuidor de dados.
Um exemplo de um desmultiplexador de uma 1 para 8 linhas é mostrada na Figura
7.11.

93
Chapter 7 Codificadores e Multiplexadores

Table 7.8: Tabela verdade para um multiplexador de duas entradas

O CI 74xx138, que é um decodificador 3 para 8 (que discutimos anteriormente) pode


também ser usado como um demultiplexador 1x8 linha usando E1 como entrada de
dados e as três entradas como seletores. Os outros dois pinos de enable são ajustados
para permitir a habilitação do CI, ligandoE2 ao terra (ou seja, a 0 lógico) e E3 é
ligado a Vcc (+5 V) para se obter 1 lógico. Usando esta convenção, a configuração
de pinos é como mostrado na Figura 7.12 e a tabela verdade, como na Tabela 7.10.
As entradas de seleção (S0 , S1 , S2 ) irá selecionar o pino de saída particular e os
dados de entrada (I0 ) serão distribuídos a este pino de saída selecionado. Devido à
natureza dual de tais CIs, estes são geralmente conhecidos como CIs decodificador
/ desmultiplexador .
Deve ser lembrado que 74xx138 IC tem saídas que são ativas em nível BAIXO,
portanto, saídas inativas têm 1 lógico, como mostrado na Tabela 7.10.

94
7.4 Demultiplexador

Table 7.9: Tabela verdade do demultilexador 1x8 usando CI 74xx138

95
Chapter 7 Codificadores e Multiplexadores

Figure 7.2: Mapas K do codificador de prioridade de 4 para 2 : (a) O0 (b) O1 .

96
7.4 Demultiplexador

Figure 7.3: Circuito lógico do codificador de prioridade de 4 para 2

Figure 7.4: Pinagem do decodificador 8 para 3 integrado 74xx148

97
Chapter 7 Codificadores e Multiplexadores

Figure 7.5: Exemplo de decodificador 3 para 8

Figure 7.6: Pinagem do CI decodificador 3 para 8 74xx138

98
7.4 Demultiplexador

Figure 7.7: Multiplexadores (a) duas entradas (b) quatro entradas

99
Chapter 7 Codificadores e Multiplexadores

Figure 7.8: Mapa K para o multilexador de duas entradas

Figure 7.9: Circuito lógico para o multilexador de duas entradas

Figure 7.10: Pinagem do CI multiplexador quádruplo 2 para 1 linha 74xx157.

100
7.4 Demultiplexador

Figure 7.11: Demultiplexador 1 para 8 linhas

101
Chapter 7 Codificadores e Multiplexadores

Figure 7.12: Demultilexador 1x8 usando decodificador 74xx138

102
8 Contadores

Neste capítulo, vamos utililizar flip-flops e portas lógicas para projetar contadores.
Existem dois tipos de contadores: assíncronos e síncronos. Contadores assíncronos
são também conhecidos como contadores por pulsação quando as ondas de pulsos
de relógio a partir de um flip-flop é ligado ao próximo. A saída do contador pode
ser incorreta se o atraso acumulado da ondulação é maior que o pulso do clock.
Contadores síncronos, por outro lado, tem a entrada de pulsos de relógio comum a
cada um flip-flop e, portanto, não sofrem este efeito de ondulação. No entanto, esses
contadores de frequência exigem circuitos adicionais.

8.1 Contador assíncrono crescente

A Figura 8.1 mostra um exemplo de um contador assíncronas crescente de um bit.


Flip-flops JK são usadas aqui, embora qualquer flip-flop poderia ser utilizado. Dois
flip-flops são necessários neste caso, uma vez que é um contador de dois bits. A
Figura 8.2 mostra o diagrama de estado e a tabela de estado, ou seja, a sequência
da saída do contador. Como existem dois bits, os ciclos através são de quatro
estados: 00, 01, 10, 11 e é conhecido como contador crescente, uma vez que a ordem
é crescente.
Como pode ser visto a partir da figura, todas as entradas J e K são amarradas a
um nível lógico 1. Isso garante que todos os flip-flops operam apenas no modo de
alternância. A saída do flip-flop 1, Q1 é o LSB, enquanto que a saída do flip-flop
2, Q2 é MSB. A saída Q1 também atua como o relógio de pulso de entrada para o
flip-flop 2.
Analisando o diagrama de tempo mostrado na Figura 8.3: no tempo t1 , o pulso de
relógio NGT gatilha Q1 para alternar de 0 lógico para 1 lógico. No tempo t2 , o pulso
de relógio NGT faz Q1 mudar de estado para 0 lógico. Como a saída do flip-flop 1
atua como entrada de clock para o flip-flop 2, no tempo t2 , Q2 comuta para nível
lógico 1. No tempo t3 , o relógio de entrada NGT comuta Q1 a nível lógico 1, mas
não há nenhuma alteração em Q2 já que a entrada de relógio do flip-flop 2 neste
momento é PGT e não NGT. No tempo t4 , tanto Q1 e Q2 comuta para 0 lógico.
Pode ser visto que os ciclos do contador através de estados é 00 → 01 → 10 → 11 e
o ciclo é repetido.

103
Chapter 8 Contadores

Figure 8.1: Contador assíncrono crescente de dois bits com pulso de clock NGT.

Figure 8.2: Diagrama de estado e tabela para o contador assíncrono crescente de


dois bits.

8.1.1 Contador assíncrono crescente com flip-flops de pulso PGT

A Figura 8.4 mostra um contador assíncrono crescente de dois bits, mas com o clock
gatilhando na borda positiva. O figura é quase a mesma da Figura 8.1, exceto que a
entrada de clock do 2 flip-flop vem de Q1 em vez de um Q1 . O diagrama de estado
e a tabela de estado será a mesmo, como mostrado na Figura 8.2. O diagrama de
temporização é mostrada na Figura 8.5, onde pode ser visto que os flip-flops mudam
na borda positiva de relógio (PGT)).
O diagrama de tempo na Figura 8.5 pode ser analisado como segue: no tempo t1 ,
o pulso de relógio PGT comuta Q1 para alternar de 0 lógico para 1 lógico. Não
há nenhuma alteração em Q2 e a saída do contador é 01. No tempo t2 , o pulso de
relógio PGT faz Q1 para mudar de estado para 0 lógico. Como a saída de Q do
flip-flop 1 atua como entrada de relógio para o flip-flop 2, no momento t2 , Q2 comuta
para o nível lógico 1 e a saída do contador é agora 10. No tempo t3 , o relógio de
entrada PGT comuta Q1 a um nível lógico 1, mas não há nenhuma alteração em Q2
já que a entrada de relógio de flip-flop 2 neste momento é NGT e não PGT levando
a saída do contador para 11. No tempo t4 , tanto Q1 e Q2 comutam para 0 lógico
levando a saída do contador para 00. Em t5 , Q1 comuta para 1 lógico, mas não
há nenhuma alteração em Q2 . Pode ser visto que os ciclos do contador através dos
estados é 00 → 01 → 10 → 11 e o ciclo é repetido.

104
8.2 Contador assíncrono decrescente

Figure 8.3: Diagrama temporal para o contador assíncrono crescente de dois bits
com pulso de clock NGT.

Figure 8.4: Contador assíncrono crescente de dois bits com pulso de clock PGT.

8.2 Contador assíncrono decrescente

A Figura 8.6 mostra um exemplo de um contador assíncrono decrescente de dois


bits usando flip-flop tipo T com pulso de clock NGT. O relógio para o segundo flip-
flop vem Q1 (semelhante ao contador crescente PGT conforme mostrado na Figura
8.4). A Figura 8.7 mostra o diagrama de estado e a tabela de estado, ou seja, a
sequência da saída do contador. Os ciclos do contador através de quatro estados são:
11 → 10 → 01 → 00 ou seja, em ordem decrescente, uma vez que é um contador
decrescente (como mostrado na Figura 8.8).
Em t1 , o pulso de relógio NGT comuta o flip-flop para nível lógico 1. Como Q1
agora é a entrada de clock para o segundo flip-flop, no tempo t1 , a saída do flip-flop
2 comuta para o nível lógico 1. A saída do contador é agora 11. No tempo t2 , o
flip-flop 1 comuta para o nível lógico 0, enquanto não há mudança no flip-flop 2 pois
a entrada de clock para o segundo flip-flop neste momento é PGT. A saída é agora

105
Chapter 8 Contadores

Figure 8.5: Diagrama temporal para o contador assíncrono crescente de dois bits
com pulso de clock PGT.

10. No tempo t3 , ambos flip-flops receberm entradas de clock NGT e comutam para
os estados opostos, levando a saída como 01. No momento t4 , o flip-flop 1 comuta
para 0 lógico, levando a saída do contador para 00. Assim, os ciclos do contador
são: 11 → 10 → 01 → 00.
Da mesma forma, um contador com maior número de bits pode ser construído. Por
exemplo, um contador assíncrono decrescente de 4 bits com pulso de clock PGT
usando JK flip-flops é mostrado na Figura 8.9. As entradas de clock (com exceção
do primeiro flip-flop) vêm de output Q do flip-flop anterior. O ciclo do contador
será:
1111 → 1110 → 1101 → 1100 → 1011 → 1010 → 1001 → 1000 → 0111 → 0110 →
0101 → 0100 → 0011 → 0010 → 0001 → 0000.
A Tabela 8.1 apresenta um resumo das entradas de clock para o segundo flip-flop
em diante do contador up/down versus tipo borda de gatilho.

8.3 Contador assíncrono com ciclos incompletos


Até agora, temos visto contadores que completam o ciclo para o número especí-
fico de bits, por exemplo, um contador crescente de dois bits teria quatro estados:
00 → 01 → 10 → 11 e um contador de três bits teria oito estados: 111 → 110 →
101 → 100 → 011 → 010 → 001 → 000. Considere um caso onde precisamos de

106
8.3 Contador assíncrono com ciclos incompletos

Figure 8.6: Contador assíncrono decrescente de dois bits com pulso de clock NGT
usando flip-flop tipo T.

Figure 8.7: Diagrama de estado e tabela para o contador assíncrono decrescente


de dois bits.

um contador para contar 00 → 01 → 10. Dois flip-flops serão necessários, mas o


contador tem que voltar a 00 após 10 e não depois de 11. Portanto circuitos adi-
cionais serão necessários para repor o contador depois de 10. O diagrama de estado
é mostrado na Figura 8.10, onde o estado temporário de 11 só irá ocorrer por um
período muito curto de tempo e, consequentemente, não aparece no ciclo de con-
tagem. Para este propósito, a entrada assíncrona clear dos flip-flops em conjunto
com uma porta NAND poderia ser usada para repor os dois flip-flops instantanea-
mente. Esta situação é mostrada na Figura 8.11. Logo que o estado Q2 = 1 (ou
seja, B = 1) e Q1 = 1 (isto é, A = 1) ocorrem, as entradas clear resetam todos
o flip-flops para 0 e, em seguida, o contador retoma o seu ciclo. A Figura 8.12
apresenta o diagrama de temporização para o contador.
No tempo t1 , a borda PGT do relógio comuta a primeira saída do flip-flop 1 (isto
é Q1 = 1). Não há nenhuma alteração em Q2 = 0. No tempot2 ,Q1 comuta para
0 e Q2 comuta para 1. No tempo t3 , Q2 permanece em 1 e Q1 comuta para 1.
No entanto, neste ponto do tempo, a saída da porta NAND tem nível lógico 0 e,
consequentemente, ativa a entrada CLR que reseta ambos flip-flops a um nível lógico
0. O contador em seguida, recomeça a contagem. O efeito de CLR é instantâneo
e, embora o diagrama de tempo mostra uma falha durante o intervalo de tempo t3 ,
ele ocorre apenas durante um curto período de tempo e não aparece como parte da
saída do contador.

107
Chapter 8 Contadores

Figure 8.8: Diagrama temporal para o contador assíncrono decrescente de dois bits
com pulso de clock NGT.

Figure 8.9: Contador assíncrono decrescente de quatro bits com pulso de clock
PGT

Vejamos outro exemplo: um contador para contar apenas 000 → 001 → 010 →
011 → 100 . Nesta situação, vamos precisar de três flip-flops e o contador tem que
parar o ciclo em 100 (e saltar 101, 110 e 111) e voltar para 000. Em outras palavras,
o contador tem de reiniciar depois de 100. O diagrama de estado é mostrado na
Figura 8.13. Como mencionado anteriormente, o estado temporário de 101 ocorre
apenas durante um curto período de tempo e, consequentemente, não aparece no
ciclo. O circuito adicional usando NAND e entradas CLR resetam o contador a 000
quando o estado 101 ocorre . O circuito lógico é mostrado na Figura 8.14. Assim
que o estado Q3 = 1 (isto é, C = 1) e Q1 = 1 (isto é, A = 1) ocorrem, as entradas
clear resetam todos o flip-flops para 0 e o contador retoma o seu ciclo.

108
8.4 Contadores síncronos

Table 8.1: Entradas de clock para o segundo flip-flop em diante do contador


up/down versus tipo borda de gatilho.

Figure 8.10: Three state up-counter showing a temporary state

8.4 Contadores síncronos

Os contadores síncronos são vantajosos em relação aos contadores assíncronos, pois


não sofrem do efeito cascata de relógio pois todos os flip-flops são pulsados ao mesmo
tempo. Além disso, eles permitem projetar contadores em qualquer sequência ar-
bitrária. No entanto, os contadores síncronos exigem frequentemente circuitos adi-
cionais. Neste ponto, diversos exemplos serão utilizados para ilustrar a concepção
do contador síncrono. Os passos básicos do projeto são:
1) Obtenha o diagrama/tabela de estado
2) Decidir o número e tipo de flip-flops
3) Deduzir a tabela de excitação do estado
4) Obter as expressões simplificadas para as entradas do flip-flop (por exemplo,
usando mapas K)
5) Desenhe o diagrama de circuito lógico

109
Chapter 8 Contadores

Figure 8.11: Three state asynchronous up-counter with PGT clock pulse (with-
CLR input).

8.4.1 Contadores síncronos - exemplo 1

Suponha que desejamos projetar um contador que conte 000 → 010 → 011 → 111
e, em seguida, volte para 000. Neste contador, há vários estados não usados: 001,
100, 101 e 110. Embora esses estados não deve ocorrer em nosso projeto, é uma
boa prática definir o contador ir à 000 se qualquer um desses estados indesejáveis
ocorrem.
Passo 1 : Diagrama de estados é mostrado na Figura 8.15.
Passo 2 : O número de flip-flops é três e vamos supor que são usados flip-flops JK .
Passo 3 : A tabela de excitação é, basicamente, uma tabela de verdade, que dá
as entradas J e K necessárias para permitir uma alteração na saída corrente de Q
para próximo estadoQ+ . A tabela 8.2 mostra o quadro geral de excitação para um
flip-flop JK (com condições irrelevantes, X).
A tabela de excitação para o contador a ser projetado é mostrada na Tabela 8.3.
Passo 4 : Usando a Tabela 8.3 de excitação , podemos obter os mapas K para cada
entrada, como mostrado nas Figuras 8.16-8,18 onde os estados presentes devem ser
utilizados para desenhar os mapas K.
A partir dos mapas K, as expressões simplificadas para as entradas são:

110
8.4 Contadores síncronos

Figure 8.12: Timing diagram for three state asynchronous up-counter with PGT
clock pulse.

JA = AC; KA = C + A

JB = BC; KB = C

JC = AB KA = 1

Passo 5 : O diagrama de circuito lógico é dado na Figura 8.19. Observe que to-
das as entradas de relógio são ligadas juntas e, portanto, o flip-flops são pulsados
simultaneamente.

8.4.2 Contadores síncronos - exemplo 2


Agora, considere um outro exemplo usando flip-flops T e o contador a ser projetado
através tem sequencia 000 → 010 → 100 → 110 e, em seguida, retorna para 000.

111
Chapter 8 Contadores

Figure 8.13: Five state up-counter showing a temporary state.

Table 8.2: Excitation table for general J-K flip-flop

Passo 1 : Como o LSB do contador não muda, não precisamos estar preocupados
com o projeto para este bit e podemos definir QA = 0. Assim, o diagrama de estado
simplificado é mostrado na Figura 8.20.
Passo 2 : O número de flip-flops é somente dois e flip-flops T serão usados.
Passo 3 : A tabela geral de excitação para o flip-flop tipo T é dada na Tabela 8.4,
enquanto a tabela de excitação pra o contador édado na Tabela 8.5.
Passo 4 : O mapas K são mostrados na Figura 8.21. As expressões simplificadas são

TB = 1

TC = B

Passo 5 : O diagrama de circuito lógico é mostrado na Figura 8.22.

112
8.4 Contadores síncronos

Figure 8.14: Five state asynchronous up-counter with NGT clock pulse (withCLR
input).

Figure 8.15: State diagram for synchronous counter in example 1.

113
Chapter 8 Contadores

Table 8.3: Excitation table for the counter in example 1

Table 8.4: General excitation table for T flip-flop

114
8.4 Contadores síncronos

Figure 8.16: K-maps for inputs (a) JA and (b) KA.

115
Chapter 8 Contadores

Figure 8.17: K-maps for inputs (a) JB and (b) KB.

116
8.4 Contadores síncronos

Figure 8.18: K-maps for inputs (a) JC and (b) KC.

117
Chapter 8 Contadores

Figure 8.19: Logic circuit diagram for counter in example 1.

Figure 8.20: Simplified state diagram for example 2.

Figure 8.21: K-maps for example 2: (a) TB (b) TC.

118
8.4 Contadores síncronos

Table 8.5: Excitation table for the counter in example 2

Figure 8.22: Logic circuit diagram for example 2.

119

Você também pode gostar