You are on page 1of 50

1

DISCIPLINA: INTRODUÇÃO Á ORGANIZAÇÃO DE COMPUTADORES


ELEMENTOS BÁSICOS DE CIRCUITOS DIGITAIS

CAPÍTULO I CIRCUITOS DIGITAIS COMBINACIONAIS


Mesmo em um sistema digital de larga escala, tal como um computador, ou um sistema de
processamento de dados, de controle ou digital de comunicação, existem somente algumas
operações básicas que devem ser executadas. Estas operações são naturalmente repetidas muitas
vezes e são realizadas por circuitos digitais. De maneira bastante ampla, podemos classificar os
circuitos digitais em combinacionais e seqüenciais.
Circuitos combinacionais são aqueles nos quais a saída depende apenas do estado presente
das entradas; são constituídos de circuitos ou portas lógicas. Portas lógicas são utilizadas para
implementar equações algébricas booleanas (será mostrado mais tarde).
Circuitos seqüenciais são aqueles nos quais a saída depende não só do estado presente das
entradas, mas também de seus estados anteriores; são constituídos de portas lógicas e flip-flops
(biestáveis).
Neste capítulo, abordaremos os problemas de análise e síntese de circuitos combinacionais à
base das equações da álgebra de Boole, utilizando circuitos integrados básicos.

1.1 Operação digital (binária) de um sistema.

As funções de um sistema digital são de forma binária. Esse sistema emprega dispositivos
que apresentam somente dois estados. Por exemplo, um transistor da chave eletrônica é polarizado
para operar no corte ou na saturação. Então, somente as tensões de saída de nível alto VOH e de
nível baixo VOL são permitidas. Várias denominações são usadas para estes dois níveis discretos de
tensão. e os mais comum são apresentados na Tabela 1.1
Tabela 2.1 Terminologia do estado binário
1 2 3 4 5 6 7 8
Um dos Verdadeiro Nível 1 Com Excitado Desligado Fechado Sim
estados alto pulso
O outro Falso Nível 0 Sem Não Ligado Aberto Não
estado baixo pulso excitado

1
2

Em lógica, uma afirmação é verdadeira ou falsa ; esta é a primeira classificação binária


apresentada na tabela. Uma chave pode estar fechada ou aberta que é a notação da coluna 7 da
tabela, etc. A manipulação da aritmética e da matemática binária de chaveamento ou das funções
lógicas utiliza somente os símbolos matemáticos 0 (zero) e 1 (um), encontrados na coluna 3 da
tabela.
O sistema binário de representação de números será agora explicado fazendo-se referência ao
sistema decimal geralmente usado. O sistema de numeração posicional decimal têm a base igual
a 10 (dez) e dez algarismos : 0, 1, 2, ... ,9 que são necessários para exprimir um número qualquer.
Para escrever números maiores que nove, associamos um valor à posição de um número em um
conjunto de algarismos. Um número qualquer no sistema de numeração posicional decimal pode
ser representado como a seguinte soma algébrica:
N (10 ) = a n × 10 n + a n-1 × 10 n-1 +... +a i × 10i +... +a 1 × 101 + a 0 × 10 0 .

Onde: i = 0, 1, ... n; n = 0, 1, ... ∞ é o quantidade dos algarismos (posições) no número N(10) ,


{ai}∈{0, 1, 2, ..., 9} é o conjunto de algarismos decimais básicos no qualquer número N(10).
Por exemplo, o número 1994, é expresso da seguinte maneira:
1994(10) = 1 × 103 + 9 × 102 + 9 × 101 + 4 × 100.
Assim, os dígitos individuais de um número representam os coeficientes do
desenvolvimento
(do conjunto {ai}) do número em potência de 10. O primeiro dígito da direta representa o
coeficiente da potência zero, o seguinte representa o coeficiente da potência um, e assim por diante.
Isto é , o "peso" do coeficiente ai depende da posição no número N(10) (sistema de numeração
posicional).
No sistema de numeração posicional binário a base é 2, e somente os dois números 0 e 1
({ai} ∈ {0, 1}) são necessários para representar um número M(2)
M ( 2) = a m × 2m + a m -1 × 2m -1 +... +a i × 2i +... +a 1 × 21 + a 0 × 20 .

Onde i = 0, 1, ... m;
m = 0, 1, ... ∞ é o quantidade dos algarismos (posições) no número binário M(2) ,
{ai} ∈ {0, 1} é o conjunto de algarismos binários básicos no qualquer número M(2).
Os algarismos 0 e 1 têm o mesmo significativo que no sistema decimal, mas se dá uma
interpretação diferente para a posição ocupada pelo dígito. No sistema binário os algarismos
representam individualmente os coeficientes (do conjunto {ai} ∈ {0, 1}) das potências de dois e não
das potências de dez, como no sistema decimal.

2
3

Por exemplo, o número decimal 19 é escrito na representação binária como 10011, pois
10011( 2) = 1 × 24 + 0 × 23 + 0 × 22 + 1 × 21 + 1 × 20 = 16 + 0 + 0 + 2 + 1 = 19(10 ) .

Um método geral para converter número decimal em número binário é seguinte:


Dado um número inteiro escrito na base 10. Para obter seu equivalente na base 2 , divide-se o
número por 2 tantas vezes quantas necessárias para que o quociente da divisão seja menor que 2 ,
isto é , igual a 0 ou 1. O último quociente e os restos das divisões sucessivas, tomados na ordem
inversa, correspondem ao número na base 2.
Exemplo: Converter o número decimal 37(10) para a base 2.
Solução: Aplicando a regra explicada, temos
37 ÷ 2 18 ÷ 2 9÷2 4÷ 2 2÷ 2
= 18, = 9, = 4, = 2, =1
1 0 1 0 0
← ler
Logo 37(10) = 100101(2).
Esta regra é valida para converter os números inteiros decimais para uma base "b" qualquer.
Antes de considerar as operações aritméticos no sistema de numeração binária
consideraremos as operações lógicas que utilizam só uma posição e têm só dois valores 0 e 1.

1.2 Operações lógicas ou booleanas.

Uma função lógica ou de Boole (booleana) tem a forma:


y = f(x1, x2, ... , xi, ... , xn)
Onde y, x1, x2, ... , xi, ... , xn são variáveis lógicas, possuindo em conseqüência somente dois
estados possíveis (veja a Tabela 2.1). Isto é,
{xi} ∈ {0, 1} para i = 1, 2, ... , n
e y ∈ { 0, 1 }.
y é variável dependente e {xi} são as variáveis independentes. As variáveis independentes
estão relacionadas através de operações lógicas, que foram desenvolvidas pelo matemático inglês
G.Boole na metade do século passado. A ferramenta matemática utilizada as variáveis lógicas
chama-se Álgebra de Boole (ou booleana).
O número máximo dos funções lógicas diferentes y j = f j (x 1 , x 2 , ... , x i , ... , x n )
n
para j = 0, 1, 2, ... , M-1, depende do número n dos variáveis independentes e é igual a 22 . Isto é,
para dois variáveis independentes x1, x2, isto é n = 2, temos M = 16,
para três variáveis independentes x1, x2, x3, isto é n = 3, temos M = 256.

3
4

Nós consideramos só três funções lógicas básicas. Todas as funções lógicas restantes podem ser
obtidas utilizando a composição destas funções básicas.

1.3 Operação "NÃO".

A operação "NÃO" ( em inglês "NOT" ) é mais simples das operações lógicas. Se x é uma
variável lógica, seu inverso é representando por x (leia-se "não-x" ou "x-barra"). A Fig. 1.1 mostra
a tabela da verdade da operação "NÃO" ou "Negação".

x y
0 1
1 0 y= x
‘ (a) (b)
Fig. 1.1 (a) Tabela da verdade,
(b) Expressão da operação NÃO.

A tabela mostrada na Fig. 1.1a chama-se tabela da verdade ( em inglês "truth tabela" ) e é
uma forma útil de representar funções lógicas. A coluna da esquerda mostra os valores que x pode
assumir e a coluna da direita os valores resultantes para a variável y. Como neste caso temos uma
única variável independente, é claro que a tabela da verdade possui duas linhas, uma vez que x
somente pode ser "0" ou "1".
A Fig. 1.2 mostra um circuito elétrico que representa a operação "NÃO".
R
x _
S L y= x
+ 0 1 americano
L 1 0 ou
V
- S x y= x
1
padrão IEC117-13
(a) (b) (c)
Fig. 1.2 (a) Circuito representativo da operação "NÃO",
(b) Tabela da verdade ,
(c) Símbolos do circuito inversor.
Neste circuito, se a chave S está aberta (S=0) a lâmpada L está acesa (L=1) e se a chave S
está fechada (S=1) a lâmpada L está apagada (L=0).

4
5

O circuito que realiza a operação "NÃO" é denominado inversor e representado pelos


símbolos mostrados na Fig. 1.2c.

1.4 Operação "E".

A operação "E" ( em inglês "AND" ) é definida como aquela em que a variável de saída y é
igual a "1" se, e somente se, todas as variáveis de entrada forem iguais a "1". A operação lógica
"E" se chama multiplicação lógica ou a conjunção das variáveis independentes. Para duas
variáveis independentes. Para duas variáveis independentes , usando os símbolos de multiplicação e
de conjunção, a expressão da operação lógica "E" pode ser escrita como
y = x 1 ∧ x 2 = x 1 & x 2 = x 1 . x 2 = x 1x 2 e é lida como y igual a x1 E x2.
A Fig. 1.3 ilustra um circuito elétrico que representa a operação lógica "E" para duas
variáveis e sua tabela da verdade. O circuito que realiza a operação "E" denomina-se porta "E".

S1 S2 S1 S2 L x1
y=x 1 x2
0 0 0 x2
americano
+ 0 1 0 ou
V L x1
1 0 0 & y=x 1 x2
- x2
1 1 1 I E C 117-13
(a) (b) (c)

Fig. 1.3 (a) Circuito representativo da operação "E". (b) Tabela da verdade.
(c) Símbolos de uma porta "E" para duas entradas x1 e x2.

As convenções utilizadas são as mesmas que para o circuito da Fig. 1.2 e você ver
claramente que para que a lâmpada L esteja acesa (estado lógico "1") é necessário que as chaves S1
e S2 estejam fechadas (ambas no estado lógico "1").

1.5 Operação "OU".

5
6

A operação "OU" ( em inglês "OR" ) é definida como aquela em que a variável de saída é
igual a "1" se uma ou mais variáveis de entrada forem iguais a "1". Isto é, equivalente a dizer que a
saída será igual a "0" se , e somente se, todas as variáveis de entrada forem iguais a "0". A
operação lógica "OU" se chama a adição lógica ou a disjunção das variáveis independentes. Para
duas variáveis independentes, usando os símbolos de adição e de disjunção, podemos escrever a
operação lógica "OU" como
y = x1 ∨ x 2 = x1 + x 2 que é lida como y igual a x1 OU x2
A Fig. 1.4 mostra um circuito elétrico que representa a operação "OU" para duas variáveis,
sua tabela da verdade e os símbolos usados para representar a porta "OU".

S1
S1 S2 L x1
y = x 1+ x 2
x2
0 0 0 americano
S2 0 1 1
+
V 1 0 1 x1 y = x 1+ x 2
L 1
- x2
1 1 1 padrão IEC
(a) (b) (c)

Fig. 1.4 (a) Circuito representativo da operação "OU", (b) Tabela da verdade.
(c) Símbolos de uma porta "OU" para duas entradas x1 e x2.

1.6 Propriedades das operações lógicas.

Vamos agora examinar uma série de propriedades das operações lógicas. Estas propriedades
podem ser verificadas de maneira simples através das tabelas da verdade.
1. As operações "E' e "OU" são comutativas como as operações aritméticas: multiplicação e
adição, ou seja:
x1 . x 2 = x 2 . x1
x1 + x 2 = x 2 + x1
2. As operações "E" e "OU" são associativas como as operações aritméticas respectivas, ou seja:
x 1 .( x 2 .x 3 ) = (x 1 . x 2 ).x 3
x 1 + ( x 2 + x 3 ) = (x 1 + x 2 ) + x 3
3. Teorema da involução

x=x

6
7

que quer dizer que a dupla negação conduz à variável original (não-não x é igual a x).
4. A operação "E" é distributiva em relação à operação "OU" (como a multiplicação aritmética é
distributiva em relação à adição aritmética).
x 1 . ( x 2 + x 3 ) = x 1 .x 2 + x 1 .x 3
5. Outras propriedades:
x.x = x; x + x = x;
x.0 = 0; x.1 = x;
x + 0 = x; x + 1 = 1;
x. x = 0 ; x + x = 1;
x 1 + x 1 .x 2 = x 1 x1 + x1 . x 2 = x1 + x 2;

0=1 o complemento de "0" é igual a "1";


1= 0 o complemento de "1" é igual a "0".
6. Teoremas de De Morgan:
a. A operação "NÃO" aplicada a uma operação "E" é igual à operação "OU" aplicada aos
complementos das variáveis de entrada, ou seja
x1 . x 2 = x1 + x 2 (1.1)
b. A operação "NÃO" aplicada a uma operação "OU" é igual à operação "E" aplicada aos
complementos das variáveis de entrada, ou seja
x1 + x 2 = x1 . x 2 (1.2)

1.7 Porta "NÃO-E" como bloco lógico universal.

As operações "NÃO", "E" e "OU" podem ser realizadas utilizando-se portas "NÃO-E" e, por
este motivo, a porta "NÃO-E" é conhecida como bloco lógico universal (em inglês "NAND").
Se as três operações básicas podem ser realizadas com portas "NÃO-E", isto significa que
qualquer circuito lógico pode ser sintetizado apenas com este tipo de porta.
Uma porta "NÃO-E" com duas entradas fornece a saída:
y = x1 . x 2

Aplicando o mesmo sinal às duas entradas, temos y = x . x mas como x.x=x, segue-se y = x .
Em outras palavras, para obter a função "NÃO" a partir da porta "NÃO-E", basta ligar todas as
entradas juntas. A Fig. 1.5a mostra um inversor construído a partir de uma porta "NÃO-E" de duas
entradas

7
8

_ _ _ _
x y= x x1 x 1. x 2 y = x 1. x 2 = x1 x1 y = x 1. x 2 =
& & & & &
= x1 . x 2 = x1+x 2
x2

_
x2 x2
&
(a) (b) (c)

Fig. 1.5 Porta "NÃO-E" como bloco lógico universal.


(a) Inversor a partir da porta "NÃO-E".
(b) Função "E" a partir de portas "NÃO-E".
(c) Função "OU" a partir de portas "NÃO-E".

Como a operação "NÃO-E" é o inverso da operação "E" basta inverter a saída da porta
"NÃO-E" para obter a função "E". A Fig. 1.5b mostra como é obtida a função "E" para duas
variáveis a partir de portas "NÃO-E" .
Para conseguir a função "OU" a partir de portas "NÃO-E" , devemos considerar o primeiro
teorema de De Morgan (Eq. 1.1), lembrando também que a dupla negação retorna à variável
original. Veja as expressões abaixo:

y = x1 . x 2 = x1 + x 2 = x1 + x 2
ou seja, para obter a função "OU", realizamos a operação "NÃO-E" com os complementos das
variáveis de entrada. A Fig. 1.5c mostra como é obtido a função "OU" para duas variáveis a partir
de portas "NÃO-E" .

1.7 Porta "NÃO-OU" como bloco lógico universal.

Também a porta "NÃO-OU" (em inglês "NOR") pode ser utilizada para realizar as três
operações lógicas fundamentais "NÃO", "E" e "OU". Assim, a porta "NÃO-OU" é também um

8
9

bloco lógico universal e qualquer circuito lógico pode ser construído apenas com este tipo de
porta:
y = x1 + x 2
Se aplicarmos o mesmo sinal às entradas de uma porta "NÃO-OU" de, por exemplo, duas
entradas, teremos na saída y = x + x , mas, como x + x = x, segue-se que y = x .
Assim para conseguir a função "NÃO" a partir da porta "NÃO-OU", basta conectar juntas
todas as entradas da porta.
A Fig. 1.6a mostra um inversor construindo com uma porta "NÃO-OU" de duas entradas;

_ _ _ _
x 1 y= x x1 x1 y = x 1+ x 2 = x1 x 1+ x 2 y = x 1+ x 2 =
1 1 1 1
= x1 . x 2 = x 1+ x 2
x2

_
x2 1 x2

(a) (b) (c)

Fig. 1.6 Porta "NÃO-OU" como bloco lógico universal.


(a) Inversor a partir da porta "NÃO-OU".
(b) Função "E" a partir de portas "NÃO-OU".
(c) Função "OU" a partir de portas "NÃO-OU".

Para conseguir a função "E" a partir de portas "NÃO-OU" , devemos considerar o segundo
teorema de De Morgan (Eq. 1.2) e o fato que a dupla negação retorna à variável original. Veja as
expressões abaixo:

y = x1 + x 2 = x1 & x 2 = x1 & x 2
ou seja, para obter a função "E", realizamos a operação "NÃO-OU" com os complementos das duas
variáveis de entrada. A Fig. 1.6b mostra como é conseguida a função "E" para duas variáveis com
portas "NÃO-OU" .
1.8 Função "OU exclusivo".

Uma importante função lógica de duas variáveis é a função "OU exclusivo" (em inglês:
"EXCLUSIVE-OR" ou "EXOR"), que encontra grande aplicação prática em circuitos digitais,

9
10

como, por exemplo, somadores. A operação "OU exclusivo" é representada por uma cruz dentro de
um círculo e tem a segunda denominação "adição em módulo 2":
y = x1 ⊕ x 2
A Fig. 1.7 mostra a tabela da verdade para a função "EXOR" e os dois símbolos (americano
e europeu).

x1 x2 y

0 0 0 x1
x1 =1 y = x 1+ x 2
y = x 1+ x 2
0 1 1 x2
x2
1 0 1

1 1 0
(b)
(a) (c)

Fig. 1.7 Função lógica "OU exclusivo": y = x 1 ⊕ x 2 .


(a) Tabela da verdade.
(b) Símbolo americano.
(c) Símbolo europeu (IEC).

A função "OU exclusivo" também há função lógica universal mas pode ser representada em
termos das operações fundamentais "E", "OU", "NÃO", pela equação:
y = x 1 .x 2 + x 1 .x 2 = x 1 ⊕ x 2 (1.3)
Fica como exercício para você a construção do circuito "OU exclusivo" de portas "E",
"OU", "NÃO" conforme à formula (1.3).

1.9 Análise de circuitos combinacionais.

A análise de um circuito consiste em determinar a relação entre sua(s) saída(s) e suas


entradas. De forma objetiva, analisar um circuito consiste em determinar o que ele faz.

10
11

Ao analisarmos um circuito combinacional, procuramos obter a expressão lógica ou (e) a


tabela da verdade para sua saída ou saídas.
Exemplo 1: Determinar a equação lógica da saída y e a tabela da verdade para o circuito da Fig. 1.8

x1 & S1
1
G2
G1 1 y= ?

x3 G4
&
S2
x2
G3

Fig. 1.8 Circuito lógico das portas "E", "OU", "NÃO".

Solução:
A saída da porta G2 será: S1 = x 1 .x 3 . A saída da porta G3 será: S 2 = x 2 .x 3 .

Como para a porta G4 ("OU") y = S1 + S 2 , substituindo S1 e S2, obtemos: y = x 1 .x 3 + x 2 x 3


Fazendo a tabela da verdade para este circuito obtemos:

x3 x2 x1 S1 S2 y
0 0 0 0 0 0
0 0 1 1 0 1
0 1 0 0 0 0
0 1 1 1 0 1
1 0 0 0 0 0
1 0 1 0 0 0
1 1 0 0 1 1
1 1 1 0 1 1

Fig. 1.9 Tabela da verdade para o circuito da Fig. 1.8.


Observando a tabela, verificamos que a saída y é igual à entrada x1, para x3 = 0 e igual à
entrada x2, para x3 = 1. Em outras palavras, de acordo com o estado da entrada x3, podemos
selecionar uma das duas entradas, x1 ou x2, e colocá-la na saída. Um circuito deste tipo encontra
grande aplicação na prática e recebe o nome de "multiplexor" ou "data selector".

Exemplo 2: Determinar a equação da saída y para o circuito da Fig. 1.10.

11
12

x1
&
S2
G2
& y= ?
& S1

G1 G4
S3
&
x2
G3

Fig. 1.10 Circuito das portas "NÃO-E".

Solução: Examinando o circuito, temos:

S1 = x 1 x 2 = x 1 + x 2

S 2 = x 1S 1

S 3 = x 2S 1
e para a saída:

( )
y = S 2S 3 = S 2 + S 3 = x 1S 1 + x 2S 1 = x 1S 1 + x 2S 1 = (x 1 + x 2 )S 1 = (x 1 + x 2 ) x 1 + x 2 =
= x 1 x 1 + x 1 x 2 + x 2 x 1 + x 2 x 2 = x 1 x 2 + x 1x 2 = x 1 ⊕ x 2 .

O circuito realiza a função "OU exclusivo" entre x1 e x2 . Este circuito (Fig. 2.10) é a
maneira mais simples de implementar a função "EXOR" quando se dispõe somente de portas
"NAND".

Exemplo 3: Determinar a equação lógica da saída y e a tabela da verdade para o circuito


da Fig. 1.11 (por conta).

12
13

x1
S1
x2 G1

S2 S3
G4
x3 y= ?
G6
x4 G2 S4
G5

G3

Fig. 1.11 Circuito lógico.

1.10 Obtenção de expressões lógicas a partir da tabela da verdade.

Obtenção de expressões lógicas é um problema de síntese, em oposição ao de análise


estudado no item anterior. O problema de síntese consiste em determinar um circuito que realize
uma função desejada. Consideramos só uma parte deste problema de síntese: obtenção da expressão
lógica de uma função lógica que é dada pela sua tabela da verdade.
Qualquer expressão lógica sempre pode ser obtida pela sua tabela da verdade na forma
normal de disjunção (DNF) ou na forma normal de conjunção (CNF).
Examinamos só uma forma DNF : expressar a função lógica como uma operação "OU" de
diversos termos, cada um dos quais é uma expressão "E" das variáveis de entrada (forma da soma
de produtos). Vamos ilustrar este método através de exemplo.

Exemplo 1: Dada a tabela de verdade da Fig. 1.12.


Determinar a função (expressão) lógica correspondente à saída y expressando
a na forma de uma soma de produtos.

13
14

x3 x2 x1 y
linha 0 0 0 0 0
∗linha 1 0 0 1 1

∗linha 2 0 1 0 1
linha 3 0 1 1 0
∗linha 4 1 0 0 1
linha 5 1 0 1 0
linha 6 1 1 0 0
∗linha 7 1 1 1 1

Fig. 1.12 Tabela da verdade para o exemplo 1.4.1.

Os passos de um método prático para obter uma função lógica expressa como soma de
produtos (DNF) são seguintes;
1. Verificamos as combinações das entradas para as quais a função é igual a 1.
A saída y será igual a 1 para as combinações das entradas indicadas nas linhas 1,2,4 e 7 da tabela
na Fig. 1.12.
2. Expressamos cada uma das combinações acima como uma operação "E" das variáveis de entrada,
onde aquelas iguais a "0" aparecem barradas (invertidas).

S1 = x 3 x 2 x 1 corresponde à combinação na linha 1: x3 = 0, x2 = 0, x1 = 1

S2 = x 3 x 2 x1 corresponde à combinação na linha 1: x3 = 0, x2 = 1, x1 = 0

S3 = x 3 x 2 x1 corresponde à combinação na linha 1: x3 = 1, x2 = 0, x1 = 0


S4 = x 3x 2x1 corresponde à combinação na linha 1: x3 = 1, x2 = 1, x1 = 1
3. Expressamos a função lógica como uma operação "OU" dos termos obtidos no passo 2.
y = S1 + S2 + S 3 + S4 = x 3 x 2 x 1 + x 3 x 2 x 1 + x 3 x 2 x 1 + x 3 x 2 x 1 (1.4)

A expressão (1.4) representa a função lógica na forma FDNF (forma normal de disjunção
completa) pelas funções básicas "E", "OU", "NÃO", e o diagrama funcional do circuito
combinacional, utilizando os símbolos correspondentes a estas funções é mostrado na Fig. 1.13.

14
15

S1

_
x1 x1
S2

y
_
x2 x2
S3

_
x3 x3 S4

Fig. 1.13 Implementação direta da Eq. 1.4.

Freqüentemente, a tabela da verdade pode ser dada pela uma série das combinações das
variáveis de entrada para as quais a função lógica y é igual a 1. Em regra, esta série é dada pelos
números decimais que são equivalentes aos números binários formados pela combinações das
variáveis de entrada. Por exemplo, a tabela da verdade da Fig. 1.12 pode ser dada da seguinte
maneira:
y = ( 1, 2, 4, 7 )(10)
Isto é, para as combinações das variáveis x3 x2 x1: 001, 010, 100 111, a função y é igual a 1.
Para as restantes combinações das variáveis de entrada y = 0.

1.11 Simplificação e minimização das expressões lógicas.

A expressão lógica que foi obtida pelo método do item 1.4 na forma de uma soma de
produtos não é, entretanto, necessariamente o mais simples possível. Por exemplo, consideramos a
expressão na forma FDNF:
y = x 3x 2x1 + x 3x 2 x1 + x 3x 2x1 (1.5)

A Eq.(1.5) pode ser simplificada, utilizando as propriedades das funções lógicas (veja item
1.2.4). Assim:

15
16

y = x 3x 2x1 + x 3x 2 x1 + x 3x 2x1 =
= x 3x 2x1 + x 3x 2 x1 + x 3x 2x1 + x 3x 2x1 = (1.6)
= x 2 x 1 (x 3 + x 3 ) + x 3 x 2 (x 1 + x1 ) = x 2 x 1 + x 3 x 2

Comparando as Eqs. (1.5) e (1.6) podemos ver que a Eq. (1.6) é mais simples do que a
Eq.(1.5). Isto é, tem menos dos termos e das operações lógicas.
A expressão lógica (1.6) pode ser implementada por blocos lógicos universais "NÃO-E"
uma função lógica expressa na forma de soma de produtos basta:
1. Aplicar cada uma das combinações das entradas que correspondem aos produtos a uma porta
"NÃO-E";
2. Utilizar as saídas das portas "NÃO-E" obtidas acima como entradas para uma porta "NÃO-E"
cuja saída será a função desejada.
O exemplo anterior (Eq. 1.6) ilustra a simplificação de função lógica através de
manipulações algébricas. Este processo é trabalhoso, envolvendo o uso de artifícios, como a
repetição de termos já existentes, e exigindo uma certa familiaridade com os teoremas e postulados
da álgebra de Boole. O método não é prático para funções um pouco mais complexas e é difícil
garantir que a expressão final seja de fato a mais simples possível. É possível atingir uma forma
irredutível mas não mínima.

1.12 Mapas de Karnaugh.

No exemplo da Eq. (1.6) podemos observar que a simplificação resulta de haver termos que
diferem entre si por apenas uma variável. Dois termos que enquadrem nesta categoria são chamados
adjacentes e resultam na simplificação da variável pela qual diferem. Por exemplo:
y = x 3x 2x1 + x 3x 2x1 =
( )
= x 2x1 x 3 + x 3 = x 2x1 .

Os dois termos diferem pela variável x3 e a variável x3 foi simplificada.


Havendo quatro termos adjacentes, é possível a simplificação de duas variáveis, aquelas que
são diferentes entre os quatro termos. Por exemplo:

y = x 4 x 3x 2x1 + x 4 x 3x 2x1 + x 4 x 3 x 2x1 + x 4 x 3 x 2x1 =


( ) ( )
= x 4 + x 4 x 3x 2x1 + x 4 + x 4 x 3 x 2x1 =
= x 3 x 2x1 + x 3 x 2x1 = ( x 2 + x 2 )x 3 x1 = x 3 x1 .

Os quatro termos diferem pelas variáveis x4 e x2. As variáveis x4 e x2 foram simplificadas.

16
17

Para simplificar a função lógica desta maneira e obter a expressão lógica final que seja a
mais simples possível na forma DNF (soma de produtos das variáveis) se usam os mapas de
Karnaugh. Os mapas de Karnaugh são diagramas nos quais as adjacências entre os termos são
facilmente identificáveis. A tabela da verdade é plotada sobre o mapa, permitindo a identificação
dos termos adjacentes e a simplificação da expressão lógica. A Fig. 1.15 mostra os mapas de
Karnaugh para 2, 3 e 4 variáveis, com as adjacências indicadas pelas setas

x x 2 x1 00 01 11 10
x2 1 0 1 x3
0 0 1 0
2 3 1
1
(a) (b)

x2x1 00 01 11 10
x4x3
00 0 1 3 2

4 5 7 6
01

11 12 13 15 14

10 8 9 11 10

(c)

1.15 Mapas de Karnaugh:


(a) para dois variáveis,
(b) para três variáveis,
(c) para quatro variáveis.

As células do mapa de Karnaugh devem ser preenchidas conforme aos valores da função
lógica na tabela da verdade. Nos mapas de Karnaugh mostrados na Fig. 1.15 os dois termos são
adjacentes quando tiverem os valores da função igual a 1 e:
a) estiverem lado a lado na mesma fila ou coluna,
b) estiverem na mesma fila, um na primeira e outro na última coluna,
c) estiverem na mesma coluna, um na primeira e outro na última fila.

Para simplificarmos uma função lógica através do mapa de Karnaugh, fazemos a plotagem da
mesma sobre o mapa e procuramos agrupar os termos adjacentes em pares, quadras, óctuplos, etc.

17
18

Em segunda, tiramos do mapa a função simplificada, eliminando as variáveis possíveis das


adjacências. De modo geral, há várias maneiras de agrupar os termos adjacentes e se deve procurar
obter o menor número de grupos de termos, cada grupo com o maior número de termos possível. A
utilização dos mapas de Karnaugh é melhor esclarecida através de exemplos.

Exemplo 1: Simplificar a função lógica cuja tabela da verdade é mostrada na Fig. 1.16a,
expressando a como uma soma de produtos.

x2 x1 y
x1 x1
0 0 1 x1 0 1
x2
0 1 1 x2 0 1 1

1 0 0 x2 1 0 1

1 1 1

(a) (b)

Fig. 1.16 (a) Tabela da verdade para a função lógica.


(b) Tabela da verdade plotada sobre o mapa de Karnaugh

Solução. Construindo o mapa de Karnaugh para duas variáveis e plotando a tabela sobre ele,
obteremos a Fig. 1.16b. Como desejamos obter a função simplificada expressa na forma de soma de
produtos, devemos agrupar os termos correspondentes ao valor 1. O menor número de grupos de
termos adjacentes que tem o maior número de termos possível é indicado no mapa de Karnaugh da
Fig. 1.16b: 2 grupos com 2 termos cada. A expressão resultante para esta maneira de agrupamento é
seguinte: y = x 2 + x1
Esta expressão é a forma mínima de uma soma de produtos.
Exemplo 2: Simplificar a função lógica cuja tabela de verdade é dada pela seqüência das
combinações de variáveis independentes na forma decimal, para qual esta função é igual a 1:
y = (2,3,4,5,6,7,12,13,14,15)10
Solução. Vamos construir a tabela da verdade ( Fig. 1.17 ).
Código Código binário das combinações Função
decimal de variáveis independentes lógica
N x4 x3 x2 x1 y
0 0 0 0 0 0

18
19

1 0 0 0 1 0
2* 0 0 1 0 1
3* 0 0 1 1 1
4* 0 1 0 0 1
5* 0 1 0 1 1
6* 0 1 1 0 1
7* 0 1 1 1 1
8 1 0 0 0 0
9 1 0 0 1 0
10 1 0 1 0 0
11 1 0 1 1 0
12* 1 1 0 0 1
13* 1 1 0 1 1
14* 1 1 1 0 1
15* 1 1 1 1 1
Fig. 1.17 Tabela da verdade do exemplo 1.

Construindo o mapa de Karnaugh para 4 variáveis e plotando a tabela da Fig. 1.17 sobre ele,
obteremos a Fig. 1.18.
x2 x2
X2X1 00 01 11 10
X4X3 quadra x4 x2
0 1 3 2
00 0 0 1 1 x3
x4
4 5 7 6
01
1 1 1 1
x3
12 13 15 14
11
1 1 1 1
x4
8 9 11 10 oitava x3
10 x3
0 0 0 0

x1 x1 x1

Fig. 1.18 Mapa da função do exemplo 2 e os melhores


agrupamentos dos termos adjacentes.
Conforme indicado na Fig. 1.18, podemos agrupar os termos iguais a 1 em uma oitava e uma
quadra, simplificado 3 e 2 variáveis, respectivamente. Na oitava apenas a variável x3 permanece
sempre em 1, correspondendo ao termo x3 na soma; na quadra das variáveis x4 e x2 permanecem

19
20

iguais a 0 e 1, respectivamente, correspondendo à soma x 4 x 2 . Assim, a função lógica simplificada


fica:
y = x3 + x4x2
Freqüentemente, a função lógica final obtida na forma DNF pode ser simplificada mais. Isto
é, podemos sublinhar as variáveis comuns e pôr as fora dos parênteses. Por exemplo, temos a
função lógica mínima na forma DNF:
y = x1 + x 3 x 2 + x 4 x 2
Utilizando a propriedade distributiva, teremos:

(
y = x1 + x 2 x 3 + x 4 )
Nesta forma a função lógica pode ser realizada mais fácil só através das portas lógicas de
duas variáveis.

20
21
CAPÍTULO II CIRCUITOS MULTIVIBRADORES BIESTÁVEIS

O muiltivibrador biestável ou flip-flop é um circuito que possui apenas dois estados


estáveis, podendo permanecer indefinidamente em qualquer deles.

2.1 Flip-flop RS assíncrono com portas lógicas "NÃO-OU".


A Fig. 2.1 ilustra o circuito básico de um flip-flop construído com portas "NÃO-OU",
também conhecido com o nome de "RS NOR LATCH" ou Flip-flop RS assíncrono.
R
G1 Q tn t n+1
Ação do circuito
Qn Rn Sn Q n+1

G2 Q Qn 0 0 Qn Permanece no mesmo
S x 0 1 1 setado; estado "1"
x 1 0 0 ressetado; estado "0"
x 1 1 _ não permitido

(a) (b) x estado irrelevante


Fig. 2.1 (a) Circuito flip-flop assíncrono com portas "NÃO-OU".
(b) Tabela-verdade.

A Fig. 2.1a mostra o uso de portas "NÃO-OU" conectadas em série com realimentação
positiva e com entradas adicionais através das quais são fornecidos sinais para mudar o estado do
circuito. As entradas estão marcadas com R para reset o flip-flop (Q = "0") e S para set (Q = "1").
Vamos admitir que inicialmente a saída Q esteja em "0" e a saída Q em "1", ou seja que o flip-flop
esteja ressetado (fica no estado "0"). Suponhamos também que as entradas R e S estejam em "0".
Observaremos a ação da realimentação positiva que mantém este estado estável através da seguinte
malha:

Q + S = Q = 0 + 0 = 1 → Q + R = Q = 1 + 0 = 0 , confirmado o estado "0".


Se nesta situação a entrada S for para "1" com R = "0", a saída Q irá para "1" e a saída Q
para "0" e o flip-flop estará setado (ficará no estado "1"). Mesmo que a entrada S volte para "0", o
flip-flop continuará setado, pois Q = "0" força Q = “1" através da realimentação positiva. Com o
flip-flop setado (Q = "1", Q = "0"), se a entrada R for para "1", sendo S = "0", Q irá para "1" e Q
para "0"; o flip-flop será ressetado e se manterá assim, mesmo que R volte par "0".
22
Caso R e S fiquem simultaneamente em "1", Q e Q ficarão em "0"; isto contraria nossa
definição de Q e Q como saídas complementares e assim a combinação R = S = "1" não é
permitida.
A Fig. 2.2 mostra as formas de onda das entradas e saídas do circuito da Fig. 2.1a
considerando os atrasos de propagação das portas lógicas.

S
Tmín
S

R
t
Tmín

t
t pd (f-f)
_ 1 0
Q
confirma
o estado
t

confirma
t
tpd (porta)
o estado
t pd (f-f)
0 1

Fig. 2.2 Formas de onda dos sinais nas entradas e saídas do flip-flop RS
com os atrasos de propagação das portas lógicas e do flip-flop.
tpd(f-f) = 3tpd(porta) é o tempo de propagação da realimentação positiva.

2.2 Flip-flop RS assíncrono com portas lógicas "NÃO-E".

A Fig. 2.3 mostra o circuito básico de um flip-flop construído com portas "NÃO-E", mais
conhecido com o nome de R S NAND LATCH ou Flip-flop RS assíncrono.
23
_ tn t n+1
S saída Q Ação do circuito
G1 Qn Rn Sn Q n+1
Qn 0 0 _ não permitido
_ Qn 0 1 0 ressetado; estado "0"
R G2 _
saída Q Qn 1 0 1 setado; estado "1"
Qn 1 1 Qn permanece no mesmo estado

(a) (b)
Fig. 2.3 (a) Circuito flip-flop assíncrono com portas "NÃO-E".
(b) Tabela-verdade.
Quando as entradas R = S = 1 a realimentação positiva mantém o estado estável anterior

(Qn = "0" ou "1"). A mudança dos estados de flip-flop ocorrerá se a entrada S for para "0" com

R = 1 ou a entrada R for para "0" com S = 1, conforme à tabela da verdade na Fig. 2.3b.

2.3 Flip-flop RS síncrono com portas lógicas "NÃO-E"


O circuito de flip-flop RS síncrono com portas "NÃO-E" é mostrado na Fig. 2.4
__
PR (preset)
S Q tn t n+1
G3 G1 Ação do circuito
Cn Rn Sn Q n+1
C 0 x x Qn não muda de estado
G2 _ 1 0 0 Qn não muda de estado
G4 Q
R 1 0 1 1 setado; estado "1"
Portas de ___ ("Latch") 1 1 0 0 ressetado; estado "0"
controle fecho _
CLR 1 1 1 não permitido
(a) (b) x estado irrelevante
Fig. 2.4 (a) Circuito de flip-flop RS síncrono com entrada adicional "CLOCK" (C).
(b) Tabela-verdade.

A Fig. 2.4a ilustra um flip-flop RS síncrono que utiliza o sinal C ("CLOCK" ou


RELÓGIO) para sincronizar a mudança de estado. No circuito da Fig. 2.4a, se o sinal C estiver em
"0" as saídas Q e Q permanecerão insensíveis às variáveis das entradas R e S. Somente quando o
sinal C estiver no estado lógico "1" é que as variáveis das entradas (R e S) se refletirão nas saídas.
Este circuito é sensível ao nível do sinal C , ou seja, estando C em "1", as saídas
acompanharão as entradas. Isto significa que, se as entradas variam durante o tempo em que o
CLOCK as habilita, a saída mudará de estado mais de uma vez durante o pulso de C, o que não é,
em geral, desejável. A Fig. 2.5 ilustra as formas de onda das entradas e saídas para os vários casos.
24
C

Seqüencia dos sinais de entrada correta Mudança dos sinais


de entrada incorreta

Fig. 2.5 Formas de onda nas entradas e saídas do flip-flop RS síncrono.

2.3 Flip-flops "Master-Slave" (Mestre-Escravo).


O inconveniente principal dos flip-flops de um estágio é que as variações das entradas
podem se refletir nas saídas como é mostrado na Fig. 2.5. Para contornar este problema, utilizam
dois estágios como o da Fig. 2.4a em cascata, com seus CLOCK's invertidos. O primeiro estágio se
denomina mestre e, o segundo, escravo, sendo a configuração conhecida por Flip-flop Mestre-
Escravo ou "Master-Slave" (MS). A Fig. 2.6 mostra o circuito deste tipo de flip-flop com as
portas lógicas "NÃO-E".
MASTER SLAVE
PR __
PR MS Q

S (J) G1 G6 S
G3 Qm G8 Q
C
C R
_ _
_ ___ Q
G4 G9 Q CLR
R (K) G2 Qm G7

(a) (b)
G5
CLR

Fig. 2.6 (a) Flip-flop RS Master-Slave com as portas "NÃO-E". Flip-flop JK MS pode ser obtido
pelas conexões de realimentação desenhadas com linhas tracejadas.
(b) Símbolo lógico de flip-flop RS MS com as entradas assíncronas adicionais P R e C L R .
25
A Fig. 2.7 mostra algumas formas de onda ilustrativas do circuito da Fig. 2.6 que esclarece
melhor o funcionamento do flip-flop MS.
tp
C

t
R
*
t
S Master
*
t
Qm
* *
* t
_
C
t
Slave
Q

Fig. 2.7 Formas de onda ilustrativas do funcionamento do flip-flop RS MS.

Pulsos de relógio positivos C são aplicados ao mestre e são invertidos pela porta G5 antes
de serem utilizados para excitar o escravo. Para C = 1, o mestre é habilitado ("enable") e sua
operação segue a tabela da verdade da Fig. 2.4a. Entretanto, visto que C = 1, o escravo RS é
inibido (não muda de estado), de maneira que a saída Q é invariante durante a duração tp do pulso.
Após a passagem do pulso, C = 0, de maneira que o mestre é inibido e C = 1, o que provoca que o
escravo seja habilitado ("enable") e a saída do mestre Qm será transferida para o escravo Q = Qm.
O circuito do flip-flop JK Master-Slave se distingue do flip-flop RS MS pelas conexões
adicionais de realimentação desenhadas com linhas tracejadas. Estas conexões permitem o estado
das entradas C = J = K = 1 (J é "jerk"- estabelecer, K é "kill"- restaurar). Analisando o
funcionamento do circuito da Fig. 2.7a podemos concluir que quando J = K = 1 e após a passagem
do pulso C o flip-flop JK muda o seu estado para o contrário, ou seja Q( t + 1) = Q ( t) . A tabela da

verdade e o símbolo lógico do flip-flop JK MS são mostrados na Fig. 2.8:


26
PR’ CLR’ J K CLK Qn+1 Q’n+1 OPERAÇÃO
__
0 0 x x x 1 1 Proibido PR MS Q
0 1 x x x 1 0 Set assíncrono (“1”)
J
1 0 x x x 0 1 Reset assíncrono. (“0”)
C
1 1 0 0 Qn Q’n Não muda de estado
K _
1 1 0 1 0 1 Estado “0” ___ Q
1 1 1 0 1 0 Estado “1” CLR
1 1 1 1 Q’n Qn Muda o estado anterior
(b)
1 1 x x fora de Qn Q’n Não muda de estado
(a)
Fig. 2.8 (a) Tabela da verdade do flip-flop JK MS.
(b) Símbolo lógico do flip-flop JK MS.

2.4 Flip-flop D gatilhando pela borda positiva .


O mais conhecido flip-flop cuja mudança de estado ou gatilhamento ocorre na transição do
pulso de CLOCK de "0" para "1" (gatilhando pela borda positiva) é o flip-flop tipo D ("delay") de
três estágios cujo tabela-verdade, símbolo lógico e as formas de onda são mostrados na Fig. 2.9.
__
PR’ CLR’ D CLK Qn+1 Q’n+1 OPERAÇÃO PR Q
0 0 x x - - Proibido
D
0 1 x x 1 0 Set assíncrono
1 0 x x 0 1 Reset assíncrono C
1 1 0 0 1 Estado “0” _
1 1 1 1 0 Estado “1” Q
___
1 1 x fora de Qn Q’n Não muda de estado CLR
(a) (b)
C

t
D
* *

* * t
Q

t (c)

Fig. 2.9 (a) Flip-flop tipo D gatilhando pela borda positiva: (a) Tabela-verdade;
(b) Símbolo lógico;
(c) Formas de onda.
27
Na Fig. 2.10 é mostrado o flip-flop T ("toggle") construído a partir do flip-flop D da Fig.
2.9a e suas formas de onda do funcionamento.

T= C
PR Q
T
C _ t
D= Q
D
_ t
Q
___ Q
CL

t
(a)
(b)
Fig. 2.10 (a) Flip-flop T assíncrono construído a partir do flip-flop D.
(b) Formas de onda para flip-flop T gatilhando pela borda positiva de T = C.
28

CAPÍTULO III REGISTRADORES DE DADOS

3.1 Registrador de dados paralelo.


Registradores de dados paralelos se usam para aquisição, armazenagem e transferência dos
números binários em paralelo e têm múltiplas entradas e saídas. Eles utilizam os flip-flops ou
"latchs" (fechos) dos vários tipos: RS, JK, D, e têm as entradas de relógio ("CLOCK") ou
habilitação ("Enable") de aquisição e transferência dos dados que são ligados. Por exemplo, o
registrador de dados paralelo que utiliza 8 flip-flops tipo D com saídas "tri-state" é mostrado na Fig.
3.1.
74374
03 RG __
D0 Qi n+1
04 02 E0 C Di
D1 Q0
07 Q1 05 0 1 1
D2 06
Q2 0 0 0
08
D3 09 x Qi n
13 Q3 0 0
D4 12 1 x x z
14 Q4
D5 15
Q5
17 16
D6 Q6 x estado irrelevante
18 Q7 19 i = 0, 1, ..., 7
D7
11 20 z estado de alta impedância
C Vcc
01 __ GND
10
E0
(a) (b)

Fig. 3.1 (a) Símbolo do registrador paralelo 74347


"tri-state octal D-type flip-flop”.
(b) Tabela-verdade.

3.2 Registradores de deslocamento (de dados seriais).


Um registrador de deslocamento ou em inglês "Shift register" é um circuito construído de
flip-flop no qual a informação é deslocada de uma posição (em regra) a cada pulso de CLOCK.
Existem registradores de deslocamento capazes de efetuar deslocamentos para a direita, para a
esquerda ou nas duas direções. Existem também registradores de deslocamento universais com
entradas e saídas paralelas (7495: 4 bits RS).

28
29

Os registradores de deslocamento encontram grande aplicação na prática em conversores


série/paralelo e paralelo/série, contadores, geradores de palavra, multiplicadores binários,
memórias, etc.
Os flip-flops JK master-slave e tipo D gatilhando pela borda positiva são mais usados para
construir os registradores de deslocamento. A Fig. 3.2 ilustra o diagrama básico do registrador de
deslocamento construído com flip-flop JK master-slave.

Q1 Q2 Q3

In Out
J Q1 J Q2 J Q3 saída em série
entrada em série _ ___
("double rail C _ C _ C _ ("double rail
In Out
input") K Q1 K Q2 K Q3 output")

CLK

Fig. 3.2 Circuito do registrador de deslocamento com 3 flip-flops JK master-slave.

In

1 0 1
t
CLK
1 2 3 4 5 6
t
Q1
1
t
Q2
0
t
Q 3 = Out
1
t

Fig. 3.3 Diagrama de tempo do registrador de deslocamento da Fig. 3.2


(continue todas as formas de onda para 6 pulsos de CLOCK por conta).

29
30

A Fig. 3.4 ilustra o diagrama básico do registrador de deslocamento construído com flip-
flops tipo D gatilhando pela borda positiva (ascendente) da entrada CLOCK.

Q1 Q2 Q3
In Out
D Q1 D Q2 D Q3
_ _ _
C C Q2 C
Q1 Q3

CLK
Fig. 3.4 Registrador de deslocamento com 3 flip-flops tipo D.

Desenha as mesmas formas de onda como na Fig. 3.3 para o circuito da Fig. 3.3 para o
circuito da Fig. 3.4 por conta.

3.3 Contador em anel.


Se a saída do último estágio de um registrador de deslocamento for realimentada para a
entrada do primeiro, obteremos um contador em anel. Uma das possibilidades é ilustra na Fig. 3.5.

Q1 "1"
__ __ Q2 __ Q3 __ Qn
J PR Q J PR Q J PR Q J PR Q
C C C C
___ _ ___ _ ___ _ ___ _
K CLR Q K CLR Q K CLR Q K CLR
Q
"1"
CLK

INIT

Fig. 3.5 Contador em anel.

No circuito da Fig. 3.5 o contador é inicialmente carregado com "1" no primeiro estágio e
"0" nos demais, através da linha INIT. A cada pulso de CLOCK, o bit "1" será deslocado para a
direita e, ao atingir o último estágio, será novamente transferido para o primeiro. Em outras
palavras, o bit "1" (ou "0") é circulado pelo contador em anel. A vantagem do contador em anel é
que ele fornece a saída já decodificada, uma vez, que somente uma das saídas estará em "1" (ou
"0") para cada contagem.

30
31

CAPÍTULO IV CONTADORES DIGITAIS

Um contador binário é um circuito capaz de contar, segundo uma determinada seqüência,


o número de pulsos que recebe em sua entrada. Os contadores encontram enorme aplicação em
circuitos digitais executando funções como divisão de freqüência, seqüenciamento de operações,
manipulações matemáticas, etc.
Todos os contadores são construídos utilizando flip-flops tipo T ("toggle") e portas
lógicas.

4.1 Contadores assíncronos.

A Fig. 4.1 mostra o circuito de um contador binário de 3 flip-flops mestre-escravo tipo


JK e as formas de onda correspondentes.
Dígito de menor significado Q0 Q1 Dígito de maior significadoQ 2
"1"

CLK J Q0 J Q1 J Q2
C C C
Entrada T FF0 FF1 FF2
K K K
___ _ ___ _ ___ _
CLR Q0 CLR Q1 CLR Q2
INIT
(a)

CLK
1 2 3 4 5 6 7 8
t
Q0

0 1 0 1 0 1 0 1 0
t
Q1

0 0 1 1 0 0 1 1 0
t
Q2

0 0 0 0 1 1 1 1 0
t
tT (b)

Fig. 4.1 (a) Contador assíncrono de 3 bits com flip-flops JK master-slave.


(b) Formas de onda correspondentes.
Consideremos a cadeia de três flip-flops MS tipo JK com a saída Q de cada estágio
conectada à entrada de relógio (CLOCK) do binário seguinte, como na Fig. 4.1a. Os pulsos

31
32

(CLK) a serem contados são aplicados à entrada de relógio do FF0. Para todos os estágios, J e
K são ligados à fonte de alimentação, de maneira que J = K = 1. Esta conexão converte cada
estágio em um flip-flop tipo T assíncrono que muda de estado todas as vezes em que a forma de
onda na entrada de relógio (C) muda de "1" para "0" (Q é saída do escravo). Esta operação
necessita que:
1. Q0 mude de estado na descida do pulso.
2. Todos os outros Qi façam a transição quando e apenas quando a saída do flip-flop
precedente mude de "1" para "0".
Esta transição negativa "propaga-se como onda" através do contador do dígito de menor
significado para o de maior significado. Portanto estes contadores são conhecidos também como
contadores ondulantes ("ripple counter"). Segundo este raciocínio, é fácil concluir que, de
fato, o circuito da Fig. 4.1a irá contar os pulsos de CLOCK recebidos, segundo a seqüência 000,
001, 010, 011, 100, 101, 110 e 111, como é mostrado na Fig. 4.1b. Quando Q0 = Q1 = Q2 = 1, a
próxima transição negativa do pulso de CLK fará o contador retornar ao estado inicial, com Q0
= Q1 = Q2 = 0. Cada um dos passos da contagem é chamado de estado do contador e podemos
dizer que o circuito da Fig. 4.1a possui 8 estados.
Observe que a freqüência do sinal de CLK aparece dividida por dois na saída do
primeiro estágio (Q0), por quatro na saída do segundo estágio (Q1) e por oito na saída do
terceiro estágio (Q2).
Se acrescentarmos mais um estágio ao circuito da Fig. 4.1a, teremos um contador binário
de 4 bits, que contará na seqüência 0000, 0001, ... , 1110, 1111, ou seja, terá 16 estados. De um
modo geral, um contador binário puro, como o da Fig. 4.1a, com N estágios apresentará um
ciclo de contagem com 2 N estados e a freqüência do CLOCK aparecerá dividida por 2 i na saída
do i-ésimo estágio. À medida que o número de estágios aumenta, a freqüência máxima
permissível do sinal de CLK na entrada do contador assíncrono diminui devido ao atraso de
propagação de transporte t T (veja a Fig. 4.1b). O atraso de propagação de transporte é o tempo
necessário para o contador completar sua resposta ao pulso de entrada. Assim, o tempo de
transporte será da ordem de grandeza da soma dos tempos de atraso de propagação de todos os
binários, isto é:

tT = N tpd ( FF) ,
1
f máx ≤ ,
tT
onde N é o número de estágios,

32
33

tpd (FF) é o atraso de propagação de um flip-flop.

Por exemplo, o CI 7493 do contador assíncrono de 4 bits da família TTL tem


f máx = 10 MHz .

Um contador assíncrono pode ser construído utilizando os flip-flops tipo D gatilhando


pela borda positiva, como é mostrado na Fig. 4.2.

D Q0 D Q1 D Q2
Entrada T
C FF0_ C FF1_ C FF2_
CLK ___ ___ ___
CLR Q0 CLR Q1 CLR Q2
INIT

Fig. 4.2 Contador assíncrono de 3 bits com flip-flops tipo D.

Utilizando a Fig. 2.11b (página 42) desenhar as formas de onda correspondentes à Fig.
4.2 por conta.

4.2 Contador assíncrono decrescente.

O contador do item anterior contava de 0 a 7 e depois repetia o procedimento. Este é


conhecido como um contador crescente ou para cima ("UP COUNTER"). Para fazer um
contador decrescente (0, 7, 6, ... , 1, 0) a partir do circuito de contador crescente da Fig. 4.1a
precisa tomar as entradas de relógio C (exceto o binário FF0) das saídas Q , em vez das saídas
Q. Desenhar o circuito de contador assíncrono decrescente e as formas de onda correspondentes
por conta, utilizando o conhecimento obtido no laboratório.

4.3 Contador com qualquer ciclo de contagem.

Muitas vezes, desejamos um contador que tenha um ciclo de contagem ou módulo


qualquer

33
34

n < 2N . Por exemplo, n = 5, 10, 13, etc. Para consegui-lo usaremos um método básico:
- construímos o contador de maneira que, ao ser atingida a contagem n - 1 e ocorrer a
transição do CLOCK que não é responsável pelo gatilhamento, sejam ativadas as entradas de
PRESET assíncrono; a transição seguinte do CLK ressetará o contador para "0". Um exemplo
do contador assíncrono divisor por 6 (módulo n = 6) é mostrado na Fig. 4.3.

Q0 Q1 Q2
"1"

__ __ __
J PR Q J PR Q J PR Q
CLOCK
C FF0 C FF1 C FF1
___ _ ___ _ ___ _
K CLR Q K CLR Q K CLR Q
INIT

G1

Fig. 4.3 Contador assíncrono divisor por 6.

Uma solução para conseguir a ativação da linha de PRESET assíncrono no momento


desejado é ligar a contagem 5 decodificada (Q0 = 1, Q1 = 1e Q2 = 1) e o CLOCK a uma porta
G1 "NÃO-E" cuja saída irá setar todos os flip-flops.
As formas de onda correspondente estão ilustradas na Fig. 4.4, esclarecendo o
funcionamento do circuito:

34
35

CLK

1 2 3 4 5 6 7
t
Q0

0 1 0 1 0 1 0 1
t
Q1

0 0 1 1 0 0 1 0 0
t
Q2

0 0 0 0 1 1 1 0 0
__ t
PR

G1 é excitado
t

Fig. 4.4 Formas de onda para o contador divisor por 6 da Fig. 4.3

Fazer o contador assíncrono divisor por 10 por conta.

4.4 Contador síncrono com transporte paralelo.

Nos contadores assíncronos os atrasos são cumulativos, pois o CLOCK de um estágio é


derivado da saída do estágio anterior. Quando necessitamos de um contador que opere em
freqüências mais elevadas, a interligação dos flip-flops deve ser feita de maneira que todos
recebam o mesmo CLK, construindo um contador síncrono. A Fig. 4.5 ilustra um contador
síncrono de 4 bits utilizando o transporte paralelo ("parallel carry"):
Neste circuito os flip-flops funcionam como os tipo T síncronos à base de flip-flops JK
"master-slave".

35
36

Q0 Q1 Q2 Q3
INIT

"1" ___ ___ ___ ___


J CLR J CLR Q J CLR Q J CLR Q

C FF0 C FF1 C FF2 C

K K K K
CLOCK

G1 G2

Fig. 4.5 Contador síncrono de 4 bits utilizando o transporte paralelo.

Observe que, agora, o controle dos flip-flops é feito através das entradas J e K. Sabemos
que se J = K = 1 o flip-flop se complementa e que se J = K = 0 o flip-flop não muda de estado.
Assim, o primeiro estágio irá mudar de estado a cada pulso de CLOCK; o segundo só mudará de
estado quando o FF0 estiver setado, ou seja, a cada dois pulsos de CLK. O terceiro estágio FF2
só mudará de estado quando os dois primeiros ( FF0 e FF1 ) estiverem em "1" ( através da porta
"E" G1 ), ou seja, a cada quatro pulsos de CLK. Finalmente, o quatro estágio só mudará de
estado através a porta G2 (porta "E") quando os três primeiros ( FF0, FF1 e FF2 ) estiverem em
"1", ou seja, a cada oitavo pulsos de CLK.
No circuito da Fig. 4.5, a freqüência máxima do CLOCK será limitada apenas pelo atraso
de um flip-flop e da uma porta lógica. Isto é verdadeiro para o contador síncrono com qualquer
número de estágios, utilizando a configuração com transporte paralelo. O período mínimo T do
sinal de CLK será:
T ≥ tpd (FF ) + tpd (G)

onde tpd (FF ) é o atraso de um flip-flop,

tpd (G) é o atraso de porta lógica "E".

Admitindo tpd (FF ) = 50nS e tpd (G) = 10nS , a freqüência máxima do sinal de

CLOCK para o circuito da Fig. 4.5 será:

36
37

1 1
f má x= = = 16,67MHz
T (50 + 10) × 10 -9

Para o contador assíncrono de 4 bits este valor seria:


1 1
f máx = = = 5MHz
N × t pd ( FF ) 4 × 50 × 10-9

Mas, à medida que o número de estágios aumenta, a saída de um flip-flop deve alimentar
um número maior de portas e o número de entradas das portas torna-se maior.
Um exemplo do contador síncrono da família TTL é CI 74193. O CI 74193 é o contador
síncrono universal ( crescente/decrescente ) com entradas assíncronas de CLR e PR para 4
entradas paralelas, tem 4 saídas paralelas, ou seja, funciona também como registrador de dados
paralelo.
f máx = 25 MHz

37
38

CAPÍTULO V SISTEMAS DIGITAIS COMBINACIONAIS

5.1 Decodificadores.

Um decodificador é um circuito lógico combinacional que recebe uma informação


codificada de alguma forma e a traduz para outra. A informação pode ser um número decimal
codificado em binário, um endereço de uma posição de memória, etc.
Uma classe importante de codificadores são os decodificadores de n para 2 n linhas ( 2 para
4, 3 para 8, 4 para 16, etc.). Estes decodificadores possuem n linhas de entrada ( tomadas, por
exemplo, das saídas paralelas de um registrador ou contador ) e 2 n linhas de saída, das quais uma e
somente uma ficará ativa para cada combinação das linhas de entrada.
O funcionamento do decodificador completo é definido pelo sistema das funções lógicas que
possui 2 n equações de n variáveis cada. O sistema das equações lógicas e a tabela da verdade
correspondente do decodificador completo de 3 entradas ( n = 3 )são representados na Fig. 5.1.

Entradas Saídas O sistema das


funções lógicas
x2 x1 x0 y0 y1 y2 y3 y4 y5 y6 y7 correspondente
_ _ _
0 0 0 1 0 0 0 0 0 0 0 y 0 = x 2 _x 1 x 0
_
0 0 1 0 1 0 0 0 0 0 0 y1 = x2 x 1 x 0
_ _
0 1 0 0 0 1 0 0 0 0 0 y2 = x2 x 1 x 0
_
0 1 1 0 0 0 1 0 0 0 0 y3 = x 2 x 1 x 0
_ _
1 0 0 0 0 0 0 1 0 0 0 y4 = x2 x 1 x 0
_
1 0 1 0 0 0 0 0 1 0 0 y5= x2 x 1 x 0
_
1 1 0 0 0 0 0 0 0 1 0 y6 = x 2 x 1 x 0
1 1 1 0 0 0 0 0 0 0 1 y7 = x2 x1 x 0

Fig. 5.1 Tabela-verdade e sistema das funções lógicas do decodificador completo de 3 entradas.

A partir da Fig. 5.1 podemos construir o circuito lógico do decodificador utilizando portas
lógicas "NÃO" e "E" como é mostrado na Fig. 5.2. Uma entrada adicional denominada intervalo
("strobe") é acrescentada a cada porta "E". Todas estas entradas adicionais são ligadas juntas e são

38
39

excitadas por um sinal binário S. Se S = 1 , a porta é libertada e então ocorre a decodificação,


enquanto, se S = 0 , a decodificação é inibida. A entrada S se usa quando é desejável decodificar
somente durante certo intervalo de tempo, por exemplo, eliminar os pulsos curtos e falsos nas
saídas do decodificador durante de troca dos estados nas entradas. Estes pulsos falsos ocorrem
devido aos diferentes atrasos de propagação nos circuitos lógicos resultando as "corridas" dos sinais
lógicos.

x2 x1 x0 S

y0
y0
DC 0 y1
x0 1
y1 1 y2
2
x1 2 y3
3
x2 4 y4
y2 4
y5
5
y6
y3 6
y7
S EN 7

y4
S é uma entrada adicional
denominada intervalo ou "strobe"
y5

(b)
y6

y7

(a)

Fig. 5.2 (a) Circuito lógico do decodificador completo de 3 entrados utilizando portas "NÃO" e "E".
(b) Símbolo lógico do decodificador de 3 para 8.

39
40

5.2 Decodificadores e demultiplexadores de CI's.

O conceito apresentando na Fig. 5.2 pode ser facilmente estendido para 2, 3 ou n linhas de
entrada. Na prática, não é necessário construir estes decodificadores a partir de portas lógicas, pois
há uma grande variedade de CI's que realizam estas funções.

5.2.1 Decodificador / demultiplexador 74154.


Um demultiplexador é um sistema utilizando para a transmissão de um sinal binário (
dados em série ) em uma das linhas de saída, sendo que a linha em particular é selecionada por
meio de um endereço A 3 A 2 A 1 A 0 . Para operar como demultiplexador, E 0 deve ser igual a 0 ou
ligado com o sinal de "strobe" e os dados devem ser aplicados à entrada E1 . Se E0 = 0 , a saída
selecionada pelas linhas A 3 , A 2 , A 1 , A 0 assume o estado de entrada E1 .
No regime do decodificador ( E0= E 1=0) o sinal ativa na saída ( saída selecionada)

corresponde a "0".

74154 _
1 Entradas Saídas
DC _0 __ __ _ _ _ __ __
2 A3 A2 A1 ...
23 1_ E0 E1 A0 0 1 2 14 15
3
A0 _2 0 0 0 0 0 0 0 1 1 ... 1 1
4
22 _3 0 1 0 1 ... 1
A1 5 0 0 0 0 1 1
_4 6 ...
5_ 0 0 0 0 1 0 1 1 0 1 1
21 7
A2 _6 ... ... ... ... ... ... ... ... ... ... ... ...
8
20 _7 0 0 1 1 1 0 1 1 1 ... 0 1
9
A3 8_ ...
10 0 0 1 1 1 1 1 1 1 1 0
9
__ 11 ... 1
10
__ 0 1 x x x x 1 1 1 1
13
11
__ 1 0 x x x x 1 1 1 ... 1
14 1
12
__ ...
& 15 1 1 x x x x 1 1 1 1 1
19 __ 13
__
E1 16
14
__
18 __ 17
E0 15 (b)
t pd =49nS
(a)

Fig. 5.3 (a) Símbolo lógico de CI 74154.

40
41

(b) Tabela da verdade.


5.2.2 Decodificador BCD para decimal.

O mais comum dos códigos BCD ("binary-coded decimal") ou em português DCB (decimal
codificado em binário) é o BCD 8421, no qual cada algarismo decimal corresponde a seu
equivalente binário. O nome BCD 8421 deriva do peso atribuído a cada bit de código; como cada
bit possui um valor posicional, o código BCD 8421 é dito com pesos. Este código é tão difundido
que quando dizemos apenas código BCD subentende-se tratar-se do BCD 8421. Por exemplo, o
número decimal 296 necessita de três conjuntos de 4 dígitos binários ( ou de três tétradas ). Isto é,
296 = 0010 1001 0110 (BCD)
(10)
1 tétr. 2 tétr. 3 tétr.

A tabela de código BCD 8421 e o símbolo do decodificador BCD para decimal da série
TTL 7442 é mostrado na Fig. 5.4.

7442 _ Saídas ativas


1 Entradas em BCD
DC 0
_ decimais
2
_1 0 0000
15 3
2
_ 1 0001
A0 4
_3 2 0010
14 5 3 0011
A1 4
_
5 6 4 0100
13 _
6 7 5 0101
A2
_ 6 0110
12 9
_7 7 0111
A3 10
8 8 1000
_ 11
9 9 1001
t pd= 17nS
(a) (b)

Fig. 5.4 (a) Símbolo lógico do decodificador BCD para decimal 7442.
(b) Tabela do código BCD 8421.

41
42

5.2.3 Decodificador BCD para o mostrador de 7 segmentos.

Um dispositivo capaz de mostrara uma informação de uma forma visível para o ser humano
denomina-se mostrador ou "display". Um mostrador em estado sólido, no qual os segmentos
obtêm sua luminosidade a partir de diodos emissores de luz ( LED: "light emmiting diode" ) é
operado em baixa tensão e baixa potência e assim podem ser alimentados diretamente de portas
lógicas em circuito integrado.
Um mostrador LED de sete segmentos juntamente com a tabela de decodificação de BCD
para 7 segmentos é mostrado na Fig. 5.5.

a a b c d e f g
Decimal
0 0 0 0 0 0 0 1
f b 1 1 0 0 1 1 1
1
g 2 0 0 1 0 0 1 1
3 0 0 0 0 1 1 0
e c 4 1 0 0 1 1 0 0
5 0 1 0 0 1 0 0
6 1 1 0 0 0 0 0
d 7 0 0 0 1 1 1 1
0 = segmento aceso 8 0 0 0 0 0 0
0
1 = segmento apagado
9 0 0 0 1 1 0 0

Fig. 5.5 "Display" de 7 segmentos e decodificação BCD para 7 segmentos.

A família TTL tem CI 7447 de decodificador para 7 segmentos com saídas em coletor
aberto capazes de drenar uma corrente IOL até 40 mA. As saídas são ativas no estado "0" e assim
este CI é adequado para controlar um "display" cujos segmentos se acendam com "0".
O símbolo lógico do 7447 é mostrado na Fig. 5.6.

42
43

7447
13 LT = 0 ("Lamp test") força todas as saídas para "0"
07 DC _
A0 a provocando o acendimento de todos os segmentos.
_ 12 Quando RBI ("ripple blank input") =0 e A 3 A 2 A 1 A 0
01 b
A1 _ 11 = 0000 , todas as saídas vão para "1", apagando o display,
c_
10 a saída RB0 ("ripple blank output") vai para "0" e pode
02 d
A2 _ ser utilizada como RBI para o estágio anterior.
09
06 e RBI e RBO são utilizados para apagar os zeros não
_ 15
A3 significativos de um série de displays
f
03 _ 13
LT g
05 ___ ___ 04 t pd = 45nS
RBI RBO

Fig. 5.6 Símbolo lógico de um decodificador BCD para 7 segmentos 7447.

Por conta: Sintetize as equações lógicas na forma de soma dos produtos utilizando a tabela
do decodificação da Fig. 5.5 e desenhe o circuito lógico do decodificador BCD para 7 segmentos
utilizando as portas lógicas "NÃO-E".

5.3 Seletor de dados ou multiplexador.

A função executada por um multiplexador é a de selecionar 1 de N fontes de entrada de


dados e transmitir o dado selecionado para um único canal de informação. O multiplexador executa
o processo inverso de um demultiplexador que possui somente uma linha dos dados na entrada e
estes dados aparecem em 1 de N limas de saída.
O circuito lógico do multiplexador de 4 linhas para uma linha é mostrado na Fig. 5.7
utilizando o símbolo lógico de decodificador para melhor entender o funcionamento do circuito.

43
44

x0

x1
y
x2

x3

DC 0
A0 1 1
2 x 0 ... x 3 são as entradas dos dados
A1 2 A 0 , A 1 são as entradas de seleção
3
y é a única saída

Fig. 5.7 Circuito lógico do multiplexador de 4 para 1.

O símbolo lógico do CI 74151 do multiplexador de 8 para 1 e sua tabela da verdade são


mostrados na Fig. 5.8.

74151
04 Seleção Strobe Saídas
D0 MUX
03 A2 A1 A0 S Y Y
D1
02 x x x 1 0 1
__
D2
01 0 0 0 0 D0 D0
__
D3 0 0 1 0 D1 D1
__
15 0 1 0 0 D2 D2
D4 06 __
14 Y 0 1 1 0 D3 D3
__
D5 05 D4
1 0 0 0 D4
__
13 Y
D6 1 0 1 0 D5 D5
__
12 1 0 D6 D6
D7 1 0 __
11 1 1 1 0 D7 D7
A0
10
A1
09
A2 (b)
07 _ t pd = 19nS
S
(a)
Fig. 5.8 (a) Símbolo lógico do CI 74151.
(b) Tabela da verdade.

44
45

5.4 Somadores binários.

Um computador digital deve conter obviamente circuitos que executarão operações


aritméticos, isto é, adição, subtração, multiplicação e divisão. As operações básicas são adição e
subtração, visto que a multiplicação é uma adição repetitiva e a divisão é uma subtração repetitiva.
É inteiramente possível construir um computador no qual a única operação aritmética
presente seja a soma devido à subtração de números binários é geralmente feita através da soma do
complemento do subtraindo ao diminuendo.

5.4.1 Semi-somador.
Sejam A e B dois números binários de um bit que desejamos somar aritmeticamente. Há
apenas 4 possibilidades:
1. B = 0 , A = 0 : a soma S é igual a 0.
2. B = 0 , A = 1 : a soma S é igual a 1.
3. B = 1 , A = 0 : a soma S é igual a 1.
4. B = 1 , A = 1 : a soma S é igual a 0 e vai um que é chamado o bit de transporte("carry").
A Fig. 5.9 mostra a tabela da verdade para a soma de 2 bits e o circuito lógico capaz de
realizá-la que se chama semi-somador.

B A SP C "SP" é a saída da soma parcial e "C" é a do "CARRY" o vai-um


_ _
0 0 0 0 SP = B . A V B . A = A + B equações lógicas do
1 0 =
C A B . funcionamento de semi-somador
0 1
1 0 1 0
1 1 0 1
(a)

A
SP = A + B B SS SP
B
A C

C = A.B
(c)
(b)
Fig. 5.9 (a) Tabela-verdade com as equações lógicas do semi-somador.
(b) Circuito lógico do semi-somador ("half-adder").
(c) Símbolo utilizado para o semi-somador.

45
46

5.4.2 Somador completo.


Quando desejamos somar números binários de mais de um bit procedemos a soma bit a bit
da direita para a esquerda como com números decimais. Em cada soma de dois bits consideramos
também o "vai-um" proveniente da soma dos bits anteriores. Na Fig. 5.10 está ilustrada a soma de
dois números binários de 8 bits, mostrando de forma bem clara este processo.

Cn C n -1
1 1 1 1 1 } CARRY intermediári
1 1 0 = An 1 1 0 1 1
+
0 1 1 = Bn 0 1 0 1 0

CARRY final
1 0 1 0 = Sn 0 0 1 0 1

Fig. 5.10 Adição de 2 números binários de 8 bits.

De um modo geral, quando desejamos somar dois bits, An e Bn, quais quer de dois números
binários, devemos considerar o CARRY, vindo do estágio anterior (Cn-1). O resultado será uma
soma Sn. A tabela da verdade deste raciocínio é visto na Fig. 5.11.

C n-1 Bn An Sn Cn Entradas do somador completo de um bit:


0 0 0 0 0 Cn-1 CARRY do estágio n - 1,
0 0 1 1 0 Bn bit de ordem n do número B,
0 1 0 1 0
0 1 1 0 1 An bit de ordem n do número A.
1 0 0 1 0 Saídas do somador completo de um bit:
1 0 1 0 1
1 1 0 0 1 Sn bit de ordem n da soma,
1 1 1 1 1 Cn CARRY do estágio n.

Fig. 5.11 Tabela da verdade do somador completo de 1 bit.

As equações lógicas podem ser obtidas na forma canônica da soma dos produtos pela tabela
da verdade como:

46
47

S n = C n-1 B n A n ∨ C n-1 B n A n ∨ C n-1 Bn A n ∨ C n-1 B n A n


C n = C n-1 B n A n ∨ C n-1 B n A n ∨ C n-1 Bn A n ∨ C n-1 Bn A n = (5.1)
= C n-1 Bn ∨ C n-1 An ∨ B n An
Por conta: a partir destas equações construir o circuito lógico de 3 entradas e 2 saídas que
se denomina somador completo ("full-adder").
As equações (5.1) podem ser transformadas para as seguintes :
S n = C n-1 ⊕ ( B n ⊕ A n )
(5.2)
C n = C n-1 ( B n ⊕ A n ) ∨ B n A n

A partir das equações lógicas (5.2) podemos construir o circuito lógico do somador
completo utilizando os dois semi-somadores e uma porta lógica "OU" como é mostrado na Fig.
5.12.
Bn SP = B n + A n S n = Cn-1 + ( B n + A n)
B SS SP B SS SP
Bn SC S n
An G'n = B n A n G"n = C n-1 ( B n + A n ) An
A C A C C n-1 Cn
C n-1
C'n
(a) (b)
Fig. 5.12 (a) Somador completo consistindo em semi-somadores.
(b) Símbolo lógico do somador completo ("full-adder").

Com o somador completo podemos realizar a adição de números binários de n bits. A Fig.
5.13 ilustra um somador para dois números binários de 4 bits.
S0 S1 S2 S3

B n SC S n B n SC S n B n SC S n B n SC S n

An An An An
C4
"0"
Cn-1 Cn Cn-1 Cn Cn-1 Cn Cn-1 Cn

B0 A0 B1 A1 B2 A2 B3 A3

Fig. 5.13 Somador binário paralelo de 4 bits com "ripple carry".


O arranjo da Fig. 5.13 pode ser estendido para qualquer número de bits. Mas à medida que o
número de estágios aumenta, cresce também o atraso de propagação de Cn e o tempo necessário
para realizar a adição. Existem os circuitos lógicos dos somadores paralelos mais complexos. Estes

47
48

circuitos ( em regra, CI's ) usam a técnica de antecipação do CARRY e são conhecidos como
SOMADORES COM CARRY LOOK-AHEAD.

5.4.3 Subtração de números binários.

Já foi dito acima que a subtração de números binários é geralmente feita através da soma do
complemento do subtraindo ao diminuendo.
Define-se o complemento 2 de um número binário de n bits como:
complemento 2 = 2n - número ou
complemento 2 = A mais A mais 1.
Por exemplo, o complemento 2 de 101 é 011, de 1011 é 0101 e etc.
Uma regra fácil para encontrar o complemento 2 de um número binário:
- troque os 0's por 1's e os 1's por 0's e some 1 ao resultado.
Por exemplo:
51 (10) = 110011 51 = 110011
+ (10)
-18 (10) =- 010010 complemento 2 de 18 =101110
(10) --------------
(desprezado) 1 ← 100001 = 33(10) .

5.5 Unidade lógica e aritmética.

Unidade lógica e aritmética (ALU - “Aritmetics Logic Unit”) é um circuito digital


combinacional capaz de realizar diversas operações lógicas e aritméticas com os operandos
presentes nas entradas A e B.
Na Fig. 5.14 é mostrado o símbolo lógico de CI TTL 74181 que é uma ALU de 4 bits.
Tabela da Fig. 5.15 representa todas as operações lógicas e aritméticas realizadas com os operandos
A, B e CI (CARRY-IN) pela ALU em dependência dos sinais de controle S3, S2, S1, S0 e M.

48
49

06 S3,S2,S1,S0 - entradas de controle para selecionar a função da ALU


05 S0 F0 09
S1 ALU A0,A1,A2,A3 - entradas de informação do operandoA
04 S2 F1 10
03 B0,B1,B2,B3 - entradas de informação do operando B
S3 11
02 F2 M - entrada de controle para selecionar o modo de operação da ALU
23 A0 13
A1 F3 Cn - entrada de CARRY da ALU (CARRY-IN)
21
19 A2 14
A3 A=B F3,F2,F1,F0 - saídas, resultado da operação lógica ou aritmética
01 B0 16 realizada com os operandos A e B
22 C n+4
B1 A=B - saída da igualdade dos operandos A e B
20 B2
18 B3 15 Cn+1 - saída de CARRY da ALU (CARRY-OUT)
07 P
08 Cn 17 P,G - propagação e geração do CARRY: saídas adicionais utilizadas
G
M na implementação de CARRY-LOOK-AHEAD entre ALU's

Fig. 5.14 Símbolo e nomes dos pinos da ALU 74181 (tpd=35 nS).

Seleção da função Operações lógicas Operações aritméticas


S3 S2 S1 S0 M=1 M=0
0 0 0 0 F=A F = A + CI
0 0 0 1 F = A∨B F = A ∨ B + CI
0 0 1 0 F =A∧B F = A ∨ B + CI
0 0 1 1 F=0 F=CI - 1
0 1 0 0 F = A∧B F = A + (A ∨ B ) + CI
0 1 0 1 F=B F = (A ∨ B) + (A ∨ B ) + CI
0 1 1 0 F = A⊕B F = A - B - 1 + CI
0 1 1 1 F = A∧B F = (A ∧ B ) - 1 + CI
1 0 0 0 F = A∨B F = A + (A ∧ B) + CI
1 0 0 1 F = A⊕B F = A + B + CI
1 0 1 0 F=B F = (A ∨ B) + (A ∧ B) + CI
1 0 1 1 F = A∧B F = (A ∧ B) - 1 + CI
1 1 0 0 F=1 F = A + A + CI
1 1 0 1 F = A∨B F = (A ∨ B) + A + CI
1 1 1 0 F = A∨B F = (A ∨ B ) + A + CI
1 1 1 1 F=0 F = A - 1 + CI

Fig. 5.15 Tabela das operações lógicas e aritméticas da ALU.

ALU é utilizado na construção da unidade central de processamento de sistemas digitais,


como computadores e controladores.

49
Portas lógicas “NÃO-E” da família de CI’s 74xx

VCC VCC VCC VCC


01 14 01 14 01 14 01 14

02 13 02 13 02 13 02 13

03 12 03 12 03 12 03 12

04 11 04 11 04 11 04 11

05 10 05 10 05 10 05 10

06 09 06 09 06 09 06 09

07 7400 08 07 7410 08 07 7420 08 07 7430 08


terra terra terra terra

Exemplo da cobertura do circuito lógico “NÃO-E” por CI’s da família 74xx

CI 7410
01
02 12
CI 7410 2-1
13
01,02
12
13 1-1
03 01 CI 7420
04 06
2-2 02 06
05 04 3-1
05

03,04 11
06 10 08
05 1-2 2-3
09

11
10 08
1-3
09

You might also like