Sei sulla pagina 1di 119

Vitor M. P.

Vargas / IST

Sistemas Digitais (Part II)

Page 1 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 2 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Lgica de Polaridade

Page 3 of 119

/ 8 Projecto

Esta sesso versa a materializao concreta, real, de logigramas isto , nos chips de facto disponibilizados
pelos que os fabricam. Como nas outras sesses, ir-se- desenrolar a partir dum Projecto concreto
Imagine-se um restaurante com dois pisos. Para transportar objectos entre eles, usa-se um monta-cargas que
efectua um movimento de vai-e-vem entre duas plataformas de carga, uma em cada piso. Acede-se a elas atravs
de portinholas: uma, B, no piso de baixo e outra, T, no piso de topo. efectuado o disable (inactivao) do
motor do monta-cargas se:
tendo-se premido um interruptor Go, se abrir uma das duas portinholas {B, T};
ou, sem esse interruptor estar premido, a carga na plataforma exceder um limite prefixado.
Se e s se nenhuma destas situaes se verificar, uma lmpada Verde acende
Pressuposta a codificao (associada s entradas e sadas) ao lado, o leitor poder construir os correspondentes
mapas de Karnaugh, e deduzir as expresses simplificadas das sadas ou, bem mais rapidamente, exercitar a sua
massa cinzenta para as escrever de imediato, vid ao lado
(Entretanto, no se pode silenciar: essa praxis no deve ser aceite s cegas! Pelo contrrio, o leitor instado a
usar o mtodo de Karnaugh para lograr as SOPs ou POSs simplificadas para responder a questes inevitveis:
porque so elas distintas das expresses ao lado? E sendo-o, e mas importante ainda: quais as vantagens, e
desvantagens, em as usar? Quais os requisitos que o enunciado deveria ter para as preferir?)
Das expresses obtidas, trivial desenhar um logigrama do circuito que controla o disable do motor e o
acender da lmpada. Encontra-se ao lado uma possibilidade em que, como ocorrer quase sempre doravante, os
smbolos para representar ORs, ANDs e NOTs seguem as convenes da IEC: so rectngulos qualificados.
A questo que agora surge a seguinte: Como passar do logigrama ao circuito elctrico real?
A quem tenha j metido as mos na massa, achar que a questo vem algo atrasada: afinal, j no laboratrio
ter tido o ensejo de concretizar, na base de montagem, com os chips disponveis, algum logigrama
Mas hora de considerar essa questo mais de perto. que, quando se olha para o logigrama, o que se v o
esquema de um circuito Digital isto , em cujas entradas e sadas (e em pontos intermdios), o que h so bits:
0s e 1s. Ora, ao se consultarem os Catlogos dos fabricantes, no se enxergam l 0s e 1s: o que eles
mencionam so nveis elctricos, a saber: L/Low e H/High.
Como exemplo, ao lado encontra-se uma Tabela, extrada do Catlogo da Texas Instruments, relativa ao circuito
Integrado SN7404 (Hex Inverters). Ela afirma que cada um dos seis inversores (NOTs) que ele disponibiliza
funciona da seguinte maneira:
quando na sua entrada X se forar o nvel elctrico L, a sada Z apresentar o nvel elctrico H;
quando na sua entrada X se forar o nvel elctrico H, a sada Z apresentar o nvel elctrico L.
Abra-se um parntesis para recordar o significado de L e H: seja o caso de a tecnologia de fabrico dos chips ser
TTL (Transistor-Transistor Logic) ou CMOS (Complementary Metal Oxide-Silicon). Tais chips reconhecem dois
nveis elctricos (nomeadamente 0 Volt e 5 Volt em TTL). Na prtica, tolera-se algum desvio em relao queles
valores nominais com o que se prefere usar os termos Low e High (ou s as iniciais, L e H):
Low um nvel elctrico que pode exceder o nvel mais baixo no mais que a pertinente tolerncia aceitvel;
High um nvel elctrico que difere do nvel mais alto no mais que a pertinente tolerncia aceitvel.
Particularizando para chips TTL: nas sadas, Low um valor de tenso entre 0 e 0,4 Volt e High um valor
entre 2,4 e 5 Volt; nas entradas, Low um valor de tenso entre 0 e 0,8 Volt e High um valor entre 2 e 5 Volt. O
que significa, para o caso do Integrado SN7404,
se na entrada se forar um valor de tenso inferior a 0,8 V, o valor na sada ser superior a 2,4 V;
se na entrada se forar um valor de tenso superior a 2 V, o valor na sada ser inferior a 0,4 V.
Faz ento todo o sentido dedicar tempo questo acima: Como passar do diagrama lgico ao circuito elctrico
real? Ou: Como usar os integrados no mercado, para materializar os logigramas a que se chegou?
isso que se aborda a seguir e isso com a maior liberdade possvel. Na passagem dos logigramas a circuitos
elctricos, h que usar os circuitos integrados como der mais jeito!

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 4 of 119

Vitor M. P. Vargas / IST


Lgica de Polaridade

Sistemas Digitais (Part II)

Page 5 of 119

/ Lgicas Estticas: Positiva e Negativa

Seja o caso de a tecnologia de fabrico das chips ser TTL (Transistor-Transistor Logic) ou CMOS
(Complementary Metal Oxide-Silicon). Tais chips reconhecem dois nveis elctricos, a saber: 0 Volt e 5 Volt (em
TTL) e 0 Volt e 6 Volt (na srie SN74HC em CMOS quando se usa uma fonte de alimentao de 6 V).
Porquanto, em ambas as tecnologias, um dos nveis 0 Volt, natural ser a seguinte opo: fazer corresponder
ao nvel 0 Volt o 0 lgico. Porquanto 0 o nvel mais baixo (Low), isso volve-se em fazer corresponder a L/Low
o bit 0, e, em consequncia, fazer corresponder a H/High o bit 1. Esta conveno designa-se de Lgica Positiva
Considere-se agora o caso de uma outra tecnologia de fabrico de chips, ECL (Emitter Coupled Logic). Tais
chips reconhecem tambm dois nveis elctricos: -5,2 Volt e 0 Volt.
Assuma-se a mesmssima opo acima de fazer corresponder ao nvel 0 Volt o 0 lgico. Porquanto 0 agora
o nvel mais alto (High), ela vem a volver-se em fazer corresponder a H/High o bit 0, e, consequentemente, fazer
corresponder a L/Low o bit 1. Esta conveno designa-se de Lgica Negativa.
H que clarificar: os considerandos acima manifestam, quando muito, que qui seja natural usar a Lgica
Positiva em TTL e CMOS, e relegar a Lgica Negativa para ECL; mas de facto nada obriga ningum a ater-se a
uma dada Lgica: a regra escolher a que der mais jeito
Decidida, ento, qual a Lgica a usar Positiva ou Negativa , hora de responder questo em aberto:
Como passar do diagrama lgico no papel ao circuito elctrico real?
o primeiro passo construir as Tabelas de Verdade lgicas das gates presentes no logigrama: ANDs e ORs
o segundo passo aplicar a essas Tabelas de Verdade lgicas a correspondncia especfica da Lgica eleita
vindo a obter o que doravante se designar de Tabelas de Verdade fsicas no caso, de ANDs e ORs
(Em Lgica Positiva, substituem-se os 0s por Ls e os 1s por Hs; intui-se como se far em Lgica
Negativa, vid ao lado)
o terceiro passo procurar, nos Catlogos dos fabricantes, os circuitos Integrados que se conformam a essas
Tabelas de Verdade fsicas:
No caso da Lgica Positiva, os Integrados cujo funcionamento o descrito pelas Tabelas de Verdade
fsicas do AND e OR so, respectivamente, o SN7408 e o SN7432. Basta, ento, concretizar os ANDs e ORs do
logigrama com tais Integrados;
No caso da Lgica Negativa, os Integrados cujo funcionamento o descrito pelas Tabelas de Verdade
fsicas do AND e OR so, respectivamente, o SN7432 e o SN7408. Basta, ento, concretizar os ANDs e ORs do
logigrama com tais Integrados;
Em qualquer caso, o par de NOTs fica concretizado mediante um SN7404.
Ao lado, encontra-se o circuito elctrico real correspondente ao logigrama entre mos, em ambas as verses
Positiva e Negativa. Constata-se que elas recorrem aos mesmssimos integrados mas que eles so usados para
concretizar funcionamentos lgicos distintos! O SN7408 (e o mesmo vale para o SN7432) pode ser usado como
AND ou como OR: cabe ao desenhador de um circuito decidi-lo (ao escolher a Lgica que preside ao circuito).
Nas asseres acima, ficaram na sombra as entradas e sadas do circuito. hora de as considerar:
No circuito desenhado em Lgica Positiva, est-se pressupondo que deve ser feito o disable do motor se e s
se a sada disable estiver a receber 1, isto : sse lhe estiver a ser aplicado o nvel elctrico High (idem para a
sada V); e a entrada B deve forar High sse for o caso de ter de sinalizar 1 o que dever ocorrer sse a
portinhola de baixo estiver aberta (idem para as demais entradas {T, G e C});
No circuito desenhado em Lgica Negativa, est-se pressupondo que a sada disable deve achar que est
recebendo 1 sse lhe estiver a ser aplicado o nvel elctrico Low (idem para a sada V); e a entrada B deve
forar Low sse for o caso de ter de sinalizar 1 (idem para as demais entradas {T, G e C}).
Ora, isto limitativo: considerando as entradas, pode ser mais barato fabricar um sensor de portinhola que, ao
ficar aberta, produza um nvel Low; e um sensor de carga que, para assinalar que ela excessiva, produza um nvel
High! O mesmo se pode dizer para as sadas: pode ser mais barato fabricar um actuador que, para proceder ao
disable do motor, exija um nvel Low; e um actuador que, para acender a lmpada verde, exija um nvel High!
H, pois, que investigar por uma Lgica dinmica!

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 6 of 119

Vitor M. P. Vargas / IST


Lgica de Polaridade

Sistemas Digitais (Part II)

Page 7 of 119

/ Condies Fronteira: Sufixos _L e _H

comum, em ambiente de produo industrial, designar por Sensores e Actuadores o que se encontra
ligado respectivamente s entradas e sadas de um circuito de Deciso pelo que, e considerada a ndole
deste 8 Projecto, se espera a benevolncia do leitor para o subsequente uso de tais substantivos
As questes prticas a decidir, e porquanto um circuito de Deciso s reconhece bits {0, 1}, so as seguintes:
subentendido que a sada de um sensor se encontra ligada a uma das entradas dum circuito de Deciso, qual o
nvel elctrico, entre {Low, High}, que o sensor deve apresentar sada para sinalizar o 1 lgico?
subentendido que uma das sadas dum circuito de Deciso se encontra ligada entrada de um actuador, e que
ela est tomando o valor 1 lgico, qual o nvel elctrico, entre {Low, High}, a apresentar entrada do actuador?
No jargo do ambiente de produo industrial, comum substituir a 1 por Activo (e a 0 por Inactivo). Com
esta ressalva, e admitindo que a opo por um ou outro nvel tem consequncias (nomeadamente no custo),
h duas espcies de sensores, consoante o nvel elctrico que produzem para sinalizar que esto Activos:
Sensores activos a High: para sinalizarem 1, foram na sua sada o nvel elctrico High;
e Sensores activos a Low: para sinalizarem 1, foram na sua sada o nvel elctrico Low;
e h duas espcies de actuadores, consoante o nvel elctrico que exigem para advirem Activos:
Actuadores activos a High: assumem que sua entrada se est sinalizando 1 quando a o nvel High;
Actuadores activos a Low: assumem que sua entrada se est sinalizando 1 quando a o nvel Low.
Visando a passagem ao circuito elctrico, deve explicitar-se no logigrama, para cada entrada (e cada sada), a
espcie de sensor (ou actuador) que lhe est interligada. A conveno aqui seguida : justapor, ao nome da entrada
(ou sada), um sufixo que ser _L ou _H consoante ela for, respectivamente, activa a Low ou activa a High.
Para exemplificar, admita-se, no 8 Projecto, que:
os Sensores das Portinholas {B, T} e o Interruptor Go so activos a Low, e o Sensor de Carga excessiva C
activo a High;
o disable D activo a Low, e a Lmpada Verde V activa a High.
No logigrama, estes comportamentos explicitam-se:
designando as entradas por B_L, T_L, G_L e C_H;
e designando as sadas por D_L e V_H (vid ao lado).
Estabelecer que o disable activo a Low significa que a sada D traduz 1 no nvel Low e, por
consequncia, D traduz 0 no nvel elctrico High.
Admita-se, ento, que em algum momento o nvel elctrico em D High ou seja, a o valor lgico 0. O
seu inverso, D , volve-se em 1, isto , e conforme ao jargo referido (em que 1 substitudo por Activo), D
advm activo. Recapitulando: quando o nvel elctrico em D High, D advm activo; pela conveno em vigor,
deduz-se que a mesmssima sada pode ser designada de D_H (trata-se de uma bvia lapalissada: se o disable
activo a Low, claro que o enable activo a High).
Consideraes anlogas valem para as demais entradas e sadas: B , T , G e D so activas a High; e C e V
so activas a Low significando que as entradas podem, em alternativa, designar-se por B_H , T_H , G_H e
C_L ; e as sadas por D_H e V_L (vid ao lado).

Para cada entrada ou sada, h, por conseguinte, dois nomes alternativos: por exemplo, D_L e D_H . Fica
relegado para momento mais oportuno responder inevitvel dvida: Como escolher entre os dois?
Com o que fica dito, ter ficado claro como especificar as condies fronteira (isto : o exterior a que se liga
um circuito de Deciso): precisamente atravs dos sufixos _L e _H. Falta descortinar: o que est disponvel no
mercado para materializar esse circuito de Deciso; o que agora se ir abordar
(No pode deixar de se acentuar: a conveno acima no , mormente na bibliografia de Sistemas Digitais, uma
praxis universal! A maioria dos logigramas com que o leitor ir deparar no prima pela adio dos sufixos _L e _H
aos nomes das entradas e sadas: como que subentendendo que todos os sensores e actuadores so activos a High)

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 8 of 119

Vitor M. P. Vargas / IST


Lgica de Polaridade

Sistemas Digitais (Part II)

Page 9 of 119

/ Adivinha l: Que chip este?

Ter j o leitor constatado, mormente se meteu j as mos na massa no laboratrio, que os Integrados so
identificados por uma inscrio na sua face superior, como seja SN7404
Suponha, porm, que um dia lhe vem parar s mos um Integrado, com duas entradas e uma sada (alm,
claro, dos pinos correspondentes alimentao: VCC e GND) mas cuja identificao SN foi apagada
Natural ser a curiosidade: que Integrado ser este, que far ele?
Para lhe responder, convm, claro, proceder com mtodo e intui-se qual ser o primeiro passo: construir a
respectiva Tabela de Verdade fsica. Para tal, aplicam-se sucessivamente, naquelas entradas (sejam {X, Y}), todas
as possveis combinaes dos nveis elctricos {Low, High}, e regista-se o correspondente nvel elctrico na sada
(seja Z)
Admita-se, ento, que isso j foi feito tendo-se registado num grfico/diagrama temporal as quatro
combinaes de {Low, High} que {X, Y} podem assumir, e, para cada uma delas, o subsequente nvel de Z. Da,
ser pacfico deduzir a Tabela de Verdade fsica, vid ao lado
Com isso, ficaram reunidas as condies para o segundo passo: discernir qual o Integrado em causa
A este respeito, vrios olhares so possveis:
O Olhar Positivo: por este olhar, Positivo, entende-se o de algum que opta pelo uso da Lgica Positiva: a
partir da Tabela de Verdade fsica, elabora uma Tabela de Verdade lgica pela substituio de cada L por 0, e
de cada H por 1, vid ao lado.
Dela, e pois que Z se volve em 0 apenas para a combinao {X=1, Y=1}, ser-lhe- pacfico afirmar que o
Integrado aparenta ser um NAND, vid ao lado.
O Olhar Negativo: por este olhar, Negativo, entende-se o de algum que opta pelo uso da Lgica Negativa: a
partir da Tabela de Verdade fsica, elabora uma Tabela de Verdade lgica pela substituio de cada L por 1, e
de cada H por 0, vid ao lado.
Dela, e pois que Z se volve em 1 apenas para a combinao {X=0, Y=0}, ser-lhe- pacfico estabelecer que o
Integrado aparenta ser um NOR, vid ao lado.
Quem tem razo?
Adiante-se que o Integrado com a Tabela de Verdade fsica lograda designado pela Texas Instruments por
SN7400 / Quadruple 2-Input Positive NAND gates (aquele fabricante de chips prefere o Olhar Positivo). Mas
poder-se-ia ter antes optado pela designao SN7400 / Quadruple 2-Input Negative NOR gates Ou seja:
qualquer das dedues, NAND ou NOR, vlida desde que antecipadamente se clarifique qual a Lgica
(Positiva ou Negativa) que lhe subjaz.
Mas existe ainda uma 3 via, que, ao invs do par de Olhares acima (que se suportam numa Lgica Esttica),
um Olhar Dinmico. o que se ir abordar de imediato.

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 10 of 119

Vitor M. P. Vargas / IST


Lgica de Polaridade

Sistemas Digitais (Part II)

/ Indicador de Polaridade (O smbolo

Page 11 of 119

A terceira via, o Olhar dinmico que agora se vai abordar, suporta-se em dois pilares:
O primeiro advm de no achar abusivo considerar uma gate como que constituda por vrios actuadores
ligados a um sensor: aqueles convertem os nveis elctricos nas suas entradas em 0s e 1s, sobre que o ncleo da
gate toma uma deciso (que ser 0 ou 1), aps o que a passa ao sensor, que por seu vez a converte num nvel
elctrico na sada Ento, ser pacfico generalizar para uma gate o jargo usado para sensores e actuadores
Em particular: uma entrada duma gate diz-se activa a High, quando, ao ser-lhe aplicado o nvel High, a gate o
entende internamente como 1; e a sada duma gate diz-se Activa a High, quando, para sinalizar um 1 interno, a
gate fora nessa sada o nvel elctrico High.
O segundo pilar que se desconhece o que sejam NANDs e NORs, reconhecem-se apenas ANDs e ORs
Ao lado, rev-se o comportamento peculiar de ANDs e ORs: aplicando s entradas todas as combinaes de
0s e 1s, constata-se que, em ambas as gates, o valor na sada sempre o mesmo, excepto para uma combinao
particular combinao essa em que ambos os valores nas entradas so iguais ao valor sada ento produzido.
Em ordem a discernir como funciona o Olhar dinmico, considere-se de novo a Tabela de Verdade fsica a
que se chegou, ao determinar o comportamento elctrico do Integrado cuja identificao SN foi apagada
Sumariamente: nessa Tabela, a sada em geral High advindo Low sse as entradas forem ambas High. Desta
constatao, podem inferir-se duas asseres:
Se se admitir que as entradas da gate so activas a High, afirmar que a sada da gate Low sse ambas as
entradas forem High equivale a afirmar: sse ambas as entradas sinalizarem 1, a sada Low.
Desse comportamento, e tendo em conta a Tabela de Verdade do AND, lcito inferir: a gate soa a um AND
mas um AND especial: quando deve sinalizar 1, fora na sada o nvel elctrico Low. Mantendo o jargo
costumeiro, de uma sada assim diz-se que ela activa a Low.
Se se admitir que a sada da gate activa a High, afirmar que a sada da gate Low sse ambas as entradas
forem High equivale a afirmar: a sada 0 sse em ambas as entradas o nvel elctrico for High.
Desse comportamento, e tendo em conta a Tabela de Verdade do OR, lcito inferir: a gate soa a um OR
mas um OR especial: para se sinalizar 0 a uma entrada, h que forar nela o nvel elctrico High. Mantendo o
jargo costumeiro, a uma entrada assim diz-se que ela activa a Low.
Ou seja: tal como h duas espcies de sensores e actuadores (activos a High ou activos a Low), assim h
que passar a considerar vrias espcies de entradas e sadas (das gates):
Entrada activa a High: a gate assume internamente que a entrada sinaliza 1 quando nela o nvel High;
Entrada activa a Low: a gate assume internamente que a entrada sinaliza 1 quando nela o nvel Low;
Sada activa a High: para sinalizar um 1 interno na sada, a gate fora nela o nvel elctrico High;
Sada activa a Low: para sinalizar um 1 interno na sada, a gate fora nela o nvel elctrico Low.
Visando a passagem ao circuito elctrico, deve explicitar-se no logigrama, em cada entrada e sada de gates, a
sua espcie. Isso faz-se com um smbolo especial, dito de indicador de polaridade, a saber:
. Na prtica: se
uma entrada ou sada estiver qualificada com
, diz-se Activa a Low; se o no estiver, diz-se Activa a High.
Com esta conveno, h dois smbolos possveis para o Integrado, vid ao lado. Confronte-se o primeiro com o
do NAND (logrado na Lgica Esttica): so iguais! O indicador de polaridade pode ento ser percebido como um
inversor lgico! Com esta ressalva, aqueles dois smbolos traduzem as expresses Z X Y e Z X Y que,
conforme s leis de De Morgan, so equivalentes: Aqueles dois smbolos so equivalentes! Pelo que natural a
questo: Como escolher entre os dois? Fica relegado para momento mais oportuno a resposta a esta questo
Realce-se que, num logigrama nestoutra Lgica, as entradas e sadas so qualificadas (ou no) com aquele
indicador de polaridade, independentemente umas das outras. Como exemplo, vid ao lado dois chips (um AND e
um OR, ambos de 3 entradas), em que algumas das entradas e sadas so activas a Low e as outras so activas a
High E, por aplicao das leis de De Morgan, ser pacfico ao leitor obter os smbolos IEC equivalentes
Neste contexto, comum usar a expresso Nvel de Actividade de uma entrada ou sada (ou de um sensor ou
actuador) para designar o nvel elctrico a que ela advm activa: se activa a High, diz-se que o seu Nvel de
Actividade High e, La Palisse contraporia, se activa a Low, diz-se que o seu Nvel de Actividade Low.
Ao invs de logigramas em Lgicas Estticas em que as entradas e sadas tm todas o mesmo Nvel de
Actividade isso j no sucede nesta nova Lgica por tal facto se denominando Mista ou de Polaridade.

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 12 of 119

Vitor M. P. Vargas / IST


Lgica de Polaridade

Sistemas Digitais (Part II)

Page 13 of 119

/ Logigramas em Lgica mista / de Polaridade

Esto agora reunidas as condies para desenhar um logigrama em Lgica mista/de Polaridade, de forma a
subsequentemente o materializar num circuito elctrico real.
Para qualquer Projecto e, por conseguinte, para o 8 Projecto , esse desenho progride ao longo de trs fases.
A primeira fase desenhar o diagrama lgico, atendendo unicamente funcionalidade pretendida.
Recorde-se que, no tocante ao 8 Projecto, isso foi feito logo ao abrir da sesso: pelo simples exerccio da
massa cinzenta, chegou-se s expresses para D e V, e ao correspondente diagrama lgico, vid ao lado.
Note-se que, nesta fase de desenho do logigrama, no se tm em conta os Nveis de Actividade nem dos
sensores e actuadores, nem das entradas e sada das gates
A segunda fase especificar no logigrama as Condies fronteira na prtica justapondo os sufixos _L ou
_H a todos os nomes de entradas e sadas externas.
Quanto ao 8 Projecto, isso tambm j se fez: admitindo que os Sensores das Portinholas, o Interruptor Go e o
disable so activos a Low, e que o Sensor de Carga excessiva e a Lmpada Verde so activos a High, as entradas e
sadas externas do logigrama foram renomeadas como ao lado se mostra: B_L, T_L, G_L e D_L; e C_H e V_H.
A terceira fase ajustar os Indicadores de Polaridade das entradas e sadas dos chips.
Por mor de compreenso do que por isso se entende, retome-se o logigrama em fase de desenho:
Atente-se na linha entre T e uma entrada do OR W. Quer-se que, sse o sensor T assumir o valor 1 (isto
: estiver activo), aquela entrada se volva internamente num 1 (isto : fique activa). Mas vid o sufixo em T_L
, T activo traduz-se em forar Low na linha. Portanto: essa entrada deve advir activa sse o nvel elctrico nela
for Low; por outras palavras: a entrada deve ser activa a Low o que se denota qualificando-a com
;
Um raciocnio e uma concluso similares valem para a linha entre B e a outra entrada desse mesmo OR; e
outrossim para as linhas entre G e o AND N, e entre G e o inversor SW;
Atente-se agora na linha entre C e uma entrada do AND S. Quer-se que, sse o sensor C estiver activo,
essa entrada fique activa. Mas vid o sufixo em C_H , C activo traduz-se em forar High na linha. Portanto:
essa entrada deve advir activa sse o nvel elctrico nela for High; por outras palavras: a entrada deve ser activa a
High o que se denota no a qualificando com o smbolo
;
Em todos estes casos, constata-se: se o Nvel de Actividade dum sensor for High, ento o de alguma entrada a
que ele se liga dever ser High; mas se for Low, ento o Nvel de Actividade dessa entrada dever ser Low.
Atente-se na linha entre D e a sada do OR E. pacfico persistir no mesmo raciocnio: concluir que, pois
que o Nvel de Actividade de D Low, o dessa sada dever ser Low o que sugere qualific-la com
.
Se a sada no estivera ligada a nada mais, isso seria correcto. Mas ela tambm se liga ao inversor SE, pelo
que se prefere outra tctica: em vez de a qualificar com
, intercalar na linha, prximo de D, um assim
designado inversor de polaridade. Note-se: o actuador D deve advir activo sse a sada do OR E ficar activa.
Mas vid o sufixo em D_L , para D advir activo, o nvel elctrico deve a ser Low. Todavia, no qualificando
a sada do OR com
significa que ela activa a High; h, pois, que interpor algo o tal inversor de polaridade
caracterizado pelo seguinte funcionamento: fora na sada o nvel Low sse receber entrada o nvel High;
(Abra-se um parntesis: No surpreender que o smbolo do inversor de polaridade seja exactamente igual ao
do inversor lgico: fazem o mesmo Outrossim, pode ser interpretado como um buffer uma gate em que o valor
lgico interno entrada reproduzido na sada interna com entrada activa a High, mas com sada activa a Low)
Atente-se enfim na linha entre V e a sada do inversor SE. Quer-se que o actuador V fique activo sse a
sada interna do OR E for 0. Mas isso, tal como est, j o logigrama o garante: sse tal ocorrer, o OR fora Low
sada que o inversor SE reconhece como 0; consequentemente, ele ir forar na sua sada o nvel
correspondente a 1; ele ser High (o nvel inverso do da entrada) por conseguinte activando o actuador V.
Em sntese: nada se altera numa linha com nome sufixado com _H; j numa linha com nome sufixado com _L,
acrescenta-se o indicador de polaridade (
) ou intercala-se um inversor (ou conversor) de polaridade (
).
A terminar, duas recomendaes relevantes:
tentador substituir por um NAND e tendo em conta as leis de De Morgan o OR W com ambas as
entradas activas a Low Mas no recomendvel faz-lo: pelo enunciado, algo acontecer se se abrir uma ou
outra das portinholas {B, T} e esse ou bem melhor representado por um OR que por um NAND
E, claro, deve descartar-se o inversor SW: com entrada activa a Low, reproduz na sada o nvel entrada...

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 14 of 119

Vitor M. P. Vargas / IST


Lgica de Polaridade

Sistemas Digitais (Part II)

Page 15 of 119

/ Esquema Elctrico em Lgica Positiva

Desenhado um logigrama em Lgica mista, hora de o materializar Mas, antes, ir-se- abordar como lhe
nomear as suas linhas internas de modo a clarificar as funes que a se realizam e os seus Nveis de Actividade
Veja-se a sada do OR W. Deve advir activa quando B ou T estiverem activos. No jargo vigente, isso
conduz ao nome B T_H ; ora, e conforme s leis de De Morgan, ele equivale a B T _L . Donde, a questo:
Entre esses nomes, qual escolher? A resposta : preferir aquele cujo Nvel de Actividade o da entrada onde a
linha acaba. No caso, a linha acaba numa entrada activa a High pelo que o nome dever ser B T_H ;
Atente-se agora na sada do inversor SW. Deve advir activa quando G estiver inactivo. Isso conduz aos

nomes G_H e G_L . Qual escolher? A resposta mantm-se: preferir aquele cujo Nvel de Actividade o da
entrada onde a linha acaba. Ora, ela acaba numa entrada activa a High pelo que o nome dever ser G_H .
Considerandos e concluses similares valem para as restantes linhas internas vid logigrama ao lado
(Abra-se um parntesis: nalgum logigrama, pode a sada de uma gate bifurcar-se isto , estar ligada a duas
(ou mais) entradas, uma activa a High e a outra activa a Low. Intui-se como proceder ento: escolher, para cada
ramal emergindo de tal bifurcao, o nome cujo Nvel de Actividade o da entrada a que ele se liga)
Antes, propriamente, de se abordar a materializao do logigrama, h que simplific-lo. No caso, dever-se-:
descartar o inversor SW pois, com efeito, o nvel elctrico na sua sada reproduz pari passu o nvel
elctrico entrada: o inversor no est l a fazer coisa alguma
substituir os dois inversores direita por um indicador de polaridade sada do OR E: por si s, ele
cumpre o objectivo daqueles (D ou V devem advir activos sse a sada advir, respectivamente, activa ou inactiva)
A dificuldade da materializao do logigrama est em que ela tem que se cingir aos chips disponveis no
mercado. Ora, os fabricantes de chips s disponibilizam ORs e ANDs com entradas que tm, todas, o mesmo Nvel
de Actividade. Pelo que, previamente, h que transformar o logigrama de modo a satisfazer essa limitao
No caso, s existe uma gate onde isso ainda no assim, a saber: o AND N; nele, uma entrada activa a Low
e a outra activa a High. Para ficarem ambas com o mesmo Nvel de Actividade, h duas estratgias, vid ao lado:
ou providenciar que ambas fiquem activas a High o que se logra substituindo o indicador de polaridade na
entrada activa a Low por um inversor de polaridade inserido na linha que nela acaba
ou providenciar que ambas fiquem activas a Low o que se logra qualificando com indicadores de polaridade
os dois extremos da linha que acaba na entrada activa a High (como que eles se compensam mutuamente).
(Impe-se um parntesis: podem ocorrer casos em que, para alterar o Nvel de Actividade de uma entrada activa
a High, no se pode seguir tal estratgia nomeadamente quando o outro extremo da linha que a acaba activo
a Low. Intuem-se alternativas (onde em qualquer uma h que qualificar essa entrada com um indicador de
polaridade): descartar o indicador de polaridade do outro extremo da linha, ou inserir nela um inversor de
polaridade. No custa imaginar alternativas para alterar o Nvel de Actividade duma entrada activa a Low)
Garantido, para todas as gates, que as entradas de cada uma tm o mesmo Nvel de Actividade, resta procurar no
mercado os integrados com a Tabela de Verdade fsica com que as gates ficaram. s duas opes acima
correspondem outras tantas concretizaes em termos de Integrados da srie SN74:
- concretizar o OR W e o AND S com um SN7408; e o AND N e o OR E com um SN7402;
- inserir um par de indicadores de polaridade (mutuamente compensantes) em cada uma das linhas que
interligam os ANDs {N, S} ao OR E - e concretizar tudo, incluindo os inversores, com um par de SN7400s.
Concluso inevitvel: h que exercitar muuuuuuuito a massa cinzenta, sob pena de o Projecto descambar em
mais Integrados do que os estritamente necessrios
Na prtica, e aquando da escrita deste texto, a generalidade dos projectistas prefere a Lgica Positiva e
natural ser a interrogao: conhecido o logigrama em Lgica mista, como redesenh-lo em Lgica positiva?
claro o que as distingue: em Lgica Positiva, so inexistentes indicadores de polaridade e sufixos _L e _H;
dessa constatao, bvia a estratgia a seguir, vid ao lado:
- se alguma entrada de alguma gate estiver qualificada com um indicador de polaridade, h que substitu-lo por
um inversor de polaridade inserido na linha que nela acaba;
- para cada nome sufixado com _L, h que substitu-lo pelo seu equivalente sufixado com _H;
- no fim, descartam-se todos os sufixos _H.
Do logigrama assim obtido, ser pacfico deduzir a correspondente alis j sabida expresso booleana

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 16 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Codificao da Informao

Page 17 of 119

/ 9a Projecto

Esta sesso versa a Codificao de Informao. Para situar este assunto, o ponto de partida natural ser o que
no ter escapado ao leitor: os sensores at agora tidos em conta s reconhecem informaes binrias. Revisitando
o 8 Projecto: uma Portinhola est aberta ou no , a carga excessiva ou no , e o interruptor Go est
premido ou no; todas estas informaes so binrias: ou Sim, ou Sopas Ora, no mundo real, o mais comum
so informaes que assumem mais que dois valores apenas: quando o leitor marca um endereo num telefone, ele
precisa de discernir o dgito premido, entre 10 possveis; quando escreve um e-mail no teclado dum computador,
ele precisa de discernir a tecla premida, entre mais de 50 possveis; quando regista um evento com uma cmara de
vdeo digital, ela precisa de discernir entre uma gama ilimitada de sons e cores Urge, pois, abordar circuitos que
sinalizem informaes m-rias Um tipo particular de circuitos assim o que o jargo digital designa de
codificadores. Como as outras sesses, ir-se- desenrolar a partir de um Projecto concreto, vid enunciado ao lado.
A informao no binria: no so s duas as alternativas a codificar; da, uma questo: como codific-la?
Suponha-se que a granularidade da observao era reduzida: os contactos seriam s dois; bastaria um bit s:
seja 0 para codificar que o vento soprava para entre o Norte e o Sudeste e 1 para codificar o contrrio
Aumente-se um pouco a granularidade, pelo artifcio de substituir cada contacto por um par de contactos (de
menor tamanho); alm do bit j referido, seria agora preciso um outro mais: seja 0 para codificar que o vento
soprava para, grosso modo, mais perto do Norte (ou Sul) e 1 para codificar o contrrio
Aumente-se ainda mais a granularidade, pelo mesmo artifcio de substituir cada contacto por outro par de
contactos; alm dos dois bits j referidos, seria necessrio um outro mais: seja 0 para codificar que o vento
soprava para, grosso modo, mais perto do Norte ou Este (ou Sul ou Oeste) e 1 para codificar o contrrio
A concluso vem a ser a seguinte: para codificar, sem ambiguidade, cada um dos 8 valores passveis de ser
assumidos pela direco do vento, so necessrios (pelo menos) 3 bits, com os nomes, seja, {D2 D1 D0}.
Ao lado, representa-se a assim denominada rvore de Cobertura da Informao a comunicar:
em baixo, listam-se os 8 valores e que vm a ser as folhas da rvore: {NW, W, SW, S, SE, E, NE, N};
no topo, encontra-se a raz da rvore; dela, bifurcam-se 2 ramos, cada um findando num n; um, etiquetado
por D2=0, cobre a metade direita das folhas; e o outro, etiquetado por D2=1, cobre a metade esquerda;
de cada n, bifurcam-se 2 ramos, cada um findando num outro n; um, etiquetado por D1=0, cobre a metade
direita das folhas cobertas pelo n que lhe fica por cima; o outro, etiquetado por D1=1, cobre a outra metade;
de cada um desses outros ns, bifurcam-se 2 ramos, cada um findando numa folha; um, etiquetado por D0=0,
cobre a folha da direita; o outro, etiquetado por D0=1, cobre a outra folha.
Com o que a cada folha fica associada uma palavra de 3-bits nica: {111, 110, 101, 100, 011, 010, 001, 000}.
Em sentido inverso, de baixo-para-cima: cada um dos ns mais abaixo ditos do nvel 0 cobre 2 folhas;
cada um dos ns que lhes ficam logo acima ditos do nvel 1 cobre 4 folhas; e o n mais acima que acaba por
ser a raz da rvore e dito do nvel 2 cobre 8 folhas.
Mas, se mais ns houvera por cima, eles cobririam sucessivamente 16, 32, ou, mais genericamente, 2n folhas,
em que n seria o nmero de nveis de ns e, tambm, o comprimento das palavras, isto : o nmero de bits 0s e
1s preciso para codificar cada folha (e isso subentendendo que as palavras tm todas o mesmo comprimento).
Supondo que a informao pode tomar m valores distintos, e associando cada um a uma folha, conclui-se: para
os codificar, requerem-se m palavras de n bits, em que n o menor inteiro tal que 2n no inferior a m. Pelo que:
A codificao consistir numa correspondncia biunvoca entre cada valor e uma palavra de n-bits; ao lado,
apresentam-se duas alternativas (entre muitas outras): o CBN (cdigo binrio natural) que alis o inscrito nos
contactos do cata-vento e nas folhas da rvore , e o CBR (cdigo binrio reflectido). No que se segue, e a no ser
que se explicite em contrrio, a designao cdigo binrio denotar invariavelmente cdigo binrio natural;
O codificador ter m entradas e n sadas. Como ele l por dentro, eis o que se ir abordar j de seguida
Antes, porm, atente-se no conceito subjacente ao termo codificador: derivado da arquitectura do cata-vento
com 8 inputs! , chegou-se a um circuito cujo output dever identificar qual deles est activo de momento. Mas
concebvel uma outra estratgia: dotar o cata-vento de um contacto s (com o incio, seja In, onde comea o
contacto N, e findando onde termina o contacto NW) - e constituir um circuito elctrico especial: ligar-se-ia um
dos terminais da fonte de alimentao a In, e ligar-se-ia o outro ao eixo do cata-vento; ento, quanto mais o
ponteiro do cata-vento rodasse (no sentido dos ponteiros de relgio), maior seria a resistncia elctrica do circuito
e tudo se resumiria a determinar a amplitude da corrente elctrica, e a desenhar um sensor generalizado com
um input s (na prtica, um assim denominado conversor analgico-digital), para a codificar em 0s e 1s
Lamentavelmente, no se inclui no mbito da disciplina abordar tais sensores generalizados

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 18 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Codificao da Informao

Page 19 of 119

/ Codificador Binrio

Como ser um codificador? Antecipando a vinda baila de outros codificadores, convm uma soluo genrica
em particular identificando as entradas no pelas siglas {N, NE, , NW}, mas com nmeros, seja {0, 1, , 7}
(ou, para maior simplicidade na exposio adiante, {X0, X1, , X7}); tendo construdo o tal codificador genrico,
bastar depois ligar o contacto N entrada X0 (por exemplo), o contacto NE entrada X1, etc..
Com o mesmo fito de perseguir uma soluo genrica, tambm no h que ficar restritos a 8 entradas e 3
sadas: o alvo ser um codificador com n sadas e m=2n entradas.
Ora, mesmo para as 8 entradas que o 9a Projecto requere, o Mapa de Karnaugh expande-se por 28=256 clulas,
o que descorooante mesmo para o mais devoto de mister Karnaugh: h que dar uso massa cinzenta
O mtodo que se ir usar (aqui e noutros contextos) ser desenhar um codificador com uma sada, e depois
outro com duas sadas e, reflectindo sobre os Circuitos logrados, generalizar para codificadores com mais sadas
Caso do codificador 2:1 i.e., com 1 sada (Z) e 2 entradas (identificadas com nmeros, {X1, X0})
Vid ao lado a respectiva Tabela de Verdade: esquerda esto as quatro combinaes das entradas {X1, X0}, e
direita encontra-se a correspondente sada Z Tendo em mente o funcionamento do cata-vento,
grosso modo, a seta est sempre a tocar nalgum contacto pelo que nunca se observa {X1=0, X0=0}; alm
disso, nunca toca em dois contactos ao mesmo tempo pelo que nunca se verifica {X1=1, X0=1}. Regista-se isso
com o smbolo de indiferena, X, nas correspondentes linhas de Z;
quanto aos casos em que a seta toca num contacto s, identificar as entradas por nmeros habilita a uma regra
simptica para estabelecer a sada: a sada ser o cdigo binrio do nmero que identifica a entrada (subentendese que os 0s e 1s lgicos so interpretados como smbolos do sistema de numerao de base 2). Portanto:
quando o contacto tocado for X0 (ou seja: quando X0 advir activo), Z volve-se no cdigo binrio do nmero
0 que 0; e quando o contacto tocado for X1, Z toma o valor 1 (isto , o cdigo binrio do nmero 1).
Resta aplicar o mtodo de Karnaugh, para chegar expresso da sada em termos das entradas
Caso do codificador 4:2 i.e., com 2 sadas (Z1, Z0) e 4 entradas, {X3, X2, X1, X0}
Vid ao lado o respectivo mapa de Karnaugh ( perda de tempo comear por preencher a Tabela de Verdade):
como expectvel, h clulas que correspondem a combinaes das entradas que nunca se observam: estarem
todas inactivas ou estarem duas ou mais activas; so todas preenchidas com o smbolo de indiferena, X;
as restantes clulas correspondem aos casos onde uma s das entradas est activa, a saber e respectivamente:
1000, 0100, 0010 e 0001 ou seja, as numeradas {8, 4, 2, 1}; {Z1, Z0} apresentaro o cdigo binrio do
nmero que identifica a entrada que ento estiver activa, a saber e respectivamente: 11, 10, 01 e 00.
(Dito de uma forma mais pausada: o caso 0100 corresponde a {X3=0, X2=1, X1=0, X0=0}, ou seja, s X2 est
activa; isso remete para a clula 4 de ambos os mapas, de Z1 e Z0. Mas X2 estar activa significa que as sadas
{Z1 Z0} iro apresentar o cdigo binrio de 2 que 10 , ou seja {Z1=1, Z0=0})
Resta aplicar o mtodo de Karnaugh, para chegar s expresses das sadas em termos das entradas.
Essas expresses so sumamente sugestivas: Z1=1 sse X2 ou X3 forem 1, e Z0=1 sse X1 ou X3 forem 1.
Generalizando: uma sada, seja Zi, de um codificador binrio genrico ser um OR de algumas das entradas;
uma entrada, seja Xj, ser includa nesse OR sse o cdigo binrio de j contiver um 1 na posio i.
Caso do codificador 8:3 i.e., com 3 sadas (Z2, Z1, Z0) e 8 entradas
A generalizao feita habilita escrita directa das expresses de {Z2, Z1, Z0}! Veja-se o caso do codificador
8:3 particularizado para o 9a Projecto: N ligado entrada 0, E ligado entrada 2, etc., vid ao lado.
Z2 ser um OR Quanto s entradas que ele envolve, sero aquelas cujo cdigo binrio (de 3-bits), comporta
um 1 na posio 2 e que vm a ser {S, SW, W e NW}, vid ao lado. Idem para Z1 e Z0.
Nota: dispondo de tal codificador binrio, ele pode ser usado mesmo se a codificao dos contactos for outra!
Conviesse usar o CBR (por exemplo), bastaria ligar entrada 2 o contacto SE, que no o contacto E, etc.
No ter escapado ao leitor que suportar o cata-vento sobre o codificador binrio acima tem dois senes: de um
lado, ele estar continuamente a sinalizar alguma direco do vento, mesmo quando no soprar vento nenhum;
ademais, quase inevitvel que, ao rodar de N para NE, a seta venha a tocar em dois contactos ao mesmo
tempo e todavia o desenho do codificador binrio partiu do princpio de que tal nunca acontece!
hora de lidar com estas condicionantes: o que se vai fazer de imediato

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 20 of 119

Vitor M. P. Vargas / IST


Codificao da Informao

Sistemas Digitais (Part II)

Page 21 of 119

/ 9b Projecto (Codificador de Prioridade)

Considere um concurso televisivo em que, frente ao jri, se apresentam, de cada vez, quatro concorrentes. Ele
formula-lhes uma pergunta, aps o que lhes concede algum tempo para pensarem nela Se algum concorrente
achar que sabe a resposta certa pergunta, prime um boto que lhe dedicado (e tem diante de si).
O jri dispe de um circuito que assinala se algum clicou no seu boto e, em caso afirmativo, reporta
quem ele (sob a forma de um cdigo binrio). Se, eventualmente, dois ou mais dos concorrentes tiverem clicado
os respectivos botes, o circuito reportar o que se posicionar mais esquerda.
Um circuito com este funcionamento designa-se de Codificador de Prioridade. Comparativamente ao
Codificador Binrio (isto , ao circuito desenhado a propsito do cata-vento), so claras as diferenas:
agora, pode suceder que mais do que uma das entradas esteja activa (o que, na aplicao em causa,
corresponderia a terem sido premidos os botes de dois ou mais dos concorrentes);
e at pode suceder que nenhuma das entradas esteja activa!
Designem-se de {C3, C2, C1, C0} os estados (no-premido ou premido) dos botes dos Concorrentes; e de C a
sinalizao (no ou sim) de que pelo menos um deles est premido, e de {Z1, Z0} o cdigo binrio que identifica o
concorrente a reportar ao jri (quando C=1).
Aceitando a Codificao ao lado, trivial a construo da Tabela de Verdade do circuito:
esquerda, dispem-se as colunas correspondentes s entradas do circuito, e que vm a ser {C3, C2, C1, C0}
obviamente, a sada C ser 0 apenas para a combinao em que nenhuma das entradas est activa; quando
tal suceder, as sadas {Z1, Z0} sero irrelevantes pelo que, na correspondente linha, {Z1, Z0} sero preenchidas
com o smbolo de indiferena, X;
para as demais combinaes, C ser 1; e {Z1, Z0} ser o cdigo binrio do nmero {3, 2, 1 ou 0} que
identifica o concorrente activo mais esquerda; percorrendo as combinaes de baixo para cima,
para as (8) combinaes prefixadas por 1, C3 o boto premido mais esquerda: {Z1, Z0} ser ento o
cdigo binrio de 3, isto : 11
para as (4) combinaes prefixadas por 01, C2 o boto premido mais esquerda: {Z1, Z0} ser o
cdigo de 2, isto : 10;
para as (2) combinaes prefixadas por 001, C1 o boto premido mais esquerda: {Z1, Z0} ser o
cdigo de 1, isto : 01;
para a combinao 0001, s h um boto premido, C0: {Z1, Z0} ser o cdigo de 0, isto : 00.
Por inspeco visual, constata-se:
que C=1 sse alguma das entradas for 1 o que remete para o OR de todas elas;
que Z1=1 sse C3 ou C2 forem 1 o que remete para o OR dessas duas entradas;
que Z0=1 sse C3 for 1, ou C1 for 1 mas C32 no o for o que remete para a expresso ao lado.

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 22 of 119

Vitor M. P. Vargas / IST


Codificao da Informao

Sistemas Digitais (Part II)

Page 23 of 119

/ Intermezzo: informar com 0s e 1s?

Os Projectos acima compeliram Codificao de Informao diversa: contactos dum cata-vento, botes
atribudos aos concorrentes num concurso (e, anteriormente: botes associados aos membros dum jri, etc.).
Antevendo a mirade de Projectos em que convir aplicar a metodologia de Sistemas Digitais, hora de revelar:
possvel codificar (exacta ou aproximadamente) qualquer tipo de informao recorrendo s a smbolos 0s e 1s
A este respeito, so comuns duas espcies de codificao:
Cdigos cujas palavras tm comprimento uniforme n.
Codificar um valor da informao associ-lo a uma palavra isto , um conjunto ordenado de n bits. Se
houver que considerar m valores distintos, requer-se um total de m palavras; precisamente, designa-se de cdigo a
associao de cada palavra a um valor. Para os cobrir a todos, 2n no dever ser inferior a m; inversamente: se
houver que codificar m valores, o comprimento mnimo do cdigo ser de n=log2m (arredondado por excesso).
Eis alguns exemplos:
Um ecr de um sistema electrnico (TV, computador, mquina fotogrfica, display de um telemvel, etc.)
usa comummente o sistema de cores dito de RGB (Red-Green-Blue); nele, a cor de um pixel conseguida pela
adio local das cores primrias (Vermelho, Verde, Azul) em que cada uma delas pode assumir uma certa gama
de nveis de intensidade. Para o caso, vulgar, de se recorrer a 256 nveis, e posto que log2256=8, deduz-se que cada
nvel codificado em 8-bits; e pois que, por cada pixel, h que codificar os nveis de 3 cores, conclui-se que as
palavras do cdigo tm, cada uma, 3*8=24 bits; ou seja: no ecr, cada pixel poder tomar at 224 cores distintas
Os sistemas digitais de comunicao de sons (dos telefones, da rdio e TV, etc.) tambm recorrem a
cdigos. Adiante, faz-se uma breve introduo ao sistema mais primitivo, dito de PCM (Pulse Code Modulation)
uniforme, ficando desde j o leitor advertido que de ento para c a investigao e a tecnologia progrediram
O som resulta da variao da presso atmosfrica provocada pelas cordas vocais e restante tracto vocal de
algum falando ou cantando, e/ou pelos instrumentos duma orquestra, etc. Essa variao contnua (isto , sem
mudanas a pique), podendo assumir todos os valores entre um mnimo Vmin e um mximo VMax, vid grfico ao
lado. Para a digitalizar (isto : para a converter numa sucesso de bits), seguem-se vrias etapas:
em primeiro lugar, efectua-se a assim designada amostragem: a um ritmo que tem a ver com as caractersticas
(leia-se: frequncia mxima) do sinal sonoro em causa, captam-se amostras dele (isto : determinam-se os valores
que ele toma em instantes discretos do tempo). No caso PCM, em cada segundo h que obter 8000 amostras
aps o que cada uma das amostras quantizada. Conceptualmente, divida-se o intervalo entre Vmin e VMax em
m quanta (vid grfico ao lado, com m=8 quanta); o valor mdio de cada um dito de Nvel de Quantizao. A
amostra arredondada para o Nvel de Quantizao mais prximo. Adivinha-se o ltimo passo: codificar esse
Nvel; havendo que diferenciar entre m Nveis de Quantizao, so necessrios, para cada amostra, log2m bits (o
que, para o caso m=8, conduz a 3-bit/amostra). Resta dizer que o PCM comercial original usa 8-bit/amostra o
que, para um ritmo de amostragem de 8000 amostras/segundo, resulta um dbito de 64000 bit/seg.
Notas:
obviamente, esta tcnica no isenta de erros, ditos de quantizao advindos do arredondamento das
amostras Para os reduzir, aumenta-se o nmero de quanta; mas isso aumenta o nmero de bit/amostra pelo que
a praxis usual discernir o nmero de quanta suficiente para um erro de quantizao de certo modo imperceptvel;
no constituir surpresa para o leitor que a tcnica acima, de codificar sinais contnuos, seja usada em
muitos outros contextos nomeadamente, na digitalizao de imagens e vdeo, de electrocardiogramas e
electroencefalogramas, etc.
Adiante, abordar-se-o outros exemplos onde as palavras do cdigo tm, todas, o mesmo comprimento.
Cdigos cujas palavras no tm, necessariamente, o mesmo comprimento.
No cdigo Morse, cada palavra (no de bits mas de pontos e traos) tem um comprimento que , grosso modo,
inversamente proporcional frequncia de ocorrncia do caracter que representa. Isso permite, em geral, encurtar
drasticamente o espao gasto na codificao da informao em causa.
No mundo digital, esse princpio (e outros) vem a ser usado para compactar a codificao da informao
nomeadamente, em ficheiros .zip. Mas, por sair notoriamente do mbito da disciplina a que este documento diz
respeito, fica apenas este alerta Eventuais curiosos podero encontrar na Internet informao mais detalhada

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 24 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Codificao da Informao

Page 25 of 119

/ Codificao de Decimais

Os nmeros so um ingrediente da comunicao; da, uma questo: como codificar os dgitos {0, 1, 2, , 9}?
Se se optar por cdigos com palavras de comprimento uniforme n, ele dever ser de, ao menos, log210 = 4.
Mesmo com tal limitao, oferecem-se vrias alternativas:
Uma primeira o denominado cdigo BCD (Binary Coded Decimal) em cuja verso compactada/packed,
cada dgito codificado no nibble (isto : 4 bits) que representa esse dgito na base 2, vid ao lado.
Nesse cdigo, o nmero 987(10), por exemplo, representado por 1001 1000 0111(BCD): cada dgito do nmero
codificado separadamente em BCD
Atente-se que a representao na base 2 daquele nmero outra, concretamente vem a ser 11 1101 1011(2).
Comparando as duas codificaes, esta ltima mais curta: a representao-BCD exige 12 bits, enquanto a
representao na base 2 se basta em 10 bits. Porm, para algum que tenha que as ler, a primeira a prefervel,
porquanto mais fcil de perceber a olho nu
Nota: existe uma verso no-compactada para o cdigo BCD: nela, cada dgito codificado num byte (isto : 8
bits), cujos 4 bits de maior peso so preenchidos com 0s, vid exemplo ao lado.
Uma outra alternativa o designado cdigo D+3 em que cada dgito decimal codificado no nibble que
representa na base 2 a soma desse dgito com 3, vid ao lado.
Uma peculiaridade desse cdigo que palavras igualmente afastadas de uma linha imaginria a meio do
cdigo so complementares uma da outra. Por exemplo, 0 codificado em 0011; complementando bit-a-bit esta
palavra, obtm-se 1100 que o cdigo de 9; etc..
Uma outra alternativa mais o designado cdigo ponderado 8 4 -2 -1 em que cada dgito codificado num
nibble tal que a soma dos seus bits ponderados por aqueles pesos resulta nesse dgito. Por exemplo, 1011 o
cdigo de 18+04+1(-2)+1(-1)=8-2-1=5
Outros cdigos decimais ponderados se podem conceber. Eis os pesos de alguns: 5 3 2 -1, 7 4 2 -1; deixa-se ao
leitor a escrita, alis trivial, dos respectivos cdigos
Exceptuando o cdigo BCD, os restantes acima so hipotticos ou pr-histricos no sentido de que hoje
raramente so usados (se que ainda o so); h todavia que assinalar um cdigo relevante em algumas situaes: o
cdigo dito de Gray, ou cdigo binrio reflectido, vid ao lado.
A sua construo anloga das colunas associadas s entradas no Mapa de Karnaugh:
na coluna mais direita, escrevem-se um 0 e um 1; e, logo aps, reescreve-se esse par, mas invertido: um
1 e um 0. Por outras palavras: escreve-se o ciclo 01, justape-se um espelho, e logo depois a imagem
reflectida desse ciclo, 10. Justape-se um novo espelho e a imagem reflectida do que j se escreveu, etc.;
na coluna que lhe fica esquerda, escrevem-se dois 0s e, logo depois, dois 1s. Justape-se um espelho, e
logo depois a imagem reflectida do que est por cima. Justape-se um novo espelho, etc.;
e assim sucessivamente, at no ficar nenhuma coluna por preencher
Com o que as palavras de cdigo ficam dispostas de maneira que duas consecutivas diferem em apenas um bit!
Como exemplo, vejam-se os cdigos de 3 e 4 que so 0010 e 0110: s diferem no segundo bit esquerda
guisa de justificao desta filosofia de codificao, reveja-se o codificador binrio desenhado a propsito do
cata-vento; feita a correspondncia {N, NE, E, SE, S, SW, W, NW} {0, 1, 2, 3, 4, 5, 6, 7}, entrada 3 liga-se
o contacto SE e entrada 4 liga-se o contacto S
Considere-se a rotao do vento de SE para S que dever alterar a sada, de 011 para 100. Sucede que
{Z2 Z1 Z0} so as sadas de ORs das entradas e nada garante que eles tenham o mesmo tempo de propagao.
Pelo que pode acontecer que a sada do codificador transite por palavras intermdias, como seja:
011 010 110 100 (isto : o OR que produz Z0 o mais rpido, e o que produz Z1 o mais lento
Ao receber tal sucesso de bits, o Centro concluir que o vento ter rodado de SE para E, depois para W e
enfim para S o que no bem o que sucedeu: o codificador est prulas! Para evitar tal deduo, uma soluo
usar o cdigo de Gray: fazer a correspondncia {N, NE, E, SE, S, SW, W, NW} {0, 1, 3, 2, 6, 7, 5, 4}; de cada
vez que a seta rodar para o contacto vizinho, s uma das sadas mudar, no haver lugar a estados transitrios
Face a um Projecto concreto, cabe ao projectista averiguar da convenincia em usar tal filosofia

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 26 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Codificao da Informao

Page 27 of 119

/ Codificao de Texto

Desta explorao dos cdigos, no poderia estar ausente a questo: como codificar os caracteres que perfazem
um texto?
A este respeito, no so de somenos os valores a ter em conta: as 26 letras minsculas e outras tantas
maisculas do alfabeto ingls, os 10 dgitos decimais, sinais de pontuao (,, ;, :, !, ?, etc.), sinais
aritmticos (+, -, etc.) e muitos outros. Perceber-se- ento a escolha de palavras de comprimento 7 que
habilita a codificar 27=128 valores distintos , para corporizar o assim designado cdigo ASCII (American
Standard Code for Information Interchange). Ele universalmente usado em computadores, em HTML (a
linguagem da Internet), etc.; quando, em particular, o leitor usa o NotePad, ou, em Word, executa Save As Text
Only, o ficheiro assim gerado to-somente uma sucesso de palavras de cdigo ASCII
Ao lado, apresenta-se a tabela ASCII, isto : a correspondncia entre cada palavra {b7 b6 b5 b4 b3 b2 b1 b0} e o
caracter que ela representa.
As duas primeiras linhas cobrem caracteres de controlo; muitos deles so hoje raramente usados para o fim
em vista quando se especificou o cdigo; nomeadamente, 2 e 3 codificam STX e ETX cujo objectivo
delimitar o incio (StartOfText) e o fim (EndOfText) de um texto a comunicar entre, por exemplo, um computador
e um terminal remoto; hoje, isso faz-se de outro modo
A quarta linha cobre essencialmente, mas no apenas, dgitos decimais; cada um destes representado pelo
respectivo cdigo binrio precedido de 011;
As quatro ltimas linhas cobrem essencialmente, mas no apenas, letras: maisculas e minsculas; entre uma
maiscula e a correspondente minscula, o nico bit que se altera nas respectivas palavras de cdigo b5;
A terceira linha, e outras palavras de cdigo das outras linhas, cobrem sinas de pontuao, operaes
aritmticas, etc.; por exemplo, a clula 20(16) representa um espao em branco
Como exemplo de aplicao de tal cdigo, apresenta-se ao lado a codificao em ASCII da palavra Lisboa; a
prtica comum , entretanto, e em vez de tal sucesso de bits, preceder cada palavra de cdigo de um 0 com o
que ela passa a ocupar a totalidade de um byte , e substituir cada nibble pelo smbolo hexadecimal que lhe
corresponde, vid ao lado.
Desde a sua verso original, em 1963, o ASCII sofreu vrias revises.
O ASCII original foi concebido para a lngua inglesa; para ultrapassar tal limitao, uma estratgia consistiu em
aumentar o comprimento das palavras de cdigo, de 7 para 8 bits; isso permitiu acrescentar tabela mais 128
palavras Uma verso assim, bastante usada, a designada de ISO-8859-1 (Latin 1), que j cobre os caracteres
acentuados (como seja e ) das lnguas latinas da Europa.
Mais recentemente, foi especificado um outro cdigo, dito de UNICODE, este j com um comprimento de
palavra de 16 bit para cobrir tambm caracteres de outros alfabetos (grego, rabe, etc.), smbolos matemticos e
caracteres ideogrficos como so os usados em chins.
Nota final, importante: prtica comum abreviar a designao palavra de cdigo para, mais simplesmente,
cdigo. Com o que no se admirar o leitor de deparar com asseres como sejam:
no cdigo BCD, o cdigo de 6 0110;
no cdigo ASCII, o cdigo de L 46(16).
Nos dois casos,
o primeiro uso de cdigo remete para a lista de associaes entre os valores de informao a codificar e
as diversas palavras de cdigo;
o segundo uso de cdigo remete para a palavra de cdigo a que est associado um valor particular.
No que se segue, far-se- abundante uso de tal praxis, devendo o contexto em que se usa o termo cdigo ser
suficiente para no haver confuso para o leitor relativamente ao significado com que esse termo est a ser usado.
Tambm por mor de abreviao, ser empregue a designao cdigo binrio de 3 (por exemplo), para denotar
palavra que, no cdigo binrio, representa 3.

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 28 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Descodificao /

Page 29 of 119

10a Projecto

Esta sesso versa maioritariamente a Descodificao de Informao ou mais precisamente, os circuitos que a
concretizam: Descodificadores (decoders, no jargo anglo-saxnico). Porm, pela relevncia que ocupa, neles e
noutros dispositivos que iro sendo abordados a partir de agora, convir dedicar algum tempo operao dita de
enable/disable. Como nas outras sesses, ir desenrolar-se a partir de um Projecto concreto...
Considere um cofre tal que, para o abrir, necessrio: posicionar correctamente trs interruptores Up/Down e,
depois, clicar num boto Enable. A chave, ou cdigo de abertura do cofre, a introduzir (nos interruptores) para o
abrir Up-Down-Down.
Subentende-se que, se as posies dos interruptores no estiverem conformes quela chave, um alarme ir tocar
mas tal depender do estado do boto Enable:
Se o boto Enable estiver disabled (intui-se que quem deseja abrir o cofre ainda no acabou de posicionar os
interruptores, pelo que ainda no clicou no Enable), a porta do cofre mantem-se fechada e o alarme no toca;
Caso contrrio (se o boto Enable estiver enabled),
se as posies dos interruptores corresponderem chave, a porta do cofre abre-se e o alarme no toca;
seno, a porta do cofre mantem-se fechada e o alarme toca.
Ao lado, encontra-se a Codificao das entradas (o boto Enable e os trs Interruptores {I2, I1, I0}) e sadas (o
Alarme e a abertura da Porta), e a Tabela de Verdade do Circuito que as controla conquanto, verdade seja dita,
ela no seja de todo precisa para escrever as expresses das sadas {A, P} em funo das entradas {E, I2, I1, I0}
A partir delas, pode de imediato desenhar-se um logigrama, vid ao lado.
No custa ver que esse logigrama no foi desenvolvido segundo as habituais topologias nem de uma SOP (OR
de ANDs) nem de uma POS (AND de ORs): que ele foi desenhado para salientar vrias peculiaridades:
Em primeiro lugar, h uma parte do circuito cuja sada fica activa se e somente se as posies dos
interruptores estiverem conformes chave do cofre (Up-Down-Down); notrio que essa sada , ignorando a
entrada Enable, um Mintermo das entradas {I2, I1, I0}!
Nota: o nome Mintermo foi introduzido para denotar cada componente da 1 Forma Cannica duma funo. Por
mor de brevidade, usar-se- a designao MinTermo das entradas {I2, I1, I0} para significar uma funo dessas
entradas que constituda por apenas um Mintermo.
Generalizando: dado um conjunto de entradas genricas, o detector de uma combinao particular delas isto
, um circuito cuja sada fica activa apenas para essa combinao das entradas um Mintermo dessas entradas!
Abra-se um parntesis para lembrar: a sua expresso um produto das entradas, em que cada entrada aparece
uma s vez, na forma normal ou complementar, consoante respectivamente essa entrada for 1 ou 0 (na
combinao em causa). Aplicado ao caso do cofre, onde o cdigo da sua chave 100 isso volve-se em I 2 I1 I0 .
Uma outra peculiaridade que as sadas {A, P} so (quando a entrada Enable se encontra activa)
complementares uma da outra.
Isso no deve ser encarado com displicncia por um projectista: no contexto de algum Projecto que um dia
venha a ter entre mos, ele poder vir a decidir usar integrados que disponibilizem sadas assim e mal seria ele
recorrer a um NOT para lograr a negao de uma sada que o prprio integrado j facilita! Por conseguinte: h que
ter muita ateno funo de todos os pinos dos integrados por que se opta para materializar um Projecto!
Enfim, as sadas {A, P} do circuito so as sadas de dois ANDs que tm uma entrada comum, dita de
Enable; com o que, se ela estiver inactiva, aquelas sadas ficaro consequentemente inactivas!
Esta uma caracterstica de bastantes circuitos integrados no mercado: comportam uma entrada enable que,
se inactiva, fora a(s) sada(s) a ficar(em) inactiva(s)! H mesmo integrados que exibem diversas entradas enable:
cada uma est associada a uma ou mais sadas de tal modo que, se inactiva, as fora a ficarem inactivas! Dito de
uma maneira informal (no exacta): as sadas controladas por uma entrada Enable s funcionaro como se quer
(isto , conforme s expresses booleanas a que se chegou) se e somente se essa entrada Enable estiver activa.
De novo justificando pela sua relevncia, convm gastar algum tempo mais com a operao Enable/Disable.
o que se vai fazer de imediato.

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 30 of 119

Vitor M. P. Vargas / IST


Descodificao /

Sistemas Digitais (Part II)

Page 31 of 119

Intermezzo: Enabling/Disabling

O mercado disponibiliza integrados com uma entrada especial enable que, se inactiva, fora as sadas que lhe
esto associadas a ficarem a 0! Este comportamento pode ser generalizado no sentido de que, se aquela entrada
estiver inactiva, as sadas permanecero num estado por omisso (default), que pode ser 0 ou 1.
Considere-se ento um circuito tal que uma sada Z (controlada por uma entrada enable) ser, se essa entrada
Enable estiver activa, um valor genrico, seja X.
Caso em que a sada controlada pela entrada enable , por omisso, 0:
A Tabela de Verdade para este caso encontra-se ao lado: quando a entrada Enable estiver inactiva, a sada Z
ser 0; caso contrrio, dever ser o tal valor genrico X.
Manifestamente, a sada ser um AND, entre X e E que, sem surpresa, o circuito que produz as sadas
{A, P} no logigrama do 10a Projecto
Adiante, ser comum a expresso o AND fica activado para denotar um AND com uma entrada enable que se
encontra activa (com o que a sua sada ser o produto das restantes entradas).
Caso em que a sada controlada pela entrada enable , por omisso, 1:
A Tabela de Verdade para este caso encontra-se ao lado: quando a entrada Enable estiver inactiva, a sada Z
ser 1; caso contrrio, dever ser o tal valor genrico X.
Manifestamente, a sada vir a ser um OR, entre X e o complemento de E, vid ao lado
Uma questo decisiva para um Projectista , obviamente, a correcta interpretao dos esquemas dos catlogos
dos fabricantes em ordem a saber com preciso o comportamento de cada pino dos diversos integrados. A esse
respeito, existe a IEEE Standard 91-1984, Graphic Symbols for Logic Functions um documento que normaliza o
desenho dos circuitos integrados. Ao longo das sesses de que esta faz parte, preferiu-se, e em vez de apresentar a
Standard de uma vez s, ir repescando nela as notaes que determina para cada assunto que se venha a abordar.
Para a operao Enable, a Standard apresenta dois qualificadores IEC diferentes, a saber: EN e G.
EN assinala uma entrada Enable que afecta todo o integrado; em particular, afecta todas as sadas:
quando inactiva, todas as sadas do integrado advm inactivas;
G assinala uma entrada Enable que afecta apenas algumas sadas (ou entradas) do integrado; para se
discernir quais so, essas sadas so numeradas e G especifica, com nmeros, quais as sadas que afecta.
Ao lado, apresentam-se vrios smbolos IEC (isto , conformes Standard); em todos eles, pretende-se que, se
uma entrada E do circuito advir Low, seja feita o disable da sada. Da esquerda para a direita,
1. No primeiro integrado, h uma sada, Z, e uma entrada Enable; para especificar que esta afecta s aquela
sada, esta qualificada com 3, e a entrada enable qualificada com G3. Pois que esta activa a High, deduzse: para que Z fique Low quando E advir Low, bastar interligar E directamente entrada enable do integrado
(Em vez de qualificar a sada Z com 3, seria tambm vlido qualific-la com um nmero que ainda no
estivesse a ser usado como prefixo/sufixo, seja 2 desde que a entrada enable fosse requalificada para G2)
2. No segundo integrado, h uma sada, Z, e uma entrada Enable; para especificar que esta afecta todas as
sadas, ela qualificada EN Sendo ela activa a High, deduz-se: para que Z fique Low quando E advir Low,
bastar interligar E directamente entrada enable
3. No terceiro integrado, h uma sada, Z, e uma entrada Enable; para especificar que esta afecta todas as
sadas, ela qualificada EN Sendo ela activa a Low, deduz-se: para que Z fique Low quando E advir Low,
preciso interpor um inversor entre E e a entrada enable
4. No quarto integrado, h uma sada, Z, e uma entrada Enable; para especificar que esta afecta todas as
sadas, ela qualificada EN No caso, ela , internamente, o AND de trs entradas, duas quais activas a Low;
deduz-se: para que Z fique Low quando E advir Low, uma soluo ser:
interligar E directamente terceira entrada daquele AND (a que activa a High),
e forar o nvel Low em ambas as entradas activas a Low
H que referir um erro de principiante, que interligar E ao AND, mas deixando no ar as entradas activas a
Low imaginando que, se as deixar no ar, elas ficaro activas que isso no se pode pressupor! Uma entrada
enable no pode ficar no ar, tem mesmo que se lhe forar um nvel Low ou High (o que for pertinente em cada
momento); caso contrrio, arrisca-se a que, com grande probabilidade, o circuito no funcione como se quer!

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 32 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Descodificao /

Page 33 of 119

10b Projecto

Enfim, hora de abordar Descodificadores. Qui seja melhor faz-lo a partir de outro Projecto concreto...
Considere o leitor um guindaste que est sendo usado para carregar cascalho Para efeitos de controlo do
guindaste, ele disponibiliza um conjunto de 15 vlvulas hidrulicas:
4 para elevar ou baixar a lana, em qualquer caso sendo possveis 2 velocidades;
4 para rodar a lana, para a esquerda ou para a direita, em qualquer caso sendo possveis 2 velocidades;
4 para enrolar ou desenrolar o cabo, em qualquer caso sendo possveis 2 velocidades;
2 para abrir o balde, sendo possveis 2 velocidades;
1 para fechar o balde.
Pretende-se um dispositivo de controlo remoto, ligado ao guindaste por um cabo multi-condutor; ele dever ter
15 botes associados um-a-um s 15 vlvulas supracitadas e um boto stop (significando nada a fazer); mas,
para ser leve e fcil de transportar, o cabo dever comportar o menor nmero de condutores
Pretendem-se os circuitos codificador e descodificador
Nota importante: pressupe-se que a cada momento s pode ser accionada uma vlvula hidrulica e, em
consequncia, a cada instante estar premido um e um s boto, nem que seja o boto stop
Havendo que ter em conta o boto stop, o total de sinais que o dispositivo de controlo dever estar capacitado
para comunicar de 16; isso conduz a ter que usar, entre ambos, um mnimo de log216=4 condutores.
Designem-se eles de:
{O1 O0} para codificar a operao a realizar, entre as quatro possveis: mover a lana, rodar, enrolar o
cabo e accionar o balde;
A para codificar o atributo a acompanhar a especificao da operao a realizar, respectivamente: paracima ou para-baixo, -direita ou -esquerda, enrolar ou desenrolar e abrir ou fechar;
V para codificar a velocidade a que operao se deve realizar: depressa ou devagar
Montando a quatro as sadas {O1 O0 A V} do codificador da operao a solicitar ao guindaste, claro que o
total de combinaes que o conjunto delas pode assumir ser de 24=16. Qual o significado a atribuir a cada
combinao? Ele fica esclarecido se se aceitar a codificao para cada uma das sadas ao lado:
Atente-se, como exemplo, na combinao 1010, ou seja {O1=1, O0=0, A=1, V=0}; ela corresponde a rodar
(pois O1=1 e O0=0) direita (pois A=1) devagar (pois V=0); vice-versa, a operao baixar a lana depressa
dever ser codificada em 1101, ou seja {O1=1, O0=1, A=0, V=1}; de facto, mover a lana codificado em
O1=1 e O0=1, para baixo codificado em A=0 e depressa codificado em V=1
Saliente-se que a tabela ao lado no nenhuma Tabela de Verdade! Alis, 16 entradas levariam a 216 linhas
Ela uma lista das combinaes de 4 bits e, porquanto elas so as possveis sadas de um codificador, natural
ser design-las de cdigos das operaes a realizar. Em particular, o cdigo de baixar a lana depressa
1101. Acontece que esta a representao de 13 no cdigo binrio pelo que sugestivo:
identificar com nmeros (0, , 15) tanto as entradas do codificador como as sadas do descodificador;
designar a operao baixar a lana depressa de operao n 13 e associ-la quer ao boto n 13 e ipso
facto entrada n 13 do codificador, quer sada n 13 do descodificador
Ao lado, esquematiza-se o sistema de comunicao entre o dispositivo de controlo remoto e o guindaste:
O dispositivo de controlo comporta um codificador em que, como sabido, uma s das entradas est activa
e cuja sada o cdigo binrio da operao a realizar (sendo 0000 no caso stop);
O guindaste envolve um descodificador que recebe o cdigo binrio da operao a realizar (ou 0000) e
que activa uma s das suas sadas.
O sistema acaba por funcionar como se a entrada 0 do codificador estivesse directamente ligada sada 0 do
descodificador, a entrada 1 do codificador sada 1 do descodificador, e assim por diante S que com
ligaes directas haveria que usar 16 condutores, que no apenas os quatro em que se basta o esquema ao lado.
Deixa-se ao leitor o desenho do codificador, alis trivial: cada sada, seja Zi, ser um OR de algumas
entradas; uma entrada, seja Xj, ser includa nesse OR sse o cdigo binrio de j contiver 1 na posio i
Pelo que resta a questo: como ser um descodificador l por dentro? o que se ir abordar de imediato.

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 34 of 119

Vitor M. P. Vargas / IST


Descodificao /

Sistemas Digitais (Part II)

Page 35 of 119

Descodificadores Binrios

Como ser um descodificador? Convm, claro, uma soluo genrica em particular identificando as
entradas no mediante {O1 O0 A V}, mas com nmeros, seja {3, , 0} (ou, equivalentemente, {A3, , A0}); e
outrossim identificando as sadas com nmeros, seja {15, , 0} (ou {Z15, , Z0}); ademais, tambm no h que
ficar restritos a 4 entradas e 16 sadas: o alvo ser um descodificador com n sadas e m=2n entradas.
Ora, mesmo para as 4 entradas que o 10b Projecto requere, isso remete para 16 Mapas de Karnaugh cada um
com 16 clulas, o que um fortssimo atentado pacincia de qualquer ser humano
Adivinha-se o mtodo que se ir usar: desenhar um descodificador com uma entrada, e depois outro com duas
entradas e, reflectindo sobre os Circuitos logrados, generalizar para descodificadores com mais entradas.
Para determinar as sadas, far-se- o seguinte: uma combinao das entradas ser interpretada como um cdigo
binrio e s ficar activa a sada identificada com o nmero que lhe corresponde. As entradas podem ser ento
pensadas como entradas de seleco/Address no sentido de que seleccionam a nica sada a ficar activa.
Caso do descodificador 1:2 i.e., com 1 entrada de seleco (A) e 2 sadas (numeradas, {Z1, Z0})
Vid ao lado a respectiva Tabela de Verdade: esquerda esto as duas combinaes da entrada A, e direita
encontram-se as correspondentes sadas {Z1, Z0} De facto, e pela regra acima: quando A for 0, que o
cdigo binrio de 0, ficar activa a sada Z0, permanecendo Z1 inactiva; e quando A for 1, que o cdigo
binrio de 1, ficar activa a sada Z1, permanecendo Z0 inactiva. As expresses das sadas so bvias
Caso do descodificador 2:4 i.e., com 2 entradas de seleco {A1, A0} e 4 sadas, {Z3, Z2, Z1, Z0}
Vid ao lado as Tabelas de Verdade: quando {A1=0, A0=0} ou seja, quando se forar entrada a combinao
00, que o cdigo binrio de 0, ficar activa a sada Z0, permanecendo inactivas as demais; e se a
combinao entrada for 01, que o cdigo de 1, ficar activa a sada Z1, e somente ela; e assim por diante...
As expresses das sadas so bvias e velhas conhecidas: so mintermos (Z0=m0, Z1=m1)! Alis, para o
concluir, bastaria ver que cada uma advm 1 s para uma combinao das entradas que o que define um
mintermo Generalizando: uma sada dum descodificador binrio ser o mintermo que corresponde a essa sada!
(O mesmo se teria aduzido se se reparara que, na terminologia do 10a Projecto, cada sada funciona como o
detector duma combinao particular das entradas) O passo final ser o desenho de um logigrama. Vid ao lado
duas alternativas: uma gerada directamente a partir das expresses dos mintermos (dois planos, um de inversores e
outro de ANDs), e uma outra em que o plano de inversores substitudo por um plano de descodificadores 1:2.
Caso do descodificador 3:8 i.e., com 3 entradas de seleco (A2, A1, A0) e 8 sadas
A generalizao feita habilita escrita directa das expresses de {Z7, Z1, , Z0}! Z7 ser o mintermo m7 (que
A2 A1 A0), Z6 ser o mintermo m6, etc.. O leitor ser capaz de por si s escrever as expresses das outras sadas
J se referiu a Standard 91-1984 para a interpretao de esquemas. Ao lado, exemplifica-se a sua aplicao a
descodificadores. Todos tm um qualificador geral (General Qualifying Symbol), nomeadamente X/Y ou 2/4; so
admissveis outros para identificar descodificadores, vid ao lado. As entradas de seleco so identificadas pelos
pesos em palavras do cdigo binrio, decrescendo de baixo para cima, como sejam {8 4 2 1}; e as sadas so
identificadas por nmeros (inteiros no negativos), crescendo de cima para baixo. Da esquerda para a direita,
1. O primeiro integrado um descodificador 2:4, em que tanto as entradas como as sadas so activas a High;
2. O segundo tambm um descodificador 2:4 (com entradas e sadas activas a High), mas com uma entrada
enable (activa a High): ela necessita ser activada para que a sada seleccionada advenha activa!
3. O terceiro de que exemplo o SN74138 um descodificador 3:8 (com entradas activas a High e sadas
activas a Low), tambm com enable (que , internamente, o AND de trs entradas, duas das quais activas a Low);
4. O quarto de que exemplo o SN74154 um descodificador 4:16 (com entradas activas a High e sadas
activas a Low), tambm com enable (que , internamente, o AND de duas entradas, ambas activas a Low);
5. O quinto de que exemplo o SN74139 um par de descodificadores 2:4 independentes (com entradas
activas a High e sadas activas a Low), cada qual com uma entrada enable (activa a Low);
6. O sexto de que um exemplo o SN74155 um par de descodificadores 2:4 que partilham as entradas
de seleco (com entradas activas a High e sadas activas a Low), cada qual com entrada enable (que ,
internamente, o AND de duas entradas, uma activa a Low e a outra activa a High).
Nota final: Quando um integrado disponibiliza duas ou mesmo trs entradas enable, f-lo para tornar a vida
mais fcil ao Projectista! Se as no usar com inteligncia, poder eventualmente vir a recorrer a hardware a mais

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 36 of 119

Vitor M. P. Vargas / IST


Descodificao /

Sistemas Digitais (Part II)

Page 37 of 119

rvores de Descodificadores

O descodificador binrio um elemento comum em sistemas digitais. Pense-se, por exemplo, na edio de um
documento num computador: quando se lhe acrescenta um caracter mais, aquele tem que discernir onde memorizlo entre os, eventualmente, milhes de clulas da sua memria; isso apela a um descodificador com milhes de
sadas Dir-se-: pois que se construa um descodificador com outros tantos mintermos, um por sada!. Mas essa
sugesto tem um calcanhar de Aquiles: mesmo para uma memria de somente um milho (220) de clulas, cada
mintermo volver-se-ia num AND com 20 entradas o que, ao momento da escrita destas linhas, excessivo: urge
investigar como, com integrados que o mercado disponibiliza, construir um descodificador com muitas sadas!
Reveja-se o 10b Projecto que apela ao desenho de um descodificador de 4 entradas e 16 sadas, isto , ao
desenho de um circuito que selecciona a sada a activar, entre dezasseis, para uma dada combinao de entradas.
Recorde-se a lista dos cdigos das operaes admissveis; ela foi configurada de modo a que:
O bit de maior peso, O1, selecciona se a operao diz respeito lana (O1=1) ou no;
No caso afirmativo, o bit seguinte, O0, selecciona se se trata de mover a lana (O0=1) ou no;
No caso afirmativo, o bit seguinte, A, selecciona se se trata de subir a lana (A=1) ou no;
No caso afirmativo, o bit de menor peso, V, selecciona se a operao deve ser feita depressa (A=1) ou no.
A descodificao da operao 1101 e o mesmo vale para as outras pode ento entender-se como uma srie
de seleces consecutivas, o mesmo dizer uma cascata de descodificadores: o primeiro com uma entrada de
seleco que o bit de maior peso, , o ltimo com uma entrada de seleco que o bit de menor peso
Por mor de simplificao, ao lado esquematiza-se esta arquitectura para um descodificador de 2 entradas, sejam
{A1, A0} (e portanto com 4 sadas), com base em descodificadores 1:2 (com entradas e sadas activas a High);
compreendendo-a, o leitor poder, com descodificadores 2:4 (por exemplo), desenhar um descodificador 4:16
A primeira etapa (e porquanto o objectivo desenhar um descodificador de 4 sadas com descodificadores
com 2 sadas) dispor dois descodificadores 1:2, um por baixo do outro; designem-se eles de {N, S} e numeremse-lhes as sadas, de cima para baixo: {0, 1, 2, 3}; elas ficam sendo as sadas do descodificador 2:4 em vista.
Porquanto o objectivo desenhar um descodificador, h que garantir que a cada momento fique activa s uma
daquelas quatro sadas. Consegue-se isso com descodificadores 1:2 com enable e activando s o que detm a
sada que ficar activa: ou se activa o descodificador N e se desactiva o descodificador S, ou se faz o contrrio.
Isso explica a segunda etapa: preceder o par de descodificadores {N, S} de um descodificador 1:2, seja W
e ligar as suas sadas s entradas enable de {N, S}; activando W, garante-se que ficar activa uma e uma s das
sadas {0, 1} e em consequncia ficar activado um e um s dos descodificadores {N, S}.
A terceira etapa adivinha-se: ligar as entradas {A1, A0} s entradas de seleco dos descodificadores: A1
fica ligado entrada de W e A0 fica ligado s entradas de N e S.
Para apreciar como funciona a arquitectura em rvore a que se chegou, considere-se que nas suas entradas
{A1, A0} se fora a combinao 10 e acompanhe-se o que vai ocorrendo da esquerda para a direita
pois que A1=1, em W ficar activa a sada numerada 1;
com isso, ficar desactivado (disabled) o descodificador N, e ficar activado (enabled) o descodificador S;
pois que A0=0, em ambos os descodificadores {N, S} ficaro seleccionadas as sadas numeradas 0; mas,
porquanto N est desactivado, a sada 0 de N permanecer inactiva: advir activa apenas a sada 0 de S;
pressupondo que as sadas esto numeradas {0, 1, 2, 3} de cima para baixo, tal significa que ficar activa a
sada 2, cujo cdigo binrio 10 e que precisamente a combinao que se forou nas entradas {A1, A0}
Notas:
a raz da rvore, W, encontra-se esquerda e nela que se interliga a entrada de maior peso, A1;
as folhas da rvore, {N, S}, encontram-se direita e a elas que se liga a entrada de menor peso, A0;
e se o descodificador fosse de uma dimenso que justificasse interpor outros descodificadores mais, entre a
raz e as folhas, teria que se lhes ligar entradas de peso sucessivamente decrescente (da esquerda para a direita).
Estas convenes no so ao acaso: decida o leitor o contrrio (isto : ligar A0 a W e ligar A1 a {N, S}) e
descobrir que, se se forar entrada a combinao 10, a sada que ir ficar activa j no ser a numerada 2
Enfim, assumiu-se que as entradas e sadas dos descodificadores 1:2 disponveis so activas a High. Mas isso
no est de antemo garantido: convm que o leitor investigue o que fazer se algumas forem activas a Low.
E, tambm, investigar como construir outros descodificadores, como sejam 3:8 ou 4:16, com base em outros
descodificadores, como sejam 2:4 ou uma sbia combinao de descodificadores de dimenses distintas

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 38 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Descodificao /

Page 39 of 119

10c Projecto

A rvore que concretizou o descodificador 2:4 ilustra a aplicao do que se poder designar de partilha de
blocos funcionais.
Para apreender melhor esta tcnica, considere-se a sada numerada 1 que vem a ser a sada 1 do
descodificador N. Ela ficar activa sse as duas condies seguintes se verificarem:
- a entrada de seleco de N for 1;
- estiver activado (enabled) o descodificador N.
A primeira condio equivale a dizer: o bit de menor peso entrada, A0, for 1;
A segunda condio equivale a estar activa a entrada enable de N o mesmo dizer estar activa a sada 0 de
W; mas tal sucede sse a sua entrada de seleco for 0 ou seja: sse o bit de maior peso entrada, A1, for 0.
Concluindo: a sada 1 ficar activa sse A1=0 e A0=1 o que corresponde ao mintermo m1, A1A 0 .
Similarmente, a sada 0 ficar activa sse A1=0 e A0=0 o que corresponde ao mintermo m0, A1 A 0 .
Qualquer dos dois mintermos envolve o termo A 1 . O que notvel que, em vez de usar um inversor para
gerar m0 e um outro para gerar m1, a rvore, para os materializar a ambos, recorre a um s bloco, W!
Revisitando essa rvore: a sada 0 de W partilhada pelos mintermos m0 e m1, e a sada 1 de W
partilhada pelos mintermos m2 e m3
Pode o leitor reapreciar esta partilha, se aceitar o desafio de desenhar um descodificador 4:16:
- sob a forma de uma rvore de descodificadores 2:4,
- ou sob a forma de uma rvore mista, de descodificadores 1:2 e 3:8;
- ou mesmo sob a forma de uma rvore de descodificadores 1:2, 2:4 e 1:2 isto : um descodificador 1:2
ligado a dois descodificadores 2:4, cada um dos quais ligado a quatro descodificadores 1:2
E, aps observar essa tcnica da partilha nesses circuitos, natural ser concordar que tender a ser interessante
sobretudo para circuitos com vrias sadas. Qui um novo Projecto o possa testemunhar melhor
Quando mister apresentar, a um observador humano, algum nmero, no l muito delicado faz-lo sob a
forma de um cdigo binrio... Uma praxis comum faz-lo visualmente, como sequncia de dgitos cada um
atravs do assim designado display de 7-segmentos; convir ento dispor de um circuito tal que, recebendo um
dgito codificado em BCD, {D3, D2, D1, D0}, as sadas assinalem os segmentos {a, b, c, d, e, f, g} a acender
O circuito, denominado descodificador de 7-segmentos, tem necessariamente 7 sadas. Para elaborar as Tabelas
de Verdade, basta compreender como dever ele funcionar quando entrada se forar alguma combinao:
- se ela for 0000, que o cdigo BCD de 0, devem acender-se os segmentos {a, b, c, d, e e f};
- se ela for 0001, devem acender-se apenas os segmentos {b e c};
- e assim por diante, vid ao lado
Ou seja:
- o segmento a deve acender-se sse nas entradas se forarem os cdigos BCD de {0, 2, 3, 5, 7, 8, 9} de que
se depreende que a Tabela de a ter 1s apenas nas linhas {0, 2, 3, 5, 7, 8, 9};
- o segmento b deve acender-se sse nas entradas se forarem os cdigos BCD de {0, 1, 2, 3, 4, 7, 8, 9} de
que se depreende que a Tabela de b ter 1s apenas nas linhas {0, 1, 2, 3, 4, 7, 8, 9};
- e assim por diante, vid ao lado
A ltima etapa adivinha-se: a partir das Tabelas, preencher mapas de Karnaugh e deduzir as expresses
algbricas simplificadas das sadas {a, b, c, d, e, f, g}; ao lado, indicam-se as expresses para cada uma delas
(sugerindo-se, claro, ao leitor deduzi-las por si mesmo, e conferir da sua validez, no v o diabo tec-las).
Nelas, consta um total de 17 termos de produto; mas D 2 D0 e D1 D0 repetem-se 3 vezes, e D1D0 , D1 D0 ,
D 2 D1 e D 2D1 repetem-se 2 vezes significando que h 6 blocos funcionais que podem ser partilhados; no fim
de contas, so suficientes 9 termos de produto (alm dos inversores e ORs, bem entendido), para gerar as 7 sadas.
Mas seja permitido um desabafo: preencher sete Mapas e aplicar sete vezes o mtodo de Karnaugh para as
sadas do descodificador de 7-segmentos mesmo enfadonho: haver por a um mtodo melhor? o que se vai ver

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 40 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Descodificao /

Page 41 of 119

10d Projecto

No custa encontrar um mtodo mais cmodo para gerar as sadas do descodificador de 7-segmentos, se se tiver
em conta:
que qualquer funo booleana se pode exprimir na 1 Forma Cannica que uma soma de mintermos
que o mercado disponibiliza integrados precisamente os descodificadores cujas sadas so mintermos
Para clarificar tal mtodo, qui o melhor venha a ser aplic-lo a uma sada, seja a: pois que a sua Tabela de
Verdade tem 1s apenas nas linhas {0, 2, 3, 5, 7, 8, 9}, deduz-se que a sua 1 Forma Cannica ser
m0+m2+m3+m5+m7+m8+m9; do que se pode concluir: se se dispuser de um circuito que produza os mintermos
presentes nesta soma, bastar acrescentar um OR cujas entradas sejam esses mintermos.
Ora, pelo que j se viu, mintermos so o que um descodificador mais sabe fazer; e, requerendo-se mintermos
at m9, inclusive, um descodificador 4:16 ser suficiente j que ele produz os mintermos {m0, , m15}.
Para materializar a sada a, bastar ento um descodificador 4:16, a cujas entradas de seleco se aplicam o
cdigo binrio do nmero a visualizar, {D3, D2, D1, D0} e aplicar s entradas de um OR as sadas desse
descodificador que esto numeradas {0, 2, 3, 5, 7, 8, 9}, e apenas elas, vid ao lado.
Este procedimento pode, claro, aplicar-se s restantes sadas do descodificador de 7-segmentos entre mos e
com uma vantagem assinalvel: j no preciso usar mais nenhum descodificador j que aquele que a requer
pode ser partilhado pelas demais sadas, vid ao lado.
Comparando com o circuito anteriormente obtido maneira clssica (preenchendo mapas de Karnaugh, e
deduzindo as expresses simplificadas), patente o muito menor suor gasto com esta tcnica descodificador 4:16
mais sete ORs)!

E o melhor ainda est para vir: pois que qualquer funo booleana se pode exprimir na 1 Forma Cannica,
pacfica a generalizao desse mesmo procedimento a qualquer funo: para materializar uma qualquer sada de
um circuito digital, basta aplicar as suas entradas a um descodificador e ligar a um OR as sadas do
descodificador que geram os mintermos que so pertinentes a essa sada!
E, nisto, nada de Mapas de Karnaugh, apenas uma Tabela de Verdade correctamente preenchida.
Tudo se pode ento fazer com descodificadores e ORs
Assinale-se, porm, que, na prtica real, h que ter em conta a eventualidade de as sadas de descodificadores
disponibilizados no mercado serem activas a Low; se for esse o caso, h, bvio, que usar ORs com entradas
activas a Low o que, em lgica positiva, corresponde a NANDs!

A arquitectura ao lado ilustra duas praxis deveras interessantes em sistemas digitais (e no s):
Modularidade: traduzir o Projecto numa sbia articulao de vrios mdulos, cada um deles com uma
funcionalidade bem definida e figurando no logigrama final como uma caixa preta: vid o descodificador 4:16
onde se no vislumbra o seu interior, que no caso so os 16 ANDs (ou, em alternativa, a pertinente rvore de
descodificadores) em que ele se resolve;
Partilha: usar os outputs de alguns destes mdulos como input para alguns outros mdulos: vid as sadas do
descodificador, que vm a ser utilizadas como entradas para os 7 ORs que decidem o acender/apagar dos 7segmentos.
Estas tcnicas foram introduzidas na construo da rvore de descodificadores e sero repetidamente usadas
at ao final deste itinerrio: nomeadamente, e para citar apenas alguns casos, em rvore de multiplexers, em
circuitos aritmticos, na composio de contadores de mdulo no trivial, e em RAMs

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 42 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Descodificao /

Page 43 of 119

10e Projecto

hora de abordar Transcodificadores, isto : circuitos que aceitam informao em um cdigo e cujas sadas
apresentam essa informao em um outro cdigo. Qui o melhor seja partir de um Projecto concreto...
Considere-se uma fonte de informao que est gerando dgitos codificados no cdigo de Gray (ou binrio
reflectido); pretende-se que eles sejam apresentados visualmente, atravs de um display de 7-segmentos; admita-se
que, para o efeito, se dispe j de um descodificador de 7-segmentos (o alvo dos Projectos precedentes).
Ao lado, esquematiza-se a arquitectura global do circuito:
direita, encontra-se o display de 7-segmentos;
Imediatamente sua esquerda, encontra-se um descodificador de 7-segmentos: para cada dgito codificado em
BCD que receba, as sadas sinalizam os segmentos a acender;
esquerda dele, encontra-se um Transcodificador: recebe nas entradas {G3 G2 G1 G0} dgitos codificados no
cdigo de Gray, e apresenta-os nas sadas {D3, D2, D1, D0}, porm codificados em BCD.
A questo : como ser esse Transcodificador?
A modos de lembrete, apresenta-se esquerda a codificao em binrio reflectido dos dgitos decimais e
direita a correspondente codificao em BCD.
Ao lado, apresentam-se duas estratgias de desenho do Transcodificador:
A primeira a estratgia clssica (as expresses simplificadas so deduzidas dos mapas de Karnaugh):
Considere-se, por exemplo, o dgito 5: ele codificado 0111 em binrio reflectido, e 0101 em BCD. O que
se pretende que, quando s entradas do Transcodificador se apresentarem os valores {G3=0, G2=1, G1=1, G0=1},
as sadas tomem os valores {D3=0, D2=1, D1=0, D0=1}; ora, 0111 remete para as clulas numeradas 7 dos
Mapas de Karnaugh das sadas {D3, D2, D1, D0} pelo que o que h a fazer inscrever 0101 nessas clulas
Repetindo este raciocnio para os restantes dgitos, no final resta deduzir as expresses algbricas simplificadas
das sadas, vid ao lado.
A segunda estratgia baseia-se no sbio emprego dos circuitos que ultimamente se abordaram: codificadores
e descodificadores.
A primeira etapa reflecte o enunciado a que se chegou acima: para materializar uma qualquer sada de um
circuito digital, basta aplicar as suas entradas a um descodificador, etc.. No caso presente, em que as entradas so
{G3 G2 G1 G0} so quatro, isso traduz-se em aplicar-lhes um descodificador binrio 4:16, vid ao lado.
Adivinha-se o resto: para cada uma das sadas {D3, D2, D1, D0}, ligar a um OR as sadas do descodificador que
geram os mintermos que so pertinentes a essa sada! Mas h uma maneira bem mais cmoda:
O descodificador binrio tem o seguinte funcionamento: para cada combinao entrada, activa uma e uma s
sada O que convinha agora o inverso: um circuito em que uma e uma s das entradas est activa, e que gera
nas suas sadas o cdigo dessa entrada mas esse funcionamento, constatou-se na sesso precedente, o de um
codificador. No caso, em que o cdigo alvo o BCD, convir usar um codificador binrio 16:4, vid ao lado.
Resta interligar o descodificador ao codificador Para apreender como faz-lo, reveja-se o caso do dgito 5:
admita-se que a fonte de informao acaba de gerar o dgito 5; ento, ir surgir entrada do descodificador o
cdigo binrio reflectido de 5 que 0111; mas, este sendo o cdigo binrio de 7, depreende-se que a sada
do descodificador binrio que ir ficar activa a numerada 7;
entretanto, e pois que o dgito gerado pela fonte de informao 5; dever ser 0101 (o cdigo BCD de 5)
o que dever apresentar-se nas sadas do codificador; mas, sendo 0101 o cdigo binrio de 5, depreende-se que
a entrada do codificador binrio que dever ficar activa a numerada 5.
Pretendendo-se activar a entrada 5 do codificador e pois que ento a (nica) sada do descodificador que
est activa a numerada 7 , o que se dever fazer ligar essa sada 7 entrada 5, vid ao lado.
Repetindo este raciocnio para os restantes dgitos, conclui-se a interligao do descodificador ao codificador.
(Repare-se que, no esquema, se denotaram com setas algumas das interligaes. Elas assinalam casos em que o
fluxo de bits se faz de baixo para cima - em vez de se fazer de cima para baixo, como a praxe normal)
A terminar: um codificador basta-se em ORs - pelo que o esquema descodificador + codificador acaba por
ser to-somente um caso particular do enunciado supracitado: para materializar uma sada , basta aplicar a
um descodificador e ligar a um OR as sadas do descodificador

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 44 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Multiplexagem

Page 45 of 119

/ 11a Projecto

Esta sesso versa a Multiplexagem, e a operao inversa, a Desmultiplexagem. Como todas as outras sesses, irse- desenrolar a partir de um Projecto concreto...
Considere um fornecedor que est armazenando oito produtos em outros tantos silos. Cada um deles dispe de
um sensor que comunica ao Centro de Controlo se o nvel do produto est ou no acima do limiar mnimo de
reposio. No conjunto, por conseguinte, o Centro recebe 8 inputs. Para discernir o que se passa num silo, o
operador dispe de um circuito com botes de seleco...
Ao lado, esquematiza-se o circuito como caixa preta:
Ele disponibiliza oito entradas de dados para receber as informaes binrias (acima do limiar, ou no) que
provm dos sensores dos silos; esto numeradas, de cima para baixo: {0, 1, 2, 3, , 7};
A sada, Z, destina-se a apresentar ao operador a informao recebida numa dessas entradas;
Para o operador seleccionar em qual dos oito silos/entradas est interessado, so-lhe oferecidas log28=3
entradas de seleco; esto rotuladas com ndices decrescentes de baixo para cima: {A2, A1, A0} em que o
literal A remete para uma outra designao para essas entradas, que comum no jargo anglo-saxnico: Address.
{A2, A1, A0} devem veicular o cdigo binrio do nmero que identifica a entrada de dados cujo valor (recebido
do sensor) deve ser transferido para a sada. Concretizando: se, por exemplo, se forar {A2=0, A2=1, A2=1}, ento
(e pois que 011 o cdigo binrio de 3), Z deve tomar o valor lgico que ento se estiver apresentando na
entrada de dados numerada 3.
Um circuito assim denomina-se de Multiplexer. Tem uma s sada, e entradas de dois tipos:
entradas de dados para receber informaes binrias (0s e 1s);
entradas de seleco/endereo para seleccionar/enderear uma entre essas entradas de dados.
A sada reproduz o valor lgico que estiver na entrada seleccionada (sendo comum, e aceitvel, a expresso o
valor na entrada de dados seleccionada transferido/transmitido para a sada desde que se subentenda que isso
no remove o valor daquela entrada: ele continua l...).
Resta averiguar: como ser um multiplexer l por dentro? Convm, claro, uma soluo genrica em
particular, no h que ficar restritos a 3+8 entradas: o alvo ser um multiplexer com n entradas de seleco e m=2n
entradas de dados.
A sada segue a seguinte regra: uma combinao das n entradas de seleco ser interpretada como um cdigo
binrio e ser transferido para a sada o valor lgico que se encontrar na entrada de dados identificada com o
nmero que esse cdigo representa.
Ora, mesmo para as 3+8=11 entradas que o Projecto entre mos requere, isso conduz a um Mapa de Karnaugh
com 211=2048 clulas, o que mais do que qualquer um est disposto a suportar
Adivinha-se o mtodo que se ir usar: desenhar um multiplexer com uma entrada de seleco, e depois outro
com duas entradas e, reflectindo sobre os Circuitos logrados, generalizar para multiplexers de maiores
dimenses...
O que se vai seguir precisamente a aplicao desse mtodo

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 46 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Multiplexagem

Page 47 of 119

/ Multiplexers

Como ser um multiplexer, l por dentro?


Caso do multiplexer 2:1 i.e., com 1 entrada de seleco (A) e 2 entradas de dados ({D1, D0})
Vid ao lado o respectivo mapa de Karnaugh ( perda de tempo comear por preencher a Tabela de Verdade):
esquerda, dispe-se uma coluna, representando a entrada de seleco, A; no topo, dispem-se duas linhas,
representando as duas entradas de dados {D1, D0} (ficando por baixo a de menor ndice, D0);
o preenchimento das clulas trivial: quando A=0, deve transferir-se para a sada, Z, o valor que se
encontrar na entrada D0 com o que a primeira linha do Mapa acaba por ser uma cpia da linha D0; por
razes anlogas, a segunda linha do Mapa vem a ser uma cpia da linha D1;
a partir do mapa, pacfica a expresso simplificada de Z, e o correspondente logigrama, vid ao lado duas
alternativas: uma gerada directamente a partir dessa expresso (um inversor, um plano de ANDs e um OR), e uma
outra em que o inversor substitudo por um descodificador 1:2.
Recordando o intermezzo sobre Enabling/Disabling, em cada AND, a entrada provinda do descodificador pode
ser entendida como entrada enable: o AND ficar activado sse essa entrada advir activa. E, porquanto s uma
sada do descodificador poder estar activa, fica garantido que em cada instante s um dos ANDs estar activado;
a sua sada ser o valor que se apresentar na entrada Di e ser ele o valor que a sada Z do OR ir apresentar.
Caso do multiplexer 4:1 i.e., com 2 entradas de seleco {A1, A0} e 4 entradas de dados {D3, D2, D1, D0}
Um mapa de Karnaugh para tantas variveis de entrada (6) suficientemente extenso para um parntesis
Reveja-se como se construiu o mapa de Karnaugh para o multiplexer 2:1: a linha i do Mapa uma cpia da
linha Di. Isso convida a elaborar uma assim designada Tabela de Verdade condensada/reduzida: esquerda,
dispe-se uma coluna, representando a entrada de seleco, A; mas j se no vislumbram as linhas representando
as entradas de dados {D1, D0}: em vez delas, preenche-se de imediato a coluna representando a sada Z em que,
linha a linha, e em vez de 0s e 1s, se inscreve a designao da entrada de dados que deve surgir em Z.
natural a questo: dada uma Tabela condensada, como ser a expresso algbrica da sada? A que se
encontrou para o multiplexer 2:1 sugere que ela ser a soma das expresses nas linhas da coluna que representa a
sada, ponderadas pelos correspondentes mintermos. Esta assero habilita a escrever num pice a Tabela
condensada para o multiplexer 4:1, vid ao lado e de imediato a expresso simplificada da sada, Z, e, enfim, o
respectivo logigrama (no caso, sob a forma de um descodificador 2:4 seguido de um plano de ANDs, e de um OR).
Intui-se o seu funcionamento: dada uma combinao das entradas, {A1, A0}, ela interpretada como o cdigo
binrio dum nmero, seja i, e fica activa uma s sada do descodificador: aquela numerada com i; a sada
ser o valor na entrada interligada a esse AND e que aquela cujo ndice esse nmero, ou seja, Di.
Caso do multiplexer 8:1 i.e., com 3 entradas de seleco e 8 entradas de dados:
O leitor dever ser capaz de por si s escrever a expresso da sada e o respectivo logigrama
J se referiu a Standard 91-1984 para a interpretao de esquemas. Ao lado exemplifica-se a sua aplicao a
multiplexers. Todos tm um qualificador geral, MUX. As entradas de seleco so activas a High, e identificam,
com G, as entradas que afectam; as entradas de dados so activas a High, e as entradas enable so activas a Low
1. SN74157 materializa quatro multiplexers 2:1, partilhando uma entrada enable e uma entrada de seleco;
G1 especifica que ela afecta as entradas de dados numeradas com 1 (isto : todas) o que acarreta o seguinte
funcionamento: para as sadas dos multiplexers so transferidos os valores que se encontrarem nas entradas de
dados numeradas 1 ou 1 , consoante a entrada de seleco estiver, respectivamente, activa ou inactiva.
2. SN74153 materializa dois multiplexers 4:1, cada qual com uma entrada enable. As entradas de dados so
numeradas: {0, 1, 2, 3}, de cima para baixo. Eles partilham duas entradas de seleco; G 0/3 especifica que
elas afectam as entradas de dados numeradas {0, 1, 2, 3}. Uma combinao dessas entradas de seleco
interpretada como um cdigo binrio em que as posies de maior e menor peso correspondem s entradas
numeradas, respectivamente, 1 e 0. Em cada multiplexer, ser transferido para a sada o valor lgico que se
encontrar na entrada de dados identificada com o nmero que esse cdigo representa.
Nos dois smbolos, especificou-se s o multiplexer no topo: subentende-se que os restantes so especificados de
um modo igual Ademais, so encabeados por uma forma grfica especfica (que inclui o qualificador MUX e as
entradas de seleco, G), para denotar que se trata de um bloco de controlo comum aos vrios multiplexers.

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 48 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Multiplexagem

Page 49 of 119

/ rvores de Multiplexers

O multiplexer um elemento comum em sistemas digitais. Pense-se, por exemplo, na visualizao de um


texto num computador: para apresentar o prximo caracter, tem que o capturar entre os, eventualmente, milhes de
clulas da sua memria; isso sugere um multiplexer com milhes de entradas Dir-se-: pois que se construa um
multiplexer assim!. Mas essa sugesto tem um calcanhar de Aquiles: mesmo para uma memria de somente um
milho (220) de clulas, o OR necessitaria 20 entradas o que, ao momento da escrita destas linhas, excessivo:
urge investigar como, com integrados que o mercado disponibiliza, construir um multiplexer com muitas entradas!
A estratgia adiante anloga seguida para um descodificador de muitas entradas: entender a multiplexagem
n:1 como multiplexagens consecutivas, o mesmo dizer uma cascata de multiplexers: os primeiros cujas entradas
de seleco so os bits de menor peso, , os ltimos cujas entradas de seleco so os bits de maior peso
Por mor de simplificao, ao lado esquematiza-se esta arquitectura para o 11a Projecto, que remete para um
multiplexer de 3 entradas de seleco {A2, A1, A0} e 8 entradas de dados {D7, D6, , D1, D0}, com base em
multiplexers 2:1 e 4:1 (com entradas e sadas activas a High); compreendendo-a, o leitor poder desenhar
multiplexers de maiores dimenses ou com base em outros multiplexers
A primeira etapa (e pois o objectivo desenhar um multiplexer de 8 entradas de dados) dispor dois
multiplexers 4:1, um por baixo do outro; designem-se eles de {N, S} e numerem-se-lhes as entradas de dados, de
cima para baixo: {0, 1, 2, 3}; elas ficam sendo as entradas de dados do multiplexer 8:1 em vista.
Porquanto o alvo desenhar um multiplexer, h que garantir que a cada momento se escolhe uma s das oito
entradas de dados. Logra-se isso com um circuito que permita seleccionar entre duas sadas: a de N e a de S.
Isso explica a segunda etapa: justapor ao par de multiplexers {N, S} um multiplexer 2:1, seja E e ligar as
sadas daqueles s entradas de dados desse multiplexer; a entrada de seleco de E garante que para a sua sada
ser transferida uma s das suas entradas de dados {0, 1} o mesmo dizer a sada de N ou a sada de S, ou
seja, uma s de todas as entradas de dados dos multiplexers {N, S}.
A terceira etapa adivinha-se: ligar as entradas {A2, A1, A0} s entradas de seleco dos multiplexers: A2
fica ligado entrada de seleco de E e {A1, A0} ficam ligados s entradas de ambos os multiplexers N e S.
Para apreciar como funciona a arquitectura em rvore a que se chegou, considere-se que nas suas entradas
{A2, A1, A0} se fora a combinao 110 e acompanhe-se o que vai ocorrendo da esquerda para a direita
pressuponha-se que as entradas de dados esto numeradas {0, 1, 2, , 6, 7} de cima para baixo;
pois que A1=1 e A1=0, ser transferido para as sadas de {N, S} os valores aplicados s suas entradas
numeradas 2 e que so D2 e D6, respectivamente;
pois que A2=1, ser transferido para a sada Z de E o valor na sua entrada numerada 1 e que vem a ser o
valor sada de S, que D6;
isto ; a sada do multiplexer 8:1 o valor na entrada de dados numerada 6, cujo cdigo binrio 110 e
que precisamente a combinao de bits que se forou nas entradas {A2, A1, A0}
Notas:
a raz da rvore, E, encontra-se direita e nela que se interliga a entrada de maior peso, A2;
as folhas, {N, S}, encontram-se esquerda e a elas que se ligam as entradas de menor peso, {A1, A0};
e se o multiplexer fosse de uma dimenso que justificasse interpor outros multiplexers mais, entre a raz e as
folhas, teria que se lhes ligar entradas de peso sucessivamente crescente (da esquerda para a direita).
Estas convenes no so ao acaso: decida o leitor outra coisa (por exemplo: ligar A1 a E e ligar {A0, A2} a
{N, S}) e ir constatar que, se forar entrada a combinao 110, a entrada de dados que ser transferida para
a sada j no ser a numerada 6
(Abra-se um parntesis: em vez do multiplexer 2:1, poder-se-ia ter usado, bem entendido, um OR de dois ANDs
providos, cada um, de uma entrada Enable)
Ao lado, apresenta-se o smbolo IEC (isto , conforme Standard 91-1984) do integrado SN74151, um
multiplexer 8:1; de notar o facto de apresentar a sada sob ambas as formas: normal e complementar.
Deixa-se ao leitor investigar como construir outros multiplexers, como seja o multiplexer 16:1, com base em
multiplexers 4:1 ou numa sbia combinao de multiplexers de dimenses distintas

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 50 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Multiplexagem

Page 51 of 119

/ 11b Projecto

Sabendo como construir um multiplexer com qualquer nmero de entradas de seleco, hora de meditar sobre
a assero em que se baseou o desenho do multiplexer 4:1: que a sada dum multiplexer ser a soma das
expresses nas sucessivas linhas da coluna que representa a sada, ponderadas pelos correspondentes mintermos
Este enunciado evoca a 1 Forma Cannica: esta uma soma dos mintermos correspondentes s linhas em que
a sada assume o valor 1 Pelo que inevitvel investigar: poder um multiplexer facilitar o desenho do
logigrama duma funo? Eis o que se vai abordar e, como da praxe, em torno de um Projecto concreto:
Considere-se uma viatura com um alarme que recebe informaes de quatro sensores; eles so activados
quando o Motorista se senta, fecha a Porta, pe o Cinto e insere a chave (Key)
As condies para o alarme tocar so as seguintes:
a chave est inserida, mas a porta est aberta;
a porta est fechada, o motorista est sentado e a chave est inserida, mas ele ainda no ps o cinto.
Aceite a codificao ao lado para a activao do alarme e para as informaes provenientes dos sensores,
pacfica a construo da Tabela de Verdade de A em funo de {P, K, M, C}, vid ao lado
Ao lado, apresentam-se duas estratgias de desenho do Circuito:
A primeira a estratgia clssica (as expresses simplificadas so deduzidas dos Mapas de Karnaugh):
Para o leitor, chegar ao resultado deve ser trigo limpo farinha amparo: um OR de dois termos de produto
A segunda estratgia baseia-se no sbio emprego de um multiplexer.
O ponto de partida a expresso da sada na 1 Forma Cannica: como a soma dos mintermos correspondentes
s linhas em que a sada assume o valor 1 no caso, os mintermos m4, m5, m6, m7 e m14. Isso
reconhecido, A pode reescrever-se sob a forma:
m00+m10+m20+m30+m41+m51+m61+m71+m80+m90+m100+m110+m120+m130+m141+m150
Mas esta expresso uma soma de bits ponderados por mintermos e esses bits so precisamente os que
preenchem as sucessivas linhas da coluna que representa a sada: 0000111100000010; o que, recordando a
assero supracitada, habilita a concluir: para concretizar o circuito, basta um multiplexer 16:1:
em cujas entradas de seleco se foram as entradas {P, K, M, C}
e a cujas entradas de dados se aplica aquele padro de bits que a coluna A na sua Tabela de Verdade.
Eis um outro modo de o deduzir:
admita-se que a combinao das entradas {PKMC} 0110. Ora, 0110 o cdigo binrio de 6, o que
significa: quando ocorrer aquela combinao de entradas, o valor a transferir para a sada do multiplexer ser o
que se encontrar na entrada numerada 6. Mas, esclarecendo a Tabela de Verdade que, para aquela combinao
das entradas, a sada deve ser 1, isso s fica garantido se se aplicar 1 nessa entrada 6;
admita-se, porm, que a combinao das entradas 1100. Ora, 1100 o cdigo binrio de 12, o que
significa: nesse caso, o valor a transferir para a sada do multiplexer ser o que se encontrar na entrada numerada
12. Mas, esclarecendo a Tabela de Verdade que, para essa combinao das entradas, a sada deve ser 0, isso s
fica garantido se se aplicar 0 nessa entrada 12;
generalizando: para concretizar o circuito, bastar aplicar os sucessivos bits da coluna A da sua Tabela de
Verdade s entradas de dados de um multiplexer 16:1.
Recapitulando o percurso trilhado at agora, oferecem-se trs estratgias para o desenho de um circuito:
a dita clssica, em que se constri um mapa de Karnaugh e da se deduz a expresso simplificada da sada;
o uso de um descodificador das entradas e de um OR a que se aplicam as sadas do descodificador que
correspondem s combinaes das entradas para as quais, na Tabela de Verdade da sada, a respectiva coluna 1;
o uso de um multiplexer, em cujas entradas se aplicam os bits da coluna da sada na sua Tabela de Verdade.
Cabe ao projectista, face a cada Projecto, decidir qual a estratgia a usar. Intui-se que, se o circuito apresentar
vrias sadas, a que se suporta num descodificador tender a ser a mais interessante; caso contrrio, aparentam ser
mais interessantes as outras duas estratgias acima ou uma sbia combinao delas: o que se vai abordar

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 52 of 119

Vitor M. P. Vargas / IST


Multiplexagem

Sistemas Digitais (Part II)

Page 53 of 119

/ E se no houver os Multiplexers que queremos?

A Tabela de Verdade do 10b Projecto desdobra-se por 16 linhas, vid ao lado o que, j se viu, remete para um
multiplexer 16:1. Admita-se ento que se pretende materializar de facto o circuito mas que no se consegue
encontrar no mercado um multiplexer assim O mais que consegue arranjar so multiplexers 8:1 ou 4:1
Dir o leitor: j atrs se investigou como, com integrados que o mercado disponibiliza, construir um
multiplexer com muitas entradas?, pelo que bastar aplicar o mtodo encontrado: criar uma rvore de
multiplexers. No caso, isso volver-se-ia em implantar dois multiplexers 8:1 e um OR de dois ANDs, e um NOT
Mas existe uma alternativa, com menos chips. Ela passa por condensar/reduzir a Tabela de Verdade:
Primeiramente, selecciona-se um subconjunto das variveis de entrada {P, K, M, C}; o mais cmodo ser
optar pelas de maior peso, {P, K, M}, isto : descartar a de menor peso, C;
Em segundo lugar, escreve-se a Tabela de Verdade da sada num formato a duas dimenses: dispem-se
esquerda trs colunas, correspondendo s variveis de entrada seleccionadas, e uma linha no topo, correspondente
outra varivel (convm deixar um espao razovel entre a coluna que ir conter os valores da funo A, e
aquelas associadas a C, vid ao lado). Segue-se o preenchimento de tal Tabela:
A coluna A da Tabela de Verdade inicial transposta para esta Tabela a duas dimenses: o primeiro par de
valores, 00, copiado para a primeira linha abaixo dos valores {0 e 1} que C pode tomar; o segundo par de
valores, 00, copiado para a segunda linha; e assim sucessivamente Resumindo, os valores da coluna A da
Tabela inicial so copiados para as colunas associadas a C, da esquerda para a direita e de cima para baixo
Por ltimo, preenche-se a coluna da sada A:
Repare-se na primeira linha da Tabela a duas dimenses: ela diz que, quando {P, K, M} forem 000, a
sada A tomar o valor 0 independentemente do valor de C! Isto sugere escrever 0 na primeira linha de A;
e, pela mesmssima razo, se far o mesmo para as linhas em que {P, K, M} so 001, 100, 101 e 110;
quanto s linhas em que {P, K, M} so 010 e 011, elas dizem que, ento, a sada A tomar o valor
1 independentemente do valor de C! Isto sugere escrever 1 nas correspondentes linhas de A;
Resta a ltima linha, em que {P, K, M} 111, ela diz que, ento, a sada A tomar um valor que
exactamente o inverso de C! Isto sugere escrever C na correspondente linha de A.
A coluna A assim obtida condensa o comportamento da sada do circuito isto , especifica-o atravs de,
apenas, 8 linhas. E habilita de imediato a desenhar o seu logigrama atravs de um multiplexer 8:1 em cujas
entradas se aplicam os sucessivos valores na coluna A com a nica ressalva de que, quando ele for C ,
entrada aplicada a sada de um inversor da entrada C, vid ao lado.
Por mor da simplicidade, mister um parntesis: para desenhar o logigrama a que se chegou, claro que no
necessrio condensar a Tabela de Verdade. Basta meditar sobre os sucessivos pares de linhas da Tabela inicial
Por exemplo, o ltimo par corresponde aos casos em que {P, K, M, C} se volvem em 1110 e 1111 que
diferem s na posio de menor peso: as posies de maior peso so iguais a 111; ora, este o cdigo binrio de
7, isto : esse par de linhas tem a ver com a entrada numerada 7 do multiplexer. Para se discernir o que se lhe
deve ligar, repare-se nos valores que a coluna A contem nesse par de linhas: 1 (precisamente quando a varivel
de menor peso 0) e 0 (quando a varivel de menor peso 1). Ou seja: apresenta o inverso de C pelo que
se deve forar C na entrada 7 do multiplexer Isto : para desenhar o logigrama, basta pensar bem
Em ordem a chegar a uma importante concluso, reavalie-se o percurso acima: concretizou-se um circuito de 4
variveis com, somente, um multiplexer 8:1 e um inversor. Recordando que, com uma varivel, X, se podem
conceber apenas 4 funes booleanas distintas (a saber: g0=0, g1=X, g2= X e g3=1), pacfica a generalizao:
pode materializar-se qualquer circuito de n entradas com um multiplexer n-1:1 e, quando muito, um NOT!
E, teimar-se-, se, aps lograr o logigrama acima, se constatasse que, afinal, o mercado s faculta multiplexers
4:1? A resposta intui-se: condensar a Tabela condensada. Tendo seleccionado as variveis de entrada de maior
peso, os valores de A na Tabela condensada acima seriam transpostos para as duas colunas associadas a M
aps o que se procederia ao preenchimento da coluna A, e, enfim, ao desenho de um logigrama. Nele, e ademais
do multiplexers 4:1, est presente um AND e um inversor que podero ser substitudos por um multiplexer 2:1
(Actualize-se o que se acentuou j: claro que para chegar a este logigrama bastaria raciocinar sobre os
sucessivos quartetos de linhas da Tabela inicial)

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 54 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Multiplexagem

Page 55 of 119

/ 11c Projecto

hora de abordar a Desmultiplexagem. Qui seja prefervel faz-lo a partir de um Projecto concreto...
Considere uma Adega em que as uvas so prensadas e distribudas a treze Cubas de fermentao atravs de um
cano nico seguindo-se a seguinte filosofia: em cada momento, s uma delas que estar enchendo. Cada cuba
comporta uma vlvula de entrada que pode assumir trs posies: fechada, a meio gs e totalmente aberta. O
abrir e fechar das vlvulas comandado a partir do Centro de Controlo da Adega.
O Circuito que comunica sinais s vlvulas ser pacfico:
tendo que se sinalizar 13 vlvulas, so precisas, no mnimo, log2134 entradas de seleco, {A3, A2, A1, A0},
para enderear cada uma delas;
porquanto cada uma das vlvulas pode assumir trs posies, so precisas, no mnimo, log232 entradas de
dados, {V1, V0}.
Subentendendo-se que nas entradas de seleco se deve aplicar o cdigo binrio da vlvula seleccionada, e
aceitando-se a codificao ao lado para as posies duma vlvula, resta desenhar o circuito Mas, ateno: ele
ter 6 entradas, o que significa um mapa de Karnaugh com no poucas clulas: melhor usar a massa cinzenta
Uma primeira observao, bvia, a de que se pode compreender o circuito como o paralelo de dois assim
designados Demultiplexers: o do topo recebe/envia V0, e o de baixo recebe/envia V1 (o que est conforme
conveno habitual: de apresentar as entradas com pesos sucessivamente crescentes de cima para baixo).
Um Demultiplexer funciona de modo inverso ao de um Multiplexer:
enquanto um Multiplexer tem vrias entradas de dados e uma sada, um Demultiplexer tem uma s entrada
de dados, mas vrias sadas;
entretanto, ambos disponibilizam entradas de seleco/endereo: no multiplexer, para seleccionar/enderear
uma entre vrias entradas, e no caso do Demultiplexer para seleccionar uma entre vrias sadas
No Demultiplexer, a sada seleccionada reproduz o valor lgico que estiver na entrada (sendo comum, e
aceitvel, a expresso o Demultiplexer transfere/transmite o valor na entrada de dados para a sada seleccionada
desde que se subentenda que isso no remove o valor daquela entrada: ele continua l...).
Resta averiguar: como ser um demultiplexer l por dentro? Convm, claro, uma soluo genrica em
particular, no h que ficar restritos a 3 entradas de seleco: o alvo ser um multiplexer com n entradas de
seleco e m=2n sadas.
Uma combinao das n entradas de seleco ser interpretada como o cdigo binrio do nmero identificador
de uma das sadas e ser transferido para ela o valor lgico que se encontrar na entrada de dados.
Perseverando na praxis j seguida em outros cenrios, adivinha-se o mtodo que se ir usar: desenhar um
demultiplexer com uma entrada de seleco, e depois outro com duas entradas e, reflectindo sobre os Circuitos
logrados, generalizar para demultiplexers de maiores dimenses...
O que se vai seguir precisamente a aplicao desse mtodo

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 56 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Multiplexagem

Page 57 of 119

/ Demultiplexer

Como ser um demultiplexer, l por dentro?


Caso do demultiplexer 1:2 i.e., com 1 entrada de seleco (A) e 2 sadas (Z1, Z0)
Vid ao lado a respectiva Tabela de Verdade condensada:
esquerda, dispe-se uma coluna, representando a entrada de seleco, A;
ao lado, dispem-se as colunas representando as sadas {Z1, Z0} (ficando direita a de menor ndice, Z0);
o preenchimento destas colunas trivial: quando A=0, o valor que se encontrar na entrada D deve ser
transferido para a sada Z0 (isto , Z0 deve tomar o valor D), permanecendo inactiva a sada Z1; e quando
A=1, o valor na entrada D deve ser transferido para a sada Z1, permanecendo inactiva a sada Z0.
a partir da Tabela, so bvias as expresses simplificadas de {Z1, Z0}, e um logigrama, vid ao lado.
Compare-se esse logigrama com o de um descodificador 1:2; revendo o intermezzo sobre Enabling/Disabling, a
entrada, em cada AND, que procede de D pode ser entendida como entrada enable: o AND ficar activado sse
essa entrada advir activa. Isso significa o seguinte:
- se D=0, ambos os ANDs ficaro inactivados e isso independentemente de A; por outras palavras: seja qual
for a sada seleccionada, ela tomar o valor 0 que afinal o que se pretende: que ela reproduza o valor de D;
- se D=1, ambos os ANDs ficaro activados; mas somente a sada seleccionada tomar aquele valor 1.
Concluindo: um Demultiplexer resolve-se num descodificador com entrada enable, vid ao lado:
o logigrama do circuito, agora concretizado por um descodificador 1:2 em cuja entrada enable se ligou D;
o logigrama de um Demultiplexer 1:4, concretizado por um descodificador 2:4 em cujo enable se ligou D.
J se referiu a Standard 91-1984 para a interpretao de esquemas. Apresenta-se ao lado um exemplo da sua
aplicao a demultiplexers:
SN74139, cujo qualificador geral DMUX, materializa dois demultiplexers 1:4, cada qual com uma entrada
enable (activa a Low) e duas entradas de seleco (activas a High). As sadas, activas a Low, so numeradas. Com
G 0/3 , especifica-se que as entradas de seleco afectam as sadas numeradas {0, 1, 2, 3}, isto : todas.
Em cada demultiplexer, uma combinao das entradas de seleco interpretada como um cdigo binrio em
que as posies de maior e menor peso correspondem s entradas numeradas, respectivamente, 2 e 1. O valor
na sua entrada enable ser transferido para a sada identificada com o nmero que aquele cdigo representa.
Repare-se que se rotulou apenas o demultiplexer que se encontra no topo: subentende-se que aquele que se
encontra por debaixo rotulado de uma maneira exactamente igual
(No mundo dos computadores, o Demultiplexer acaba por ser uma raridade. Em contrapartida, ele assaz usado
nos sistemas de telecomunicaes; para o demonstrar, segue-se uma descrio; ela feita de uma maneira muito
simplificada em particular, deixa de lado os sistemas de comutao , mas que o autor espera que seja suficiente
para realar a larga importncia de Multiplexers e Demultiplexers nas comunicaes:
Considere o leitor cidades entre que se preveja, ao menos em algumas horas do dia, um nmero substancial de
conversaes telefnicas, como sejam Lisboa e Porto. Admita-se que cada uma decorre sob a forma (PCM) de um
fluxo de bits em cada sentido, ao ritmo standard de 64 kbps. Por mor de economia, convir, e em vez de dedicar a
cada uma dois pares de fios - o que se iria traduzir num total de vrios milhares de fios -, compeli-las a partilhar
dois pares de fios: um para o sentido Lisboa Porto, e um outro para o sentido inverso (Mais provavelmente, o
meio de transmisso real ser coaxial, rdio ou fibra, mas isso no retira validade ao que adiante se diz).
Para lograr a partilha referida, usa-se um par Multiplexer/Demultiplexer em cada sentido:
- cada cidade dispe dum centro de transmisso, onde esto ancorados os fios telefnicos provenientes dos
telefones dos faladores envolvidos nas conversaes em curso; os fluxos de bits que por eles chegam,
codificando as suas vozes, so aplicados s entradas de dados dum Multiplexer, cujas entradas de seleco vo
rodando ciclicamente sendo os bits sada transmitidos para a outra cidade, sobre um par de fios multiplexados;
- a outra localidade dispe de um centro de recepo, onde desemboca esse par de fios multiplexados; os bits
nele recebidos so aplicados entrada de dados de um Demultiplexer cujas entradas de seleco vo tambm
rodando ciclicamente; os fluxos de bits nas suas sadas, codificando as vozes dos faladores, so distribudos para
os pertinentes fios telefnicos destinados aos telefones dos ouvintes envolvidos naquelas conversaes)

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 58 of 119

Vitor M. P. Vargas / IST


Multiplexagem

Sistemas Digitais (Part II)

Page 59 of 119

/ Sadas 3-state / Alta Impedncia

Se o Demultiplexer uma raridade no mundo dos computadores, j o Multiplexer aparenta vir a ter uma grande
importncia para tal bastando recordar o exemplo j dado, o dum computador ter que capturar um valor entre os,
eventualmente, milhes de clulas da sua memria. Ora, precisamente, e j compreendida a estrutura interna de um
Multiplexer, isso apela a um OR com milhes de entradas (ou a muitos e muitos ORs). Convm uma alternativa
Para simplificar, que ser pacfica a generalizao da soluo encontrada, considere-se o multiplexer 4:1, vid
ao lado. Nele, encontra-se um descodificador 2:4, quatro ANDs e um OR que, bem vistas as coisas, necessrio
porquanto, e sob pena de cheiro a queimado, no se devem ligar as sadas dos ANDs a um mesmo ponto!
Mas a necessidade agua o engenho e j desde 1971 o mercado oferece chips com sadas, ditas de 3-state ou
de alta-impedncia, que viabilizam o interligar as sadas de mltiplos chips a um mesmo ponto!
Uma sada 3-state uma sada que, alm dos nveis elctricos {Low, High} representando os valores lgicos 0
e 1, apresenta um terceiro estado, de alta impedncia, equivalente a um circuito aberto: por aquela sada no
flui nenhuma corrente elctrica, como se ela, internamente, no estivesse ligada a nada!
Naturalmente, mister controlar essa sada, isto : for-la a funcionar em 3-state ou como sada normal de
bits; isso feito mediante uma entrada comummente designada de output-enable: sse ela estiver inactiva, a sada
considerada no estado de alta impedncia.
Isto compreendido, hora de apresentar casos de chips providos de uma sada 3-state, vid ao lado:
- um primeiro exemplo um AND com sada 3-state: quando a entrada EN est inactiva (a 0), a sada fica em
alta impedncia (High-Z); mas se ela advir activa, a sada fica sendo o AND das entradas
- um segundo exemplo um buffer com sada 3-state: quando a entrada EN est inactiva, a sada fica em alta
impedncia; mas se ela advir activa, a sada reproduz o que estiver na sua entrada
Repare-se que, em ambos os casos, a sada com o comportamento 3-state est, conforme Standard 91-1984,
qualificada com um smbolo que um pequeno tringulo issceles de cabea para baixo.
hora de regressar ao multiplexer 4:1, e averiguar como esta filosofia 3-state o pode simplificar:
numa primeira verso, substituem-se os ANDs por buffers 3-state, e - descartando o OR! - ligam-se as sadas
desses buffers a um nico ponto: a sada Z do multiplexer;
Para apreciar o funcionamento dessa estrutura, admita-se, como exemplo, que em algum momento as entradas
de seleco {A1 A0} so '10 Isso leva a que a nica sada do descodificador 2:4 que advir activa aquela
numerada 2, ficando inactivas as restantes. Ora, estando essas sadas ligadas s entradas enable EN dos buffers
3-state, lcito aduzir que, entre as sadas dos buffers, todas ficaro em alta-impedncia - excepto uma, aquela
etiquetada 10! E, tratando-se de um buffer, essa sada ir reproduzir o valor na sua entrada, D2. Ou seja, Z ir
assumir o valor de D2 que o que se pretende: transmitir para Z o valor na entrada seleccionada, D2.
Mas, perguntar-se-: ser lcito ignorar as sadas dos outros buffers? A resposta : sim, lcito pois que esto
em alta-impedncia: nesse estado, no interferem com coisa nenhuma, como se no estivessem l, nem sequer
existissem!
numa segunda verso, e partindo da verso acima, conservam-se os buffers 3-state, mas o descodificador 2:4
substitudo por dois inversores e um par de buffers 3-state;
Para apreciar o funcionamento destoutra estrutura, admita-se, de novo, que as entradas de seleco so '10, isto
: {A1=1 e A0=0}. Porquanto A0=0, as sadas do primeiro plano de buffers ficaro em alta-impedncia, excepto
aquelas etiquetadas 00 e 10 que reproduziro os valores que ento se encontrarem em, respectivamente, D0 e
D2. E pois que A1=1, no segundo plano de buffers ficar em alta-impedncia a sada numerada 0, que no a
numerada 1 que ir reproduz o valor que ento se encontrar na sua entrada, e que D2.
De novo, foi lcito esquecer as sadas dos outros buffers pois que esto em alta-impedncia
Em sesses adiante, ir-se-o passar em revista outras aplicaes do 3-state: convm mesmo entend-lo bem.

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 60 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Circuitos Aritmticos

Page 61 of 119

/ 12 Projecto

Esta sesso versa Operaes Aritmticas ou mais precisamente, os circuitos que as concretizam: Circuitos
Aritmticos. Como nas outras sesses, ir desenrolar-se a partir de um Projecto concreto...
Considere um termmetro que est assinalando valores de temperatura em graus Celsius (entre 0 e 500).
Pretende-se um circuito que receba esses valores e os converta em graus Kelvin (para um leitor alzheimico:
aproximadamente, 0 Celsius corresponde a 273 Kelvin).
Recordando o percurso at agora feito, este no um problema novo: no fim de contas, trata-se de receber
informaes num dado cdigo e de as traduzir em um outro cdigo e isso remete para um Transcodificador; parte
da sua Tabela de Verdade encontra-se ao lado, deixando-se o termo do seu preenchimento para o leitor mormente
para uma noite em que as insnias sejam mais perseverantes
que, de facto, situando-se os valores recebidos entre 0 e 500, isso volve-se em log25009 entradas; e,
traduzindo-se 500 Celsius em 500+273=773 Kelvin, so necessrias log277210 sadas. Resumindo: qualquer
das estratgias j abordadas (clssica, por descodificador+OR ou por multiplexer) obriga a preencher 10 Tabelas
de Verdade com, cada uma, 29=512 linhas e isso uma razo para olhar o Projecto por um outro ngulo
A converso para graus Kelvin obedece a uma regra simples: adicionar aritmeticamente 273 a cada valor de
temperatura em graus Celsius. Ou seja: pois que o cdigo binrio dum nmero com 3 dgitos decimais se expande
por at 9 dgitos binrios (ou, mais brevemente, bits), o 12 Projecto ficaria resolvido se se dispusesse de um
circuito habilitado a adicionar dois nmeros com 9 bits
A adio de dois nmeros com 9 bits volve-se num resultado com, at, 10 bits. Ou seja: ela remete para a
necessidade de um somador aritmtico com 29=18 entradas e 10 sadas demasiado, h que usar a cabea
Convm revisitar o algoritmo da adio (decimal) aprendido na primria: coloca-se um nmero por baixo de
um outro, alinhados direita; depois, adiciona-se o par de dgitos de menor peso, que o primeiro direita,
originando um resultado e um transporte (Carry, no jargo anglo-saxnico); este adicionado ao segundo par de
dgitos, originando novo resultado e novo transporte; e assim por diante
Isso sugere uma soluo iterativa para o problema entre mos, vid ao lado: interligar em srie/cascata o
nmero necessrio de mdulos de um tipo elementar que o mercado disponibiliza sob o nome de 4-bit Adder:
Esse mdulo comporta 24+1=9 entradas e 4+1=5 sadas:
As entradas so dois inteiros em binrio natural de 4-bit e um transporte
As sadas so um resultado (um inteiro em binrio natural de 4-bit) e um transporte;
Com 4-bit, podem codificar-se em binrio natural os inteiros {0, , 15}:
Diferentemente da adio decimal supracitada, cada mdulo adiciona ento inteiros at 15, inclusive;
O menor e maior valores em que se pode volver a adio de dois inteiros at 15 (e tendo em conta o
transporte originado no mdulo anterior) so 0 e 15+15+1=31 cujos cdigos binrios so 0 0000 e 1 1111: o
resultado um inteiro tambm entre 0 e 15, e o transporte gerado por esse mdulo s pode ser 0 ou 1;
Repare-se que, no esquema apresentado, e conforme recomendao de fazer progredir o fluxo de bits da
esquerda para a direita, o mdulo que lida com os bits de menor peso se encontra esquerda; e,
consequentemente, o mdulo que lida com os bits de maior peso se encontra direita.
Designando de P e Q os dois nmeros a adicionar, e de S o resultado da sua adio, ento:
no primeiro mdulo esquerda, as entradas so os bits de menor peso de P {P3, P2, P1, P0} , os bits de
menor peso de Q {Q3, Q2, Q1, Q0} , e um transporte que , naturalmente, 0; as sadas so os bits de menor
peso de S {S3, S2, S1, S0} e um Transporte;
no segundo mdulo, as entradas so os bits seguintes de P e Q {P7, P6, P5, P4} e {Q7, Q6, Q5, Q4} , e
um transporte que aquele que o mdulo precedente produziu;
e assim por diante
de salientar que o ltimo mdulo produz os bits de maior peso de S: {S12, S11, S10, S9, S8} em que S12
o Transporte que ele mesmo produz.
Esta estrutura aceite, falta saber: como ser um 4-bit Adder l por dentro? o que se vai averiguar, aps um
breve intermezzo sobre como levar a cabo operaes aritmticas nos Sistemas de Numerao de bases 2, 8 e 16

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 62 of 119

Vitor M. P. Vargas / IST


Circuitos Aritmticos

Sistemas Digitais (Part II)

Page 63 of 119

/ Intermezzo: de volta aos bancos da escola

Como adicionar dois nmeros na base 10?


Um exemplo, vid ao lado, poder clarific-lo:
em primeiro lugar, os dois nmeros so dispostos um por cima do outro, alinhados direita;
depois, e da direita para a esquerda, vo-se somando os sucessivos pares de algarismos, um de cada vez,
tendo em conta eventuais transportes Em particular,
1+8=9, o que significa que o dgito mais direita do resultado 9 (e no vai nada);
4+7=11, que excede o maior dgito da base 10, que 9; ento, subtraindo mentalmente a base quele
valor (11-10=1), deduz-se mentalmente 11=1+110, ou seja: o resultado 1, e vai 1 (que mentalmente disposto
por cima do par seguinte)
1+3+6=10, que excede o maior dgito da base 10; ento, subtraindo mentalmente a base quele valor
(10-10=0), deduz-se mentalmente 10=0+110, ou seja: o resultado 0, e vai 1 (que mentalmente disposto por
cima do par seguinte)
e assim sucessivamente, at ter percorrido todos os pares de dgitos dos nmeros
E como adicionar dois nmeros na base 2?
O exemplo ao lado mostra que o algoritmo seguido ser deveras similar, a diferena sendo a base
1+0=1, o que significa que o bit mais direita do resultado 1 (e no vai nada);
1+1=2(10), que excede o maior bit da base 2, que 1; ento, subtraindo mentalmente a base quele valor
(2-2=0), deduz-se mentalmente 2=0+12, ou seja: o resultado 0, e vai 1 (que mentalmente disposto por cima
do par seguinte)
1+0+0=1, o que significa que o resultado 1 (e no vai nada);
e assim sucessivamente, at ter percorrido todos os pares de bits dos nmeros
E como adicionar nmeros nas bases 8 ou 16?
Ao lado, apresentam-se exemplos a propsito: o algoritmo seguido o mesmo, a diferena sendo a base
E como subtrair ou multiplicar nmeros nas bases 2, 8 ou 16?
Ao lado, apresentam-se exemplos destas operaes aritmticas, deixando-se ao leitor efectu-las por si mesmo e
conferir da validez dos resultados encontrados

O exemplo da adio aritmtica na base 2 sugere uma estratgia para desenhar um 4-bit Adder:
A primeira etapa diz respeito adio do primeiro par de bits dos nmeros dados, direita: convir desenhar
um circuito que, acolhendo tais bits, seja capaz de produzir o resultado e o transporte pertinentes A um circuito
assim d-se o nome de semi-somador (Half-Adder);
A etapa seguinte diz respeito adio de qualquer outro par de bits dos nmeros dados com o transporte
provindo do par que o precede: convir desenhar um circuito que, acolhendo aqueles dois bits e tambm o bit de
transporte, seja capaz de produzir o resultado e o transporte pertinentes A um circuito assim d-se o nome de
somador completo (Full-Adder), ou simplesmente somador;
A ltima etapa consiste na concatenao de quatro somadores completos
( claro que, se algum dos nmeros dados tiver mais que quatro bits, ser necessrio, para os adicionar,
concatenar dois ou mais 4-bit Adders)

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 64 of 119

Vitor M. P. Vargas / IST


Circuitos Aritmticos

Sistemas Digitais (Part II)

Page 65 of 119

/ Semi-somador / 1/2 Adder

Tendo em vista o desenho de um 4-bit Adder, a primeira etapa consiste no seguinte: o desenho de um circuito
que receba os dois bits menos significativos, sejam {Q, P}, e produza o resultado da sua soma aritmtica, S, e o
transporte, C (denotando Carry) a somar aos bits seguintes.
A Tabela de Verdade encontra-se ao lado:
como habitual, esquerda dispem-se duas colunas, com todas as combinaes que o par de bits {Q, P}
pode assumir;
logo sua direita, e tendo interpretado esse par de bits como smbolos da base 2, encontra-se o resultado da
sua soma aritmtica;
enfim, dispem-se duas colunas, {C, S}, que contm o cdigo binrio desse resultado, e por conseguinte
representando os correspondentes valores que devero assumir o resultado da soma e o transporte
Da Tabela de Verdade, deduzem-se as expresses booleanas de {C, S}, que acabam por ser respectivamente o
AND e o XOR das entradas {Q, P} do Circuito remetendo para o logigrama com gates elementares ao lado
Alternativamente, e porquanto as sadas do circuito so duas, pode recorrer-se estratgia de desenho
envolvendo um descodificador 2:4 e um OR: C=m3 e S=m1+m2, vid ao lado

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 66 of 119

Vitor M. P. Vargas / IST


Circuitos Aritmticos

Sistemas Digitais (Part II)

Page 67 of 119

/ Somador completo / Full Adder

Continuando a ter em mente um 4-bit Adder, a segunda etapa consiste no seguinte: o desenho de um circuito
que receba dois bits genricos ( esquerda dos menos significativos), sejam {Q, P}, e o transporte que vem detrs,
Cin e produza o resultado da sua soma aritmtica, S, e o transporte, Cout, a somar aos bits seguintes.
A Tabela de Verdade encontra-se ao lado:
Como habitual, esquerda dispem-se trs colunas, com todas as combinaes que o trio de bits {Cin, Q, P}
pode assumir;
Logo sua direita, e tendo interpretado esse trio de bits como smbolos da base 2, encontra-se o resultado da
sua soma aritmtica;
Enfim, dispem-se duas colunas, {Cout, S}, que contm o cdigo binrio desse resultado, e por conseguinte
representando os correspondentes valores que devero assumir o resultado da soma e o transporte para a frente
Da Tabela de Verdade, deduzem-se as expresses booleanas de {Cout, S}, que se traduzem no logigrama com
gates discretas ao lado
Alternativamente, e porquanto as sadas do circuito so duas, pode recorrer-se estratgia de desenho
envolvendo um descodificador 2:4 e dois ORs: das Tabelas de Verdade, deduzem-se as expresses
Cout=m3+m5+m6+m7 e S= m1+m2+m4+m7, vid ao lado
Poder-se- tambm, bvio, recorrer estratgia de desenho envolvendo dois multiplexers 1:4 e um NOT (o
que invoca a condensao mental da Tabela): Cout = (0, Cin, Cin, 1) e S=(Cin, C in , C in , Cin), vid ao lado
(Abra-se um parntesis no sentido de justificar tal logigrama: para, por exemplo, a combinao em que {Q, P}
se volvem em 10, que o cdigo binrio de 2,
Cout pode assumir dois valores, a saber: 0 quando Cin=0 e 1 quando Cin=1; resumidamente, Cout vem a
ser precisamente igual a Cin: na entrada 2 de Cout deve aplicar-se Cin;
S pode assumir dois valores, a saber: 1 quando Cin=0 e 0 quando Cin=1; resumidamente, S vem a ser o
inverso de Cin: na entrada 2 de S deve aplicar-se C in )
O ltimo logigrama recorre a semi-somadores: sustenta-se no facto de um semi-somador oferecer duas
sadas, {C, S}, que so respectivamente o AND e o XOR das suas entradas {Q, P}.
Ora, a expresso booleana de S um XOR das trs entradas, {Cin, Q, P}, e isso pode lograr-se com a
cascata de dois semi-somadores: um primeiro que produza o XOR de duas delas, {Q, P}, e um segundo que
devolva o XOR da sada do primeiro com a terceira entrada, Cin;
E a expresso booleana de Cout um OR de dois ANDs; um entre {Q, P} que pode obter-se na sada C
do primeiro semi-somador; e um outro entre Cin e o XOR de {Q, P} que pode obter-se na sada S do primeiro
semi-somador.

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 68 of 119

Vitor M. P. Vargas / IST


Circuitos Aritmticos

Sistemas Digitais (Part II)

Page 69 of 119

/ Somador 4-bit Iterativo (Ripple Carry Header)

Esto reunidas as condies para desenhar um 4-bit Adder, isto : um circuito que receba dois cdigos binrios
expandindo-se por 4-bit e cuja sada seja o cdigo binrio da sua soma aritmtica
De facto, e pressupondo construdo um somador completo (ou, mais abreviadamente, somador), com entradas
{Cin, Q, P} e sadas {Cout, S}, ser suficiente proceder sua interligao em srie:
- o primeiro esquerda recebe os bits de menor peso; para significar que ento ainda no h nenhum transporte
a ter-se em conta, fora-se 0 na entrada Cin;
- o somador seguinte recebe os bits seguintes; todavia, agora h que ter em conta o transporte resultante da
adio dos bits menos significativos; para o efeito, entrada Cin deste segundo somador deve interligar-se o
transporte gerado pelo primeiro somador, isto : Cout;
- intui-se como proceder com os restantes somadores: cada um deles recebe o par de bits seguintes; a sua
entrada Cin recebe o transporte Cout gerado pelo somador precedente.
- as sadas, sucessivamente {S0, , S3} e ainda a sada no ltimo somador que apresenta o transporte que ele
gera, constituiro o resultado da soma aritmtica dos dgitos em causa.
Repare-se que o esquema ao lado est conforme recomendao de fazer progredir o fluxo de bits da esquerda
para a direita: o somador que lida com os bits de menor peso encontra-se esquerda, e, consequentemente, o
somador que lida com os bits de maior peso encontra-se direita.
Um Adder assim, em que o segundo somador recebe numa sua entrada o valor numa sada do somador
precedente (e o mesmo vale para o terceiro e quarto somadores), dito de iterativo. Considere-se, ento, alguma
alterao das entradas {Q3, Q2, Q1, Q0} e/ou {P3, P2, P1, P0}; para que as sadas do segundo somador advenham
estveis, ser preciso em geral esperar que o primeiro complete o seu trabalho: somente aps algum tempo
que se conhecer a sada Cout do primeiro somador, e ipso facto a entrada Cin do segundo; e (se ela diferir do
que l estava antes) s ento estaro reunidas as condies para (aps um certo tempo de propagao) as sadas do
segundo somador advirem estveis. Consideraes anlogas valem para o terceiro e quarto somadores
Destas asseres, emerge uma pergunta bvia: a quanto montar o tempo de propagao total? claro que ele
depender dos nmeros a adicionar, mas pode averiguar-se qual o limiar mximo que ele poder tomar: ser o caso
de todos os somadores virem a experimentar variaes na sua entrada Cin. Ao lado, apresenta-se essa situao: a
soma de 1111 com 1111, que conduz a que o transporte de todos os somadores seja 1 O tempo de
propagao total ser o qudruplo do tempo de propagao de cada um dos somadores individuais
Esta constatao motivou a investigao por outras estruturas de interligao dos somadores uma delas sendo
a assim denominada Carry Look-ahead Header, acerca da qual a Web contm informaes suficientes
Ao lado, apresenta-se o smbolo IEC do integrado SN74283, um 4-bit Adder. O respectivo Qualificador Geral
. Disponibiliza 9 entradas: quatro para o cdigo binrio de Q, e outras tantas para o cdigo binrio de P,
e, enfim, uma entrada, CI, para o transporte provindo do somador anterior. As sadas so cinco: quatro para o
cdigo binrio do resultado da soma, S, e uma, CO, para assinalar o transporte para o somador seguinte. Tanto
as entradas como as sadas so, como da praxe, numeradas {0 1 2 3}, de cima para baixo.
(Abra-se um parntesis, para justificar o carimbo iterativo aposto soluo ao lado; nele, est implcito um
outro tipo de soluo, o assim denominado recursivo.
Como se constata, um 4-bit Adder iterativo volve-se numa srie de somadores iguaizinhos em que, e com
excepo do primeiro, qualquer um recebe na sua entrada Cin o valor na sada Cout do somador precedente.
J um 4-bit Adder recursivo basta-se em um nico somador completo, em cujas entradas {Qi, Pi} se aplicam,
um par aps outro, os bits das palavras de 4-bit a adicionar e em cuja entrada Cin se vai aplicando o valor que a
sua prpria sada Cout assumiu um pouco antes! Este modo de funcionamento, todavia, obriga a averiguar:
- como memorizar o valor na sada Cout para a aplicar um pouco depois na entrada Cin;
- como sincronizar a aplicao de um par de bits nas entradas {Qi, Pi} com a aplicao na entrada Cin daquele
valor memorizado.
Neste ponto do percurso, estas duas questes ainda so algo prematuras: h que esperar pelo tempo oportuno)

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 70 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Circuitos Aritmticos

Page 71 of 119

/ Aritmtica BCD

Eventualmente, os nmeros a somar estaro codificados no no cdigo binrio natural mas em BCD. E
inevitvel a questo: pressuposto que o mercado disponibiliza 4-bit Adders, como us-los para lograr a adio de
nmeros assim codificados?
Para responder a tal questo, convir comear por aplicar, s entradas P e Q de um 4-bit Adder, alguns pares
de dgitos codificados em BCD e reflectir sobre os subsequentes resultados. Ao lado, encontram-se alguns casos
exemplares
o exemplo mais esquerda diz respeito soma aritmtica de 8 e 1 e, de facto, constata-se que a soma das
representaes em BCD desses nmeros a codificao em BCD da sua soma, 9; de notar que neste caso o
transporte para a frente nulo
o exemplo seguinte diz respeito soma de 8 e 4; porm, a soma das suas representaes em BCD devolve
1100 que no a codificao em BCD da sua soma: esta, que 12, estende-se por dois bytes, 0001 0010
o ltimo exemplo diz respeito soma de 8 e 9; porm, a soma das representaes em BCD devolve
10001 que no a codificao em BCD da sua soma: esta, que 17, estende-se por dois bytes, 0001 0111
Constata-se ento que, quando se usa um 4-bit Adder para somar nmeros codificados em BCD, h que tomar
providncias especiais:
se esse Adder originar um Resultado excedendo 9;
ou se o Adder originar um Transporte (no ltimo par de bits) igual a 1.
Que se h-de fazer em tais casos? Repare-se, para o efeito,
que a soma binria de 8 e 4 devolve 1100, que o cdigo binrio natural de 12, mas a representao em
BCD de 12 0001 0010 que o cdigo binrio natural de 18 (Note-se: 18=12+6);
que a soma binria de 8 e 9 devolve 10001, que o cdigo binrio natural de 17, mas a representao
em BCD de 17 0001 0111 que o cdigo binrio natural de 23 (Note-se: 23=17+6).
clara a concluso que se pode extrapolar a outros nmeros {Q, P}: aplicando-os a um 4-bit Adder, bastar,
em tais casos, adicionar 6 ao resultado S para lograr a codificao em BCD da soma dos nmeros em causa.
De notar, ainda, que, nesses casos, o byte da esquerda da representao em BCD 0001.
A partir destas asseres, pacfico o desenho do logigrama para um Somador em BCD:
ser naturalmente preciso um primeiro 4-bit Adder, W, que adicione os nmeros {Q, P} dados;
ser preciso um circuito cuja sada, Z, seja 1 sse esse Adder originar um Resultado SW superior a 9; ao
lado, encontra-se o correspondente mapa de Karnaugh, e a expresso simplificada que dele se deduz;
ser tambm preciso produzir uma sada, E, que seja 1 sse houver que tomar providncias Especiais, ou
seja: se Z for 1, ou se esse Adder W originar um Transporte igual a 1;
a etapa final ser um circuito que, conforme o valor de E, 0 ou 1, assim tome respectivamente o valor de
SW ou esse valor SW adicionado de 6; na prtica, ele poder ser concretizado por um outro 4-bit Adder, E,
que deixe passar transparentemente o Resultado SW (que o mesmo que somar-lhe 0), ou lhe some 6; para o
efeito, isso logra-se:
forando 0 na entrada Cin do Adder E,
aplicando SW na entrada P do Adder E,
e, na sua entrada Q (e porquanto o cdigo de 6 0110), aplicando 0000 ou 0110, vid ao lado.
o Transporte para a frente do Somador em BCD ser, naturalmente, capturado na sada E.
Quanto produo do Transporte para a frente, recordem-se duas constataes acima:
- quando h que aplicar providncias especiais ou seja, quando E=1 , esse Transporte deve ser 1;
- caso contrrio isto , E=0 , ele deve ser 0.
Ou seja: o Transporte Cout acompanha E pari passu, deve ligar-se E directamente a Cout.

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 72 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Circuitos Aritmticos

Page 73 of 119

/ Comparadores

A concluir esta breve abordagem de circuitos aritmticos, hora de considerar os assim denominados
Comparadores, isto : circuitos que recebem dois nmeros binrios {Q, P} e cujas sadas {L, E, G} indicam se
so iguais e, caso o no sejam, qual deles o maior.
Ao lado, esquematiza-se a comparao entre dois nmeros binrios, no caso feita da direita para a esquerda:
o primeiro par de bits {1, 1} de que se pode concluir que, at ento (inclusive), os nmeros so iguais;
sinaliza-se isso activando a sada E;
o segundo par de bits {1, 1} de que se pode concluir e tendo em conta que at ento os nmeros eram
iguais que, at ento, os nmeros so iguais; sinaliza-se isso continuando a activar a sada E;
o terceiro par de bits {0, 0} de que se pode concluir e tendo em conta que at ento os nmeros eram
iguais que, at ento, os nmeros so iguais; sinaliza-se isso continuando a activar a sada E;
o quarto par de bits {1, 1} de que se pode concluir e tendo em conta que at ento os nmeros eram
iguais que, at ento, os nmeros so iguais; sinaliza-se isso continuando a activar a sada E;
o quinto par de bits {Q=0, P=1} de que se pode concluir que, at ento, P superior a Q; sinaliza-se
isso activando a sada G (de Greater than);
o sexto par de bits {Q=1, P=0} de que se pode concluir que, at ento, P inferior a Q; sinaliza-se isso
activando a sada L (de Less than);
o stimo par de bits {1, 1} de que se pode concluir e tendo em conta que at ento Q excedia P que,
at ento, Q excede P; sinaliza-se isso continuando a activar a sada L.
H que reparar:
- que, em cada momento, uma s das sadas {L, E, G} est activa;
- que, para os pares de bits dos nmeros {Q, P} esquerda do primeiro direita,
- se os bits a comparar so iguais, as sadas {L, E, G} so exactamente iguais s logradas no anterior par;
- caso contrrio, o resultado s depende desses bits, so irrelevantes as sadas {L, E, G} do anterior par.
Estas asseres sugerem uma estratgia para o desenho de um Comparador:
a primeira etapa diz respeito comparao do primeiro par de bits dos nmeros dados, direita: convir
desenhar um circuito que, acolhendo tais bits, seja capaz de produzir as sadas {L, E, G};
a etapa seguinte diz respeito comparao de algum outro par de bits atendendo s informaes {L, E, G}
provindas do par anterior
a ltima etapa consiste na serializao de circuitos assim, de forma a lograr um Comparador de 4-bit, e, para
o caso de os nmeros dados terem um comprimento excedendo 4-bit, na sua subsequente concatenao
Ao lado, apresentam-se as Tabelas de Verdade das sadas {L, E, G} de um comparador do primeiro par de bits,
{Q, P}; previsivelmente: sse Q=P, E advm activa; seno, L advm activa sse Q=1, e G advm activa sse P=1.
Deles, deduzem-se expresses para as sadas seguindo-se o desenho dum logigrama com gates discretas. o
leitor convidado ao desenho de logigramas por recurso s estratgias Descodificador+ORs ou Multiplexers.
Imediatamente abaixo, apresenta-se parte das Tabelas de Verdade das sadas {L, E, G}out de um comparador dos
outros pares de bits, {Q, P}, tendo em conta as informaes {L, E, G}in provenientes do par anterior. Em rigor, e
porquanto agora montam a cinco as variveis de entrada, os mapas deveriam, cada um, espraiar-se por 32 clulas
o que significa que ao lado apenas aparece parte deles: o leitor convidado a, por si prprio, acabar de preenchlos, e deduzir as correspondentes expresses algbricas, conferindo da validez daquelas apresentadas
Delas, pacfico o logigrama do correspondente circuito; como expectvel, se os bits {Q, P} forem iguais,
advm activa a sada E do circuito CMP-2, o que significa que ficaro activados todos os ANDs figurados pelo
que a sada {L, E, G}out ir reproduzir pari passu a entrada {L, E, G}in; seno, ficar activa uma das outras sadas
conduzindo activao de uma das sadas {L, G}out: aquela que for pertinente.
A etapa final, de concatenar quatro destes Circuitos, para lograr um Comparador de 4-bit, deixada ao leitor
Ao lado, apresenta-se o smbolo IEC do integrado SN7485, um Comparador de 4-bit. O Qualificador Geral
COMP. Disponibiliza 11 entradas: quatro para o cdigo binrio de Q, e outras tantas para o cdigo binrio de
P, e, enfim, trs entradas, {L, E, G}in, para as informaes provindas do comparador anterior. As sadas so trs,
{L, E, G}out. Tanto as entradas como as sadas de {Q, P} so, como da praxe, numeradas {0 1 2 3}, de cima para
baixo.

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 74 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Nmeros com Sinal

Page 75 of 119

/ 13 Projecto

Esta sesso versa Nmeros com Sinal. Como nas outras sesses, ir partir de um Projecto concreto...
Considere um edifcio com 7 pisos, dos quais trs esto no subsolo. Pretende-se um circuito que codifique os
botes de chamada de um elevador nos vrios andares do edifcio.
Dir-se- que, decidida a codificao dos botes, o desenho do codificador ser canja: cada sada Zi ser um
OR de algumas entradas; uma entrada Xj ser nele includa sse o cdigo binrio de j contiver 1 na posio
i Sendo assim, no constituir surpresa que o acento tnico adiante seja decidir qual a melhor codificao
Como codificar os botes? Posto que eles montam a sete, so precisos ao menos log273 bits para codificar
cada um deles. Ora, cdigos de palavras com 3 bits h muitos pelo que altura de averiguar: por qual optar?
Designando os andares, de baixo para cima, por {3 s/c, 2 s/c, 1 s/c, r/c, 1, 2 e 3}, uma sugesto vivel seria
atribuir-lhes as sucessivas palavras do cdigo binrio natural: {000, 001, 010, , 110}, vid ao lado...
Esta codificao no , porm, l muito elegante: em particular, se no subsolo houvera um outro nmero de
pisos, o r/c teria de ser codificado de maneira diferente Mais elegante seria uma soluo, vid ao lado, em que,
independentemente do nmero de pisos no subsolo, o r/c seria dito de piso 0 e ele, e cada um dos pisos acima,
{1, 2, 3}, seria codificado pelo respectivo cdigo binrio natural.
Esta estratgia, de numerar os pisos, acarreta uma pergunta: numerando os pisos no subsolo por, de cima para
baixo, {-1, -2, -3}, como codific-los ou, mais genericamente, como codificar nmeros negativos?
Eis uma primeira constatao: se se reservarem, para o 0 e inteiros positivos, palavras de cdigo comeando
esquerda por 0 (e apenas essas), sobram apenas palavras comeadas por 1 ou seja: qualquer que seja a
codificao por que se venha a optar, o bit mais esquerda ir distinguir se ele positivo ou negativo!
Isso implica o seguinte: seja dado um nmero com mdulo e sinal; se, para codificar em binrio esse mdulo,
forem precisos ao menos n bits, ento expectvel que o total de bits necessrio para codificar o nmero seja de,
pelo menos, n+1. Isto aceite, o resto, isto , a atribuio a nmeros negativos de palavras de cdigo comeadas por
1, ser como der mais jeito Ao lado, apresentam-se as trs representaes mais comuns:
Na representao em Mdulo e Sinal, o primeiro bit 1 e os seguintes so o cdigo binrio do mdulo
do nmero em causa. Esta filosofia tem dois senes:
a) 0 pode codificar-se de dois modos distintos: 000 (representando +0), e 100 (representando 0);
b) e a aritmtica complicada: basta ter em conta que, quando se somam dois nmeros com mdulo e sinal,
a operao de facto a levar por diante tanto pode ser uma adio ou uma subtraco (consoante respectivamente
eles tiverem o mesmo sinal, ou no);
Na representao em Complemento para 1, parte-se da representao do nmero (positivo) com o mesmo
mdulo do nmero em causa e invertem-se todos os bits. Um seno: tal como em Mdulo e Sinal, 0 pode
codificar-se de dois modos distintos: 000 (representando +0), e 111 (representando 0);
Na representao em Complemento para 2, parte-se da representao do nmero (positivo) com o mesmo
mdulo do nmero em causa e subtrai-se para 0, descartando o ltimo transporte (o originado no ltimo bit).
De notar que, agora, 0 representado de uma maneira s, 000 e isso habilita a, com o mesmo nmero de
bits, codificar mais nmeros (negativos): no s {-3, -2, -1}, mas tambm -4
Uma pergunta oportuna ser: o cdigo a que se chegou ponderado? Em caso afirmativo, quais os pesos das
posies ocupadas pelos bits da palavra?
Se ele for ponderado, so pacficas as seguintes asseres: pois que +1 se representa por 001, o bit direita
ter peso 20=1; pois que +2 se representa por 010, o bit seguinte ter peso 21=2; e pois que 4 se
representa por 100, o bit esquerda dever ter peso 22=4. Ser que as outras palavras respeitam tais pesos?
A resposta : sim! Repare-se: 111 4+2+1 = 1(10), 110 4+2 = 2(10) e 101 4+1 = 3(10). Isto ,
esta representao volve-se num cdigo ponderado de pesos {4, 2, 1} que, tal como ocorre com o cdigo
binrio natural, so as potncias de 2, a diferena sendo que o peso da posio mais significativa negativo!
Dada a hegemonia que esta ltima representao, em Complemento para 2, veio de facto a adquirir no mundo
dos Sistemas Digitais, convm, claro, dedicar-lhe algum tempo mais

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 76 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Nmeros com Sinal

Page 77 of 119

/ Complemento para 2

Como representar nmeros em Mdulo e Sinal, em Complemento para 1 em Complemento para 2?


Qui a melhor maneira de o apreender seja faz-lo em torno dum exemplo concreto: como representar -22(10)?
A primeira etapa determinar a representao binria do mdulo, no caso: 22(10).
Um mtodo rpido consistir em, por divises sucessivas (por 8), deduzir a representao de 22(10) na base 8
e, logo a seguir, por expanso em 3-bits dos octais obtidos, lograr a representao na base 2, vid ao lado.
A segunda etapa determinar a representao do nmero, no caso: -22(10).
Um passo prvio preceder por um 0 a representao binria obtida; pois que esse 0 denota um valor
positivo, o que se est fazendo determinar a representao de +22(10) que, sublinhe-se, a mesma para as trs
representaes supracitadas: em Mdulo e Sinal, em Complemento para 1 e em Complemento para 2.
Ento, se se tratara de obter a representao de +22(10), nada mais haveria a fazer! Mas o nmero negativo, o
que se quer a representao de -22(10) pelo que h vrios passos a percorrer ainda (mas vid questo no fim)
a) Se se tratara de encontrar a representao em Mdulo e Sinal, bastaria inverter o primeiro bit;
b) Se se tratara de encontrar a representao em Complemento para 1, ter-se-ia que inverter todos os bits;
c) Mas, tratando-se de encontrar a representao em Complemento para 2, so possveis quatro estratgias:
Uma primeira consiste em subtrair, a 0, a representao binria de +22(10), descartando o ltimo
transporte. Visto de outro modo e dele que provm a designao em Complemento para 2 e sendo k=6 o
comprimento da representao binria de +22(10), o que se est a fazer subtrair a 2k essa representao;
Uma segunda bvia a partir de um relance visual ao funcionamento da estratgia anterior: consiste em
varrer todos os bits da representao binria de +22(10) da direita para a esquerda , copiando-os a todos at
chegar ao primeiro 1, inclusive e, a partir da, inverter os restantes bits;
Uma terceira parte da identidade 2k 2k-1+1 (2k-1)+1; ora, 2k-1(2) volve-se numa sequncia de k 1s, ou
seja: a primeira estratgia, de subtrair a 2k (2k-1)+1 a representao binria de +22(10), equivale a inverter todos
os bits (ou seja: obter a representao em Complemento para 1) e somar aritmeticamente 1 ao resultado obtido;
A quarta consiste representar o nmero dado, no caso -22(10), num cdigo binrio ponderado com pesos
iguais aos do cdigo binrio natural, a diferena sendo que o de maior peso absoluto agora negativo.
No caso, e sendo k=6 o comprimento da representao binria de +22(10), os pesos sero: {-32, 16, 8, 4, 2, 1}.
Ora, -22=-32+10; e pois que 10(10) se representa, na base 2 (e usando k-1=5 bits), por 01010(2), a representao
em Complemento para 2 de -22(10) vem a ser 101010(c2).
(Na prtica, a estratgia B, porque visual, ser a mais indicada para o leitor determinar a representao em
Complemento para 2 de um nmero, e a estratgia D a mais indicada para fazer o contrrio J quanto
estratgia C que envolve inverter e somar ser aquela a usar por um sistema digital)
A palavra de cdigo obtida alonga-se por 6 bits; ora, comum os sistemas digitais usarem um comprimento
standard para memorizar nmeros, como seja 8, 16, 32, 64 Pelo que inevitvel perguntar: como, em
Complemento para 2, se representam +22(10) e +22(10) em, por exemplo, um byte?
A resposta ser pacfica: usando os mtodos acima porm com o cuidado de, porquanto o bit da esquerda
reservado para o sinal, usar 8-1=7 bits para codificar o mdulo.
Com esta precauo, +22(10) advm representado por uma palavra onde, a preceder o cdigo de 22(10), esto
trs 0s: o primeiro denotando um nmero positivo, e os outros para encher o que falta para completar um byte;
Da, preferivelmente usando a estratgia B, deduz-se a representao de -22(10) em Complemento para 2
Comparem-se as representaes +22(c2) (e 22(c2)) com 6 e 8 bits. notrio que as que tm 6 bits se podem obter
daquelas com 8 bits por eliminao dos 0s (ou 1s) suprfluos esquerda: podem ser compactados num 0 (ou
1); vice-versa, em Complemento para 2, a repetio do primeiro bit no muda o valor numrico representado!
Uma ltima questo interessante esta: como representar, em um byte, o valor numrico -128=-27? A resposta,
dir-se-, ser: usando os mtodos acima Atente-se ento nos resultados da sua aplicao:
1. Na base 2, o mdulo do nmero dado (no caso: 128 (10)=27) representa-se por 10000000(2);
2. Pelo que a representao binria do nmero positivo +128 (10)) vem a ser 010000000(c2);
3. O leitor ter franzido o sobrolho perante tal resultado, pois tem 9 bits, isto : excede o tamanho de um byte
Mas veja-se a continuao: aplicando a estratgia B, -128 (10) vem a representar-se por 110000000(c2); mas,
constatou-se j, podem eliminar-se 1s suprfluos, o que conduz a 10000000(c2) que cabe justa num byte!

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 78 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Nmeros com Sinal

Page 79 of 119

/ Operaes em c2

Entendida a forma de representar nmeros com sinal em Complemento para 2, e com vista a avaliar o porqu do
seu sucesso no mundo do Digital, resta averiguar: como se processam as operaes, em particular a adio e a
subtraco, em Complemento para 2?
Qui o melhor seja partir de nmeros concretos, como sejam -22(10) e 7(10) Em Complemento para 2,
-22(10) representa-se por 101010(c2) mas, j se salientou, pode tambm representar-se por 11101010(c2);
e 7(10) representa-se por 0111(c2) mas tambm pode representar-se por 0000111(c2)
Em ordem a adicion-los ou subtra-los, mister represent-los com o mesmo nmero de bits: unidades por
baixo de unidades, bit de sinal por baixo de bit de sinal Ora, a no ser que se requeira explicitamente de
outro modo, a lei do menor esforo manda que se escolha o menor tamanho capaz de cobrir ambas as
representaes; ele vem a ser, claro, 6 bits: 101010(c2) e 000111(c2).
Como se leva por diante a adio? A resposta surpreendente: considerando-os como nmeros escritos na base
2, e somando-os! Vid ao lado: eles so alinhados direita, e adicionados, sem cuidar de saber que o bit
esquerda o de sinal: ele tratado exactamente como os que esto sua direita! Em ordem a aferir da validez do
algoritmo, atente-se no resultado, 110001: usando a estratgia D supracitada, ele representa -15(10) que
justamente o resultado da soma de -22(10) com 7(10): a conta est certa!
Como se leva por diante a subtraco? A resposta : transformando-a numa adio, aps prvia negao do
segundo termo. Ora, dado um nmero positivo, no caso 7(10), a estratgia C supracitada afirma que a
representao em Complemento para 2 de -7(10) se pode lograr pela inverso de todos os bits da representao em
Complemento para 2 de 7(10) e posterior soma de 1. Vid ao lado: adiciona-se, representao de -22(10), a
inverso da representao de 7(10) mais 1. Em ordem a aferir da validez do algoritmo, atente-se no resultado,
1100011: usando a estratgia D supracitada, ele representa -29(10) que justamente o resultado da subtraco
de 7(10) a -22(10): a conta est certa!
Deixa-se ao leitor aplicar os algoritmos a outros exemplos, como sejam somar 22(10) e -7(10), ou subtrair -22(10) a
7(10) e aferir da sua validez

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 80 of 119

Vitor M. P. Vargas / IST


Nmeros com Sinal

Sistemas Digitais (Part II)

Page 81 of 119

/ Somador / Subtractor em c2

O algoritmo apresentado para obter a subtraco em Complemento para 2 sugere como desenhar um circuito
somador/subtractor, isto : um circuito que, dado um nmero, seja P, lhe some ou subtraia um outro nmero,
seja Q conforme respectivamente uma varivel de controlo, Op, seja, respectivamente, 0 ou 1.
Sejam P(c2) e Q(c2) as representaes em Complemento para 2 dos nmeros P e Q;
Quando Op=0, pretende-se o resultado da soma P+Q o que sugere um somador binrio, em cujas entradas
se apliquem P(c2) e Q(c2)
Quando Op=1, pretende-se o resultado da subtraco P-Q o que, conforme ao algoritmo de subtraco em
Complemento para 2, sugere um somador binrio em cujas entradas se aplique P(c2) e a representao em
Complemento para 2 de -Q; ora, constatou-se j que esta ltima se pode lograr pela inverso de todos os bits da
representao em Complemento para 2 de Q (que Q(c2)), e posterior soma de 1.
O Circuito ao lado concretiza este funcionamento:
designem-se de P e Q as entradas do somador;
porquanto, qualquer que seja Op, se trata de somar P a um outro termo, ser pacfico aplicar directamente
o primeiro termo da soma ou subtraco, P(c2) na entrada P do somador;
discernir o que deve aplicar-se na entrada Q do somador volve-se em responder ao seguinte: que deve
somar-se a P(c2)? A resposta : Q(c2) ou o seu inverso bit-a-bit consoante respectivamente Op=0 ou Op=1.
Isso sugere o uso de Multiplexers, um por cada uma das entradas de Q e cujas entradas de dados sejam
precisamente o pertinente bit de Q(c2) e o seu inverso, e cuja entrada de controlo seja Op, vid ao lado;
Ento, quando Op=0, a sada de cada Multiplexer ser o que estiver aplicado na sua entrada de dados numerada
0, e que o pertinente bit de Q(c2); e quando Op=1, ela ser o que estiver aplicado na sua entrada de dados
numerada 1, e que o inverso do pertinente bit de Q(c2);
resta decidir o que se deve aplicar na entrada Cin do somador. A esse respeito, reveja-se: se Op=0, a sada do
somador dever ser P+Q o que, posto que ento as suas entradas so P(c2) e Q(c2), compele a aplicar 0 a
Cin; mas, se Op=1, a sada do somador dever ser PQ o que, posto que ento as suas entradas so P(c2) e o
inverso de Q(c2), compele a aplicar 1 a Cin; Isto : Cin acompanha pari passu o valor de Op, o que se
concretiza interligando directamente a entrada de controlo Op a Cin.
Uma ltima nota, relativa ao logigrama apresentado. A sada de cada Multiplexer vem a ser O p Q i O p Q i , o
que sugere a substituio de cada par Multiplexer+NOT por um XOR

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 82 of 119

Vitor M. P. Vargas / IST


Nmeros com Sinal

Sistemas Digitais (Part II)

Page 83 of 119

/ Overflow e Underflow em c2

J se acentuou que comum os sistemas digitais usarem um comprimento standard para memorizar nmeros,
como seja 8, 16, 32, 64 Pelo que inevitvel perguntar: e se a soma (ou subtraco) conduzirem a resultados
cuja representao em Complemento para 2 no cabe no tamanho de facto usado num dado Sistema?
Para simplificar, admita-se que o tamanho usado num dado Sistema Digital de 4 bits; isso determina que o
maior valor (positivo) e o menor valor (negativo) que nele podem ser representados sejam, respectivamente, 0111
(isto : +7(10)) e 1000 (isto : -8(10)). Por outras palavras: o Sistema em causa s consegue representar (em
Complemento para 2) nmeros que estejam na gama [-8(10) a +7(10)]. Ora, pode suceder que, somando dois valores
desta gama, haja overflow (isto : o resultado exceda +7(10)) ou underflow (isto : o resultado seja inferior a -8(10)).
E incontornvel a pergunta: como discernir se o resultado do somador est correcto ou incorrecto?
Para exemplificar a regra a seguir para o efeito, vo considerar-se quatro casos:
Num primeiro caso, trata-se de somar +4(10) com +6(10) que a tabuada da primria refere conduzir ao
resultado +10(10), que superior ao valor mximo admissvel, que +7(10);
Note-se que, somando aritmeticamente as representaes em complemento para 2 de +4(10) e +6(10), se vem a
obter 1010(c2) que, pois que o bit da esquerda 1, um resultado negativo! Ora, somando valores positivos,
dever-se-ia obter um resultado positivo do que se deduz: o resultado est incorrecto, ocorreu Overflow!
Num segundo caso, trata-se de somar -4(10) com -6(10) que dever conduzir ao resultado -10(10), que inferior
ao valor mnimo admissvel, que -8(10);
Note-se que, somando aritmeticamente as representaes em complemento para 2 de -4(10) e -6(10), se vem a
obter 0110(c2) (o primeiro bit esquerda da soma, 1, descartado, pois no cabe no tamanho usado no Sistema
em causa); ora, pois que o bit da esquerda de 0110(c2) 0, deduz-se que se obteve um resultado positivo! Ora,
somando valores negativos, dever-se-ia obter um resultado negativo do que se deduz: o resultado est
incorrecto, ocorreu Underflow!
A questo : como que um Sistema Digital descobre que o resultado da operao est ou no correcto? A
regra, aqui enunciada sem demonstrao, a seguinte: atente-se aos dois ltimos transportes gerados na soma; o
resultado estar correcto se e s se eles forem iguais: se forem diferentes, o resultado estar incorrecto.
Nos exemplos em apreo,
Ao somar +4(10) com +6(10), o transporte gerado ao somar 1 com 1 vem a ser 1, mas na coluna seguinte, e
que a ltima, ele vem a ser 0; isto : so diferentes pelo que se deve concluir que o resultado est incorrecto.
Ao somar -4(10) com -6(10), o transporte gerado ao somar 1 com 0 vem a ser 0, mas na coluna seguinte, e
que a ltima, ele vem a ser 1; isto : so diferentes pelo que se deve concluir que o resultado est incorrecto.
Os dois casos seguintes versam somas cujo resultado est correcto:
No penltimo caso, trata-se de somar -4(10) com +6(10); a soma aritmtica das suas representaes em
Complemento para 2 conduz representao em Complemento para 2 de +2(10)
No ltimo caso, trata-se de somar +4(10) com -6(10); a soma aritmtica das suas representaes em
Complemento para 2 conduz representao em Complemento para 2 de -2(10)
Confira-se que, nestes dois ltimos casos, so iguais os dois ltimos transportes gerados na soma.
Com esta sesso, termina a abordagem de circuitos ditos Combinatrios caracterizados pelo facto de a sada
num dado instante depender s dos valores ento aplicados nas entradas. As sesses seguintes versam circuitos
ditos Sequenciais caracterizados pelo facto de a sada num dado instante depender dos valores que foram sendo
aplicados nas entradas at ento. Sistemas Digitais que so, so-lhe aplicveis os conceitos, mtodos e algoritmos
at agora abordados. Todavia, h algumas novidades hora de as comear a abordar

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 84 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Latches

Page 85 of 119

/ 14a Projecto

Esta a primeira sesso dedicada a circuitos Sequenciais; analogamente ao itinerrio seguido em circuitos
Combinatrios, ela (e a prxima) destinam-se a abordar os tijolos bsicos que lhe so prprios e que se designam
de latches e flip-flops. Tal como as demais sesses, ir-se- partir de um Projecto concreto
Considere-se um Parque de Estacionamento, em cuja Sada se encontra uma Cancela automtica. Para a abrir,
o condutor duma viatura lana moedas numa ranhura ai existente com o que ela se fecha e a cancela se abre. A
viatura avana Chegando Rua, um sensor assinala o termo da sua passagem - com o que a cancela se fecha e a
ranhura se abre para um novo condutor Os sinais gerados pela ranhura e pelo sensor na rua so impulsos curtos.
Ao lado, um Diagrama Temporal ilustra o que vai ocorrendo: mostra os impulsos curtos emitidos na ranhura
Sada e no sensor na Rua, e a evoluo da Situao da Cancela (Fechada ou Aberta, codificadas por 0 e 1).
O Diagrama assume que inicialmente a cancela se encontra Fechada. No instante a-, que marca o termo do
lanamento da pertinente quantia na ranhura, esta emite um impulso curto (S=1 por algum tempo); com isso, a
cancela deve abrir o que faz no instante a+. A viatura avana e, algures mais tarde, o sensor detecta-a No
instante d-, que marca o termo da passagem da viatura, ele emite um impulso curto (R=1 por algum tempo); com
isso, a cancela ir fechar no instante d+. Para a viatura seguinte, a sequncia de eventos ser a mesma
Analise-se o Diagrama logrado: notrio que, para as mesmssimas combinaes de entrada {S=0, R=0} (que
significam que nem a ranhura Sada nem o sensor na Rua esto emitindo impulsos), a sada, C, do circuito que
controla a cancela tanto pode ser 0 (para que advenha Fechada) como pode ser 1 (para que fique Aberta)! Este
um comportamento bem distinto daquele que se observou at agora: ao circuito de controlo, insuficiente
conhecer as entradas num instante, ele tem que saber o que se passou antes, tem que saber memorizar o passado!
Aproveitando conhecimentos j adquiridos (em particular o conceber a sada como uma funo das entradas),
convir entender tal memria como o valor de uma entrada de um tipo novo, nomeada de Q. Doravante, h que
ter em conta dois tipos de entradas/variveis: as ditas externas ou primrias (e que so as que foram consideradas
at agora) e as ditas internas ou secundrias destinadas a suportar a memria do passado: o seu Estado!
Isso entendido, a primeira etapa ser, intui-se, estabelecer uma codificao para todas as entradas. Na prtica, e
ademais das entradas externas S e R (com uma codificao bvia), bastar acrescentar uma entrada interna,
Q; ela dever memorizar o que preciso para o circuito determinar a sua sada C, e que vem a ser o seguinte:
ser que S j sinalizou mas R ainda no? que, em caso afirmativo, a cancela deve advir Aberta
Segue-se a construo do mapa de Karnaugh da sada, C e que acaba por seguir pari passu a sua entrada
interna, Q. A esse respeito, recomenda-se associar essa varivel coluna esquerda, e relegar as variveis
externas para as linhas do topo. Para preencher o mapa, uma boa poltica ser acompanhar o Diagrama Temporal:
de incio, {Q=0, S=0, R=0} o que corresponde clula 0 do mapa; enquanto nada se alterar, Q(t+1)=0
no instante a-, a ranhura Sada emite um impulso curto (S=1, com Q=0 e R=0 o que remete para a clula
2); aquele impulso provoca a mudana de Estado do circuito: este deve passar a memorizar que S j sinalizou
mas R ainda no; em termos prticos, Q dever assumir o valor/Estado 1: Q(t+1)=1, na clula 2;
a situao passou a ser {Q=1, S=1, R=0}, o que corresponde clula 6 do mapa; Q(t+1) mantm-se 1;
algum tempo depois, S regressa a 0 pelo que a situao passa a ser {Q=1, S=0, R=0}, o que corresponde
clula 4 do mapa; e enquanto nada se alterar, mantm-se o Estado Q(t+1)=1
no instante d-, o sensor na Rua emite um impulso curto (R=1, com Q=1 e S=0 o que remete para a clula
5); esse impulso provoca a mudana de Estado do circuito: este deve deixar de memorizar que S j sinalizou
mas R ainda no; em termos prticos, Q dever assumir o valor/Estado 0: Q(t+1)=0, na clula 5;
a situao passou ento a ser {Q=0, S=0, R=1}, o que corresponde clula 1 do mapa; Q(t+1) mantm-se 0
algum tempo depois, R regressa a 0 pelo que a situao passa a ser {Q=0, S=0, R=0}, o que corresponde
clula 0 do mapa: foi reposta a situao inicial
enfim, preenche-se com indiferenas, X, as clulas respeitantes a eventos que nunca ocorrem, e que vm a
ser aquelas em que, simultaneamente, {S=1, R=1}: a cada instante, s se pode estar emitindo um impulso
O mapa tem uma configurao peculiar: cada linha caracteriza um Estado no sentido de que cada clula sua
explicita qual o Estado seguinte quando, partindo o circuito desse Estado (dito actual), ocorre a combinao das
entradas externas que corresponde a essa clula. Como que cada linha o mapa parcial para cada Estado.
A obteno da SOP ou POS simplificada, e o correspondente logigrama so triviais. A um circuito com tal
funcionamento, d-se o nome de latch SR (ou latch RS) e a ele que sero dedicadas as prximas linhas

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 86 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Latches

Page 87 of 119

/ Latch SR

Ao lado, apresenta-se o mapa de Karnaugh da latch SR a que se chegou, mais precisamente: o mapa do Estado
seguinte, Q(t+1), em funo do Estado actual, Q(t), e das entradas externas, {S, R}.
Visando aplic-la em outros Projectos, convir repensar o significado dos literais {S, R} descolando-os da
sua aplicao no 14a Projecto para denotar os sinais emitidos pela ranhura Sada e pelo sensor na Rua
Analisem-se, ento as sucessivas colunas daquele Mapa. Verifica-se que:
Quando {S=0, R=0} modo de funcionamento dito de Hold , o estado mantm-se tal como era: se, antes,
era Q(t)=0, depois continua sendo Q(t+1)=0 e se, antes, era Q(t)=1, depois continua sendo Q(t+1)=1; quer dizer: uma
latch SR um circuito digital capaz de memorizar um bit! Resta saber: como obrig-lo a guardar um 1 ou um
0? A resposta vem nas colunas seguintes do Mapa:
Quando S=1 (e R=0) modo de funcionamento dito de Set , o estado transita obrigatoriamente para 1,
independentemente do que era antes; quer dizer: para que a latch memorize o valor 1, activa-se a entrada S
(Set); ela pode de imediato ser desactivada, que a latch continua memorizando o bit 1;
E quando R=1 (e S=0) modo de funcionamento dito de Reset , o estado transita obrigatoriamente para
0, independentemente do que era antes; quer dizer: para que a latch memorize o valor 0, activa-se a entrada R
(Reset); ela pode de imediato ser desactivada, que a latch continua memorizando o bit 0;
Doravante, os literais {S, R} devero ser entendidos como abreviaturas das operaes {Set, Reset}: Set
significando pr a 1, e Reset significando pr a 0
Resta a combinao {S=1, R=1}. Na prtica, ela significa querer fazer Set (pr a 1) e Reset (pr a 0) ao
mesmo tempo! e expectvel que se volva num comportamento sui generis Ser abordado mais adiante.
A partir do Mapa, podem materializar-se duas verses para o logigrama, suportadas em NANDs e NORs:
Verso com NANDs:
A partir da SOP simplificada, a dupla complementao seguida da aplicao das leis de De Morgan conduz a
uma expresso somente com NANDs a partir de que o desenho do logigrama trivial, vid ao lado.
O logigrama exibe duas peculiaridades:
Por um lado, aquilo que se designa de feedback (realimentao): a prpria sada, Q, usada como entrada
interna (do AND-W) do circuito; alis, esse truque que habilita o circuito a memorizar um bit: quando se
inactivam as duas entradas, {S=0, R=0}, ambos os NANDs funcionam como inversores pelo que o estado
seguinte, Q(t+1), vem a ser a dupla negao do estado actual, Q(t): a sada do circuito no se altera
De notar, tambm, que, alm de Q, h uma outra sada, Q que o prprio leitor poder confirmar que vem
a ser o complemento de Q se ao menos uma das entradas {S, R} for 0.
hora de inquirir: qual o sui generis acima referido acerca do comportamento da latch SR?
Admita-se que se fora {S=1, R=1}; ento, as sadas de ambos os NANDs advm Q=Q=1. Isso, claro,
viola algo comum s restantes combinaes de {S, R}: elas conduzem a Q ser o complemento de Q;
Mais grave ainda: admita-se que, vigorando {S=R=1}, se aplica simultaneamente {S=0, R=0}; ento, a sada
do NAND-W volve-se Q= Q =0 e, ao mesmo tempo, a sada do NAND-E vem a ser Q= Q ' =0. Com isso, a sada
do NAND-W volve-se Q= Q =1 e, ao mesmo tempo, o NAND-E fora a sada Q= Q ' =1: voltou-se ao princpio
e a continuao adivinha-se: uma oscilao das duas sadas, 10 1 0 Na prtica, porm, no
realizvel aquele ao mesmo tempo: os tempos de propagao dos NANDs reais so diferentes pelo que Q
tender a convergir para algum valor A priori, porm, no se sabe qual Concluso bvia: se o Projectista
aceitar que possam vir a estar activas ambas as entradas {S, R}, ter de cuidar para no as deixar transitar ao
mesmo tempo para {S=R=0}! Por mor de simplicidade, a praxis neste itinerrio : nunca admitir {S=R=1}.
Ao lado, apresenta-se o smbolo IEC do integrado SN74279, uma latch SR. Ambas as entradas {S, R} so
activas a Low; de notar que a sada, Q, dada sob as formas normal e complementar (o que, como se constatou,
exacto apenas se no se activarem simultaneamente {S e R})
Verso com NORs:
A partir da POS simplificada, a dupla complementao seguida da aplicao das leis de De Morgan conduz a
uma expresso somente com NORs - a partir de que o desenho do logigrama trivial, vid ao lado.
Deixa-se ao leitor averiguar o que sucede se se activarem simultaneamente as duas entradas {S, R}

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 88 of 119

Vitor M. P. Vargas / IST


Latches

Sistemas Digitais (Part II)

Page 89 of 119

/ Latch SR com enable (controlada / sincronizada)

Tendo em conta que o estado de uma latch pode mudar logo que alguma das suas entradas muda, hora de
referir que usar latches para desenhar circuitos Digitais no algo que se possa asseverar ser sempre trivial Pelo
que doravante este itinerrio se ir concentrar quase exclusivamente numa famlia especial de latches (e nos seus
derivados flip-flops), ditas de latches controladas ou sincronizadas; elas so caracterizadas pelo facto de o seu
estado poder mudar somente quando lhe for sinalizado explicitamente que o pode fazer.
Recordando o intermezzo sobre Enabling/Disabling, no ser de espantar que esse controlo se concretize numa
entrada mais, dita de enable (de uso mais comum em latches) ou clock (relgio, de uso mais comum em flip-flops).
Admita-se ento que se dispe de uma latch, com entradas {S, R} activas a High (verso NOR) ou activas a
Low (verso NAND). Como us-la para concretizar uma latch com entradas activas a High, sejam {S_H, R_H}, e
controlada por uma entrada enable C (que, como se far daqui por diante, se pressupe implicitamente ser activa
a High)? A resposta interpor, entre cada uma das entradas {S_H, R_H} e a correspondente entrada da latch, um
AND activado pela tal entrada enable (e garantindo que o nvel de actividade da sua sada corresponde ao da
entrada a que se interliga), vid ao lado.
O preenchimento da Tabela de Verdade condensada para semelhante latch controlada trivial:
quando a entrada enable no estiver activa (C=0), o estado mantm-se impvido e sereno: Q(t+1)= Q(t);
mas, se ela advir activa (C=1), o estado seguinte ser aquele para o qual uma latch no enabled transita,
quando o seu estado actual Q(t) e as entradas so {S, R}.
Ao lado, apresenta-se o smbolo IEC duma latch SR controlada. A sada, Q, dada sob as formas normal e
complementar. As entradas {S, R} so activas a High; mas existe uma outra, tambm activa a High, que rotulada
C para denotar a entrada enable. Note-se que os rtulos {S, R} so prefixados por 1 e que C sufixado por
1. Isso reflecte a notao de dependncia da Standard 91-1984: para assinalar que, se alguma das entradas {S,
R} advir activa, isso reconhecido pela latch s quando a entrada enable estiver activa, C sufixado por 1 e
todas as entradas prefixadas por 1 (no caso: {S, R}) so consideradas inactivas enquanto C estiver inactiva.
Ao lado, apresenta-se um Diagrama Temporal da evoluo de uma latch SR controlada:
Inicialmente, ela encontra-se no estado Q=0, e todas as entradas {S, R e enable} se encontram inactivas;
No instante t1, activa-se a entrada S mas o estado no se altera (pois a entrada enable est inactiva);
Em t2, activa-se a entrada enable com o que, em t3 (isto : decorrido o pertinente tempo de propagao
tpLH), o estado da latch muda, passando a ser Q=1;
Em t4, desactiva-se a entrada S com o que a latch ingressa no estado Hold: mantm-se Q=1;
Em t5, activa-se a entrada R com o que, em t6 (isto : decorrido o pertinente tempo de propagao
tpHL), o estado muda de novo, ficando Q=0;
Em t7, desactiva-se a entrada R com o que a latch regressa ao estado Hold: mantm-se Q=0;
Em t8, activa-se a entrada S com o que, em t9, o estado se altera outra vez, ficando Q=1;
Em t10, desactiva-se a entrada enable com o que, at advir de novo activa, se mantm Q=1;
Em t11, desactiva-se a entrada S sem, claro, nenhum efeito no estado da Latch: ela est disabled
(A ttulo de curiosidade, refiram-se parmetros temporais concernindo a desactivao do enable duma latch
controlada; cabe ao projectista discernir se os h-de ter em conta, ou no, na aplicao em que est engajado; se
for o caso, as entradas {S, R} (ou D, numa latch D) tm que permanecer estveis ao menos TSetUp segundos antes
de se desactivar o enable; e tm que continuar estabilizadas pelo menos THold segundos depois de o desactivar)
A haver mudana na sada da latch, os atrasos tpHL e tpLH (tempo de propagao da sada de High a Low ou
vice-versa) so contabilizados a partir do instante em que mudou a entrada que provocou essa mudana.
No Diagrama, as transies 0 para 1 (ou vice-versa) so oblquas para denotar que no so instantneas,
demoram o seu tempo; para medir os tempos referidos (tpHL e tpLH, e TSetUp e THold), o instante em que ocorre
uma transio considerado ser aquele em que o nvel elctrico est a meio dos nveis que representam 0 e 1.
(Neste itinerrio, adoptou-se o nome latch SR que no latch RS; isso justifica-se pela sua semelhana
funcional com o flip-flop JK, a abordar adiante: quando ao menos uma entrada 0, o efeito dum par de valores
aplicado a {S, R} ser o mesmo se ele for aplicado nas entradas {J,K}. Optando assim, a entrada S tem um peso
maior que R e isso que determina a sua ordenao em Mapas, Tabelas e Diagramas Temporais; todavia, em
logigramas e smbolos IEC, segue-se a ordem inversa: S em cima, R em baixo para reflectir graficamente que,
quando S e R so diferentes, o efeito da activao do enable propagar os valores de S e R para Q e Q )

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 90 of 119

Vitor M. P. Vargas / IST


Latches

Sistemas Digitais (Part II)

Page 91 of 119

/ Latch D com enable (controlada / sincronizada)

Constatou-se que arriscado activar em simultneo ambas as entradas de uma latch SR. Pressuposto que ela
dispe de uma entrada enable, uma maneira de o evitar forar que, a cada momento, essas entradas sejam
complementares uma da outra: se suceder que em algum momento em S se force um valor genrico D, ento em
R dever aplicar-se D . Para o concretizar fisicamente, bastar introduzir um inversor, vid ao lado.
Ao circuito assim logrado, com uma s entrada de dados D (alm da entrada enable), d-se o nome de latch D
(controlada ou sincronizada).
O preenchimento da Tabela de Verdade condensada para a latch D controlada trivial:
quando a entrada enable no estiver activa (C=0) modo de funcionamento dito de Hold , o estado
mantm-se impvido e sereno: Q(t+1)= Q(t);
mas, se ela advir activa (C=1) modo de funcionamento dito de Cpia/Transparente , o estado seguinte
passar a ser o valor que ento estiver sendo aplicado na entrada D.
(Abra-se um parntesis para assinalar que, segundo alguns autores, este modo de funcionamento o que subjaz
ao nome atribudo a esta latch: D remete para Delay no sentido de que a latch passar a assumir o valor
entrada aps ter decorrido o tempo necessrio para a entrada enable advir activa - se o no estiver ainda - e,
naturalmente, o tempo de propagao, tpHL ou tpLH, da latch; outros autores preferem justificar D como
remetendo para Data Input)
A partir da Tabela de Verdade condensada, a expresso algbrica simplificada bvia. E a sua semelhana com
a expresso algbrica da sada de um Multiplexer sugere um modo alternativo de materializar uma latch D: em vez
de usar uma latch SR e um inversor, basta recorrer a um Multiplexer 2:1, vid ao lado.
Ao lado, apresentam-se dois smbolos IEC para a latch D controlada. A sada, Q, dada sob as formas
normal e complementar. A entrada D activa a High; quanto entrada enable, que qualificada C, num dos
smbolos (de que exemplo o integrado SN7475) ela activa a High, e no outro activa a Low.
De salientar uma nova aplicao da notao de dependncia: para assinalar que um valor na entrada D pode
ter algum efeito no estado da latch somente quando C estiver activa, esta sufixada por 1 e D prefixada
com 1.
Ao lado, um Diagrama Temporal ilustra este funcionamento:
na entrada enable, C, ocorre uma sequncia de bits, 01 01 em que a durao de cada um
deles no necessariamente a mesma;
na entrada D, ocorre outra sequncia de bits, 01 01
na sada Q, observa-se o resultado Repare-se que o Diagrama pressupe que a entrada enable activa a
High:
a. Ainda que D tenha j assumido o valor 1, somente quando a entrada enable advir 1 (como ocorre no
instante 1) que o estado Q se volve 1;
b. Semelhantemente, mesmo que D tenha entretanto assumido o valor 0, somente quando a entrada enable
advir 1 (atente-se ao instante 2) que o estado Q vem a tomar o valor 0;
c. Mesmo que D se altere, como sucede antes do instante 4, se a entrada enable no for activada, no se
constatar qualquer mudana em Q;
d. Em sentido contrrio, se a entrada enable estiver activada, eventuais alteraes em D provocaro pari passu
alteraes em Q (vejam-se a propsito o desenrolar dos acontecimentos aps os instantes 5 e 7)
A esta ltima observao no se pode reagir com um encolher de ombros: uma latch D assim pode conduzir a
uma sucesso de estados, que no simplesmente aquele que a sua Tabela de Verdade determina para o valor
aplicado sua entrada D no momento em que se activou a entrada enable. Para algumas aplicaes, isso um
problema que h que defrontar mas isso fica relegado para a prxima sesso: no se pode pr o Rossio na rua da
Betesga

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 92 of 119

Vitor M. P. Vargas / IST


Latches

Sistemas Digitais (Part II)

Page 93 of 119

/ 14b Projecto (Entradas assncronas Preset e Clear)

hora de abordar as assim denominadas Entradas assncronas ou directas Preset e Clear. Qui um Projecto
ajude a apreender a sua importncia
Considere um concurso televisivo, onde se defrontam trs concorrentes. A cada um deles esto associados um
boto e uma lmpada. Qualquer concorrente que oua a pergunta do jri, e subentendido que pensa saber a
resposta correcta, pode de imediato clicar no respectivo boto mas somente se acende a lmpada daquele que
tiver sido mais rpido O sinal gerado pelo clicar num boto um impulso curto.
Ao lado, apresenta-se uma possvel codificao para os pertinentes predicados, e outrossim o logigrama de um
circuito para materializar o objectivo enunciado de que s se acenda a lmpada do concorrente mais rpido.
Devendo haver igualdade de tratamento para todos os concorrentes, expectvel que a parte do logigrama que
diz respeito a cada um seja idntica para todos eles Considere-se ento o que ocorre quando o mais rpido clica
no seu boto: porquanto ele gera um impulso curto, convm memoriz-lo numa latch D cuja entrada enable
esteja de antemo activa (ser a activao da sada dessa latch o que ir forar o acender da lmpada associada a
esse concorrente); por outro lado, h que, de imediato, desactivar as latches associadas aos outros concorrentes
Para conseguir tal objectivo, uma soluo aplicar as sadas das trs latches a um OR, e interligar a sada deste,
suposta activa a Low, s entradas enable das latches.
Acompanhe-se ento o evoluir dos acontecimentos:
admita-se que, inicialmente, as latches esto no estado 0; as lmpadas estaro apagadas, e, como as entradas
do OR esto todas a 0, a sua sada ficar High: as entradas enable das latches estaro de incio, todas activas;
quando o concorrente mais rpido clicar no seu boto, a respectiva latch ingressa de imediato no estado 1;
isso provoca o acender da respectiva lmpada, e mais ainda, fora a sada do OR a volver-se Low com isso
inactivando as entradas enable de todas as latches: doravante, no h margem para se acender outra lmpada
Esta soluo acarreta uma pergunta bvia: como que se regressa ao estado inicial, que talvez o jri tenha uma
pergunta mais no cardpio? A resposta passa por introduzir um par de entradas mais, sejam {S, R}, que habilitem a
fazer ingressar a latch num determinado estado (1 ou 0) independentemente da entrada D; isso feito mesmo
que a entrada enable esteja inactiva, e por isso mesmo elas so ditas de entradas assncronas ou directas!
Elas so designadas de entradas Preset e Clear: consoante aquela que for activada, assim a latch ingressa
respectivamente no estado 1 ou no estado 0. Ao lado, apresenta-se o logigrama j com entradas Preset e Clear
intuindo-se que o regresso ao estado inicial se consegue activando a entrada Clear e inactivando a entrada Preset.
De notar que, no smbolo da latch D, as entradas {S, R}, e ao contrrio do que ocorre com a entrada D, no so
prefixadas (por 1) precisamente para denotar que o seu efeito no depende da entrada enable!
Qualquer tipo de latch (SR ou D) ou flip-flop pode comportar essas entradas assncronas Preset e Clear.
Ao lado, apresenta-se o logigrama de uma latch SR com entrada enable e entradas assncronas Preset e Clear
activas a Low e o respectivo smbolo IEC. Repare-se:
quando ambas as entradas Preset e Clear esto inactivas {Preset=0 e Clear=0}, o logigrama volve-se no de
uma vulgar latch SR controlada concretizada com NANDs;
quando se activa a entrada Clear, as sadas dos NANDs {N, W} advm 1; se, ento, estiver inactiva a
entrada Preset, todas as entradas do NAND-E so 1, pelo que a latch ingressa no estado Q=0;
quando se activa a entrada Preset, as sadas dos NANDs {S, E} advm 1 (isto , a latch ingressa no estado
Q=1); se, ento, estiver inactiva a entrada Clear, todas as entradas do NAND-W so 1, pelo que a sada de
NAND-W advm 0.
De notar que, no smbolo, h dois pares de entradas {S, R}: um primeiro prefixado por 1 significando que
pode ter efeito na latch se e s se estiver activa a entrada enable; e um segundo que no prefixado
precisamente para denotar que podem alterar o estado da latch independentemente da entrada enable estar activa!
De notar que a sada, Q, dada sob as formas normal e complementar (o que, como ser pacfico, exacto
apenas se no se activarem simultaneamente ambas as entradas assncronas Preset e Clear.
H que acentuar que, se um integrado disponibiliza alguma entrada Preset ou Clear, ela no pode ficar no ar:
o projectista no pode pressupor que um pino no ar significa ficar a Low ou a High, tem mesmo que
garantir, a todo o momento, que lhe seja aplicado o pertinente nvel Low ou High!

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 94 of 119

Vitor M. P. Vargas / IST


Latches

Sistemas Digitais (Part II)

Page 95 of 119

/ Diagramas de Estado / Tabelas de Excitao

Um tijolo bsico de circuitos combinatrios (como seja um AND ou um XOR) pode ser caracterizado por uma
Tabela de Verdade, expresso algbrica ou Diagrama Temporal Semelhantemente, uma latch pode ser descrita
por um Mapa de Karnaugh, pela expresso que dela se deduz, dita de Equao caracterstica, e por um Diagrama
Temporal; mas h ainda duas outras maneiras o Diagrama de Estados e a Tabela de Excitao que tempo de
abordar. Isso feito adiante em torno da latch SR, deixando-se ao leitor aplicar latch D a metodologia abaixo
Recorde-se o Mapa de Karnaugh da latch SR.
1. Nele, patente que a coluna esquerda, associada ao estado Q(t), se desdobra por dois valores,
correspondentes a outros tantos estados: Q(t)=0, e Q(t)=1; a primeira etapa na construo do Diagrama de Estados
associar-lhes um par de crculos, etiquetados por, respectivamente, 0e 1, vid ao lado.
2. A segunda etapa traar setas, devidamente rotuladas, que reproduzam graficamente a evoluo dos dois
estados quando se aplicam as combinaes admissveis nas entradas da latch; nomeadamente,
2.1 A linha do Mapa correspondente ao estado Q(t)=0 estabelece que, desse estado, se pode evoluir para o
estado Q(t+1)=1 se e s se {S=1, R=0}; graficamente, isso traduz-se numa seta dirigida do crculo que representa o
estado Q=0 para aquele que representa o estado Q=1, seta essa rotulada por SR=10;
2.2 Essa linha estabelece que, no estado Q(t)=0, se pode continuar no mesmo estado Q(t+1)=0 se {S=0, R=0}
ou {S=0, R=1}; isso traduz-se numa seta dirigida do crculo que representa o estado Q=0 para ele mesmo, seta
essa rotulada por SR=00 e SR=01;
2.3 A linha correspondente ao estado Q(t)=1 estabelece que, desse estado, se pode evoluir para o estado
Q(t+1)=0 se e s se {S=0, R=1}; isso traduz-se numa seta dirigida do crculo que representa o estado Q=1 para
aquele que representa o estado Q=0, seta essa rotulada por SR=01;
2.4 Essa mesma linha estabelece que, no estado Q(t)=1, se pode continuar no mesmo estado se {R=0, S=0}
ou {S=1, R=0}; isso traduz-se numa seta dirigida do crculo que representa o estado Q=1 para ele mesmo, seta
essa rotulada por SR=00 e SR=10.
Por mor de simplificao, e quando a uma seta se associam vrios rtulos, convir (se isso for possvel)
condens-los: o par SR=00 e SR=01 condensa-se em SR=0X e o par SR=00 e SR=10 condensa-se em SR=X0.
Do Diagrama de Estados (ou mesmo do Mapa de Karnaugh), poder-se- deduzir a assim denominada Tabela de
Excitao: uma Tabela que clarifica como se deve excitar uma latch para que ela tenha uma dada evoluo.
1. A primeira etapa consiste em traar a estrutura da Tabela: esquerda, dispem-se duas colunas, associadas,
respectivamente a Q(t) (o estado actual) e a Q(t+1) (o estado seguinte); e no topo dispem-se duas linhas,
associadas s entradas da latch {S, R};
2. Visivelmente, nas colunas esquerda apresentam-se todas as possibilidades de evoluo da latch; o que h
agora a fazer varrer todas as suas linhas, de cima para baixo e inscrever na Tabela o que se deve aplicar nas
entradas para lograr cada evoluo em particular; concretamente,
2.1 A linha {Q(t)=0, Q(t+1)=0} deve ser entendida como uma interrogao: estando a latch inicialmente no
estado Q(t)=0, o que que se deve aplicar nas entradas {S, R} para que ela permanea nesse mesmo estado? O
Diagrama de Estados esclarece-o: devem aplicar-se os valores {S=0, R=X} e so eles mesmos o que se inscreve
nas colunas {S, R} da linha {Q(t)=0, Q(t+1)=0};
2.2 A linha {Q(t)=0, Q(t+1)=1} uma outra interrogao: estando a latch inicialmente no estado Q(t)=0, que
deve aplicar-se nas entradas para que ela mude para o estado Q(t+1)=1? Pelo Diagrama, deve aplicar-se {S=1, R=0}
e so estes valores o que se inscreve nas colunas {S, R} da linha {Q(t)=0, Q(t+1)=1};
2.3 A linha {Q(t)=1, Q(t+1)=0} outra interrogao: estando a latch inicialmente no estado Q(t)=1, que deve
aplicar-se nas entradas para que ela mude para o estado Q(t+1)=0? Pelo Diagrama, deve aplicar-se {S=0, R=1} e
so estes valores o que se inscreve nas colunas {S, R} da linha {Q(t)=1, Q(t+1)=0};
2.4 A linha {Q(t)=1, Q(t+1)=1} a interrogao final: estando a latch inicialmente no estado Q(t)=1, que deve
aplicar-se nas entradas para que ela permanea nesse mesmo estado? Pelo Diagrama, deve aplicar-se {S=X, R=0}
e so estes valores o que se inscreve nas colunas {S, R} da linha {Q(t)=1, Q(t+1)=1}.
Estes vrios modos de caracterizar uma latch so todos eles, importantes:
o Mapa de Karnaugh e o Diagrama de Estados, porque a partir de qualquer deles se deduzem os outros;
a Equao caracterstica, que a ela que um espio recorre para descobrir para que serve um circuito;
a Tabela de Excitao, que a ela que um projectista recorre para desenhar um Circuito Sequencial.

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 96 of 119

Vitor M. P. Vargas / IST


Latches

Sistemas Digitais (Part II)

Page 97 of 119

/ Anlise de Circuitos com Latches

Que a Equao caracterstica o instrumento a que um espio recorre para descobrir para que serve um
circuito pode testemunhar-se com um exemplo concreto. A meno ao espio pode levar o leitor a saltar este
assunto, que no consigo, mas desengane-se: quando um projectista se engaja no desenho de um circuito, e
antes de o materializar de facto, e para evitar posteriores dissabores, h que fazer de espio: conferir que o
circuito que realizou tem mesmo o comportamento requerido e este passo de maneira nenhuma se deve omitir!
Considere-se o par de logigramas ao lado, cada qual com uma latch D e uma latch SR ambas enabled pela
mesma entrada enable; designem-se de {Q1, Q0} os respectivos estados. O primeiro passo na anlise do circuito
escrever as expresses que traduzem o comportamento da sada do circuito e das entradas das latches. Elas so as
mesmas para os dois logigramas: conquanto geograficamente diferentes, vm a ser funcionalmente equivalentes!
No logigrama esquerda, as latches dispem-se horizontalmente ao lado uma da outra; j no da direita, elas
dispem-se verticalmente uma por baixo da outra. E natural a curiosidade: qual a prefervel?
resposta aqui sustentada no ser alheio o conceber a sada dum circuito como funo das entradas no s
das externas, mas tambm das internas: as que suportam o seu Estado, e que so as latches. Permanecendo fiel
localizao esquerda das entradas dum logigrama, falta decidir a ordem Ora, no mapa de Karnaugh feito para
o 14a Projecto (e nos mapas relativos s latches estudadas), os estados foram sempre associados s colunas
esquerda o que d s entradas internas o direito a serem julgadas as de maior peso Concluso: o autor
prefere situar esquerda as entradas externas e as latches, com as primeiras por cima; excepes a esta filosofia
so os logigramas que acompanham o desenvolvimento das latches e flip-flops (veja-se a introduo das entradas
enable, Preset e Clear), em que por mor de eles advirem mais expressivos as latches se situam direita
Tendo em mira o desenho do Diagrama de Estados, o segundo passo substituir as expresses das entradas das
latches nas respectivas equaes caractersticas. O resultado so expresses que exprimem o estado seguinte de
cada latch em funo dos estados das duas latches e da entrada externa X nalgum instante.
O terceiro passo converter tais expresses nas assim denominadas Tabela de Transies e Sadas que
indicam, para cada combinao das entradas internas e externas {Q1, Q0, X} nalgum instante t, a sada Z do
circuito nesse instante e os estados das latches no instante seguinte t+1. Existiro trs Tabelas, para Z, Q1 e
Q0; elas so a duas dimenses: as colunas esquerda representam as latches {Q1, Q0}; a linha no topo representa
a entrada externa X. Estando envolvidas duas latches, e pois que cada uma pode assumir dois valores {Q=0 e
Q=1}, o circuito poder assumir quatro estados distintos, que convir identificar por nmeros: {0, 1, 2 e 3}.
O preenchimento das Tabelas no dever provocar engulhos. Veja-se o caso da primeira linha, para a qual
{Q1=Q0=0}; substituindo estes valores nas expresses de Z e dos estados seguintes das latches, obtm-se Z=0,
Q1(t+1)=0, Q0(t+1)= X ; isto sugere inscrever 00, 00 e 10 na primeira linha de Z, Q1 e Q0, respectivamente.
O passo seguinte ser aglutinar as duas Tabelas dos estados seguintes das latches, Q1 e Q0, numa s Tabela,
dita do estado seguinte do circuito, Q1Q0(t+1); veja-se o caso da primeira linha, em que, consoante X=0 ou X=1,
assim advm {Q1=0, Q0=1} ou {Q1=0, Q0=0}; aglutinar significa preencher a primeira linha da nova Tabela com
01 e 00, respectivamente nas colunas X=0 e X=1. Para as restantes linhas, a metodologia a mesma
Convm reescrever a Tabela obtida numa Tabela de Estados/Sada, em que cada par de bits Q1Q0 entendido
como o cdigo binrio dum nmero, e ele substitudo pela sua representao na base 10; essa Tabela descreve
para que Estado evoluem os Estados {0, 1, 2 e 3} do circuito, medida que se vai alterando a entrada X.
Resta desenhar o Diagrama de Estados: a cada estado, associa-se um crculo, etiquetado com um nome ou
cdigo binrio; depois, traam-se setas rotuladas, descrevendo graficamente a Tabela obtida. Veja-se a primeira
linha, relativa ao estado E=0: quando X=1, a sada Z=0, e o estado seguinte ser E=0; isso volve-se numa seta
dirigida do crculo 0 para ele mesmo rotulada por X=1/Z=0, ou, como o manda a lei do menor esforo, 1/0
Dado o Diagrama de Estados, advm trivial traar o Diagrama Temporal da evoluo do circuito, a partir de
algum estado, seja {Q1=0, Q0=0}, e medida que X varia: enquanto X=1, mantem-se Z=0, e o estado continua
sendo 00; quando advm X=0, continua sendo Z=0, mas, quando enable=1, em t4, ingressa no estado 01 e a
permanece enquanto X=0; quando ocorre X=1, advm Z=1, e, em t7, ingressa no estado 11 e a fica enquanto
X=1; aquando de X=0, continua sendo Z=1, e, em t9, ingressa no estado 10 e a se mantm enquanto X=0; etc
(Nota: o logigrama foi concebido de forma a se evitarem problemas crticos de circuitos assncronos: h s uma
varivel externa e, quando a sua alterao leva a uma mudana no estado do circuito, de facto s uma das latches
muda de estado, e, enquanto essa varivel no voltar a mudar, tambm o estado do circuito no volta a mudar).

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 98 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Flip-flops

Page 99 of 119

/ 15a Projecto

Esta sesso encerra a abordagem dos tijolos bsicos prprios dos circuitos Sequenciais. Debruar-se-
sobretudo sobre flip-flops. Como nas outras sesses, ir-se- desenrolar a partir de um Projecto concreto...
Considere-se que, para acender ou apagar uma lmpada, foi disponibilizado um boto de presso, caracterizado
pelo seguinte: quando premido, emite um impulso de curta durao, retornando depois situao de repouso.
Ao lado, traou-se um Diagrama Temporal ilustrando como se pretende que evolua o estado da lmpada:
Pressupondo que a lmpada est inicialmente apagada, ela acende em t1, o instante em que premido o
boto e ele emite um impulso curto; e continua acesa mesmo quando, em t2, finda esse impulso;
Quando, em t3, o boto volta a ser premido e volta a emitir um impulso , a lmpada apaga-se; e continua
apagada mesmo quando, em t4, esse impulso se esvanece;
A continuao intui-se
Decidindo-se pela codificao ao lado, um projectista concebeu um logigrama envolvendo uma latch SR
enabled. A justificao apontada pelo artista foi a seguinte:
B est directamente ligado entrada enable da latch; com isso, enquanto o boto no for premido, ela
encontra-se disabled pelo que a lmpada mantm o seu estado (aceso ou apagado);
Isto : somente quando ele for premido que a latch advm enabled (e portanto poder mudar de estado); o
que resta fazer providenciar que o que ento estiver aplicado nas entradas {S, R} a force mesmo a mudar de
estado; ora, isso consegue-se com as ligaes estabelecidas no logigrama: as subsequentes expresses para as
entradas {S, R}, quando substitudas na equao caracterstica da latch, conduzem a que, quando o boto
premido e portanto a latch advm enabled, ela mude de estado com o que, se a lmpada estiver acesa, se apague
(e vice-versa)
Ser que o logigrama estar correcto que conduz mesmo ao Diagrama Temporal acima? A resposta : no,
est errado! Para o compreender, convir olhar mais em pormenor a sucesso de eventos a partir do momento em
que de facto se prime o boto
Suponha-se que, inicialmente, Q se encontra no estado 0 e portanto S=1 e R=0; suponha-se tambm que
B 0;
Admita-se, ento, que o boto premido: B volve-se 1 e a latch fica enabled:
Um certo tempo tpHL depois, Q , e por conseguinte tambm S, advm 0;
E um certo tempo tpLH depois, Q, e por conseguinte tambm R, advm 1;
Quer dizer: as entradas {S, R} mudaram de valor, passaram a ser 0 e 1, respectivamente
Mas, se o impulso curto no for to curto assim, B ainda continuar permanecendo 1
Com o que a latch se manter enabled:
Um certo tempo tpLH depois, Q , e por conseguinte tambm S, advm 1;
E um certo tempo tpHL depois, Q, e por conseguinte tambm R, advm 0;
Quer dizer: as entradas {S, R} mudaram outra vez de valor, passaram a ser 1 e 0, respectivamente
Ou seja: foi reposta a situao imediatamente a seguir ao premir do boto e a continuao adivinha-se: uma
oscilao {apagada acesa apagada acesa apagada } da lmpada, que acabar quando terminar o
impulso curto detonado pelo premir do boto, mas de que no se sabe como acabar: se acesa, se apagada
claro que o problema ficaria resolvido se, quando acontecesse o enable da latch, fosse permitida uma nica
alterao no estado da latch e precisamente a este assunto que sero dedicadas as prximas pginas.

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 100 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Flip-flops

Page 101 of 119

/ Flip-flop SR Master-slave

Como garantir que, quando ocorrer o enable da latch, haja uma nica alterao no seu estado? Revendo a
evoluo temporal do logigrama proposto para o 15a Projecto, claro o seu calcanhar de Aquiles: reside no facto
de as entradas {S, R} dependerem do Estado da prpria latch mudando quando este muda , e portanto
habilitando a que, quando advm activa a entrada enable, o seu estado sofra duas (ou mais) mudanas. No sentido
de o evitar, a soluo ser deixar que o estado da latch mude somente depois de a entrada enable ficar inactiva!
Uma primeira estratgia para o conseguir a assim denominada estrutura master-slave: em vez de usar uma
nica latch SR, recorre-se a duas latches em srie, ditas de mestre e escravo, vid ao lado e de tal modo
interligadas a uma entrada clock externa que as respectivas entradas enable C ficam activas em momentos
diferentes (quando uma delas, seja Cmaster, est activa, a outra, Cslave, estar inactiva, e vice-versa).
A lgica subjacente a seguinte: suponha-se que, em dado momento, estando estveis as entradas externas {S,
R}, e portanto estveis as entradas {S, R} da latch mestre, advm activa a entrada clock. Em consequncia disso, a
entrada enable Cmaster fica activa e o estado dessa latch pode mudar (isso dependendo, claro, dos valores
aplicados em {S, R}). Por outras palavras: a sua sada, seja Qmaster, pode advir diferente o que equivale a dizer
que as entradas {S, R} da latch escravo podem ficar diferentes. Porm, essa latch est ento impedida de mudar de
estado pois que a respectiva entrada enable Cslave se encontra inactiva ( a consequncia do inversor entre a
entrada clock e Cslave); por outras palavras, a sua sada, Qslave, mantm-se imperturbvel
Algum tempo mais tarde, a entrada clock advm inactiva por conseguinte inactivando a entrada enable
Cmaster, porm activando a entrada enable Cslave; com isso, o valor na sada Qmaster propaga-se para a latch
escravo, isto : se Qmaster=0, ir ficar Q=Qslave=0, e, se Qmaster=1, ficar Q=Qslave=1.
Visto globalmente: quando advm activa a entrada clock, regista-se temporariamente na latch mestre o valor
com que deve ficar a sada terminal Q mas somente depois de aquela ficar inactiva que esse valor
propagado para a latch escravo e apresentado na sada Q da estrutura.
Consequncia disso que a sada visvel Q da estrutura muda no flanco dos impulsos recebidos na entrada
clock e que neste caso dito descendente (falling) ou negativo porque corresponde transio 10 nessa
entrada; se se quisera que Q mudasse no flanco ascendente (rising) ou positivo, isto , na transio 01 na
entrada clock, bastaria alterar adequadamente a localizao do inversor A um tijolo bsico com esta propriedade
d-se o nome de flip-flop e, neste caso, trata-se de um flip-flop SR; e, ao flanco dos impulsos de relgio em que
muda a sada visvel Q da estrutura d-se o nome de flanco de comutao (ou activo) do relgio.
No demais comparar as sadas visveis de latches e flip-flops: a de uma latch reage enquanto a entrada
enable estiver activa, j a de um flip-flop reage s quando o valor na entrada clock muda ou, no calo aplicvel,
no flanco (descendente ou ascendente) do relgio.
Ao lado, apresenta-se o smbolo IEC do flip-flop SR master-slave. As duas entradas {S, R} so activas a High
e, como expectvel, os seus rtulos so prefixados por 1, e C sufixado por 1. A sada, Q, dada sob as
formas normal e complementar e sinalizadas com , smbolo de atraso que assinala que mudam no flanco
descendente de C.
A ttulo de completude do 15a Projecto, ao lado apresenta-se o circuito de controlo da lmpada todavia
usando agora um flip-flop SR master-slave reagindo no flanco descendente.
O Diagrama Temporal reflecte a alterao feita, de substituir a latch por um flip-flop: quando B emite um
impulso curto
Pressuponha-se que a lmpada est inicialmente apagada;
No instante em que premido o boto e ele emite um impulso curto , o estado da latch mestre altera-se,
mas o estado da latch escravo mantm-se impvido portanto continuando a lmpada apagada;
Quando esse impulso se esvanece, o estado da latch escravo altera-se com o que a lmpada se acende , mas
o estado da latch mestre mantm-se impvido;
A continuao intui-se

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 102 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Flip-flops

Page 103 of 119

/ Flip-flop JK Master-slave

Sendo arriscado activar em simultneo ambas as entradas de uma latch SR, uma soluo para o evitar garantir
que, a cada momento, elas sejam complementares uma da outra e foi esse o raciocnio que conduziu latch D.
Resultado de uma filosofia diferente o assim designado flip-flop JK (concebido por Jack Kilby): tem um
mapa de Karnaugh em tudo semelhante ao de uma latch (ou flip-flop) SR com a diferena de que, sim, se podem
activar em simultneo ambas as entradas {J, K}, a consequncia sendo o flip-flop mudar de estado, vid ao lado.
Com isso, o flip-flop JK apresenta, ademais dos modos de funcionamento de uma latch SR, um outro dito de
Toggles: o estado do flip-flop JK muda quando ambas as entradas so 1.
Quanto ao correspondente Diagrama de Estados, ele vem a ser muito parecido com o da latch SR a diferena
sendo que, agora, h uma outra maneira de, a partir do estado Q(t)=0, se ingressar no estado Q(t+1)=1, e vice-versa.
Como materializar um flip-flop assim? eis a pergunta que agora se impe. A resposta da lei do menor esforo
ser natural: partir daquilo que j se sabe fazer, um flip-flop SR, e construir uma malha combinatria a aplicar nas
entradas {S, R}, de modo que o conjunto funcione como um flip-flop JK, vid ao lado.
Por noutras palavras: j conhecida a equao caracterstica dum flip-flop SR; quanto equao de um flipflop JK, no custa deduzi-la do mapa de Karnaugh ao lado. O desafio claro: que que se deve aplicar nas
entradas {S, R}, para que a equao caracterstica do conjunto seja a do flip-flop JK? natural que o leitor olhe
para as equaes e exclame: canja: basta fazer S J Q e R=K!. Porm, esta resposta est errada: se o estado
inicial fosse Q=0, e J e K fossem, ambos, 1, sucederia {S=1 e R=1} o que, j se repetiu, arriscado!
O mtodo correcto de encontrar a resposta fazer o seguinte, vid ao lado:
Porquanto se pretende exprimir {S, R} em funo de {J, K} e Q, h que elaborar os mapas de Karnaugh de
{S, R}, em que esquerda se dispem trs colunas para, precisamente, {Q(t), J e K};
Aps o que, como expectvel, se preenchem as trs colunas com todas as (8) combinaes dessas entradas;
A etapa seguinte usar a equao caracterstica do flip-flop JK, ou talvez mais fcil ainda, o seu Diagrama
de Estados, para preencher uma coluna, Q(t+1); por exemplo, nas primeiras duas linhas trata-se de discernir qual o
estado seguinte, Q(t+1), quando o actual Q(t)=0 e as entradas so J=0 e K=X (verso condensada de K=0 ou
K=1}; o Diagrama mostra que ele Q(t)=0 e esse valor, 0, que se inscreve na coluna Q(t+1);
Enfim, linha a linha, preenchem-se as colunas {S, R}, recorrendo Tabela de Excitao do flip-flop SR; por
exemplo, nas primeiras duas linhas verifica-se que Q(t)=0 e Q(t+1)=0 o que remete para a seguinte pergunta: como
excitar as entradas {S, R}, para que acontea essa transio de estados (00)? A resposta da Tabela de
Excitao {S=0, R=X} e so estes valores {0, X} que se inscrevem nas colunas {S, R}, respectivamente;
A ltima etapa , claro, lograr as expresses algbricas simplificadas de {S, R} e desenhar o logigrama
Convm fixar esta metodologia: os cinco passos pautando o desenho de um flip-flop JK a partir de um flipflop SR so, como se ver na Parte III deste itinerrio, aqueles que se repetidamente se usaro para a sntese de
circuitos Sequenciais (sncronos).
Ao lado, apresentam-se smbolos IEC do flip-flop JK master-slave. Em ambos, as entradas {J, K} so activas a
High e, como expectvel, os seus rtulos so prefixados por 1, e C sufixado por 1. A sada, Q, dada
sob as formas normal e complementar e sinalizadas com , significando que mudam no flanco de C
descendente ou ascendente, consoante se trata do smbolo da esquerda ou da direita.
Uma ltima nota: ter o leitor verificado que, na precedente sesso, se abordaram as latches SR e D mas no
se mencionou qualquer latch JK A razo tem a ver com o modo Toggle, como se pode constatar no Diagrama
Temporal ao lado, em que se pressups uma latch JK isto , que reage enquanto a entrada enable estiver activa,
que no apenas num seu flanco.
Inicialmente, o estado Q=0 aps o que as entradas {J, K} assumem diferentes valores:
Quando {J=0, K=0}, o estado no se altera, quando a entrada enable advm activa, continua Q=0;
Quando {J=1, K=0}, o estado torna-se Q=1, quando a entrada enable advm activa, e a continua;
Quando {J=0, K=1}, o estado fica sendo Q=0, quando a entrada enable advm activa, e a continua;
Quando {J=1, K=1}, o estado muda para Q=1 (toggles) quando a entrada enable advm activa; mas,
continuando ela activa, volta a mudar (toggles), agora para Q=0, e depois para Q=1, etc H um toggle contnuo,
razo para no se poder usar um tijolo JK que no seja master-slave (ou edge-triggered, como adiante se ver).

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 104 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Flip-flops

Page 105 of 119

/ 15b Projecto

Esta sesso comeou, recorde-se, tendo em vista sintetizar um circuito para controlar o acender e apagar de
uma lmpada a partir dos impulsos gerados por um boto de presso tendo-se chegado ao logigrama ao lado.
Admita-se, agora, que chegava s mos do leitor um logigrama assim e lhe pediam para o analisar
As etapas para tal so conhecidas: determinar as expresses das entradas {S, R} e aplic-las na equao
caracterstica do flip-flop SR chegando a uma expresso para o estado seguinte em funo do estado actual
O traado do Diagrama temporal reflecte-o: sempre que findar o impulso gerado por B e portanto houver um
flanco descendente na entrada de relgio , o estado do circuito muda: de 0 para 1 ou de 1 para 0
A pergunta resume-se agora ao seguinte: o que isto, este o Diagrama temporal de qu? A resposta mais
imediata ser: isto um Divisor de Frequncia (por 2)! E, retorquir-se-: mas que isso, de Divisor de
Frequncia? Para o apreender, um bom exemplo ser um relgio de segundos, minutos e horas:
Admita que ele dispe de trs ponteiros alimentados por impulsos {Is, Im, Ih}: muito simplificadamente, cada
um deles avana um tick quando finda o impulso que lhe diz respeito. Pressuponha, ainda, que ele se suporta sobre
um circuito electrnico gerando um impulso Is por segundo. Sempre que um impulso Is finda, o ponteiro dos
segundos avana 1 tick; quando tiverem sido gerados 60 impulsos Is, produz-se o impulso Im e o ponteiro dos
minutos avana 1 tick; quando tiverem sido gerados 60 impulsos Im, produz-se o impulso Ih e o ponteiro das
horas avana 1 tick Circuitos assim (que, por N impulsos recebidos, produzem 1 impulso), dizem-se Divisores
de Frequncia (por N) do que se depreende que um relgio ser um encadeado de Divisores de Frequncia.
Isto dito, ser compreensvel a resposta acima: isto um Divisor de Frequncia (por 2)! Com efeito, o
Diagrama testemunha que, aps recebidos 4 impulsos (ou, equivalentemente, aps 4 flancos descendentes) em B,
foram produzidos 2 impulsos (e 2 flancos descendentes) em L o que se volve numa proporo 2:1.
Os impulsos na sada L do circuito tm uma durao no to curta como os recebidos em B mas, se se
quiser que eles adquiram uma durao similar, bastar acrescentar um AND, vid ao lado.
E tendo apreendido que um relgio ser um encadeado de Divisores de Frequncia, intui-se como lograr um
Divisor de Frequncia por 4: bastaro dois Divisores de Frequncia por 2, designem-se eles de {Q1 e Q0},
dispostos em srie de tal modo que a entrada de relgio do primeiro, Q0, seja directamente alimentada por B,
e a entrada de relgio do segundo, Q1, seja alimentada pela sada, Q0, do primeiro.
Assim fazendo, acontecer o seguinte: por cada par de flancos descendentes em B, ocorrer um flanco
descendente em Q0 e por cada par de flancos descendentes em Q0, ocorrer um flanco descendente em Q1;
no conjunto, portanto, por cada quatro flancos descendentes em B, ocorrer um flanco descendente em Z.
O AND que produz a sada Z destina-se, claro, a lograr impulsos com uma durao similar aos de B.
Como j aconteceu na sesso anterior (em que se analisou um circuito com uma latch D e uma latch SR), este
ltimo circuito, com dois flip-flops SR, vem a apresentar quatro estados; designando de {Q1 e Q0} os estados
individuais dos flip-flops, portanto atribuindo um peso menor a Q0, eles vm a memorizar ciclicamente os
cdigos binrios dos smbolos da base 4. Por tal motivo, ele designa-se contador cclico ascendente de mdulo 4.
No caso, e em virtude do modo como os flip-flops reagem, trata-se dum contador assncrono. Para apreender o
significado deste adjectivo, reparem-se nos momentos {t1, t2, t3 e t4} assinalados no Diagrama Temporal:
admita-se que, inicialmente, os estados dos flip-flops so {Q1=0 e Q0=0}, ou, mais compactamente, 00;
no instante t1, ocorre um flanco descendente em B, pelo que o flip-flop Q0 muda de estado com o que o
circuito passa ao estado 01;
no instante t2, ocorre novo flanco descendente em B, pelo que o flip-flop Q0 muda outra vez de estado
passando o circuito ao estado 00; mas isso significa um flanco descendente em Q0, pelo que o flip-flop Q1
vem tambm ele a mudar de estado com o que o circuito passa enfim ao estado 10. Assincronismo significa
precisamente este fenmeno de os flip-flops no reagirem em simultneo: Q1 muda s depois de Q0 mudar.
O circuito transita ento, de facto, pelos estados 00 01 00 10 e no como a sequncia ao lado
levaria a entender Claro que o intervalo de tempo em que o circuito permanece no estado intermdio 00 entre
01 e 10 assaz curto, cerca do tempo de propagao do flip-flop SR (e um fenmeno anlogo ocorre na
transio dos estados 11 para 00, em t4). H aplicaes para as quais esse intervalo de tempo desprezvel
mas outras h para as quais no o , pelo que oportunamente se tero de abordar contadores sncronos
Deixa-se ao leitor o desenho dum logigrama dum contador assncrono cclico ascendente de mdulo 8: o tempo
sendo escasso, convir dedic-lo a contadores cujo mdulo no seja potncia de 2 e o que se far j de seguida.

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 106 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Flip-flops

Page 107 of 119

/ 15c Projecto

Pressupondo que j no haver dvidas quanto construo de um contador cujo mdulo seja potncia-de-2,
suponha-se ento que se pretende um contador cclico de mdulo 3 isto , que a sequncia de contagem envolva
apenas trs nmeros, concretamente {0, 1, 2}, ou, em binrio: {00, 01, 10}
Um projectista deduziu, e bem, que, para suportar trs estados diferentes, um s flip-flop seria insuficiente
tendo ento proposto um circuito com dois flip-flops, interligados conforme ao logigrama ao lado; na prtica,
resolveu partir do logigrama dum contador de mdulo-4, e fazer-lhe alguns ajustes; a lgica do artista foi esta:
A sada, Z, do circuito deve volver-se num impulso cujo flanco descendente dever acontecer quando,
estando o circuito no estado 10, ocorra o flanco descendente em B; ora, isso consegue-se detectando essa
situao o que remete para um implicante primo: concretamente um AND com as pertinentes entradas
Sem quaisquer alteraes (no logigrama do contador de mdulo-4), o flip-flop Q0 estaria oscilando, ao ritmo
dos impulsos em B, entre os estados 0 e 1; o que agora se requer que, quando ocorrer o flanco descendente
em Z, Q0 permanea no estado 0 (em vez de ingressar no estado 1); ora, do Diagrama de Estados dum flipflop SR, basta, para tal, que, quando ocorrer esse flanco descendente, se esteja forando S0=0 ou seja: enquanto
Z=0, a entrada S0 dever comportar-se como no contador de mdulo-4 mas, quando Z=1, ela deve ser forada a
tomar o valor 0; isso remete para um OR com as pertinentes entradas, e com sada activa a Low
Sem quaisquer alteraes (no logigrama do contador de mdulo-4), o flip-flop Q1 estaria oscilando, ao ritmo
dos impulsos em Q0, entre os estados 0 e 1; o que agora se requer que, quando ocorrer o flanco descendente
em Z, Q1 transite para o estado 0 (em vez de continuar no estado 1); ora, do Diagrama de Estados, basta,
para tal, que, quando ocorrer esse flanco descendente, se esteja forando S1=0 e R1=1; ora, se as entradas {S1 e R1}
estiverem interligadas como no contador de mdulo-4, isso fica automaticamente garantido; s resta providenciar
para que, ento, a respectiva entrada de relgio esteja enabled; globalmente, esta deve, pois, funcionar assim:
enquanto Z=0, ela dever comportar-se como no contador de mdulo-4 mas, quando Z=1, ela deve ser forada a
tomar o valor 1 para que, aquando do flanco descendente em Z, tambm nela ocorra um flanco descendente
Ser que o logigrama estar correcto que resulta mesmo num contador cclico de mdulo 3? A resposta :
no, est errado! Para o compreender, convir olhar mais em pormenor a sucesso de eventos em torno do instante
em que ocorre o flanco descendente em B quando o circuito se encontra no estado 10
Ao lado, o Diagrama Temporal da esquerda apresenta uma evoluo dos estados de um contador de mdulo 3.
Todavia, veja-se mais de perto o que ocorre aps o circuito proposto ingressar no estado 10:
Algum tempo depois, seja no instante t3, ocorre um impulso em B, isto : B advm 1
ficando ento activas as entradas do AND que produz Z que, aps um tempo tpLH, advm ento 1;
Com isso, a sada do OR muda: aps um tempo tpHL a sada S0 fica 0, e, tpLH depois, Clk1 advm 1;
Dir o artista que mesmo isso que se quer: quando findar o impulso em B, emt4, Q0 tomar o valor 0 e,
aps um tempo tpHL, Z retornar a 0 com o que Clk1 retornar tambm a 0, e Q1 tomar o valor 0
Mas, de facto, e em virtude do modo como o flip-flop R master-slave funciona, as coisas no se passaro assim:
Clk0 est interligada a B pelo que, quando este, em t3, advir 1, o mestre ir reagir Ora, ento, verifica-se
{S0=1 e R0=0} com o que o mestre ingressar no estado QMaster=1. Dir o artista que, algum tempo tpHL + tpLH
depois, S0 tomar o valor 0 Todavia, e o logigrama da latch SR mostra-o claramente, isso no mudar o
estado QMaster: com R=0, e desde que Q se volva 1, no mais deixar de o ser! A este fenmeno d-se o nome
de 1s catching (pois ser o suporte natural para concretizar um circuito que detecte se numa linha ocorreu algum
1). Quando, ento, em t4, ocorrer o flanco descendente em B, o escravo adquirir o estado do mestre, isto ,
Q0 volver-se- em 1 e, no, em 0, como se esperaria de um contador de mdulo-3
Como resolver este problema? Note-se que ele acontece porque, enquanto o mestre est enabled, as suas
entradas no permanecem constantes: S0, antes de tomar o valor 0, chegou a ser 1; bem vistas as coisas, o
problema ficaria solucionado se o mestre ficasse enabled somente depois de S0 tomar o valor 1 ou, visto de
outra maneira: um tudo nada antes de ficar disabled! A um flip-flop que reage assim isto , o seu estado
seguinte depende das entradas tais como esto no instante preciso em que ocorre o flanco de comutao do
relgio d-se o nome de flip-flop edge-triggered. No caso, e para o lograr, bastaria, e em vez de interligar
directamente a linha B a Clk0, interpor um circuito que encurtasse drasticamente o intervalo de tempo em que o
mestre ficasse enabled mas convm passar em revista outras estratgias

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 108 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Flip-flops

Page 109 of 119

/ Flip-flops edge-triggered

O logigrama proposto para o 15c Projecto exibe o que no se deve considerar excepo: a oscilao, entre 0 e
1, das entradas dos flip-flops, antes do flanco de comutao. Em virtude das suas consequncias, convir, ento:
ou, se se usar um flip-flop master-slave, garantir que as entradas no mudam enquanto o clock estiver High;
ou conceber um outro tipo de flip-flops de tal modo que o estado seguinte dependa s dos valores que esto
aplicados s suas entradas no preciso instante em que ocorre o flanco de comutao. Flip-flops assim so ditos de
edge-triggered. Como sero eles por dentro? Eis trs das estratgias seguidas para os lograr:
Uma primeira estratgia, aplicvel a, por exemplo, uma latch D enabled, foi j sugerida: consiste em detectar
o instante em que ocorre o flanco de comutao e, nesse momento, gerar um impulso muito breve (para a activar)
Ao lado, est esquematizada a estrutura global de um flip-flop dotado de um circuito cumprindo esse objectivo:
pressupondo que do gerador de impulsos de relgio, esto chegando impulsos, o assim denominado detector de
flancos transforma-os em impulsos bem mais breves e so eles que so aplicados na entrada enable da latch.
Como ser esse detector l por dentro? Ao lado, apresentam-se dois esquemas possveis, para equipar flipflops reagindo aos flancos, respectivamente ascendente e descendente do relgio.
esquerda, usam-se trs (ou mais) inversores em srie para atrasar muito ligeiramente os sinais recebidos em
Clk; designando de Clkd a sada do ltimo, o AND entre Clk e Clkd resulta numa sucesso de impulsos
extremamente breves, gerados precisamente aquando do flanco ascendente dos impulsos de relgio originais.
Isto compreendido, no dever ser necessrio gastar tempo com o esquema ao lado direita
(Abra-se um parntesis: esta estratgia pouco fivel porque, consideradas as tolerncias nos tempos de atraso
dos inversores, no possvel garantir uma durao mnima para o impulso gerado)
Ao lado, apresentam-se smbolos IEC de flip-flops D edge-triggered. A entrada D activa a High e, como
expectvel, o seu rtulo prefixado por 1, e C sufixado por 1. C sinalizada com >, que assinala que o
flip-flop edge-triggered; se for o caso de ele reagir ao flanco descendente de C, h que o assinalar, mediante o
indicador de polaridade. A sada, Q, dada sob as formas normal e complementar. (Os smbolos IEC de flipflops SR ou JK edge-triggered so anlogos, a diferena sendo que as entradas so rotuladas {S, R} ou {J, K})
Uma segunda estratgia, que se volve no flip-flop D master-slave, baseia-se no facto de a latch D no sofrer
do fenmeno 1s catching: usa, como mestre, uma latch D (e no SR), vid ao lado. Com efeito, enquanto Clk=1,
Qmaster acompanha pari passu o valor na entrada D, ignorando transitrios que nela tenham eventualmente
ocorrido com o que, quando Clk advm 0, o que o escravo fica memorizando o ltimo valor de D.
Uma terceira estratgia usar estruturas no master-slave que vieram entretanto a ser concebidas.
Ao lado, apresenta-se um exemplo assim: um flip-flop D edge-triggered positivo constitudo por trs latches
{Latch0, Latch1, Latch2} sabiamente interligadas. No custar entender o seu funcionamento:
quando Clk=0, ambas as sadas Q0 e Q1 ficam sendo 1; com isso, a sada Q0 da Latch0 advm igual a
D , e, consequentemente, a sada Q1 da Latch1 advm igual a D . Repare-se que a circunstncia Q0=Q1=1
conduz a que as sadas da Latch2 permanecem inalteradas durante todo o intervalo de tempo em que Clk=0;
podero, eventualmente, ocorrer oscilaes na entrada D que elas se iro repercutir pari passu nas sadas

{Q 0, Q1} com o que estas ficaro reflectindo o valor nessa entrada quando ela enfim estabilizar;
quando Clk=1, a sada Q1 advm igual a D ; e, consequentemente, a sada Q0 toma o valor D ;
poder-se-ia suspeitar que eventuais alteraes em Q0 e Q1 se volveriam em alteraes nas sadas {Q0, Q1}
das latches da esquerda (em virtude dos feedback assinalados) mas tal no sucede: o leitor poder conferir por si
que elas permanecem exactamente como estavam antes do flanco ascendente do relgio, Q0= D e Q1= D ;
isso tem uma consequncia directa: a entrada R 1 no muda; em consequncia, Q1 no sofre mais alteraes
e por isso mesmo tambm Q0 no as sofre: presumindo que Clk advm 1 somente aps D estabilizar, Q0 e
Q1 transitaram, de um golpe s, sem quaisquer oscilaes de permeio, para os valores finais!
globalmente, constata-se que, de uma situao (Clk=0) em que Q0=Q1=1, e portanto as entradas da Latch2
so iguais, se evoluiu para uma situao (Clk=1) em que so complementares uma da outra; por outras palavras: s
uma delas se alterou, sem ter havido quaisquer transitrios O resultado que o estado imediato do flip-flop aps
o Clk ter passado a ser 1 vem a ser Q2= D : trata-se mesmo de um flip-flop D edge-triggered positivo.

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 110 of 119

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)


Flip-flops

Page 111 of 119

/ Flip-flop T

Alm dos flip-flops SR, D e JK, o mercado oferece um outro, dito de flip-flop T que pode conceptualmente ser
entendido como o resultado da interligao de ambas as entradas de um flip-flop JK, vid ao lado.
O respectivo Diagrama de Estados encontra-se ao lado; exibe dois modos de funcionamento:
Quando T=0 modo de funcionamento dito de Hold , o estado mantm-se tal como era: se, antes, era
Q(t)=0, depois continua sendo Q(t+1)=0 e se, antes, era Q(t)=1, depois continua sendo Q(t+1)=1;
Quando T=1 modo de funcionamento dito de Toggles , o estado muda (de 0 para 1 ou vice-versa)
Vid ao lado o smbolo IEC de um flip-flop T edge-triggered reagindo ao flanco descendente de C. A entrada
T activa a High e, como expectvel, o seu rtulo prefixado por 1, e C sufixado por 1. A entrada C
sinalizada com > e com o indicador de polaridade. A sada, Q, dada sob as formas normal e complementar.
Um flip-flop T especialmente vocacionado para materializar Divisores de Frequncia (ou Contadores). Em
particular, o Divisor de Frequncia por 2, com o Diagrama Temporal figurado ao lado, foi j apresentado como
motivo para o logigrama anexo, envolvendo um flip-flop SR; as ligaes que nele constam destinam-se, como se
viu, a garantir que, por cada flanco de comutao do relgio, o estado do flip-flop muda. Ora, esta precisamente a
caracterstica do modo de funcionamento Toggles o que sugere que, recorrendo a um flip-flop T, h uma maneira
mais simples de o fazer: forando 1 na sua entrada T, vid ao lado.
E se, pela apropriada conexo em srie de dois flip-flops SR, se consegue lograr um Divisor de Frequncia por
4, assim fica mais fcil faz-lo mediante dois flip-flops T: designando-os de {Q1 e Q0}, bastar disp-los em srie
de tal modo que a entrada de relgio do primeiro, Q0, seja directamente alimentada por B, e a entrada de
relgio do segundo, Q1, seja alimentada pela sada, Q0, do primeiro.
O circuito logrado, que apresenta quatro estados, pode tambm ser designado de contador cclico ascendente
de mdulo 4 assncrono, porquanto os flip-flops no reagem em simultneo: Q1 muda s depois de Q0 mudar:
a sada Q0 muda aps ter decorrido um tempo de propagao tpLH ou tpHL depois do flanco descendente de B
e a sada Q1 muda somente depois de ter decorrido um tempo de propagao tpLH ou tpHL aps o flanco
descendente de Q0.
hora, porm, de anunciar que possvel constituir uma verso sncrona para esse contador isto , em que
os flip-flops (e porque as suas entradas de relgio se encontram ambas ligadas a B) reajam ao mesmo tempo:
bastar discernir os modos de funcionamento a imprimir aos dois flip-flops para conseguir o efeito em vista:
Relativamente ao flip-flop Q0, e conferindo pelo Diagrama Temporal que, sempre que houver um flanco
descendente em B, ele dever mudar de estado, a concluso bvia: ele dever funcionar permanentemente no
modo Toggles o que conduz a fixar 1 na entrada T desse flip-flop;
J quanto ao flip-flop Q1, o Diagrama Temporal mostra que, para ele mudar de estado, no basta que haja
um flanco descendente em B: s o far se o estado de Q0 nesse instante for 1; por outras palavras: se, aquando
desse flanco em B, Q0=0, ele dever funcionar no modo Hold (isto : dever-se- aplicar-lhe T=0), mas se for
Q0=1, ele dever funcionar no modo Toggles (isto : dever-se- aplicar-lhe T=1); a concluso clara: T segue
pari passu a sada de Q0, pelo que se dever ligar, entrada T do flip-flop Q1, a sada de Q0.
As entradas de relgio dos flip-flops estaro ambas ligadas a B com o que, quando ocorrer o flanco
descendente em B, ambos iro reagir ao mesmo tempo; nomeadamente, no segundo flanco descendente
assinalado, Q0 ir transitar de 1 para 0, e Q1 ir transitar de 0 para 1: parecero estar a funcionar em
simultneo, em que a meno parecero significa que, sendo impossvel garantir que os tempos de propagao
sejam realmente iguais, s idealmente que os flip-flops reagiro ao mesmo tempo.
Qui sendo desnecessrio mencion-lo, a alterao sofrida em Q0 aquando do flanco descendente do sinal de
relgio no ter ento quaisquer efeitos em Q1: pois que os flip-flops so edge-triggered, a evoluo de cada um
depende do que estiver aplicado sua entrada T no instante preciso em que ocorre o flanco descendente em C;
se Q0 mudar, isso ter efeitos, quando muito, no flanco descendente seguinte do sinal de relgio.
Esta caracterstica torna sumamente pacfico o desenho de circuitos sncronos, isto : em que todos os flip-flops
so alimentados pelo mesmo sinal de relgio. Mas isso fica para a Parte III deste itinerrio

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 112 of 119

Vitor M. P. Vargas / IST


Flip-flops

Sistemas Digitais (Part II)

Page 113 of 119

/ Recapitulando... O Bando dos Quatro

Ao lado, apresenta-se uma sinopse dos quatro tijolos bsicos prprios de circuitos sequenciais, a saber: latches
e flip-flops SR e D, e flip-flops JK e T; enquanto tal, ela no traz nada de novo, um ponto de chegada deste
itinerrio e, ao mesmo tempo, um ponto de partida para o que a vem
Para cada um, apresentam-se:
A Tabela de Verdade/Mapa de Karnaugh da sua sada (que o estado seguinte Q(t+1)), em funo do estado
actual, Q(t), e das entradas especficas de cada latch ou flip-flop
A equao caracterstica, que a expresso algbrica que se deduz do Mapa, exprimindo o estado seguinte
Q(t+1), como funo do estado actual, Q(t), e das entradas especficas de cada latch ou flip-flop
O Diagrama de Estados, que traduz sob forma grfica a sua evoluo temporal: para que estado seguinte
que ele transita quando, estando originalmente em algum estado actual {0 ou 1}, lhe so aplicados valores
concretos nas entradas
A Tabela de Excitao, que indica quais os valores a aplicar nas entradas para lograr cada uma das quatro
transies possveis: {00}, {01}, {10} e {11}
Estes vrios modos de caracterizar uma latch ou flip-flop so, como se referiu j, todos eles, importantes:
o Mapa de Karnaugh e o Diagrama de Estados, porque a partir de qualquer deles se deduzem os outros;
a Equao caracterstica, que a ela que um espio recorre para descobrir para que serve um Circuito;
a Tabela de Excitao, que a ela que um Projectista recorre para desenhar um Circuito Sequencial.
Todos eles so aplicveis a latches e flip-flops; consoante a maneira como reagem a uma alterao nalguma
entrada, h a considerar as seguintes variedades:
Latch no controlada: a sada pode mudar em qualquer momento;
Latch controlada: a sada pode mudar enquanto a entrada enable estiver activa,
Flip-flop: a sada pode mudar s quando o valor na entrada clock muda ou, no calo aplicvel, no flanco de
comutao (descendente ou ascendente) do relgio; existem duas variantes de flip-flops:
Flip-flop master-slave (pulse triggered): a sada depende dos valores que as entradas foram tendo ao
longo de todo o intervalo de tempo em que a entrada clock esteve activa (a seguir ao precedente flanco de
comutao do relgio);
Flip-flop edge-triggered: a sada depende s dos valores que as entradas tm no instante preciso em que
ocorre o flanco de comutao do relgio.
(A meno pode mudar significa genericamente que, para uma combinao particular das entradas, o estado
seguinte pode vir a coincidir com o estado actual portanto no dando azo a qualquer mudana de estado)
Em termos de aplicaes,
na sntese de circuitos sequenciais general purpose, os mais interessantes sero os flip-flops D e T:
os flip-flops D esto especialmente vocacionados para concretizar registos (armazns de informao);
os flip-flops T esto especialmente vocacionados para concretizar contadores;
j na sntese de circuitos sequenciais genricos, qui os mais interessantes sejam os flip-flops JK e SR mas
oportunamente se discutiro mtodos de sntese ditos no-clssicos suportados em registos e contadores.
(Abra-se um parntesis de explicao para advertncias Se sobrar tempo na aula neste e noutros slides:
Na sesso inicial, deixou-se subentendido que cada sesso se bastaria numa aula terica de 1:30; na prtica, nas
aulas ministradas pelo autor, o tempo til acabou por se reduzir a 1:20 j que os primeiros 10 minutos eram
gastos espera que os mais de cem alunos viessem de outros pavilhes do campus universitrio e se acomodassem.
Isso foi previsto a priori, pelo que a coleco de slides concernindo uma sesso foram desenhados para no
exceder esses 1:20 mas slides h que foram anotados Se sobrar tempo na aula: se, ao longo da exposio, a
audincia manifestasse dificuldade em acompanhar o assunto em questo, seria prefervel gastar tempo em superla, mesmo que isso levasse a saltar tais slides que em rigor no introduzem novidade de maior)

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 114 of 119

Vitor M. P. Vargas / IST


Flip-flops

Sistemas Digitais (Part II)

Page 115 of 119

/ Anlise de Circuitos com Flip-flops

J se viu que a Equao caracterstica o instrumento usado para discernir o comportamento de um circuito
com latches; o mesmo vale para circuitos com flip-flops, como se pode testemunhar com o circuito ao lado.
O circuito envolve um flip-flop JK e um flip-flop T cujas entradas de relgio C recebem impulsos da
mesma fonte, clk (e que por isso dito de circuito sncrono); designem-se de Q1 e Q0 os respectivos estados.
O primeiro passo na anlise escrever as expresses algbricas que traduzem o comportamento da sada do
circuito e das entradas dos flip-flops. O segundo passo substituir as expresses das entradas dos flip-flops nas
respectivas equaes caractersticas; resultam expresses que exprimem o estado seguinte dos flip-flops em
funo dos seus estados e da entrada X no instante em que ocorre o flanco activo (no caso, ascendente) do clock.
O terceiro passo converter tais expresses nas Tabelas de Estado/Sada {Q1, Q0, Z} que indicam, para
cada combinao das entradas internas e externas {Q1, Q0, X} num instante t, a sada Z do circuito nesse
instante, e, a ocorrer em t o flanco activo do relgio, os estados dos flip-flops no instante t+1 seguinte. Veja-se o
caso da primeira linha, em que {Q1=Q0=0}; substituindo estes valores nas expresses entretanto obtidas, obtm-se
Z= X , Q1(t+1)= X, Q0(t+1)=X; isto sugere inscrever 10, 01 e 01 na primeira linha de Z, Q1 e Q0
O passo seguinte ser aglutinar as duas Tabelas dos estados seguintes {Q1, Q0}, numa s Tabela, dita do
estado seguinte do circuito, Q1Q0(t+1); veja-se o caso da primeira linha, em que, conforme X=0 ou X=1, assim
advm {Q1=0, Q0=0} ou {Q1=1, Q0=1}; aglutinar significa preencher a primeira linha da nova Tabela com 00 e
11, respectivamente nas colunas X=0 e X=1. Para as restantes linhas, a metodologia a mesma
A Tabela obtida pode reescrever-se numa outra em que cada par de bits Q1Q0 entendido como o cdigo
binrio de um nmero, e ele substitudo pela representao desse nmero na base 10; essa Tabela descreve para
que Estado evoluem os Estados {0, 1, 2 e 3} do circuito, medida que se vai alterando a entrada X.
Resta desenhar o Diagrama de Estados: a cada estado, associa-se um crculo, etiquetado com um nmero ou
cdigo binrio; depois, traam-se setas rotuladas, descrevendo graficamente a Tabela obtida. Veja-se a primeira
linha, relativa ao estado E=0: quando X=0, a sada Z=1, e o estado seguinte ser E=0; isso volve-se numa seta
dirigida do crculo 0 para ele mesmo rotulada por X=0/Z=1, ou, como o manda a lei do menor esforo, 0/1
Dado o Diagrama de Estados, advm trivial traar o Diagrama Temporal da evoluo do circuito, a partir de
algum estado, seja {Q1=0, Q0=1}, e medida que X varia e os impulsos de relgio se sucedem:
o estado do circuito pode mudar s aquando do flanco activo do relgio; de facto, ele vem a mudar nos
instantes t2, t4, t5, t8: em t2, ingressa no estado 10 (porquanto o estado 01 e X=1); em t4, ingressa em 11 (pois
o estado 10 e X=0); em t5, reingressa em 10; em t8, retorna a 11 (pois o estado 10 e X=0)...
j a sada Z do circuito pode mudar quando muda X ou quando muda o estado do circuito (no caso em
questo, quando Q1 se altera); com isso, os instantes em que Z muda vm a ser os seguintes: em t1, passa a 0
(pois que, conquanto o estado se mantenha em 01, X advm 1); em t2, passa a 1 (pois que, embora X
continue 1, o estado muda, para 10; em t3, passa a 0 (pois que, conquanto o estado continue em 10, X
advm 0); em t6, passa a 1 (pois que, conquanto o estado continue em 10, X advm 1); em t7, passa a 0
(pois que, conquanto o estado continue em 10, X advm 0).
Ao lado, detalham-se os eventos aps t1: X advm 1 com o que as entradas {K, J, T} se volvem 1; com
isso, expectvel que os flip-flops venham a mudar de estado faltando s que ocorra o flanco activo do relgio, o
que suceder em t2; isso provoca alteraes nas entradas {K, J, T}, porm sem que elas se repercutam nos
estados dos flip-flops! Em t3, X advm 0 com o que as entradas {J, T} mudam de valor; expectvel que o
flip-flop Q0 mude de estado bastando que ocorra o flanco activo seguinte, o que vir a suceder em t4
Em ambos os casos, so patentes as duas fases a que o uso dos flip-flops obriga: antes de mais, aplicam-se-lhes,
nas respectivas entradas, os valores a que eles devero reagir e s depois se fora o flanco activo do relgio
Ora, os fabricantes de circuitos integrados explicitam valores temporais que h que ter em conta no desenho de
circuitos: para que os flip-flops funcionem como se quer,
as entradas {S, R, J, K, T, D} dos flipflops tm que estar estveis ao menos TSetUp (abreviadamente, Tsu)
segundos antes do flanco activo do relgio; a esse tempo TSetUp, d-se o nome de Tempo de preparao;
e essas mesmas entradas tm que continuar estabilizadas at pelo menos THold (abreviadamente, Th) segundos
depois desse flanco; a esse tempo THold, d-se o nome de Tempo de manuteno.
Se isso no for garantido para algum flip-flop, o fornecedor no se responsabiliza pelo que ir suceder: o flipflop pode entrar num assim designado estado meta-estvel cujo futuro uma incgnita

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 116 of 119

Vitor M. P. Vargas / IST


Flip-flops

Sistemas Digitais (Part II)

Page 117 of 119

/ Frequncia Mxima do Relgio (clock)

Considere-se o logigrama ao lado. A entrada C dita de relgio/clock porquanto a sequncia de bits 01


01, que nela ocorre , em muitas aplicaes, peridica este adjectivo significando que o intervalo de
tempo entre dois flancos de comutao consecutivos constante. A esse intervalo d-se o nome de perodo do
relgio, T. O seu inverso, 1/T, denomina-se de frequncia de relgio e em termos prticos indica quantos
impulsos de relgio se sucedem em cada unidade de tempo. Uma questo importante : qual o menor perodo do
relgio, T, possvel? e, por consequncia, qual o maior valor que pode ter a frequncia de relgio, 1/T?
Para responder a esta questo, convir observar detalhadamente o desenrolar dos acontecimentos desde que
ocorre um flanco de comutao do relgio at acontecer o flanco de comutao seguinte
Qui a topologia conferida ao logigrama ao lado seja a mais apropriada para acompanhar esse historial:
esquerda, encontram-se os flip-flops e sua direita encontra-se uma malha combinatria, com duas funes:
por um lado, produzir a sada do circuito, Z;
por outro lado, produzir os novos valores a aplicar nas entradas {J, K e T} dos flip-flops e que so
responsveis pelas mudanas dos estados a acontecer no prximo flanco de comutao do relgio
Suponha-se, ento, que, em dado momento, ocorre um flanco de comutao do relgio
e admita-se que, ento, as entradas dos flip-flops so tais que as respectivas sadas {Q1 e/ou Q0} iro mesmo
mudar; ora, isso no ser instantneo: para que as sadas adquiram os seus novos valores, ser preciso aguardar um
certo tempo de propagao, tpLH ou tpHL contado a partir do momento em que ocorre o flanco de comutao;
mas a alterao dessas sadas significa que podero mudar as sadas da malha combinatria em particular,
podero mudar as que produzem os novos valores a aplicar s entradas dos flip-flops; de novo, isso no ser
instantneo: para que as entradas dos flip-flops adquiram os seus novos valores, haver que esperar um certo tempo
de propagao, tpLH ou tpHL contado a partir do momento em que mudaram as sadas dos flip-flops;
quando isso enfim acontecer, ainda assim no poder logo ocorrer o prximo flanco de comutao: ser
preciso aguardar um certo tempo de preparao, tsu contado a partir de quando mudaram as entradas dos flipflops , em que essas entradas tm que permanecer estveis, para que ocorra o prximo flanco de comutao.
Globalmente, pois, h que deixar decorrer, entre dois flancos de comutao consecutivos, um tempo total que
ser uma soma onde entram o tempo de propagao dos flip-flops, o tempo de propagao da malha combinatria
e o tempo de preparao dos flip-flops (adiante, esta assero ser enunciada com mais exactido).
Isto significa que, face a um circuito concreto, h que conhecer parmetros temporais que os pertinentes
catlogos associam aos integrados que referem, e de que se do ao lado alguns exemplos.
Ora, estes parmetros so omissos quanto malha combinatria em particular a que produz os feedbacks que
alimentam as entradas dos flip-flops: requerem-se operaes aritmticas H que calcular o tempo de propagao
total associado a cada feedback entre uma das sadas dos flip-flops e uma das respectivas entradas: sucessivamente,
qual o tempo total associado aos feedbacks entre as sadas {Q1 e Q0} e a entrada T do flip-flop-0?
qual o tempo total associado aos feedbacks entre as sadas {Q1 e Q0} e a entrada J do flip-flop-1?
qual o tempo total associado aos feedbacks entre as sadas {Q1 e Q0} e a entrada K do flip-flop-1?
Na prtica, cada questo volve-se em discernir, mentalmente, um caminho de feedback vid ao lado , que
ser sempre (se existente) aquele que interliga uma sada fonte {Q1 ou Q0} a uma entrada destino {J, K ou T}; e
adicionar os tempos de propagao individuais das gates que fazem parte desse caminho e, mais ainda, os
tempos de propagao do flip-flop fonte e o tempo de preparao do flip-flop destino
Considere-se, por exemplo, o tempo total associado ao feedback entre a sada Q0 e a entrada T do flip-flop-0.
Ele vem a ser a soma do tempo de propagao do flip-flop T, dos tempos de propagao do AND e do OR, e do
tempo de preparao do flip-flop T que resulta 90 ns (nano-segundos). O que isto significa que, entre dois
flancos de comutao consecutivos do relgio, tem que mediar pelo menos 90 ns
Procedendo similarmente para calcular os tempos totais associados a todos os feedbacks entre sadas e entradas
dos flip-flops, chega-se a uma lista de valores: 90, 100, 80 e 65 ns Daqui, conclui-se que, entre dois flancos de
comutao consecutivos do relgio, tem que mediar pelo menos um perodo mnimo T=100 ns: ele o valor que
cobre todos aqueles que a lista apresenta e que, no por acaso, o tempo total associado ao feedback mais lento.
A maior frequncia de relgio a que o circuito poder operar ser, ento, 1/(100 10-9)=107 ciclos/seg=10 MHz
(Constata-se que se ignorou tHold, o intervalo de tempo em que as entradas dos flip-flops tm de permanecer
estveis aps o flanco de comutao: o tempo de propagao dos flip-flops, tpLH ou tpHL, j o excede pelo que o
nico cuidado a garantir que a entrada externa X continue estvel ao menos tHold aps o flanco de comutao)

Vitor M. P. Vargas / IST

Sistemas Digitais (Part II)

Page 118 of 119

Vitor M. P. Vargas / IST


Flip-flops

Sistemas Digitais (Part II)

Page 119 of 119

/ Culinria: como fazer Flip-flops com Flip-flops?

Com esta sesso dedicada a flip-flops, finda a abordagem aos tijolos bsicos prprios a circuitos sequenciais, e
finda tambm a Parte II deste itinerrio. A parte III ser toda ela dedicada ao desenho (ou, sob uma outra
designao comum, sntese) de circuitos sequenciais; entretanto, e a modos de preliminares, no ser desperdcio
de tempo dedicar algum tempo sntese de um tipo simples de circuitos sequenciais: os prprios flip-flops
Em si, isso j foi feito: recorde-se o desenho da Latch D a partir da Latch SR, ou o do flip-flop T a partir de um
flip-flop JK, ou, com uma nfase especial, o desenho do flip-flop JK a partir do flip-flop SR (ambos master-slave)
ao longo de 5 passos Na altura, ele foi explicitamente sublinhado como o mtodo geral para a sntese de
Circuitos Sequenciais (sncronos) mas haver casos simples, em que ele dispensvel, bastaro equaes
caractersticas, vid adiante
O desafio passar em revista os vrios flip-flops considerados {SR, D, JK e T}, cujas equaes caractersticas
se recordam ao lado, e concretiz-los a partir de qualquer um dos outros. Nomeadamente:
eis o primeiro problema: como concretizar um flip-flop D a partir de um flip-flop JK ou, por outras palavras,
e supondo que se dispe de um flip-flop JK, que que se deve ligar s suas entradas para obter um flip-flop D?
Confrontando as respectivas equaes caractersticas, esta pergunta equivalente a: que que se deve ligar s
entradas {J e K} para que a expresso do estado seguinte, Q(t+1) se transforme na de um flip-flop D, Q(t+1)=D? A
resposta sob a forma de expresses de {J e K} em termos de D encontra-se ao lado, tal como o subsequente
logigrama;
o problema inverso ser o seguinte: como concretizar um flip-flop JK a partir de um flip-flop D ou, por
outras palavras, que que se deve ligar entrada D para que a expresso do estado seguinte, Q(t+1) se transforme
na de um flip-flop JK? A resposta sob a forma de expresses de D em termos de {J e K} (e de Q) encontrase ao lado, tal como o subsequente logigrama;
um problema semelhante ser: como concretizar um flip-flop T a partir de um flip-flop JK ou, por outras
palavras, que que se deve ligar s entradas {J e K} para que a expresso do estado seguinte, Q(t+1) se transforme
na de um flip-flop T? A resposta sob a forma de expresses de s entradas {J e K} em termos de 'T encontra-se
ao lado, tal como o subsequente logigrama;
eis outros problemas similares, cujas respostas se deixam ao leitor:
como concretizar um flip-flop SR ou T a partir de um flip-flop D ?
como concretizar um flip-flop SR ou D ou JK a partir de um flip-flop T ?
como concretizar um flip-flop T a partir de um flip-flop SR ?

Potrebbero piacerti anche