Você está na página 1de 61

What I was proud of was that I used very few parts to build a computer that could actually speak

words on a screen
and type words on a keyboard and run a programming language that could play games. And I did all this myself.!
!
Steve Wozniak!

SISTEMAS DIGITAIS
INTRODUÇÃO AOS

1
Atenção!
Todo o conteúdo deste documento pode conter
alguns erros de sintaxe, científicos, entre
outros… Não estudes apenas a partir desta
fonte. Este documento apenas serve de apoio à
leitura de outros livros, tendo nele contido todo o
programa da disciplina de Introdução aos
Sistemas Digitais, tal como foi lecionada, no ano

!!!
letivo de 2013/2014, na Universidade de Aveiro.
Este documento foi realizado por Rui Lopes.
INTRODUÇÃO AOS SISTEMAS DIGITAIS 2
!
Nos dias que correm, poucos são os momentos em que nós, seres humanos, não
interagimos com ambientes digitais. Hoje o mundo digital é um espaço muito vasto e mundo digital
que compreende praticamente todas as ações humanas, tanto a nível social, como
mental e até mesmo físico. Este chamado “mundo” tem levado uma grande
transformação desde os últimos quarenta anos, produto do desenvolvimento de altas
velocidades de circuitos integrados. Neste tempo conseguimos passar das válvulas de
vácuo aos chips, este, que pode conter dezenas de milhões de transístores (componente válvulas de vácuo, chips,

eletrónico que serve como amplificador e interruptor de sinais elétricos) que podem ser transístores
programados de modo a criarem um sistema integrado num chip que, utilizando
tecnologias do passado, conseguem conter vários circuitos flip-flop e portas num
pequeno espaço físico.
!
1. Ambiente Digital
Para se poder compreender como é que um computador ou outra máquina
com potencialidades digitais funciona, temos que compreender como é que tais
sistemas se sustentam: qual é a sua base. Para tal, precisamos de estudar desde o
básico, de modo a que, no final, se possa construir, nem que através de um esquema,
todo um sistema digital.
!
Analógico versus Digital
Entre vários aparelhos que possamos ter e usar, eles podem ser analógicos ou
digitais. Um aparelho analógico trabalha baseado num contínuo intervalo de valores de aparelhos analógicos
voltagem, ou outra quantidade. Um aparelho digital também, só com uma ligeira aparelhos digitais
diferença: o intervalo de valores é descontínuo e varia entre apenas dois estados, aos
quais damos o nome de 0 e 1 (significando o mesmo se fosse “baixo” e “alto”, “preto” 0e1
e “branco”, etc...). A estes números damos o nome de símbolos, e não valores! símbolos
A era digital avançou, principalmente, através dos computadores, estes, que
entraram no comércio público a partir da década de ’60. Mas só nos últimos dez a
vinte anos é que a era digital se focou também noutros aspetos da vida. Como
exemplos, podemos tomar a câmara fotográfica, que outrora se utilizava usando uma
fita onde, mecanicamente eram gravados os registos (informação), ou, em alguns locais,
os semáforos, que costumavam funcionar através de um relógio e hoje em dia
funcionam através de controladores e sensores na estrada que avaliam a densidade de
tráfego. Mas porque é que hoje em dia há uma tão grande necessidade de utilizarmos
aparelhos digitais? Por vários aspetos, entre eles:
!
‣ Eficácia e rendimento na produção de resultados - Dados os mesmos inputs
que em analógico, um circuito digital efetua os mesmos cálculos, embora sem
depender de muitos fatores físicos como a temperatura, voltagem, entre
outros...;
‣ Facilidade de idealização - O processo-base da criação destes circuitos é a
lógica, não necessitando de grandes habilidades matemáticas, sendo que o
comportamento dos pequenos circuitos pode muito bem ser mentalmente
visualizado sem a compreensão de componentes eletrónicos como transístores,
condensadores, ...;
‣ Flexibilidade e funcionalidade - A partir do momento em que um problema
foi implementado num raciocínio em ambiente digital, este, pode ser resolvido
em pequenos passos lógicos.
3 INTRODUÇÃO AOS SISTEMAS DIGITAIS
‣ Programabilidade - Grande parte dos produtos digitais são criados, hoje em
dia, gerando programas, também, em linguagens de hardware descritivas
(HDL). Estas linguagens permitem ambas estrutura e função de um circuito HDL
que sejam específicas ou modeladas. Para além de um compilador, um HDL
típico também vem com sistemas de síntese e simulação. Estas ferramentas são
usadas para testar o comportamento do hardware, antes deste ser realizado, e
só depois é que é sujeito a uma síntese num circuito de testes particular.
‣ Velocidade - Os aparelhos digitais vencem a nível de velocidade. Transístores
individuais e circuitos integrados podem funcionar em menos de 10ps
(picossegundos), e examinar inputs e produzir outputs em menos de 1ns
(nanossegundo). Isto significa que estes materiais são capazes de produzir
cerca de um bilião de resultados ou mais, por segundo.
‣ Mais económico - Os circuitos digitais podem fornecer imensa funcionalidade
num curto espaço físico. Estes circuitos costumam estar integrados em chips, o
que proporciona mais espaço para mais semelhantes, aumentando o
rendimento da máquina.
!
Álgebra de Boole

De modo a compreender melhor como é que os bits são guardados e

manipulados dentro de um computador, há que entender que o bit 0 corresponde a


falso e o bit 1 corresponde a verdadeiro, o que nos permite trabalhar com dados falso, verdadeiro
lógicos verdadeiro/falso. Este tipo de operações pertencem à álgebra de Boole, em dados lógicos verdadeiro/

honra ao matemático George Boole (1815-1864), pioneiro da área da lógica /falso, álgebra de Boole
matemática. Três operações básicas booleanas são as AND, OR e XOR (ou exclusivo).
Estas operações são semelhantes às de MAIS e VEZES, dado que elas combinam pares
numéricos (as parcelas - input) de forma a produzir um terceiro número (o resultado -
- output). Ao invés das comuns operações matemáticas, as operações de Boole
trabalham com valores lógicos, em vez de valores numéricos.
A operação booleana AND está desenhada para deduzir a verdade ou a
falsidade de uma conclusão, nela, combinada duas premissas pela conjunção e (and).
Tais conclusões têm, assim, a forma
!
P AND Q.
!
onde P representa uma premissa e Q representa outra premissa - por exemplo,
!
O Sapo Cocas é um sapo e a Miss Piggy é uma atriz.
!
Os inputs da operação AND representam a verdade ou a falsidade do resultado da
mesma; o output representa a verdade ou a falsidade de si mesmo. Sendo que uma
conclusão do género P AND Q é verdadeira apenas quando ambas premissas são
verdadeiras, pode-se concluir que 1 AND 1 é igual a 1, enquanto que em todos os
outros casos o resultado será 0.
De uma maneira semelhante, a operação OR é baseada nas premissas das
conclusões com a forma
!
P OR Q
!
as shown in Figure 1.2. Note that the AND, OR, XOR, and NOT gates are
INTRODUÇÃO AOS SISTEMAS DIGITAIS 4
onde, de novo,
sented by distinctively P representa
shaped symbols, uma with the premissainput evalues Q outra enteringpremissa. on Tais conclusões são
apter
de 1and
ter 1Data
Data
the Storage
verdadeiras
output exiting
Storage quando
on thepelo menos uma das premissas é verdadeira.
other.
ates provide the building Não existe blocks from which
nenhuma conjunção computers are constructed.
no português que possa coincidir com o
mportant step in this
significado direction
da operaçãois depicted
XOR. Ain the
operação circuit XORin Figure
produz 1.3. um This is
resultado de 1 (verdadeiro)
form,asasshown
form, shownininFigure Figure1.2. 1.2.Note Note thatthe theAND,AND,OR, OR,XOR, XOR, andNOT NOT gatesare are
icular example from a collection of circuits knownthat as a flip-flop. A flip-flop and gates
quando um dos inputs
representedbybydistinctively
represented é 1
distinctivelyshaped(verdadeiro)
shapedsymbols, e o
symbols,with outro
withthe é 0 (falso).
theinput
inputvalues Por exemplo,
valuesentering
enteringonon uma
rcuit that produces an output value of 0 or 1, which remains constant until a
conclusão
oneside Pand
side XOR
and1 theQoutput
significa
output “P ou
exiting Q,
on não
the ambos”. Em suma, a operação XOR dá um
other.
(a temporaryone change to a the that returns exiting
to 0)on from the other.
another circuit causes it
resultadoGatesde 1 quando
provide os
the inputs
t to the other value. In other words, the output will flipfrom
Gates provide the building
building são diferentes.
blocks
blocks from which
which
or flop between computers
computers two are areconstructed.
constructed.
One
One Aimportant
operação
important step
stepNOTin inthisthis
é uma direction
outra
direction
s under control of external stimuli. As long as both inputs in the circuit in is is depicted
operação
depicted in the
booleana.
in the circuit
circuitDifere in in Figure
das
Figure 1.3.
operações
1.3. This
This is is
AND,
OR a a eparticular
XOR,
particular example
porque
example fromfrom
apenas a a
tem collection
collection
e 1.3 remain 0, the output (whether 0 or 1) will not change. However, tem- um eof of
um circuits
circuitssó known
input.
known O as as
seu
a a flip-flop.
resultado
flip-flop. A A
é flip-flop
sempre
flip-flop o
isis
ly placing contrárioa a circuit
circuit
a 1 on thedo that
that
seu input
upper produces
produces
input. will an
Se oforce an
input output
output
the value
value
deoutput
NOT to of of
0 0
oror1,
é verdadeiro, 1, which
which
be 1, whereas remains
remains
então constant
constant until
until
tem-o output é falso, e vice- a a
pulse
a 1pulse
ly placing -versa. on (a(alower
the temporary
temporary
inputchange change
will forcetotoathea1 1thatthatreturns
output returns
to beto 0.to0)0)fromfromanother
anothercircuit circuitcauses
causes it it
!
et us considertothistoshift
shift
values
values
circuit in Figure 1.3,
totothe
claim
under
theother
in
suppose
othervalue.
more
undercontrol
control
value.In
detail. Inother
Without
ofofexternal
external
otherwords, words,the
knowing
stimuli.
stimuli.
the
the
AsAslong
output
output
current
longtoas1asboth
will
will flip
outputflip
bothinputs
oror flop
flop
inputsininthe
between
between
thecircuit
two
two
circuitinin
Portas
Figure lógicas
1.3remain
remainethat
flip-flopsthe upper input is changed while the
input remains Figure 1.3
0 (Figure 0,0,the
1.4a). This the output
output
will cause (whether
(whether
the output 0 0orofor1)the
1)willwill
OR not
not
gate change.
change.
to However,tem-
However, tem-
porarily
regardless ofporarily
the other placing
placing
input a1 1on
ato onthe
this theupper
gate. upper
In input
input
turn, will
will
both force
force
inputs thethe
to output
output
the AND totobebe 1,1, whereas
whereas tem-
tem-
O dispositivo
porarily placing a 1 que
on é capaz
the lower de produzir
input will forceo resultado
the output de
to uma
be 0. dada operação
will now be 1,porarily
since the placing
other ainput
1 on to thethislowergateinput will force
is already 1 (the theoutput
outputpro- to be 0.
booleana, quando
Letususconsider se lhes
consider são
thisclaim
claim dados in os inputs,
more detail. éWithout
chamado de porta
knowing the (gate).
current As portas
output porta (gate)
by the NOT gateLet whenever this
the lower inputinof more
the detail.
flip-flop Without
is at 0).knowing
The out- the current output
the AND gatepodemof
of thetheser contruídas
circuit
willcircuit in Figure de
in Figure1,1.3,
then become variados
1.3,
which suppose
supposemeans tipos that
thatthat dethe
thethe tecnologia
upper
uppersecond input
input tais is como
changed
is changed
input to engrenagens,
to 1 while
to 1 while the relés
the
(interruptores
lower input remains 0 (Figure 1.4a). This will cause the output of the OR gate totodos
lower input eletromagnéticos),
remains 0 (Figure ou1.4a).meros This dispositivos
will cause óticos.
the output Nos ofcomputadores
the OR gate
dias
1.2 A pictorialbebede hoje, as portas
1,1,regardless
regardless
representation ofofofthe
AND, estão
the other
other
OR, implementadas
XOR, input
input
and NOT toto this
gates em
thisgate.
asgate.pequenos
wellInasInturn,
turn,
their circuitos
bothinputs
both
input elétricos
inputs totothethenos
ANDANDquais
tput values os gategate
valores will
will now now be 1, since
0 e be1 1,correspondem the
since the othera input other input
diferentes to this
to thisvalores gate is
gate is already already
de voltagem. 1 (the
1 (the output output
Nós não pro-nos
pro-
ducedbybythe
duced
precisamos detheNOT
NOTgate
preocupar gatewhenever
whenever
com esses the the lowerinput
lower
valores. input
O ofof
que thethe
nos flip-flop
flip-flop
interessa, is is
atat0).0).
de TheThe out- é
out-
momento,
AND
put of the
put of the estas
representar AND
AND gate gate
portas, will
will then then become
ORbecome 1, which
simbolicamente. 1, which
Note-se means
means quethat that
as the the second
second input
diferentes portastotosão
input
representadas por formas distintas, com os inputs representados num dos lados e o
Figure
Figure
output 1.2 A pictorial
1.2 A pictorial
representado representation
norepresentation
outro. As portas ofof AND,
AND, OR,OR,
fornecem XOR,
XOR, and
asand NOTNOT
bases gates
gates asas well
well
à construção asas their
their input
(oinput
sustento)
Inputs and
and output
output values
Output
values Inputs Output
ao computador, para que ele funcione.
! AND
AND OROR
Inputs Output Inputs Output
figura 1
output
inputs

inputs
output

0 0 0Inputs
Inputs Output 0
Output
0 0Inputs
Inputs Output
Output representações simbólicas
0 1 0 0 1 1 das portas AND, OR e
1 0 0 1 0 1
1 1 1 1 1 1
NOT, seus inputs e outputs
input
InputsandOutput
Inputs output
Output input
Inputs
Inputs or output
Output
Output

000000 00
0 0000
00 0
01 0 01
00 1
100011 00
0 00 1
101 11 1
XOR 111100 00
1 NOT 1110
10 1
11
1 11 1 11 1 11 1 11
output
input

Inputs Output Inputs Output

XOR
XOR input not NOT
NOT
output
Inputs Output Inputs Output

0
0
0
1
0
Inputs
1 Inputs
Output
Output 1
1
!
0
0 !
11
Inputs
00 Inputs
Output
Output
1 0 1
1 1 0
Inputs
Inputs Output
Output Inputs
Inputs Output
Output
! 0 00 0 00 00 11
Na página 1 1encontra-se um circuito sequencial
0 01 seguinte
1 1 1 (circuito
0 0 eletrónico cujo circuito sequencial
1 0 1
comportamento é1 automaticamente
0 1 afetado por entradas do passado) simbolicamente
1 11 00
representado por1operações booleanas. A isto se chama de flip-flop. Um flip-flop é, flip-flop
então, um circuito que produz um valor resultado de 0 ou 1, o qual permanece
constante até ocorrer um pulso (mudança temporária de valor) de um outro circuito
5 INTRODUÇÃO AOS SISTEMAS DIGITAIS
que provoca a alteração do output. Por outras palavras, o output alternar-se-á entre
dois valores sobre o feedback de um circuito externo. Por outro lado, existe um outro
tipo de circuitos cujo comportamento não é afetado por entradas passadas, mas sim
por entradas atuais.
Neste circuito abaixo, enquanto ambos os inputs permaneçam 0, o output
(quer seja 0 ou 1) nunca mudará. No entanto, se temporariamente colocarmos um 1 no
input superior, o resultado será 1, enquanto que se colocarmos um 1 no input inferior,
o resultado, forçosamente, será 0.
Vejamos com mais detalhe. Sem ter conhecimento do atual estado do1.1output,
Bits and Their Storage 23
imaginemos que o input superior é igual a 1, enquanto que o inferior é igual a 0. Isto
fará com que o resultado da porta OR seja 1, seja qual for o valor atribuído para o
Figure 1.3 A simple flip-flop circuit
figura 2
Input
input
Output
output um simples circuito flip-flop
(sequencial)

Input
input

outro input desta porta. Assim, ambos os inputs da porta AND serão 1, dado que a
outra porta perfaz o valor de 1 (a porta NOT traduz de 0 para 1). Por conseguinte, a
the OR gate will now be 1 (Figure 1.4b). This guarantees that the output of the
porta AND resolve a operação e finaliza-a com 1, o que significa que o segundo input
OR gate will remain 1, even when the upper input to the flip-flop is changed
para a porta
back OR será
to 0 (Figure 1. Isto
1.4c). garante que
In summary, theoflip-flop’s
output daoutput
porta has
OR become
permaneça 1, mesmo
1, and this
queoutput
o input superior seja alterado para 0. Em suma,
value will remain after the upper input returns to 0. o output do flip-flop torna-se 1, e
o mesmo manter-se-á independentemente do valor do input.
In a similar manner, temporarily placing the value 1 on the lower input will
force O thepropósito
flip-flop’sdooutput
estudotodos
beflip-flops
0, and thisé importante
output will dado três after
persist pontos.
thePrimeiro,
input
demonstra como toos0.aparelhos dos dias de hoje podem ser construídos, todos, através
value returns
destas pequenas portas e circuitos, um processo hoje designado por design de circuitos
digitais,
Figureárea
1.4 de grande
Setting the relevo daaengenharia
output of flip-flop to 1 informática.
Segundo, o conceito de flip-flop introduz-nos o conceito do abstrato e como
podea.ser
1 isútil na on
placed computação e arquitetura
the upper input. b. Thisde computadores.
causes the output of the OR gate to be 1 and,
Terceiro, porque, atualmente, inoturn, usothede flip-flops
output é gate
of the AND um tométodo
be 1. para o
armazenamento de bits, ou seja, o valor do output corresponde ao valor do bit, o qual
1
o flip-flop guarda. Outros circuitos podem 1 ajustar este valor enviando pulsos, e receber
1
com input o output do primeiro. Assim, podem ser criados imensos circuitos no interior
de um computador, e cada um guarda, assim, um bit de dados. A 1 esta tecnologia dá-se
1
o nome de integração de larga escala (very large-scale integration (VLSI)), que permite VLSI
que vários circuitos eletrónicos sejam contruídos numa só placa, chamada chip. Os chip
chips são placas com ferramentas abstratas dado que contêm milhões de flip-flops.
! 1
2. Sistemas numéricos e códigos
0
0

Tal como estudado na the


c. The 1 from unidade
AND gateanterior, os gate
keeps the OR circuitos
from digitais processam
changing
informação através de dados after theNa
binários. upper input
nossa returns
vida, to 0.coisa se encontra em dados
pouca
binários, ou até mesmo, num ponto de vista geral, em dados numéricos. Sendo assim, a
pessoa que desenha tais0 circuitos tem de fazer uma correspondência direta entre o
1
binário e os números que usamos na vida real. O interesse desta unidade é poder
1
1

1
INTRODUÇÃO AOS SISTEMAS DIGITAIS 6
aprender como é que várias unidades, mais especificamente, várias bases, se relacionam
entre si e como é que os dados podem ser representados em informação.
!
Elementos de um sistema de numeração
Um sistema de numeração é composto por vários elementos. Primeiro, de
forma a se poderem representar num papel, ou noutra via de escrita, um sistema
precisa de um alfabeto. Um alfabeto é, então, um conjunto de símbolos usados para alfabeto
representar valores, neste caso, numéricos. Tais valores numéricos têm uma lógica
adjacente, essa chamada de base. A base de um sistema corresponde à variação de um base
algoritmo da relação entre os valores presentes. Aqui, iremos considerar,
principalmente, as bases binária, octadecimal, decimal e hexadecimal (2, 8, 10 e 16,
respetivamente), embora hajam muitas outras, entre as quais, as bases 24, 60 e
complexa, que nós usamos frequentemente nos nossos relógios (base 24) e na
trigonometria (base 60).
A representação de um sistema também necessita de algumas regras - notação
posicional. Estas regras variam de sistema para sistema, sendo que basta que o notação posicional
comprimento de representação1 - número de símbolos - seja alterado, para que estas
 

comprimento de

mudem. representação
Se analisarmos, agora, a notação posicional podemos considerar que a uma
determinada quantidade X podemos associa uma lista ordenada de símbolos ou dígitos
dk:
equação 1
!X = (dn−1 ,dn−2 r n−2 ,...,d0 ,d−1 ,...,d− p )r quantidade de símbolos dk
!
O valor de X resulta de a cada símbolo estar associado um peso dependente da
respetiva posição:
! n−1 equação 2
!X = ∑dr k
k
= dn−1r n−1
+ dn−2 r n−2 −1
+ ...+ d0 + d−1r + ...+ d− p r −p
valor de X por peso

!
k=− p

com dk sendo o alfabeto (intervalo {0, ..., r-1}, n+p os símbolos e r a base.

número de símbolos base alfabeto


tabela 1
bases e alfabetos conhecidos
2 2 (binária) 0,1

8 8 (octadecimal) 0,1,2,3,4,5,6,7

10 10 (decimal) 0,1,2,3,4,5,6,7,8,9

16 16 (hexadecimal) 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

Através deste útlimo cálculo, podemos prever qual será o nosso alfabeto das
bases que pretendemos estudar (base 2, 8, 10 e 16).
Para exemplificar, podemos fragmentar um número, de acordo com o cálculo
anterior, e assim, convertê-lo para uma base decimal:
! DACA116 = 13 × 16 4 + 10 × 16 3 + 12 × 16 2 + 10 × 161 + 1× 16 0 = 896161

1 Na prática temos um conjunto finito de símbolos de representação e devem existir restrições à gama de representação.
7 INTRODUÇÃO AOS SISTEMAS DIGITAIS
!
Se nos dirigirmos às bases 8 e 16, podemos comprovar que ambas têm uma
relação direta com a base binária (2). Essa relação consiste no facto de um dígito octal relação direta
ser coincidente com três dígitos binários (bits), enquanto que um dígito hexadecimal é três dígitos binários
coincidente com quatro dígitos binários (nibble). quatro dígitos binários

base binária base octadecimal base decimal base hexadecimal


tabela 2
bases binária, octadecimal,

0 0 0 0 decimal e hexadecimal

1 1 1 1

2 2 2

3 3 3

4 4 4

5 5 5

6 6 6

7 7 7

8 8

9 9

Sabendo as relações diretas entre a base octal e hexadecimal com a binária,


podemos, muitas vezes, fazer substituição direta. substituição direta
!
! DACA116 = 1101 1010 1100 1010 00012
! 2715 8 = 010 111 001 1012
!
Com a notação hexadecimal, podemos também reparar que se torna mais útil
de utilizar, dado que, para palavras multibyte, em binário, o erro de leitura é muito
grande e a extensão do número também, enquanto que em hexadecimal conseguimos
inverter essa situação e escrever o mesmo número em pouco espaço, baixando assim, o
erro de leitura. Tomemos como exemplo o primeiro número binário acima
representado. Este número de vinte algarismos ocuparia muita memória no
computador, ao contrário do número DACA1, que apenas ocupa uma pequena porção
dela.
INTRODUÇÃO AOS SISTEMAS DIGITAIS 8
Mudanças de base
Há uma grande necessidade de, por vezes, efetuarmos uma mudança de base,
para que possamos fazer um câmbio entre o mundo real decimal e as instâncias de
processamento binário, por exemplo.
Basicamente, nesta sub-unidade “Mudanças de base”, pretendemos saber como
passar de uma representação em n dígitos e base r para uma representação em m
dígitos em base s.
Em geral uma quantidade resulta da justaposição de uma componente inteira
com uma componente fracionária. No caso de quantidades não inteiras deve adotar-se
um critério que determine o número de dígitos significativos consistente com os erros
de representação nas bases inicial e final. Os erros de representação são comuns, mas erros de representação
podem ser evitados. Para os evitar, e para generalizar, tomemos n como o número de
dígitos fracionários na base r e m o número de dígitos fracionários na base s. Assim,
interessa-nos determinar m tal que os erros de representação sejam o mais próximos
possíveis.
! equação 3
r −(n+1) s
! Er ≤ r ≈ Es ≤ s −(m+1) comparação do erro de

2 2 representação
−m −n log r
! s ≈ r ∴m ≈ n
log s
!
Se considerarmos que a mudança de base não deve trazer acréscimo de
precisão, então devemos consultar o resultado da seguinte operação:
! equação 4
⎢ log r ⎥ 2 determinação do erro de

! m = ⎢n ⎥
 

⎣ log s ⎦ representação com 



! operação chão (floor)
Por exemplo:
!
3 4 5
! 12.345 8 = 1× 8 + 2 + + +
8 64 512
⎢ log 8 ⎥
!m = ⎢ 3 log10 ⎥ = ⎢⎣ 2.7 ⎥⎦ = 2
⎣ ⎦
! 12.345 8 = 10.4510
!
O sistema aritmético humano assenta na base 10 (os primeiros seres
começaram a contar até 10, pois tinham dez dedos com que contar). Por esta razão,
para fazermos uma mudança da base r para a base s temos de processar um algoritmo
baseado em divisões sucessivas (DIVS). Basicamente o que acontece é que para
convertermos um número de base 10 para base 2, 8 ou 16, temos de dividi-lo
sucessivamente por 2, 8 e 16, respetivamente, guardando os seus restos.
!
Por exemplo (na página seguinte):
!
2 O operador é denominado “operador chão” (floor) e trunca a quantidade para o número inteiro imediatamente inferior.
9 INTRODUÇÃO AOS SISTEMAS DIGITAIS

432 2
400 216 2
32 200 108 2
20 16 100 54 2
12 16 8 40 27 2
!
12 0 8 14 20 13 2
0 0 14 7 12 6 2
0 6 1 6 3 2
1 0 2 1
1
! 43210 = 110110000 2
!
Ou até mesmo com a base 8:
!
1462 8
800 182 8
662 160 22 8
! 640 22 16 2
22 16 6
16 6
6
! 146210 = 2666 8
!
Adição e Subtração binária
Tal como na base 10, na base binária também podemos efetuar certas
operações, tais como a adição e a subtração. Para fazermos a adição e a subtração adição e subtração binária
temos que seguir a tabela abaixo e ter atenção a somas do género 1+1.

tabela 3
± 0 1
adição e subtração binária

0 0 1 (1±1 com transporte)

1 1 0

11101 11001
+11001 − 101
! e !
110110 10100

!
INTRODUÇÃO AOS SISTEMAS DIGITAIS 10
Multiplicação binária
Na multiplicação também temos uma tabela à qual devemos obedecer. Tal multiplicação binária
como na multiplicação de base 10, na de base 2, sempre que se multiplica por zero o
resultado é zero. Na mesma, usamos a técnica shift and add - algoritmo usualmente
usado para efetuar as multiplicações em bases decimais (multiplicar algarismo a
algarismo e depois somar.

tabela 4
x 0 1
multiplicação binária
0 0 0

1 0 1

10111
× 1101
00000
10111
010111
00000 -
!
0010111
10111 --
01110011
10111 - - -
100101011
!
Representação de quantidades negativas
O sistema de notação posicional, por si, não é capaz de representar
quantidades negativas. Em alternativa, usam-se outras convenções para as suas
representações. Entre elas, o sinal e módulo e os códigos de complemento. sinal e módulo, códigos de 

A convenção de sinal e módulo tem uma consistência muito própria com a complemento
notação posicional, embora tenha a necessidade de mais um bit, este, para representar
o sinal. Infelizmente, este sistema é natural para os humanos, mas impraticável nos
sistemas digitais, dado que existem ambiguidades próprias e o seu tamanho é n bits
mais 1 (para o sinal).
Por sua vez, os códigos de complemento, sendo usados mais frequentemente, o
complemento para um e para dois, traduzem-se num subconjunto da gama de
representação absoluta que codifica as quantidades negativas. Este sistema já se torna
possível e praticável em sistemas digitais, pois não necessita de um símbolo adicional
para a representação do sinal. Outra vantagem deste sistema é que ele permite
facilmente o processamento integrado da soma algébrica, ao contrário do sinal e
módulo.
!
Sinal e módulo
Como dito anteriormente, o sinal e módulo consiste numa representação
numérica, em base 2, que permite a representação não só de números positivos como
11 INTRODUÇÃO AOS SISTEMAS DIGITAIS
de negativos. Este sistema, também como referido anteriormente, contém certas
ambiguidades que fazem com que o processamento de dados com o próprio se torne
caótico e cíclico: o zero tem duas representações.
Em suma, o sistema traduz-se da seguinte forma:
!
! número = sinal módulo
! sinal → 0 quando é "+"; 1 quando é "-"
! módulo → representação posicional do número
! 6 = 00110 ! −6 = 10110
! 0 = 00000 = 10000
!
Complemento para a base r
Com n dígitos e base r, define-se o complemento para a base r de uma complemento para a base r
quantidade X, como
equação 5
! RC(X) = r −X
n
definição de complemento

! para a base r
onde RC significa complemento para a base (radix complement).
O que se pretende com este cálculo é substuir uma quantidade M - X pela
soma M + RC(X) = M + rn - X. Este procedimento produz resultados válidos desde
que:
equação 6
rn rn
!− ≤ M − X ≤ −1 generalização da definição de

2 2 complemento para a 

!∴ base r
! M − X = (M − X)mod r (3)
n

!
 

Complemento para a base 2


Como referido anteriormente, os códigos de complemento são relevantes
aquando de sistemas computacionais binários. Existem dois códigos mais usados: o
complemento para 1 e para 2. O complemento para 2 de uma quantidade representada
por n dígitos é: equação 7
!−X = (2 n − X) definição de complemento

! para 2
Por questões de simplificação, usamos o complemento para 1, representado por
n dígitos, da seguinte forma:
equação 8
!−X = (2 n − X − 1) + 1 definição de complemento

! para 1
Importa reconhecer que ! (2 − X − 1) = (X ...X )
n ' '
, donde:
! n−1 0

! − X = (X ...X ) + 1
' '

! n−1 0

!
!
!
3 A operação mod deve ser entendida como o resto da divisão inteira.
INTRODUÇÃO AOS SISTEMAS DIGITAIS 12
Overflow
Quando o resultado de uma soma de dois números positivos dá negativo ou a
soma de dois negativos dá positivo, dá-se o nome de overflow. Geralmente isto ocorre overflow
porque a operação excedeu a gama de representação.
−3 1101
+ − 6 +1 0 1 0
!
− 9 1 0 1 1 1 = +7
!
Em suma, podemos criar a seguinte tabela:

representação
tabela 5
representação de números 

1 - Sinal e módulo 1 bit para sinal (0 para positivo, 1 para negativo) + x bits binários
para número em notação posicional

2 - Complemento para 1 a) números positivos igual ao sinal e módulo

b) números negativos inverter o sinal e módulo

3 - Complemento para 2 a) números positivos igual ao sinal e módulo

b) números negativos inverter o sinal e módulo e


somar 1

nº sinal e módulo complemento para 1 complemento para 2

7 0111 0111 0111

6 0110 0110 0110

5 0101 0101 0101

4 0100 0100 0100

3 0011 0011 0011

2 0010 0010 0010

1 0001 0001 0001

0 0000 0000 0000

-0 1000 1111

-1 1001 1110 1111

-2 1010 1101 1110

-3 1011 1100 1101

-4 1100 1011 1100

-5 1101 1010 1011

-6 1110 1001 1010

-7 1111 1000 1001

-8 1000
13 INTRODUÇÃO AOS SISTEMAS DIGITAIS
Adição algébrica em complemento para um
Nesta operação podem ser realizadas através das regras de adição básicas
binárias. Os transportes para além do bit mais significativo devem ser sinalizados e
somados ao resultado, contando apenas os primeiros quatro dígitos.
!
Adição algébrica em complemento para dois
Nesta operação também podem ser realizadas através das regras de adição
básicas binárias. Os transportes para além do bit mais significativo não são sinalizados
nem somados ao resultado, contando apenas os primeiros quatro dígitos.
!
3. Códigos
Um código é uma sequência de n bits, em que cada sequência representa um
determinado valor. Esse determinado valor é também chamado de palavra de código. palavra de código
O comprimento n de um determinado código com m valores a codificar é calculado
através da seguinte expressão:
! equação 9
comprimento de uma palavra

! n ≥ ⎡⎢ log 2 (m) ⎤⎥ (4)  

! de código

BCD (Binary Coded Decimal)


O BCD (binary coded decimal) serve para codificar algarismos decimais. É um BCD
código regular - o seu comprimento de palavra é fixo -, ponderado - cada um dos bits código ponderado
de palavras de código tem um determinado peso -, descontínuo - palavras contínuas código descontínuo
diferem em mais de um bit -, não cíclico - a primeira e a última palavras não são código não cíclico
adjacentes - e redundante - nem todas as possíveis combinações de bits são usadas. código redundante
!
!
!
nº BCD (8421) ! tabela 6
! representação código BCD
0 0000
!
1 0001 !
25 = 11001
!
!
2 0010 10 2

3 0011
!
4 0100 ! 25 = 0010 0101
10
! BCD
5 0101
!
6 0110
!
!
!
7 0111

8 1000
!
9 1001 !
!
!
4 A operação teto (ceil) significa o valor inteiro imediatamente superior.
INTRODUÇÃO AOS SISTEMAS DIGITAIS 14
Código AIKEN e Excess-3 (XS3)
O código AIKEN é um código BCD autocomplementar, ou seja, o AIKEN, código

complemento para nove de cada dígito decimal obtém-se, simplesmente, subtraindo por autocomplementar
nove. Foi criado por Howard Hathaway Aiken, digital designer do computador Harvard
Mark I, da IBM.
Por sua vez o Excess-3 (XS3) é um código autocomplementar que se obtém Excess-3 (XS3)
pelo excesso de três.

nº AIKEN (2421) nº XS3


tabela 7
representação de código em 

0 0000 0 0011
AIKEN e XS3
1 0001 1 0100

2 0010 2 0101

3 0011 3 0110

4 0100 4 0111

5 1011 5 1000

6 1100 6 1001

7 1101 7 1010

8 1110 8 1011

9 1111 9 1100

!
Código de Gray
O código de Gray é um código não ponderado, regular, contínuo, cíclico, não
redundante e refletido, com uma distância de Hamming de 1. A distância de Hamming distância de Hamming
é a distância entre palavras consecutivas, logo, o número de bits que diferem duas
palavras de código consecutivas.
O código de Gray de um bit é constituído apenas por duas palavras: 0 e 1.
Num código de Gray de n bits, as primeiras 2n-1 palavras são iguais às do código de
Gray de n-1 bits precedidas de um zero (“0”) - na posição do bit mais significativo. As
últimas 2n-1 palavras são iguais às do código de Gray de n-1 bits, escritas pela ordem
inversa e precedidas de um um (“1”) - na posição do bit mais significativo.
Se pretendermos obter uma palavra de um código de Gray de n bits a partir
da palavra correspondente do código binário de n bits:
!
‣ Adicionamos à palavra do código binário um bit à esquerda e atribuímos-lhe
o valor 0;
‣ Numeramos todos os bits do código binário da direita para a esquerda;
‣ Atribuímos o valor 1 ao bit i do código de Gray se os bits i e i+1 da palavra
binária são diferentes;
‣ Atribuímos o valor 0 ao bit i do código de Gray se os bits i e i+1 da palavra
binária são iguais.
!
15 INTRODUÇÃO AOS SISTEMAS DIGITAIS
Se pretendermos obter uma palavra de código binário de n bits a partir da
palavra correspondente do código de Gray de n bits:
!
‣ Numeramos todos os bits do código de Gray da esquerda para a direita;
‣ Atribuímos o valor do bit um do código de Gray ao bit um do código
binário;
‣ O bit i (i=2,3, ..., n) do código binário é igual à soma exclusiva (XOR) do
bit i-1 do código binário do bit i do código de Gray.
!
Deteção de erros em sistemas digitais
Um erro em sistemas digitais corresponde à corrupção de dados de um valor
correto, para um valor diferente. Estes erros podem ocorrer tanto em sistemas de
transmissão de informação digital (sob forma de ruído), como em sistemas de
armazenamento (como memória, discos rígidos).
Os erros podem ser categorizados em dois tipos: erros singulares, quando só erros singulares
um bit de dados é corrompido; os erros múltiplos, quando dois ou mais bits de dados erros múltiplos
são corrompidos. Este último tipo de erro é muito menos frequente que o primeiro.
Os erros são detetáveis. Um código permite a deteção de erros, caso a
corrupção de uma palavra resulte numa nova palavra que não faz parte do mesmo
código. Deve-se ter por convenção que um sistema que permite a deteção de erros só
gera, transmite e guarda palavras de código válidas. Assim, se uma sequência de bits é
uma palavra válida de código, é assumida como correta, caso contrário, se uma
sequência de bits não for uma palavra de código, esta é assumida como não-válida. É
possível detetar todos os erros singulares caso a distância mínima entre todas os
possíveis pares de palavras de código seja menor ou igual a dois. A tal código dá-se o
nome de código de distância 2. código de distância 2
Para detetar erros múltiplos são necessários códigos de distância maior que 2.
De forma a criar um código de distância maior que 2, é necessário utilizar mais que um
bit de paridade. Por exemplo, um código de distância 3 permite a deteção de 2 erros.
A palavra inválida 1001011 (com um erro), está mais próxima da palavra 0001011 do
que qualquer outra palavra de código. Torna-se assim possível corrigir o erro
modificando a palavra recebida para a palavra mais próxima no código.
De uma forma geral, um código de distância m permite a correção de c erros.
! equação 10
⎢ m − 1⎥
!c = correção de erros por
⎢⎣ 2 ⎥⎦
! distância de Hamming

O método de Hamming permite gerar códigos de distância 3. Aqui, b bits de


informação são entrelaçados com p bits de paridade:
! equação 11
!n = b+ p distância de código e bits de
! paridade
Os bits de paridade são colocados nas posições específicas do código resultante
(aos quais correspondem a potências de 2). As restantes posições são ocupadas pelos
bits de informação.
!n = 2
p
−1 b = 2p − p −1 equação 12
! posição de bits de paridade e
de bits de informação
INTRODUÇÃO AOS SISTEMAS DIGITAIS 16
É possível adicionar mais um bit de paridade ao código de Hamming de
distância 3 e criar, deste modo, um código de distância 4. Este último código permite
a correção de um erro ou dois erros.
!
Códigos CRC
Os códigos CRC (Cyclic Redundancy Check) são muito usados em discos códigos CRC
rígidos e em redes de comunicação. Estes permitem detectar erros múltiplos que
aparecem agrupados num bloco ou pacote de dados (tais erros são chamados burst
errors). Um burst é um conjunto de b bits, que começa e acaba com um bit errado e burst errors
que dista do próximo burst, b ou mais bits. Um código CRC de n bits aplicado a uma
sequência de dados de comprimento arbitrário permite detetar qualquer sequência
errada composta por até n bits.
O algoritmo para gerar um código CRC de n bits usa um gerador polinomial
composto por n+1 bits que funciona como divisor módulo 2 da mensagem original. O
resto da divisão R é o código CRC gerado. Sejam M os dados a transmitir (com
número arbitrário de bits), G o polinómio gerador de grau n (com n+1 bits) e R o
resto da divisão módulo 2 de M por G (com n bits). A mensagem a transmitir calcula-
-se através da soma M + R. G é conhecido por ambos receptor e transmissor. A
escolha do G determina quais os tipos de erros que são detetados.
Por exemplo, imaginemos que M=11100110, G=11001 (n=4) e CRC4:
G=x4+x3+x0. O algoritmo é o seguinte:
!
‣ Adicionar n zeros à parte menos significativa de M: 11100110 0000 (só
no transmissor);
‣ Alinhar o polinómio gerador com o bit mais significativo de M que está
a 1;
‣ Gerar uma nova palavra realizando a operação XOR entre M e G;
‣ Se M resultante é diferente de 00…0, ir ao ponto 2;
‣ Se M = 00…0, os n bits menos significativos contêm R.
!
4. Álgebra de Boole
Tal como já foi referido atrás muito sumariamente, uma álgebra de Boole é álgebra de Boole
uma estrutura matemática baseada num conjunto {B, +, . }, que satisfaz o seguinte
conjunto de postulados: fecho, comutatividade, elementos neutros, distributividade,
complementaridade e cardinalidade.
Aqui tenhamos como conceito, de que um sistema digital é uma entidade que sistema digital
processa um conjunto finito de entradas xi, i=0, …, n-1 para produzir um conjunto
finito de saídas yk, k=0, …, m-1. Num contexto binário, xi, yi pertencentes ao conjunto
{0,1}.
!
Postulados
Vejamos os postulados, ponto por ponto, pela ordem apresentada
anteriormente. Tal como estudámos, a álgebra de Boole satisfaz um conjunto de
postulados, nos quais o fecho é um deles. fecho
equação 13
⎧⎪ b1 + b2 ∈B
! ∀b1 ,b2 ∈B, ⎨ fecho em B
b .b ∈B
⎩⎪ 1 2
17 INTRODUÇÃO AOS SISTEMAS DIGITAIS
Este postulado garante que para ambas as operações deste espaço vetorial, estas são
fechadas em B.
O segundo postulado é o da comutatividade. comutatividade
! equação 14
⎧⎪ b1 + b2 = b2 + b1
! ∀b1 ,b2 ∈B, ⎨ comutatividade em B
b .b = b2 .b1
⎩⎪ 1 2
!
O terceiro postulado é o da existência de elementos neutros: existência de elementos
! neutros
! ∃b0 ∀b ∈B :b + b0=b equação 15
! ∃b1∀b ∈B :b.b1 = b existência de elementos
! neutros em B
O quarto postulado é o da distributividade: distributividade
! equação 16
⎧⎪ b1 + b2b3 = (b1 + b2 ).(b1 + b3 ) distributividade em B
! ∀b1 ,b2 ,b3 ∈B, ⎨
b .(b + b ) = b1 .b2 + b1b3
⎩⎪ 1 2 3
!
O quinto postulado é o da complementaridade: complementaridade
!
⎧⎪ b + b' = b1 equação 17
! ∀b∃b' ∈B, ⎨ complementaridade em B
⎪⎩ b.b' = b0
!
O sexto e último postulado é o da cardinalidade: cardinalidade
! equação 18
! # B ≥ 2 → ∀b ∈B ∃a ∈B : a ≠ b
! cardinalidade em B
Valores, Operadores e Expressões
Num contexto binário temos naturalmente o conjunto de valores definido por
B={0,1}. Circuitos eletrónicos elementares funcionando em modo comutado
(switched), implementam os operadores lógicos elementares de acordo com as regras
usuais da lógica matemática. As expressões são um conjunto de variáveis e/ou expressões
constantes associadas por operadores, por exemplo, a que se segue:
! equação 19
! x + y.(u.v'+ z) exemplo de expressão
! booleana
Dualidade
O princípio da Dualidade fundamenta-se da seguinte forma: toda a expressão princípio da Dualidade
formada pelas variáveis a, b, c, … mais os elementos 0 e 1 e que envolva as operações
de soma lógica, de produto lógico e de complementação possui uma expressão dual que dual
se obtém trocando cada soma por um produto lógico e cada produto por uma soma
lógica, e ainda os 0’s por 1’s e vice-versa.
! equação 20
! (a + a. b) = a.(a + b) (a.1'+ a'.1)D = (a + 0').(a + 0')
D
princípio da Dualidade
INTRODUÇÃO AOS SISTEMAS DIGITAIS 18
Teoremas
Os teoremas são asserções acerca da validade da equivalência de expressões
booleanas. Estas são demonstráveis a partir de postulados e/ou outros teoremas.
Também o podem ser através de indução completa. O princípio da dualidade garante
que uma vez demonstrada a validade de um teorema fica demonstrada a validade do
respetivo dual.
O primeiro teorema a ser estudado é o da unicidade do elemento neutro. No unicidade do elemento
conjunto B há apenas um e um só elemento b0 tal que b+b0=b e apenas um e um só neutro
elemento b1 tal que b.b1=b.
A idempotência, é um outro teorema que nos garante que qualquer que seja o idempotência
b pertencente a B, b+b=b e b.b=b.
Um terceiro teorema, diz-nos que qualquer que seja o b pertencente ao nosso
conjunto B, b+b1=b1 e b.b0=b0. Este é o teorema do elemento absorvente. elemento absorvente
O teorema da absorção, garante-nos que qualquer que seja o nosso x e y absorção
pertencentes ao B, x+xy=x. Semelhante a este, o teorema da simplificação diz que x+ simplificação
+x’y=x+y.
Os dois teoremas que se seguem são os da adjacência que diz que, com as adjacência
mesmas considerações que o anterior, xy+xy’=x, e o da involução, no qual qualquer involução
que seja x pertencente a B, (x’)’=x.
A propriedade associativa também é um teorema para que qualquer que seja propriedade associativa
x, y, z pertencentes a B, x(yz)=(xy)z.
Já as Leis de De Morgan são um teorema mais extenso, no qual, (x+y)’=x’.y’, leis de De Morgan
(xy)’=(x’+y’).
Finalmente, o nosso último teorema em estudo é o do consenso. Este teorema consenso
necessita de uma maior atenção na sua explicação. O teorema do consenso diz-nos que,
quaisquer que sejam os x, y, z pertencentes ao nosso conjunto B, x.y+x’.z+y.z=x.y+
+x’z. Demonstremos então, a sua veracidade:
! equação 21
! x.y + x '. z + y. z = x.y + x '. z + y. z(x + x ') =
demonstração do teorema do
! = x.y + x '. z + y. z. x + y. z '. x =
Teoremas
consenso
! = x.y(b1 + z) + x ' z(b1 + y) =
Consenso na prática ! = x.y + x '. z
!
Na prática,doo “hazard”
Correcção teorema docom
consenso pode ser representado
a introdução do termo doatravés do seguinte
consenso
circuito:
!
! 1 Y figura 3

!
0
consenso na prática
! YZ F

! 1

! 0 Z

!
! X

!
Operadores compostos
Existem outros operadores, compostos, como são exemplo os dois que vamos
estudar a seguir: o operador XOR e o operador implicação. operador XOR, operador
implicação

AFS (Univ. Aveiro) ISD 21 / 42


19 INTRODUÇÃO AOS SISTEMAS DIGITAIS
O operador XOR (em inglês exclusive-or), o qual significa “ou” exclusivo, o
que faz com que o seu resultado possa ser ou x ou y, mas nunca ambos. Assim, entre x
e y, o XOR é um operador que provoca que seja verdade quando temos x’y ou xy’. O
operador XOR tem o seguinte símbolo ⨁ e provoca então a seguinte igualdade:
! equação 22
!x⊕y= x.y'+ x '.y
! definição da operação XOR
Por sua vez, o operador implicação tem o símbolo seguinte → e tem como
possível leitura “se… então”. A tabela de verdade é a seguinte:
! tabela 8
x → y
tabela de verdade da
00 1 operação implicação
01 0
10 1
11 1

!
Outros conjuntos completos de operadores, a partir dos quais se pode
representar toda e qualquer relação booleana, são, por exemplo, os seguintes:
!
‣ {+, . , ‘ };
‣ {+, ‘ };
‣ { . , ‘ };
‣ NAND: a.b+c.d = (a.b+c.d)’’ = ((a.b)’.(c.d)’)’;
‣ NOR: (a+b).(c+d) = [(a+b).(c+d)]’’ = ((a+b)’+(c+d)’)’.
!
Funções booleanas
Uma função booleana é uma regra (correspondência) que associa um elemento função booleana
do conjunto B={0,1} a cada uma das 2n combinações possíveis que n variáveis
independentes podem assumir. Tanto o domínio como o contradomínio são conjuntos
enumeráveis e finitos de vetores binários.
Vejamos uma generalização das leis de De Morgan:
! equação 23
! f (x0 ,..., xn−1 ,0,1,+,.)' = f (x '0 ,..., x 'n−1 ,1,0,.,+) generalização das leis de De
! Morgan
Assim, como exemplos, tenhamos os seguintes:
! equação 24
! f (x, y, z) = x.y(z '+ y + x ') + z. x(y + z ')
exemplo de aplicação
! f (x, y, z)' = [ (x '+ y'+ z.y' x)].(z '+ x + y'. z)
!
Tomemos também uma aplicação do princípio da dualidade, mas a funções:
! equação 25
! f (x0 ,..., xn−1 ,0,1,+,.)D = f (x '0 ,..., x 'n−1 ,1,0,.,+) aplicação do princípio da
! dualidade
Assim, como exemplos, tenhamos os seguintes:
!
! f (x, y, z) = x.y(z '+ y + x ') + z. x(y + z ') equação 26
exemplo de aplicação
! f (x, y, z)D = [ (x + y + z '.y. x ')].(z + x '+ y. z ')
!
INTRODUÇÃO AOS SISTEMAS DIGITAIS 20
Como podemos reparar, existe uma forte relação entre complementaridade e
dualidade:
! f (x0 ,..., xn−1 ,0,1,+,.)' = f (x0 ,..., xn−1 ,0,1,+,.)D equação 27
! relação entre

Essa relação de igualdade pode ser usada como no seguinte exemplo: complementaridade e
! dualidade
f (x, y, z) = x.y'+ x '.y + y'. z
! equação 28
! f (x ', y', z ') = x '.y + x.y'+ y. z ' demonstração da relação
! f (x ', y', z ')D = (x '+ y). (x + y'). (y + z ') anterior
! = f (x, y, z)'
!
A representação de funções booleanas é feita através de tabelas e é única. representação
Uma dada função f tem uma única tabela de verdade. Do mesmo modo, uma dada tabela de verdade
função booleana admite múltiplas representações algébricas. Uma representação representações algébricas
algébrica inclui frequentemente, termos redundantes. A eficiência na implementação
técnica destas funções obrigará, automaticamente, ao uso de processos de
simplificação.

Formas canónicas
Para passarmos de uma representação tabular para uma representação
algébrica podemos e devemos dar uso a um novo conceito - o de formas canónicas. formas canónicas
Para definirmos uma forma canónica, podemos, para já, dizer que se trata de uma
forma, não mínima, de representar funções booleanas. Uma forma canónica, entre
quatro tipos possíveis, é uma soma ou um produto de termos mínimos ou termos termos mínimos
máximos. Um termo mínimo, ou produto canónico de ordem k, mk é o produto lógico termos máximos
das n variáveis booleanas independentes, em que cada uma delas aparece uma e uma
só vez, com o seu próprio valor ou complementada consoante toma valores 1 ou 0,
respetivamente, na k-ésima combinação das variáveis independentes. Por outro lado,
um termo máximo, ou soma canónica de ordem k, Mk é a soma lógica das n variáveis
booleanas independentes, em que cada uma delas aparece uma e uma só vez, com o
seu próprio valor ou complementada consoante toma valores 0 ou 1, respetivamente,
na k-ésima combinação das variáveis independentes.
Recorrendo à definição dos termos canónicos, temos que a 1ª forma canónica 1ª forma canónica
(soma de produtos - SOP), ou forma disjuntiva normal é dada pela seguinte forma:
! 2 n −1 equação 29
! f ( xn−1 , xn−2 ,..., x0 ) = ∑ mk . fk primeira forma canónica

!
k=0

Na prática, ao identificar os 1’s na saída de uma tabela de verdade (termos mínimos),


ou seja, ver quais são os fk=1 e somar os respetivos termos mínimos mk, estamos a
avaliar a primeira forma canónica:
! 2 n −1 equação 30
! f ( xn−1 , xn−2 ,..., x0 ) = ∑ mk primeira forma canónica

! revisitada
k=0
21 INTRODUÇÃO AOS SISTEMAS DIGITAIS
Mais uma vez, recorrendo às definições de termos canónicos temos que a 2ª
forma canónica (produto de somas - POS), ou forma conjuntiva normal, é dada pela 2ª forma canónica
seguinte igualdade:
2 n −1 equação 31
! f ( xn−1 , xn−2 ,..., x0 ) = ∏ ( M k + fk ) segunda forma canónica

!
k=0

Na prática, ao identificar os 0’s na saída de uma tabela de verdade (termos máximos),


ou seja, ver quais são os fk=0 e somar os respetivos termos máximos Mk, estamos a
avaliar a segunda forma canónica:
!
2 n −1 equação 32
! f ( xn−1 , xn−2 ,..., x0 ) = ∏ M k segunda forma canónica
!
k=0
revisitada
Partindo da 1ª forma canónica e após dupla negação, obtemos a 3ª forma
canónica, uma implementação com NAND’s: 3ª forma canónica
!
! f ( xn−1 , xn−2 ,..., x0 ) = f (...)'' equação 33
terceira forma canónica
⎛ 2 −1 ⎞
n

! = ⎜ ∑ mk . fk ⎟ ''
como dupla negação da
⎝ k=0 ⎠ primeira

⎛ 2 −1 ⎞
n

! = ⎜ ∏ m 'k ⎟ '
⎝ ⎠
k=0

!
Partindo da segunda forma canónica e após dupla negação, temos que:
!
! f ( xn−1 , xn−2 ,..., x0 ) = f (...)'' equação 34
quarta forma canónica
⎛ 2 −1 ⎞
n

! = ⎜ ∏ ( M k + fk )⎟ '
como dupla negação da
⎝ k=0 ⎠ segunda

⎛ 2 −1 ⎞
n

! = ⎜ ∑ M 'k ⎟ '
⎝ k=0 ⎠
!
Admitindo uma especificação completa da tabela de verdade, a lista dos
produtos canónicos implica a lista das somas canónicas. Por exemplo,
!
! f (x2 , x1 , x0 )' = ∑ m(3, 4,5, 7) = ∏ M (0,1,2,6) equação 35

! implicação entre produtos e


somas canónicas
Por outro lado se, por exemplo, a função tivesse os termos trocados, ficaria:
! equação 36
! f (x2 , x1 , x0 )' = ∑ m(0,1,2,6) = ∏ M (3, 4,5, 7)
implicação entre produtos e
! somas canónicas (simetria)
Pode acontecer que nem nem sempre todas as combinações de entradas são
passíveis de ocorrer. Pode acontecer, também, que não interesse especificar a saída
para várias combinações de entrada. As entradas para as quais não se especifica, à
INTRODUÇÃO AOS SISTEMAS DIGITAIS 22
partida a saída, dizem-se irrelevantes. As combinações irrelevantes podem contribuir
para a minimização da(s) forma(s) booleana(s). As funções booleanas assim definidas
dizem-se incompletamente especificadas.
!
5. Minimização de funções booleanas
Como já tivémos oportunidade de estudar, uma função booleana é uma regra
(correspondência) que associa um elemento do conjunto B={0,1} a cada uma das 2n
combinações possíveis que as variáveis independentes podem assumir.

figura 4
um sistema combinatório
⎡ x1 ⎤ ⎡ y1 ⎤
X=⎢ ⎥ Y=f(x) Y =⎢ ⎥
⎢⎣ xn ⎥⎦ ⎢⎣ ym ⎥⎦

Também estudámos uma passagem sistemática da descrição por tabela de


verdade para uma descrição algébrica. Existem implementações a dois níveis: a
primeira forma canónica - soma de produtos (SOP) -, a segunda forma canónica -
- produto de somas (POS) -, terceira forma canónica - dupla negação da primeira
forma canónica (NAND-NAND) - e quarta forma canónica - dupla negação da segunda
forma canónica (NOR-NOR). Na maioria das vezes as formas canónicas não são as
realizações mais simples em número de portas lógicas e no número de entradas de cada
porta (fan-in). fan-in
Uma simplificação é recomendada, dado que com ela, muitas vantagens estão simplificação
ligadas. Entre elas, a redução da complexidade, ao nível da implementação - redução
do número de literais ou entradas lógicas (menos entradas implica portas mais rápidas
em algumas tecnologias e os fan-ins são tipicamente limitados), redução do número de
portas (número de portas (ou componentes) influencia custos de produção e os atrasos
mínimos requerem normalmente mais portas) e redução do número de níveis lógicos
(menor número de níveis lógicos implica menos tempo de propagação) -, ao nível de
métodos tradicionais - reduzir o atraso à custa do aumento do número de portas - e de
métodos modernos - equilíbrio entre a relação atraso versus número de portas.
O objetivo principal, então, da simplificação algébrica de uma função booleana
f de n variáveis é encontrar uma função g, equivalente a f e que minimize um
determinado critério de custo. Assim, é conveniente que haja: um número mínimo de
instâncias de variáveis; um número mínimo de instâncias de variáveis numa soma de
produtos (ou produto de somas); um número mínimo de termos numa soma de
produtos (produto de somas) desde que não exista uma outra expressão com o mesmo
número de termos e com menos instâncias de variáveis.
A simplificação algébrica é então um recurso pertinente mas muitas vezes não
sistemático aos teoremas da álgebra de Boole. Simplifiquemos então uma função
exemplo, como a seguinte:
! equação 37
! f (x, y, z,w) = xy + z + xzw + yzw =
simplificação a forma
! = xy + z + z (xw + yw) =
irredutível
! = xy + z + w(x + y) =
!= xy + z + w(xy ) =
! = xy + z + w (forma irredutível)
23 INTRODUÇÃO AOS SISTEMAS DIGITAIS
Expressões irredutíveis
A abordagem “manual” pode conduzir a função mais simples e irredutíveis, irredutíveis
mas não necessariamente mínimas.
Todas as expressões são irredundantes (irredutíveis). A supressão de qualquer
termo ou instância de variável conduz a uma função diferente.
! equação 38
! f = xyz + xyz + xyz + xyz + xyz + xyz =
! = xyz + yz (x + x ) + yz(x + x ) + xyz = exemplo de solução (1 de 3)

! = z (xy + y ) + z(y + xy ) =
! = z (x + y ) + z(y + x) =
! = zx + zy + zy + zx
!
Mais uma vez, expressões irredutíveis podem não ser mínimas. Pode existir
mais que uma expressão mínima. Vejamos o exemplo seguinte, com a mesma função
que a anterior:
! f = xyz + xyz + xyz + xyz + xyz + xyz = equação 39
exemplo de solução (2 de 3)
!= xz (y + y ) + xy(z + z ) + yz(x + x ) =
! = xz + xy + yz
!
É, assim, conveniente desenvolver processos que produzam o conjunto de todas
as expressões mínimas para seleção segundo outros critérios. Vejamos um terceiro
exemplo, no qual se experimenta uma outra solução do nosso exercício:
!
! f = xyz + xyz + xyz + xyz + xyz + xyz = equação 40
! = xy(z + z ) + xz(y + y ) + yz (x + x ) = exemplo de solução (3 de 3)
! = xy + xz + yz
!
Adjacência e simplificação
Como processo de seleção para simplificação de funções booleanas, vejamos
um fundamento, o teorema da adjacência, muito usado nos três exemplos dados teorema da adjacência
anteriormente. Aqui, para todo o x e y pertencentes ao nosso conjunto B, xy+xy’=x.
Para presenciar este passo, demonstremo-lo com dois simples exemplos:
!
! f = ab'+ ab = a(b'+ b) = a equação 41
! g = a'b'+ ab' = b'(a'+ a) = b' aplicação do teorema da

! adjacência

Cubos Booleanos
Uma técnica para identificar quando é que se pode aplicar o teorema da
adjacência é usando cubos booleanos. Esta é também uma forma alternativa à tabela cubos booleanos
de verdade. Assim, um cubo de n variáveis cada vértice, é adjacente a n vértices, isto
é, para cada termo mínimo existem outros n termos mínimos que partilham n-1
variáveis e diferindo, portanto, apenas numa variável.
De forma a fazermos o mapeamento das tabelas de verdade em cubos
booleanos, identificamos três tipos de geometria de vértices: ON-set - vértices a cheio;
OFF-set - vértices vazios; DC-set - vértices tipo X.
INTRODUÇÃO AOS SISTEMAS DIGITAIS 24
Para já vejamos três tipos de cubos, por número n de variáveis por vértice:
!
! 011 111 figura 5
! 01 11 001
cubos booleanos: cubo-1,
! 101 cubo-2 e cubo-3
! x

!
y z 010
0 1 y 110
! x
! 00 10 000 x 100

!
Agora vejamos exemplos de geometria de vértices dos cubos:
!
! figura 6
! 01 11 01 11
análise de cubo-2
!
! B B

! 00 A 10
! 00 A 10

!
No primeiro cubo-2 existem duas variáveis, designadas por A e por B. A
variável A está constante e igual a “1”, enquanto que no segundo cubo-2 a variável B é
constante e sempre “0”. Já os valores de B e de A, para os primeiro e segundo cubo-2,
respetivamente, circulam perante um loop. A estes cubos dá-se-lhes o nome de cubos
de dimensão n-1 ou subcubos. cubos de dimensão n-1
Já os cubos-3 são diferentes. Vejamos os seguintes exemplos:
!
!
011 111 011
! 111 011 111
figura 7
001 001
! 001 101 análise de cubo-2
101
! 101

z 010 z 010
! z 010
y 110 y
! 110 y 110

000 x 100 000 x


! 100 000 x 100

!
Analisemos exemplo a exemplo. No primeiro caso é impossível explorar a
adjacência (teorema), dado que as formas canónicas são irredutíveis. Fazendo uma
tabela de verdade, podemos, mais facilmente, comprovar que a função do primeiro
cubo-3 é igual a x⨁y⨁z. No segundo caso existem três casos de adjacência, os quais se
podem comprovar através da contiguidade dos pontos em 101, 111, 011 e 110. Já o
terceiro caso tem uma adjacência sucessiva em quatro vértices (geometricamente
formando um plano). Aqui apenas se mantém o x, y e z são eliminadas.
Então já podemos dizer que um subcubo n-m é um agrupamento de 2n subcubo n-m
vértices, cada um deles adjacente a m vértices na coleção. Por exemplo, um subcubo
3-0, um vértice gera um mintermo (produto), com três literais; um subcubo 3-1, uma
aresta, gerando um produto com dois literais; um subcubo 3-2, uma face, gerando um
produto com um literal; um subcubo 3-3, um cubo, gerando a constante “1”. Em geral,
um subcubo-m dentro de um cubo-n (m<n) gera um produto com n-m limites.
!
!
!
25 INTRODUÇÃO AOS SISTEMAS DIGITAIS
Métodos dos mapas de Karnaugh (K-map)
Para n>3 é praticamente impossível a utilização gráfica dos cubos booleanos
para identificar quando se pode aplicar o teorema da adjacência. Assim, surge uma
outra alternativa gráfica de visualização da tabela de verdade: os mapas de Karnaugh. mapas de Karnaugh
Aquio objetivo continua a ser identificar quando se pode aplicar o teorema da
adjacência.
Os mapas de Karnaugh são “isomorfos” aos cubos booleanos. Tendo uma
abordagem fundamentalmente heurística, este método é útil para n≤6.
Em cada dimensão, para garantir a adjacência, a evolução das coordenadas
binárias de cada termos mínimo obedece ao código de Gray. Assim, apresentamos os
mapas de Karnaugh para duas, três e quatro variáveis:
!
!
! A A figura 8
! mapas de Karnaugh de 2, 3 e
! b 0 1 c 00 01 11 10 cd 00 01 11 10
4 variáveis
! 0 0 00
!
0 2 0 2 6 4 0 4 12 8

! 1 1 3 1 1 3 7 5 01 1 5 13 9

!
D
B 11
!
3 7 15 11
C

! 10 2 6 14 10

! B B

!
As adjacências num K-map (abreviatura de mapa de Karnaugh) podem-se ver
como no seguinte exemplo, onde também podemos comprovar o isomorfismo de que
falávamos atrás.
!
!
! y 011 111 figura 9
! 00 01 11 10 001 isomorfismo entre K-Map e
! x
101 cubo booleano
! 0 000 001 011 010

! z 010
y 110
! 1 100 101 111 110

! z 000
x 100

!
Vejamos, assim, alguns exemplos acompanhados das suas funções, com o K-
-map.
!
! y x figura 10
exemplos de aplicação de
! b 0 1 x 00 01 11 10 z 00 01 11 10
mapas de Karnaugh
! 0 0 1 0 0 0 1 0 0 0 0 1 1

!
! 1 0 1 1 0 1 1 1 1 0 0 1 1

! z y

!
! f=a f = yz+xz+xy f=x

!
INTRODUÇÃO AOS SISTEMAS DIGITAIS 26
Ao ter mapas com três variáveis, os seguintes exemplos ou seus semelhantes,
podem acontecer.
! figura 11
! exemplos de aplicação de
! x

! z 00 01 11 10
mapas de Karnaugh com

! f = ∑ m(0, 4,5,6) = zy + zx + xy
três variáveis

! 0 1 0 1 1

! 1
!
0 0 0 1

! y

!
! x

!
! z 00 01 11 10

! 0 1 0 1 1 f = ∑ m(0,1, 4,5,6, 7) = x + y
!
! 1 1 0 1 1

! y

!
Do mesmo modo, ao ter mapas com quatro variáveis, o seguinte exemplo ou
seus semelhantes, podem acontecer.
!
! figura 12
!
x

exemplo de aplicação de
! zw 00 01 11 10
mapas de Karnaugh com
! 00
! quatro variáveis
1 0 0 1

! 01 0 1 0 0
f = ∑ m(0,2, 3,5,6, 7,8,10,11,14,15) =
! w

! z
11 1 1 1 1
= z + yw + xyw
! 10 1 1 1 1

!
!
B y

A minimização, tal como a segunda forma canónica, podem ser minimizados


com maxtermos. Assim, teríamos, por exemplo:
!
! figura 13
! x

exemplo de aplicação de
! zw 00 01 11 10 f = ∑ m(0,2, 3,5,6, 7,8,10,11,14,15) =
! = ∏ M (1, 4,9,12,13)
minimização com maxtermos

! 00 1 0 0 1

! 01 0 1 0 0
f = (x + y + z)(z + w + y )(z + w + y)
! w

! 11 1 1 1 1
f = ∑ m(1, 4,9,12,13) = xyz + zwy + zwy
!
z
10 1 1 1 1

! f = xyz + zwy + zwy =


! B y

= (x + y + z)(z + w + y )(z + w + y)
!
!
!
27 INTRODUÇÃO AOS SISTEMAS DIGITAIS
Minimização com don t care s
Os “don’t care’s" (termo inglês para “não interessa”, “desprezável”) podem ser
tratados como 0’s ou 1’s, conforme seja mais útil à simplificação da função booleana.
Eles são sinalizados com um “x”. Assim, tomemos o seguinte exemplo:
!
!
! A figura 14

! 00 01 11 10
f = ∑ m(1, 3,5, 7,9) + ∑ d(6,12,13)
exemplo de aplicação de

!
cd
minimização com don’t cares
! 00 0 0 x 0
f = AD + CDB (sem don't care's)
! 01 1 1 x 1

! D f = AD + CD (com don't care's)


! 11 1 1 0 0

! C
10 0 x 0 0

!
! B B

!
Estratégia de cobertura
De modo a efetuarmos uma boa estratégia de cobertura de uma mapa de
Karnaugh, devemos antes conceitualizar três termos não conhecidos até ao momento.
Um implicante é um termo do ON-set ou qualquer grupo de termos que possam ser implicante
combinados num mapa de Karnaugh - em suma, é uma associação de termos mínimos
(o mesmo que subcubos). Um implicante primo (IP) é um implicante que não pode ser implicante primo (IP)
combinado com outro implicante de forma a eliminar um termo. Um implicante primo
essencial (IPE) é um implicante que, se um termo do ON-set estiver coberto por um implicante primo essencial
único implicante, então é essencial - há pelo menos um termo mínimo que é coberto (IPE)
apenas e só por este implicante.
Quando se lida com o OFF-set, as associações de “0” no mapa de Karnaugh
designam-se por implicados. implicados
Vejamos o seguinte exemplo, onde podemos encontrar seis implicantes primos
{! BC,CA, AB, ABD, ACD, BCD }. A sua expressão incluirá todos os implicantes
primos essenciais que assegurem a cobertura total do ON-set.
!
!
!
! figura 15
! A

exemplo de estratégia de
! cd 00 01 11 10
cobertura
!
! 00 0 1 1 0

! 01 1 1 1 0 f = BC + CA + ABD
! D

! 11 1 0 1 1

!
C
10 0 0 1 1

! B B

!
!
!
INTRODUÇÃO AOS SISTEMAS DIGITAIS 28
Vejamos outro exemplo:
!
!
! A figura 16
! 00 01 11 10
exemplo de estratégia de
! cd

00 0 0 1 0 5 Implicantes Primos
cobertura

! { ABC, ACD, ABC,CDA, BD}


! 01 1 1 1 0
D

! 11 0 1 1 1

! C neste caso a expressão é feita


! 10 0 1 0 0
apenas de IPE's
! B B
f = ABC + ACD + ABC + CDA
!
!
Algoritmo de cobertura para soma de produtos mínima
Existe um algoritmo definido, e simples, para a eficácia na cobertura para a
soma de produtos mínima. Esse algoritmo consiste no seguinte conjunto de passos a
seguir: passo 1 - encontrar um termo no ON-set ainda não coberto por um implicante;
passo 2 - encontrar grupos “máximos” de 1’s e X’s adjacentes ao termo. Considerar,
para tal, as adjacências entre linhas de tipo (fundo) e colunas primeira/última. Estes
formam os implicantes primos (sempre contendo um número de elementos potência de
2). Repetir os passos 1 e 2 até encontrar todos os implicantes primos; passo 3 -
- revisitar os 1’s no mapa de Karnaugh. Se cobertos por um único implicante primo,
esse é essencial, e faz parte da cobertura final. Os 1’s que ele cobrir não precisam de
voltar a ser considerados; passo 4 - se sobrarem 1’s ainda por cobrir por implicantes
primos essenciais, selecionar o menor número de implicantes primos que cubram os 1’s
que sobram.
!
6. Blocos Combinatórios
Até ao momento desenvolvemos e estudámos métodos básicos usados em
sistemas digitais. Por outras palavras, foi uma introdução ao conteúdo que agora
vamos trabalhar: blocos combinatórios. Logo na primeira unidade (ver §Ambiente blocos combinatórios
digital) referimos que existiam dois tipos genéricos de circuitos: circuitos combinatórios
e circuitos sequenciais. Nesta disciplina vamos estudar ambos, mas começaremos pelos
circuitos combinatórios, e alguns exemplos. Mas primeiro há que saber alguns aspetos,
primários aos circuitos.
Quando nos apresentam um circuito convém que nós tenhamos alguma
informação sobre ele, de forma a que o possamos usar em alguma situação. Para tal,
existe sempre, ou deve existir, informação detalhada, por outras palavras,
documentação, que sirva de suporte ao equipamento. Assim, em suma, é essencial que, documentação
em toda a vida de um projeto, haja documentação devidamente realizada. Em
sistemas digitais há conteúdo dessa documentação, quase, mais-que-essencial. Entre
diagramas de blocos, esquemas lógicos (logigramas), esquemas elétricos, HDL (ABEL,
Verilog, VHDL), diagramas temporais ou especificações técnicas dos componentes.
Podemos sempre encontrar exemplos de diagramas de blocos, esquemas lógicos,
diagramas temporais, esquemas elétricos, VHDL, entre outros… tal como também
teremos oportunidade de ver ao longo deste capítulo e do seguinte.
!
29 INTRODUÇÃO AOS SISTEMAS DIGITAIS
Lógica de Polaridade
Tal como referimos no primeiro capítulo, o conceito lógico de 0’s e 1’s é apenas
uma pura convenção, pois podia ser apenas verdadeiro/falso, maria/joão, … Do
mesmo modo, a convenção que temos de 1 ser correspondente ao nível elétrico mais
positivo e o 0 ao nível elétrico mais baixo também é pura convenção. Além disso,
existem duas convenções distintas, dependendo da realização eletrónica do
equipamento em questão. Assim, podemos encontrar duas lógicas: a lógica positiva e a lógica positiva
lógica negativa. lógica negativa
A descrição tabular do comportamento do circuito recorrendo aos níveis high e
low (geralmente usados pelo seu acrónimo H e L, significam lógica positiva e lógica
negativa, respetivamente) é inversa uma da outra. Em contextos não algébricos, a
descrição funcional deve confinar-se aos símbolos H e L.
Por razões do contexto físico, interessa associar a um sinal uma determinada
ação no circuito e o nível elétrico que o desencadeia: este pode ser H ou L (grande
parte dos nossos equipamentos utilizam preferencialmente a L); o nível assim definido
designa-se por nível ativo. Os nomes dos sinais para além de sugestivos devem nível ativo
mencionar também o nível ativo, como podemos ver alguns exemplos na tabela que se
segue:
tabela 9
active low active high
exemplos de nomes dos
READY-
ERROR.L
READY+
ERROR.H
sinais
ADDR15(L) ADDR15(H)
RESET* RESET
ENABLE~ ENABLE
~GO GO
/RECEIVE RECEIVE
TRANSMIT_L TRANSMIT

!
Descodificadores (decoders)
Um descodificador é um circuito combinatório que permite, para uma palavra descodificador
em código à entrada, ativar uma e uma só saída da função de descodificação. O
descodificador mais comum de todos é o descodificador para o código binário natural.
A estrutura genérica de um descodificador é a seguinte: estrutura genérica
!
! Decoder
figura 17

! estrutura genérica de um

! palavra input map


eam
decodificador
! ento
palavra output
!
! enable input

!
!
!
Como podemos reparar temos um dado número de entradas para um dado
número de saídas. Tipicamente esses números são n entradas (código) para 2n saídas,
como são o caso os descodificadores 2:4, 3:8, 4:16, etc…
Na página seguinte podemos ver um descodificador 2 para 4 (2:4) e a sua
tabela de verdade. Devemo-nos lembrar que o valor “x” corresponde a um don’t care,
valor a ser desprezado.
!
22 Chapter 1 Data Storage
INTRODUÇÃO AOS SISTEMAS DIGITAIS 30
!
! 22 Chapter 1 Data Storage
form, as shown in Figure 1.2. Note that the AND, OR, XOR, and NOT gates are
represented by distinctively shaped symbols, with the input18values entering on
figura
22 Chapter 1 Data Storage
one side
inputs and the output exiting outputson the other.
form, as shown in Figure 1.2. Note that the AND, OR, XOR, and NOT
descodificador 2:4 gates
e are
Gates provide
represented by the building
distinctively blocks
shaped from which
symbols, with computers
the input are constructed.
values entering on
EN
One
I1
important
I0
step
Y3
in this
Y2
direction
Y1 Y0
is depicted respetiva
in the circuit tabela 1.3.
in Figure de verdade
This is
22 Chapter
2:4 decoder 1 Data Storage
one side and the output exiting on the other.
form, as shown in Figure 1.2. Note that the AND, OR, XOR, and NOT gates are
0a particular example 0 from a 0 collection 0 circuits known as a flip-flop. A flip-flop
offrom
Gates
represented
x
provide
x
by the
distinctively building blocks
shaped
0
symbols, whichthe computers are constructed.
I0 Y0 is
Onea circuit
important that produces
step in andirection
this output value is of 0 orwith
depicted 1, the
in which input
remains
circuit in
values
Figure
entering
constant untilon
1.3. This a
is
I1 Y1 1one
form,
pulse side0
as
(a and
shown0 the
temporary output
in 0
Figure
change exiting
0
1.2.
to a 1on
Note0 the
thatthatother.
1
the
returns AND,
to 0) OR,
from XOR,
anotherand NOT
circuit gates
causes areit
Y2 a particular
Gates example
provide the from a collection
building blocks offrom
circuitswhichknown as a flip-flop.
computers A flip-flop
are between
constructed.
EN
represented
1to
is ashift 0 to the
circuit by
that distinctively
1other
producesvalue.
0 an In shaped
other
0 output symbols,
1 words,
value the
0 of 0 or with
output
1, the
whichwillinput
flip or
remainsvalues
flop entering
constant on
two
until a
Y3 One important step inofthis direction is depicted in as
thebothcircuit in Figure 1.3. This is
one
values
pulse side
(a and
under the
temporary output
control change exiting
external
to a 1on the
stimuli.
that other.
As
returns long
to 0) from inputs
another in the
circuit circuit
causes init
1a particular
FigureGates1
1.3 example
provide
remain
0
0, 0 from
the a1 collection
thebuilding
output blocks
(whether
0 offrom
0 circuits
1) known
0 orwhich notas
willcomputers a flip-flop.
change. are A flip-flop
constructed.
However, tem-
to
is ashift
circuitto the
that other
producesvalue. an Inoutput
other words,
value the
of 0 output
or 1, whichwill flip or flop
remains between
constant two
until a
One
porarilyimportant
placing
1values1 under1 control
step
a 1 in
on this
the direction
upper
1 of external
0
input is
stimuli.
0
depicted
will force in the
the circuit
output in
to beFigure
0 As long as both inputs in the circuit in
1, 1.3.
whereas This
tem-is
pulse (a
a particular temporary
example change
from to
alower a 1 that
collection
inputof returns
circuits to 0) from another circuit
flip-flop. causes it
1) known notas ato A flip-flop
! porarily
Figure
to
is ashift
values
circuit
Let
porarily
placing
1.3
to
us
under
remain
the
that
consider
placing
a 10,on
other
produces
a 1
control
the
value.
this
on of
theoutput
an Inoutput
claim
the
other
upper
external
in
(whether
morewords,
value
input
stimuli.
will 0force
the
of
detail.
willAs
0
oroutput
or
the
1,
Without
force
long
willoutput
which
the
as
will
output
both
change.
flip
remains
knowing to
inputs
be 0.However,
orthe
be
flop between
constant
1,
in
current
whereas
the
tem-
two
until
output
circuittem-
in
a
Como nos foi designada, estapulse
of é a
the
porarily tabela
(a
circuit de
temporary
placingin verdade
Figure
a 10,onchange de
1.3,
the um
to a
supposedescodificador
1 that
lower(whether thatreturns
the
input will0force 2:4
to
upper 0)e from
input another
is changed circuit
to 1 causes
while theit
Figure
to shift
lower 1.3
to
input remain
the other
remains the
value. output
In other
0 (Figure 1.4a).words,
This the
will 1) the
oroutput
causewilloutput
notoutput
will flip
to be 0.However, tem-
change.
ortheflop between two
à esquerda encontra-se uma estrutura genérica
Let us do mesmo
consider this bloco
claim in combinatório.
more detail. Mas the
Without knowing of current
the OR gate
output to
porarily
values
be 1, placing
under
regardless aof1 the
control onofthe
other upper
external inputinput
stimuli.
to willAs
this force
long
gate. the
In as output
both
turn, to inputs
inputs
both be in1, whereas
the
to circuit
the tem-
ANDin
qual é o seu diagrama lógico? E o que of é a
porarily
entrada
the circuitplacing
EN?
in Figure
a1,10,since
on 1.3,
the suppose
lower inputthatwill
theforce
upperthe input
output is changed
to be to 1 while the
0.However,
A entrada EN, de nome enable, Figure
gate
lower will
tal 1.3 remain
now
como
input be
o
remains nome the
0 output
the
indica,
(Figure (whether
other
pode
1.4a). input
ser
This 0 this
vista orcomo
towill 1)gate
causewillthe not
isenablechange.
already
output 1of(the
the output
OR gate tem-
pro-
to
duced Letby
porarily us consider
placing
the NOT a 1 this
on
gate claim
the upper
whenever in more
input
the detail.
will
lower Without
force
input the
of knowing
output
the to
flip-flop the
be 1,
is current
whereas
at 0). output
The tem-
out-
um interruptor, para nós, indicando be qual
of 1,
the regardless
a lógica
circuit que of
in Figureo the other
sistema
1.3, input
em
suppose to
questão this
usa.
thatwill gate.
thewhich In
Neste
upperthe turn,
input both
is inputs
changed to the AND
porarily
put
gate ofwilltheplacing
AND
now beagate
1,1 since
on thethe
will lower
then input
become
other input 1, force
towill means
thiscause
gate output that
is already tothe
be 0. to output
second
1of(the
1 while
input the
to
pro-
caso, quando o EN está a zero, quaisquerlower Let que
input
us sejam
remains
consider os I10
this o I0,
(Figure
claim o valor
1.4a).
in more de Y0,
This
detail.Y1, Y2,
Without the output
knowing the the
currentOR gate
output to
Y3 é sempre 0, logo o nosso sistema ducedé
be
of active
1, byhigh.
the NOT
regardless
the circuit of gate
the whenever
other input theto lower
this input
gate. In ofturn,
the flip-flop
both is at to
inputs 0). the
TheANDout-
Figure
put 1.2 A in Figure
pictorial 1.3,thensuppose
representation of that
AND,1,the
OR, upper
XOR, and input
NOT is changed
gates as well to
as1their
while the
input
gateof
O diagrama lógico deste descodificador
lower willthenow
input
AND
remains
gate
é obeseguinte:
1, sincewill the other
0 (Figure
become
1.4a).input
which
Thistowill
means
thiscause
gate that
isdiagrama
the already the
output1lógico
second
of(the
theoutput
input
OR gate
to
pro-
to
! and output
duced by
values
the NOT gate whenever the lower input
be 1, regardless of the other input to this gate. In turn, both inputs to the AND of the flip-flop is at 0). The out-
! Figure 1.2
put
gateof willthenow A pictorial
AND begate
representation
1, sincewill the
then of AND,1,OR,
become
other input towhich
XOR, and
thisOR means
gate
NOT that
gatesthe
is already
as well as their
second
1 (the
inputto
input
output pro-
! and output
duced
AND
I0’ I0 by
values
theENNOT gate whenever the lower input of the
I1’ I1 figura 19
flip-flop is at 0). The out-
! I0
Figure
put of 1.2
the A pictorial
AND gate representation
will then of AND,1,OR,
become XOR, and
which means NOT that
gatestheas well as their
second
diagrama lógico de um
inputto
input
! and output ANDvalues
Inputs Y0 Output
OR
Inputs
descodificador 2:4
Output

! Figure 1.2 A pictorial representation of AND, OR, XOR, and NOT gates as well as their input
! ANDvalues
and output
Inputs Y1Output
OR
Inputs Output

! I1 Inputs Output Inputs Output

! AND
Inputs 0 0 0 Y2Output
OR
Inputs 0 0 0 Output
! Inputs
0 1 Output
0 Inputs
0 1 Output
1
! 0
Inputs 0
1 Output
0 Y3
1 0
1 0
Inputs
1 0
0
1 0
1
Output
! EN Output
0 0 1
1
Inputs
1
Inputs
0 1
0
1
Output
1
! 1 0
0
1 0
0 1
1
Inputs
0
0
1
Output
0por exemplo, 4:16, através
1 0
0
1 01
Inputs
0 1
1
0
1
Output
É possível, de forma a construir um descodificador, 1
1 0 0 1 0 1
em cascata.
de dois descodificadores 3:8, agrupando-os XOR 0
1 01 0
1 NOT cascata
0
1 10 0
1
Podemos recorrer a um bloco de decodificarão
0 1 para0 obter os termos mínimos 0 1 1
1 0 0 1 0 1
necessários à implementação de uma funçãoXOR booleana genérica.
! Inputs 1 1 1 Output NOT
Inputs 1 1 1 Output

Codificadores (encoder) XOR NOT


Inputs Output Inputs Output
Inputs Output Inputs Output
Os codificadores, ao contrário dos descodificadores, têm como função principal, codificadores
XOR NOT
codificar uma dada palavra de código. Tendo Inputstipicamente
0 0 Output
02n entradas, Inputs
codifica essas 0 1 Output
Inputs
0 1 Output
1 Inputs
1 Output
0
em palavras, com n saídas. 1 0 1
Há um grande problema com os Inputs codificadores
0
1 01 - há
0 que
0 criar prioridade,Inputs
Output de 0 1 Output
Inputs
0 1 Output
1 Inputs
1 Output
0
modo a evitar conflitos arbitrários no atendimento do código. Para tal existe um
1 0 1
codificador de prioridade, o qual é um produto da0 0
1 0 da lógica interna através codificador
1 redefinição
0 0 1de prioridade
Inputs
0 1 Output
1 Inputs
1 Output
0
de variáveis intermédias Hn.
1 0 1
Um codificador de prioridade conhecido 0 1é o
1 74x148,
0 0 o qual tem lógica active
0 0 1
low, enable input, enable output e “got something”.0 1 1 1 0
1 0 1
1 1 0
31 INTRODUÇÃO AOS SISTEMAS DIGITAIS
Multiplexers e demultiplexers
Enquanto os codificadores transmitem uma mensagem traduzida, os
multiplexers (abreviatura mux) são dispositivos que selecionam uma de várias entradas multiplexers
e a faz seguir numa só saída. Um multiplexer de 2n entradas tem n linhas de seleção.
Estes dispositivos são usados para aumentar a quantidade de dados a serem enviados
numa rede num determinado intervalo de tempo e numa determinada largura de
banda. Vejamos, assim, o seguinte multiplexer genérico, juntamente com uma tabela de
verdade de um multiplexer 4:1.

inputs output figura 20


enable 2n:1 mux multiplexer genérico e
EN S1 S0 Y
tabela de verdade de um
n seletores

0 x x 0 multiplexer 2:1
1 saída 1 0 0 I0

2n entradas 1 0 1 I1

1 1 0 I2

1 1 1 I3

!
A função booleana que parte destes dispositivos é muito própria. Um
multiplexer 2:1 tem a seguinte expressão:
! equação 42
! Y = (I S ) + (I S) equação de um mux 2:1
0
! 1

De uma forma mais geral, um mux tem como expressão:


!
⎛ ⎞ equação 43
!Y = EN.⎜ ∑ mk (S)I k ⎟ k = 0,...,2 n − 1 equação geral de um mux 

⎝ k ⎠
! 2n:1
onde mk(S) é o k-ésimo mintermo nas variáveis de seleção S0, S1, …, Sn.
Por sua vez, os demultiplexers têm uma função inversa aos mux’s. Estes, ao demultiplexers
invés de partirem de 2n entradas, partem de uma só, abrindo para 2n saídas.
!
! figura 21
! enable 1:2n demux
demultiplexer genérico
!
! n seletores 2n saídas

!

1 entrada
!
!
A equação geral de um demux - abreviatura de demultiplexer - é a seguinte,
considerando Ok como as nossas saídas e Din como entrada:
! equação 44
! Ok = EN. Din . mk (S) k = 0,...,2 n − 1 equação geral de um demux 

! 1:2n
É possível hierarquizar multiplexers. A chamada hierarquia de multiplexagem hierarquizar
existe muitas vezes por causa da falta de maiores multiplexers. Assim, conseguimos,
INTRODUÇÃO AOS SISTEMAS DIGITAIS 32
por exemplo, criar um mux 8:1 a partir de quatro 2:1 e um 4:1, como podemos ver a
seguir:
! figura 22
! mux 8:1 a partir de quatro
!
! mux’s 2:1 e um 4:1

D1

S0
EN
D0

D1

S0
EN
D0
D1

S0
EN
D0
D1

S0
EN
D0

!
!

Q
Q
Q

!
!
! D0

! D1

! D2
D3
! Q
! S0

!
S1

! EN

!
Buffers 3-state
Um multiplexer pode ser construido através de buffers tri-state - dispositivos buffers tri-state
lógicos que exibem três estados possíveis. Dois dos estados que estes podem criar já
são usados: a lógica 1 e a lógica 0. O terceiro estado, porém, é denominado de alta-
-impedância (Hi-Z) e é neste que a lógica se comporta como um circuito aberto, isto é, alta-impedância
parecendo que a saída está, de certo modo, desligada, como se não tivesse significado
lógico. Um buffer tri-state pode ser usado ao invés das portas AND e NAND, sendo
que é mais preferida, até mesmo por motivos económicos.

! inputs output figura 23


! buffer tri-state e respetiva
!
EN A OUT
tabela de verdade
! EN L L Hi-Z

! A OUT L H Hi-Z

! H L L

!
! H H H

!
O conceito de alta-impedância pode ser traduzido, por enquanto, como uma
resistência praticamente infinita, sem ligação. Através de buffers tri-state também
podemos criar estratégias diferentes de multiplexagem. Vejamos este exemplo de
multiplexagem revisitada, num multiplexer 2:1.
!
!
! figura 24

! multiplexagem revisitada por

! buffers tri-state

!
!
!
form, as shown in Figure 1.2. Note that the AND, OR, XOR, and NOT gates are

33 represented by distinctively shaped symbols, with the input values entering on


one side and the output exiting on the other.
INTRODUÇÃO
Gates provide the building AOSblocks SISTEMAS from whichDIGITAIS computers are constructed.
One important step in this direction is depicted in the circuit in Figure 1.3. This is
7. Circuitos Aritméticos
a particular example from a collection of circuits known as a flip-flop. A flip-flop
is a circuit that produces an output value of 0 or 1, which remains constant until a
pulsena
Atrás, (a temporary change to aNuméricos
unidade “Sistemas 1 that returns to 0) from another
e Códigos” (ver §Sistemas circuit causes Numéricos it
to shift to the other value. In other words, the output will flip or flop between two
e Códigos),valuesestudámos como efetuar cálculos algébricos básicos com notação binária.
under control of external stimuli. As long as both inputs in the circuit in
Agora, e com os conhecimentos
Figure 1.3 remain 0, the output adquiridos (whether nas 0unidades
or 1) will seguintes,
not change.podemos However, aprender tem-
como efetuar os mesmos
porarily placing a cálculos
1 on the upper com inputo auxílio de dispositivos
will force the output to be lógicos,
1, whereas como tem- blocos
1combinatórios.
porarily placing a 1 on the lower input
Damos assim ênfase aos circuitos aritméticos. will force the output to be 0. circuitos aritméticos
Chapter
Chapter
!
1Data
DataStorage
Storage Let us consider this claim in more detail. Without knowing the current output
22 Chapter 1 Data Storage
of the circuit in Figure 1.3, suppose that the upper input is changed to 1 while the
Circuitoslower somadores
input remains 0 (Figure 1.4a). This will cause the output of the OR gate to
form,
form, as shown showninin
be 1, regardless Figure
Figure
of the other1.2.
1.2. Note
inputNote thatthat
the AND,
to this gate.the In AND,
OR, XOR,
turn, OR, both XOR,
and NOT
inputs and NOT
gates
toFigure
the
are
AND gates are
represented by distinctively shaped symbols, with withform,
the input as shown
values values in
entering 1.2. Note that the AND, OR, XOR, and NOT gates are
on
represented
Segatenoswill fosse by distinctively
now pedido
be 1, since para the othershaped
representar symbols,
input to othis número the
-1710 em
gaterepresented
is already input1by (thesinal
output e entering
módulo,
pro- on
distinctively shaped symbols, with the input values entering on
one side
one side and and the
the output
output exiting
exiting on on the the
other.other.
complemento duced paraby the
1 e NOT gate whenever
complemento the2,lower input ofone the flip-flop is at 0). Theexitingout- on the other.
Gates provide the buildingpara blocks nós seríamos
from which capazes
side
computers andarede the oconstructed.
fazer.
output Sabemos
putGates
of theprovide
AND gate the
willbuilding
then become blocks from
1, which which
means computers
that
Gates the
provide second are
the constructed.
input
buildingto blocks from which computers are constructed.
pois, de One unidades
important anteriores
step in this que números
direction em complemento
is depicted in the circuit in para Figureum podem
1.3. This is ser
One important step in this direction is depicted in Oneas the circuit
important in Figure
stepAin 1.3.
this directionThis isis depicted in the circuit in Figure 1.3. This is
adicionados aplicando
a particular regrasfrom
example
Figure 1.2 example
habituais
a collectiondeof adição
of circuitsbinária,
known nosgates quais
a flip-flop. os transportesflip-flop para of circuits known as a flip-flop. A flip-flop
aisparticular
a mais
circuitsignificativo from
that producesdevem a
A pictorial representation
an output collection AND, OR,of circuits
XOR, anda NOT known
particular as a
asexample
wellflip-flop.
as their
from inputA
a flip-flop
collection
além do is bitand output values
a circuit that produces servalue of 0 orao
somados 1, resultado
which remains
is
1,awhich
circuit (para
that
constant
evitar
produces
until
que ao zero
anitoutputuntilvaluea of 0 or 1, which remains constant until a
pulse (a temporary change an to aoutput value ofto
1 that returns 00)orfrom another remains
circuit constant
causes
seja contado
pulse duas
(a vezes).
temporary Sabemos
change também
to a 1 that que
returnsnúmeros topulse
to shift to the other value. In other words, the output will flip or flop between two0) em
from(a complemento
temporary
another change
circuit para to dois
a
causes 1 that
it returns to 0) from another circuit causes it
podem ser to
valuesadicionados
shift AND
to
under thecontrol
other aplicando
value.
of external In regras
other
stimuli. habituais
words,
As longtheORas to
de
output
both shift
adição to the
will
inputs flipinother
binária,
or
theflopvalue.
circuit In
in othertwo
ignorando
between words, the output will flip or flop between two
values under However,control of tem- external stimuli. As long as both inputs in the circuit in
transportes para1.3
Figure
values além
underremain do 0,bitthe
control mais
ofoutput significativo.
external (whetherstimuli. 0 Já
orAsemwill
1) sinal
long notasechange.
módulo
both inputs é bastante
in the circuit difícil in
porarily placing a 1 on the upper input will force the Figure
output 1.3
to be remain
1, whereas 0, the output (whether 0 or 1) will not change. However, tem-
tem-
construirFigure
um circuito
1.3 digital
remain
Inputs 0, que
the some
Output dois
output números,
(whether 0 or dado
1)
Inputs will que not é necessário
change. comparar
1 on the uppertem-
OutputHowever,
porarily placing
porarily placing aa1 1on the
on thelowerupperinput will will
input the porarily
forceforce output
the toplacing
output be 0.to abe 1, whereas
input will force the output to be 1, whereas tem-
tem-
as magnitudes
Chapter 1 Data Storage dos operandos 22 para determinar
Chapter 1 Data Storage o sinal
porarily do resultado.
placing a 1 on O the overflow
lower input will force the output to be 0.
Let us consider this claim in more detail. Without knowing the current output
acontece porarily
se the
of a soma placingdois
circuitde
a 1 on the lower
in Figurenúmeros
1.3, suppose
input will force um
positivos
that theproduzir
upper input is
theLet output
número
us consider
changed
tonegativo,
be this
0. claim
to 1 while ou in
the se more
a detail. Without knowing the current output
Chapter 1 soma de lower
Data StoragedoisLetinput
us consider
números
Inputs this
remains
Output
negativos claim
0 (Figure
in more
produzir
1.4a). This um detail. Without
cause of
willresultado
Inputs
thethe
knowing
circuit
positivo.
output
Output
ofin Em
the
the
Figure current
1.3, to
ORcomplemento
gate
output
suppose that the upper input is changed to 1 while the
form,
of the as shown
circuit in in Figure
Figure 1.3, 1.2. Note
suppose that
that the form,
AND,
upper lower OR,as
input shown
XOR,
input is changed
remains in
and Figure
NOT0 to 1 1.2.
gates
(Figure while Note
are
the
1.4a). thatwill
This thecause
AND,theOR, XOR,
output andORNOT
of the gate gate
to
para dois,beo 1, regardless
overflow 0 of
0 the other
acontece se0 noinput bit mais to this gate. In turn,
significativo be cin0 both
1, ≠0 cout inputs
. 0 of to the AND
represented
lower
gate willinputnow by 0 distinctively
remains
be 1
1, since0 (Figure
0the othershaped
1.4a).
input symbols,
This
to this will
gaterepresented
with
cause 0the
is already 1regardless
the input1 by
output
(the
1 values the
of
output theother
distinctively
entering
OR
pro- input
shaped
gate on to this
to gate. Inwith
symbols, turn,the
bothinput
inputs to the enteri
values AND
Paraside somar e 1subtrair números em complemento gate parawill dois,
now precisamos deotherumon
one
be 1, as
duced
form, byandthe the
regardless
shown NOT output
0ofgate
in Figure exiting
thewhenever
0other1.2.inputon
the the
Note to
lower
thatother.
this thegate.
input one
of
AND, Inside
the 0 and
turn,
1flip-flop
OR, both
XOR, 1be
isthe 1, since
output
inputs
atand
0). The
NOT tothe
exiting
out- the
gates AND input to this gate is already 1 (the output pro-
are the other.
circuito somador.
putGates
gate will provide
thenow 1 1
1,the 1
willbuilding blocks from whichduced 1
Gates 1 by
computers the
provide NOT
1 gate
the
1are whenever
building
constructed. the circuito
lower
blocks from somador
input of the flip-flop
which computersis at 0).
areThe out-
constru
of
represented ANDbybegate since
distinctively thebecome
then other
shaped input
1, which
symbols, to this
means gate
with that
the is already
the
input second
ANDvalues
(the
input output
to
entering pro-
on
Um half-adder5 (em português semi-somador) put
Oneduced
one important
side byand
thethe step
NOT  

in this
gate
output direction
whenever
exiting ontheis depicted
the lower
other.inputOne é um
in theof
of
important
the
circuit
the circuito
instep
flip-flop
gate
Figure quewill
isinatthis
1.3.soma thendois
0). direction
Thisout-
The
become
is half-adder
1, which means that the second input to
is depicted in the circuit in Figure 1.3. T
operandos
aputFigure
deGates
ofum1.2
particularthebit cada,
example
A pictorial
AND
provide ethe
gate produz
from athen
representation
will
building umof resultado
collection
become
blocks de
of from
AND, OR, circuits
XOR,
1, dois
and
which bits,
a particular
known
NOT
which gates
means que
asas varia
example
flip-flop.
awell
that
computers entre
as their
the from
input
second
are A0 flip-flop
aeinput
constructed. 2.
collectionto of circuits known as a flip-flop. A fli
and output values Figure 1.2 A pictorial representation of AND, OR, XOR, and NOT gates as well as their input
isOne
a circuit
importantthat produces
step in this andirection
output value of 0 oris1,
is depicted awhich
circuit thatin
remains produces
constant an until
output
This ais value of 0 or 1, which remains constant u
XOR NOTin andthe circuit
output values Figure 1.3.
pulse
aFigure (a temporary
1.2 example
particular change
A pictorial from to
representationa 1 that
a collection returns
of AND, pulse
to 0)
OR, XOR,known
of circuits from(a
and NOTas temporary
another
gates change
circuit
as well as their
a flip-flop. to
causes a 1itthat returns to 0) from another circuit cau
input
A flip-flop
! to shift
Aand
is
AND
to the
output values
a circuit other value. In other words,
that produces an output value of 0 or 1, which theOR to shift to the other value. In other words,
output
inputs will flip or flop
outputs
ANDremains constant until between twoa figura the 25 output will flip or flop betwee
OR

! values under
Inputs control of external
pulse (a temporary change to a 1 that returns Output stimuli. As long
HS values
Inputs
to as
0) under
both
from control
inputs
another in
Output of
the
circuit external
circuit
causes in it half-adder
stimuli. As e respetiva
long as both inputs in the circ
! Figure 1.3
to shift AND remain
Inputs 0, the
to the other value.Output output (whether
In other words, the 0
A
or Figure
1)
Inputs will
B
1.3
not remain
HS
change.
OR will flip orOutput
output 0,
Cout
the
However,
flop between output tem- (whether 0
two tabela deInputs orverdade not change. However
1) will

! porarily placing
values under Inputs a 1 on the
control Output upper input will 0 porarily
force
of external stimuli. As long Inputs the Inputs
0 placing
output
as both Output to0 bea 11, on
whereas
inputs in the circuit in
Output
0the upper tem- input will force the output to be Output
1, whereas

! porarily placing a 1 on the lower input will


Figure 1.3 remain 0, the output (whether 0 0or 1) will1 not change. force porarily
the placing
output to
1
a
be 10.on the
However,
0
lower tem-input will force the output to be 0.

! Let
porarily
of
B
the
us consider
Inputs Inputs
placing
circuit in
0 a
0Figure
this claim
Output
0 1 on the C in
Output more detail. Without
0 upper input will force the0outputInputs
1.3,
out
1 suppose that the upper of the
Let
Inputs
Inputs us
knowing
10circuit
input is
consider
Output the this
current
1 be 1, Output
to
in
01 Figure
changed to
claim
Output
whereas tem-
1.3,
1 while
in
output
suppose
more
the that
detail.
the
Without
upper
knowing
Inputs
input is
Output
the
changed
current o
to 1 whi
!
1
porarily placing 0 0a 1 on0the lower input will force the
1 0 1
1 0 0output0to be 0. 0
lowerLet input remains 0 (Figure 1.4a). This will lower
cause input
the outputremains
0 0 of the 0 (Figure
0OR gate1.4a). to This will cause0 0the output of the OR g
! 0 1 0 0 1 0
us consider1 1 this 0claim in more detail.1 Without1 knowing 1 the current output
00 1 10 0 1 1 inputs to the
be 1, regardless 1 0of theOutput
Inputs 0other input to this gate.be In 1, regardless
1turn,
0 both
Inputs of
1 inputs the
Output toother
the input
AND to this gate. In turn, both
of the circuit 1in1Figure 11.3, suppose that the upper1input
gate
lower
duced
will
by
nowremains
input
the
be 1, since
0 0
NOT gate
0 0
the other
(Figure
whenever the
!
input
1.4a). This
lower
thisgate
towill
input
gatewill
cause
ducedof
1
isthe
theby 0
is changed
now
already
output
the0
flip-flop
1 0
1 be11,(the
1 1 ofsince
NOT is0
to01 while the
the
gate
at
thegate
output
1 OR
whenever
0). The
other
pro-
out-
to input to this gate
the lower input
1 0

of the
1
1 1is already
1
flip-flop
1 (the outpu
is at 0). Th
Para
be somar 0operandos
1, regardless 1of the other 0 cominput mais que gate.
to this um In bitturn, temos
0 both
1 que
inputs assegurar
1 will to the AND a
put
transferência of
gate will the AND
de transportes gate
now 1be01, since will then
(carries)
0the other become
entreinput 1,
várioswhich
to bits.put of
means the
Paraistal,
this gate AND
that the gate
0 necessitamos
1already second
1 (the then
input
outputde um become
to
pro- 1, which means that the second inp
1
somadosduced by
XORthe
multi-bit, 1 1 gateàwhenever
NOT
construído 1 the lower NOT
custa de somadores input
completosof the1(em 1 inglêsis
flip-flop at 0).
1full The out- somadores completos
adders).
! Figure
put of1.2 the ANDA pictorial
gaterepresentation
will then become of AND, 1,OR,which
XOR,Figure
and
means 1.2
NOT XOR A pictorial
gates
that as
thewell representation
as theirinput
second input to of AND, OR, NOTXOR, and NOT gates as well as their i

! Aand output values and output values


figura 26
! Inputs Output
Figure 1.2 A pictorial representation of AND, OR, XOR, and NOT
Inputs Output
gates as well as their
Inputs S input somadorInputs
Output completo Output

! AND
and output
XOR values NOT AND
OR OR

! Inputs Output Cin Inputs Output

! AND
Inputs
Inputs 0 0 0 Output
Output
OR Inputs
Inputs
0
Inputs 1
Inputs
Output
Output
OutputOutput
Inputs
Inputs
Output
Output

! B
0 1
1 0
1
1
1 00 0
0 1
1 0
0
1
1
0
1
1
0
Inputs 1 1 0 Output Inputs COutput
out
Inputs
Inputs Output
Output InputsInputs
Inputs 1 OutputOutput
1Output 0 Inputs Output

0 0
0 porta
0 lógica XOR0 0 0
0 ⨁.
0 (exclusive-or), pelo que é representada pelo símbolo 0 0 01 0 0 0 0
5 A porta que forma a saída HS é uma
00 11
Inputs 01
Output 0 11 0 1Output
Inputs 10 0 0 1 1
11 00 01 1 0 1 0 1 0 1 0 1
101 101 100 10 10 1 1 10 1 1 1 1
0 1 0 0 1 1
1 0 0 1 0 1
1 1 1 1 1 1
INTRODUÇÃO AOS SISTEMAS DIGITAIS 34
Este circuito somador tem as seguintes equações:
!
! Cout = A. B + A. Cin + B. Cin equação 45
! S = A ⊕ B ⊕ Cin equações de saída de um

! somador completo
Dois operandos binários de n bits podem ser somados com uma cascata de n
somadores completos cada um dos quais um bit do resultado. A esta cascata de
somadores completos damos o nome de ripple adder. A figura abaixo representa um ripple adder
ripple arder de quatro bits. O bit de transporte para o bit menos significativo (c0) é
iniciado com o valor 0, e o bit de transporte (saída) para o seguinte somador está
conectado ao bit de transporte (entrada), do bit de seguinte significado.
!
!
! X3 Y3 X2 Y2 X1 Y1 X0 Y0 figura 27

! ripple adder

! X Y
C3
X Y
C2
X Y
C1
X Y

! C4 COUT CIN COUT CIN COUT CIN COUT CIN C0

!
! S S S S

!
! S3 S2 S1 S0

O ripple adder é um circuito iterativo clássico. Um circuito iterativo é um circuito iterativo


circuito que se usa para calcular um resultado de n bits, com n módulos interligados
em cascata, em que cada um dos módulos “seguintes” faz cálculos com base nos
resultados produzidos pelo módulo “anterior”.
Para subtrair operandos com mais que um bit, temos que assegurar a
transferência de transportes (borrows) entre vários bits. Tal subtrator multi-bit pode
ser construído à custa de subtratores completos. subtratores completos

inputs output figura 28


subtrator completo e
BIN A B BOUT D
respetiva tabela
A B 0 0 0 0 0

0 0 1 1 1

A B
0 1 0 0 1

BOUT COUT CIN BIN 0 1 1 0 0

S 1 0 0 1 1

1 0 1 1 0
D
1 1 0 0 0

1 1 1 1 1

!
As equações de saída são as seguintes:
! equação 46
! BOUT = AB + ABIN + BBIN equações de saída de um
! D = A ⊕ B ⊕ BIN subtrator completo
!
!
35 INTRODUÇÃO AOS SISTEMAS DIGITAIS
Um somador completo pode realizar a operação de subtração a - b, fazendo o
cálculo de a + 1sc(b) + 1 (isto dado que -b = 1sc(b) + 1).
! equação 47
! COUT = AB + AC IN + BC IN operações de subtração por
! S = A ⊕ B ⊕ C IN um somador completo
! BOUT = ( A + B ) ( A + BIN ) ( B + BIN ) = AB + ABIN + BBIN
!D= A ⊕ B ⊕ BIN
!
Também podemos criar a operação de subtração em cascata. Para tal, com um
ripple adder, basta fornecer as entradas A e B’ e o bit de transporte no bit menos
significativo com o valor 1.
!
Somadores carry-lookahead
A equação lógica para um bit de soma i de um somador binário pode ser
simplesmente expressa por: equação 48
! Si = Ai ⊕ Bi ⊕ Ci expressão lógica para um bit
! Ci+1 = Ai Bi + Ai Ci + Bi Ci de soma i de um somador
! binário
gerado
Na fase i é gerado um carry se para alguma combinação de Ai e Bi é produzido
Ci+1=1, independentemente das entradas a0, …, ai-1, b0, …, bi-1 e c0 . Denominemos g
como o sinal de geração de carry. Assim,
! equação 49
! gi = Ai Bi expressão da geração
!
Também na fase i é propagado um carry se é produzido Ci+1=1 na presença de propagado
tal combinação de entradas a0, …, ai-1, b0, …, bi-1 e c0 que causam ci=1. Denominemos
p como o sinal de propagação de carry. Assim,
! equação 50
! pi = Ai + Bi expressão da propagação
!
Por substituição, temos que:
! equação 51
! Ci+1 = gi + pi ci expressão final por
! substituição
Isto é, uma fase produz um transporte (carry) se gera um transporte ou se
propaga um carry e o bit de transporte tem valor atual 1. De forma a eliminar um
provável transporte iterativo nós expandimos o termo ci para cada fase i e
multiplicamo-lo para obter uma expressão AND-OR de segundo nível. Usando esta
técnica, podemos obter as seguintes quatro fases de adição:
! equação 52
! C1 = g0 + p0 c0 expressão das quatro fases
! C2 = g1 + p1c1 = g1 + p1 (g0 + p0 c0 ) = g1 + p1g0 + p1 p0 c0 de adição
! C 3 = g2 + p2 c2 = g2 + p2 (g1 + p1g0 + p1 p0 c0 ) = g2 + p2 g1 + p2 p1g0 + p2 p1 p0 c0
! C 4 = g3 + p3c3 = g3 + p3 (g2 + p2 g1 + p2 p1g0 + p2 p1 p0 c0 ) =
! = g3 + p3 g2 + p3 p2 g1 + p3 p2 p1g0 + p3 p2 p1 p0 c0
!
INTRODUÇÃO AOS SISTEMAS DIGITAIS 36
Somadores BCD
Se somarmos dois dígitos BCD (e carry) podemos obter uma soma que varia
entre 0 e 19. Vejamos a seguinte tabela:

soma notação binária código BCD


tabela 10
soma por notação binária e
carry out soma carry out soma por BCD

0 0 0000 0 0000

1 0 0001 0 0001

2 0 0010 0 0010

3 0 0011 0 0011

4 0 0100 0 0100

5 0 0101 0 0101

6 0 0110 0 0110

7 0 0111 0 0111

8 0 1000 0 1000

9 0 1001 0 1001

10 0 1010 1 0000

11 0 1011 1 0001

12 0 1100 1 0010

13 0 1101 1 0011

14 0 1110 1 0100

15 0 1111 1 0101

16 1 0000 1 0110

17 1 0001 1 0111

18 1 0010 1 1000

19 1 0011 1 1001

Como podemos ver, no caso da notação binária, a partir do número 16, existe
carry, pelo que, para quatro bits, se compararmos com o código BCD temos que somar
a quantidade 6 a partir do dígito 9 (exclusivé), de forma a fornecer correção perante o
cálculo.
!
!
!
37 INTRODUÇÃO AOS SISTEMAS DIGITAIS
Unidade aritmética e lógica (ALU)
Uma unidade aritmética e lógica é um dispositivo combinatório que executa unidade aritmética e lógica
qualquer operação aritmética ou lógica (de um conjunto predefinido), sobre um par de
operandos de n bits. A operação a executar é especificada com entradas de seleção de
função.

S3 S2 S1 S0 M=0 (operação aritmética) M=1 (operação lógica)


tabela 11
operações num ALU
0 0 0 0 F = A - 1 + CIN F = A’

0 0 0 1 F = A AND B - 1 + CIN F = A’ OR B’

0 0 1 0 F = A AND B’ - 1 + CIN F = A’ OR B

0 0 1 1 F = 1111 + CIN F = 1111

0 1 0 0 F = A + (A OR B) + CIN F = A’ AND B’

0 1 0 1 F = A AND B + (A OR B) + CIN F = B’

0 1 1 0 F = A - B - 1 + CIN F = A XOR B’

0 1 1 1 F = A OR B’ + CIN F = A OR B’

1 0 0 0 F = A + (A OR B) + CIN F = A’ AND B

1 0 0 1 F = A + B + CIN F = A XOR B

1 0 1 0 F = A AND B’ + (A OR B) + CIN F=B

1 0 1 1 F = A OR B + CIN F = A OR B

1 1 0 0 F = A + A + CIN F = 0000

1 1 0 1 F = A AND B + A + CIN F = A AND B’

1 1 1 0 F = A AND B’ + A + CIN F = A AND B

1 1 1 1 F = A + CIN F=A

Na figura abaixo podemos ver o circuito ALU (componente 74x181), onde


podemos criar correspondência à tabela acima.
!
! S0
figura 29
! S1 G circuito ALU
! S2 P

! S3

!
M A=B
CIN
! A0
B0
F0

!
A1 F1
B1
A2
! F2
B2
!
A3
B3 ! F3
INTRODUÇÃO AOS SISTEMAS DIGITAIS 38
Multiplicação de números binários
Para estudarmos a multiplicação de números binários devemos subdividir esta
secção em duas partes: multiplicação de números sem sinal e multiplicação de números
com sinal. Comecemos pela primeira.
Numa multiplicação de números binários sem sinal, os processos de
multiplicação obedecem às mesmas regras básicas existentes no sistema decimal.
Vejamos o seguinte exemplo:
! figura 30
! 12 × 13 = 156 multiplicação binária sem
sinal

1 1 0 1 ← multiplicando

× 1 1 0 1 ← multiplicador

1 1 0 1
! 0 0 0 0
← produtos
1 1 0 0 parciais

+ 1 1 0 0

1 0 0 1 1 1 0 0
!
Na multiplicação com sinal deve-se, a cada passo, fazer a extensão do sinal. Se
o multiplicador for negativo, a última cópia do multiplicando deve ser negada. Assim,
por exemplo:
figura 31
! −5 × 3 = −15 ! −5 × −3 = +15
! multiplicação binária com
sinal (2 exemplos)
1 0 1 1 1 0 1 1
× 1 1 0 1 × 1 1 0 1

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

1 1 1 0 1 1 1 1 1 0 1 1
! 1 1 0 1 1 ! 0 0 0 0 0

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

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

1 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1
39 INTRODUÇÃO AOS SISTEMAS DIGITAIS
8. Sistemas Sequenciais
Como pudemos estudar na primeira unidade (ver §Ambiente digital), existem
dois tipos genéricos de circuitos: circuitos combinatórios e circuitos sequenciais.
Estudados os circuitos combinatórios, passamos agora para os sequenciais, com uma
abordagem algo semelhante com a dada até ao momento, embora o ambiente com que
trabalhamos agora, mude em grande parte.
!
Lógica sequencial versus lógica combinatória
Atrás foi referido que um sistema combinatório é um sistema que faz
corresponder diretamente uma entrada simbólica xn a uma saída simbólica ym, tal como
podemos ver na figura abaixo.

figura 32
um sistema combinatório
⎡ x1 ⎤ ⎡ y1 ⎤
X=⎢ ⎥ Y=f(x) Y =⎢ ⎥
⎢⎣ xn ⎥⎦ ⎢⎣ ym ⎥⎦

Um circuito combinatório, como sabemos, então, é um sistema que não possui


realimentação, pois nenhuma saída serve de re-entrada do sistema, dado que apenas
depende da entrada atual. Num sistema sequencial temos uma situação contrária. Na sistema sequencial
primeira unidade (ver §Ambiente digital, página 5) temos um circuito sequencial.
Como podemos ver através dessa figura, existe realimentação (geralmente denominada realimentação
pelo termo em inglês feedback), pelo que a saída depende das entradas atuais, mas
também da informação passada. De uma forma muito genérica, temos perante nós,
uma memória. A análise de um sistema deste calibre conjuga-se, assim, com a sua memória
variação no tempo.

figura 33
um sistema sequencial

X Y=f(x)t Y

!
!
Estruturas elementares de memória
Havendo feedback existe salvaguarda de informação por dados intervalos de
tempo até um evento como uma perturbação do sistema, o que pode provocar a
alteração do valor lógico atual.
A memória mais simples que se pode criar ou desenhar são inversores em
cascata, os quais constituem uma célula de memória estática.
!
! figura 34
! “1”
célula de memória estática
! “0”
INTRODUÇÃO AOS SISTEMAS DIGITAIS 40
Com este tipo de memória encontramo-nos com um grande problema: então
como é que escrevemos informação? Uma possível solução é a quebra seletiva da
realimentação, instalando interruptores.
! figura 34
! quebra seletiva do feedback
! /LD

!
!
! A Z

!
Geralmente, a solução mais apresentada é um outro circuito, outro desenho:
um bi-estável. Pela sua fácil aplicação e desenho, o bi-estável é uma forma muito usual bi-estável
de apresentação da cascata de inversores.
!
! figura 34
! Vin1 Vout1
Q circuito bi-estável
!
shown in Figure 1.2. Note that the AND, OR, XOR, and NOT gates are
!
ed by distinctively shaped symbols, with the input values entering on
!
and the output exiting on the other. Q_L
provide !
the building blocks from which Vin2
shown in Figure 1.2. Note that the AND, OR, XOR, and NOT gates arecomputers Vout2
are constructed.
ortant
ted bystep
ar example
in this direction
distinctively
from
and the output exiting a
shapedissymbols,
collection
depictedwith
of circuits
in thethe
known
circuit
as
!
inputinvalues
a
Figureentering
flip-flop.
1.3. Thison
A flip-flop
is
Em on the other.
regime estável, a variável Q designa-se como variável de estado de
st provide
that produces
the an output valuefrom
elemento de memória. Sewhich
building blocks of 0 or 1, which remainsare
computers
atribuirmos
constant until a
valores constructed.
aleatórios para o arranque de uma
emporary change
ortant stepsimulação, to a
in this direction 1 that returns
is depicted to 0)
inquefrom
theocircuitanother circuit
in Figure causes
1.3. This it
is
the other value. In iremos
other constatar
words, the output willcircuito
flip or apresenta
flop between doistwo estados possíveis e que os
ar example from a collection of circuits known as a flip-flop. A flip-flop
nder alterna num intervalo de tempo específico. Mas entre os dois estados possíveis, à
t thatcontrol
produces of external
an output stimuli.
value of As0 long
or 1, as bothremains
which inputs in the circuit
constant untilina
remain 0,transição,
3emporary the output
change to adamos thatoreturns
1(whether nome de
0 or to1)0)meta-estabilidade,
will
fromnotanother
change.circuit dado
However, que
causestem-éit um “estado” instável da meta-estabilidade
placing a 1 máquina,
on the upperdesregulado,
input will na
forcemaior
the parte
output
the other value. In other words, the output will flip or flop between two das
to be vezes.
1, Quando
whereas tem- uma máquina se encontra
placing a 1 neste
on the ponto,
lower isto
input significa
will force que
the o estado
output
nder control of external stimuli. As long as both inputs in the circuit in to seguinte
be 0. é imprevisível e que depende de
s3 consider this claim
estímulos in more
aleatórios detail.
como Without
o ruído knowing
elétrico.
remain 0, the output (whether 0 or 1) will not change. However, tem- the current output
cuit in Figure
placing
ut remains
!
a 1 on 1.3,
placing a 1 Latch 0
suppose
the upper
(Figure 1.4a).
thatwill
input
This
the force
upperthe
will cause
input
output
the
is changed
to be 1, to
output of
1 whiletem-
whereas
the OR gate
the
to
on the lowerSR input will force the output to be 0.
ardless of the other input to this gate. In turn,
s consider this claim in more detail. Without knowing the current outputboth inputs to the AND
nowin
cuit beFigure
1, since 1.3,the other vimos
suppose
Como input
that theto this
upper gate is already
input
anteriormente, uma1 (the
isa changed to output
cascata de pro-
1 while the
inversores demos o nome de
the NOT gate
put remainsmemória. whenever
0 (FigureMais 1.4a).the lower input of
This will causeothe the flip-flop is
outputexemplo at 0).
of the OR Thegateout-
tode uma static latch. Uma
especificamente, primeiro trata-se latch
eardless
AND gate
of the will theninput become 1, which means that the second input to
latchother é um circuito to this gate.
que In
permiteturn,que both inputs
dados to the
sejam AND
guardados e que hajam várias
now be 1, transições
since the other durante inputumtodadothis intervalo
gate is already
de tempo.1 (the output pro-
theA pictorial
NOT gate representation
whenever of AND,
the OR, input
lower XOR, and
of NOT gates as well
the flip-flop is atas0).
their
The input
out-
values Existem vários tipos de latches. Uma latch SR é um circuito sequencial, numa latch SR
e AND gate will then become 1, which means that the second input to
cascata de portas lógicas NOR (portas OR com inversores). O diagrama lógico de uma
2 A pictoriallatch
D SR é o seguinte:
representation of AND, OR, XOR, ORand NOT gates as well as their input
values figura 35
R
uts Output Inputs Output Q diagrama lógico de uma
D OR
latch SR

uts Inputs OutputOutput Inputs Inputs Output Output QN


S
0 0 0 0 0 0
0 1 0 0 1 1
Inputs
1 0 0 Para representar uma latch
Output 1 SR
0 basta
Inputs 1desenhar o seu bloco.
Output
1 1 ! 1 1 1 1
0 0
! 0 0 0 0 figura 36
0 1
1 0
1 1
! 0
0
1
0 1S
1 0
1 1R
Q1

Q
1
bloco lógico de uma latch SR
1
R NOT

uts Output Inputs Output


R NOT
41 INTRODUÇÃO AOS SISTEMAS DIGITAIS
As variáveis de controlo R e S têm estas designações em especial já vemos
porquê. Se ambas R e S tiverem o valor L (do inglês low - baixo) (R = S = L), as
portas NOR ficarão ativas e, até que outra entrada seja referida, cada porta é
simplesmente um inversor tal como requerido para uma latch. Assim com R = S = L a
máquina pode encontrar-se em dois estados possíveis, pelo que o em que se encontra
vai depender do estado passado.
Suponhemos agora que a entrada R adquire o valor H (do inglês high - alto).
Assim, a porta NOR que lhe segue permanece inativa, por conseguinte Q = L. Isto é, o
facto de que o R se ter tornado H fez um reset à latch. É por esta razão que a entrada
R foi etiquetada para R, de reset. Se a latch se iniciou no estado reset, atribuindo o reset
valor H a R não produziria qualquer variação de estado.
Até aqui temos que se R = S = L qualquer um dos estados H ou L é possível,
e que se R = H permanente ou temporariamente, a latch estará em reset. De forma
algo análoga, iniciando a máquina com o valor R = S = L, se S (etiquetado de set)
mudar o seu valor para H, permanente ou temporariamente, a latch irá para um
estado set ou ficará no estado set, se nele já ela se encontrar.
O comportamento de uma latch pode ser convenientemente sumariado numa
tabela de verdade apropriadamente arranjada para acolher estados de transição. A esta
tabela específica damos o nome de tabela de transição. A tabela de transição de uma tabela de transição
latch SR é a seguinte:
!
!
! inputs outputs
tabela 12

! tabela de transição de uma

! S R Q QN
latch SR

! L L last Q last QN

!
!
L H L H

! H L H L

! H H not used not used

!
Se simularmos S = R = H podemos constatar que os complementos de Q
igualam-se, o que é impossível (Q = Q’), pelo que na tabela se encontra a notação
“not used”.
De forma a concretizar a análise de um sistema sequencial como este, é hábito,
e é útil, fazer um diagrama de estados. Neste caso, e de acordo com a tabela de diagrama de estados
transições em cima, podemos criar o seguinte diagrama de estados:
!
!
!
SR = L L, L H
SR = H L
SR = L L, H L figura 37

! Q Q’ Q Q’ diagrama de estados de uma


! L H SR = L H H L latch SR
! SR = L H
SR = H H
SR = H L

! Q Q’

! SR = H H L L SR = H H

!
! SR = L H SR = L L, H H SR = H L

! SR = L L

! Q Q’

! H H
INTRODUÇÃO AOS SISTEMAS DIGITAIS 42
Mas este diagrama de estados contém um estado que está indicado como “not
used”. Quando tal acontece, podemos ocultá-lo, dado que num diagrama mais real, só
se a máquina se iniciasse nesse estado é que tal poderia existir. Assim, não há mal
nenhum em apresentar um diagrama como o seguinte:
!
! SR = L L, L H SR = L L, H L figura 38
! Q Q’
SR = H L
Q Q’ diagrama de estados de uma
! L H SR = L H H L latch SR sem “not used”
! SR = H H
SR = H L
!
SR = L H

!
Q Q’
L L
!
SR = H H SR = H H
SR = L L SR = L L

! Section 7.2 Latches and Flip-Flops 439

!
! DO NOT COPY
Nota! Note-se
HOWbem que a As
CLOSE figura contém
mentioned um
in the

other).sequencial
retorno
previous note,ambíguo

é minimum
In any case, the um circuito
ao may
an S-R latch estado L-H
go into

que vive
delay between
theou

negating
H-L. state ifnota
metastable
S and R are negated simultaneously. Often, but not always, a commercial latch’s
IS CLOSE?
Como um circuito
specifications define “simultaneously” (e.g., S and R negated within 20 ns of each
de S realimentação
and R for them to be

DO NOT COPY
(feedback), a evolução do sistema ao longo do tempo é um aspeto
considered nonsimultaneous is closely related to the minimum importante a
pulse width specifi-
considerar. Assim, existem certos parâmetros temporais, entre os quais, tempos de parâmetros temporais
cation. Both specifications are measures of how long it takes for the latch’s feedback
loop to stabilize during a change of state.
propagação e largura mínima de pulso. Vejamos a seguinte imagem.
figura 39

R
S

DO NOT COPY(1)
diagrama temporal de uma
latch SR

DO NOT COPY
(2)

tpLH(SQ) tpHL(RQ) tpw(min)

propagaçãoDO NOT COPY


7.2.2 S-Ré Latch
efetuada
An S-Ralteração
Figure 7-8 Timing parameters for an S-R latch.
A figura acima define parâmetros temporais para uma latch SR. O tempo de
o intervalo de tempo entre a perturbação dada na entrada até que seja
latch (readna saída. Embora
“S-bar-R-bar latch”) nos
with possa parecer
active-low instantâneo,
set and comoSa-R ordem
reset inputs may latch de
tempo de propagação

DO NOT COPY
grandeza
be builtéfrom
do nanossegundo,
NAND gates as shown é importante saber In
in Figure 7-9(a). que existem
TTL and CMOSatrasos
logicnestes sistemas.
Os families,
tempos S-R de latches are useddiferem
propagação much more deoften than S-R latches
equipamento parabecause
equipamento,
NAND tal como o
gatesdearepropagação
tempo preferred over highgates.
deNOR para low pode ser diferente da de low para high. Com
As shown by the function table, Figure 7-9(b), operation of the S-R latch is
umasimilar
latch toSR uma transição low para high em S pode causar uma transição igual em
that of the S-R , with two major differences. First, S and R are active

DO NOT COPY
Q, olow,
queso provoca
the latch um tempoitsdeprevious
remembers propagação próprio,
state when S = Rtal como
= 1; a figura nos indica. De
the active-low
forma semelhante, uma transição de low para high em R pode
inputs are clearly indicated in the symbols in (c). Second, when both S and R arecausar uma transição de
highasserted
para low em Q, comboth
simultaneously, o tempo de propagação
latch outputs go to 1, notexpresso porS-R
0 as in the tpHL(RQ)
latch., como se pode
averiguar
Except na segunda
for these transição
differences, na figura.
operation of the S-R is the same as the S-R , includ-
ing timing and metastability considerations.

DO NOT COPY
A largura mínima de pulso é uma especificação que é usualmente dada para as largura mínima de pulso
entradas
Figure S 7-9
e R S-R
da latch. Tal
latch: (a) como
circuit se pode
design using ver
NANDnagates;
figura
(b)acima,
functionatable;
latch(c)pode ir para
logic symbol.
um meta-estado e permanecer assim durante algum tempo, aleatório, se um pulso mais
pequeno
(a) S_L que a largura mínima de pulso tpw(min) (b) for aplicada QN
S_L R_L Q
em S ou (c)em R. A latch
Q
pode ir orpara
S
meta-estado sempre que tal situação 0ocorrer.
!
DO NOT COPY
S Q
0 1 1
0 1 1 0 R Q

Latch SR com portas NAND 1 0 0 1


R_L QN 1 1 last Q last QN
orUma
Rlatch SR com portas NAND (em inglês muitas vezes dita como S-bar-R-
-barCopyright
latch) com lógica
© 1999 active-low
by John F. Wakerlyem S e R, pode serCopying
construída através de portas
Prohibited
pper input will force the output to be 1, whereas tem-
re 1.4a).
ower input This
willwill cause
force the the output
output to beof0.the OR gate to
m in more detail. Without knowinginputs
input to this gate. In turn, both to theoutput
AND

43
the current
uppose that the upper input is changed to 1 whilepro-
other input to this gate is already 1 (the output the
never theThis
lower input of the
the flip-flop is the
at 0). The out-
re 1.4a). will causeINTRODUÇÃO
output of ORAOSgate SISTEMAS DIGITAIS
to
reninput
become 1, which
to this gate. In means
turn, that
boththe second
inputs input
to the ANDto
e other input NANDto thistalgate
comois already
podemos 1 (the output
ver na figurapro-
seguinte, tal como a tua tabela de estados de
tation of
never theAND, OR, input
lower XOR, and
transição. of NOT gates as well
the flip-flop
Podemos assim veratas
is their
0).
que Theinput
out- muitas semelhanças entre uma latch SR por
existem
en becomeNOR’s 1, whiche umameans
latchthat
SRthe
comsecond
NAND’s. input to

OR
tation of AND, OR, XOR, and NOT gates as well as their input figura 40
inputs outputs
latch SR com portas NAND
S_L
utput Inputs Output Q
S_L R_L Q QN
e respetiva tabela de
OR
transição
e22
0 0 1 1
Chapter 1 Data Storage
0 1 1 0
Output Inputs Inputs Output Output QN
R_L
m, as shown in Figure 1.2.0 Note form, as shown in Figure 1.2.
that the AND, OR, XOR, Noteand that NOT
1the AND, 0 OR, XOR,
gates are
0 and1 NOT gates are
e 0
represented 0by distinctively shaped symbols, with the input values entering on
resented by distinctively shaped symbols, with the input values1 entering 1 on
22
! 0 1 last Q last QN
Chapter 1 Data Storage one side andother. 1the output exiting on the other.
e side and the output exiting 1 0on theOutput
Inputs
m, Gates
as shown
eresented
important
!
provide in the
bystep
Figure building
inPrimeiro,
1.2.
One0
this direction
Gates
1blocks
1 Note
0
that
important
is
1
provide
1from
0
the
depicted
step
the building
which
AND,in this
in the
OR,computers blocks
XOR, and
direction
circuit
from
areNOT
is depicted
invalues
Figure
which computers are constructed.
constructed.
gates
1.3.
in the
Thison
arecircuit in Figure 1.3. This is
distinctively form,
shapedS_L
a particular
0 1
as shown
e R_L
symbols,
example
in Figure
estão
with
1circuits from em
the1.2. Note
lógica
input that
active-low,the
a collection of circuits known
AND,
entering logo aislatch
OR, XOR, and NOT
as arecorda
flip-flop. o seu gates are
A flip-flop
articular
e side and the example from
output a
exitingcollection
represented
0on thethat
of by
other. known
distinctively as a
shaped flip-flop.
symbols, A flip-flop
with the input values entering on
estado passado is 1aquando
circuit S_L = R_L an
1 produces = output
1; as value entradas of 0 active-low
or 1, whichestão remains claramente
constant until a
circuit that
Gates provide produces an
the building output
one side
1 1blocks value
and of
the 0 or
output1, which
exiting remains
on the constant
other. until a
indicadas na representação
pulse (a temporary 1from
em bloco which
change computers
lógico, to aque 1 that are
se segue. constructed.
returns to 0) from another circuit causes it
eseimportant !
(a temporary step change
in NOT to a Gates
this direction 1 that is returns
provide
depicted to
the
in0)thefrom
building
to shift to the other value. In other words, the
another
circuit blocks
in circuit
Figurefrom 1.3.causes
which
This is
output
itcomputers are constructed.
will flip or flop between two
hift to the
!
other value.
articular example from avalues InOneother
collection words,
important
under
the
step
of circuits output
in
control known
this will flip
direction
of external
or flop
is between
depicted
flip-flop.
as a stimuli. AsAlong
in two
the
flip-flop circuit in Figure 1.3. This
as both inputs in the circuit
is
figura
in 41
ues under
!
control of
circuit that produces anFigureexternal
aoutput1.3 stimuli.
particular value remain
As
example
of 0 orlong
0, 1,
as
from
the
both
which a
output
inputs
collection
remains
S
in
of
Q constant
(whether
the
circuitscircuit
0 or 1)
known
until in as a flip-flop.
willa not change. However, bloco
A flip-flop
tem- lógico de uma latch SR
ure
se (a1.3
Output
arily
hift toplacing !
remain 0,change
temporary
a 1 on
the
NOT
output
Inputs
the In
is
to
porarily
upper
(whether
aacircuit
1 that
input
that
returns
placing
0produces
a
will force
or to
Output
1
1)0)
on
will
the
annot
from output
upper
the output
change.
another value
input
a 1tothat
to Rflip orbeflop
Q 1,
However,
of 0 or
circuit
will
whereas
1,tem-
causes
force
which
the
tem-
it
output
remains constant until a
to be 1, whereas tem-portas NAND
com
arily placing !
the other
a 1
value.
on
ues under control of external the
pulse
to
other
porarily
lowershift
Let
(awords,
input
to
temporary
placingthe
stimuli.thewill
us consider
force
other
As long
change
a 1output
on thewill
the
value.
lower
output
thisasclaim
In other
bothin to
input
inputs be
words,
more in
returns
will
0.
between
the
to 0)
force the
output
the circuit
detail. Without
from another circuit causes
two output to be 0.
will flip or flop between
inknowing the current output two
it

Let1.3
us consider
remain 0,this Segundo,
claim inquando
values moreunder ambos
detail.
control S_L
Without of eknowing
R_L
external são thealterados
stimuli. current
As long emas simultâneo
output both inputsambos in the as circuit in
ure
Output the
Inputs ofInputs
output the(whether
circuitOutput 0Figure
or
inOutput 1) will
1.3, not
supposechange. thatHowever,
the uppertem- input is changed to 1 while the
he circuit in Figure
saídas vão 1.3,
arily placing a 1 on the upper suppose
Figure
para 1, e
inputthat
1.3 não the
remain paraupper
0, the
0, input
output
como is changed
(whether
acontecia to
na 01 while
or
latch1) the
will
SR. not
À change.
exceção However,
destas tem-
lower input will
01.4a). remains
1
force 0the output
(Figure to beThis
1.4a). 1, whereas
will cause tem-the output of the OR gate to
er input remains 0
diferenças, (Figure
arily placing a 1 on the lower a porarily
operação This
placing
desta
input will will
a
latch1 cause
on é the the
igual upper
à output
da input of
latch the
will
SR, OR
force gate
the
incluindo tooutput
situaçõesto be 1,
de whereas
meta- tem-
be 11, regardless 0 force of thethe output
other input to be to 0.this gate. In turn, both inputs to the AND
1,Letregardless of the
thisother
estabilidade
us consider claim input
e porarily
tempos.
in will
more to this
placing
detail. gate.
a Without
1 on Inthe turn,lowerbothinput
knowing inputs
the will toforce
current the AND the output to be 0.
Inputs
gate Output
now be 1, since the other input to thisoutput gate is already 1 (the output pro-
ehewill
ed by
now
the
wer input remains
!be
NOT
1, since
gate
the
circuit in Figure 1.3, suppose
whenever
0 (Figure of
other
the
0
Let
duced bythat
1.4a).
input
us
the
circuit
of theThis
lower
1
to
consider
thethe NOT
in
this
upper
input
Figure
will
gate
this
cause of
1.3,
is
claim
gate input
whenever
the
will the
already
in more
is changed
flip-flop
suppose
thenoutput
1 (the
is
that
detail.
the lower
at
of thethe
output
0).
whilepro-
Without
to 1 input
The
upper
OR gate
the
of
out-
input
knowing the current output
the flip-flop is at 0). The out-
to is changed to 1 while the
of the AND
Latch
gate
SR
will
com put1enable
then
lower become
input
AND0 which
1,
remains
gate
0 means
(Figure that
become
1.4a). the
1, which
second
This will input
means
cause to the
that the second input to
output of the OR gate to
1, regardless of the other input to this gate. In turn, both inputs to the AND
e will now be 1, since be 1, regardless of the other input to this gate. In turn, both inputs to the AND
Umathe other
latch
Figure SR input
1.2 to thislatch
ouA pictorial
uma gate S’R’is already
representation é sensível 1 (the
of AND, àsoutput
OR, entradas
XOR, pro-
and NOTS egatesR, assempre.
well as No
their input
ure 1.2
ced by the NOT A pictorial gate
representation
gateewhenever will
of now
AND,
thevalues
lower be
OR, 1,
XOR,since
input of and the
NOT
the other
gates input
as
flip-flop is well to
as this
their
at valores gate
input
0). The out- is already 1 (the output pro-
entanto, comoand output
forma de facilitar a alternância dos das entradas, podemos
output
of thevalues
AND gate will then duced becomeby the1,NOT which gatemeanswhenever that the the lower
secondinput input of tothe flip-flop is at 0). The out-
adicionar um put enable of the C. AND gate will then become 1, which means that the second input to
AND OR
ure AND
1.2 A pictorial representation of AND, OR, XOR,ORand NOT gates as well as their input
output values Figure 1.2 A pictorial representation of AND, OR, XOR, and NOT gates as well as their input
figura 42
S
and output values
Inputs Output Inputs Output
Inputs Output Inputs Output Q diagrama lógico de uma
AND OR
AND OR latch SR com enable
C
Inputs Output Inputs Output
Inputs Inputs OutputOutput Inputs Inputs Output Output QN
Inputs 0 0 0 Output 0 Output Inputs 0 0
0 0 0 R
0 1 0 0 0 0 0 1 1
0 1 0 1 0 0 0 1 1 1 0 1
Inputs
1 0 Output
0 1 1 1 Inputs
1 0 Output
1 1 1 1
1Latch
1 D1 Inputs Output
1 1 1
Inputs Output
0 0 0 0 0 0
0 1 0 0 0 0 1 0 0 0
As0 latches SR são úteis
0 1 em termos
0 1 0 de controlo
1 de dadas aplicações. Assim,
0 1 nós
1 0 0 1 1
1controlamos
1 1 através XOR
do valor
1 que
0 atribuímos
0 1 1 às variáveis R e S.
1 NOT
1 0 1
XOR
1 1página 1
A figura seguinte (na NOT seguinte) apresenta uma latch 1D.1O seu diagrama
1 latch D
lógico é passível de ser reconhecido a partir de uma latch SR com enable, com apenas
um inversor adicionado de forma a gerar Output
Inputs S e R através de DInputs
(entrada com o nome D
Output
Inputs Output Inputs Output
XOR de dados - data em inglês). Isto elimina
NOT o problema que tínhamos em latches SR, onde
XOR NOT
S e R podiam ser alterados em simultâneo. A variável de controlo de entrada de uma
latch D é denominada de Inputs
C, mas também Inputs
Output pode ter os nomes de ENABLE, Output
CLK e G.
Inputs Inputs Output Output Inputs Inputs Output
Output
Inputs 0 0 0 Output Inputs 0 1 Output
0 0 0 0 1 1 0 1 1 0
0 1 1 1 0 1 1 0
Inputs
1 0 Output
1 1 1 0 Inputs Output
Inputs Output Inputs Output
1 1 0
0 0 0 0 1
be 1,Let
regardless of the
us consider thisother
claim input
porarily
in will
more to this
placing gate.
detail. Inthe
a Without
1 on turn, bothinput
lower
knowing inputs
the will toforce
current the AND
the output to be 0.
gate now be 1, since the other input to thisoutput
gate is already 1 (the output pro-
gate
of thewill nowin
circuit beFigure
1, since
1.3,the other
supposeLet usinput
that to this
consider
the upper gate
this is already
claim
input is 1 (the
inchanged
more output
detail.
to 1 Without
while pro-
the knowing the current output
duced by the NOT gate whenever the lower input of the flip-flop is at 0). The out-

44
duced by the NOT gate
lower input remains 0 (Figurewhenever
of the the
circuit
1.4a). lower
This in input
Figure
will of the
1.3,
cause the flip-flop
suppose
output is
that
of at
the
the 0). The
upper
OR gateout-
input
to is changed to 1 while the
put of the AND gate will then become 1, which means that the second input to
put of the AND gate will then become 1, which 0means
(Figure that the
1.4a). second
This will input
be 1, regardless of the other input to this gate. In turn, both inputs to the AND output of the OR gate to
lower input remains cause to
the
gate will now be 1, since the beother
1, regardless
input to of
thisthe other
gate INTRODUÇÃO
input to
is already this output
1 (the gate. Inpro- AOSboth
turn, SISTEMAS
inputs to theDIGITAIS
AND
Figure 1.2 A pictorial representation of AND, OR, XOR, and NOT gates as well as their input
Figure
duced 1.2
by theA pictorial
NOT gate gate
representation
whenever will
of
the now
AND, be 1, since
OR, input
lower XOR, and the
of NOT other input
gates as well
the flip-flop to
is atas0).this
their
The gate
input
out- is already 1 (the output pro-
and output values
and A lógica
put output
of thevaluesdeste componenteduced é active-low,
by the NOT pelo
gate que também
whenever
AND gate will then become 1, which means that the second input to the tem
loweruma largura
input of themínima de
flip-flop is at 0). The out-
pulso, como requisito de putalternância.
of the AND gate will then become 1, which means that the second input to
AND OR
Figure AND
1.2 A pictorial representation of AND, OR, XOR,ORand NOT gates as well as their input
and output values Figure 1.2 A pictorial representation of AND, OR, XOR, and NOT gates as well figura
as their input
43
D
and output values
Inputs Output Inputs Output
Inputs Output Inputs Output Q diagrama lógico de uma
AND OR
AND OR latch D
C
Inputs Output Inputs Output
Inputs Inputs OutputOutput Inputs Inputs Output Output QN
Inputs 0 0 0 Output 0 Output Inputs 0 0
0 0 0 0 1 0 0Section
0 7.2 0 Latches and Flip-Flops
0 1 441 1
0 1 0 1 0 0 0 1 1 1 0 1

DO NOT COPY
Inputs
1 0 Output
0 1 1 1 Inputs
1 0 Output
1 1 1
D
Inputs Output Inputs 1
Output
A 1representação
1 1 de bloco lógico de um
Q componente
1 1 1desta espécie é a seguinte:
! 0 0 0
0 0
0 0C D Q 0 QN
0 0 1 0 0Q
! C 0 1 0
0 1 0
1 0 01 1 D
0 1
0
1 figura 44
! 1 0 0
1 0 D 0
Q
1 01 1 11 0 C
1 0 Q
1

DO NOT COPY
1 1 1 QN 1 10 x last 1 bloco lógico de uma
! XOR Q last QN NOT
1 1 1 1 1 1
XOR C NOTQ latch D
! (a)

Figure 7-12 D latch: (a) circuitInputs


design using NAND gates;Output
(b)
Section 7.2
(b) function table; (c) logic symbol.
Inputs Output
(c)
Latches and Flip-Flops 441

DO NOT
NOT COPY
COPY
Inputs
D Output Inputs Output

DO
XOR
D Um exemplo de comportamento de XOR
NOTuma
Q latch D está dada na figura seguinte. NOT
C D Q QN
Quando C é alterado, a saída Q segue D. Nesta situação, o latch diz-se “aberto” e o
C C
Inputs Output 1 0 0 1 D
InputsQ
Output
caminho de
Inputs Inputs
D até Q é “transparente”;
Output Output o circuito
Inputs Inputs
também
1 1 é
Output
1 chamado
0
Output
deC transparent
Q

DO NOT
NOT COPY
COPY
latch por esta razão em particular. Inputs Quando
0 0 o QN
C Output
0 está 0negado,
x last Q olast
latch Inputs
QN “fecha”; a0 saída Q1 Output
Q

DO
0 0 0 0 1 1 0 1 1 0
fixa(a)o seu último valor e enquanto C permanece negado (b) não há alteração (c) em resposta a
Figure07-131 Functional 1 behavior of a D1latch
0 for various 1
1 inputs. 0
D. Figure Inputs
1 7-12
0 DOutput
1 (a) circuit design 1using
latch: 1 0 Inputs
gates; Output
(b) function table; (c) logic symbol.
Inputs NAND Output Inputs Output
single D1(data)
1 input.0This eliminates the troublesome situation in S-R latches, figura 45

DO NOT
NOT COPY
COPY
0 0 0 0 1
where
D S and R may be asserted simultaneously.0 0 The control
0 input of a D latch, 0 1 diagrama temporal de uma
0 1 1 1 0

DO
labeled C 0 1 , CLK, or1 G, and is active low in 1 0
1 in0 (c), is sometimes
1 named ENABLE
latch D
C
some D-latch 1 0 1
1 1 designs.0
An example of a D latch’s functional 1 1behavior 0 is given in Figure 7-13.
Q
When the C input is asserted, the Q output follows the D input. In this situation,
the
Figure

input
adjacentes
longer
DO NOT
DO
ent”; theDe
NOT COPY
wherechanges
figura,
COPY
latch is7-13
said toFunctional
forma
circuit
singleis Dnegated,
ao input.
(data)
S and sinais
para
be “open”behavior
mais
is often
the latch
componente.
Rinmay
response
be
que
and the path

to D, as
asserted
of a D
detalhada,
called
Quatro
eliminates
from
a transparent
This“closes”; the
latch
a latch
input
D for
seguinte
output
theQtroublesome
long as C remains
simultaneously.
se propagam the D das
The
to Q output
various

retains
diferentes
entradas
inputs.is “transpar-
for thisfigura
reason.incorpora
When the C os transparent
its lastinvalue
tempos
situation
negated.
controlC input
e Dof7-14.
and
àa Dsaída
tempos latch
de atraso
no são mostrados na
de latches,
S-R atraso
latch, Q. Por exemplo, nas

DO NOT
NOT COPY
COPY
More
labeled C indetailed
(c), is timing behavior
sometimes namedof ENABLE latch is shown
, CLK , or G,inandFigure
is active lowFour
in
transições (1)designs.
e (4) a latch é inicialmente “fechada”
propagate efrom a entrada
the C or DD é o oposto da saída

DO
different delay
some D-latch parameters are shown for signals that
Q.input
Portanto,
to Q quando
Antheexampleoutput.of aFor
DCexample,
alterafunctional
latch’s oat seu valor
transitions 1para
behavior 1the
andis 4givena latch
latch is“abre-se”
7-13. e a saída Q muda
initially
in Figure
após
Wheno atraso
the C inputtpLH(CQ) ou tpHL(CQ)
is asserted, .
the Q output follows the D input. In this situation,
Figure
the latch7-14
is saidTiming parameters for a D latch.D
to be “open” and the path from input to Q output is “transpar-
D

C
DO NOT COPY
ent”; the circuit is often called a transparent latch for this reason. When the C transparent latch

DO NOT COPY
input is negated, the latch “closes”; the Q output retains its last value and no
longer changes in response to D, as long as C remains negated.
More detailed timing behavior of the D latch is shown in Figure 7-14. Four
figura 46
diagrama temporal de uma
latch D (em detalhe)

DO NOT COPY
different delay parameters are shown for signals that propagate from the C or D
(1)
input to the Q output. For(2)
example,(3)at transitions 1 (4) and 4(5)the latch is initially
Q

DO NOT COPY
Figure 7-14 Timing parameters for a D latch.

DO NOT COPY
D tpHL(DQ) tpHL(CQ) thold
tpLH(CQ) tpLH(DQ) tpLH(DQ) tsetup

Copyright
C © 1999 by John F. Wakerly Copying Prohibited
Embora(1)a latch (2)D elimine
(3)
o problema
(4)
da
(5)
latch SR de S = R = 1, ela não
elimina o problema da meta-estabilidade. Tal como presente na figura acima, há uma
Q

DO NOT COPY
zona sombreada (a terceira) onde a entrada D não deve mudar o seu valor, dado que
deve respeitar os tempos de setup - tempo mínimo antes do clock, dentro do qual as
tpLH(CQ)
tpHL(DQ) tpHL(CQ)
tpLH(DQ) tpLH(DQ)
thold
tsetup
tempo de setup

Copyright © 1999 by John F. Wakerly Copying Prohibited


45 INTRODUÇÃO AOS SISTEMAS DIGITAIS
entradas devem permanecer estáveis - e de hold - tempo mínimo depois do clock, no tempo de hold
qual as entradas devem permanecer estáveis -, caso contrário temos situações de meta-
estabilidade, evitáveis nestes casos.
Uma latch D tem a seguinte tabela de estados:
!
!
! inputs outputs tabela 13

! tabela de transição de uma

!
C D Q QN
latch D
! 0 x last Q last QN

! 1 0 0 1

! 1 1 1 0

!
Flip-flops
Nas secções anteriores referimos sempre latches, como circuitos sequenciais.
Mais que as latches, os flip-flops são o próximo e último exemplo de circuitos
sequenciais que vamos aprender nesta disciplina. Mas qual é a diferença entre ambos?
Os latches são sistemas que analisam as suas entradas continuamente e que mudam as
suas saídas em qualquer instante, independentemente de qualquer sinal de relógio
(clock). Já os flip-flops são sistemas sequenciais que analisam, normalmente, as suas flip-flops
entradas e que mudam as suas saídas apenas em instantes determinados por um sinal
de relógio.
!
Flip-flop D edge-triggered
Um flip-flop D edge-triggered combina um par de latches D, tal como flip-flop D edge-triggered
mostrado na figura seguinte, de forma a criar um circuito que copia a sua entrada D e
muda as duas saídas Q e QN apenas quando há uma transição low para high no clock
(edge-triggered). O primeiro latch é denominado de master. Este latch é sempre aberto master
enquanto CLK é 0. Quando a entrada de relógio CLK muda o seu valor para 1, a latch
master é fechado e a sua saída é transferida para a segunda latch, denominada de
slave. A latch slave está aberta enquanto o CLK está com valor 1, mas muda apenas slave
no início deste intervalo, porque a master está fechada e incapacitada de mudar até ao
resto do intervalo.
!
! figura 47

! D D Q D Q Q diagrama lógico interno de

! C C Q QN
um flip-flop D edge-triggered

CLK

!
A representação em bloco lógico é a seguinte:
!
! figura 48
! D Q
bloco lógico de um
! CLK Q
flip-flop D edge-triggered
!
O triângulo na entrada CLK, no flip-flop D edge-triggered, indica que existe
comportamento edge-triggered, ou seja, que ele reage à transição low para high e é
INTRODUÇÃO AOS SISTEMAS DIGITAIS 46
denominado de dynamic-input indicator (em português, indicador de entrada
dinâmica). A figura seguinte mostra o comportamento funcional deste flip-flop num
diagrama temporal. Note-se que na figura o sinal QM corresponde à saída da latch
master. Notemos também que a variável QM muda apenas quando CLK está a 0.
Quando CLK muda para 1, o valor atual de QM muda para Q, e QM permanece
assegurado em relação a uma possível mudança até que 7.2
Section o CLK retorne
Latches a 0.
and Flip-Flops 443 Section 7.2 Latches and Flip-Flops 443

D
D

CLK
CLK

QM
DO NOT COPY
COPY figura 49
diagrama temporal de um
flip-flop D edge-triggered

DO NOT COPY
QM

QN
QN
Q
Q

COPY
DO NOT COPY
Figure 7-16 Functional behavior of a positive-edge-triggered D flip-flop.

COPY
Figure 7-16 Functional behavior of a positive-edge-triggered D flip-flop.
A figura acima mostra o comportamento do flip-flop, ao longo do tempo, mais
Like a D latch, the edge-triggered D flip-flop has a setup and hold time
a pormenor.
window a D Todos
Likeduring latch,
whichthe theosD tempos
edge-triggered
inputs must de not atraso
flip-flopThis
D change. sãowindow
has a medidos
setupoccurs aaround
and hold partir
time do início de uma
transição
window
the triggeringlow edge
during para
which high
of the
CLK do isCLK,
D, inputs
and must
indicatednotdado
change.queThis
by shaded esse éin oFigure
window
color único
occurs acontecimento
around
7-17. If que causa

DO NOT COPY
the triggering edgetimesof CLKare, not
andmet, is indicated by shaded color in Figurego to7-17.
a sta-If

COPY
umathemudança
setup and hold de estado de saída. the flip-flop output will usually
the
ble,setup
though andunpredictable,
hold times are not or 1met, the flip-flop output will usually go to will
a sta-
ble, though como uma 00latch
Tal unpredictable, orstate
state.
D, In
1 state. um
In
some cases,
someflip-flop however, the output
D edge-triggered
cases,0however, willtambém tem os seus
oscillate or go to a metastable halfway between and 1, as the output
shown at the
tempos
oscillate deor go
second-to-last setupclock etick
hold,
in thedurante
to a metastable state
figure. halfway
If theos flip-flop
quais as
between 0 and
goes suas
into entradas
1, the
as shown
metastable não devem mudar. Ao
at the
tempo
state, de
second-to-last setup e tode
clock tickhold,
in the juntos,
on itsIfdamos
figure. the only oafter
nome
flip-flop goes deintojanela de estabilidade.
the metastable Esta janela janela de estabilidade

DO NOT
NOT COPY
it will return a stable state own a probabilistic delay, as

DO COPY
state, it willinreturn
explained to a stable It state on itsbeown onlyinto
after a probabilistic delay, as
ocorre, neste\secref{metest}.
caso, algures canentre
also aforced
transição a stable
de state by applying
estados low para high do clock,
explained in \secref{metest}.
another triggering clock edge It withcana also
D inputbe forced into the
that meets a stable
setup-state
andby applying
hold-time
devidamente
another
requirements, indicado
triggering clockatedge
as shown na figura
with
the last a D seguinte.
clock input
tick inthat Se não
themeets
figure. houver
the setup- and consistência
hold-time entre tempos de
setup eAhold,
requirements, o shown
as flip-flop at the
negative-edge-triggered muito
lastDclockprovavelmente
tick simply
flip-flop in the figure. irá the
inverts para clockuminput,estadoso imprevisível: 0 ou 1.
negative-edge-triggered

DO NOT
NOT COPY
Emthatalguns
all casos,takes
the action no place
A negative-edge-triggered entanto, afalling
saídasimply
onDtheflip-flop vaiofoscilar
edge CLK_L;the
inverts ou entra
by clock
convention, num
input, flip-flop
aso estado meta-estável,
Dnegative-edge-triggered

DO COPY
falling-edge
that all triggertakes
the action is considered
placena onto thebefalling
active low. edge The flip-flop’s
CLK_L; byfunction table a D flip-flop
como podemos constatar penúltima áreaof sombreada convention,
da figura. Se o flip-flop entrar
and logic symbol
falling-edge triggerareisshown in Figure
considered to be7-18.
active low. The flip-flop’s function table
emandmeta-estabilidade,
Some
logic D flip-flops
symbol are shown eleinasynchronous
have retornará
Figure 7-18.um inputsestado
that mayestável
be used por to forcesi the
próprio, após um
asynchronous inputsatraso
probabilístico.
flip-flop
Some Também
to aDparticular
flip-flops havepode
state independent ser forçado
asynchronous of the CLKa
inputs mudar
and
that be para
D inputs.
may These
used toum estado
inputs,
force estável, aplicando
the preset
asynchronous inputs

DO NOT
NOT COPY
typically
outro
flip-flop tolabeled
relógio comPRefeito
a particular (preset) and CLR (clear),
state triggering-edge,
independent of the CLK behave
com andumalike the set
entrada
D inputs. andDinputs,
These reset
que vaiclear de encontro com
preset

DO
ostypically

COPY
temposlabeled de setup PR e(preset)
hold, and como CLR (clear), behaveno
representados likeúltimo
the setsombreado
and reset clear da figura.
Figure 7-17 Timing behavior of a positive-edge-triggered D flip-flop.
Figure 7-17 Timing behavior of a positive-edge-triggered D flip-flop.
figura 50

DO NOT COPY
D

diagrama temporal de um

DO NOT COPY
D

CLK flip-flop D edge-triggered


CLK (em detalhe)

Q
DO
Q

NOT COPY
DO NOT COPY tpLH(CQ) tpHL(CQ)
thold
tsetup
thold
tpLH(CQ)
Copyright © 1999 tpHL(CQ)
by John F. Wakerly tsetup
Copying Prohibited
Os© flip-flops
Copyright podem
1999 by John estar
ligados, assim, em
F. Wakerly cascata,
Copying pelo que constituem um
Prohibited
bloco lógico importante em lógica sequencial: o registo de deslocamento (shift register). registo de deslocamento
Uma grande vantagem desta lógica é o facto do funcionamento ser viabilizado por uma
correta articulação dos parâmetros temporais, o que perfaz atrasos de propagação que
excedem largamente os tempos de hold, o que garante que o “andar seguinte” guarde o
valor (por muito que temporariamente) corrente antes que este seja substituído por um
novo valor.
Existem muitos outros flip-flops, sendo os mais interessantes para o estudo, os
flip-flops JK e T (toogle).
47 INTRODUÇÃO AOS SISTEMAS DIGITAIS
Caracterização analítica
De forma a fazermos uma caracterização analítica de um sistema sequencial, caraterização analítica
um dos passos essenciais é a escrita e cálculo da equação caraterística. equação caraterística
Tomando o estado seguinte como função booleana do estado presente e das
entradas de excitação de uma latch/flip-flop, conseguimos chegar à respetiva equação
caraterística. Vejamos dois exemplos a partir das tabelas de transição:
!
!
! figura 51
!
S

equações caraterísticas a
! Q 00 01 11 10 Q 0 1
partir das tabelas de
! 0 transição num K-map
! 0
0 0 x 1 0 1

! 1 1 0 x 1 1 0 1

!
!
R

!
! Q + = S + QR Q+ = D
!
Para cada latch/flip-flop importa saber que estímulos devem ser aplicados
para induzir uma determinada mudança de estado. A partir dos diagramas de estado,
podemos construir as tabelas de excitação. tabelas de excitação
!
! tabela 14
! Q→ SR D

! 0→0 0X 0
tabela de excitação

!
! 0→1 10 1

! 1→0 01 0

! 1→1 X0 1

!
Em suma, a seguinte tabela carateriza alguns dos comportamentos de alguns
latches/flip-flops:

tipo amostragem das entradas validade das saídas


tabela 15
alguns comportamentos
latch sempre atraso de propagação desde a temporais de
alteração da entrada latches/flip-flops
latch com clock C=1 atraso de propagação desde a
(C) alteração da entrada

flip-flop D edge- C = 0 para C = 1
 atraso de propagação desde a


-triggered (pos) Tsetup transição low-high do clock

flip-flop D edge- C = 1 para C = 0
 atraso de propagação desde a


-triggered (neg) Tsetup transição high-low do clock

flip-flop master C = 1
 atraso de propagação desde a


slave Tsetup transição high-low do clock
INTRODUÇÃO AOS SISTEMAS DIGITAIS 48
9. Análise de sistemas sequenciais síncronos
Quando nos apresentam um circuito sequencial, por forma de um esquema
lógico dum sistema sequencial síncrono, como é que podemos caraterizar o seu
funcionamento? Para fazer a sua caraterização nós devemos usar um vasto número de
instrumentos como equações de excitação das estruturas elementares de memória (flip-
-flop), equações caraterísticas, tabelas de transição/saídas do sistema, diagramas de
estado e diagramas temporais.
!
Metodologia de análise
Vejamos, desde já, uma boa ordem de análise de um sistema sequencial
síncrono. Assim, de forma a analisar um circuito desta espécie, podemos seguir a
seguinte metodologia:
!
‣ Etapa 1 - etapa de preparação de valores e equações:
- Para cada flip-flop determinar a função de excitação;
- Usando a equação caraterística dos flip-flops, deduzir as equações de
transição de estados (trivial com flip-flops do tipo D);
- Determinar as equações de saída.
‣ Etapa 2 - etapa de construção e pré-análise:
- Construir uma tabela de transição de estados, indicando, para cada
combinação estado/entrada, o estado seguinte;
- Construir uma tabela de saídas, indicando, para cada combinação
estado/entrada, os valores de saída (a qual pode ser combinada com a
tabela de transição de estados).
‣ Etapa 3 - etapa de análise completo de um sistema síncrono sequencial:
- Desenhar o diagrama de estados.
!
Vejamos um exemplo de aplicação desta metodologia. Consideremos o seguinte
esquema
456
lógico de um determinado circuito síncrono sequencial.
Chapter 7 Sequential Logic Design Principles

figura 52

DO NOT COPY
bloco combinatório F memórias lógica de saída G
Next-state Logic F State Memory Output Logic G
sistema sequencial síncrono
output
saída
a analisar
input
entrada MAX
excitação
excitation

DO NOT COPY
EN
EN
D0 Q0
D Q
EN′
CLK Q

DO NOT COPY
Q0

Q0′

D1 Q1
D Q

DO NOT COPY
CLK Q
Q1

Q1′

CLK
DO NOT COPY clock signal
sinal de relógio
current state
estado atual

Figure 7-38 Clocked synchronous state machine using positive-edge-triggered D flip-flops.

DO NOT COPY
excitation

excitation equation
the current state of the machine. We have named the signals on the correspond-
ing D inputs D0 and D1. These signals provide the excitation for the D flip-flops
at each clock tick. Logic equations that express the excitation signals as func-
tions of the current state and input are called excitation equations and can be
derived from the circuit diagram:
49 INTRODUÇÃO AOS SISTEMAS DIGITAIS
Então, como tínhamos no nosso esquema metódico, a primeira etapa é de
preparação de valores e equações, logo comecemos por traduzir as equações de
excitação, caraterísticas, de transição e de saída.
! equação 53
equações de excitação:! D0 = Q0 . EN '+ Q0 '. EN
equações de excitação
! D1 = Q1 . EN '+ Q1 '.Q0 . EN + Q1 .Q0 '. EN
!
equações caraterísticas: ! Q0 * = D0 equação 54
! Q1 * = D1 equações caraterísticas

! equação 55
equações de transição: ! Q0 * = Q0 . EN '+ Q0 '. EN
equações de transição
! Q1 * = Q1 . EN '+ Q1 '.Q0 . EN + Q1 .Q0 '. EN
!
equação de saída: ! MAX = Q1Q0 EN equação 56
! equação de saída
Se repararmos bem, as equações de excitação correspondem às do bloco
combinatório F e as equações caraterísticas aos flip-flops usados (memórias).
A segunda etapa serve para gerar uma pré-análise através de tabelas, entre as
quais as de transições, estados e de estados/saídas.
!
! tabela 15
! EN EN EN
tabela de transições
! Q1 Q0 0 1 S 0 1 S 0 1

! 00 00 01 A A B A A, 0 B, 0
tabela 16

! tabela de estados

!
01 01 10 B B C B B, 0 C, 0
tabela 17
! 10 10 11 C C D C C, 0 D, 0
tabela de estados/saídas
! 11 11 00 D D A D D, 0 A, 1

! Q1* Q0* S* S*, MAX

!
! tabela de transições tabela de estados tabela de estados/saídas
!
A terceira e última etapa completa a análise, através do desenho de um
diagrama de estados.
!
! figura 53
! EN = 0 EN = 0
diagrama de estados
! (MAX = 0)
EN = 1
(MAX = 0)

! A B

!
(MAX = 0)

!
! EN = 1 EN = 1
! (MAX = 1) (MAX = 0)

!
!
! EN = 1

! D C

!
(MAX = 0)
EN = 0 EN = 0

! (MAX = 0) (MAX = 0)
Let us consider this claim in more detail. Without knowing the cur
of the circuit in Figure 1.3, suppose that the upper input is changed to

50
lower input remains 0 (Figure 1.4a). This will cause the output of the
be 1, regardless of the other input to this gate. In turn, both inputs
INTRODUÇÃO
gate will nowAOS SISTEMAS
be 1, since DIGITAIS
the other input to this gate is already 1 (the
duced by the NOT gate whenever the lower input of the flip-flop is at
Façamos agora uma pequena variação do exemplo put of anterior.
the AND gateParawilltal,then become 1, which means that the seco
consideremos o mesmo circuito com uma pequena alteração: MAX agora passa a
MAXS (por questões de distinção dos casos); MAXS agoraFigure 1.2 com
só conta Q0 e representation
A pictorial Q1, e of AND, OR, XOR, and NOT gates as well a
não com
456 EN. Vejamos
Chapter o esquema.
7 Sequential Logic Design Principles and output values

figura 54

DO NOT COPY
bloco combinatório F memórias lógica de saída G
Next-state Logic F AND
State Memory Output Logic G OR
re-análise do sistema
output
saída
anterior (modificado)
input
entrada
excitação
excitation
Inputs Output
MAX
MAXS Inputs O

DO NOT COPY
EN
EN
D0 Q0
D Q
EN′
CLK Q
Inputs Output Inputs Output

0 0 0 0 0 0

DO NOT COPY
Q0 0 1 0 0 1 1
1 0 0 1 0 1
Q0′ 1 1 1 1 1 1
D1 Q1
D Q

DO NOT COPY
CLK Q
Q1

XOR NOT
Q1′

DO NOT COPY
Inputs Output Inputs Ou
clock signal
sinal de relógio
current state
estado atual
CLK

! Inputs D flip-flops.
Figure 7-38 Clocked synchronous state machine using positive-edge-triggered Output Inputs Output

DO NOT COPY We have named the signals 0on 0the correspond-


0 0 1
Vejamos agora othe
diagrama e tabela
current state de estados/saídas.
of the machine.
! excitation ing D inputs D0 and D1. These signals provide the excitation 0for1the D flip-flops
1 1 0

! 1 0signals as1func-
at each clock tick. Logic equations that express the excitation
1 1 and can 0 be
! excitation equation
EN = 0
tions of the current state and input are called excitation equations
EN = 0
figura 55

!
DO NOT COPY
derived from the circuit diagram:
diagrama de estados
1 ⋅ EN′ + Q0′ ⋅ EN
= =Q0
! A D0 EN B
D1 = Q1 ⋅ EN′ + Q1′ ⋅ Q0 ⋅ EN(MAXS
+ Q1= 0) ⋅ Q0 ′ ⋅ EN

! (MAXS = 0)

! By convention, the next value of a state variable after a clock tick is denot-
ed by appending a star to the state-variable name, for example, Q0∗ or Q1∗.

DO NOT
!
COPY
* suffix
Using the characteristic equation of D flip-flops, QEN∗ ==D1, we can describe the
! EN = 1
next-state function of the example machine with equations for the next value of
! the state variables:

! Q0∗ = D0

DO
!
NOT COPY
Q1∗ = D1

! D EN = 1 C
Substituting the excitation equations for D0 and D1 , we can write

!
(MAXS = 0)
Q0∗ = Q0 ⋅ EN′ + Q0′ ⋅ EN
(MAXS = 1)

! EN = 0 Q1∗ = Q1 ⋅ EN′ + Q1′ ⋅ Q0 ⋅ EN + Q1 ⋅ Q0′ ⋅ EN


EN = 0
! Copyright © 1999 by John F. Wakerly Copying Prohibited
!
! EN tabela 18

! S 0 1 MAXS
tabela de estados/saídas

!
!
A A B 0

! B B C 0

! C C D 0

! D D A 1

! S*
51 INTRODUÇÃO AOS SISTEMAS DIGITAIS
Mas que diferenças estruturais existem entre este último exemplo e o anterior?
No primeiro caso a saída como depende diretamente da entrada pode alterar-se de
forma assíncrona. Já no segundo caso como a dependência é apenas relativa ao estado
a saída varia de forma síncrona com o clock.
!
Máquinas de Mealy e de Moore
Esta pequena (grande) diferença no comportamento das saídas desta última
constatação, permite-nos ilustrar, na prática, dois modelos de Máquinas de Estado
Finitos (MEF): o modelo de Mealy e o modelo de Moore. O modelo ou máquina de modelo de Mealy, modelo de
Mealy tem saídas que podem ter comportamento assíncrono com o clock porque têm Moore
dependência combinatória com as entradas.
! equação 57
! yi = f [ xn−1 ,..., x0 ,Qm−1 ,...,Q0 ] equação geral de uma
! máquina de Mealy
Por outro lado, a máquina de Moore tem saídas que têm um comportamento
síncrono com relógio porque dependem exclusivamente das variáveis de estado.
! equação 58
! yi = f [Qm−1 ,...,Q0 ] equação geral de uma
! máquina de Moore
Vejamos, em esquema, o conceito da máquina de Mealy.
!
! saídas dependem da entrada
figura 56
! esquema de funcionamento
! ! ! de uma máquina de Mealy
! transição de estado


registo do estado geração da saída

!
entradas excitação estado saídas
lógica combinatória
 estruturas da lógica combinatória
F memória G

!
!
!
!
! clock
!
Vejamos também, em esquema, o conceito da máquina de Moore.
!
!
! transição de estado

!
registo do estado
!
geração da saída figura 57
! entradas

excitação estado saídas esquema de funcionamento
!
lógica combinatória
 estruturas da lógica combinatória
F memória G
de uma máquina de Moore
!
!
!
!
! clock

Se atentarmos nos diagramas e tabelas de estados/saídas, podemos reparar


que existem várias diferenças entre ambos. Num modelo de Moore, o diagrama de
estados contém, em cada estado, não só a designação do estado como também as
saídas. No caso do modelo de Mealy apenas contem a identificação do estado. As
próprias tabelas são diferentes.
INTRODUÇÃO AOS SISTEMAS DIGITAIS 52
A máquina de Mealy tipicamente apresenta menos estados do que a máquina
de Moore para a mesma sequência de saída.
!
Limitações temporais
Dadas especificações temporais dos elementos de memória e dos tempos de
propagação dos elementos combinatórios, coloca-se o problema de determinar qual a
frequência máxima de funcionamento de um sistema sequencial síncrono.
Relembremos que os parâmetros temporais dos flip-flops são o tempo de setup,
tempo de hold e os tempos de transição low para high e high para low. Já no caso na
lógica combinatória associada à definição do estado seguinte (feedback) existem atrasos
de propagação de portas elementares e ao nível do bloco.
Assim, temos que:
! equação 59
! t CK > t setup + max(t pHL ,t pLH ) + t p (J = f (...), K = g(...), D = w(...)) atrasos gerais de um
! estado seguinte equipamento
!
Vejamos o seguinte exemplo. Consideremos o exemplo cuja saída final é MAX.
Consideremos também que tsetup = 10ns, thold = 5ns, tpHL = tpLH = 20ns. O tempo de atraso
das portas elementares é de 10ns.
!
! Tclock > Tsetup + T pHL + 3T p = 10 + 20 + 30 = 60ns equação 60
atrasos gerais de um
1
! fclock ≤ = 16.6MHz equipamento (exemplo de
Tclock aplicação)
!
10. Blocos sequenciais
Até agora vimos alguns circuitos sequenciais e até avançámos para a sua
análise. Mas como último conteúdo desta disciplina, é importante referirmos dois
últimos blocos sequenciais, entre os quais os contadores e os registos.
!
Contadores
Os contadores são máquinas de estado finitos simples com um comportamento contadores
temporal periódico de módulo N em que N é o número de estados. Estes possuem, em
análise, um diagrama de estados simples, com transições ao longo da sucessão
ordenada de estados.
Tomemos o seguinte exemplo de contador: contador crescente de módulo 8 (3
bits). Um contador não necessita que se tome decisões sobre o estado seguinte, dado
que a saída é o seu próprio estado presente. A codificação dos estados é inerente à
própria sequência de contagem.
A metodologia de síntese destes equipamentos é semelhante à geral, definida
anteriormente: fazer diagrama de estados, tabela de transições, escolha do flip-flop,
tabela de excitações e equações de excitação.
Tomemos novamente, como exemplo de bloco sequencial em estudo, o
contador crescente de módulo 8 (3 bits):
!! figura 58
000 001
!! 010 011
contador crescente de
módulo 8 (3 bits)
111 110 101 100
53 INTRODUÇÃO AOS SISTEMAS DIGITAIS
A tabela de transições é a seguinte:

Q2 Q1 Q0 Q2+ Q1+ Q0+ tabela 19


0 0 0 0 0 1
tabela de transições

0 0 1 0 1 0

0 1 0 0 1 1

0 1 1 1 0 0

1 0 0 1 0 1

1 0 1 1 1 0

1 1 0 1 1 1

1 1 1 0 0 0

!
Chapter 1 Data Storage

Vejamos agora um exemplo com flip-flops do tipo D. A tabela de excitações seria algo
deste género.
form, as shown in Figure 1.2. Note that the AND, OR, XOR, and NOT gates are
! represented by distinctively shaped symbols, with the input values entering on
one side and the output exiting on the other.
Gates provide
Q2 the
Q1 building
Q0 blocks
Q2+ from
Q1+ which Q0+ computers
D2 D1 are constructed.
D0 tabela 20
One important step in this direction is depicted in the circuit in Figure 1.3. This is tabela de excitações
22 example
a particular 0 Chapter0 1 Data Storage
from a 0collection0 0
of circuits 1
known0as a flip-flop.
0 1
A flip-flop
is a circuit that0 produces
0 an 1output 0value of 1 0 or 1,0 which0 remains 1 constant 0 until a
pulse (a temporary change to a 1 that returns to 0) from another circuit causes it
to shift to the other
0 value.
1 In0 otherform,
words,as
0 1theshown
output
1 in Figure
will0 flip or11.2.
flop Note
between
1 thattwothe AND, OR, XOR, and NOT gates are
values under 0control1of external represented
stimuli. As by distinctively
long0 as both inputs shaped
in the symbols,
circuit in with the input values entering on
1 1 0 1 0 0
one side and the output exiting
Figure 1.3 remain 0, the output (whether 0 or 1) will not change. However, tem- on the other.
porarily placing1 a 1 on 0 the upper
0 input
1 Gates provide
will0 force the
1the output
1 building
to be 1blockstem-
0 1, whereas from which computers are constructed.
porarily placing1
a 1 on
0
the lower
1
input
One
1
will1
force
important 0
the output
step in
1
to
this be
1
0.
direction 0 is depicted in the circuit in Figure 1.3. This is
Let us consider this claim in more detail. Without
a particular example knowing
from the current output
a collection of circuits known as a flip-flop. A flip-flop
of the circuit in
1 Figure 1 1.3, suppose
0
is1that the1 upper
a circuit 1 input1is changed
that produces an 1 to 11 while
output valuetheof 0 or 1, which remains constant until a
lower input remains 0 (Figure 1.4a). This will cause the output of the OR gate to
1 1 1 pulse
0 (a0 temporary
0 change
0 0 to a 1 0 that returns to 0) from another circuit causes it

! be 1, regardless of the other input to this gate. In turn, both inputs to the AND
gate will now be 1, since the othertoinput
duced by the NOT
As equações de gate whenever
excitação são asthe
shifttotothis
values
thegate
other value. In
is already other
1 (the words,
output pro-the output will flip or flop between two
lower input of the flip-flop is at 0). The out-As long as both inputs in the circuit in
under
seguintes:
control of external stimuli.
!! put of the AND gate will then become Figure1,1.3 whichremain
means 0, that
the the
outputsecond (whether
input to0 or 1) will not change. However, tem-
porarily placing a 1 on the upper input will force the output to be 1, whereas tem-
! and output values
Q1 representation porarily
Figure 1.2 A pictorial of AND, OR,placingQ1 aNOT
XOR, and 1 on the
gates aslower input
well as their

!
input figurato59be 0.
willQ1force the output
Let us consider this claim in more detail. Without knowing equaçõesthe
decurrent
excitação via
output
Q2
Q1Q0 00 01 11 10 Q2
of00 01 11in Figure
the circuit
Q1Q0 10 00 01
1.3, suppose that 11 10 input is changed to 1 while the
the upper K-map
Q2
Q1Q0

k
0 1
AND
0 0 1 0 lower0 input
1 0
OR
remains 1 !!
0 (Figure
0 01.4a).
0 This1 will0 cause the output of the OR gate to
be 1, regardless of the other input to this gate. In turn, both inputs to the AND
1 1 Inputs
0 0 1 1 gate
Output 0 will
1 now be 1,
0Inputs
!
1 since 1the other input
1Output
1 0to this
1 gate is already 1 (the output pro-
duced by the NOT gate whenever the lower input of the flip-flop is at 0). The out-

!!
Q0 Q0 Q0
put of the AND gate will then become 1, which means that the second input to
Inputs Output Inputs Output

D0 = Q00=0Q0 ⊕10 D1 =1.2Q1⊕


Figure A pictorial
0D2 = Q2 ⊕ Q1.Q0
Q0 0 0representation of AND, OR, XOR, and NOT gates as well as their input
0 1 0 and output values 0 1 1
and output values
Figure 1.2 A pictorial representation of AND, OR, XO

put
duced
gate
be
lower
of
and output values
Figure 1.2 A pictorial representation of AND, OR, XO

put of Inputs
duced by the NOT gate whenever the lower in
gate will
be 1, regardless of the other input to this gate
lower input remains 0 (Figure 1.4a). This will
of the circuit in Figure 1.3, suppose that the up

porarily placing a 1 on the lower input will for


porarily
Figure 1.3 remain 0, the output (whether 0 in
values
to shift
pulse (a
is a circuit that produces an output value of 0up
1 0 0 1 0 1 equação 61
1 1 ! Dn −11 = Qn − 1⊕ Qn − 2...Q1.Q0
the

Com N bits teríamos…


1, regardless

1 1
of the

1
Let us consider this claim in more detail. W

will

AND OR equação de excitação geral


input
circuit
Inputs 1 0

XOR

AND
Inputs 1 1

XOR

Inputs 1 1

AND

by

Vejamos a implementação:
the AND gate will then

!!
under
to the other
placing

temporary
now control
now be 1, since the other input to th

the

figura 60
AND agate

remainschange
Inputs

Inputs
Inputs

Inputs

Inputs Output Inputs Output


in

!!
1 0
0 1
0 0

1 0
0 1
0 0
1
1
0
0

1 1

0 1
0 0

NOT
be 1, since

XOR NOT diagrama lógico do contador


Figure
1
0
1
0

5V
of the
1 onwill
gate

!!
value.
0 (Figure
Output

Output
Output

Output

of external

Inputs DOutputQ Inputs


D
Inputs Q Output D
Output Q Inputs Output
1.3,
thethen

other
whenever
0
1
1
0

1
0
0
0
0
1
1
0

1
0
0
0

Q0 Q1 Q2
the other
In other

C C0 0 C
upper

suppose

0 0 0
Output
Output

0
Output

to a1.4a).
Output

input words,

CLKInputs Output
0 1 Inputs
0 Output
0 1 1
become
become 1, whi

1 thatThis

1 0 0 1 0 1
input will

stimuli.
the

0 0 0 1 1 0 1 1 1 1
input to

1
to this the

that

0 1 1 1 0
lower

returns
1, whi

1 0 1
the
Asthi
will

1 1 0
gateo
for
or
lo

o
INTRODUÇÃO AOS SISTEMAS DIGITAIS 54
Sequências de contagem não standard
Os contadores também podem efetuar contagens não completas ou irregulares.
Vejamos um contador módulo 5.
!
! figura 61

! 000 010 011 101


contador módulo 5

!
! 110

!
Se passarmos isto para uma tabela de excitações, obtemos o seguinte.
!
Q2 Q1 Q0 Q2+ Q1+ Q0+ tabela 21
0 0 0 0 1 0
tabela de excitações

0 0 1 x x x

0 1 0 0 1 1

0 1 1 1 0 1

1 0 0 x x x

1 0 1 1 1 0

1 1 0 0 0 0

1 1 1 x x x

!
As equações de excitação são as seguintes:
! equação 62
! D2 = Q0 ! D1 = Q1+ Q0Q2 ! D0 = Q2Q1
! equações de excitação

Self-starting
No arranque de um contador (power-up) ele pode assumir qualquer estado,
mesmo algum que não está incluído no diagrama de estados desejável. Mas o que é que
acontece se o sistema cair num estado não incluído no diagrama inicial? É desejável
que qualquer que seja o estado inicial ao fim de um qualquer número finito de
contagens o contador entre no diagrama de estados previsto. Um sistema com esta
capacidade diz-se um sistema com self-starting. Vejamos este exemplo: self-starting
!
! figura 62
! 000 010 011 101
exemplo de sistema com
! self-starting
! 110

!
!
! 100 111 010

!
Neste exemplo prova-se, a posteriori, que o sistema goza de self-starting.
!
!
!
55 INTRODUÇÃO AOS SISTEMAS DIGITAIS
Contadores MSI
Os contadores MSI são blocos sequenciais de contagem com complexidade contadores MSI
média. As principais vantagens da sua utilização são a sua versatilidade, a capacidade
de programação paralela, ter um clear síncrono ou assíncrono, conter modos de hold e
obter “flags” de fim de contagem. Os dois componentes MSI em estudo são os 74x161
e o 74x163. Estes contadores têm um processo de contagem muito próprio.
O contador componente 74x163 tem um modo de contagem “normal”, com um
aviso de fim de contagem.
!
Registos de deslocamento
Um registo de deslocamento é um registo de n bits com preparação para registo de deslocamento
deslocar dados guardados em uma posição a cada pulso de relógio. A figura abaixo
mostra a estrutura de um registo do tipo serial-in-serial-out. A entrada serial, SERIN,
especifica um novo bit a ser deslocado para uma saída a cada pulso do relógio. Este bit
aparece então, na saída do nosso sistema, SEROUT, depois de n pulsos de relógio, e
perde-se um pulso depois. Assim, um registo serial-in-serial-out de n bits pode ser
usado para atrasar um sinal n pulsos de relógio.
!
! SERIN D Q 1Q
figura 63
registo serial-in-serial-out
!
! CLOCK CLK

!
! D Q 2Q
!
! CLK

!
!
!
! D Q SEROUT

! CLK
!
!
As famílias tradicionais de lógicas MSI fornecem entre muitos outros, registos
de deslocamento de 4 e 8 bits. Estas partes MSI são usadas muito raramente, nos dias
que correm, porque qualquer outro tipo de registo de deslocamento pode ser fornecido
através de PLD ou FPGA (assuntos a abordar na disciplina de Laboratório de
Sistemas Digitais (a1s2)). No entanto, ser-nos-á útil olhar para uma parte MSI, de
forma a obter uma ideia sobre a complexidade de um registo de deslocamento e do seu
detalhe interno.
O componente 74x194 é um registo MSI de 4 bits, bidirecional, do tipo
parallel-in-parallel-out. O seu diagrama lógico está expresso na figura seguinte (da
página seguinte). O componente da figura anterior era unidirecional porque fazia
deslocamento num e num só sentido. O 74x194 é um componente bidirecional porque o
seu conteúdo pode ser deslocado em qualquer uma de duas direções, dependendo da
entrada. As duas direções têm os nomes de “esquerda” (left) e “direita” (right), mesmo
que o esquema possa não estar desenhado dessa forma. Neste componente em
específico, esquerda significa na direção de QD para QA, e direita significa na direção
de QA para QD.
INTRODUÇÃO AOS SISTEMAS DIGITAIS 56
figura 64
registo
parallel-in-parallel-out

A tabela na página seguinte é uma tabela de verdade para o componente


74x194. Esta tabela está altamente comprimida, dado que não contém colunas para a
maior parte das entradas (A-D, RIN, LIN) ou para o estado atual (QA-QD). Mesmo
assim, exprimindo cada estado seguinte como uma função implícita dessas variáveis, já
conseguimos definir a operação do componente para todas as 212 combinações possíveis
de estados atuais e entradas, o que quase de certeza que ia além das 4096 linhas numa
tabela!
!
57 INTRODUÇÃO AOS SISTEMAS DIGITAIS
!
!
! inputs estados seguintes tabela 22

! tabela de verdade do
!
função S1 S2 QA* QB* QC* QD*
componente 74x194
! hold 0 0 QA QB QC QD

! shift right 0 1 RIN QA QB QC

!
!
shift left 1 0 QB QC QD LIN

! load 1 1 A B C D

!
Note-se que a entrada LIN (left-in) está concetualmente localizada na parte
direita do chip, mas é a entrada serial para deslocamentos para a esquerda. Isto
também se aplica à entrada RIN.
O componente 74x194 é também chamado, muitas vezes, de registo de
deslocamento universal porque pode ser usado para funcionar como muitos outros registo de deslocamento
registo a ele inferiores. universal
Outros registos de deslocamento são os de contadores, como os contadores com
feedback em anel e o de Johnson (também conhecido como twisted ring). anel, Johnson, twisted ring
E assim termina o programa de Introdução aos Sistemas Digitais. Para
continuar a estudar, no seguimento deste documento vem uma de duas disciplinas.
Dependendo do percurso curricular, é possível escolher entre os apontamentos de
Arquitetura de Sistemas Operativos ou Laboratório de Sistemas Digitais, ambos do
primeiro ano, segundo semestre (a1s2).
!
INTRODUÇÃO AOS SISTEMAS DIGITAIS 58
Ambiente Digital!
Analógico versus Digital .........................................................................................................2
Álgebra de Boole ....................................................................................................................3
Portas lógicas e flip-flops ........................................................................................................4

Sistemas numéricos e códigos!


Elementos de um sistema de numeração ..............................................................................6
Mudanças de base .................................................................................................................8
Adição e Subtração binária ....................................................................................................9
Multiplicação binária .............................................................................................................10
Representação de quantidades negativas ...........................................................................10
Sinal e módulo ......................................................................................................................10
Complemento para a base r .................................................................................................11
Complemento para a base 2 ...............................................................................................11
Overflow ................................................................................................................................12
Adição algébrica em complemento para um .......................................................................13
Adição algébrica em complemento para dois......................................................................13

Códigos!
BCD (Binary Coded Decimal) ...............................................................................................13
Código AIKEN e Excess-3 (XS3) ..........................................................................................14
Código de Gray ....................................................................................................................14
Deteção de erros em sistemas digitais.................................................................................15
Códigos CRC ........................................................................................................................16

Álgebra de Boole!
Postulados ............................................................................................................................16
Valores, Operadores e Expressões ......................................................................................17
Dualidade ..............................................................................................................................17
Teoremas ...............................................................................................................................18
Operadores compostos ........................................................................................................18
Funções booleanas ...............................................................................................................19
Formas canónicas .................................................................................................................20

Minimização de funções booleanas!


Expressões irredutíveis .........................................................................................................23
Adjacência e simplificação ...................................................................................................23
Cubos Booleanos ..................................................................................................................23
Métodos dos mapas de Karnaugh (K-map) .........................................................................25
Minimização com don’t care’s ...............................................................................................27
Estratégia de cobertura ........................................................................................................27
Algoritmo de cobertura para soma de produtos mínima ......................................................28

Blocos Combinatórios!
Lógica de Polaridade ............................................................................................................29
Descodificadores (decoders) ...............................................................................................29
Codificadores (encoder) .......................................................................................................30
Multiplexers e demultiplexers ...............................................................................................31
Buffers 3-state .......................................................................................................................32

Circuitos Aritméticos!
Circuitos somadores .............................................................................................................33
Somadores carry-lookahead .................................................................................................35
Somadores BCD ...................................................................................................................36
Unidade aritmética e lógica (ALU) .......................................................................................37
Multiplicação de números binários .......................................................................................38
59 INTRODUÇÃO AOS SISTEMAS DIGITAIS
Sistemas Sequenciais!
Lógica sequencial versus lógica combinatória ....................................................................39
Estruturas elementares de memória .....................................................................................39
Latch SR ................................................................................................................................40
Latch SR com portas NAND .................................................................................................42
Latch SR com enable ............................................................................................................43
Latch D ..................................................................................................................................43
Flip-flops ...............................................................................................................................45
Flip-flop D edge-triggered ....................................................................................................45
Caracterização analítica .......................................................................................................47

Análise de sistemas sequenciais síncronos!


Metodologia de análise .........................................................................................................48
Máquinas de Mealy e de Moore ...........................................................................................51
Limitações temporais ............................................................................................................52

Blocos sequenciais!
Contadores............................................................................................................................52
Sequências de contagem não standard...............................................................................54
Self-starting ...........................................................................................................................54
Contadores MSI ....................................................................................................................55
Registos de deslocamento ...................................................................................................55
2ª edição. O conteúdo deste documento foi escrito, em grande parte, por Rui Lopes, tendo-se baseado, em grande parte, e até copiado, dos apontamentos disponibilizados pela
professora Augusto Marques Ferreira da Silva, regente da disciplina de Introdução aos Sistemas Digitais, da Universidade de Aveiro, no ano letivo de 2013/2014. Algumas imagens
provêm da mesma fonte, que a principal deste texto. “Digital Design: principies and practices”, WAKERLY, John F.,  Pearson Prentice Hall, 2006,  4ª edição; “Digital Circuits and
Microprocessors”, TAUB, Herbert. McGrawHill, Singapura, 1985; “Introduction to Digital Logic Design”, HAYES, John P.. Addison-Wesley, Michigan, 1993. “Fundamentals of Logic
Design”, ROTH, Charles H. Jr.. Cengage Learning. Minnesota, 2010. Todas estas obras foram consultadas entre 16 de setembro de 2013 e 30 de janeiro de 2014. © Rui Lopes 2014
Copyright: Pela Creative Commons, não é permitida a cópia e a venda deste documento. Qualquer fraude será punida. Respeite os autores e as suas marcas. Original - This work is
licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/
by-nc-nd/4.0/deed.en_US.

Você também pode gostar