Você está na página 1de 116

1 Introduo

Um sistema pode ser definido como sendo um conjunto de elementos que so


interligados de alguma maneira para compor um todo e assim realizar funcionalidade
especfica. Por exemplo, um aparelho de som hi-fi composto de vrios componentes, tais
como compartimento para discos e fitas, amplificador e auto-falantes. Todos so
interconectados por cabos eltricos.
Um sistema tambm possui uma funo bem definida, a qual pode ser identificada a
partir das funcionalidades de seus componentes. Por exemplo, a funo do aparelho de som
hi-fi transformar a informao armazenada em discos e/ou fitas em som audvel, o que
algo que nenhum dos componentes do sistema pode realizar por si s.
Neste sentido, pode-se identificar dois aspectos fundamentais em qualquer sistema: sua
estrutura e seu comportamento. A estrutura reflete os componentes e como eles esto
interconectados e o comportamento reflete a funcionalidade do sistema.
Sistemas em que o nmero de componentes alto e/ou as inter-relaes entre eles no
so muito claras ou difceis de serem estabelecidas e entendidas so ditos complexos. No
projeto de tais sistemas complexos, a identificao de alguma ordem ou regularidade de
extrema importncia, o que normalmente requer uma abordagem estruturada e sistemtica.
Dependendo de quais aspectos se est tentando identificar, deve-se usar um tipo de
representao e um nvel de abstrao adequados. Os trs tipos mais comuns de representao
so o comportamental, o estrutural e o fsico.
Uma representao comportamental captura o sistema como uma caixa preta e se
concentra na especificao do comportamento como uma funo dos valores de entrada e o
tempo (ver figura 1.1). Em outras palavras, uma representao comportamental descreve a
funcionalidade mas no a implementao de um dado sistema, definindo as respostas da caixa
preta para qualquer combinao dos valores de entrada mas sem descrever como projetar ou
construir o sistema usando dados componentes.

x
y

z
z=f(x,y)

Figura 1.1 - Sistema como uma caixa preta.


Uma representao estrutural define a caixa preta como um conjunto de
componentes e suas interconexes. Diferente da representao comportamental, a
representao estrutural especifica a implementao do sistema sem qualquer referncia sua
funcionalidade. Isto ilustrado na figura 1.2.
Obviamente, muitas vezes a funcionalidade pode ser derivada a partir dos componentes
interconectados. No entanto, derivar a funcionalidade de um sistema desta maneira muito
difcil, principalmente se o sistema possui um grande nmero de componentes.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

a
c

1-2

Figura 1.2 - Sistema como um conjunto de componentes interconectados.


Uma representao fsica especifica as caractersticas fsicas da caixa preta, indicando
as dimenses e as posies de cada componente e conexo existentes na descrio estrutural
do sistema. Enquanto a representao estrutural fornece a conectividade do sistema, somente a
representao fsica que descreve precisamente as relaes espaciais dos vrios
componentes. Ou seja, a representao fsica usada para descrever o sistema depois que ele
foi fabricado, especificando seu peso, tamanho, consumo de potncia e posio de cada pino
de entrada ou sada.
Uma maneira natural e conveniente para representar a estrutura de um sistema o uso
de diagramas de bloco, onde componentes so representados por retngulos, chamados
blocos, e conexes que so denotadas por linhas interligando os blocos. A figura 1.3 mostra
um diagrama do aparelho de som hi-fi.
Compartimento
para discos

Compartimento
para fitas

Amplificador

Auto-falante
esquerdo

Auto-falante
direito

Figura 1.3 - Diagrama de blocos para o aparelho de som hi-fi.


O processo de projeto de sistemas, principalmente produtos eletrnicos em geral e
sistemas digitais em particular, consiste sempre de pelo menos trs fases, cada uma centrada
em uma das representaes de projeto:
1. derivar uma representao comportamental da funcionalidade do produto
2. converter esta representao para uma representao estrutural contendo
componentes de uma dada biblioteca de componentes
3. produzir uma representao fsica que especifica como montar e fabricar o produto
Qualquer projeto pode ser realizado seguindo estes passos usando diferentes nveis de
abstrao. Em um nvel de abstrao apenas determinados detalhes so representados.
Normalmente, os detalhes capturados em uma dada fase do projeto dependem da
complexidade do sistema. Por exemplo, praticamente impossvel projetar um
microprocessador inteiro usando apenas portas lgicas bsicas. Normalmente, inicia-se o
projeto pelos blocos bsicos no nvel lgico. A seguir, estes blocos so interconectados para
compor um sistema mais complexo, como por exemplo um microprocessador.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-3

Na prxima seo, sero abordados outros formalismos para a representao da


estrutura e do comportamento de sistemas, alm dos nveis de abstrao mais comumente
utilizados no projeto de sistemas digitais.

1.1 Sistemas Digitais


Este texto tem por objetivo introduzir o estudo de sistemas digitais, dando especial
ateno aos componentes bsicos destes sistemas. Um sistema digital pode ser definido como
um conjunto de componentes interconectados que processam informaes em forma digital ou
discreta. Na maioria dos sistemas digitais, os componentes bsicos utilizados so dispositivos
eletrnicos chamados circuitos integrados (CIs). As ligaes entre estes componentes
eletrnicos so conexes fsicas atravs das quais a informao digital pode ser transmitida.
Sistemas digitais modernos abrangem uma vasta gama de graus de complexidade. Os
componentes disponveis para a construo de sistemas digitais vo desde chaves do tipo ligadesliga at computadores completos. O nmero de componentes em um sistema digital pode
variar de um, dois ou de milhares de componentes. Obviamente, quanto mais componentes
so necessrios implementao de um sistema digital, mais complexo ele e,
conseqentemente, mais difcil de entender seu funcionamento e de projet-lo. Da a
importncia do uso de nveis de abstrao no processo de projeto de sistemas digitais.
Um nvel de abstrao, ou de granularidade, caracterizado pelo tipo de objetos
utilizados na representao. Em geral, pode-se identificar quatro diferentes tipos de objetos
em um produto eletrnico: transistores, portas, registradores e processadores. Os
correspondentes nveis de abstrao so sumarizados na tabela 1.1.
Tabela 1.1 Nveis de abstrao.
Nvel
Transistor

Portas

Registrador

Processador

Comportamento
Equaes diferenciais,
diagramas correntevoltagem
Equaes Booleanas,
mquinas de estado
finitas (FSM)
Algoritmos, flowcharts,
conjunto de instrues,
generalizaes de FSMs
Especificao
executvel, programas

Estrutura
Transistores,
resistores,
capacitores
Portas lgicas,
Flip-flops

Fsico
Clulas analgicas e
digitais

Somadores,
comparadores,
contadores,
registradores
Processadores,
controladores,
ASICs

Microcircuitos

Mdulos, unidades

Placas de circuito
impresso, mdulos
multicircuitos

Como mostrado na tabela 1.1, os principais componentes no nvel de transistores so


transistores, resistores e capacitores, que so combinados para formar circuitos analgicos e
digitais que realizam uma dada funcionalidade. Esta funcionalidade usualmente descrita por
um conjunto de equaes diferenciais ou por algum tipo de relacionamento entre corrente e
tenso. A representao fsica destes circuitos, denominados clulas, podem consistir de
componentes do nvel de transistores e as conexes que os interconectam.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-4

Os principais componentes do nvel de portas so portas lgicas e flip-flops. Portas


lgicas so circuitos especiais que implementam operaes Booleanas, tais como E e OU. Um
flip-flop um elemento bsico de memria que capaz de armazenar um bit de informao,
podendo assumir o valor 0 (falso) ou 1 (verdadeiro). Portas e flip-flops so clulas digitais que
podem ser grupadas para formar mdulos ou unidades aritmticas e de memria. Os mdulos
so utilizados como componentes bsicos no nvel de registradores. O comportamento de cada
mdulo pode ser descrito com o uso de equaes Booleanas e diagramas de mquinas de
estados finitas (Finite State Machines - FSMs).
No nvel de registradores, os principais componentes so unidades aritmticas e de
memria, tais como, somadores, comparadores, multiplicadores, contadores, registradores,
bancos de registradores, filas, etc. Cada um destes componentes um mdulo com dimenses
fixas, um atraso de propagao e um conjunto de posies (fixas) para as entradas e sadas do
mdulo. Estes componentes do nvel de registradores podem ser montados e interconectados
em microcircuitos, que podem ser usados como componentes bsicos no nvel de abstrao
acima. Usualmente, estes microcircuitos so descritos por fluxogramas, conjuntos de
instrues, diagramas de FSMs ou tabelas de estados.
O mais alto nvel de abstrao apresentado na tabela o nvel de processador, onde os
componentes bsicos so processadores, memrias, controladores e interfaces, alm de
circuitos de aplicao especfica (Application Specific Integrated Circuits - ASICs).
Geralmente, um ou mais destes componentes so montados em uma placa de circuito
impresso e conectados com fios que so impressos na placa. O comportamento de sistemas
compostos destes componentes do nvel de processadores usualmente descrito utilizando-se
uma linguagem natural, uma especificao executvel em alguma linguagem de descrio de
hardware (Hardware Description Language - HDL), ou um algoritmo ou programa escrito em
uma linguagem de programao convencional.
A representao estrutural mais comum para sistemas digitais o diagrama de blocos.
Dependendo do nvel de abstrao, cada bloco pode representar objetos correspondentes ao
nvel, por exemplo, portas lgicas no nvel de abstrao de portas; registradores, somadores,
etc. no nvel de registradores; e controladores e ASICs no nvel de processador. As
interconexes representam as conexes entre os objetos.
A figura 1.4 mostra o diagrama de blocos para a unidade lgica e aritmtica (ULA) e
os registradores de entrada e sada, os quais constituem partes essenciais de qualquer
sistema computacional. No diagrama de blocos, no h detalhamento dos componentes, mas
apenas uma idia genrica da estrutura como um todo. Cada bloco pode ser mostrado com
mais detalhes, em algum outro diagrama de blocos mais detalhado, ou num diagrama
esquemtico. Isto revela a natureza hierrquica existente por detrs de qualquer projeto de
sistema.
R2

R1

ULA

Cout

controle

1
4

R3

Figura 1.4 - Diagrama de blocos genricos de uma ULA e seus registradores.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-5

A figura 1.5 mostra o diagrama de blocos mais detalhado para a unidade lgicoaritmtica (ULA) da figura 1.4. J a figura 1.6 detalha o somador completo, que o tipo de
bloco usado para compor a ULA.
R13 R2 3

R12 R2 2

R10 R2 0

R11 R2 1

Controle

xor 3

xor 2

I3

I2

Ci

Cout

Ci

Ci

Ci

FAD 0

FAD 1

Co

Co

I0

I1

FAD 2

FAD 3

xor 0

xor 1

Co

Co

R3 3

R3 2

R3 0

R3 1

Figura 1.5 - Diagrama de blocos mais detalhado de uma ULA.

Ii

R1 i

FAD i
Ci

X0

A0

A1

A2

X1

O0
Co

R3 i

Figura 1.6 - Esquemtico de um somador completo (full-adder - FAD).


Para representar o comportamento de sistemas digitais no nvel de portas lgicas usamse tabelas verdades e equaes Booleanas. No nvel de registradores, usa-se algum tipo de
linguagem para descrever as transferncias de dados entre os registradores. Para possibilitar a
simulao do sistema no nvel de processador so geralmente utilizadas linguagens
procedurais para descrever os algoritmos na forma de programas executveis.
Por exemplo, para a estrutura da ULA dada na figura 1.4, a descrio algortmica
poderia ser:
se (controle=0)
R3_ R1+R2;
seno
R3_ R1-R2;
Esta descrio indica que o valor de controle determina se a ULA realizar uma
soma ou uma subtrao.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-6

1.2 Tipos de Dados e Representao de Dados


Nesta seo, iremos estudar os tipos de dados mais comumente encontrados nos
sistemas digitais, mostrando como eles podem ser codificados em formato binrio. Os dados
encontrados nos sistemas digitais (note-se que os computadores atuais so sistemas digitais)
podem ser classificados em uma das seguintes categorias:

Nmeros usados em clculos aritmticos;

Letras do alfabeto, usadas no processamento de dados;

Smbolos discretos, usados para diversos propsitos

Todos os dados so representados em formato binrio porque o uso deste formato


facilita o projeto de circuitos eletrnicos que exibem duas condies possveis, as quais so
convenientemente interpretadas como os valores 0 e 1 de um dgito binrio (bit). Tais
circuitos eletrnicos so projetados para realizar um repertrio de operaes necessrias que
so disponibilizadas nos computadores.

1.2.1 Notao Posicional


Todos os sistemas numricos utilizados pelo ser humano so posicionais. Em um
sistema posicional, cada dgito possui um peso associado. Assim, o valor de um dado nmero
corresponde a uma soma ponderada de seus dgitos, como por exemplo:
1999 = 1 1000 + 9 100 + 9 10+ 9 1
Note que, no nmero anterior, o peso de cada posio 10i, onde i corresponde
posio do dgito, contada a partir da direita, e sendo i=0. para o dgito mais direita.
Em geral, qualquer nmero decimal D , no formato d1 d0 d-1 d-2 tem como valor:
D = d1 101 + d0 100 + d-1 10-1 + d-2 10-2
onde 10 chamado base.
Num sistema posicional genrico, a base pode ser qualquer valor inteiro r, e um dgito
numa posio i assume peso ri . Logo, podemos escrever o formato genrico de um nmero
em tal sistema como sendo
dm-1 dm-2 d1 d0 . d-1 d-2 d-n
onde h m dgitos esquerda do ponto e n dgitos direita do ponto. Note que, se no houver
ponto, assume-se que este est direita do dgito mais direita. O valor deste nmero o
somatrio dos produtos de cada dgito pela correspondente potncia da base:
D=

m1

i = n

ri

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-7

Para um nmero qualquer, o dgito mais direita comumente referenciado como


dgito menos significativo (least-significative bit - LSB, em ingls), ao passo que o dgito
mais esquerda denominado dgito mais significativo (most-significative bit MSB, em
ingls).
Desde que sistemas digitais usam dgitos binrios, estaremos particularmente
interessados no sistema binrio. Neste sistema, a base utilizada 2, de modo que um nmero
em binrio assume a forma:
bm-1 bm-2 b1 b0 . b-1 b-2 b-n
e seu valor pode ser encontrado por
B=

m 1

b 2

i= n

Similarmente ao sistema decimal, o ponto no sistema binrio denominado ponto


binrio. Normalmente, quando se trabalha com sistemas de base no-decimal, indica-se a
base subscrevendo-se o valor da base direita do nmero. Exemplos:
101012 = 1 16 + 0 8 + 1 4 + 0 2 + 1 1 = 2110
.11112 = 1 0.5 + 1 0.25 + 1 0.125 + 1 0.0625 = 0.937510

1.2.2 Nmeros Octais e Hexadecimais


Alm do sistema decimal e do sistema binrio, dois outros sistemas so de grande
importncia por proverem representaes convenientemente compactas de nmeros grandes.
Trata-se dos sistemas octal (base 8) e hexadecimal (base 16).
No sistema octal, cada dgito representa um valor entre 0 e 7. J no sistema
hexadecimal, cada dgito representa um valor entre 0 e 15. Para representar os valores maiores
do que 9 usando apenas um dgito, utilizam-se letras. Assim, o valor 10 representado por A,
o 11, por B e assim por diante, at 15 (que representado por F). A tabela 1.2 mostra os
inteiros binrios de 0 a 10001, juntamente com os equivalentes octal, decimal e hexadecimal.
Note que cada dgito octal pode ser representado por 3 dgitos binrios, enquanto que um
dgito hexadecimal pode ser representado por 4 dgitos binrios.
Tabela 1.2 - Representao de inteiros em binrio, octal, decimal e hexadecimal.
Binrio
0
1
10
11
100
101
110

Octal
0
1
2
3
4
5
6

Decimal
0
1
2
3
4
5
6

Hexa
0
1
2
3
4
5
6

Introduo aos Sistemas Digitais (v.2001/1)

111
1000
1001
1010
1011
1100
1101
1110
1111
10000
10001

Jos Lus Gntzel e Francisco Assis do Nascimento

7
10
11
12
13
14
15
16
17
20
21

7
8
9
10
11
12
13
14
15
16
17

1-8

7
8
9
A
B
C
D
E
F
10
11

A tabela 1.3 mostra os inteiros binrios de 0 a 10001 e seus equivalentes octal, decimal
e hexadecimal codificados em binrio.
Tabela 1.3 - Representao de inteiros em binrio, octal, decimal e hexadecimal.
Binrio

Octal
codificado em
binrio

Decimal
codificado em
binrio

Hexadecimal
codificado em
binrio

000

0000

0000

001

0001

0001

10

010

0010

0010

11

011

0011

0011

100

100

0100

0100

101

101

0101

0101

110

110

0110

0110

111

111

0111

0111

1000

001 000

1000

1000

1001

001 001

1001

1001

1010

001 010

0001 0000

1010

1011

001 011

0001 0001

1011

1100

001 100

0001 0010

1100

1101

001 101

0001 0011

1101

1110

001 110

0001 0100

1110

1111

001 111

0001 0101

1111

10000

010 000

0001 0110

0001 0000

10001

010 001

0001 0111

0001 0001

Para se converter um nmero binrio em octal separam-se os dgitos em grupos de 3, a


partir do ponto binrio para a esquerda. Aps, substitui-se cada grupo pelo dgito octal
correspondente. Exemplo:

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-9

10100111002 = 001 010 011 100 = 12348


E para converter-se um nmero em binrio para hexadecimal, o procedimento
anlogo, exceto que os grupos devero ser de 4 dgitos.

Exemplo 1.1: converter-o nmero binrio que segue para hexadecimal


10100111002 = 0010 1001 1100 = 29C16
Note que nestes exemplos foram adicionados zeros esquerda, de modo que todos os
grupos tivessem 3 dgitos, no caso da converso direta binrio-octal, e 4 dgitos no caso da
converso direta binrio-hexadecimal.
A converso no sentido oposto tambm bastante simples. Substitui-se cada dgito
octal ou hexadecimal pelo conjunto de 3 ou 4 dgitos binrios que o representa.
Exemplo 1.2: converter-os nmeros que seguem para binrio.
7658 = 1111101012
FED16 = 1111111011012

1.2.3 Converso entre Sistemas Numricos


Como regra geral, no se pode converter um nmero representado numa determinada
base para outra base simplesmente substituindo-se dgitos de uma base pelos seus
equivalentes na outra. Isto funciona somente nos casos em que ambas bases so potncias de
um mesmo nmero (como os casos mostrados anteriormente). Quando no este o caso, ser
necessrio utilizar-se um procedimento mais complexo o qual requer operaes aritmticas..
A seguir, ser mostrado como converter um nmero em qualquer base para a base 10, e viceversa, usando aritmtica de base 10.
Como indicado na sub-seo 1.2.1, o valor de um nmero em qualquer base
representado pela frmula:
D=

m1

i = n

ri

Onde r a base do nmero, m indica o nmero de dgitos esquerda do ponto e n


indica o nmero de dgitos direita do ponto.
Uma outra alternativa equao anterior re-escrever a parte inteira da equao por:
D = (((( dm-1 ) r + dm-2 ) r + ) r + d1 ) r + d0
Desta equao, possvel derivar um procedimento iterativo que obtm cada um dos
dgitos do nmero a partir do mais significativo, acumulando a soma decimal ponderada.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-10

Essa equao tambm um bom ponto de partida para converter um nmero decimal
D para outra base r qualquer. Se dividirmos D por r na equao, a parte parametrizvel da
equao representa o quociente
Q = ((( dm-1 ) r + dm-2 ) r + ) r + d1
com resto R = d0 . Em outras palavras, d0 obtido como o resto da diviso inteira de D por r.
Alm disso, como o quociente Q na equao anterior tem o mesmo formato do nmero
original, sabe-se que sucessivas divises por r permitem obter-se sucessivos dgitos de D, da
direita para a esquerda, at que todos os dgitos de D tenham sido encontrados.

1.2.4 Soma e Subtrao de Nmeros Binrios


O procedimento para a adio e subtrao de nmeros binrios semelhante ao que se
usa para nmeros decimais. A principal diferena est nas tabelas de adio e subtrao, que
contm apenas os dgitos 0 e 1.
Para somar dois nmeros decimais, faz-se a soma de um par de dgitos de cada vez,
comeando com o dgito menos significativo de cada nmero. Se a soma de um dado par
igual ou maior que 10, o excesso (tambm chamado de transporte ou carry) usado na soma
do prximo par de dgitos mais significativos. Para somar dois nmeros binrios, o
procedimento basicamente o mesmo, mas usa-se um carry inicial c0 igual a 0. A tabela 1.4
mostra a soma si e o bit de carry ci+1 para cada possvel combinao de xi, yi e ci.
Tabela 1.4 - Adio de nmeros binrios.
xi + yi + ci
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1

si
0
1
1
0
1
0
0
1

ci+1
0
0
0
1
0
1
1
1

Exemplo 1.3: Somar os nmeros binrios 987 e 123.

x
y
carries
x+y

1
1
S10

512
1

256
1

128
1

1
0
S9

1
0
S8

1
0
S7

64
1
1
1
1
S6

32
0
1
1
0
S5

16
1
1
1
1
S4

8
1
1
0
0
S3

4
0
0
1
1
S2

2
1
1
1
1
S1

1
1
1
0
S0

Primeiro se soma x0 = 1 e y0 = 1, produzindo carry c1 = 1 e soma s0 = 0. Em seguida, se


soma x1 = 1, y1 = 1 e c1 = 1, obtendo-se carry c2 = 1 e soma s1 = 1. Este processo continua at
se gerar c11 = 1 e carry s10 = 0.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-11

A subtrao de nmeros binrios realizada de maneira semelhante, subtraindo-se um


par de bits, um a cada vez, no entanto, sempre gerado um bit de emprstimo (borrow) e no
um bit de carry, e um bit de diferena ao invs de um bit de soma. A tabela 1.5 mostra a
diferena di e o bit de borrow bi+1 para cada possvel combinao de xi, yi e bi.
Tabela 1.5 - Subtrao de nmeros binrios.
xi - yi - bi
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1

di
0
1
1
0
1
0
0
1

bi+1
0
1
1
1
0
0
0
1

O procedimento para subtrao muito semelhante ao de adio: a partir dos dgitos


menos significativos, gera-se os bits de borrow b1 e de diferena d0, de acordo com a Tabela
4, e assim por diante, da direita para a esquerda, at o bit de borrow mais significativo bm e o
bit de diferena mais significativo dm-1.
Exemplo 1.4: Subtrair o nmero binrio 123 de 987.

x
y
borrows
x-y

512
1

256
1

128
1
1
0

64
1
1
1
1

32
0
1
0
1

16
1
1
0
0

8
1
1
0
0

4
0
0
0
0

2
1
1
0
0

0
1

0
1

D9

D8

D7

D6

D5

D4

D3

D2

D1

1
1
1
0
d0

Primeiro faz-se a subtrao entre x0 = 1 e y0 = 1, produzindo borrow b1 = 0 e diferena


d0 = 0. Em seguida, faz-se a subtrao de y1 = 1, b1 = 1 de x1 = 1, obtendo-se borrow b2 = 0 e
soma s1 = 0. Este processo continua at se gerar d9 = 1.

1.2.5 Representao de Nmeros Negativos


At o presente momento, tratamos somente de nmeros positivos. Nmeros negativos
podem ser representados de diversas formas. A representao que usamos normalmente
denominada sinal-magnitude. No entanto, a maioria dos computadores usa o sistema de
representao em complemento, para facilitar a implementao dos circuitos aritmticos.
1.2.5.1 Representao de nmeros binrios positivos e negativos
Nmeros binrios positivos podem ser representados como nmeros sem sinal. No
entanto, para se representarem nmeros negativos, necessria a utilizao de alguma

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-12

notao. A forma de representao mais simples sinal-magnitude. Nesta representao, o


nmero consiste de duas partes: a magnitude e o sinal. A magnitude expressa a quantidade e
o sinal indica se a quantidade positiva ou negativa.
Quando sinal-magnitude usado para nmeros binrios, o sinal representado pelo
dgito mais significativo: 0 indica sinal positivo ao passo que 1 indica sinal negativo.
Assim, os nmeros +9 e 9 escritos em binrio se diferenciam somente pelo bit mais
significativo:
+9 = 01001
-9 = 11001
Note que foram necessrios 5 bits para representar esses nmeros: 4 para a magnitude
e 1 (o mais da esquerda) para representar o sinal.
Dado um nmero binrio com n bits, o intervalo de representao possvel ser de (2 -1) at +(2n-1-1). Note tambm que h duas representaes possveis para o zero: -0 e +0.
n-1

1.2.5.2 Sistema de representao em complementos


A representao em complemento foi criada com o intuito de simplificar a operao de
subtrao e manipulaes lgicas, evitando a necessidade de comparaes de magnitude e
sinal.
Dado um sistema de base r qualquer, existem dois tipos de complementos possveis:

Complemento de r

Complemento de (r-1).

Iniciemos o estudo pelo complemento de (r-1). Seja um nmero N na base r


representado com n dgitos. O complemento de (r-1) de N definido por (rn-1) N. Para
nmeros decimais, r = 10, (r-1) = 9 e o complemento de 9 de N dado por (10n-1) N.
Exemplo 1.5: encontrar o complemento de 9 dos nmeros decimais que seguem.
98710: (1000 - 1) - 987 = 999 - 987 = 12
54670010:
1238910:
No caso de N ser um nmero binrio, r = 2, (r-1) = 1 e o complemento de 1 de N
dado por (2n-1) N.

Exemplo 1.6: encontrar o complemento de 1 dos nmeros binrios que seguem.


101112: (32 - 1) - 23 = 31 - 23 = 8 = 10002
10110012:
00011112:

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-13

J o complemento de r de um nmero N na base r representado com n dgitos


definido por rn N, se N 0 e 0 se N = 0. Comparando-se com o complemento de (r-1),
notamos que o complemento de r obtido somando-se 1 ao complemento de (r-1). Para
nmeros decimais, r = 10, e o complemento de 10 de N dado por 10n N.
O complemento de r de um nmero binrio chamado complemento de dois e a
representao derivada dele chamada representao em complemento de dois.
Para nmeros binrios, o sinal do nmero representado pelo bit mais significativo,
que 0 para nmeros positivos e 1 para negativos. Assim, pode-se obter um nmero negativo
a partir de um nmero positivo, complementando-se cada bit (i.e., substituindo-se cada 0 por 1
e cada 1 por 0), incluindo o bit de sinal e somando-se 1. O bit de carry que ocorra deve ser
ignorado. Portanto, quando se complementa o 0 e o bit de carry mais significativo
descartado, obtm-se 0 como complemento de dois. Isto mostra que o 0 tem uma
representao nica em complemento de dois. Como o 0 um nmero positivo, se ter um
nmero positivo no-zero a menos do que nmeros negativos, ou seja, o intervalo de nmeros
que podem ser representados em complemento de dois -(2n-1) at +(2 n-1 - 1).
Exemplo 1.7: determine o intervalo de representao para nmeros binrios com 4 dgitos
(bits), assumindo-se o uso de complemento de 2
Pelas frmulas acima, conclui-se que o intervalo de representao para nmeros de
quatro bits em complemento de 2 vai de -2 3 = -8 at 2 3 - 1 = +7.
Uma maneira simples de se obter o complemento de dois de um nmero binrio fazer
o complemento do nmero e somar 1 a ele.
Exemplo 1.8: encontre o complemento de 2 do nmero binrio que segue.
101112: 010002 + 12 = 010012

1.2.5.3 Adio e subtrao em complemento de dois


Como dito anteriormente, a representao em complemento de dois foi desenvolvida
para facilitar a implementao de adio e subtrao de nmeros binrios. Com o
complemento de dois possvel realizar somas e subtraes de nmeros com e sem sinal
usando o mesmo circuito lgico.
Para somar nmeros em complemento de dois, usa-se a aritmtica binria mostrada na
tabela 1.4 e ignora-se qualquer bit de carry alm do bit de sinal. Por exemplo, somar dois
nmeros positivos gera um resultado positivo correto:
0010 (+2)
+

0100 (+4)
0110 (+6)

Da mesma maneira, somar dois nmeros negativos sempre produzir uma soma
negativa correta, desde que seja ignorado o bit de carry alm do bit de sinal:

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-14

1110 (-2)
+

1100 (-4)
1010 (-6)

No entanto, existem casos em que uma operao produz um resultado que excede o
intervalo de representao do sistema numrico, criando uma condio chamada estouro ou
overflow.
Via de regra, a adio de dois nmeros com sinais diferentes nunca produz um
overflow. Entretanto, quando se somam dois nmeros com o mesmo sinal que produz uma
soma que maior que o maior nmero representvel, pode-se obter um resultado incorreto.
Por exemplo,
0100 (+4)
+

0101 (+5)
1001 (-7)

Do mesmo modo,
1100 (-4)
+

1011 ( -5)
0111 (+7)

Como os exemplos sugerem, possvel identificar uma regra simples para detectar
overflow em adies: ocorre um overflow sempre que o sinal da soma diferente do sinal dos
operandos. Mas, como ser visto, para implementar um circuito implementando a soma,
mais fcil identificar oveflow usando a seguinte regra: ocorre um overflow sempre que os bits
de carry para o bit de sinal e a partir do bit de sinal so diferentes.
Para realizar a subtrao em complemento de dois, pode-se usar o mesmo
procedimento usado para nmeros binrios sem sinal e as regras para a deteco de overflow
so as mesmas da adio. Mas, para implementar a subtrao no se usa este procedimento.
Ao invs disto, faz-se o complemento de dois do nmero que se quer subtrair (subtraendo) e
faz-se a soma dele com o nmero do qual vai se subtrair. Por exemplo,

0010 (+2)
1100
000
1110 ( -2)

Complemento de dois de (+4)


Carries
Em complemento de dois

Para se implementar esta subtrao basta um circuito complementador e um somador.


Como se est realizando uma adio, a regra para deteco de overflow a da adio.

Exerccios
Exerccio 1.1 - Realizar as converses indicadas a seguir.
a) 179 para binrio

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

179 2 = 89

resto = 1 (dgito menos significativo)

89 2 = 44

resto = 1

1-15

b) 467 para octal


467 8 = 58

resto = 3 (dgito menos significativo)

58 8 =

c) 3417 para hexadecimal


3417 16 =

Exerccio 1.2 - Encontrar a representao em complemento de r para os exemplos anteriores.


98710 : 1000 - 987 = 13
54670010:
1238910:
101112: 32 - 23 = 9 = 10012
10110012:
00011112:

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1-16

Exerccio 1.3 - Encontrar, para os exemplos anteriores, a representao em complemento de 2


usando operaes de complemento.
10110012:
00011112:

Bibliografia Suplementar
[1] GAJSKI, Daniel D. Principles of Digital Design, New Jersey: Prentice Hall, 1997 (ISBN
0-13-301144-5)
[2] MANO, M. Morris; Computer Engineering: Hardware Design. New Jersey: Prentice
Hall, 1988 (ISBN 0-13-162926-3)

2 lgebra Booleana e Circuitos Lgicos


Uma lgebra Booleana pode ser definida com um conjunto de operadores e um
conjunto de axiomas, que so assumidos verdadeiros sem necessidade de prova.
Em 1854, George Boole introduziu o formalismo que at hoje se usa para o tratamento
sistemtico da lgica, que a chamada lgebra Booleana. Em 1938, C. E. Shannon aplicou
esta lgebra para mostrar que as propriedades de circuitos eltricos de chaveamento podem
ser representadas por uma lgebra Booleana com dois valores.
Diferentemente da lgebra ordinria dos reais, onde as variveis podem assumir
valores no intervalo (-;+), as variveis Booleanas s podem assumir um nmero finito de
valores. Em particular, na lgebra Booleana de dois valores, cada varivel pode assumir um
dentre dois valores possveis, os quais podem ser denotados por [F,V] (falso ou verdadeiro),
[H,L] (high and low) ou ainda [0,1]. Nesta disciplina, adotaremos a notao [0,1], a qual
tambm utilizada em eletrnica digital. Como o nmero de valores que cada varivel pode
assumir finito (e pequeno), o nmero de estados que uma funo Booleana pode assumir
tambm ser finito, o que significa que podemos descrever completamente as funes
Booleanas utilizando tabelas. Devido a este fato, uma tabela que descreva uma funo
Booleana recebe o nome de tabela verdade, e nela so listadas todas as combinaes de
valores que as variveis de entrada podem assumir e os correspondentes valores da funo
(sadas).

2.1 Operaes Bsicas da lgebra Booleana (ou lgebra de


Chaveamento)
Na lgebra Booleana, existem trs operaes ou funes bsicas. So elas, operao
OU, operao E e complementao. Todas as funes Booleanas podem ser representadas
em termos destas operaes bsicas.

2.1.1 Operao OU (Adio Lgica)


Uma definio para a operao OU, que tambm denominada adio lgica, :
A operao OU resulta 1 se pelo menos uma das variveis de entrada vale 1.
Como uma varivel Booleana ou vale 1 ou vale 0, e como o resultado de uma operao
qualquer pode ser encarado como (ou atribudo a) uma varivel Booleana, basta que
definamos quando a operao vale 1. Automaticamente, a operao resultar 0 nos demais
casos. Assim, pode-se dizer que a operao OU resulta 0 somente quando todas as variveis
de entrada valem 0.
Um smbolo possvel para representar a operao OU +, tal como o smbolo da
adio algbrica (dos reais). Porm, como estamos trabalhando com variveis Booleanas,

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-2

sabemos que no se trata da adio algbrica, mas sim da adio lgica. Outro smbolo
tambm encontrado na bibliografia .
Listando as possibilidades de combinaes entre dois valores Booleanos e os
respectivos resultados para a operao OU, tem-se:
0+0
0+1
1+0
1+1

=
=
=
=

0
1
1
1

Note que a operao OU s pode ser definida se houver, pelo menos, duas variveis
envolvidas. Ou seja, no possvel realizar a operao sobre somente uma varivel. Devido a
isso, o operador + (OU) dito binrio.
Nas equaes, no costuma-se escrever todas as possibilidades de valores. Apenas
adotamos uma letra (ou uma letra com um ndice) para designar uma varivel Booleana. Com
isso, j se sabe que aquela varivel pode assumir ou o valor 0 ou o valor 1. Ento, supondo
que queiramos demonstar o comportamento da equao A+B (l-se A ou B), poderamos
faz-lo utilizando uma tabela verdade, como segue:
A
0
0
1
1

B
0
1
0
1

A+B
0
1
1
1

Da mesma forma, podemos mostrar o comportamento da equao A+B+C (l-se A ou


B ou C) por meio de uma tabela verdade. Como na equao h somente o smbolo +, tratase da operao OU sobre trs variveis. Logo, pode-se aplicar diretamente a definio da
operao OU: o resultado ser 1 se pelo menos uma das variveis de entrada valer 1.
A
0
0
0
0
1
1
1
1

B
0
0
1
1
0
0
1
1

C
0
1
0
1
0
1
0
1

A+B+C
0
1
1
1
1
1
1
1

importante notar que, devido ao fato de haver somente um operador na equao,


pode-se tambm avaliar a equao decompondo-a em pares. Por exemplo, pode-se
primeiramente achar o resultado de A+B, para depois operar os valores resultantes com os
respectivos valores de C. Esta propriedade conhecida como associativa. Tambm a ordem
em que so avaliadas as variveis A, B e C irrelevante (propriedade comutativa). Estas
propriedades so ilustradas pela tabela verdade a seguir. Nela, os parntesis indicam
subexpresses j avaliadas em coluna imediatamente esquerda. Note que os valores das

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-3

colunas referentes s expresses A+B+C, (A+B)+C e (B+C)+A so os mesmos (na mesma


ordem).
A
0
0
0
0
1
1
1
1

B
0
0
1
1
0
0
1
1

C
0
1
0
1
0
1
0
1

A+B+C
0
1
1
1
1
1
1
1

A+B
0
0
1
1
1
1
1
1

(A+B)+C
0
1
1
1
1
1
1
1

B+C
0
1
1
1
0
1
1
1

(B+C)+A
0
1
1
1
1
1
1
1

2.1.2 Operao E (Multiplicao Lgica)


A operao E, ou multiplicao lgica, pode ser definida da seguinte forma:
A operao E resulta 0 se pelo menos uma das variveis de entrada vale 0.
Pela definio dada, pode-se deduzir que o resultado da operao E ser 1 se, e
somente se, todas as entradas valerem 1.
O smbolo usualmente utilizado na operao E , porm outra notao possvel
. Podemos, tambm, listar as possibilidades de combinaes entre dois valores Booleanos
e os respectivos resultados, para a operao E:
00
01
10
11

=
=
=
=

0
0
0
1

Assim como a operao OU, a operao E s pode ser definida entre, pelo menos duas
variveis. Ou seja, o operador (E) tambm binrio.
Para mostrar o comportamento da equao A B (l-se A e B), escreve-se uma tabela
verdade, como segue:
A
0
0
1
1

B
0
1
0
1

AB
0
0
0
1

De forma semelhante, pode-se determinar o resultado da equao ABC (l-se A e B e


C) utilizando diretamente a definio da operao E: o resultado ser 0 se pelo menos uma
das variveis de entrada valer 0.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

A
0
0
0
0
1
1
1
1

B
0
0
1
1
0
0
1
1

C
0
1
0
1
0
1
0
1

2-4

ABC
0
0
0
0
0
0
0
1

Tambm para a operao E valem as propriedades associativa e comutativa. Ento, a


equao ABC pode ainda ser avaliada tomando-se as variveis aos pares, em qualquer ordem.
Veja a tabela verdade a seguir e compare os resultados.
A
0
0
0
0
1
1
1
1

B
0
0
1
1
0
0
1
1

C
0
1
0
1
0
1
0
1

ABC
0
0
0
0
0
0
0
1

AB
0
0
0
0
0
0
1
1

(AB)C
0
0
0
0
0
0
0
1

BC
0
0
0
1
0
0
0
1

A(BC)
0
0
0
0
0
1
0
1

2.1.3 Complementao (ou Negao, ou Inverso)


A operao complementao dispensa uma definio. a operao cujo resultado
simplesmente o valor complementar ao que a varivel apresenta. Tambm devido ao fato de
uma varivel Booleana poder assumir um entre somente dois valores, o valor complementar
ser 1 se a varivel vale 0 e ser 0 se a varivel vale 1.
Os smbolos utilizados para representar a operao complementao sobre uma
varivel Booleana A so A , ~A e A' (l-se A negado). Nesta disciplina, adotaremos o
primeiro smbolo. O resultado da operao complementao pode ser listado:
=
=

0
1

1
0

Diferentemente das operaes OU e E, a complementao s definida sobre uma


varivel, ou sobre o resultado de uma expresso. Ou seja, o operador complementao
dito unrio.
E a tabela verdade para A :
A
0
1

A
1
0

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-5

2.2 Avaliao de Expresses Booleanas


Dada a equao que descreve uma funo Booleana qualquer, deseja-se saber
detalhadamente como esta funo se comporta para qualquer combinao das variveis de
entrada. O comportamento de uma funo descrito pela sua tabela verdade e este problema
conhecido como avaliao da funo ou da expresso que descreve a funo considerada. Em
suma, deseja-se achar a tabela verdade para a funo Booleana.
Uma tabela verdade consiste basicamente de um conjunto de colunas, nas quais so
listadas todas as combinaes possveis entre as variveis de entrada ( esquerda) e o
resultado da funo ( direita). Tambm, pode-se criar colunas intermedirias, onde so
listados os resultados de subexpresses contidas na expresso principal. Isto normalmente
facilita a avaliao, principalmente no caso de equaes muito complexas e/ou contendo
muitas variveis.
Quando numa mesma equao Booleana aparecem operaes E e OU, necessrio
seguir a ordem de precedncia. Tal como na lgebra dos reais, a multiplicao (lgica) tem
precedncia sobre a adio (lgica). Alm disso, expresses entre parntesis tm precedncia
sobre operadores E e OU que estejam no mesmo nvel. Quanto complementao, esta deve
ser avaliada to logo seja possvel. Caso a complementao seja aplicada sobre uma
subexpresso inteira, necessrio que se avalie primeiramente a subexpresso para, s aps,
inverter o seu resultado.
O nmero de combinaes que as variveis de entrada podem assumir pode ser
calculado por 2n, onde n o nmero de variveis de entrada.
O procedimento para a criao da tabela verdade a partir de uma equao Booleana :
1. Criar colunas para as variveis de entrada e listar todas as combinaes
possveis, utilizando a frmula no de combinaes = 2n (onde n o
nmero de variveis de entrada);
2. Criar uma coluna para cada varivel de entrada que aparea
complementada na equao e anotar os valores resultantes;
3. Avaliar a equao seguindo a ordem de precedncia, a partir do nvel de
parntesis mais internos:
1o multiplicao lgica
2o adio lgica
Tomemos como exemplo a expresso W = X + Y Z . A varivel W representa a
funo Booleana propriamente dita. Esta varivel depende das variveis que esto direita do
sinal =, ou seja, depende de X, Y e Z. Logo, so 3 as variveis de entrada. O total de
combinaes entre 3 variveis ser 23=8. Ento, a tabela verdade para W dever ter 3 colunas
esquerda e 8 linhas. Seguindo o procedimento dado acima, cria-se uma coluna, na qual
listam-se os valores para Z. Aps, inicia-se a avaliao propriamente dita, a partir do nvel
mais interno de parntesis. Como no h parntesis na expresso, resolvem-se as
subexpresses que envolvem a operao E. No caso em questo, h somente uma tal
subexpresso, que X Y . Ento, cria-se uma coluna para X Y , na qual anotam-se os
resultados para este produto. Finalmente, utilizam-se os resultados de X Y , listados na
coluna anterior, para operar o OU com a varivel X. Repare os passos descritos na tabela
verdade que segue. Nela, os parntesis em torno do produto X Y indicam somente que este

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-6

termo j foi avaliado e que no passo referente a esta coluna, tomaram-se apenas os valores
previamente encontrados.
X Y Z

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

X Y
0
0
1
0
0
0
1
0

Z
1
0
1
0
1
0
1
0

W = X + Y Z

0
0
1
0
1
1
1
1

2.3 Portas Lgicas


J vimos que uma funo Booleana pode ser representada por uma equao ou
detalhada pela sua tabela verdade. Mas uma funo Booleana tambm pode ser representada
de forma grfica, onde cada operador est associado a um smbolo especfico, permitindo o
imediato reconhecimento visual. Tais smbolos so conhecidos por portas lgicas.
Na realidade, mais do que smbolos de operadores lgicos, as portas lgicas
representam recursos fsicos, isto , circuitos eletrnicos, capazes de realizar as operaes
lgicas. Na eletrnica que trabalha com somente dois estados, a qual denominada eletrnica
digital, o nvel lgico 0 normalmente est associado ausncia de tenso (0 volt) enquanto o
nvel lgico 1, presena de tenso (a qual geralmente 5 volts). Nesta disciplina, nos
limitaremos ao mundo da lgebra Booleana, admitindo que as portas lgicas representam
tambm circuitos eletrnicos que, de alguma maneira, realizam as funes Booleanas
simbolizadas. Ento, ao conjunto de portas lgicas e respectivas conexes que simbolizam
uma equao Booleana, denominaremos circuito lgico.

2.3.1 Porta OU
O smbolo da porta OU pode ser visto na figura 2.1. Tal como na porta E, as entradas
so colocadas esquerda e a sada, direita. Deve haver no mnimo duas entradas, mas h
somente uma sada. O funcionamento da porta E segue a definio da operao E, dada na
seo 2.1.1.
A

A+B

A+B+C

B
C

(a)

(b)

Figura 2.1 - Smbolo da porta lgica OU com 2 entradas (a) e com 3 entradas (b).

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-7

2.3.2 Porta E
O smbolo da porta E mostrado na figura 2.2. esquerda esto dispostas as entradas
(no mnimo duas, obviamente) e direita, a sada (nica). As linhas que conduzem as
variveis de entrada e sada podem ser interpretadas como fios que transportam os sinais
eltricos associados s variveis. O comportamento da porta E segue extritamente a definio
(e tabela verdade) dada na seo 2.1.2.
A.B

A
B

A
B
C

A.B.C

(b)

(a)

Figura 2.2 - Smbolo da porta lgica E com 2 entradas (a) e com 3 entradas (b).

2.3.3 Inversor (ou Porta Inversora, ou Negador)


A porta que simboliza a operao complementao conhecida como inversor (ou
porta inversora, ou negador). Como a operao complementao s pode ser realizada sobre
uma varivel por vez (ou sobre o resultado de uma subexpresso), o inversor s possui uma
entrada e, obviamente, uma sada. Caso se queira complementar uma expresso, necessrio
obter-se primeiramente o seu resultado, para s ento aplicar a complementao. O smbolo
do inversor mostrado na figura 2.3.

Figura 2.3 - Smbolo do inversor (tambm conhecido como negador ou porta inversora).

2.3.4 Exemplo de Circuito Lgico


Dada uma equao Booleana qualquer, possvel desenhar-se o circuito lgico que a
implementa. O circuito lgico composto das portas lgicas relacionadas s operaes que
so realizadas sobre as variveis de entrada. Os resultados das operaes so conduzidos por
fios, os quais, no desenho, so representados por linhas simples.
Os passos a serem seguidos para se realizar o desenho do circuito lgico a partir de
uma equao so praticamente os mesmos usados na avaliao da expresso. Tomemos como
exemplo a equao, avaliada na seo 2.2. Inicialmente, identificamos as variveis
independentes, que no caso so X, Y e Z. Para cada uma destas, traamos uma linha (da
esquerda para a direita), representando os fios que conduzem os valores. Feito isto, deve-se
seguir desenhando as portas necessrias para representar cada uma das subexpresses, na
mesma ordem tomada para a avaliao, ou seja:
1o parntesis (dos mais internos para os mais externos);
2o operaes E;

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-8

3o operaes OU.
A figura 2.4 mostra o circuito lgico para a equao W = X + Y Z .

X
W

Y
Z

Figura 2.4 - Um circuito lgico.

2.4 Leis Fundamentais e Propriedades da lgebra Booleana


As leis da lgebra Booleana dizem respeito ao espao Booleano (isto ., valores que
uma varivel pode assumir) e operaes elementares deste espao. J as propriedades podem
ser deduzidas a partir das definies das operaes.
Sejam A e B duas variveis Booleanas. Ento, o espao Booleano definido:
se A0, ento A=1;
se A1, ento A=0.
As operaes elementares deste espao so operao OU, operao E e
complementao, cujas definies foram dadas nas sees 2.1.1, 2.1.2 e 2.1.3,
respectivamente.
As propriedades da lgebra Booleana so as seguintes.
Da adio lgica:
(1)
(2)
(3)
(4)

A+0 = A
A +1 = 1
A+A = A
A+A = 1

Da multiplicao lgica:
(5)
(6)
(7)
(8)

A 0 = 0
A 1 = A
A A = A
A A = 0

Da complementao:
(9)

A=A

Comutatividade:
(10)
(11)

A + B = B+ A
A B = B A

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-9

Associatividade:
(12)
(13)

A +(B + C ) =(A + B )+ C = ( A + C )+ B
A (B C) = (A B) C = (A C) B

Distributiva (da multiplicao em relao adio):


(14)

A (B + C) = A B + A C

2.4.1 Teoremas de De Morgan


O primeiro teorema de De Morgan diz que a complementao de um produto (lgico)
equivale soma (lgica) das negaes de cada varivel do referido produto. Sob a forma de
equao, teramos:
A B C ... = A + B + C + ... (2.1)
O segundo teorema o dual ( i.e., o espelho) do primeiro, ou seja, a complementao
de uma soma (lgica) equivale ao produto das negaes individuais das variveis:
A + B + C + ... = A B C... (2.2)
Particularizando os teoremas de De Morgan para duas variveis, temos:
A B = A + B

(2.3)

A + B = A B

(2.4)

2.5 Derivao de Expresses Booleanas


Dada uma funo Booleana, descrita por sua tabela verdade, derivar uma expresso
Booleana para esta funo encontrar uma equao que a descreva. Logo, a derivao de
expresses Booleanas o problema inverso da avaliao de uma expresso Booleana, descrito
na seo 2.2
H basicamente duas maneiras de se definir (ou descrever) uma funo Booleana:
descrevendo-se todas as situaes das variveis de entrada para as quais a funo vale 1 ou,
alternativamente, todas as situaes em que a funo vale 0. O primeiro mtodo conhecido
por soma de produtos (SdP), enquanto que o segundo chamado produto de somas (PdS).
Qualquer funo Booleana pode ser descrita por meio de soma de produtos ou por meio de
produto de somas. Como as funes Booleanas s podem assumir um dentre dois valores (0
ou 1), basta usar-se um dos dois mtodos para se encontrar uma equao para uma funo.
A seguir, so detalhados os mtodos de derivao de expresses Booleanas.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-10

2.5.1 Derivao de Expresses usando Soma de Produtos (SdP)


Dada uma funo Booleana de n variveis (ou seja, n entradas), haver 2n combinaes
possveis de valores. Dizemos que esse conjunto de valores que as variveis podem assumir,
juntamente com os respectivos valores da funo, constituem o espao da funo. A cada
combinao de entradas podemos associar um termo produto, no qual todas as variveis da
funo esto presentes, e que construdo da seguinte forma: se a varivel correspondente
vale 0, ela deve aparecer negada; se a varivel vale 1, ela deve aparecer no negada. A tabela
a seguir lista os termos produto associados a cada combinao de entradas para uma funo
Booleana de trs variveis (A, B e C, por exemplo).
A B C

mintermo

0 0 0

A B C

0 0 1

A B C

0 1 0

A B C

0 1 1

A B C

1 0 0

A B C

1 0 1

A B C

1 1 0

A B C

1 1 1

A B C

Cada termo produto construdo conforme a regra anteriormente descrita denominado


mintermo (ou minitermo). Note que, para um dado mintermo, se substituirmos os valores das
variveis associadas, obteremos 1. Porm, se substituirmos nesse mesmo mintermo quaisquer
outras combinaes de valores, obteremos 0. Dessa forma, se quisermos encontrar a equao
para uma funo a partir de sua tabela verdade, basta montarmos um OU entre os mintermos
associados aos 1s da funo (tambm chamados mintermos 1 ).
Exemplo 2.1: encontrar a equao em soma de produtos (SdP) para a funo F, descrita pela
seguinte tabela verdade:
A B C

0
0
0
0
1
1
1
1

0
0
1
1
0
1
1
0

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

F funo das variveis A, B e C. Os valores de (A,B,C) para os quais F=1 so (0,1,0),


(0,1,1), (1,0,1) e (1,1,0). Os mintermos associados a essas condies (ou seja, os mintermos
1), so A B C , A B C , A B C e A B C , respectivamente. Logo, a equao em soma
de produtos para F ser o OU entre estes produtos, conforme segue:
F = A B C + A B C + A B C + A B C

(2.5)

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-11

A fim de simplificar a notao, o smbolo da operao E pode ser omitido. Desta


forma, a equao anterior pode ser reescrita de maneira mais concisa:
F = A BC + A BC + A BC + A BC

(2.6)

2.5.2 Derivao de Expresses usando Produto de Somas (PdS)


O mtodo de derivao usando produto de somas o dual (isto , o oposto) do mtodo
de derivao em soma de produtos. A cada combinao das variveis de entrada de uma
funo podemos associar um termo soma, no qual todas as variveis da funo esto
presentes, e que construdo da seguinte forma: se a varivel correspondente vale 1, ela deve
aparecer negada; se a varivel vale 0, ela deve aparecer no negada. A tabela a seguir lista os
termos soma associados a cada combinao de entradas para uma funo Booleana de trs
variveis (A, B e C, por exemplo).
A B C

maxtermos

0 0 0

A + B+ C

0 0 1

A + B+ C

0 1 0

A + B+ C

0 1 1

A + B+ C

1 0 0

A + B+ C

1 0 1

A + B+ C

1 1 0

A + B+ C

1 1 1

A + B+ C

Cada termo soma construdo conforme a regra anteriormente descrita denominado


maxtermo (ou maxitermo). Note que, para um dado maxtermo, se substituirmos os valores
das variveis associadas, obteremos 0. Porm, se substituirmos nesse mesmo maxtermo
quaisquer outras combinaes de valores, obteremos 1. Dessa forma, se quisermos encontrar a
equao para uma funo a partir de sua tabela verdade, basta montarmos um E entre os
maxtermos associados aos 0s da funo (tambm chamados maxtermos 0 ).
Exemplo 2.2: encontrar a equao em produto de somas (PdS) para a funo F, descrita pela
seguinte tabela verdade:
A B C
F
0 0 0
0
0 0 1
0
0 1 0
1
0 1 1
1
1 0 0
0
1 0 1
1
1 1 0
1
1 1 1
0

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-12

Foi escolhida a mesma funo do exemplo anterior, para que se possa estabelecer
comparaes entre os dois mtodos de derivao. Os valores das variveis de entrada (A,B,C)
para os quais F=0 so (0,0,0), (0,0,1), (1,0,0) e (1,1,1). Os maxtermos associados a essas
condies (ou seja, os maxtermos 0), so A + B + C , A + B + C , A + B + C e A + B + C ,
respectivamente. Logo, a equao em produto de somas para F ser o E entre estas somas:
F =(A + B + C)(A + B + C)(A + B + C)(A + B + C)

(2.7)

Note que a ordem de precedncia de uma expresso em produto de somas primeiro


cada soma deve ser avaliada, para s ento avaliar-se o produto. Isto significa que os
parntesis em torno de cada termo soma so obrigatrios! Repare tambm que os smbolos
referentes operao E (entre os termos soma) podem ser omitidos.

2.6 Formas Cannicas, Padro e No-Padro


As representaes em soma de produtos e em produto de somas so denominadas
formas padro. A soma de produtos e o produto de somas descritos nas duas sees
anteriores apresentam ainda uma caracterstica bastante particular: em cada termo soma e em
cada termo produto todas as variveis da funo esto presentes. Devido a essa caracterstica,
essas formas so chamadas cannicas.
Alm das representaes descritas nas sees anteriores, h representaes alternativas
(e mais concisas) para as expresses cannicas. Se associarmos cada combinao das
variveis de entrada ao seu equivalente em decimal, cada mintermo pode ser representado por
mi, onde i o decimal associado. De forma similar, cada maxtermo pode ser representado por
Mi, onde i o decimal associado. A tabela a seguir lista todos os mintermos e maxtermos de
uma funo de trs variveis (A, B e C).
A B C

mintermo

maxtermo

0 0 0

m0

M0

0 0 1

m1

M1

0 1 0

m2

M2

0 1 1

m3

M3

1 0 0

m4

M4

1 0 1

m5

M5

1 1 0

m6

M6

1 1 1

m7

M7

Voltando funo F das sees anteriores, podemos reescrever a expresso em soma


de produtos, na forma cannica, como segue:
F = m2 + m3 + m5 + m6

(2.8)

Ou ainda, de maneira mais concisa:


F = (2,3,5,6)

(2.9)

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-13

E sua expresso em produto de somas, na forma cannica, pode ser reescrita como:
F = M0 M1 M4 M7

(2.10)

Ou simplesmente, como:
F = (0,1,4,7)

(2.11)

Apesar da praticidade das representaes cannicas, elas so pouco teis para a


implementao de circuitos digitais. O nmero de elementos (portas lgicas e conexes) de
um circuito lgico depende diretamente do nmero de operaes Booleanas (inverso, E e
OU) contidas na expresso associada. Desta forma, normal que se deseje reduzir o nmero
de operaes contidas numa funo, de modo a poder-se implement-la com circuitos lgicos
mais simples, e portanto, de menor custo. A reduo do nmero de operaes obtida
mediante a eliminao de literais da expresso, aplicando-se as propriedades da lgebra
Booleana descritas na seo 2.4. Um literal uma varivel negada ou uma varivel no
negada. O processo de reduo de literais (ou de reduo de operaes, equivalentemente)
denominado simplificao.
Para exemplificar os passos bsicos para a simplificao algbrica (literal) de
expresses Booleanas, tomemos a expresso cannica, em soma de produtos, para a funo F:
F = A BC + A BC + A BC + A BC

(2.12)

O primeiro passo identificar pares de mintermos que se diferenciam por apenas um


literal, a fim de aplicar a propriedade (14). Os mintermos ABC e ABC , por exemplo,
possuem os mesmos literais, exceto pela varivel C: no primeiro, o literal C , enquanto no
segundo, o literal C. Ento, com o uso da propriedade (14), pode-se fatorar esses dois
mintermos, obtendo-se:
F = A B(C + C)+ A BC + A BC

(2.13)

Pela propriedade (4), tem-se que C + C=1. Ento, substituindo em 2.13, segue:
F = AB 1 + ABC + ABC

(2.14)

E pela propriedade (6), AB 1 = AB. Substituindo em 2.14, obtm-se:


F = A B + A BC + A BC

(2.15)

Assim, pela manipulao algbrica, obtivemos uma expresso em soma de produtos


que simplificada em relao a sua expresso em soma de produtos na forma cannica, pois o
nmero de operaes e tambm de literais foram reduzidos (compare 2.15 com 2.12).
Entretanto, na equao 2.12, o mintermo ABC tambm poderia ter sido agrupado com
o mintermo ABC , pois ambos possuem os mesmos literais, exceto pela varivel A ( A no
primeiro e A no segundo). Naturalmente, os passos a serem seguidos seriam os mesmos
descritos anteriormente. E a equao resultante seria um pouco diferente, mas com o mesmo
nmero de operaes, sendo portanto, de mesma complexidade. Na verdade, o melhor seria se
pudssemos agrupar o mintermo ABC com o mintermo ABC e ao mesmo tempo com o
mintermo ABC . Felizmente, a propriedade (3) da lgebra Booleana diz que o OU entre duas
ou mais variveis Booleanas iguais igual a prpria varivel Booleana em questo.
Estendendo esta propriedade, pode-se dizer que o OU entre duas ou mais funes (inclusive

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-14

produtos) Booleanas iguais equivale prpria funo Booleana em questo. Desta forma,
pode-se expandir o mintermo ABC para
ABC = ABC + ABC
(2.16)
que uma manipulao algbrica decorrente da propriedade (3).

Retomando a equao 2.12 e utilizando 2.16, segue que:


F = A BC + A BC + A BC + A BC + A BC

(2.17)

Ento, a propriedade (3) garante que as expresses 2.12 e 2.17 so equivalentes,


embora o mintermo ABC aparea duplicado. E pelo fato de aparecer duas vezes, pode-se usar
uma cpia de ABC para simplificar com ABC e outra para simplificar com ABC . Os passos
da simplificao so os mesmos j descritos: pela propriedade (14), segue:
F = A B(C + C)+ A BC +(A + A)BC

(2.18)

E pela propriedade (6), vem:


F = AB1+ ABC + 1 BC

(2.19)

Finalmente, pela propriedade (4), tem-se:


F = A B + A BC + BC

(2.20)

Repare que o mintermo A BC no pde ser agrupado com nenhum outro mintermo.
Note tambm que foram feitas todas as simplificaes possveis, uma vez que foram
agrupados e simplificados todos os pares de mintermos que se diferenciam de somente uma
varivel. Logo, a expresso 2.20 representa a mxima simplificao possvel sob a forma de
soma de produtos. E por esse motivo, ela dita equao mnima em soma de produtos da
funo F. Quanto a expresso 2.15, diz-se ser uma equao em soma de produtos
simplificada (porm, no-mnima). Logo, toda equao mnima simplificada, porm, nem
toda equao que foi simplificada necessariamente mnima.
Embora a equao mnima em soma de produtos apresente menor nmero de
operaes Booleanas que a representao na forma cannica, as vezes pode ser possvel
reduzir-se ainda mais o nmero de operaes, fatorando-se literais. Por exemplo, na expresso
2.20 pode-se fatorar o primeiro e o terceiro mintermos como segue:
F = B(A + C)+ A BC

(2.21)

A expresso 2.21, obtida pela fatorao de 2.20, no nem do tipo soma de produtos,
nem produto de somas, pois h um termo que no nem produto, nem soma. Diz-se que a
expresso est na forma fatorada. No caso de 2.21, a fatorao no resultou em reduo do
nmero de operaes.
No que se refere a terminologia, as formas soma de produtos e produto de somas so
ditas formas padro (formas standard). A forma fatorada dita no-padro. As formas
cannicas so, pois, casos especiais de formas padro, nas quais os termos so mintermos ou
maxtermos. A fim de diferenciar somas de produtos cannicas de somas de produtos
simplificadas, usaremos a expresso soma de mintermos. De maneira similar, usaremos a
expresso produto de maxtermos para diferenciar produtos de somas cannicos de
produtos de somas simplificados.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-15

2.7 Circuitos Lgicos para Formas Padro e No-Padro


As regras gerais para se realizar o desenho de circuitos lgicos j foram apresentadas
na seo 2.3 (item 2.3.4). As regras seguintes devem ser observadas, a fim de facilitar a
compreenso do desenho:
as variveis de entrada devem ser identificadas preferencialmente esquerda, junto
aos respectivos fios;
inversores devem ser providos para as variveis que aparecem negadas na equao;
as portas que implementam as operaes Booleanas que aparecem na equao
normalmente so posicionadas da esquerda para a direita, seguindo a ordem de avaliao dos
operadores (descrita em 2.3.4).
No caso de equaes na forma soma de produtos (cannica ou simplificada), h um
primeiro nvel (desconsiderando-se possveis inversores), constitudo somente por portas E,
onde cada porta E implementa um dos produtos da equao. H ainda um segundo nvel,
constitudo por uma porta OU, responsvel pela soma lgica dos produtos. A figura 2.5
mostra um possvel circuito lgico para a equao 2.12.
Repare que em todas as intersees de fios em que h conexo fsica, deve haver um
ponto (suficientemente grande), como se fora uma solda. Logo, quando no h o referido
ponto na interseo de fios, significa que tais fios esto eletricamente isolados.

1o nvel

2o nvel

A
B
C

Figura 2.5 - Um circuito lgico para soma de produtos.


O circuito da figura 2.5 pode ainda ser desenhado utilizando-se uma notao
simplificada para os inversores das entradas. Ao invs de se desenhar um inversor para cada
varivel que aparece negada na equao, coloca-se um crculo junto a cada entrada de cada

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-16

porta na qual h uma varivel negada. A aplicao desse procedimento para o circuito da
figura 2.5 resulta no seguinte desenho:
1o nvel

2o nvel

A
B
C

Figura 2.6 - Um circuito lgico para soma de produtos - outra possvel representao.
No caso de equaes na forma produto de somas (cannica ou simplificada), o
primeiro nvel constitudo por portas OU, sendo cada uma responsvel por uma das somas
lgicas da equao. O segundo nvel, por sua vez, constitudo por uma porta E, que realiza o
produto lgico das parcelas. A figura 2.7 mostra um possvel circuito lgico para a equao
2.7.
1o nvel

2o nvel

A
B
C

Figura 2.7 - Um circuito lgico para produto de somas.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-17

Pelo fato de apresentarem apenas dois nveis de portas (dois nveis lgicos), circuitos
para equaes representadas nas formas padro, cannicas ou simplificadas, so ditos
circuitos em dois nveis (ou lgica a dois nveis).
Dada a equao cannica de uma funo qualquer, o circuito para uma equao
simplificada a partir da cannica possui menos portas e/ou portas de menor complexidade. (A
complexidade relativa de uma porta pode ser medida pelo nmero de entradas que ela
apresenta). A figura 2.8 mostra o circuito lgico para a equao 2.20, que a forma mnima
para a funo da equao 2.12. Note que este circuito de menor complexidade que o circuito
da figura 2.6. A complexidade relativa de um circuito lgico pode ser calculada somando-se o
nmero de entradas das portas. Nos circuitos das figuras 2.6 e 2.7 h 4 portas de 3 entradas e
1 porta de 4 entradas. Ento, a complexidade relativa ser 4x3+1x4=16. No circuito da figura
2.8 h 2 portas de 2 entradas e 2 portas de 3 entradas. Sua complexidade relativa ser
2x2+2x3=10. Claramente, o circuito da figura 2.8 de menor complexidade que os circuitos
das figuras 2.6 e 2.7. Estes dois so de mesma complexidade relativa. No clculo da
complexidade relativa, as inverses normalmente no so levadas em conta.
Circuitos para formas fatoradas podem ser vistos como o caso mais genrico. Em
geral, as formas fatoradas conduzem a circuitos cujo nmero de nveis lgicos maior do que
dois. Por isso, circuitos lgicos para formas fatoradas so denominados circuitos multinvel
(lgica multinvel). Como dito na seo 2.6, as vezes uma forma fatorada pode apresentar
menor nmero de operaes do que a respectiva forma padro. Quando isso ocorre, o circuito
associado forma fatorada tambm ser de menor complexidade relativa. Entretanto, se no
ocorrer reduo no nmero de operaes, mesmo assim possvel que o circuito para a forma
fatorada seja de menor complexidade relativa, pois o conceito de complexidade relativa
tambm inclui o nmero de entradas de cada porta. Ento, a maneira mais segura de saber se o
circuito associado forma fatorada de menor complexidade ou no desenh-lo e somar o
nmero de entradas. A figura 2.9 mostra o circuito para a equao 2.21, obtida a partir da
equao 2.20 fatorando-se o literal B. Note que o nmero de operaes Booleanas destas
equaes o mesmo: 4. No entanto, a complexidade do circuito da forma fatorada
3x2+1x3=9, portanto menor do que a complexidade do circuito da figura 2.8.

1o nvel

2o nvel

A
B

F
C

Figura 2.8 - Circuito lgico para a equao 2.20.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

1o nvel

2o nvel

2-18

3o nvel

A
C
F
B

Figura 2.9 - Circuito lgico multinvel, associado equao 2.21, a qual est na forma
fatorada.

2.8 Simplificao de Funes Booleanas usando Mapas de


Karnaugh
O mtodo de simplificao apresentado na seo 2.6 de aplicabilidade limitada, uma
vez que bastante difcil certificar-se que todos os pares de mintermos que podiam ser
simplificados foram determinados. Alternativamente quele mtodo, h outro mtodo de
simplificao baseado na identificao visual de grupos de mintermos passveis de serem
simplificados. No entanto, para que se possa identificar tais grupos, necessrio que os
mintermos sejam dispostos de maneira mais conveniente, o que ser explicado a seguir.
Na descrio do mtodo de simplificao literal, foi mencionado que os pares de
mintermos que se diferenciam de somente uma varivel so passveis de simplificao.
Observando a ordem com que os mintermos de uma funo Booleana qualquer (com, por
exemplo, 3 variveis) aparecem na tabela verdade, vemos que, se trocarmos o 3 mintermo
com o 4 e trocarmos tambm o 7 mintermo com o 8, obteremos uma nova ordem, na qual
quaisquer dois mintermos adjacentes so passveis de simplificao. interessante notar
tambm que o 1 mintermo pode ser simplificado com o 5, o 2 mintermo pode ser
simplificado com o 6 e assim por diante.
A B C

mintermo

0 0 0

A B C

0 0 1

A B C

0 1 0

A B C

0 1 1

A B C
A B C

1 0 0
1 1 0

A B C
A B C

1 1 1

A B C

1 0 1

Figura 2.10 - Mintermos para uma funo de 3 variveis.


Ento, usando o novo ordenamento e re-arranjando os mintermos em duas linhas,
temos a seguinte tabela:

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

A B C
A B C

A B C
A B C

A B C
A B C

2-19

A B C
A B C

Figura 2.11 - Tabela de adjacncias para uma funo de 3 variveis.


Repare que nessa nova tabela, quaisquer dois mintermos adjacentes (na horizontal ou
na vertical) so passveis de serem simplificados, pois s se diferenciam de uma varivel.
importante ressaltar que esse conceito de adjacncia no est restrito aos limites da tabela,
uma vez que os elementos extremos de uma mesma linha (ou de uma mesma coluna) tambm
so simplificveis. Isto implica que a tabela de adjacncias de mintermos da figura 2.11 pode
e deve ser encarada como uma figura geomtrica tridimensional do tipo toride (ou uma
rosquinha). A figura a seguir explicita as relaes de adjacncia dos mintermos para uma
funo de trs variveis.
m0

m1

m3

m2

m4

m5

m7

m6

Figura 2.12 - Simplificaes possveis entre os mintermos de uma funo de 3 variveis.


importante ressaltar que o conceito de adjacncia aplicvel na horizontal e na
vertical, mas nunca na diagonal. Por exemplo, observe que m0 e m5 no so adjacentes, pois
no esto nem na mesma linha, nem na mesma coluna.
O processo de simplificao usando a nova disposio inicia pela construo da tabela
em si: os valores da funo que se quer simplificar devem ser preenchidos conforme a nova
ordem. Aps, identificam-se todos os grupos de mintermos-1 adjacentes entre si. Cada grupo
origina um termo produto, no qual somente as variveis comuns a todos os mintermos-1
permanecem. Desde que os grupos de mintermos-1 adjacentes tenham sido corretamente
identificados, a simplificao se torna trivial.
Exemplo 2.3: simplificar a funo F, cuja tabela verdade encontra-se no item 2.5.2.
O primeiro passo construir uma tabela para F, usando a nova disposio dos
mintermos.
C
F
AB
BC
00
01
11
10
A

A BC

BC

Figura 2.13 - Grupos de mintermos-1 adjacentes e termos produto para uma funo de 3
variveis.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-20

Aps, deve-se identificar todos os grupos de mintermos-1 adjacentes entre si. Cada
grupo de mintermos-1 originar um produto, conforme indicado na figura 213. A equao em
soma de produtos simplificada ser o OU entre os produtos encontrados:
F = A B + A BC + BC

(2.22)

2.8.1 Mapas de Karnaugh e Subcubos


A tabela modificada usada para a identificao dos mintermos-1 adjacentes no
exemplo anterior denominada mapa de Karnaugh (no caso, para 3 variveis). Na figura
2.14 so mostrados os mapas de Karnaugh para funes de 2, 3 e 4 variveis.
nome da
funo

B
B

m0

m1

m2

m3

nome da
funo

C
BC

00

01

11

10

m0

m1

m3

m2

m4

m5

m7

m6

B
nome da
funo

D
CD
AB

00

01

11

10

00

m0

m1

m3

m2

01

m4

m5

m7

m6

11 m12

m13

m15

m14

m8

m9

m11

m10

10

C
Figura 2.14 - Mapas de Karnaugh para funes de 2, 3 e 4 variveis.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-21

O primeiro passo para simplificar-se uma funo usando mapa de Karnaugh escolher
o mapa conforme o nmero de variveis da funo e preencher os valores dos mintermos
conforme a tabela verdade fornecida, ou conforme a equao fornecida. O segundo passo
identificar grupos de mintermos adjacentes que formem grupos de 2m elementos adjacentes
entre si, com 0mn, onde n o nmero de variveis da funo. Estes grupos so
denominados subcubos.
No caso de se querer encontrar uma expresso em soma de produtos, estaremos
interessados nos subcubos de mintermos-1. Ento, cada subcubo contendo mintermos-1 ir
originar um produto, no qual uma ou mais variveis podero estar ausentes devido
simplificao que obtida. Os produtos associados aos subcubos de mintermos-1,
simplificados ou no, so denominados implicantes. importante ressaltar que quanto maior
o nmero de elementos do subcubo, maior ser a simplificao obtida.
Exemplo 2.4: determinar os implicantes das funes dadas a seguir.
D
F0

CD
AB

00

01

11

10

00

01

11

10

D
F1

CD
AB

00

01

11

10

00

01

11

10

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-22

D
F2

CD
AB

00

01

11

10

00

01

11

10

C
D
F3

CD
AB

00

01

11

10

00

01

11

10

No caso de se querer encontrar uma expresso em produtos de somas, estaremos


interessados nos subcubos de mintermos-0. Ento, cada subcubo contendo mintermos-0 ir
originar uma soma, no qual uma ou mais variveis podero estar ausentes devido
simplificao que obtida. As somas associados aos subcubos de mintermos-0, simplificadas
ou no, so denominadas implicados. Tambm neste caso, quanto maior o nmero de
elementos do subcubo, maior ser a simplificao obtida.
Exemplo 2.5: determinar os implicados das funes dadas a seguir.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

D
F4

CD
AB

00

01

11

10

00

01

11

10

C
D
F5

CD
AB

00

01

11

10

00

01

11

10

C
D
F6

CD
AB

00

01

11

10

00

01

11

10

0
C

2-23

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-24

D
F7

CD
AB

00

01

11

10

00

01

11

10

2.8.2 Cobertura dos Mapas de Karnaugh


Normalmente, possvel identificar-se numa mesma funo Booleana mais de um
implicante (ou mais de um implicado). Neste caso, necessrio determinar o conjunto de
implicantes (ou implicados) que melhor cobre a funo, onde a melhor cobertura significa
necessariamente a expresso mais simplificada possvel, a qual denominada expresso
mnima.
O procedimento bsico para se determinar a melhor cobertura (tambm chamada
cobertura mnima) para uma expresso em soma de produtos o seguinte:

Identificar os subcubos de mintermos-1 com maior nmero de elementos possvel,


iniciando do tamanho 2n, onde n o nmero de variveis da funo. Caso algum
mintermo-1 fique isolado (isto , no h nenhum outro mintermo-1 adjacente a
ele), ento ele constituir um subcubo de um elemento;

Identificar o menor conjunto de subcubos de modo que cada mintermo-1 pertena a


pelo menos um subcubo (= seja coberto pelo menos uma vez).

Observaes:
1. Cada mintermo-1 pode ser coberto por mais de um subcubo, caso isso resulte numa
simplificao maior;
2. Um ltimo teste para verificar se a expresso obtida realmente a mnima consiste
em verificar se algum subcubo pode ser removido, sem deixar algum mintermo-1
descoberto. Um subcubo que poder ser removido sem descobrir mintermos dito
subcubo no-essencial. Logo, todo o subcubo que no pode ser removido dito
essencial.;
3. Pode haver mais de uma expresso mnima para uma mesma funo Booleana;

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-25

4. A expresso mnima aquela de menor complexidade. E a complexidade ser


medida pelo nmero de literais de uma funo.
Exemplo 2.6:. ache a equao mnima em soma de produtos para as funes Booleanas que
seguem:
S0(A, B,C,D) = (0,1,2,5,6,7,13,15)
Cobertura 1:
D
S0
CD
AB

00

01

11

10

00
01
A

11
10

Cobertura 2:

D
S0
CD
AB

00

01

11

10

00
01
A

11
10

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-26

Cobertura 3:

D
S0
CD
AB

00

01

11

10

00
01
A

11
10

S1(W,X, Y, Z) = (0,1,2,5,8.9.10)
D
S1
YZ
WX

00

01

11

10

00
01
A

11
10

C
Conforme j mencionado anteriormente, tambm possvel obter-se uma expresso
mnima em produto de somas a partir do mapa de Karnaugh da funo Booleana. Para tanto,
deve-se identificar os subcubos de mintermos-0, ao invs de subcubos de mintermos-1. Cada
subcubo de mintermo-0 ir originar um termo soma, possivelmente j simplificado, o qual
recebe o nome de implicado.
Os passos para a obteno de uma cobertura mnima so os mesmos j descritos para a
obteno da expresso em soma de produtos.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-27

Exemplo 2.7: determine a equao mnima em produto de somas para a funo Booleana.
S2(W,X, Y, Z) = (0,1,2,5,8,9,10)
Observao importante: repare que a funo foi especificada pela descrio de seus
mintermos-1. Mas como foi solicitada a expresso em produto de somas, uma vez montado o
mapa de Karnaugh usando a informao fornecida, passaremos a identificar os subcubos de
mintermos-0.
Z
S2
YZ
WX

00

01

11

10

00
01

11

10

Y
Exemplo 2.8: determinar a expresso mnima em soma de produtos e a expresso mnima
em produto de somas para a funo Booleana dada a seguir. Desenhar o
circuito lgico para cada expresso obtida.
S3(A,B,C,D) = (1,2,3,6,7,8,9,12,14)
Obs: existe mais de uma cobertura mnima possvel para essa funo.
Cobertura 1 para soma de produtos:
D
S3
CD
AB

00

01

11

10

00
01

11
A
10

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

Cobertura 2 para soma de produtos:


D
S3
CD
AB

00

01

11

10

00
01

11
A
10

Cobertura 1 para produto de somas:


D
S3
CD
AB

00

01

11

10

00
01

11
A
10

Cobertura 2 para produto de somas:


D
S3
CD
AB

00

01

11

10

00
01

11
A
10

2-28

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-29

2.9 Funes Incompletamente Especificadas


Durante o projeto lgico, pode ocorrer que algumas condies (combinaes) de
entradas de uma funo Booleana no sejam especificadas, por no afetarem a funo no
contexto do projeto. Cada condio de entrada cujo valor no especificado sinalizada com
DC ou com X na tabela verdade (ou no mapa de Karnaugh) e so denominadas condies
de dont care (ou simplesmente, dont care).
Quando da simplificao de uma funo Booleana que contenha condies de dont
care, essas condies podem e devem ser exploradas no sentido de se obter a mxima
simplificao possvel. Para tanto, pode-se assumir cada condio de dont care como
valendo 0 ou 1, independente das demais condies de dont care. A escolha do valor (0 ou 1)
ir depender do contexto, mas sempre dever ocorrer com o objetivo de levar a uma
simplificao mxima da funo Booleana.
Exemplo 2.9: determinar a expresso mnima em soma de produtos para a funo.
S5(A,B,C,D) = (0,1,2,12,13) + DC(3,7,10,11,14,15)
onde o conjunto de condies de dont care est especificado por DC Repare que no caso
de uma funo que contenha condies de dont care (ou seja, uma funo incompletamente
especificada), no basta dizer somente onde esto os uns (ou somente os zeros) da funo:
necessrio informar tambm quais condies de entrada no so especificadas, o que feito
pelo conjunto DC.

D
S5
CD
AB

00

01

11

10

00
01

11
A
10

Observaes:

Iremos identificar cada condio de entrada no especificadas (ou dont care) por
meio de um X (xis maisculo). O valor que ser assumido para um dont care
totalmente independente dos demais dont cares;

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-30

Quando da identificao dos subcubos, no aconselhvel escrever o valor que foi


assumido para um determinado dont care, pois isso pode gerar confuses. O simples
fato de um dont care pertencer (ou no) a algum subcubo j identifica o valor que foi
assumido para ele;

Para uma mesma funo Booleana, deve-se identificar a soluo em soma de produtos
num mapa de Karnaugh e a soluo em produto de somas em outro mapa, a fim de
evitar confuses

Exemplo 2.10:. dada a funo que segue, determinar as equaes mnimas em SdP (soma de
produtos) e em PdS (produto de somas) para a funo dada. Desenhar os
respectivos circuitos lgicos e identificar, o circuito de menor complexidade
(entre SdP e PdS).
S6(A,B,C,D) = (0,3,5,6,7) + DC(10,11,12,13,14,15)
Cobertura para soma de produtos:
D
S6
CD
AB

00

01

11

10

00
01

11
A
10

Cobertura para produto de somas:


D
S6
CD
AB

00

01

11

10

00
01

11
A
10

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-31

Observao: um mesmo dont care pode assumir um valor lgico para a cobertura em
SdP e outro valor lgico para a cobertura em PdS, pois as coberturas so totalmente
independentes.

2.10 Outras Operaes Lgicas


At agora, tem-se visto apenas duas funes booleanas de duas variveis, OU e E.
n
Mas, existem 22 funes Booleanas com n variveis binrias. Assim, existem 16 funes
Booleanas de duas variveis e as funes E e OU so apenas duas dessas 16 funes. A tabela
a seguir lista todas as 16 funes Booleanas de duas variveis, x e y.

Nome

Smbolo

Zero

Valores para
x,y=
00 01 10 11
0 0 0 0

Expresso
algbrica

Comentrio

F0 = 0

Constante 0

E
Inibio
Transferncia

x.y
x/y

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

F1 = xy
F2 = xy
F3 = x

xey
x mas no y
x

Inibio
Transferncia

y/x

0 1 0 0
0 1 0 1

F4 = x y
F5 = x

y mas no x
y

XOR

xy

F6 = xy + xy

OU

x+y

NOR
Equivalncia
Complemento

xy

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

F7 = x + y
F8 = (x + y)'
F9 = xy + x' y'
F10 = y '

x ou y, mas no
ambos
x ou y

Implicao
Complemento
Implicao

xy
x'
xy

1
1
1

1
0
1

F11 = x + y
F12 = x
F13 = x + y

Se y, ento x
No x
Se x, ento y

NAND
Um

xy
1

1 1 1 0
1 1 1 1

F14 = ( xy )'
F15 = 1

No E
Constante 1

y'

0
1
1

1
0
0

No-OU
x igual a y
No y

Cada linha na tabela acima representa uma funo de duas variveis e os nomes destas
funes so dados na primeira coluna. As tabelas verdades de cada uma das funes so dadas
na terceira coluna. Note que cada funo foi designada por Fi onde i o decimal equivalente
ao nmero binrio que obtido interpretando-se os valores das funes dados na terceira
coluna como nmeros binrios.
Cada uma destas funes pode ser dada em termos de operaes E, OU e
complemento. Como pode ser visto na tabela, existem duas funes constantes, 0 e 1, que
retornam sempre 0 ou 1, respectivamente, independente de que valores se tem na entrada.
Existem quatro funes de uma varivel, que representam o complemento e a transferncia. E
existem 10 funes que definem oito operaes binrias: E, inibio, XOR, OU, NOR,

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-32

equivalncia, implicao e NAND. Sendo que inibio e implicao nunca so usados no


projeto de circuitos, principalmente, por poderem ser facilmente implementados usando-se
operaes E, OU e complemento. A funo NOR o complemento da operao OU e a
funo NAND o complemento da operao E. Pode-se notar tambm que XOR e
equivalncia so o complemento uma da outra e, por esta razo, a equivalncia normalmente
chamada XNOR.
Para implementar as funes mostradas na tabela acima, so usadas geralmente oito
tipos de portas lgicas: portas E, OU, complemento ou inversora, portas de transferncia ou
driver, portas NAND, XOR e XNOR. A figura 2.15 mostra os smbolos de cada uma destas
portas com respectivos atrasos (em nanossegundos) e custo (em nmero de transistores).

Figura 2.15 - Smbolos para portas lgicas com respectivos atrasos e custos
Na figura acima, os nmeros dentro do smbolo de cada porta lgica indica o atraso
atravs da porta, ou seja, o tempo que leva para que o resultado da operao lgica
correspondente aparea na sada da porta, quando se aplica valores na entradas. Assim, por
exemplo, a porta NOR possui um atraso de propagao de 1,4 ns. O nmero ao lado do
smbolo de uma porta lgica indica a quantidade de transistores necessrios para implementla. Assim, pode-se notar que a implementao de uma porta XOR (14 transistores) mais
"cara" que a implementao de uma porta XNOR (12 transistores). Evidentemente, para
portas lgicas com mltplas entradas (mais de duas entradas) estes valores so diferentes. A
figura 2.16 mostra portas lgicas com mltiplas entradas.

A
B
C

A+B+C

A.B.C

A
B
C

2,8

1,8

A
B
C
D

(A.B.C)

A
B
C

2,8

A
B
C
D

A+B+C+D
3,2
10

A
B
C

A
B
C
D

A.B.C.D
3,2
10

A+B+C
2,8

A
B
C
D

(A.B.C.D)
2,2
8

A+B+C+D
3,2
10

Figura 2.16 - Portas lgicas com mltiplas entradas

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-33

Obviamente, portas lgicas com mltiplas entradas so mais difceis de contruir e


como no so muito utilizadas, o custo da manuteno de bibliotecas contendo tais portas e
das ferramentas de projeto tende a ser maior que a utilidade destas portas. Por isso, em geral,
se tem somente portas de trs e quatro entradas em bibliotecas de portas lgicas.
Quando se est implementando funes booleanas usando estas portas lgicas,
usualmente tenta-se encontrar uma expresso booleana que melhor satisfaa um conjunto de
requisitos de projeto. Geralmente, estes requisitos envolvem restries de custo, que pode ser
dado em termos de nmero de transistores e/ou atraso dos sinais ao longo do circuito.
Muitas vezes se est interessado em obter o circuito mais rpido, ou seja, o que tenha o
menor atraso a partir das entradas para a sada, mas tambm existem casos em que se deseja o
circuito mais barato, ou seja, com o menor nmero de transistores. Por sua natureza, estes dois
objetivos so conflitantes, pois um circuito rpido avalia subexpresses em paralelo, o que vai
exigir mais portas do que um circuito de baixo, em que subexpresses so fatoradas e
executadas serialmente.

2.11 Mapeamento
No projeto de circuitos, tem-se frequentemente o seguinte problema: dada uma funo
booleana (mnima ou no), deve-se projetar um circuito lgico usando somente alguns poucos
tipos de portas que esto disponveis. Esta ao de adaptar-se a lgica de uma funo ao
conjunto de portas que est disponvel denominada mapeamento tecnolgico (ou
simplesmente mapeamento) da funo. O conjunto de portas disponvel denominado
biblioteca de portas, e depende de vrios fatores, dentre os quais, da tecnologia em que o
circuito ser implementado.
Assim, o problema de mapeamento pode ser formulado da seguinte maneira: dada uma
funo booleana simplificada, em SdP ou em PdS, ou dado um circuito para essa funo, e
dada uma biblioteca de portas, mapear a funo usando somente as portas (tipos de portas)
que existem na biblioteca.
Este processo envolve vrias tarefas. Primeiro ser mostrado como converter uma
funo ou circuito lgico envolvendo portas E, OU e complemento em uma funo ou circuito
lgico contendo apenas portas NAND (ou somente portas NOR). Esta tarefa consiste de duas
partes: converso e otimizao. Durante a converso, cada porta E e porta OU substituda
por uma porta NAND ou NOR equivalente, enquanto que durante a otimizao, so
eliminados quaisquer dois inversores, um seguido do outro, que possam ter surgido durante a
converso.
As regras para a tarefa de converso so baseadas nos Teoremas de De Morgan, como
mostrado a seguir:
Regra 1: xy = ((xy )' )'
Regra 2: x + y = (( x + y )' )' = ( x ' y ' )'
Regra 3: xy = (( xy )' )' = ( x '+ y ' )'
Regra 4: x + y = (( x + y )' )'
Regra 5: ( x ' )' = x
As regras 1 e 2 so usadas para a converso para portas NAND, enquanto as regras 3 e
4 so usadas para a converso para portas NOR.. A regra 5 usada para a otimizao do

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-34

circuito e permite eliminar quaisquer dois inversores que aparecem um seguido do outro no
circuito. A figura 2.17 ilustra graficamente as regras dadas acima.
Regra 1:

Regra 2:

Regra 3:

Regra 4:

Regra 5:

Figura 2.17 - Regras de converso


Exemplo 2.11: encontrar uma implementao usando apenas portas NAND e outra
implementao usando apenas portas NOR para a funo de carry
ci +1 = xi yi + xi ci + y i ci ou ci +1 = ( xi + y i )( xi + ci )( y i + ci ) .
xi

xi
2,4

yi

1,4

ci

1,4

yi
ci

2,4

2,8

c(i+1)

1,4

2,4

Soma de Produtos

Implementao com portas NAND


xi

xi

yi

2,4
yi
ci

c(i+1)
1,8

1,4

c(i+1)
2,4

2,4

Produto de Somas

2,8

ci

1,4

c(i+1)
1,8

1,4

Implementao com portas NOR

Figura 2.18 soma de produtos e produto de somas com portas NAND e portas NOR,
respectivamente.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-35

2.12 Comportamento Dinmico de Circuitos Combinacionais


At o presente, analisamos somente o comportamento esttico dos circuitos
combinacionais. Ou seja, dada uma combinao de valores aplicados s entradas do circuito
h um tempo suficientemente longo, determinamos os valores de suas sadas. Entretanto,
durante o funcionamento normal e um circuito, as entradas podem estar mudando com uma
determinada freqncia, como conseqncia da aplicao sucessiva de diferentes conjuntos de
dados. Ento, desde que o circuito tenha sido projetado para funcionar nesta freqncia, os
valores das sadas tambm mudaro (com a mesma freqncia, na pior das hipteses), como
conseqncia das mudanas das entradas.
A partir de agora, estaremos assumindo que uma varivel Booleana pode se alterar ao
longo do tempo, porm sempre assumindo um valor no intervalo [0;1]. Assim, a
representao grfica de uma varivel Booleana ao longo de um intervalo de tempo
denominada forma de onda da varivel. A figura 3.13 mostra um exemplo de forma de onda
qualquer. Repare que uma forma de onda pode ser imaginada sobre o plano cartesiano, onde o
eixo dos x representa o tempo (crescente da esquerda para a direita) e o eixo dos y representa
o valor lgico da varivel (sempre dentro do intervalo [0;1]).
A

tempo

Figura 2.19 - exemplo de forma de onda.


Quando uma varivel Booleana se modifica ao longo do tempo, ela costuma ser
chamada de sinal. Portanto, na anlise temporal (tambm conhecida como anlise de timing)
de um circuito, pode-se associar um sinal a cada entrada do circuito e a cada sada de cada
porta do circuito (o conjunto de entradas e de sadas de portas de um circuito chamado ns
ou nodos do circuito.) Normalmente, os sinais referentes s entradas de um circuito so
dados.
As portas lgicas so fabricadas com material semicondutor (silcio). Apesar das
reduzidas dimenses que a tecnologia atual permite que sejam alcanadas, as portas lgicas
no conseguem responder de maneira instantnea s variaes em suas entradas. Ao tempo
que decorre entre alguma das entradas de uma porta se modificar e essa modificao se
propagar at a sada, d-se o nome de atraso (da porta lgica). O atraso de uma porta P
normalmente representado por td(P) ou tdP ou tp(P) ou ainda tpP. importante ressaltar que
cada porta lgica pode apresentar um atraso diferente, mesmo em se tratando de portas de
mesma funo e mesmo nmero de entradas. O valor do atraso de uma porta depende de
vrios fatores, dentre eles a tecnologia de fabricao, as dimenses dos transistores que a
compem, a temperatura do local de operao etc.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-36

Exemplo 2.11: determinar o sinal de sada S da porta que segue, a partir dos sinais A e
B aplicados s suas entradas.

A
B
S

Figura 2.20 - exemplo de determinao da forma de onda da sada de uma porta.

Na anlise temporal de um circuito combinacional, prudente seguirem-se os


seguintes passos:

identificar com uma linha vertical cada mudana no valor (=transio) dos sinais
das entradas. Note que as formas de onda das entradas sempre so fornecidas,
fazendo parte dos dados do problema.

Para cada intervalo de tempo delimitado por duas linhas verticais adjacentes,
identificar o sinal resultante usando a tabela verdade da porta em questo;

Considerar um pequeno intervalo de tempo aps cada transio de entrada,


referente ao atraso de propagao da porta.

Exemplo 2.11: determine as formas de onda e os atrasos envolvidos para S1, S2, S3
e S no circuito que segue, a partir das entradas fornecidas. Considere que as portas 1 e 2 tm o
mesmo valor para o atraso individual. Identifique o atraso total do circuito, indicando as
parcelas que o compem.

Introduo aos Sistemas Digitais (v.2001/1)

A
B

C
D

A
B
C
D
S1
S2
S3
S

Jos Lus Gntzel e Francisco Assis do Nascimento

S1

S2

S3

2-37

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-38

Exerccios
Exerccio 2.1 - Dada a equao abaixo (que est na forma fatorada), use as propriedades da
lgebra Booleana para encontrar a equao mnima em soma de produtos.
S = Z (X + X Y)
Exerccio 2.2 - Ache a equao em soma de mintermos e a equao em produto de
maxtermos para as funes F1 e F2 descritas pela tabela verdade abaixo e
desenhe os respectivos circuitos lgicos
A B C

F1

F2

0
0
0
0

0
0
1
1

0
1
0
1

1
0
0
1

0
1
0
1

1
1
1
1

0
0
1
1

0
1
0
1

1
1
0
0

0
0
0
1

Exerccio 2.3 - Reescreva as equaes do exerccio 2, usando a notao compacta.


Exerccio 2.4 - determinar a expresso mnima em soma de produtos e a expresso mnima
em produto de somas para a funo Booleana dada a seguir. Desenhar o
circuito lgico para cada expresso obtida.
S4(x0 , x1 , x2 , x3 ) = (1,3,5,7,8,9,11,13)
Cobertura para soma de produtos:
x3
S4
x2x3
x0x1

00

01

11

10

00
01

x1

11
x0

10

x2

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-39

Cobertura para produto de Somas:

x3
S4
x2x3
x0x1

00

01

11

10

00
01

x1

11
x0

10

x2

Exemplo 2.11:. dada a funo que segue, determinar as equaes mnimas em SdP (soma de
produtos) e em PdS (produto de somas) para a funo dada. Desenhar os
respectivos circuitos lgicos e identificar, o circuito de menor complexidade
(entre SdP e PdS).
S7(A,B,C,D) = (4,6,8,9,12,13,14) + DC(0,2,5,10)
Observao: neste caso, h duas coberturas mnimas para SdP. Determine cada uma nos dois
primeiros mapas.
Cobertura 1 para soma de produtos:
D
S7
CD
AB

00

01

11

10

00
01

11
A
10

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

Cobertura 2 para soma de produtos:

D
S7
CD
AB

00

01

11

10

00
01

11
A
10

Cobertura 1 para produto de somas:

D
S7
CD
AB

00

01

11

10

00
01

11
A
10

2-40

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

2-41

Bibliografia Suplementar
[1] GAJSKI, Daniel D. Principles of Digital Design, New Jersey: Prentice Hall, 1997 (ISBN
0-13-301144-5)
[2] MANO, M. Morris; Computer Engineering: Hardware Design. New Jersey: Prentice
Hall, 1988 (ISBN 0-13-162926-3)
[3] TAUB, H. Circuitos Digitais e Microprocessadores. McGraw-Hill, 1982.
[4] BROWN, Stephen; VRANESIC, Zvonko. Fundamentals of Digital Logic with VHDL
Design, McGraw-Hill Higher Education (a McGraw-Hill Company), 2000 (ISBN texto:
0-07-012591-0 CD parte da coleo: 0-07-235596-4)
[5] ERCEGOVAC, Milos; LANG, Toms; MORENO, Jaime H. Introduo aos Sistemas
Digitais. Porto Alegre: Bookman, 2000 (ISBN: 85-7307-698-4)
[6] KATZ, Randy H. Contemporary Logic Design. The Benjamin/Cummings Publishing
Company, Inc. , 1994 (ISBN: 0-8053-2703-7)

3 Circuitos Combinacionais
Os circuitos lgicos dos sistemas digitais podem ser de dois tipos: circuitos
combinacionais ou circuitos seqenciais.
Um circuito combinacional constitudo por um conjunto de portas lgicas as quais
determinam os valores das sadas diretamente a partir dos valores atuais das entradas. Pode-se
dizer que um circuito combinacional realiza uma operao de processamento de informao a
qual pode ser especificada por meio de um conjunto de equaes Booleanas. No caso, cada
combinao de valores de entrada pode ser vista como uma informao diferente e cada
conjunto de valores de sada representa o resultado da operao. A figura 3.1 mostra o
diagrama de blocos genrico de um circuito combinacional.

n entradas

circuito
combinacional

m sadas
(m equaes B ooleanas)

Figura 3.1 - Diagrama genrico de um circuito combinacional.


Um circuito seqencial, por sua vez, emprega elementos de armazenamento
denominados latches e flip-flops, alm de portas lgicas. Os valores das sadas do circuito
dependem dos valores das entradas e dos estados dos latches ou flip-flops utilizados. Como os
estados dos latches e flip-flops funo dos valores anteriores das entradas, diz-se que as
sadas de um circuito seqencial dependem dos valores das entradas e do histrico do prprio
circuito. Logo, o comportamento de um circuito seqencial especificado pela seqncia
temporal das entradas e de seus estados internos. A figura 3.2 esboa um diagrama de blocos
genrico para circuitos seqenciais conhecido como modelo de Mealy. Circuitos seqenciais
sero objeto de estudo do prximo captulo.

3.1 Procedimento para a Anlise de um Circuito Combinacional


O objetivo da anlise de um circuito combinacional determinar seu comportamento.
Ento, dado o diagrama de um circuito, deseja-se encontrar as equaes que descrevem suas
sadas. Uma vez encontradas tais equaes, pode-se obter a tabela verdade, caso esta seja
necessria. importante certificar-se que o circuito combinacional e no seqencial. Um
modo prtico verificar se existe algum caminho (ou ligao) entre sada e entrada do
circuito. Caso no exista, o circuito combinacional.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

3-2

sadas

en tra das

ci rcui to
combin acio nal

elementos de
mem ria

va rive is do
e stadoatua
va ri ve is de

relgio

p r ximo es tado

(clock )

Figura 3.2 - Diagrama genrico de um circuito seqencial segundo o modelo de Mealy.


O procedimento bsico para se determinarem as equaes que descrevem as sadas de
um circuito combinacional o seguinte:
1. dar um nome para as variveis associadas a cada sada de cada porta do circuito,
exceto aquelas sadas que j possuem nome (como por exemplo, as sadas do
circuito);
2. a partir da esquerda, e seguindo a ordem de precedncia determinada pelas
ligaes, determinar as equaes associadas a cada varivel, at que as equaes de
todas as sadas tenham sido encontradas.
Uma vez determinadas as equaes das sadas, a montagem da tabela verdade ser
direta, havendo uma coluna para cada sada.
Exemplo 3.1: determinar as equaes das sadas F1 e F2 do circuito que segue.
Vamos chamar as variveis associadas s sadas das portas de T1, T2, T3 etc. H
somente duas portas cujas sadas j tem nome, que so justamente as sadas do circuito: F1 e
F2. Listando as equaes para essas variveis, segue:
T1=
T2=
T3=
T4=
F2=
T5=
T6=
F1=

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

3-3

A
T1

T5

T2

C
F1
T3

T4
T6

F2
D

3.2 Procedimento para o Projeto de um Circuito Combinacional


O projeto de um circuito combinacional inicia na especificao do problema e culmina
no diagrama do circuito (ou no conjunto de equaes que o descrevem). Um procedimento
genrico para o projeto envolve os seguintes passos:
1. escolher um smbolo para cada varivel de entrada e para cada varivel de sada;
2. a partir da especificao do problema, determinar a tabela verdade (caso ela j no
faa parte da especificao do problema);
3. obter as equaes simplificadas;
4. mapear o circuito para a biblioteca de portas disponvel (se for o caso);
5. desenhar o circuito final
Exemplo 3.1: projetar um circuito que recebe um inteiro binrio de 3 bits e determina se este
nmero menor ou igual a 3. Usar somente portas NAND de duas entradas e inversores.
Chamemos a funo que representa a sada do circuito de menor. Denominando de
A2A1A0 aos 3 bits que compem o nmero, podemos montar o mapa de Karnaugh para essa
funo. Os valores para os menor deve valer 1 so A2A1A0={(0,0,0);(0,0,1);(0,1,0);(0,1,1)}.
Para os demais combinaes de entradas, menor dever ser igual a 0.
menor
A1A0
A2
0
1

00

01

11

10

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

Equao em soma de produtos, simplificada.


menor=
Circuito para a equao em soma de produtos, simplificada:

Circuito mapeado para portas NAND de duas entradas e inversores.

3-4

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

3-5

3.3 Circuitos Combinacionais de Interconexo


Os circuitos combinacionais so os responsveis pelas operaes lgicas e aritmticas
dentro dentro de um sistema digital (vale lembrar que um computador um sistema digital).
Alm das operaes lgicas e aritmticas como adio, subtrao complementao, existem
ainda outras funes necessrias para a realizao de conexes entre os diversos operadores.
Dentre essas funes esto a multiplexao e a decodificao. Os elementos que realizam
essas ltimas operaes so denominados multiplexadores e decodificadores,
respectivamente, e so tambm circuitos combinacionais. A seguir, veremos como tais
circuitos so constitudos.

3.3.1 Decodificadores
Um decodificador um circuito combinacional usado para ativar ou habilitar um (e
somente um) dentre m componentes. assumido que cada componente possui um ndice
entre 0 e m-1, representado por um endereo em binrio.
Um decodificador n : m (l-se n por m ) possui n entradas e m sadas, com m 2n.
No caso de um decodificador 3:8, sero 8 sadas, onde cada sada pode ser encarada
como um endereo diferente. Para ativar uma dentre 8 sadas so necessrias 3 variveis de
entrada (da 3:8). Cada combinao das variveis de entrada seleciona um e somente uma
dentre as 8 sadas, de modo que cada sada somente ser selecionada por uma das 8
combinaes. Desta forma, natural que se associe a cada sada um ndice decimal que
represente a combinao de entradas responsvel pela sua ativao. Assumindo-se ativao
em lgica direta, isto , que uma sada est ativada se ela vale 1, ento a tabela verdade para
um decodificador 3:8 ser:

endereo

Entradas
(sinais de controle)

sadas

A2

A1

A0

D0

D1

D2

D3

D4

D5

D6

D7

Note que cada sada s vale 1 para uma determinada combinao das variveis de
entrada. Alm disso, cada combinao de entrada s ativa uma dentre todas as 8 sadas.
O circuito de um decodificador 3:8 ter, portanto, 8 sadas, sendo cada sada um dentre
os 8 mintermos possveis para uma funo Booleana de 3 variveis. A figura 3.3a mostra o

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

3-6

smbolo para o decodificador 3:8, enquanto a figura 3.3b mostra um circuito possvel para o
mesmo decodificador, utilizando portas E de 3 entradas e inversores.
A2

A1

A0

D0

D1

D2

D0
D1
D2

A0
A1

D3

DE C 3x8

D3

D4

A2

D5
D6
D7

D4

(a)
D5

D6

D7

(b)
Figura 3.3- Smbolo (a) e diagrama (b) de um decodificador 3:8.
Um decodificador pode possuir uma entrada de habilitao (enable, em ingls). Esta
entrada tem a funo de habilitar ou desabilitar seu funcionamento. Assim, se esta entrada
valer 0, nenhuma sada estar ativada, independente dos valores das demais entradas. Por
outro lado, se a entrada de habilitao valer 1, o decodificador estar ativando uma das sadas.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

3-7

Neste exemplo, foi considerado que a habilitao do decodificador se d com lgica direta,
isto , quando a entrada de habilitao valer 1. A lgica de habilitao poderia ser negada, ou
seja, habilita se a entrada de habilitao valer 0 e no habilita, caso contrrio.
A tabela verdade de um decodificador 2:4 com ativao e habilitao em lgica direta
a seguinte:

endereo

sadas
desabilitadas

entradas
(sinais de controle)

sadas

A1

A0

D0

D1

D2

D3

Como pode-se verificar, nas primeiras 4 linhas o sinal de habilitao (E) vale zero, o
que desativa as sadas, independentemente dos valores das demais entradas (A1 e A0). Desta
forma, podemos re-escrever esta tabela de maneira mais compacta, indicando numa nica
linha que, quando E=0, os valores das entradas A1 e A0 no interessam (=dont cares de
entrada):

endereo
sadas
desabilitadas

entradas
(sinais de controle)

sadas

A1

A0

D0

D1

D2

D3

A figura 3.4a mostra o smbolo para esse decodificador e a figura 3.4b mostra uma
possvel implementao (circuito lgico).

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

3-8

A0
D0

A1

D1

D0
A0

D1

DE C 2x4

A1

D2

D2

D3

D3
E
E

(a)

(b)

Figura 3.4: smbolo (a) e diagrama (b) de um decodificador 2x4 com entrada de habilitao.

3.3.2 Seletores
Um seletor (tambm conhecido como multiplexador) um circuito combinacional
usado para selecionar uma dentre um conjunto de m fontes de informao disponveis. Um
seletor que possui n entradas para realizar a seleo capaz de selecionar uma dentre 2n
entradas. Logo, m deve ser menor ou igual a 2n.
Dado o conjunto de entradas A0, A1, A2 e A3, e as variveis de seleo S0 e S1, a tabela
verdade para um seletor 4-1 ser:

endereo

variveis de
seleo

sada

S1

S0

A0

A1

A2

A3

Pela tabela verdade acima percebe-se que a sada Y pode ser implementada por um
circuito em soma de produtos, onde em cada produto estaro presentes as variveis S0 e S1 e
uma dentre as variveis de entrada A0, A1, A2 e A3:
Y = S0 S1 A0 + S0 S1 A1 + S0 S1 A 2 + S0 S1 A 3

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

3-9

A figura 3.5a mostra o smbolo para tal seletor e a figura 3.5b mostra um possvel
circuito em soma de produtos.
A0

A1
A0
A1

Y
Y

MUX 4 -1

A2

A2
A3

A3

A1 A

A1

(a)

A0

(b)

Figura 3.5 - Smbolo (a) e diagrama (b) de um seletor 4-1.

3.4 Circuitos Aritmticos


Um circuito combinacional aritmtico implementa operaes aritmticas como adio,
subtrao, multiplicao e diviso com nmeros binrios. A operao aritmtica mais simples
a adio de dois dgitos binrios, que consiste de quatro possveis operaes elementares:
0+0=0, 0+1=1, 1+0=1 e 1+1=10. As trs primeiras operaes produzem um dgito de soma.
Entretanto, quando ambos os operandos so iguais a 1, so necessrios dois dgitos para
expressar seu resultado. Neste caso, o transporte (vai-um ou carry, em ingls) somado ao
prximo par mais significativo de bits. Um circuito combinacional que implementa a adio
de dois bits chamado meio-somador (half adder, em ingls). Um circuito que implementa a
adio de trs bits (dois bits significativos e um carry) chamado de somador completo (full
adder, em ingls). Estes nomes decorrem do fato de que com dois meio-somadores pode-se
implementar um somador completo. O somador completo um circuito aritmtico bsico a
partir do qual todos os outros circuitos aritmticos so construdos.

3.4.1 Meio somador (half adder) e somador completo (full adder)


A operao aritmtica mais simples a adio de dois dgitos binrios (bits), a qual
pode ser vista como a adio de dois nmeros binrios de um bit cada. Considerando-se todas
as 4 combinaes de valores que podem ocorrer, os resultados possveis dessa adio so:
0+0=0
0+1=1
1+0=1
1 + 1 = 10

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

3-10

Repare que no ltimo caso acima, o resultado da adio o valor 2, que em binrio
necessita de dois dgitos para ser representado (10). Ora, um circuito aritmtico para realizar a
adio de dois bits deve operar corretamente para qualquer combinao de valores de entrada.
Isso significa que o circuito para a adio de dois bits deve possuir duas entradas e duas
sadas, conforme ilustrado na figura 3.6.
A

meio so mador
(HAD)

Cout

Figura 3.6 - Esquema das entradas e sadas de um meio somador (half adder ou HAD).
Denomina-se meia-soma a operao de adio de dois bits. O circuito mostrado na
figura 3.6 denominado meio somador (half adder, em ingls). As duas entradas, A e B,
representam os dois bits a serem adicionados. A sada S representa o dgito menos
significativo do resultado, enquanto que a sada Cout representa o dgito mais significativo do
resultado, o qual tambm conhecido por transporte de sada (carry out, em ingls), uma
vez que ele assume valor 1 somente quando o resultado da soma de A e B no pode ser
representado num nico dgito.
A fim de se projetar o circuito do meio somador, devemos montar uma tabela verdade
para as sadas S e Cout utilizando-se os valores que resultam da adio de dois dgitos
binrios, como segue:
A

Cout

Note que a sada S nada mais do que o XOR entre A e B ( S = A.B + A. B = A B).
J a sada Cout o E entre A e B ( Cout = A B). Ento, um circuito para o meio somador usa
apenas uma porta XOR de duas entradas e uma porta E de duas entradas, conforme mostrado
na figura 3.7.

A
S
B

Cout

Figura 3.7 - Circuito para o meio somador (half adder ou HAD).

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

3-11

Entretanto, quando ao somarmos dois nmeros binrios que possuem mais de um


dgito cada ocorrer transporte diferente de zero para a soma de um par de dgitos
intermedirios, a soma do par seguinte dever considerar esse transporte proveniente do par
anterior, conforme ilustra o exemplo a seguir (figura 3.8).

resultado

transporte

Figura 3.8 - Exemplo de adio de dois nmeros binrios com mais de um dgito.
O exemplo mostrado na figura 3.8 ilustra bem o fato de, para cada posio exceto a
menos significativa, o resultado obtido mediante a adio de trs bits: um pertencente ao
nmero A, um pertencente ao nmero B e um terceiro que o transporte proveniente do
resultado da adio entre os bits da posio anterior.
O circuito capaz de realizar a soma de trs bits (A, B e Cin), gerando o resultado em
dois bits (S e Cout) denominado somador completo (full adder, em ingls). Apesar da
entrada Cin normalmente receber o transporte proveniente da soma imediantamente anterior
(carry in, em ingls), a rigor as trs entradas so absolutamente equivalentes sob o ponto de
vista funcional. A tabela verdade para a soma completa mostrada a seguir, juntamente com o
mapa de Karnaugh e as equaes mnimas resultantes para S e Cout. A figura 3.9 mostra um
circuito para o somador completo.

Cin

Cout

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

3-12

S
BCin

00

01

11

10

Conforme pode-se ver pelo mapa de Karnaugh acima, a expresso mnima em soma de
produtos para S contm todos os mintermos da funo:
S = A B Cin + A B Cin + A B Cin + A B Cin
O circuito que implementa a sada S do somador completo pode ser derivado a partir
da equao em soma de produtos acima. No entanto, pode-se ainda manipular tal equao
conforme segue:
S = A (B Cin + B Cin ) + A (B Cin + B Cin) = A (B Cin ) + A (B Cin ) = A B Cin
Logo, o circuito para a sada S do somador completo pode tambm ser representado
com duas portas XOR, conforme mostra a figura 3.9.
Cout
BCin

00

01

11

10

A sada Cout tem como expresso mnima em soma de produtos:

Cout = A B + A Cin + B Cin

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

3-13

A
S

B
Cin

Cout

Figura 3.9 - Circuito para o somador completo (full adder ou FAD).

3.4.2 O somador paralelo tipo ripple carry


Utilizando-se n somadores completos, pode-se realizar um somador capaz de operar
dois nmeros binrios de n bits. Particularmente, o dgito de ordem i do resultado, Si, ser
obtido pela adio de Ai, Bi e Ci, onde Ci o transporte proveniente do dgito anterior. O
somador de ndice i recebe como entradas Ai, Bi e Ci, gerando a soma Si e o valor de
transporte Ci+1, o qual ser entrada para o somador completo do dgito seguinte (i+1). A figura
3.10 mostra uma representao de bloco possvel para o somador completo da figura 3.9. A
figura 3.11 mostra um circuito somador paralelo para nmeros binrios com 4 bits.
B

Cout

FAD

Cin

Figura 3.10 - Representao de bloco para o somador completo (full adder ou FAD).

Introduo aos Sistemas Digitais (v.2001/1)

B3

C4

B2

A3

FAD3

Jos Lus Gntzel e Francisco Assis do Nascimento

C3

S3

B1

A2

FAD2

C2

FAD1

S2

B0

A1

S1

C1

3-14

A0

FAD0

C0

S0

Figura 3.11- Somador paralelo de 4 bits.


Repare que o somador completo de ndice zero, FAD0, tambm possui uma entrada
Cin, aqui denominada C0. Como a priori no existe um valor de transporte a ser somado aos
dgitos menos significativos, A0 e B0, esta entrada dever estar constantemente ligada a zero.
J a sada de transporte Cout do dgito mais significativo, C4 no caso do somador de 4 bits,
serve para indicar se o resultado da adio entre A e B pode ser representado em 4 bits. Caso
o resultado no pode ser representado em 4 bits, C4 ir exibir o valor 1.
Repare tambm que, uma vez que um novo par de valores A e B fornecido ao
circuito somador, as ltimas 2 sadas que se estabilizam so S3 e C4 , uma vez que estas
dependem de C3, que por sua vez depende da estabilizao de C2 e assim por diante. Desta
forma, pode-se aproximar o atraso deste somador como sendo proporcional ao nmero de
estgios (=nmero de somadores completos cascateados). Com efeito, a propagao do
transporte ou carry ao longo da cadeia de somadores o ponto fraco deste tipo de somador.
Existem outros tipos de somadores capazes de operar mais rapidamente, mas que por razes
de tempo no sero estudados nesta disciplina.
A construo de um somador para operar dois nmeros binrios de n bits requer o uso
de n somadores completos, conectados segundo a mesma topologia mostrada na figura 3.11.
importante ressaltar que tal somador pode operar dois nmeros inteiros quaisquer,
positivos ou negativos, desde que ambos estejam representados em complemento de 2.

3.4.3 O somador/subtrator
A subtrao de dois nmeros inteiros em binrio pode ser feita utilizando-se a seguinte
frmula:
A B = A + B +1
onde todas as operaes so aritmticas, exceto B , que representa a complementao de B,
bit a bit.
A figura 3.12 mostra um circuito somador/subtrator de 4 bits. Esse circuito originado
do somador paralelo de 4 bits, porm com a adio de portas xor nas entradas associadas a B,
de modo a permitir a negao individual de cada bit de B. A tabela que segue mostra o
funcionamento deste circuito, em funo dos sinais de controle sel1 e sel2. Note que sel1
coincide com C0.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

3-15

A exemplo do que ocorre com o somador paralelo apresentado na seo anterior,


tambm o somador/subtrator pode operar dois nmeros inteiros quaisquer, positivos ou
negativos, desde que tais nmeros estejam representados em complemento de dois. Caso os
dois nmeros a serem operados estivessem representados em sinal-magnitude, por exemplo,
seria necessrio existir um circuito para testar o sinal de cada nmero e comparar as
magnitudes, para s ento realizar a soma ou a subtrao. Como isso representaria a
necessidade de um hardware mais complexo, e possivelmente mais caro e mais lento, a
representao em complemento de dois dominantemente utilizada nos computadores atuais.
A3

B3

B2

B1

A2

B0

A1

A0
sel2

C4

C3

FAD3

S3

FAD2

S2

C2

FAD1

C1

S1

FAD0

sel1

S0

Figura 3.12 - Somador/subtrator de 4 bits.


Operaes possveis para o somador/subtrator da figura 3.12.

sel2

sel1

operao

descrio

S= A+B +0

adiciona A e B ( S = A + B )

S = A + B +1

adiciona A e B incrementado
( S = A + B + 1)

S= A+ B +0

subtrai B decrementado de A
( S = A B -1)

S = A + B +1

subtrai B de A ( S = A - B)

3.4.4 O multiplicador
A multiplicao de nmeros binrios realizada da mesma maneira como a de
nmeros decimais. O multiplicando multiplicado por cada bit do multiplicador, comeando
do bit menos significativo. Cada uma destas multiplicaes formam um produto parcial. Os
sucessivos produtos parciais so deslocados uma posio para a esquerda. O produto final
obtido a partir da soma dos produtos parciais.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

3-16

Para entender como um multiplicador binrio pode ser implementado com um circuito
combinacional, considere a multiplicao de dois nmeros de dois bits mostrada na figura
abaixo:
B1
A1

B0
A0

A0 B 1
A1 B 0
M1

A0 B0
M0

C3

multiplicando
multiplicador
transportes

C2

+
A1 B 1
M2

M3
A0

resultado

B1

A1

B1

B0

B0

C2

C3
Co

M3

HAD

M2

Co

HAD

M1

M0

Figura 3.13 - Multiplicador de 2 bits.


Os bits do multiplicando so B1 e B0, os bits do multiplicador so A1 e A0 e o produto
M3M2M1M0. O primeiro produto parcial formado pela multiplicao de B1B0 por A0. A
multiplicao de dois bits, tais como A0 e B0, produz um 1 se ambos os bits so 1, do
contrrio ela produz um 0. Isto idntico operao E. Assim, o produto parcial pode ser
implementado com portas E como mostrado no circuito da figura 3.13. O segundo produto
parcial formado pela multiplicao de B1B0 por A1 e deslocado uma posio para a
esquerda. Os dois produtos parciais so somados com dois circuitos meio-somadores.
Usualmente tem-se mais bits nos produtos parciais, fazendo-se necessrio o uso de somadores
completos para produzir a soma dos produtos parciais.
Um circuito multiplicador binrio combinacional com mais bits pode ser construdo de
maneira semelhante. Um bit do multiplicador operado por um E com cada bit do
multiplicando em tantos nveis quanto existam bits no multiplicador. A sada binria em cada
nvel de portas E somada em paralelo com o produto parcial do nvel anterior para formar
um novo produto parcial. O ltimo nvel produz o resultado. Para j bits no multiplicador e k

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

3-17

bits no multiplicando, sero necessrios jk portas E e (j-1) somadores de k bits para gerar um
produto de j+k bits.

Exerccios

Exerccio 3.1 - Projetar um decodificador 3:8 com ativao em lgica negada (isto , para
cada sada Di, se Di=0, Di est ativada, se Di=1, a Di est desativada).
Exerccio 3.2 - Projetar um decodificador 2:4 com entrada de habilitao. Tanto a habilitao
como a ativao das sadas deve se dar em lgica negada.
Exerccio 3.3 - Reprojete o decodificador do exerccio anterior utilizando somente portas
NAND de 2 entradas.
Exerccio 3.4 - Projete um decodificador 3:8 utilizando um inversor e 2 decodificadores 2:4
com entrada de habilitao.
Exerccio 3.5 - Projetar um seletor 8-1 a partir de seletor 4-1.
Exerccio 3.6 - Projetar um seletor 4-1, onde cada entrada composta por um conjunto de 2
bits. Usar o smbolo para representar cada seletor 4-1, ao invs de desenhar o
circuito detalhado.
Exerccio 3.7 - Desenhe o circuito lgico de um multiplicador de quatro bits.

Bibliografia Suplementar
[1] GAJSKI, Daniel D. Principles of Digital Design, New Jersey: Prentice Hall, 1997 (ISBN
0-13-301144-5)
[2] MANO, M. Morris; Computer Engineering: Hardware Design. New Jersey: Prentice
Hall, 1988 (ISBN 0-13-162926-3)

4 Circuitos Seqenciais
Conforme j citado no captulo 3, os circuitos lgicos dos sistemas digitais podem ser
de dois tipos: circuitos combinacionais ou circuitos seqenciais. Um circuito combinacional
constitudo de um conjunto de portas lgicas, as quais determinam os valores das sadas
diretamente a partir dos valores atuais das entradas.
A figura 4.1 mostra o diagrama de blocos de um circuito seqencial. Um circuito
seqencial composto por um circuito combinacional e elementos de memria. As
entradas e as sadas do circuito seqencial esto conectadas somente ao circuito
combinacional. Os elementos de memria so circuitos capazes de armazenar informao
codificada em binrio. Algumas das sadas do circuito combinacional so entradas para os
elementos de memria, recebendo o nome de variveis do prximo estado. J as sadas dos
elementos de memria constituem parte das entradas para o circuito combinacional e recebem
o nome de variveis do estado atual. As conexes entre o circuito combinacional e os
elementos de memria configuram o que se costuma chamar lao de realimentao, pois a
sada de um bloco entrada para o outro e vice-versa.
A informao armazenada nos elementos de memria num dado instante determina o
estado em que se encontra o circuito seqencial. O circuito seqencial recebe informao
binria das entradas que, juntamente com a informao do estado atual, determinam os
valores das sadas e os valores do prximo estado (vide figura 4.1). Desta forma, fica
evidente que as sadas de um circuito seqencial dependem no apenas das entradas, mas
tambm do estado atual, armazenado nos elementos de memria. E o mesmo pode ser dito
para as variveis de prximo estado. Em funo deste comportamento seqencial, um circuito
seqencial especificado pela seqncia temporal de entradas, sadas e estados internos.

entradas

.
.
.

.
.
.

sadas

circuito
combinacional

variveis do
estado atual
.
.
.

.
.
.

elementos de
memria

.
.
.

variveis do
prximo estado


Figura 4.1 - Diagrama de blocos de um circuito seqencial.
Os circuitos seqenciais podem ser divididos em dois tipos, conforme o comportamento
temporal dos seus sinais: sncronos e assncronos.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

4-2

O comportamento de um circuito seqencial assncrono depende da ordem segundo a


qual as entradas mudam e o estado do circuito pode se alterar a qualquer tempo, como
conseqncia de uma mudana de suas entradas. Os elementos de memria utilizados nos
circuitos seqenciais assncronos apresentam uma capacidade de armazenamento que est
associada diretamente ao atraso de propagao dos circuitos que os compem. Em outras
palavras, o tempo que esses circuitos levam para propagar uma mudana de suas entradas at
suas sadas pode ser encarado como o tempo durante o qual eles retm os valores aplicados
antes da mudana, e esse fenmeno coincide com o conceito de memria, para os circuitos
digitais. Nos circuitos seqenciais assncronos, os elementos de memria so compostos por
portas lgicas que provem um atraso de propagao com valor adequado para o
funcionamento do circuito. Ento, um circuito seqencial assncrono pode ser visto como um
circuito combinacional com realimentao. O projeto de circuitos com realimentao
apresenta grandes dificuldades, uma vez que seu funcionamento correto dependente das
caractersticas temporais dos componentes (portas lgicas e fios). A principal dificuldade
provm do fato de que os componentes apresentam atrasos que no so fixos, podendo ser
diferentes mesmo para exemplares com mesma funo e de um mesmo fabricante. Desta
forma, os circuitos seqenciais assncronos tm sido evitados, sempre que possvel, em favor
do uso de circuitos seqenciais sncronos.
Um circuito seqencial sncrono utiliza um sinal especial denominado de relgio
(clock, em ingls) o qual tem a funo de cadenciar uma eventual troca de estado. A figura 4.2
mostra um exemplo de sinal de relgio. A forma de onda de um sinal de relgio dita
montona, pois no se altera ao longo do tempo. Nela podem ser identificados a borda de
subida, a borda de descida, o nvel lgico zero e o nvel lgico um. O tempo que decorre para
o sinal se repetir denominado perodo e representado por T. Por exemplo, o tempo entre
duas bordas de subida sucessivas igual a T. Da mesma forma, o tempo entre duas bordas de
descida sucessivas igual a T.
nvel alto

borda
ascendente

perodo (T)

nvel baixo

borda
descendente

Figura 4.2 - Exemplo de sinal de relgio (clock).


A freqncia de um sinal de relgio, representada por f, definida como sendo o
inverso do perodo, ou seja:
f =

1
T

(4.1)

Para medir-se o perodo, usa-se os mltiplos do segundo: ms (milissegundo = 10-3s), s


(microssegundo = 10-6s), ns (nanossegundo = 10-9s) e ps (picossegundo = 10-12s). Para medirse a freqncia, usa-se os mltiplos do hertz: kHz (quilohertz = 10+3Hz), MHz (megahertz =
10+6Hz) e GHz (gigahertz = 10+9Hz). Um hertz equivale a 1/1s (i.e., o hertz o inverso do
segundo).

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

4-3

Exemplo 4.1: um circuito digital sncrono cadenciado pelo uso de um sinal de relgio de
200 MHz. Qual o maior atraso permitido para um circuito combinacional
qualquer dentro deste circuito.
Ora, se esse circuito deve trabalhar freqncia de 200 MHz, ento, cada um de seus
blocos combinacionais deve ter um atraso inferior ao perodo do relgio, o qual pode ser
calculado por:
T=

1
= 0,005x10 6 s = 5x10 9 s = 5ns
6
200x10 Hz

Num circuito seqencial sncrono, o sinal de relgio determina quando os elementos de


memria iro amostrar os valores nas suas entradas. Conforme o tipo de circuito utilizado
como elemento de memria, esta amostragem das entradas pode ser sincronizada pela borda
ascendente ou pela borda descendente do relgio. Seja qual for o tipo de sincronizao, o
tempo que transcorre entre duas amostragens sucessivas equivale a T, o perodo do relgio.
Isto implica que, qualquer mudana no estado de um circuito seqencial sncrono ir ocorrer
somente aps a borda do sinal de relgio na qual seus elementos de memria so disparados.
A figura 4.3 mostra o diagrama de blocos de um circuito seqencial sncrono.
Os elementos de memria utilizados nos circuitos seqenciais sncronos so
denominados flip-flops. Um flip-flop um circuito digital que possui duas entradas e duas
sadas e capaz de armazenar um bit de informao. As duas entradas no so
intercambiveis: uma reservada ao sinal de controle (relgio) e a outra recebe o dado (bit) a
ser armazenado. As sadas correspondem ao dado (bit) armazenado e ao seu complemento. O
sinal de relgio determina o instante em que o flip-flop amostra o valor do dado, podendo
corresponder a uma borda de subida ou a uma borda de descida, dependendo de como o flipflop constitudo. O diagrama da figura 4.3 mostra que o valor de cada varivel de estado
armazenado num flip-flop especfico. Os valores que representam o prximo estado s so
amostrados na borda ativa do relgio. Logo, o estado atual fica armazenado no conjunto de
flip-flops at que uma nova borda do relgio chegue, quando ento o prximo estado passa a
ser o estado atual e um novo prximo estado ser gerado pelo circuito combinacional.

entradas

sadas

.
.
.

.
.
.

circuito
combinacional
.
.
.

.
.
.

.
.
.

elementos
de memria
(flip-flops)

variveis do
estado atual

variveis do
prximo estado

Figura 4.3 - Diagrama de blocos de um circuito seqencial sncrono.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

4-4

Desde que devidamente alimentado com energia, um flip-flop pode manter


indefinidamente um estado, at que os sinais de entrada assumam uma configurao tal que o
faam mudar de estado. Essa configurao depende de como o flip-flop constitudo. O
estado em que um flip-flop se encontra usualmente associado ao valor binrio que ele est
armazenando. Desta forma, num dado instante, um flip-flop estar armazenando ou o valor
lgico 1 (um) ou o valor lgico 0 (zero), pois esses so os dois valores possveis para uma
varivel Booleana.

4.1 Latches
Os vrios flip-flops existentes se diferenciam pelo nmero de entradas que possuem e
na maneira pela qual tais entradas afetam o estado em que o flip-flop se encontra. Os tipos
mais bsicos de flip-flops so denominados latches. Os latches operam por nveis dos sinais
de entrada (diz-se que so sensveis a nvel) e servem como base na construo dos flip-flops
mais sofisticados.
Apesar de serem capazes de armazenar informao binria, os latches so pouco
utilizados na construo de circuitos seqenciais sncronos por serem menos prticos do que
os flip-flops.
A seguir, sero estudados o latch RS, o latch RS controlado e o latch D.

4.1.1 O Latch RS
O latch RS o latch mais simples que existe. Ele pode ser construdo com o uso de
duas portas nor de 2 entradas cada, conectadas conforme mostra a figura 4.4. Note que h
duas entradas, chamadas R e S, e duas sadas, Q e Q . Note tambm que existe uma conexo
entre a sada Q e a outra entrada da nor n2. Existe tambm uma conexo entre a sada Q e a
outra entrada da nor n1. Conexes entre sada e entrada so denominadas realimentaes, e
no caso de circuitos digitais, so responsveis pela propriedade de armazenamento
apresentada pelo circuito.
R

n1

n2

Figura 4.4 - Latch RS com portas nor.


Conforme j citado na introduo deste captulo, circuitos que possuem algum tipo de
realimentao so ditos seqenciais, pois seu comportamento no depende somente dos
valores das entradas, mas tambm do estado em que o circuito se encontra. Assim, a anlise
do funcionamento do latch RS obedecer os seguintes passos:
Identificao de uma combinao de entradas capaz de determinar o estado do latch de
maneira independente do estado anterior (se isso for possvel)

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

4-5

Assumindo o estado determinado no passo 1 como sendo o estado inicial, aplicao de


uma nova combinao de entradas para verificar como o circuito se comporta (se muda de
estado ou no);
Repetio dos passos 1 e 2 para cada combinao de entradas capaz de determinar o
estado do circuito de maneira independente.
A partir do procedimento anterior encontrar-se- uma tabela de comportamento
denominada tabela de transio de estados (ou simplesmente, tabela de transio), a qual
caracterstica deste latch. Em particular, cada latch e cada flip-flop possui um comportamento
que pode ser expresso em termos de uma tabela de transferncia que lhe prpria.
Para o latch RS da figura 4.4, imaginemos que sejam aplicados simultaneamente os
valores 1 e 0 s entradas R e S, respectivamente, no instante de tempo t0. Ora, sabemos que o
valor 1 aplicado a qualquer uma das entradas de uma porta nor determina o valor da sada
desta porta como sendo 0, independente dos valores das demais entradas. Logo, se for
aplicado R=1 e S=0 em t0, a sada Q se estabilizar com valor 0 em t0+td(n1), onde td(n1) o
atraso da porta nor n1. Como existe uma ligao fsica (ou seja, um fio) entre Q e uma das
entradas da porta nor n2, a partir do tempo t0+td(n1) ambas entradas desta porta estaro
estabilizadas em 0. Ento, a partir do tempo t0+td(n1)+td(n2), onde td(n2) o atraso da porta
nor n2, a sada Q estar estabilizada com o valor lgico 1.
Imaginemos agora que na seqncia de operao deste latch foram aplicados os valores
R=0 e S=0 s suas entradas no instante de tempo t1, com t1>t0+td(n1)+td(n2) (ou seja, bem
depois da aplicao de R=1 e S=0). Em funo dos atrasos das portas n1 e n2, as sadas Q e
Q no se alteraro imediatamente. Logo, para efeitos de anlise, podemos considerar que a
entrada de n1 que est conectada a Q continua com o valor lgico 1 e que a entrada de n2 que
est conectada a Q continua com o valor lgico 0. Desta forma, logo aps o instante t1, n1 ter
0 e 1 em suas entradas, fazendo com que sua sada, que a sada Q do circuito, permanea no
valor lgico 0. De maneira semelhante, logo aps t1, n2 ter em suas entradas 0 e 0, fazendo
com que sua sada, que a sada Q do latch, permanea com o valor lgico 1. As formas de
onda que ilustram o resultado da aplicao sucessiva destes dois vetores de entrada
(R=1;S=0) e (R=0;S=0) no latch RS so mostradas na figura 4.5.
Suponhamos agora que a seqncia de valores aplicados s entradas do latch
(R=0;S=1) em t0 e (R=0;S=0), em t1. Ento, em t0+td(n2) a sada Q se estabilizar com o
valor lgico 0. Como existe uma ligao fsica entre a sada Q e uma das entradas da porta
nor n1, aps o instante t0+td(n2) ambas entradas de n1 estaro estabilizadas em 0. Ento, a
partir do instante t0+td(n2)+td(n1), a sada Q estar estabilizada com o valor lgico 1. Supondo
novamente que t1>t0+td(n2)+td(n1), podemos admitir que imediatamente aps t1 as sadas Q e
Q ainda se mantm com seus valores anteriores, quais sejam Q=1 e Q =0. Desta forma, n1
ter o valor lgico 0 em ambas entradas, resultando que Q se mantm em 1. De forma similar,
n2 ter em suas entradas os valores 1 e 0, resultando que Q se mantm em 0. A figura 4.6
mostra as formas de onda resultantes da aplicao do vetor de entrada (R=0;S=1) em t0,
seguido do vetor (R=0;S=0), em t1. Note que td(n1) e td(n2) podem ser valores bem diferentes.
Note ainda que em ambos casos, o atraso para a estabilizao do latch sempre ser
td(n1)+td(n2).

Introduo aos Sistemas Digitais (v.2001/1)

valor indeterminado
(=desconhecido)

Jos Lus Gntzel e Francisco Assis do Nascimento

t0

t1
td(n1)

td(n2)

4-6

nada muda
nas sadas
aps t1

R
S
Q
Q
Figura 4.5 -Formas de onda para aplicao do vetor de entrada (R=1;S=0) seguido do vetor
(R=0;S=0) no latch RS.
valor indeterminado
(=desconhecido)

t0

t1
td(n2)

td(n1)

nada muda
nas sadas
aps t1

R
S
Q
Q
Figura 4.6 -Formas de onda para aplicao do vetor de entrada (R=0;S=1) seguido do vetor
(R=0;S=0) no latch RS.
Note que para todas as situaes estudadas at aqui, os valores exibidos pelas sadas Q e
Q so sempre complementares. justamente por esse motivo que elas recebem essas
denominaes. Entretanto, se aplicarmos o vetor de entrada (R=1;S=1), ambas sadas se
estabilizaro em 1, o que conflita com o que foi colocado anteriormente. Ora, se um latch
deve ser capaz de armazenar um dentre os dois estados possveis para uma varivel Booleana
e se o estado est associado ao valor de Q e Q (Q exibe o estado e Q , o seu complemento),
ento qual seria o estado representado pela situao Q=1 e Q =1? Por no haver uma resposta
plausvel a essa pergunta, foi convencionado que esse seria um estado proibido (ou
indeterminado), de modo que a situao (R=1;S=1) deve sempre ser evitada, no caso do latch
RS.
Conforme j mencionado na introduo dessa seo, um latch, assim como um flip-flop,
pode assumir um dentre dois estados possveis. Esses estados correspondem aos valores que
uma varivel Booleana pode assumir, ou seja, 0 e 1. O estado 0 tambm chamado estado
reset e o estado 1 tambm chamado estado set.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

4-7

Analisando-se a situao mostrada pelas formas de onda da figura 4.5, conclui-se que a
aplicao do vetor (R=1;S=0) faz com que o latch v para o estado set (i.e., a sada Q
estabiliza com o valor lgico 1), independente de seu estado anterior. Se aps isso for
aplicado o vetor (R=0;S=0), o latch no muda o seu estado. Avaliando-se agora as formas de
onda da figura 4.6, conclui-se que a aplicao do vetor (R=0;S=1) faz com que o latch v para
o estado reset (i.e., a sada Q estabiliza com o valor lgico 0), independente de seu estado
anterior. Se aps isso for aplicado o vetor (R=0;S=0), o latch no muda o seu estado.
Finalmente, pode-se afirmar que a aplicao do vetor (R=0;S=0) no muda o estado em que o
latch est. Por outro lado, o vetor (R=1;S=1) deve ser evitado, pos conduzir ao estado
proibido. Essas informaes podem ser resumidas pela tabela que segue:
R
1
0
0
0
1

S
0
0
1
0
1

Q
0
0
1
1
0

1
1
0
0
0

ao
vai para estado reset
mantm estado reset (= estado anterior)
vai para estado set
mantm estado set (= estado anterior)
estado proibido

Tabela 4.1 - Resumo do funcionamento seqencial do latch RS.


A tabela anterior pode ser escrita de maneira mais compacta, de modo a incorporar a
informao da dependncia temporal.
R
0
0
1
1

S
0
1
0
1

Qt+1
Qt
1
0
-

comentrio
mantm estado anterior
estado set
estado reset
proibido

Tabela 4.2 - Tabela de transio de estados para o latch RS.


A tabela 4.2 lista os valores possveis para as entradas nas colunas mais esquerda,
admitindo que esses valores esto sendo aplicados no instante presente t. Para cada situao
de entradas, o novo valor da sada (e portanto, o novo estado do latch) para o instante
imediatamente posterior t+1 encontra-se na coluna mais direita. Como a sada Q sempre
exibe o complemento da sada Q, apenas o valor de Q listado, ficando Q subentendido.
O comportamento de circuitos seqenciais pode tambm ser expresso por meio de um
diagrama denominado diagrama de estados. Sendo o latch RS um circuito seqecial, pode-se
usar um diagrama de estados para representar seu funcionamento, conforme mostrado na
figura 4.7.
No diagrama da figura 4.7, os estados reset e set esto representados por nodos
(crculos). A transio entre estados mostrada por uma aresta (seta). A condio de entradas
segundo a qual uma determinada transio pode ocorrer est definida junto a aresta
respectiva. Por exemplo, estando o latch RS no estado reset, para que ele v para o estado set
necessrio que R=0 e S=1. Caso R=0 e S=0, o latch RS ficar no estado em que se encontra.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

4-8

R=0 S=1

(R=0 S=0)
(R=0 S=1)

(R=0 S=0)
(R=1 S=0)

reset

set

R=1 S=0

Figura 4.7 - Diagrama de estados para o latch RS.


Para evitar que se tenha que desenhar o circuito completo toda a vez que houver uma
ocorrncia do latch RS, costuma-se adotar o smbolo mostrado na figura 4.8.
R

Figura 4.8 - Smbolo do latch RS.


Exemplo 4.2: desenhar as formas de onda para as sadas do latch RS abaixo, a partir das
formas de onda fornecidas para as entradas R e S.
t1

t2

R
R

S
Q
Q

4.1.2 O Latch RS controlado


No latch RS, cujo funcionamento foi descrito na subseo 4.1.1, uma alterao das
entradas R e S pode acarretar uma troca de estado. Porm, em alguns casos pode ocorrer que
os sinais conectados s entradas R e S sofram variaes no desejadas, sendo vlidos somente
em alguns intervalos de tempo bem determinados. Nesse caso, seria interessante que houvesse
uma entrada de maior prioridade que fosse encarregada de controlar a habilitao do latch,
deixando-o sensvel ou no aos valores das entradas R e S.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

4-9

Nesse sentido, o latch RS controlado um aprimoramento do latch RS. Ele


construdo a partir do latch RS, pela colocao de um par de portas E nas entradas R e S,
conforme mostra a figura 4.9. A entrada C tem o objetivo de habilitar ou desabilitar o latch
RS: caso C=0, o latch mantm o estado, pois R1=0 e S1=0; caso C=1, o latch funciona
normalmente, segundo a tabela 4.2. A tabela de transio desse latch mostrada na tabela 4.3.
Note que se C=0, o latch mantm seu estado, independente dos valores de R e S (os X
indicam essa independncia). Repare tambm que h ainda outra situao em que o latch
mantm o estado, qual seja, quando C=1, mas R=0 e S=0.
R

R1
Q

C
Q
S1

Figura 4.9 -Latch RS controlado.


C
0
1
1
1
1

R
X
0
0
1
1

S
X
0
1
0
1

Qt+1
Qt
Qt
1
0
-

comentrio
mantm estado anterior
mantm estado anterior
estado set
estado reset
proibido

Tabela 4.3 - Tabela de transio de estados para o latch RS controlado.


O diagrama de estados para o latch RS controlado muito semelhante ao diagrama do
latch RS, conforme mostra a figura 4.10. Apenas as condies para troca ou manuteno de
estado so diferentes: no caso do latch RS controlado, as condies so compostas. Por
exemplo, para que o latch RS controlado se mantenha num mesmo estado necessrio que
C=0 ou que C=1 e R=0 e S=0.
C=1 R=0 S=1
C=0
(C=1 R=0 S=0)
(C=1 R=0 S=1)

C=0
(C=1 R=0 S=0)
(C=1 R=1 S=0)

reset

set

C=1 R=1 S=0

Figura 4.10 -Diagrama de estados para o latch RS controlado.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

4-10

A figura 4.11 mostra o smbolo do latch RS controlado.


R

C
Q

Figura 4.11 - Smbolo do latch RS controlado.


Exemplo 4.3: desenhar as formas de onda para as sadas do latch RS abaixo, a partir das
formas de onda fornecidas para as entradas C, R e S.
t1

t2

t3

t4

C
S

S
Q
Q
Q

4.1.3 O Latch D
A necessidade de evitar a ocorrncia do estado proibido um detalhe que dificulta o
projeto de circuitos seqenciais com latches RS. O latch D construdo a partir do latch RS,
de maneira tal que, pela colocao de um inversor entre as entradas S e R, fica assegurado que
nunca ocorrer a situao de entradas R=1 e S=1, responsveis pelo surgimento do estado
proibido (figura 4.12). Desta forma, a tabela de transio do latch D pode ser derivada da
tabela do latch RS controlado, onde as entradas R e S passam a ser a entrada D (com D=S).
Duas combinaes de entradas desaparecem: uma que resultava na manuteno do estado e
outra que resultava no estado proibido. A tabela de transio do latch D mostrada na tabela
4.3 e seu smbolo, na figura 4.13.
D

C
S

Q
Q

Figura 4.12: latch D.

Introduo aos Sistemas Digitais (v.2001/1)

C
0
1
1

D
X
0
1

Jos Lus Gntzel e Francisco Assis do Nascimento

Qt+1
Qt
0
1

4-11

comentrio
mantm estado anterior
estado reset
estado set

Tabela 4.4 - Tabela de transio de estados para o latch D.


D

Figura 4.13 - Smbolo do latch D.


Exemplo 4.4: desenhar as formas de onda para as sadas do latch D abaixo, a partir das
formas de onda fornecidas para as entradas.
t1

t2

t3

t4

C
D

Q
Q

4.1.4 Latches com lgica de ativao complementar


Os latches vistos at aqui apresentam lgica de ativao direta, isto , esto ativados
enquanto o controle estiver no nvel lgico 1 e desativados enquanto o controle estiver no
nvel lgico 0. possvel inverter-se essa lgica de ativao pela simples insero de um
inversor antes da entrada de controle. Assim, um latch com lgica de ativao
complementar (ou negada ou invertida) est ativado enquanto o controle vale 0 e
desativado enquanto o controle vale 1. A figura 4.14 mostra os smbolos do latch RS
controlado e do latch D, ambos com lgica de ativao complementar. Repare que a indicao
da lgica de ativao complementar feita por meio de um crculo colocado antes da entrada
de controle.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

4-12

C
S
(a)

(b)

Figura 4.14 - Smbolo do latch RS controlado (a) e do latch D (b), ambos com lgica de
ativao complementar.
As tabelas 4.5 e 4.6 mostram o funcionamento destes latches com lgica de ativao
negada. Comparando-se com as tabelas de transio dos latches correspondentes com lgica
de ativao direta, nota-se que as aes so as mesmas; apenas o que muda o nvel do sinal
de controle necessrio para ativ-los.
C
1
0
0
0
0

R
X
0
0
1
1

S
X
0
1
0
1

Qt+1
Qt
Qt
1
0
-

comentrio
mantm estado anterior
mantm estado anterior
estado set
estado reset
proibido

Tabela 4.5 - Tabela de transio de estados para o latch RS controlado com lgica de ativao
negada.
C
1
0
0

D
X
0
1

Qt+1
Qt
0
1

comentrio
mantm estado anterior
estado reset
estado set

Tabela 4.6 - Tabela de transio de estados para o latch D com lgica de ativao negada.
Exemplo 4.5: desenhar as formas de onda para as sadas do latch RS abaixo, a partir das
formas de onda fornecidas.
t1
C
R

C
S

Q
Q

t2

t3

t4

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

4-13

Exemplo 4.6: desenhar as formas de onda para as sadas do latch D abaixo, a partir das
formas de onda fornecidas.
C
D

Q
Q

4.2 Flip-flops
Conforme visto na seo anterior, os latches controlados D e RS so ativados ou
controlados pelo nvel lgico do sinal de controle. Isso significa que, enquanto o sinal de
controle estiver ativando o latch, eventuais variaes das entradas D ou R e S sero
percebidas pelo latch e este poder mudar de estado. Essa caracterstica particularmente
imprpria para a construo de circuitos seqenciais sncronos, uma vez que em tais circuitos
qualquer troca de estado deve ocorrer de maneira sincronizada com o sinal de relgio.
Os flip-flops so circuitos derivados dos latches, porm ativados pela transio do
sinal de controle (i.e., pela borda). Isso faz com que um flip-flop permanea ativado apenas
durante um intervalo de tempo muito pequeno, aps a ocorrncia de uma transio do sinal de
controle. Assim, uma eventual troca de estado s pode ocorrer durante esse breve intervalo de
tempo em que o flip-flop est ativado. Entre duas transies sucessivas do mesmo tipo (ou
subida ou descida) do sinal de controle, o flip-flop mantm o ltimo estado adquirido.
Dependendo de sua construo, um flip-flop pode ser disparado pela transio de
subida ou pela transio de descida do sinal de controle. Diz-se ento, que flip-flops so
disparados pela borda (ascendente ou descendente, conforme for o caso), enquanto que
latches so sensveis ao nvel lgico (alto ou baixo, conforme for o caso). A seguir, sero
estudados os flip-flops mais utilizados.

4.2.1 Flip-flop D mestreescravo


O flip-flop D mestre-escravo composto por dois latches D conectados em cascata,
conforme mostra a figura 4.15: o primeiro chamado de mestre e o segundo chamado de
escravo. O sinal de controle externo est conectado diretamente ao controle do latch mestre e
ao inversor cuja sada est conectada ao controle do latch escravo.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

escravo

mestre
Qm
D

4-14

Q
Q

C
Figura 4.15 - Flip-flop D mestre-escravo.
Analisando-se as conexes, possvel deduzir facilmente que os dois latches
funcionam de maneira complementar com relao ao sinal de controle externo: enquanto o
controle vale 1, o mestre est ativado e o escravo est mantendo seu estado anterior e
enquanto o controle vale 0, o mestre est mantendo seu estado anterior e o escravo est
ativado. Como a entrada do escravo est conectada sada do mestre, o ltimo valor lido
durante a ativao do mestre aparecer na sada do escravo no semiperodo seguinte. A figura
4.16 exemplifica o funcionamento do flip-flop D mestre-escravo a partir de formas de onda
arbitrrias para as entradas C e D.

D
tdM

tdM

Qm
tdE

tdE

tdM = atraso do latch mestre

tdE = atraso do latch escravo

Figura 4.16 - Exemplo do funcionamento do flip-flop D mestre-escravo.


Do ponto de vista externo, o flip-flop D mestre-escravo da figura 4.15 funciona como
se fosse disparado pela borda descendente do sinal de controle: o ltimo valor de D amostrado
pelo latch mestre antes da borda descendente fica armazenado, aparecendo na sada Q do latch
escravo logo aps a mesma borda descendente.
Exemplo 4.7: traar as formas de onda para as sadas de cada um dos latches do circuito que
segue, a partir das formas de onda fornecidas.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

Q1

Q2

Q3

dado

4-15

Q0

controle

controle
dado
Q3
Q2
Q1
Q0

4.2.2 Flip-flops disparados pela borda


Um flip-flop disparado pela borda (tambm referenciado por sensvel borda) ignora
o sinal de controle enquanto este se encontra estvel num dos dois nveis lgicos. Porm,
quando o sinal de controle passa por uma transio, o flip-flop disparado pela borda fica
ativado por um breve instante durante o qual as entradas podem (ou no) determinar a troca
de seu estado. Dependendo da maneira como construdo, o flip-flop ser disparado ou
somente pela borda ascendente ou somente pela borda descendente. A figura 4.17 mostra o
circuito de um flip-flop D disparado pela borda ascendente, feito com portas nand de duas
entradas.

R
Q
C
S

Figura 4.17 - Flip-flop D disparado pela borda ascendente.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

4-16

A tabela de transio de um flip-flop D disparado pela borda ascendente mostrada a


seguir.
C

D
X
0
1

Qt+1
Qt
0
1

comentrio
mantm estado anterior
estado reset
estado set

Tabela 4.7 - Tabela de transio de estados para o flip-flop D disparado pela borda
ascendente.
Na tabela anterior, o smbolo indica que a ativao do flip-flop instantnea e s
ocorre durante as bordas ascendentes do sinal de controle C. Por outro lado, entre duas bordas
ascendentes consecutivas do sinal de controle, o flip-flop mantm o estado anteriormente
armazenado. O smbolo do flip-flop D mostrado na figura 4.18; o tringulo colocado na
entrada de controle C indica que a ativao se d pela borda ascendente (e no pelo nvel
lgico, como ocorre no latch D).
D

Figura 4.18 - Smbolo do flip-flop D disparado pela borda ascendente.


Exemplo 4.8: traar as formas de onda para as sadas do flip-flop que segue, a partir das
formas de onda fornecidas.
C
D

Q
Q

Alm do flip-flop D existe tambm o flip-flop JK, cujo funcionamento mostrado na


tabela 4.8. Note que seu funcionamento assemelha-se ao do latch RS, exceto que a
combinao de entradas (J=1;K=1) no leva a um estado proibido, mas sim
complementao do estado anterior. Da mesma forma que o flip-flop D, esse flip-flop
ativado instantaneamente durante a passagem de uma borda ascendente do sinal de controle.
Entre duas bordas ascendentes consecutivas, o flip-flop mantm o estado anterior.

Introduo aos Sistemas Digitais (v.2001/1)

J
X
0
0
1
1

K
X
0
1
0
1

Jos Lus Gntzel e Francisco Assis do Nascimento

Qt+1
Qt
Qt
0
1
Qt

4-17

comentrio
mantm estado anterior
mantm estado anterior
estado reset
estado set
complementa estado anterior

Tabela 4.8 - Tabela de transio de estados para o flip-flop JK disparado pela borda
ascendente.
O smbolo do flip-flop JK disparado pela borda ascendente mostrado na figura 4.19.
Tambm nesse smbolo, o tringulo na entrada de controle indica que a ativao se d pela
borda ascendente.
J

C
K

Figura 4.19 - Smbolo do flip-flop JK disparado pela borda ascendente.


Exemplo 4.9: traar as formas de onda para as sadas do flip-flop JK que segue, a partir das
formas de onda fornecidas.

C
J

J
Q

C
K

K
Q
Q
Q

4.2.3 Flip-flops disparados pela borda descendente


Um flip-flop disparado pela borda descendente ativado apenas no instante em que
o sinal de controle passa pela borda descendente. Nesse instante, o flip-flop amostra os sinais
das entradas (D ou J e K), podendo mudar de estado conforme o valor destas entradas. Entre
duas bordas descendentes consecutivas, o flip-flop mantm o estado anterior. As tabelas 4.9 e
4.10 mostram o funcionamento do flip-flop D e do flip-flop JK disparados pela borda
descendente, respectivamente.

Introduo aos Sistemas Digitais (v.2001/1)

D
X
0
1

Jos Lus Gntzel e Francisco Assis do Nascimento

Qt+1
Qt
0
1

4-18

comentrio
mantm estado anterior
estado reset
estado set

Tabela 4.9 - Tabela de transio de estados para o flip-flop D disparado pela borda
descendente.
C

J
X
0
0
1
1

K
X
0
1
0
1

Qt+1
Qt
Qt
0
1
Qt

comentrio
mantm estado anterior
mantm estado anterior
estado reset
estado set
complementa estado anterior

Tabela 4.10 - Tabela de transio de estados para o flip-flop JK disparado pela borda
descendente.
A figura 4.20 mostra os smbolos do flip-flop D e do flip-flop JK disparados pela
borda descendente. Note a existncia de um crculo antes da entrada de controle, indicando
que os flip-flops so disparados pela borda descendente.
D

C
Q

(a)

(b)

Figura 4.20 - Smbolos para o flip-flop D (a) e para o flip-flop JK (b), ambos disparados pela
borda descendente.
Exemplo 4.10: traar as formas de onda para as sadas do flip-flop D que segue, a partir das
formas de onda fornecidas. (Note que o enunciado no diz se o flip-flop
disparado pela borda ascendente ou pela borda descendente, pois essa
informao faz parte da interpretao da questo!)

C
D

Q
Q

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

4-19

4.2.4 Set e Reset Assncronos


Nos circuitos seqenciais complexos, muitas vezes necessrio que se possa colocar
todos os flip-flops num estado conhecido, o qual pode ser o estado reset (Q=0) ou o estado set
(Q=1). Entretanto, todos os flip-flops de um circuito seqencial sncrono esto sujeitos ao
mesmo sinal de controle, que normalmente o sinal de relgio, de modo que qualquer
mudana de estado somente pode ocorrer aps uma borda de relgio. Alm disso, a operao
de "resetar" (i.e., fazer o flip-flop ir para o estado reset) ou "setar" (i.e., fazer o flip-flop ir
para o estado set) pode no ser banal.
A fim de permitir que seja possvel "resetar" ou "setar" um flip-flop a qualquer tempo,
os flip-flops podem ser construdos de modo a possuir um pino de "reset" assncrono e/ou um
pino de "set" assncrono. A denominao "assncrono" refere-se ao fato de que a ao deste
pino independente do sinal de controle. Tais pinos so denominados clear (ou DC reset) e
preset (ou DC set).
Ento, para um flip-flop que tenha o pino de clear (ou DC reset), enquanto este pino
estiver ativado, a sada Q do flip-flop estar estvel com o valor 0, independente dos valores
das demais entradas (incluindo a de controle). De modo similar, para um flip-flop que
tenha o pino preset (ou DC set), enquanto este pino estiver ativado, a sada Q do flip-flop
estar estvel com o valor 1, independente dos valores das demais entradas (incluindo a
de controle). Alguns flip-flops podem possuir ambos pinos (clear e preset). Porm, no tem
sentido ativar ambos simultaneamente.
A ativao dos pinos clear e preset pode se dar por meio de lgica direta (i.e., nvel
lgico 1) ou por lgica complementar (i.e., nvel lgico 0), o que possvel de ser identificado
pelo desenho do flip-flop: caso haja um crculo junto ao pino, a ativao se d com lgica
complementar; caso contrrio, a ativao se d com lgica direta.
Exemplo 4.11: traar as formas de onda para as sadas do flip-flop que segue, a partir das
formas de onda fornecidas.

CK
dado

CK

C
clear

limpa

dado
Q

limpa
Q

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

4-20

Exemplo 4.12: traar as formas de onda para as sadas do flip-flop que segue, a partir das
formas de onda fornecidas.
CK
ajusta
ajusta
J

preset
J
CK

Q
K

C
K

Q
Q
Q

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

4-21

4.3 Anlise de Circuitos Seqenciais


Circuitos seqenciais podem ser facilmente reconhecidos pelo fato de serem
constitudos de flip-flops, alm de outras portas, possivelmente. Se por um lado, os diagramas
esquemticos so suficientes para especificar perfeitamente a estrutura, o comportamento de
um circuito seqencial mais difcil de ser descrito, demandando mais recursos de
representao. Dentre os recursos normalmente empregados na descrio do comportamento
de circuitos seqenciais esto os diagramas de estados, as tabelas de transio de estados,
as tabelas de sadas (que nada mais so que tabelas verdade) e as equaes Booleanas.
Denomina-se anlise ao processo de descrever o funcionamento de um circuito a partir
da descrio de sua estrutura. Assim, dado o esquemtico de um circuito seqencial,
desejamos determinar seu comportamento, o que dever ser feito com o uso dos recursos
citados acima.
Exemplo 4.13: determinar a tabela de transio de estados, a tabela de sada e o diagrama de
estados para o circuito seqencial mostrado na figura 4.21.
cnt

D0

Q0

Q0

D1

Q1

Q1

CK

Figura 4.21 - Exemplo de circuito seqencial.


O circuito apresenta uma entrada (cnt) e uma sada (Y). Alm disso, h 2 flip-flops D,
cujo contedo representa o estado em que o circuito se encontra.
O primeiro passo na anlise determinar as equaes Booleanas para as entradas de
cada flip-flop, em funo da entrada externa cnt e das sadas dos flip-flops (Q0 e Q1). Deste
modo, as equaes so:
D0 = cnt Q0 = cnt Q0 + cnt Q0

(4.2)

D1 = cnt Q1 + cnt Q1 Q0 + cnt Q1 Q0

(4.3)

As equaes 4.2 e 4.3 so chamadas equaes de excitao, uma vez que elas
descrevem o comportamento dos sinais que so aplicados s entradas dos flip-flops, os quais
iro determinar o estado do circuito seqencial para o prximo ciclo de relgio. Aplicando as

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

4-22

equaes de excitao s equaes caractersticas dos flip-flops, obtm-se as chamadas


equaes de estado. Nesse exemplo, os flip-flops so do tipo D. Para este tipo de flip-flop,
Qt+1 = Dt (ou seja, a sada copia a entrada). Ento, as equaes de prximo estado so:
Q0t +1 = cnt Q0 t + cnt Q0t

(4.4)

Q1t +1 = cnt Q1t + cnt Q1t Q0t + cnt Q1t Q0t

(4.5)

Com relao sada, a equao que a descreve :


Y = Q0 Q1

(4.6)

Utilizando as equaes de estado, possvel montar-se a tabela de transio de estados


do circuito. Nas colunas mais esquerda dessa tabela esto os valores referentes s variveis
de entrada e ao estado atual, enquanto que nas colunas mais direita esto os valores
correspondentes ao prximo estado associado a cada combinao de entradas. O estado de um
circuito seqencial definido pelos valores binrios armazenados nos seus flip-flops. No caso
em anlise, h dois flip-flops. Logo, o nmero de estados possveis para esse circuito quatro,
pois as variveis (Q0,Q1) podem valer 00, 01, 10 ou 11. Alm disso, existe somente uma
varivel de entrada: cnt. A tabela de transio de estados mostrada a seguir.
entrada

estado atual

prximo estado

cnt
0
0
0
0
1
1
1
1

Q1t
0
0
1
1
0
0
1
1

Q1t+1
0
0
1
1
0
1
1
0

Q0t
0
1
0
1
0
1
0
1

Q0t+1
0
1
0
1
1
0
1
0

Tabela 4.11 - Tabela de transio de estados para o circuito da figura 4.21.


A tabela de transio de estados apresenta 8 combinaes de entradas referentes aos 4
estados do circuito (estado atual), combinados com os 2 valores possveis para a entrada cnt.
Associado a cada uma destas combinaes existe um estado que ser armazenado pelo
circuito aps a prxima borda ascendente do sinal de relgio, que o chamado prximo
estado. O prximo estado definido pelas equaes de estado 4.4 e 4.5. Na tabela 4.11
possvel notar que, sempre que cnt vale 0, o prximo estado igual ao estado atual, ou seja, o
circuito no ir mudar de estado. Porm, quando cnt vale 1, o circuito muda de estado na
chegada de uma borda ascendente do relgio.
A partir da equao da sada, monta-se uma tabela de sada. Essa tabela mostra o valor
da sada Y para cada combinao entre a entrada cnt e as variveis do estado atual (ou seja, as
mesmas combinaes do lado esquerdo da tabela 4.11). A tabela de sada mostrada a seguir.
Note que, conforme j descreve a equao, Y independe da entrada cnt.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

entrada

estado atual

sada

cnt
0
0
0
0
1
1
1
1

Q1t
0
0
1
1
0
0
1
1

Y
0
0
0
1
0
0
0
1

Q0t
0
1
0
1
0
1
0
1

4-23

Tabela 4.12 - Tabela de sada para o circuito da figura 4.21.


O diagrama de estados uma maneira pictrica de representar a informao mostrada
na tabela de transio de estados e na tabela de sada. Nele, cada estado que o circuito pode
armazenar representado por um nodo (um crculo), no qual so anotados os valores das
variveis de estado e os valores das sadas do circuito. As possveis transies entre estados
so indicadas com arestas (arcos com setas). Junto a cada aresta so anotadas as condies das
variveis de entrada necessrias para a transio ocorrer. Eventualmente, a nica condio
para a troca pode ser a borda do relgio. Neste caso, nenhuma condio anotada na aresta. A
figura 4.22 mostra o diagrama de estados para o circuito da figura 4.21. Note a clareza da
representao. Por exemplo, facilmente verificvel que se trata de um circuito capaz de
contar segundo a seqncia 0, 1, 2, 3, 0, . Nota-se tambm que o sinal cnt um sinal de
habilitao: caso cnt valha 0, a contagem parada (i.e., os flip-flops mantm o ltimo estado
armazenado); uma vez que cnt volte para 1, o circuito continua a contagem de onde parou.
Trata-se, portanto, de um contador sncrono de mdulo-4 (i.e., que conta de 0 a 3). Alm
disso, o sinal de sada Y serve para indicar quando a contagem atingiu o valor 3 (Q1=1,
Q0=1). Logo, enquanto o circuito permanecer no estado 11, Y permanecer com o valor 1.
cnt=1
cnt=0

Q1Q0=00
Y=0

Q1Q0=01
Y=0

cnt=0

cnt=1

cnt=1

cnt=1
cnt=0

Q1Q0=11
Y=1

Q1Q0=10
Y=0

cnt=0

Figura 4.22 - Diagrama de estados para o circuito seqencial da figura 4.21.


Na figura 4.23 so mostradas formas de onda que ilustram uma possvel contagem: o
circuito foi suposto partir do estado 00 e o sinal cnt foi mantido com valor lgico 1 por 3
ciclos de relgio consecutivos. Aps, cnt foi feito igual a zero, o que desabilitou a contagem.
Com isso, o circuito contou de 0 a 3, parando em 3. Verifique o comportamento da sada Y
durante esta operao.

Introduo aos Sistemas Digitais (v.2001/1)

t0

Jos Lus Gntzel e Francisco Assis do Nascimento

t1

t2

4-24

t3

CK

cnt
Q1
Q0
Y
Figura 4.23: diagrama de tempos para uma possvel operao do circuito seqencial da figura
4.21.
Exemplo 4.14: determinar a tabela de transio de estados, a tabela de sada e o diagrama de
estados para o circuito seqencial mostrado na figura 4.24.
cnt

D0

Q0

Q0

D1

Q1

Q1

CK

Figura 4.24 - Outro exemplo de circuito seqencial.


Conforme pode ser visto, esse circuito se diferencia daquele da figura 4.21 somente
pela sada Y, que neste caso tambm depende da entrada cnt. Mais precisamente, Y ser igual
a 1 somente quando Q1Q0=11 e cnt for igual a 1 (ou seja, enquanto o circuito estiver
contando):
Y = cnt Q0 Q1

(4.7)

Como a diferena entre este circuito e aquele da figura 4.21 diz respeito somente
sada Y, as equaes de estado para esse circuito correspondem s equaes de estado 4.4 e
4.5. E por conseguinte, a tabela de transio de estados para esse circuito a tabela 4.11.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

4-25

Somente a tabela de sada ser diferente, uma vez que a equao de sada diferente. A tabela
de sada para o circuito da figura 4.24 mostrada a seguir.
entrada

estado atual

sada

cnt
0
0
0
0
1
1
1
1

Q1t
0
0
1
1
0
0
1
1

Y
0
0
0
0
0
0
0
1

Q0t
0
1
0
1
0
1
0
1

Tabela 4.13 - Tabela de sada para o circuito da figura 4.24.


O diagrama de estados para esse circuito um pouco diferente do diagrama mostrado
na figura 4.22: alm de se anotar as condies de entrada para a transio ocorrer em cada
aresta, anotam-se tambm os valores das sadas. O diagrama de estados para o circuito da
figura 4.24 mostrado na figura 4.25.
cnt=0 / Y=0

cnt=1 / Y=0
Q1Q0=00

Q1Q0=01

cnt=1 / Y=0

cnt=1 / Y=1

cnt=1 / Y=0

cnt=0 / Y=0
Q1Q0=11

cnt=0 / Y=0

Q1Q0=10

cnt=0 / Y=0

Figura 4.25 - Diagrama de estados para o circuito seqencial da figura 4.24.


Na figura 4.26 so mostradas formas de onda que ilustram uma possvel operao do
circuito da figura 4.24. O circuito conta de 0 at 3. No meio do ciclo em que a contagem
atinge o valor 3 (e portanto, Y=1), o sinal cnt passa a valer 0, o que suspende a contagem e
faz Y passar para 0.

Introduo aos Sistemas Digitais (v.2001/1)

t0

Jos Lus Gntzel e Francisco Assis do Nascimento

t1

t2

4-26

t3

CK

cnt
Q1
Q0
Y
Figura 4.26 - Diagrama de tempos para uma possvel operao do circuito seqencial da
figura 4.24.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

4-27

4.4 Modelos de Circuitos Seqenciais (Mquinas de Estados)


Cada um dos circuitos estudados nos dois exemplos anteriores (4.13 e 4.14)
corresponde a um dos dois modelos possveis para circuitos seqenciais, quais sejam:

modelo dependente dos estados ou modelo de Moore (exemplo 4.13) e

modelo dependente das entradas ou modelo de Mealy (exemplo 4.14).

No caso do modelo de Moore, as sadas dependem nica e exclusivamente do estado


em que o circuito se encontra, de modo que uma mudana nos valores das entradas s toma
efeito aps a prxima borda do relgio. J no caso do modelo de Mealy, as sadas dependem
no somente do estado em que o circuito se encontra, mas tambm do valor atual das entradas
externas, de modo que se estas se alteraram ainda antes da troca de estados, as sadas do
circuito podem se alterar. As figuras 4.27 e 4.28 mostram os diagramas de blocos para o
modelo de Moore e de Mealy, respectivamente.
entradas
I1

I2

Ik

CK

...

D1

Q1

FF1
Q1

O1
Q2

FF2
Q2

...
D3

lgica de sada

O2

...

lgica de
prximo estado

D2

sadas

On

Q3

FF3
Q3

Figura 4.27 - Diagrama de blocos para o modelo de Moore.


Nestes diagramas, o bloco combinacional foi subdividido em dois blocos: um
responsvel exclusivamente pela gerao do prximo estado, denominado bloco de prximo
estado (pois implementa as equaes de estados) e um que gera os valores das sadas,
denominado bloco de sada. Alm destes dois blocos de lgica combinacional, existe um
conjunto de flip-flops que armazenam o estado do circuito. O nmero de estados possveis do
circuito 2n, com n sendo o nmero de flip-flops.
No caso dos exemplos 4.13 e 4.14, o bloco de sada constitudo apenas pela porta E
que gera o sinal de sada Y. J o bloco de prximo estado contm as portas que esto
esquerda dos flip-flops. Essas portas implementam as funes de estado.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

4-28

entradas
I1

I2

Ik

CK

...

D1

Q1

FF1
Q1

O1
Q2

FF2
Q2

...
D3

lgica de sada

O2

...

lgica de
prximo estado

D2

sadas

On

Q3

FF3
Q3

Figura 4.28 - Diagrama de blocos para o modelo de Mealy.

4.5 Projeto de Circuitos Seqenciais


O projeto de um circuito seqencial normalmente inicia pela definio de seu
comportamento de maneira textual e com a transcrio deste comportamento para um
diagrama de estados, de modo a detalhar os estados existentes, as condies para trocas de
estados e os valores das sadas. Pela anlise do diagrama de estados possvel identificar o
modelo de mquina de estados a ser seguido (Moore ou Mealy). Inicialmente, os estados
ainda no estaro assinalados a valores binrios, recebendo apenas nomes simblicos que
podem ser letras do alfabeto, nmeros inteiros ou nomes. Aps, deve-se gerar as tabelas de
transio de estados e de sada, a partir das informaes constantes no diagrama de estados.
Neste ponto, ser necessrio associar uma combinao de valores binrios para cada estado.
Caso o nmero de estados seja menor do que o nmero de combinaes existentes, algumas
combinaes no sero utilizadas. Essa fase denominada assinalamento de estados. Ento,
as equaes de estados e as equaes das sadas podero ser derivadas a partir das tabelas.
Caso no for possvel minimizar as equaes usando mapas de Karnaugh (se o nmero de
variveis for grande), ser necessrio utilizar algum programa de minimizao, tal como o
espresso. As equaes de estado representam a funcionalidade do bloco de prximo estado,
enquanto as equaes de sada descrevem o comportamento do bloco de sada. O ltimo passo
ser o mapeamento da funo de prximo estado e da funo de sada para as portas lgicas
disponveis, caso alguma bilioteca seja especificada.
Exemplo 4.15: projetar um circuito contador mdulo 4 incrementador/decrementador. Esse
circuito tem duas entradas: habilitao de contagem (H) e direo de contagem
(D). Quando H=1, o contador ir contar na direo definida por D, parando
quando H=0. A contagem ser para cima (incremento) se D=0 e para baixo
(decremento) se D=1. O contador possui uma sada Y, a qual vale 1 quando o
contador atingir o valor 11, independente da direo da contagem.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

4-29

Bibliografia Suplementar
[1] GAJSKI, Daniel D. Principles of Digital Design, New Jersey: Prentice Hall, 1997 (ISBN
0-13-301144-5)
[2] MANO, M. Morris; Computer Engineering: Hardware Design. New Jersey: Prentice
Hall, 1988 (ISBN 0-13-162926-3)
[3] BROWN, Stephen; VRANESIC, Zvonko. Fundamentals of Digital Logic with VHDL
Design. McGraw-Hill Higher Education (a McGraw-Hill Company), 2000
(http://www.mhhe.com/engcs/electrical/brownvranesic )

5 Circuitos de Armazenamento
Nos sistemas digitais, e em particular nos computadores, as informaes esto
representadas por conjuntos de dgitos binrios denominados "palavras". Nos computadores
atuais o tamanho da palavra de 32, 64 ou 128 bits. Porm, at h pouco tempo atrs, os
computadores pessoais usavam apenas 8 e 16 bits.
Naturalmente, um sistema digital projetado para trabalhar com um determinado
tamanho de palavra, devendo portanto conter recursos de hardware que lhe permitam
processar e armazenar simultaneamente conjuntos de n bits, onde n o tamanho da palavra.
A seguir estudaremos os circuitos digitais responsveis pelo armazenamento de
informao. Alguns destes circuitos so construdos de modo a tambm poder manipular a
informao armazenada. Dentre as operaes possveis esto os deslocamentos ( direita e
esquerda), o incremento e o decremento.

5.1 Registradores
Um registrador um circuito digital formado por n flip-flops, de modo a poder
armazenar simultaneamente (e de maneira independente) n bits. Trata-se de um tipo de
elemento de armazenamento bsico: um processador possui um conjunto de registradores que
pode variar de trs a algumas dezenas. A existncia de registradores dentro do processador
acelera o processamento, pois os dados que esto sendo manipulados ficam armazenados
prximo dos recursos de processamento (ULA, por exemplo), o que reduz os acessos feitos
memria.. A figura 5.1 mostra um registrador de 4 bits feito com flip-flops D (disparados pela
borda ascendente).
D3

D1

D2

3
C

D0

0
Q

CK
Q3

Q2

Q1

Q0 

Figura 5.1 - Um registrador de 4 bits, com carga paralela.


Note que cada flip-flop responsvel pelo armazenamento de um bit, seguindo a
notao posicional, e que cada bit possui um caminho independente dos demais, tanto para
entrada como para a sada. Por isso, o registrador dito "de carga paralela". Note tambm que
o flip-flop de ndice 0 armazena o bit menos significativo e o flip-flop de ndice 3 armazena o
bit mais significativo de uma palavra de 4 bits. Um registrador funciona como uma barreira:

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

5-2

os dados disponveis nas entradas D0, D1, D2 e D3 somente sero copiados quando o sinal de
relgio (CK, no caso) passar por uma borda ascendente. Os valores copiados quando da
passagem de uma borda ascendente permanecero armazenados pelos flip-flops at a
ocorrncia da prxima borda ascendente. Isto deixa o registrador imune a eventuais mudanas
indesejadas dos sinais representados por D0, D1, D2 e D3. O valor armazenado num flip-flop
qualquer est sempre presente na sua sada Q. Isto quer dizer que o dado armazenado no
registrador pode ser consultado por outro recurso de hardware a qualquer tempo, desde que
haja um caminho fsico (i.e., um conjunto de fios) entre a sada do registrador e a entrada do
outro elemento. O outro elemento pode ser, por exemplo, um somador/subtrator como no
captulo 3.
O registrador da figura 5.1 apresenta, porm, uma deficincia grave: toda a vez que o
sinal de relgio CK passar por uma borda ascendente, os valores das entradas D0, D1, D2 e
D3 sero copiados, mesmo que isso no seja explicitamente desejado. Entretanto, os circuitos
de um computador devem seguir as ordens dos sinais provenientes da unidade de controle. O
sinal de relgio serve apenas para determinar o momento no qual uma ordem dever ser
cumprida. Logo, um registrador de um computador deve possuir recursos capazes de realizar
a carga do dado (i.e., a carga paralela dos sinais conectados as suas entradas) quanto o relgio
passar pela borda ativa somente se o sinal de "carga" (tambm conhecido por "load") estiver
ativado. A figura 5.2 mostra um registrador de 4 bits com carga paralela e sinal de carga.
D2

D3

0
1

D1

3
C

D0

2
Q

0
Q

carga
CK
Q2

Q3

Q1

Q0

Figura 5.2: - Um registrador de 4 bits, com carga paralela e sinal de carga.


Nos desenhos de circuitos digitais mais complexos, ser utilizado preferencialmente o
smbolo mostrado na figura 5.3, ao invs do esquema completo do circuito, a fim de facilitar a
compreenso.
4
carga

Reg
4

Figura 5.3 - Smbolo para um registrador de 4 bits, com carga paralela e sinal de carga. "Reg"
o nome do registrador.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

5-3

5.1.1 Registrador com Carga Paralela (e Sinal de Carga)


Exemplo 5.1: desenhar a forma de onda da sada Q para o circuito que segue.

dado
carga

C
clear

C
K
limpa
Q

CK
limpa
dado
carga
Q
Figura 5.4 - Um bit do registrador com carga paralela.
Este exemplo ilustra o funcionamento do circuito associado a um bit de um registrador
de carga paralela com sinal de carga.

5.1.2 Registradores de Deslocamento (shift registers)


Uma operao muito importante na aritmtica binria o deslocamento de bits. Essa
operao consiste em deslocar o contedo de um flip-flop para o seu adjacente. A operao
pode se dar da esquerda para a direita (deslocamento direita) ou da direita para a esquerda
(deslocamento esquerda).
No primeiro caso, cada flip-flop recebe o contedo do seu vizinho imediatamente
esquerda. O flip-flop mais esquerda recebe o dado de uma "fonte" externa pela "entrada
serial". J o contedo do flip-flop mais direita descartado.
No segundo caso, cada flip-flop recebe o contedo do seu vizinho imediatamente
direita. O flip-flop mais direita recebe o dado de uma "fonte" externa pela "entrada serial".
J o contedo do flip-flop mais esquerda descartado.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

5-4

Exemplo 5.2: traar as formas de onda dos bits armazenados no registrador-deslocador


mostrado a seguir, a partir das formas de onde fornecidas.
dado
(entrada serial)

2
Q

1
Q

clear

0
Q

clear

Q
Q

clear

clear

limpa
CK
Q3

Q2

Q1

Q0

CK

limpa
dado
Q3

Q2
Q1
Q0

Figura 5.5 - Registrador de deslocamento direita de 4 bits (com reset assncrono): exemplo
de funcionamento.
Repare que h uma ligao entre a sada de cada flip-flop e a entrada do seu vizinho
imediatamente direita (adjacente a direita). O registrador de deslocamento do exemplo 5.2
no possui sinal de carga. Porm, tal sinal normalmente existe, como ser visto mais adiante.
Um registrador de deslocamento esquerda deve apresentar uma ligao entre a sada
de cada flip-flop e a entrada do flip-flop imediatamente esquerda. Um tal registrador
mostrado na figura 5.6. Note que a entrada serial est conectada ao flip-flop mais direita
(flip-flop que armazena o bit menos significativo).
Exemplo 5.3: traar as formas de onda dos bits armazenados no registrador-deslocador
mostrado a seguir, a partir das formas de onde fornecidas.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

5-5

dado
(entrada serial)
D

3
C

clear

clear

clear

Q
clear

limpa
CK
Q3

Q2

Q1

Q0

CK
limpa
dado
Q3

Q2
Q1
Q0

Figura 5.6 - Registrador de deslocamento esquerda de 4 bits (com reset assncrono):


exemplo de funcionamento.

5.1.3 Registrador de deslocamento com sinal de carga paralela


Um registrador muito til aquele que, alm de permitir a carga paralela por meio de
sinal de carga, ainda permite deslocamentos direita e esquerda. Isso possvel se, na
entrada de cada flip-flop houver um seletor capaz de escolher de onde vem o dado a ser
armazenado no flip-flop corrente: de uma fonte externa (no caso de uma carga paralela), da
direita, da esquerda (no caso de deslocamento) ou do prprio flip-flop (no caso de
simplesmente se querer manter o contedo inalterado). Um tal registrador mostrado na
figura 5.7.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

I2

I1

5-6

I0

C1
C0
entrada serial
p/ desl. esq.

entrada serial
p/ desl. dir.

00
01
10
11

00
01
10
11

3
C

2
C

00
01
10
11

00
01
10
11

1
C

DCReset

DCReset

0
C

DCReset

DCReset

CK
clear
Q

Figura 5.7 - Um registrador-deslocador de 4 bits com sinal de carga e reset assncrono.


As operaes possveis para o registrador-deslocador (tambm conhecido como shift-register)
da figura 5.7 so:
1. Carga paralela;
2. Mantm contedo;
3. Zera o contedo (fazendo-se clear=1);
4. Desloca direita e desloca esquerda.
E seu funcionamento se d como segue:
Se o sinal clear=1, Q3=Q2=Q1=Q0=0;
Caso contrrio, vale a tabela verdade a seguir
CK

C1
X
0
0
1
1

C0
X
0
1
0
1

operao
mantm contedo
mantm contedo
desloca esquerda (shift left)
desloca direita (shift right)
carga paralela

5.1.4 Registrador Contador Assncrono


Um contador (ou incrementador) um registrador que "conta" em binrio. Ou seja, a
cada sinal de relgio, o contedo do registrador incrementado de uma unidade. Logo, um
registrador contador de 4 bits capaz de contar de 0 (0000) at 15 (1111).
Primeiramente, vejamos como funciona um contador de um bit.
Exemplo 5.4: traar a forma de onda de Q para o circuito a seguir.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

5-7

CK
D

Q
limpa
Q

CK

clear

limpa

Figura 5.8 - Contador de um bit (com reset assncrono).


Um circuito contador de mais bits possui uma conexo entre cada flip-flop vizinho, de
modo que cada flip-flop de maior ordem responsvel pela ordem de incremento de seu
vizinho de menor ordem.
Exemplo 5.5: encontrar as formas de onda para as sadas dos flip-flops do registrador abaixo.

0
CK

clear

clear

Q
clear

limpa
Q0

Q1

Q2

CK
limpa
Q0

Q0
Q1

Q1
Q2

Figura 5.9 - Contador assncrono de 3 bits (com reset assncrono).

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

5-8

5.2 Memrias
Na seo anterior, vimos como so construdos diversos tipos de registradores. Apesar
de serem muito rpidos, os registradores tm capacidade de armazenamento reduzidssima:
cada registrador capaz de armazenar somente uma palavra por vez. Porm, nos sistemas
digitais em geral, e particularmente nos computadores, grandes quantidades de informao
(palavras) devem poder ser armazenadas. Para tanto, necessrio que o sistema digital possua
um conjunto especfico de circuitos que sejam mais apropriados ao armazenamento
simultneo de um grande nmero de palavras. Tais circuitos efetivamente existem e so
genericamente denominados de memrias.
Do ponto de vista do funcionamento, as memrias podem permitir apenas a consulta
(leitura) ao seu contedo ou podem permitir a consulta (leitura) e a modificao (escrita) de
seu contedo. As memrias que s permitem a leitura so chamadas de ROMs (Read-Only
Memories, que significa memrias de leitura apenas), enquanto que as memrias que
permitem a leitura e a escrita so genericamente denominadas RAMs (Random-Access
Memories, que significa memrias de acesso randmico).
O contedo das ROMs pode ser escrito (gravado) quando da fabricao ou mesmo aps,
por um usurio, que no caso pode ser o fabricante do computador, por exemplo. A
caracterstica principal que uma vez gravadas as informaes na ROM, estas no podero
ser modificados, mas somente consultadas (lidas). J as memrias RAM possuem circuitos
capazes de armazenar as informaes binrias, as quais podem ser modificadas um nmero
indeterminado de vezes.
Tanto as memrias ROM como as memrias RAM so fabricadas com a tecnologia
CMOS, que alis a mesma tecnologia de fabricao dos microprocessadores. Porm, o que
origina a diferena de funcionamento entre ROMs e RAMs o tipo de circuitos utilizados. Na
seo que segue, veremos detalhes de implementao das memrias RAM, as quais so
utilizadas na implementao da memria principal dos computadores.

5.2.1 Memria de Acesso Randmico (RAM - Random-Access Memory)


Nesta seo iremos estudar a estrutura fsica das memrias RAM, isto , os circuitos
que as compem.
Uma memria RAM organizada como uma matriz de 2n linhas com m bits
armazenados em cada linha, perfazendo um total de 2n x m bits. Em geral, n est entre 16 e
32, enquanto que m pode ser 1, 4, 8, 16 ou 32. A figura 5.10 ilustra essa organizao
matricial. Note que existem 2n linhas, tambm chamadas posies. A cada posio
associado um endereo, iniciando pelo endereo 0 (zero). Portanto, so necessrios n bits para
decodificar os 2n endereos existentes.
Suponha que se deseje fabricar num nico chip (circuito integrado) uma memria RAM
capaz de armazenar 2n x m bits, seguindo a organizao descrita anteriormente. A figura 5.11
mostra duas representaes grficas possveis para um tal chip. Este chip dever possuir n
entradas de endereo (An-1, , A1,A0), de modo a se poder selecionar uma (e somente uma)
dentre todas as 2n posies existentes na matriz. Este chip tambm dever conter m entradas
(In-1, , I1,I0), e m sadas (On-1, , O1,O0), de modo a permitir a leitura (=consulta) do
contedo de uma das 2n linhas ou a escrita (=gravao) de uma nova informao numa das 2n
linhas da matriz. Como existem duas operaes possveis sobre o contedo da matriz (leitura

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

5-9

e escrita), natural que deva existir uma entrada de seleo de operao. Esta entrada ser
denominada RWS (Read/Write Select). Quando RWS=0, a operao a ser realizada ser a
leitura do contedo da posio cujo endereo est presente na entrada de endereos. O valor
lido aparecer na sada do chip. Quando RWS=1, a operao a ser realizada ser a escrita da
informao binria presente na entrada do chip na linha cujo endereo est presente na
entrada de endereo. Por fim, deve existir um sinal de habilitao do chip como um todo (CS Chip Select). Caso CS=0, o chip est desativado. Caso CS=1, o chip estar realizando a
operao especificada pelo valor da entrada RWS.
endereo em
binrio

endereo em
decimal

contedo
(exemplo)

0000
0001
0010
0011
0100
0101
0110
0111

0
1
2
3
4
5
6
7
:
:
2n-2
2n-1

0110100
0110100
1011100
1010001
0110101
1110110
1010001
0001101
:
:
0001100
1001100

1110
1111

m bits
Figura 5.10 - Organizao de uma memria RAM: linhas e endereos.
...
An-1

A1

Im-1

I1

I0

An-1

A1

RAM 2n x m

A0

A0

CS

CS

RWS

Om-1

O1

O0

RWS

RAM 2n x m

I/Om-1

...

...

(a)

(b)

I/O1 I/O0

Figura 5.11 - Representaes grficas possveis para um chip de memria RAM.


O sinal de habilitao do chip, CS, serve para o caso em que seja necessrio mais de um
chip para implementar a memria do computador.

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

5-10

Quando o nmero de bits a serem armazenados em cada posio de memria m for


pequeno, o chip RAM poder ter as entradas separadas das sadas, conforme representado
pelo smbolo da figura 5.11a. Entretanto, o mais comum que um mesmo conjunto de pinos
do chip sirvam como entradas e como sadas, situao representada pelo smbolo da figura
5.11b. A funo ir depender da operao, selecionada por meio do pino RWS. Esse uso
compartilhado reduz o nmero de pinos do chip, tornando-o mais barato.
Do ponto de vista estrutural, uma memria RAM organizada como uma matriz de
elementos bsicos de memria, buffers de entrada e sada e um decodificador de endereos.
Como mostrado na figura 5.12, uma clula de memria (CM) pode ser representada
simbolicamente como sendo constituda por um latch D controlado cuja entrada est
conectada a sada de uma porta E e cuja sada se conecta entrada de um buffer.1 Quando o
sinal de seleo de linha igual a 1, o bit armazenado no latch passar pelo buffer, ficando
disponvel na sada da clula. Se o sinal de habilitao de escrita tambm valer 1, o valor
presente na entrada ser armazenado no latch. O sinal de habilitao de escrita serve como
controle para o latch.
seleo de linha

CM

entrada

sada

buffer
habilitao de escrita
Figura 5.12 - Clula de memria (CM).
A figura 5.13 mostra um exemplo de memria RAM 4 x 4, constituda por 16 CMs.
Para cada acesso memria, o decodificador de endereos ativa o sinal de seleo de linha
associado ao endereo aplicado as suas entradas, o que ativa todos os CMs da linha
selecionada. Neste momento, se RWS=1 e CS=1, o novo conjunto de bits ser armazenado
nas CMs da linha selecionada. Por outro lado, se RWS=0 e CS=1, os bits que esto
armazenados na linha selecionada passaro pelos buffers de sada das respectivas CMs e pelos
buffers de entrada/sada do chip.
A organizao da memria RAM implica em restries de tempo nas operaes de
escrita e leitura. Por exemplo, como o caminho crtico da entrada a sada passa pelo
decodificador, as entradas de endereo devem estar estveis antes de quaisquer outros sinais.
Isto significa que durante o ciclo de leitura mostrado pela figura 5.14 as entradas de endereo
1

Um buffer (as vezes chamado driver) pode ter duas funes: reforar o sinal lgico (o que necessrio quando
existem muitas portas conectadas a uma mesma sada ou quando o sinal deve percorrrer um fio muito longo) ou
servir como uma chave eletrnica que isola fisicamente a sada da entrada (o que serve para disciplinar o acesso
de vrios sinais a um mesmo fio ou barramento).

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

5-11

devero ser fornecidas em t0, seguidas por CS em t1. Assim, os dados da memria estaro
disponveis somente em t2. O atraso t2-t0 denominado tempo de acesso memria
(memory-access time), enquanto que o tempo t2-t1 denominado tempo de habilitao da
sada (output-enable time). Note que aps os valores das entradas de endereo terem sido
modificadas em t3, os dados ainda estaro disponveis at t5. O intervalo t5-t3 denominado
tempo de manuteno da sada (output-hold time). J o intervalo t5-t4 denominado tempo
de desabilitao da sada (output-disable time). Como o caminho entre as entradas de
endereo e as sadas maior do que o caminho entre CS at as sadas, o tempo de acesso
determina a validade dos dados sempre que o endereo e CS forem aplicados ao mesmo
tempo. Por outro lado, se o endereo e CS deixarem de ser vlidos (CS=0, no caso), o tempo
de desabilitao determinar a validade dos dados.
0
CM

CM

CM

CM

CM

CM

CM

CM

CM

CM

CM

CM

CM

CM

CM

CM

A1
DEC
2x4

A0
2

3
write
enable

RWS
CS
IO3

IO2

IO1

IO0

Figura 5.13 - Diagrama de blocos de uma memria RAM


A figura 5.15 mostra as restries temporais para o caso de um ciclo de escrita numa
memria RAM. No exemplo, foi assumido que CS e RWS foram aplicados simultaneamente,
no instante t1. Como o atraso entre o endereo e a sada maior do que o atraso entre CS ou
RWS e a sada, o endereo deve ser aplicado algum tempo antes, como por exemplo em t0. O
atraso t1-t0 denominado tempo de preparao do endereo (address setup time). Como
cada CM feita a partir de um latch D controlado com CS fazendo o papel de controle, cada
bit do dado na borda de descida de CS (t3) ficar armazenado no respectivo latch. Entretanto,
necessrio que o dado esteja estvel por algum tempo antes e depois da borda de descida de
CS para garantir a escrita. Na figura 5.15 esses tempos so anotados como tempo de

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

5-12

preparao do dado (data setup time) e tempo de manuteno do dado (data hold time),
sendo definitos respectivamente como t3-t2 e t4-t3.
Tambm importante ressaltar que CS ou RWS devem ter uma durao igual ou maior
que o intervalo de tempo t3-t1, o qual denominado durao do pulso de escrita (write-pulse
width). Alm disso, o endereo deve estar vlido por algum tempo aps a borda de descida de
RWS ou CS. Este tempo chamado tempo de manuteno do endereo (address-hold
time), e definido como t5-t3.
RWS
CS

endereo

endereo vlido

dados

dados vlidos
output-enable
time

output-disable
time
output-hold
time

access time

t0

t1

t2

t3

t4

t5

Figura 5.14 - Ciclo de leitura em uma memria RAM.


RWS
CS

endereo

endereo vlido

dados

dados vlidos
addresssetup time

addresshold time
datahold time

data-setup time
write pulse width

t0

t1

t2

t3

t4

t5

Figura 5.15 - Ciclo de escrita em uma memria RAM.


Apesar da CM ter sido representada como sendo constituda por um latch D e duas
portas, na prtica sua fabricao pode ser levada a cabo com estruturas mais simples, que
utilizam menos transistores. A forma de implementao de CMs leva a classificao das
memrias RAM em estticas e dinmicas. No caso da RAM esttica (conhecida por SRAM,
static RAM), a CM feita com 6 transistores, onde quatro deles formam dois inversores

Introduo aos Sistemas Digitais (v.2001/1)

Jos Lus Gntzel e Francisco Assis do Nascimento

5-13

conectados em lao de realimentao, fazendo o papel do latch D. No lugar da porta E e do


buffer de sada h um transistor (para cada um, no caso), o qual serve como chave de ligadesliga. A memria SRAM capaz de manter seu contedo por tempo indeterminado, desde
que este a alimentao no seja interrompida. No caso da memria dinmica (conhecida por
DRAM, dynamic RAM), cada CM implementada com somente um transistor. A
desvantagem deste tipo de RAM que o contedo da CM perdido aps a operao de
leitura, devendo ser reescrito. Para piorar, devido s imperfeies do processo de fabricao, o
contedo da CM s se mantm por um curto perodo de tempo. Estes dois problemas so
contornados pela utilizao de um mecanismo de reflash construdo dentro da memria, o
qual periodicamente refora o contedo de cada linha de CMs. Durante a operao de reflash,
as operaes de leitura e escrita so suspensas, o que reduz o desempenho deste tipo de
memria.
As memrias DRAM apresentam uma densidade muito grande, o que se traduz em
maiores capacidades de armazenamento. Elas tambm apresentam um custo bem reduzido.
Devido a estas duas caractersticas, as DRAMs so muito utilizadas no projeto de produtos
eletrnicos.
Por outro lado, as memrias SRAM so mais caras e apresentam menores capacidades
de armazenamento. Porm, so mais velozes do que as memrias DRAM, sendo portanto
apropriadas para os casos em que a quantidade de dados a serem armazenados no grande e
uma velocidade maior de operao necessria.
As memrias SRAM e DRAM so ditas memrias volteis, pois, uma vez interrompido
o fornecimento de energia, elas perdem seu contedo. J as memrias ROM so ditas novolteis, pois no perdem seu contedo quando o fornecimento de energia interrompido. As
memrias ROM tem uma organizao semelhante s memrias RAM (matriz de CMs com
decodificador de endereo e buffers de sada). Porm, a CM de uma ROM bem mais
simples, normalmente constituda por um nico transistor ou diodo, o qual pode ser
configurado uma vez para permitir o acesso ao 0 lgico (=0V) ou ao 1 lgico (de 5V a 1,5 V,
conforme a tecnologia). Nos computadores, as memrias ROM servem para armazenar todas
as configuraes bsicas que jamais sero alteradas, como por exemplo, as rotinas de entrada
e sada (denominadas de ROM-BIOS, nos computadores tipo PC).

Bibliografia Suplementar
[1] GAJSKI, Daniel D. Principles of Digital Design, New Jersey: Prentice Hall, 1997 (ISBN
0-13-301144-5)
[2] MANO, M. Morris; Computer Engineering: Hardware Design. New Jersey: Prentice
Hall, 1988 (ISBN 0-13-162926-3)
[3] BROWN, Stephen; VRANESIC, Zvonko. Fundamentals of Digital Logic with VHDL
Design. McGraw-Hill Higher Education (a McGraw-Hill Company), 2000
(http://www.mhhe.com/engcs/electrical/brownvranesic )

Você também pode gostar