Anda di halaman 1dari 49

Departamento de Cincias e Tecnologias da Informao

Arquitectura de Computadores (I)

Textos de apoio Circuitos Sequenciais

Draft Verso 0.02 Outubro de 2009 Toms Brando.

ndice
1. LATCHES .........................................................................................................................................5 1.1. 1.2. 1.3. 1.4. 2.
2.1. 2.2. 2.3. 2.4. 2.5.

LATCH SR ..................................................................................................................................5 LATCH S R ................................................................................................................................7 LATCHES COM CONTROLO ..........................................................................................................7 SMBOLOS ..................................................................................................................................9
FLIP-FLOPS MASTER-SLAVE .......................................................................................................11 FLIP-FLOPS EDGE-TRIGGERED .................................................................................................13 SMBOLOS ................................................................................................................................15 TEMPORIZAES DO FLIP-FLOPS ..............................................................................................15 ENTRADAS ASSNCRONAS ........................................................................................................16

FLIP-FLOPS ...................................................................................................................................11

3.

ANLISE E PROJECTO DE CIRCUITOS SEQUENCIAIS ....................................................19


3.1. ANLISE DE CIRCUITOS SEQUENCIAIS ......................................................................................19 3.2. MODELOS DE MEALY E DE MOORE ............................................................................................21 3.3. PROJECTO DE CIRCUITOS SEQUENCIAIS ....................................................................................23 3.3.1. Projecto com flip-flops D....................................................................................................24 3.3.2. Projecto com flip-flops JK ..................................................................................................26 3.4. EXEMPLOS DE PROJECTO ..........................................................................................................27 3.4.1. Detector de sequncias de 0s ...........................................................................................27

4.

REGISTOS ......................................................................................................................................31
4.1. 4.2. REGISTOS COM CARREGAMENTO E RESET .................................................................................32 REGISTOS DE DESLOCAMENTO .................................................................................................36 CONTADORES BINRIOS ...........................................................................................................41 CONTADORES ESPECIAIS ..........................................................................................................44 PROJECTO DE CONTADORES .....................................................................................................45

5.

CONTADORES ..............................................................................................................................41
5.1. 5.2. 5.3.

ISCTEIUL

Arquitectura de Computadores

Circuitos sequenciais 1. Latches


Nesta seco so abordados os circuitos sequenciais mais elementares, a partir dos quais podem ser construdos circuitos mais complexos e com mais funcionalidades. Estes circuitos elementares designam-se por latches 1. A principal funo de um latch resume-se a possibilitar o armazenamento de um determinado valor lgico um 1 ou um 0 desde que se fornea energia elctrica ao circuito. Pode por isso ser visto como um elemento de memria que permite armazenar um bit de informao. Para controlar o modo como o armazenamento de informao feita, os latches possuem algumas linhas de entrada. Existem diferentes tipos de latches, que diferem na sua topologia e na forma como a informao guardada.

1.1.

Latch SR

O latch cujo funcionamento o mais simples de compreender provavelmente o latch SR 2, que se encontra representado na Figura 1.
R Q

S
Figura 1 Latch SR.

QN

Para perceber como funciona este latch, considere que aplicada s entradas S e R a sequncia de valores lgicos que se segue: Inicialmente, admita que R=0 e S=1 nesta situao o valor da sada QN vai ser inevitavelmente 0, independente do valor lgico na outra entrada da porta NOR de baixo. Como R=0 e QN=0 ento a sada Q assumir o valor lgico 1. Suponha que depois se coloca a 0 o valor lgico de S nada se ir alterar no circuito: Q=1 e QN=0. Subindo depois o valor de R para 1, a sada Q ir a 0, e consequentemente QN ir subir para o nvel lgico 1. Baixando novamente R para 0, nada se altera no circuito: Q=0 e QN=1. Repare agora nos resultados obtidos nos dois pargrafos anteriores em ambos os casos, as entradas R e S terminam a 0, mas as sadas terminam com valores diferentes no primeiro caso Q termina a 1 e no segundo caso Q termina a 0. Pode-se concluir imediatamente que este circuito sequencial, pois para a mesma combinao de entradas, as sadas apresentam valores diferentes... Pode-se tambm observar que este circuito permite a memorizao de um bit, desde que se actue de forma adequada nas entradas S e R.
1 2

Em portugus, uma possvel traduo seria bscula ou trinco. Tambm conhecido por latch RS.
Arquitectura de Computadores 5

ISCTEIUL

A sequncia de operaes que foi seguida encontra-se sintetizada na Tabela 1. Note que esta no uma tabela de verdade, mas sim uma tabela onde se encontra a sequncia dos valores lgicos de R e S que foram sendo aplicados entrada do latch. R 0 0 1 0 S 1 0 0 0 Q 1 1 0 0 QN 0 0 1 1 Observaes Set (Guardar um 1) Mantm o estado Reset (Guardar um 0) Mantm o estado

Tabela 1 Sequncia de operaes no latch SR.

Ento e para o caso em que S=R=1? Nesse caso, ambas as sadas (Q e QN) so foradas ao nvel lgico 0. Porm, aps ser aplicado 1 em S e em R, pode ocorrer uma possibilidade curiosa se tanto R como S forem simultaneamente a 0: nessa situao impossvel de prever teoricamente quais os valores resultantes para Q e QN (pelo menos com o que se sabe partida). Tudo depende dos tempos de propagao das portas lgicas: se a porta de cima reagir mais depressa, ento o circuito tender a estabilizar com Q=1 e QN=0; se, pelo contrrio, se for a porta de baixo a reagir mais depressa, ento o circuito estabilizar em Q=0 e QN=1. Este o chamado estado indefinido do latch. Note tambm que, na prtica, dificilmente S e R desceriam em simultneo para o valor 0 na realidade existe sempre uma diferena temporal entre as duas descidas, que por mais insignificante que seja, influencia os valores resultantes para Q e QN. Todas estas situaes podem ser observadas na Figura 2, onde se encontram representadas as formas de onda resultantes para as sadas Q e QN em funo dos sinais aplicados s entradas.
Set Reset Set

R S Q QN ?? ?? t
Inicialmente no se sabe qual o valor guardado no latch.. Impossvel de prever teoricamente

Figura 2 Formas de onda tpicas para o latch RS.

Para resumir, encontram-se sintetizadas na Tabela 2 as operaes que podem ser efectuadas com um latch SR. R 0 0 1 1 S 0 1 0 1 Operao Manter o estado anterior Set (Q=1) Reset (Q=0) No se utiliza

Tabela 2 Latch SR Sntese das operaes.

ISCTEIUL

Arquitectura de Computadores

1.2.

Latch S R

Outro latch que facilmente construdo com duas portas lgicas o latch S R (l-se no-S no-R), representado na Figura 3. O seu funcionamento semelhante ao do latch SR descrito na seco anterior, com a diferena das suas entradas responderem ao nvel lgico 0 (como se R e S estivessem complementados). Deste modo, para efectuar uma operao de Set faz-se S=0 e R=1; Reset faz-se com R=0 e S=1 e para manter o estado colocam-se ambas as entradas a 1. Em suma, faz-se o contrrio do que foi visto para o latch SR. A combinao de entradas que no utilizada (e que pode conduzir indefinio) S=R=0.
S Q

R
Figura 3 Latch S R .

QN

As operaes que se podem realizar com este latch (em funo de S e R) so portanto as seguintes: R 0 0 1 1 S 0 1 0 1 Operao No se utiliza Reset (Q=0) Set (Q=1) Manter o estado anterior

Tabela 3 Latch S R Sntese das operaes.

1.3.

Latches com controlo

Pode-se acrescentar lgica combinatria aos latches descritos anteriormente, de modo a que seja introduzida uma varivel de controlo C que funciona da seguinte maneira: quando desactivada, obriga o latch a manter o estado; quando activada permite alteraes ao estado do latch. Desta forma consegue-se um maior controlo no modo como se introduz a informao a armazenar no latch. Um possvel circuito para um latch SR com controlo o seguinte:
R C S
Figura 4 Latch SR com controlo.

QN

As duas portas AND acrescentadas s entradas do latch SR fazem com que os valores lgicos que passam para as linhas de entrada nas portas NOR sejam R e S, quando C est a 1, ou

ISCTEIUL

Arquitectura de Computadores

sejam 0 quando C est a 0. Pode-se portanto concluir que quando C est a 0, o latch mantm o estado, independentemente dos valores lgicos nas linhas R e S. Na Figura 5 encontra-se esquematizado outro circuito correspondente a um latch SR com controlo. A vantagem deste circuito relativamente ao anterior o facto de apenas serem utilizadas portas lgicas NAND. Este circuito construdo com base no latch S R , acrescentando-se mais um par de portas NAND para controlo.
S C R QN Q

Figura 5 Latch SR com controlo (construdo com NANDs).

As operaes (vlidas para ambos os circuitos) encontram-se descritas na Tabela 4. C 0 1 1 1 1 R x 0 0 1 1 S x 0 1 0 1 Operao Manter o estado anterior Manter o estado anterior Set (Q=1) Reset (Q=0) No se utiliza

Tabela 4 - Latch RS com controlo sntese das operaes.

O latch SR com controlo , de certo modo, redundante, pois possvel manter o estado fazendo C=0, ou ento C=1 com S=R=0. Para alm disso existe a combinao que no se usa quando C=R=S=1... neste contexto que surge o latch D. Este construdo com base num latch SR com controlo, fazendo-se com que S e R sejam sempre o complemento (negao) um do outro. Para tal, basta acrescentar um inversor entre S e R, como se pode observar na Figura 6, originando uma nica entrada que se designa por D.
D C QN
Figura 6 Latch D.

Como S e R ficam sempre com valores lgicos complementares, as situaes em que ambos esto a 1 ou ambos esto a 0 deixam de ser possveis. Sendo assim, para manter o estado fazse apenas C=0; para guardar um 1 activa-se C e faz-se D=1; e para guardar um 0 activa-se C e faz-se D=0.

ISCTEIUL

Arquitectura de Computadores

O latch D com controlo portanto capaz de efectuar todas as operaes com interesse no armazenamento de um bit informao. Tem ainda a vantagem de ser completamente determinstico, isto , no ocorrem estados que no se conseguem prever teoricamente. C 0 1 1 D X 0 1 Operao Manter o estado Reset (Q=0) Set (Q=1)

Tabela 5 Latch D sntese das operaes.

Devido facilidade com que feito o controlo, os latches D so muito utilizados no fabrico de memrias (obviamente so utilizados muitos latches, pois cada um s consegue guardar um bit...). Repare tambm que no faz sentido a existncia de um latch D sem entrada de controlo, pois nesse caso no seria possvel manter o estado, i.e., no seria possvel deixar guardado um bit de informao no seria um circuito sequencial...

1.4.

Smbolos

Os latches so representados por rectngulos, nos quais se assinalam todas as entradas e sadas do latch. Na Figura 7 encontram-se representados alguns desses smbolos.
S R
(a) Latch SR

S R
(b) Latch S R

D C
(c) Latch D

Figura 7 Exemplos de smbolos utilizados para representar latches.

Relembre que a existncia de crculos (as bolinhas) nas entradas indica que estas so activas a 0. comum existir a sada correspondente a QN esta sada sempre o complemento de Q (a negao de Q), excepto nos casos especiais que foram referidos anteriormente (e que no se usam) para os quais Q e QN assumem o mesmo valor lgico.

ISCTEIUL

Arquitectura de Computadores

2. Flip-flops
Na seco anterior foram introduzidos os latches. Ao serem efectuadas alteraes aos valores lgicos das suas entradas, pode observar-se um efeito imediato ao estado do latch. Nos latches com controlo possvel escolher os momentos em que se pretende efectuar modificaes ao estado do latch: quando a varivel de controlo est activada podem-se efectuar modificaes ao estado do latch; quando esta est desactivada, o estado mantm-se. Esta possibilidade, apesar de desejvel, muitas vezes insuficiente em sistema mais complexos, onde se pretende que os elementos sequenciais apenas possam modificar o seu estado em instantes temporais especficos. neste contexto que surge um elemento sequencial designado por flip-flop. Qualquer flip-flop, independentemente do seu tipo, possui a caracterstica de s alterar o seu estado em instantes temporais especfico, que correspondem a variaes no nvel lgico de um dado sinal de referncia o sinal de relgio.

2.1.

Flip-flops Master-Slave

Na Figura 8 encontra-se esquematizado um flip-flop SR Master-Slave. Este flip-flop construdo com base em dois latches SR com controlo. O latch ligado directamente s entradas o master e o latch ligado directamente s sadas o slave 3, da a designao atribuda a este tipo de flip-flops.
S C R S C R Y Y S C R Q Q

Figura 8 Flip-flop SR Master-Slave.

Considere agora que aplicado um sinal de relgio na entrada do latch master. Enquanto o sinal de relgio est a 1, o latch master est activado, podendo-se efectuar set, reset ou manter o estado anterior deste latch. Repare tambm que enquanto o sinal C est a 1, o sinal de controlo que chega ao latch slave 0 este encontra-se desactivado, mantendo por isso o valor lgico que se encontrava anteriormente armazenado. Quando o sinal C desce de 1 para 0, desactivado o master e activado o slave. O slave efectua ento a operao que ficou definida nas sadas do master, enquanto o sinal C estava 1. O flip-flop SR master-slave pode no entanto conduzir a uma situao indesejvel: quando ambas as entradas S e R esto a 1 e o sinal de relgio desce de 1 para 0, o latch master vai ficar no estado indefinido, sendo por isso impossvel de prever o estado em que depois ficar o slave...
3

comum aparecer a designao Master-slave em circuitos digitais (mesmo em contextos diferentes dos flip-flops). Esta designao aparece normalmente quando existe uma dependncia entre dois elementos, onde as aces de um elemento B dependem do que faz um outro elemento A A master, B slave.
ISCTEIUL Arquitectura de Computadores 11

O seguinte diagrama temporal ilustra as situaes descritas:

C S R Y Q ? ? ? ? ? ?

Set

Reset

Indefinido

Figura 9 Exemplo de formas de onda aplicadas a um FF SR Master-Slave.

Apresentam-se na Tabela 6 as operaes que podem ser efectuadas com um flip-flop SR masterslave. As designaes Qt e Qt+1 designam o estado actual e o prximo estado do flip-flop, respectivamente. O desenho associado ao sinal C indica que o flip-flop s reage quando o relgio est a 1 e depois vem a 0. C S 0 0 1 1 R 0 1 0 1 Operao Manter o estado anterior (Qt = Qt+1) Reset (Qt+1 = 0) Set (Qt+1 = 1) Indefinido (Qt+1 = ?)

Tabela 6 Flip-flop SR Master-Slave sntese das operaes.

Mais uma vez salienta-se o facto deste flip-flop ter um comportamento difcil de prever quando S=R=1 na altura em que o relgio desce de 1 para 0. Um flip-flop que elimina esse problema o flip-flop JK master-slave, representado na Figura 10. Este construdo com base no flip-flop SR anterior, acrescentando-se um par de ligaes entre as sadas do FF e as entradas.

J C K

S C R

Y Y

S C R

Figura 10 Flip-flop JK Master-Slave.

Admitindo que as sadas Q e Q tm sempre valores lgicos complementares, quando J=K=1, e

C se encontra a 1, acontece uma das seguintes situaes:


ISCTEIUL Arquitectura de Computadores 12

se Q=0 e Q =1, ento entrada do master tem-se S=1 e R=0 feito um Set (Y=1 e Y =0). Quando relgio passar para 0, o slave faz Set e portanto as sadas do FF ficaro com os valores Q=1 e Q =0; se Q=1 e Q =0, ento entrada do master tem-se S=0 e R=1 feito um Reset (Y=0 e Y =1).
Quando relgio passar para 0, as sadas do FF ficaro com os valores Q=0 e Q =1. Em ambos os casos, os valores das sadas so complementados face aos valores que estavam armazenados no estado anterior. Pode portanto concluir-se que, quando J=K=1 (e o relgio transita de 1 para 0), este flip-flop complementa o estado anterior. Para ilustrar as vrias situaes que podem acontecer num flip-flop JK master-slave, representam-se na Figura 9 formas de onda para Y e Q em funo dos valores de J, K e do sinal de relgio C.
C J K Y Q

Set

Reset Mantem o estado

Troca o estado Troca o estado

Mantem o estado

Figura 11 Exemplo de formas de onda num flip-flop JK Master-Slave.

Para completar esta seco, na Tabela 7 resumem-se as operaes que podem ser efectuadas com um flip-flop JK master-slave. C J 0 0 1 1 K 0 1 0 1 Operao Manter o estado anterior (Qt+1 = Qt) Reset (Qt+1=0) Set (Qt+1=1) Complementar o estado anterior (Qt+1 = Q t )

Tabela 7 Flip-flop JK Master-Slave sntese das operaes.

2.2.

Flip-flops Edge-Triggered

Os flip-flops do tipo master-slave possuem a particularidade de, enquanto o relgio est activado, poderem ser efectuadas operaes no latch master (set, reset e manter o estado). Podese ento afirmar que durante o intervalo de tempo em que o relgio est activado, tudo o que feito no master ou seja, nas entradas do flip-flop, pode influenciar o prximo estado. Existem outros FFs em que tal no acontece s tm interesse os nveis lgicos apresentados s entradas do flip-flop quando o relgio efectua uma transio do seu nvel lgico (de 0 para 1
ISCTEIUL Arquitectura de Computadores 13

ou de 1 para 0). Este tipo de FFs designam-se por Edge-triggered 4. Nos flip-flops edgetriggered, o master um latch do tipo D. Dentro dos FFs edge-triggered, aquele cujo funcionamento o mais simples o flip-flop D, representado na Figura 12. Neste flip-flop, quando o sinal de relgio est a 0, o latch D encontra-se activado, mas o SR no. Quando se d uma transio de 0 para 1 em C, desactivado o latch D e activado o latch SR, que guarda o valor que estava no latch D nesse momento.
D C D C S C R Q Q

Figura 12 Flip-flop D Edge-triggered.

Repare que interessa apenas o valor que se encontra na entrada D no momento em que se d a transio de 0 para 1 no sinal de relgio. Como os valores so passados para o segundo latch na transio de 0 para 1, diz-se que este flip-flop positive edge-triggered (reage no flanco ascendente). Se fosse retirada a porta NOT aplicada na entrada C, ento teramos um FF com funcionamento idntico, mas com reaco no flanco negativo do sinal de relgio, de 1 para 0, ou seja, um FF D negative edge-triggered. C D 0 1 Operao Reset (Q=0) Set (Q=1)

Tabela 8 Flip-flop D Edge-Triggered (positivo) sntese das operaes.

A Tabela 8 sintetiza as operaes realizadas com um flip-flop D edge-triggered. As operaes que podem ser feitas (Set ou Reset) ficam sincronizadas com o sinal de relgio. Com base no FF D pode-se ser construir um flip-flop JK edge-triggered, que funciona de modo semelhante ao JK master-slave, mas para o qual interessam apenas os instantes de tempo em que o sinal de relgio transita de 1 para 0 (negative) ou de 0 para 1 (positive). O esquema deste flip-flop apresentado na Figura 13 e uma descrio do seu comportamento pode ser observado na Tabela 9.

Em portugus, com reaco no flanco.


Arquitectura de Computadores 14

ISCTEIUL

J C K

D C

S C R

Figura 13 Flip-flop JK Edge-triggered.

J 0 0 1 1

K 0 1 0 1

Operao Manter o estado anterior (Qt+1 = Qt) Reset (Qt+1=0) Set (Qt+1=1) Complementar o estado anterior (Qt+1 = Q t )

Tabela 9 Operaes num flip-flop JK edge-triggered (positivo).

2.3.

Smbolos

A simbologia associada aos flip-flops semelhante utilizada nos latches, diferenciando-se desta por introduo de smbolos que indicam uma resposta a variaes no sinal de relgio. Alguns destes smbolos podem ser observados na Figura 14.

S C R
FF SR master-slave positive pulse

J C K
FF JK master-slave positive pulse

J C K
FF JK master-slave negative pulse

D C

J C K

J C K
FF JK negative edge-triggered

FF D positive edge-triggered

FF JK positive edge-triggered

Figura 14 Exemplos de smbolos utilizados em flip-flops.

Os flip-flops do tipo edge-triggered apresentam um tringulo na entrada do sinal de relgio e os flip-flops do tipo master-slave apresentam o smbolo junto s suas sadas (representa a variao do sinal de relgio aps ter estado activo). A designao de negativo ou positivo indicada pela presena (ou no) do smbolo da negao junto entrada do sinal de relgio.

2.4.

Temporizaes do flip-flops

semelhana do que acontece com os circuitos combinatrios, os tempos de propagao associados s portas lgicas introduzem tambm algumas restries ao funcionamento dos flipISCTEIUL Arquitectura de Computadores 15

flops. Para alm do tempo de propagao, nos flip-flops aparecem tambm novas temporizaes que tm a ver com o tempo em que os sinais de entrada (S e R, J e K, ou D) devem permanecer estveis quando se aplica um estmulo de relgio que faz reagir o flip-flop:

Tempo de preparao (setup time) o intervalo de tempo de guarda, antes de um impulso do sinal de relgio, durante o qual as entradas do flip-flop devem permanecer estveis. Tempo de manuteno (hold time) intervalo de tempo de guarda, aps um impulso do sinal de relgio, durante o qual necessrio manter estveis as entradas. Tempo de propagao (propagation delay time) tempo que decorre entre uma transio do sinal de relgio at que o FF mude o valor da sada.

Na Figura 15 representa-se um pequeno exemplo referente a estas temporizaes aplicadas a um flip-flop D. Pretende-se colocar o estado do flip-flop a 1 para que tal acontea h que respeitar os tempos de preparao (tS) e de manuteno (tH). Para tal coloca-se a 1 a entrada D pelo menos tS antes do momento em que se d a transio do sinal de relgio e mantm-se a entrada a 1 pelo menos tH aps a transio. A sada Q mudar para o valor 1 tPD depois do impulso de relgio. Para flip-flops JK ou SR seriam situaes semelhantes a nica diferena seria o facto de serem duas entradas.

tH tS Clock D Q tPD
Figura 15 Temporizaes num flip-flop D.

Estas caractersticas temporais no ideais tem uma importncia fundamental no clculo da frequncia mxima a que um circuito sequencial sncrono pode funcionar correctamente, como ser visto mais adiante.

2.5.

Entradas assncronas

habitual um FF possuir outras entradas (para alm das j referidas) que foram um determinado valor lgico no estado do FF, independentemente do sinal de relgio. Este tipo de entradas funcionam por isso de uma forma assncrona e permitem inicializar o estado do flipflop com um determinado valor lgico. Este tipo de inicializao bastante til em circuitos mais complexos. Cada uma destas entradas assncronas ou responde ao nvel lgico 0 ou ao nvel lgico 1, i.e., podem ser activadas ou a 1 ou a 0 uma forma de distinguir se so activadas a 1 ou a 0 a presena no esquema do smbolo da negao (a bolinha). Quando aparece o smbolo da negao, significa que essa entrada activada com 0; caso contrrio, activada a 1.

ISCTEIUL

Arquitectura de Computadores

16

Na Figura 16 representa-se o esquema de um flip-flop JK edge-triggered tpico, contendo entradas assncronas que permitem inicializar o estado do flip-flop a 1 (Set) ou a 0 (Reset). Neste caso ambas as entradas so activadas a 0.

set J

K reset

Figura 16 Flip-flop com entradas assncronas.

Uma possvel descrio para este circuito seria a que dada na Tabela 10 (presume-se que se reset e set estiverem ambos activados prevalece o reset). Reset 0 1 1 1 1 1 Set x 0 1 1 1 1 C x x J x x 0 0 1 1 K X X 0 1 0 1 Operao Reset assncrono (Q=0) Set assncrono (Q=1) Manter o estado anterior (Qt+1 = Qt) Reset (Qt+1=0) Set (Qt+1=1) Complementar o estado anterior (Qt+1 = Q t )

Tabela 10 Descrio do funcionamento de um flip-flop JK edge-triggered com entradas assncronas.

ISCTEIUL

Arquitectura de Computadores

17

3. Anlise e projecto de circuitos sequenciais


Como j foi referido anteriormente, um circuito sequencial distingue-se de um circuito combinatrio pelo facto de, para a mesma combinao de valores lgicos nas entradas, as sadas do circuito poderem apresentar valores lgicos diferentes em instantes temporais diferentes. De uma forma geral, um circuito sequencial pode ser visto como um circuito composto por dois blocos distintos (ver Figura 17):

Elementos de memria que guardam conjunto de bits que definem o estado do circuito (normalmente utilizam-se flip-flops). Bloco de lgica combinatria determina quais sero os valores da sada em funo do estado e, possivelmente, das entradas e determina tambm qual ser o prximo estado do circuito.

Figura 17 Diagrama de blocos de um circuito sequencial.

Os elementos de memria que fazem parte do circuito sequencial so geralmente flip-flops. Quando o circuito sequencial muda de estado em instantes definidos por um dado sinal de referncia (e.g. um sinal de relgio) diz-se que o circuito sncrono; no caso de no existir nenhum sinal de referncia, o circuito diz-se assncrono. Nesta seco sero abordados os circuitos sequenciais sncronos, dado que tanto o seu projecto como o seu funcionamento so substancialmente mais simples do que o respeitante a circuitos assncronos.

3.1.

Anlise de circuitos sequenciais

Basicamente, a anlise de um circuito sequencial consiste em determinar qual a sequncia de estados seguida por um dado. Essa sequncia pode variar em funo dos valores que vo sendo apresentados s entradas em cada ciclo do sinal de relgio. Considere o circuito representado na Figura 18, constitudo por um flip-flop D edge-triggered e lgica combinatria adicional. O circuito possui uma entrada X, uma sada Z e sncrono com o sinal de relgio Clock.

ISCTEIUL

Arquitectura de Computadores

19

D1

Q1

Clock
Figura 18 Circuito sequencial em anlise.

Uma das formas de descrever um circuito sequencial consiste em elaborar uma tabela de transio de estados. Esta tabela indica qual ser o prximo estado do circuito com base no estado actual e nos valores das entradas. Para perceber melhor, considere que o circuito se encontra no estado 0, isto , Q1 = 0. Com a entrada X tambm a 0, o valor de D1 ser 0 (D1=XQ1). Quando ocorrer um impulso de relgio, o prximo estado do circuito ser 0. Sintetizando: Q1 = 0 e X = 0 Q1 = 0, Em que Q1 representa o prximo estado de Q1. Continuando no estado 0, mas supondo agora que X=1, ento D1=1. Quando ocorrer um impulso de relgio o valor de Q1 passar para 1, ou seja, o prximo estado ser o estado 1. Tem-se ento: Q1 = 0 e X = 1 Q1 = 1. Seguindo um raciocnio semelhante para o caso em que o circuito se encontra no estado 1 fcil de concluir que: Q1 = 1 e X = 0 Q1 = 1, Q1 = 1 e X = 1 Q1 = 0. Utilizando todas as concluses anteriores elabora-se a tabela de transio de estados que descreve o comportamento deste circuito: Estado actual (Q1) 0 0 1 1 Entrada (X) 0 1 0 1 Estado seguinte (Q1) 0 1 1 0

Tabela 11 Tabela de transio de estados para o circuito em anlise.

No caso de existirem mais flip-flops ter-se-o mais variveis de estado, o que originar mais combinaes possveis de estados e entrada (mais colunas e mais linhas na tabela). O mesmo se passaria no caso de existirem mais entradas.
ISCTEIUL Arquitectura de Computadores 20

Outra forma de descrever um circuito sequencial sncrono feita atravs de um diagrama de estados. Um diagrama de estados consiste num esquema onde aparecem crculos, que representam os estados, e setas, que representam as transies entre estados. O diagrama de estados pode ser obtido com base numa tabela de transio de estados e vice-versa. O diagrama de estados que corresponde ao circuito anterior representado na Figura 19.
0 1 0/0 1 1/1 0

Figura 19 Diagrama de estados do circuito em anlise.

Os valores lgicos que aparecem nas setas so as vrias combinaes possveis de valores lgicos das entradas (neste caso so apenas os valores possveis de X). Quanto aos dgitos que aparecem dentro dos crculos so o estado e o valor de sada a este associado (estado/sada). Por exemplo, a designao 0/0 significa que no estado 0 o valor da sada 0. Como se ver na prxima seco, nem sempre a sada do circuito est associada apenas ao estado do circuito.

3.2.

Modelos de Mealy e de Moore

Quando se elabora o projecto de um circuito sequencial, habitual comear-se por decidir se um circuito sequencial ir seguir o modelo de Mealy ou o modelo de Moore:

Num circuito que segue o modelo de Mealy, o valor lgico das sadas, em qualquer instante temporal, depende do valor do estado e das entradas do circuito. As sadas so portanto funes lgicas das entradas e do estado. Nos circuitos que seguem o modelo de Moore, os valores lgicos das sadas dependem apenas do estado do circuito. So portanto funes do estado. Os valores das entradas influenciam o qual ser o prximo estado do circuito, mas no influenciam de forma directa as sadas.

A Figura 20 pretende ilustrar a diferena entre estes dois modelos.


Entradas Lgica combinatria Lgica combinatria Sadas

Flip-flops Estado

(a) Modelo de Moore.

Entradas

Lgica combinatria

Flip-flops Estado

Lgica combinatria

Sadas

(b) Modelo de Mealy. Figura 20 Diferenas entre os modelos de Moore e de Mealy.

ISCTEIUL

Arquitectura de Computadores

21

Nos diagramas de estados tambm se distingue qual o modelo seguido pelo circuito. Ao passo que num circuito que segue o modelo de Moore, os valores das sadas aparecem junto do estado (dentro dos crculos, semelhana do que acontecia com o circuito da seco anterior), num circuito que segue o modelo de Mealy isso j no pode acontecer... para representar as sadas em funo do estado e das entradas utilizam-se as setas deste modo associam-se as sadas s entradas (de uma forma directa, uma vez que as entradas j estavam sobre a seta) e aos estados (de uma forma indirecta as setas saem dos estados). Na Figura 21 apresentam-se alguns diagramas de circuitos que seguem ambos os modelos.
0 1 A/00 0 1 0 D/10 1 C/11 0 1 B/10

00,11 01,10 A/0 00,11

01,10

B/1

(a) Diagramas que seguem o modelo de Moore.


0/1 0/1 1/0

0/11 1/00 A 0/10 1/01 0,1/00 C


1/1 11 00

01 0/0 1/1 0/0 10 1/0

(b) Diagramas que seguem o modelo de Mealy. Figura 21 Exemplos de diagramas de transio de estados.

A escolha do modelo a utilizar depende da especificidade do problema alguns problemas podem ser resolvidos utilizando o modelo de Moore, noutros ser mais adequado o modelo de Mealy, que o mais genrico. Com base nas caractersticas dos dois modelos, tambm se podem tirar algumas concluses adicionais. No modelo de Moore, como as sadas dependem apenas do estado do circuito, os seus valores s podem mudar quando ocorrem transies de estados, ou seja, quando ocorrem impulsos de relgio. Pode-se por isso concluir que as sadas esto tambm sincronizadas com um sinal de referncia. No modelo de Mealy essa concluso no vlida. Como os valores das sadas dependem tambm dos valores das entradas, podem ocorrer variaes nas sadas que no esto

ISCTEIUL

Arquitectura de Computadores

22

sincronizadas com o sinal de relgio se os valores das entradas variarem, os valores de sada podero variar tambm, sem que o circuito tenha mudado de estado.

3.3.

Projecto de circuitos sequenciais

Para projectar um circuito sequencial so geralmente seguidos os seguintes passos:

Diagrama de transio de estados a partir de um problema, elabora-se o diagrama de estados, efectuando-se logo a escolha do modelo (Mealy/Moore) a utilizar. Codificao de estados atribuir uma combinao binria a cada um dos estados do circuito. Tabela de transio de estados elaborar a tabela de transio de estados correspondente ao obtido nos pontos anteriores. Escolher os flip-flops a utilizar optar pela utilizao de flip-flops do tipo D ou de flipflops do tipo JK. A utilizao de FFs do tipo D conduz a uma realizao mais rpida do projecto, mas o circuito resultante , em geral, mais complicado (i.e., com maior nmero de portas lgicas) do que o obtido utilizando FFs JK. Obter as equaes das entradas nos flip-flops obter as expresses lgicas para as variveis de entrada de cada FF (Ds ou JKs). As expresses so obtidas com base na tabela de transies de estados, usando-se os mtodos j conhecidos para obter expresses simplificadas (mapas de Karnaugh, por exemplo). Obter as equaes de sada obter as expresses lgicas para as sadas do circuito. No caso do modelo de Moore, estas so uma funo do estado; no caso do modelo de Mealy so uma funo do estado e das entradas. Desenhar o circuito resultante.

A ttulo de exemplo, nas prximas pginas apresenta-se o desenvolvimento de um projecto cujo objectivo chegar ao esquema de um circuito que corresponda ao diagrama de transio de estados representado na Figura 22.
0,1 00/0 1 1 0 10/1 0 01/0

Figura 22 Diagrama de transio de estados do circuito a projectar.

ISCTEIUL

Arquitectura de Computadores

23

Por observao do diagrama anterior, pode-se concluir que:

este circuito sequencial possui uma entrada (que ser designada por X) e uma sada (que ser designada por Z); o circuito segue o modelo de Moore. Quer isto dizer que o valor lgico da sada Z s depende do valor das variveis de estado; transita por 3 estados distintos. Como para representar trs combinaes diferentes so necessrios 2 bits, ento existem 2 variveis de estado e, consequentemente, 2 flip-flops para armazenar os seus valores.

Neste caso, j foram atribudas combinaes binrias a cada estado no diagrama tem-se os estados 00, 01 e 10. O prximo passo obter a tabela de transies de estados. Com base no diagrama, pode-se observar que quando o circuito est no estado 00, independentemente da varivel de entrada X estar a 0 ou a 1, o estado que seguinte sempre o estado 01. Quando o circuito est no estado 01, o estado seguinte depende do valor de X: se X estiver a 0, ento o prximo estado ser 10, se X estiver a 1 ento o prximo estado ser 00. Utilizando o mesmo raciocnio para o caso em que o circuito est no estado 10, chega-se ento seguinte tabela de transies de estados: Estado actual Q1 Q0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 Estado seguinte Q 1 Q 0 0 1 0 1 1 0 0 0 1 0 0 1 x x x x

X 0 1 0 1 0 1 0 1

Tabela 12 Tabela de transio de estados do circuito a projectar.

Repare que, como o estado 11 no existe no diagrama, considerou-se que para esse caso indiferente o estado seguinte do circuito. Depois de obtida a tabela de transio de estados, pode-se optar por implementar o circuito com flip-flops D, ou ento com flip-flops JK. A escolha dos flip-flops a usar livre, mas obviamente tem implicaes no circuito resultante. Neste exemplo sero obtidos ambos os circuitos o projectado com FFs D e o projectado com FFs JK.

3.3.1. Projecto com flip-flops D


Num flip-flop D, o valor lgico que se quer armazenar no FF o valor que se coloca entrada do flip-flop. Por outras palavras, quando se quer guardar um 1, coloca-se a entrada D a 1; quando se quer guardar um 0 coloca-se a entrada D a 0. Sendo assim, pode-se afirmar que o

ISCTEIUL

Arquitectura de Computadores

24

valor do prximo estado num flip-flop D o valor lgico que se coloca na sua entrada antes de chegar o impulso de relgio. Extrapolando esta abordagem para o circuito sequencial que se pretende projectar, pode-se concluir que o prximo estado do circuito definido atravs dos valores lgicos que se apresentam entrada de cada um dos flip-flop D. Em equaes, o raciocnio do pargrafo anterior traduz-se por D1 = Q1 e D0 = Q0. Podem-se ento obter as equaes de entrada nos FFs D, a partir da tabela de transio de estados.
Q0X Q1 0 1 00 0 1 01 0 0 11 0 x 10 1 x

Q0X Q1 0 1 00 1 0 01 1 1 11 0 x 10 0 x

D1 = Q1' = Q0 X + Q1X

D0 = Q0 ' = Q1Q0 + Q0 X

Quanto ao valor da sada, como esta uma funo do estado, pode-se escrever uma tabela de verdade que relaciona o estado actual com a sada. Com base no diagrama de transio de estados da Figura 22, constri-se a seguinte tabela: Estado actual Sada Q1 Q0 Z 0 0 0 0 1 0 1 0 1 1 1 x
Tabela 13 Relao entre a sada e o estado actual do circuito a projectar.

Considerando a indiferena a 1, pode-se escrever que Z = Q1. Finalmente, e com base nas vrias expresses que foram sendo obtidas, chega-se ao seguinte circuito:
X

D0

Q0

D1

Q1

Clock
Figura 23 Circuito obtido utilizando flip-flops D.

ISCTEIUL

Arquitectura de Computadores

25

3.3.2. Projecto com flip-flops JK


Outra hiptese seria projectar o circuito utilizando flip-flops JK. Para alm de se poderem efectuar as operaes de set e reset, com um flip-flop JK tambm possvel manter ou complementar o estado anterior. Suponha, por exemplo, que um flip-flop JK se encontra no estado 0 e se pretende que o prximo estado tambm seja 0. Com um FF JK possvel conseguir essa situao de duas maneiras diferentes: ou se coloca J=0 e K=1, efectuando-se um reset, ou ento coloca-se J=K=0, mantendo-se o estado anterior (que j era 0). Para ilustrar todas as transies de estados possveis num flip-flop JK, com base no funcionamento do FF obtm-se uma tabela que se designa por tabela de excitao. Esta tabela indica os valores que so necessrios aplicar em J e em K de modo a que o flip-flop faa a transio de estados desejada. Estado actual 0 0 1 1 Estado seguinte 0 1 0 1 J 0 1 x x K x x 1 0

Tabela 14 Tabela de excitao de um flip-flop JK.

Esta tabela diz-nos, por exemplo, que para o flip-flop transitar do estado 0 para o estado 1 (2 linha da tabela), basta fazer J=1. Com J=1 e K=0 seria feito um set e portanto o prximo estado 1; com J=1 e K=1, troca-se o estado anterior, passando de 0 para 1. Considere de novo o projecto do circuito cujo diagrama e tabela de transio de estados se representaram na Figura 22 e na Tabela 12. Escolhendo a opo de o implementar com base em flip-flops JK, necessrio acrescentar novas colunas tabela de transio de estados, de modo a aparecerem os valores de J e K que devem ser colocados nas entradas dos FFs. Os valores de J e K que se colocam em cada linha da tabela so os que provocam a transio de estados correspondente. Com base na tabela de excitao do FF JK, acrescentam-se ento tabela de transio de estados os valores de J e K que fazem com o circuito siga a transio de estados desejada, resultando deste modo a Tabela 15. Q1 Q0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 X 0 1 0 1 0 1 0 1 Q 1 Q 0 0 1 0 1 1 0 0 0 1 0 0 1 x x x x J1 K1 J0 K0 0x 1x 0x 1x 1x x1 0x x1 x0 0x x1 1x xx xx xx xx

Tabela 15 Tabela de transio de estados (com os valores de J e K pretendidos).

ISCTEIUL

Arquitectura de Computadores

26

Depois basta tirar as expresses correspondentes s entradas J e K de cada flip-flop. Para tal podem-se utilizar mapas de Karnaugh.
Q0X Q1 0 1 00 0 x 01 0 x 11 0 x 10 1 x Q1 0 1 Q0X 00 x 0 01 x 1 11 x x 10 x x

J1 = Q 0 X
Q0X Q1 0 1 00 1 0 01 1 1 11 x x 10 x x Q1 0 1 Q0X 00 x x

K1 = X

01 x x

11 1 x

10 1 x

J 0 = Q1 + X

K0 = 1

Com base nas expresses resultantes, obtm-se o circuito representado na Figura 24.
X
J0 Vcc K0 K1 Q0 J1 Q1

Clock
Figura 24 Circuito obtido utilizando flip-flops JK.

A utilizao de flip-flops JK, embora com um projecto mais trabalhoso, geralmente conduz a circuitos bem mais simples. No exemplo que foi apresentado, a soluo obtida com os FFs D conduziu a um circuito com 7 portas lgicas (para alm dos FFs) ao passo que o circuito obtido com FFs JK contm apenas 3 portas lgicas para alm dos FFs.

3.4.

Exemplos de projecto

Nesta seco apresenta-se um problema que resolvido atravs de um circuito sequencial. Todos os passos para projecto esto presentes neste exemplo, incluindo a construo de um diagrama de estados.

3.4.1. Detector de sequncias de 0s Pretende-se projectar um circuito sequencial, com uma entrada X, pela qual entram bits ao mesmo ritmo que o sinal de relgio. A sada Y do circuito dever ir a 1 sempre que o valor 0 apresentado entrada durante trs ou mais ciclos do sinal de relgio. Noutras circunstncias a sada dever ser sempre 0.
ISCTEIUL Arquitectura de Computadores 27

Em primeiro lugar comea-se por desenhar um digrama de estados. Neste problema interessa qu,e no caso da entrada estar trs vezes (ou mais) consecutivas a 0, a sada d o valor lgico 1. Comea-se ento por desenhar um estado inicial E0 , a partir do qual se desenha o resto do diagrama. Quando o circuito est neste estado, o valor lgico da sada dever ser 0 uma vez que ainda no chegou nenhum 0 entrada.
E0/0

Quando o circuito est neste estado inicial, pode acontecer uma de duas coisas: chegar um 1 entrada, ou chegar um 0. Se chegar um 1, ento o circuito pode (e deve) permanecer no estado inicial, pois no h nenhum 0 a contabilizar. Mas, caso chegue um 0, ento est-se na situao em que apareceu um 1 zero na entrada, o que dever fazer com que o circuito passe para um novo estado em que j foi contabilizada a ocorrncia de um 0 na entrada. Desenha-se por isso um novo estado E1 , que corresponde a essa situao:
1 0 E0/0 E1/0

Agora suponha que, estando o circuito no estado E1, chegar um novo 0. Nesse caso o circuito dever transitar para um novo estado E2 no qual j foi contabilizado o aparecimento de 2 zeros. Caso contrrio chegasse um 1, volta-se ao estado inicial apareceu um 1 que estragou a sequncia de 3 zeros e por isso o circuito volta ao estado E0.
1 0 E0/0 1 0 E1/0

E2/0

Seguindo esta linha de raciocnio chega-se ao diagrama de estados da Figura 25.


1 0 E0/0 1 1 1 E3/1 0 0 E2/0 0 E1/0

Figura 25 Diagrama de estados para o detector de sequncias.

ISCTEIUL

Arquitectura de Computadores

28

Apenas h a salientar que o circuito permanece no estado E3 desde que continuem a aparecer 0s na entrada do circuito e como este estado corresponde ocorrncia de 3 ou mais 0s, ento a sada do circuito dever ser 1. Aps a elaborao do diagrama de estados, necessrio proceder codificao de estados. No diagrama foi utilizada a simbologia E0...E3 para representar os vrios estados agora necessrio codific-los. Como so quatro estados diferentes, podem ser codificados utilizando dois bits, fazendo-se a codificao representada na Tabela 16. Estado E0 E1 E2 E3 Q1Q0 00 01 10 11

Tabela 16 Codificao de estados.

Aps serem codificados os estados, e antes de se obter a tabela de transies de estados, o diagrama de estados ficar mais claro se forem includas as combinaes binrias correspondentes aos estados codificados, como representado na Figura 26.
1 0 00/0 1 1 1 11/1 0 0 10/0 0 01/0

Figura 26 Diagrama de estados para o detector de sequncias (com os estados codificados).

Com base no diagrama, constri-se a tabela de transies de estados. Na tabela, a primeira linha corresponde situao em que o circuito est no estado 00 com a entrada a 0. Nesse caso o prximo estado seria 01. Se a entrada estivesse a 1, continuava no estado 00. O resto da tabela construdo olhando para os crculos (o estado em que o circuito est) e para as setas (o valor da entrada). Q 1 Q0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 X 0 1 0 1 0 1 0 1 Q1 Q0 0 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 J1K1 J0K0 0x 1x 0x 0x 1x x1 0x x1 x0 1x x1 0x x0 x0 x1 x1

Tabela 17 Tabela de transio de estados.

ISCTEIUL

Arquitectura de Computadores

29

Concluda a tabela, h que escolher o tipo de FFs a utilizar. Supondo que foram escolhidos FFs do tipo JK, acrescentam-se os valores lgicos para as entradas J e K de cada flip-flop (com base nas tabelas de excitao) e extraem-se as equaes de entrada dos flip-flops.
X 0 0 1 x x 1 0 0 x x X 0 x x 0 0 1 x x 1 1 X 0 1 x x 1 1 0 x x 0 X 0 x 1 0 x 1 x 1 1 x

Q1Q0

Q1Q0

Q1Q0

Q1Q0

00 01 11 10

00 01 11 10

00 01 11 10

00 01 11 10

J1 = Q 0 X

K1 = X

J0 = X

K 0 = X + Q1

Figura 27 Equaes de entrada nos flip-flops.

Para alm das equaes de entrada nos flip-flops, tambm necessrio obter a equao de sada. Como neste caso o valor de sada s depende do estado em que o circuito se encontra (recorde que segue o modelo de Moore), ser obtida uma equao para Y em funo das variveis de estado Q1 e Q0. Como a sada s 1 no estado 11 (i.e., quando Q1 e Q0 esto ambos a 1), fcil de concluir que Y=Q1Q0. Uma vez definidas todas as equaes, pode-se ento proceder ao desenho do circuito. Para resolver este problema foi obtido o circuito representado na Figura 28.
Y X
J0 Q0 J1 Q1

K0

K1

Clock
Figura 28 Circuito resultante para o detector de sequncias.

ISCTEIUL

Arquitectura de Computadores

30

4. Registos
Existem inmeras aplicaes em que h interesse em armazenar informao organizada de um conjunto de bits. Um registo circuito sequencial que permite um armazenamento bsico, mas organizado, de um conjunto de vrios bits de informao. Num sistema digital, os registos so tipicamente utilizados para armazenar dados resultantes de operaes aritmticas ou de transferncias de informao (por exemplo, o processador guarda em registos dados que l da memria). Muitas vezes os dados esto organizados segundo conjuntos de bits que se designam por palavras. Uma palavra basicamente uma combinao de n bits que representa informao: um nmero, um carcter, uma instruo. Faz muitas vezes sentido trabalhar com palavras como um todo e no com cada um dos bits individualmente. Os registos possibilitam um conjunto de funcionalidades bsicas, entre as quais se destacam:

Load ou Carregamento guardar uma nova palavra no registo. Clear ou Reset inicializar o registo com 0s. Shift ou Deslocamento deslocar os bits dentro do registo (este tipo de operao muito importante em multiplicaes e divises).

Um registo construdo com base em flip-flops ou em latches. Como foi visto anteriormente, cada flip-flop (ou latch) capaz de armazenar um bit de informao. Sendo assim, faz sentido que um registo que lida com o armazenamento de n bits de informao (palavras de n bits) seja composto por n flip-flops ou latches, cada um responsvel por guardar um bit de informao.
D0 D Q0 D0 D C Q0

D1

Q1

D1

D C

Q1

D2

Q2

D2

D C

Q2

D3 C

Q3

D3 C

D C

Q3

(a) Registo com flip-flops D Figura 29 Registos de 4 bits.

(b) Registo com latches D

Considere os circuitos esquematizados na Figura 29. Ambos representam registos bsicos que armazenam a informao fornecida atravs das linhas D0 a D3 seriam registos que lidam com palavras de 4 bits e portanto seriam registos de 4 bits. A diferena entre os dois esquemas
ISCTEIUL Arquitectura de Computadores 31

consiste nos instantes de tempo em que novos valores podem ser carregados no registo: o registo construdo com base em flip-flops D carrega os dados no instante em que C transita de 0 para 1, ao passo que o registo construdo com base em latches responde durante todo o intervalo de tempo em que C se encontra a 1.
Reg

D0 D1 D2 D3

Q0 Q1 Q2 Q3

Figura 30 Smbolo de um registo.

O smbolo de um registo consiste num rectngulo sobre o qual se representam as suas entradas e as suas sadas (ver Figura 30). O tringulo associado ao sinal de relgio indica que o registo implementado com base em flip-flops edge-triggered o carregamento de dados para o registo ocorre quando o relgio transita (de 0 para 1, neste caso).

4.1.

Registos com carregamento e reset

Os registos apresentados na introduo, apesar de permitirem o armazenamento da informao, no serviro para muito num sistema mais complexo sincronizado por um sinal de relgio. Isto porque sempre que o relgio fosse a de 0 para 1 seriam carregados novos dados no registo, o que poderia no ser desejvel. No entanto, a partir destes registos bsicos podem ser construdos outros registos que permitem maior controlo sobre a informao armazenada. Uma forma de se poder controlar o carregamento (ou no) de novos dados no registo seria acrescentar uma varivel de controlo Load que funcionaria do seguinte modo: se Load estiver a 1 o registo carrega novos dados, caso contrrio o registo mantm os dados que j se encontravam armazenados. Intuitivamente, uma forma de implementar este esquema seria acrescentar uma porta AND ao sinal de relgio, tal como esquematizado na Figura 31.
Load Clock D0 D1 D2 D3 Q0 Q1 Q2 Q3

REG

Figura 31 Registo de 4 bits com controlo de carregamento.

ISCTEIUL

Arquitectura de Computadores

32

Com Load a 0, o sinal que chega entrada de relgio do registo 0, logo no h transies e no se carregam novos dados. Com Load a 1 o relgio passa normalmente e portanto carregam-se dados. Esta tcnica, na qual so utilizadas portas lgicas de forma a manipular o sinal de relgio, designa-se por clock gating. Pode no entanto trazer inconvenientes quando os registos fazem parte de um sistema mais complexo, no qual seria desejvel que todos os elementos reagissem ao mesmo tempo. Ao serem acrescentadas portas lgicas no caminho do sinal de relgio, introduzido um atraso devido aos tempos de propagao dessas portas lgicas. Quer isto dizer que as transies do sinal de relgio chegam atrasadas aos elementos com clock gating e portanto esses elementos reagem mais tarde do que outros. Tal facto designa-se por escorregamento do sinal de relgio (clock skew), e pode conduzir a problemas de sincronizao. Em alternativa s tcnicas de clock gating, prefervel usar um mtodo que se designa por carregamento paralelo sncrono. H semelhana do que foi visto, existe uma varivel de controlo Load, que, quando activada, faz com que sejam carregados novos dados no registo, mas quando desactivada, o registo forado a recarregar os dados que j l se encontravam armazenados. Uma forma simples de implementar esta ideia encontra-se ilustrada na Figura 32.

Load D0

Q0

D D1

Q1

D D2

Q2

Reg
Load D0 D1 D2 D3 Q0 Q1 Q2 Q3

D D3 Clock

Q3

(a) Esquema de ligaes.

(b) Smbolo.

Figura 32 Registo de 4 bits com carregamento paralelo sncrono.

Para compreender o que feito, considere o esquema de um andar deste registo, representado na Figura 33. De um modo geral, para se perceber como funciona um registo basta analisar o comportamento de um dos andares que o compem os restantes tm um comportamento semelhante, diferenciando-se apenas pela ordem do bit informao que tratam.

ISCTEIUL

Arquitectura de Computadores

33

Load Di Clock

Qi

Figura 33 Andar de um registo com carregamento paralelo sncrono.

Com a varivel Load a 0 a sada da porta AND de baixo ser 0, ao passo que a sada da porta de cima ser Qi. Deste modo, na entrada D do flip-flop estar o valor de Qi. Quando chegar um impulso de relgio o flip-flop carregar Qi e portanto no altera o seu estado. Quando Load est a 1, a sada da porta AND de baixo ser Di, ao passo que a sada da porta de cima ser 0. Sendo assim, a entrada D do flip-flop ter o valor de Di. Quando chegar o impulso de relgio, a sada do flip-flop assumir o valor de Di carrega-se portanto o valor de Di. Na Tabela 18 sintetizam-se estas operaes. Os smbolos Qi e Qi designam o estado actual e o prximo estado do i-simo flip-flop do registo, respectivamente. Clock Load 0 1 Operao Qi = Qi (manter o valor de Qi) Qi = Di (carregar o valor de Di)

Tabela 18 Operaes no registo com carregamento paralelo sncrono.

Pode portanto concluir-se que, estando Load a 1, o registo carrega os valores de D0 a Dn-1 nos vrios flip-flops quando chegar um impulso de relgio. Com Load a 0 o registo mantm os valores Q0...Qn-1 que se encontravam armazenados anteriormente. Outra forma de implementar um andar de um registo com carregamento paralelo sncrono seria utilizando multiplexers. Load seria ligado ao selector, Di e Qi seriam ligados s entradas de dados do multiplexer, como o esquematizado na Figura 34. Quando Load est activado selecciona-se Di; com Load desactivado selecciona-se Qi.
Mux 2-1

Load Di Clock

Sel 0 1 Y

Qi

Figura 34 Andar de um registo com carregamento paralelo sncrono (utilizando um multiplexer 2-1).

Outra operao que importante nos registos a sua inicializao a 0s, extremamente til numa grande variedade de aplicaes, com destaque para as operaes aritmticas. A inicializao dos registos pode ser feita de forma assncrona com o sinal de relgio ou de uma forma sncrona. Efectuar uma operao de Clear (reset) assncrono em geral simples, pois muitas vezes os prprios FFs que fazem parte do registo j possuem uma entrada de Reset assncrono. Deste modo basta existir um sinal que actua em simultneo sobre todas as entradas de reset dos flip-flops, tal como o esquematizado na Figura 35.

ISCTEIUL

Arquitectura de Computadores

34

D0

Q0 R

D1

Q1 R

Reg
D2 D Q2 R D3 Clock R Clear D Q3

D0 D1 D2 D3 Clear

Q0 Q1 Q2 Q3

(a) Esquema de ligaes

(b) Smbolo

Figura 35 Registo de 4 bits com reset assncrono.

A elaborao de clear sncrono semelhante ao carregamento paralelo sncrono, mas em vez de se fazer o carregamento com um valor Di, faz-se com que seja carregado o valor lgico 0 em todos os flip-flops do registo. ainda possvel um registo possuir ambas as possibilidades: carregamento paralelo e clear sncronos. Nestes casos habitual o clear prevalecer sobre o carregamento, i.e., quando Clear est activado, os flip-flops so forados a carregar 0s, independente do nvel lgico de Load. Um possvel esquema para um andar de um registo com carregamento paralelo e clear sncronos encontra-se esquematizado na Figura 36.
Clear Di Load D Qi

Clock

Figura 36 Andar de um registo com carregamento paralelo e clear sncronos.

Repare que com quando a varivel Clear est a 1, as sadas das portas AND so 0 e consequentemente, a entrada do FF D tambm 0. Quando ocorrer um impulso de relgio, a sada Qi ficar a 0. Com Clear=0, o circuito fica com um comportamento semelhante ao que j foi analisado na Figura 33. As operaes possveis encontram-se resumidas na Tabela 19. Clock Clear 0 0 1 Load 0 1 X Operao Qi = Qi (manter o valor de Qi) Qi = Di (carregar o valor de Di) Qi = 0 (Reset)

Tabela 19 Operaes num registo com carregamento paralelo e clear sncronos.

ISCTEIUL

Arquitectura de Computadores

35

Clear Load D0 D Q0

D1

Q1

D2

Q2

REG
Load Clear

D3

Q3

Clock

D0 D1 D2 D3

Q0 Q1 Q2 Q3

(a) Esquema interno

(b) Smbolo

Figura 37 Registo de 4 bits com carregamento paralelo e clear sncronos

Com base em n andares idnticos pode ser construdo um registo de n bits com carregamento paralelo e clear sncronos. A ttulo de exemplo, representa-se na Figura 37 um registo de 4 bits com estas duas possibilidades.

4.2.

Registos de deslocamento

Outras operaes igualmente importantes so as chamadas operaes de deslocamento. Uma operao de deslocamento consiste em fazer deslocar os bits de uma palavra guardada dentro de um registo. O deslocamento pode ser feito para a esquerda ou para a direita. Para compreender melhor uma operao de deslocamento, considere um registo R, de 8 bits, que contm armazenado o valor 0100 1011 (ver Figura 38). Deslocar para a direita o contedo deste registo corresponderia a deixar o registo com o valor b010 0101, em que b um bit novo que entra no registo, que tanto poderia valer 1 como 0. De modo anlogo, deslocar para a esquerda corresponderia a deixar o registo com o valor 1001 011b. Repare tambm que quando se desloca o contedo de um registo para a direita, o bit mais direita sai do registo (e quando se desloca para a esquerda, sai o bit mais esquerda).
Contedo original 0 1 0 0 1 0 1 1
0 1 Contedo original 0 0 1 0 1 1

Deslocamento para a direita b 0 1 0 0 1 0 1 1


0 1

Deslocamento para a esquerda 0 0 1 0 1 1 b

Figura 38 Deslocamento do contedo de um registo.

ISCTEIUL

Arquitectura de Computadores

36

Repare tambm que o deslocamento direita e o deslocamento esquerda pode ser vistos tambm como deslocamentos no sentido do bit menos significativo, ou no sentido do bit mais significativo, respectivamente. As operaes de deslocamento tm um papel muito importante na multiplicao e diviso binrias. Servem tambm para paralelizar dados que chegam numa linha srie e vice-versa. Consoante o bit que entra e o que feito ao bit que sai, existem algumas designaes especficas para alguns tipos de deslocamento:

deslocamento lgico neste tipo de deslocamento, o bit que entra sempre 0; deslocamento aritmtico neste tipo de deslocamento, que s se faz para a direita, o bit que entra pela esquerda igual ao bit mais significativo. Desta forma preserva-se o bit de sinal do nmero armazenado no registo, da a designao aritmtico. deslocamento rotativo neste tipo de deslocamento o bit que sai pela esquerda entra pela direita (ou vice-versa, consoante a direco do deslocamento).

Um registo bsico que permite o deslocamento de bits encontra-se esquematizado na Figura 39. Repare que este registo possui uma nica entrada a entrada srie SI por onde vo entrando os bits a armazenar/deslocar. Quando ocorre um impulso de relgio, cada um dos flip-flops vai ser carregado com o contedo do flip-flop anterior (excepto claro est o primeiro FF, que carregado com o valor de SI). Por outras palavras, medida que chegam impulsos de relgio, o registo vai sendo preenchido com os bits que vo sendo apresentados em SI. Cada impulso de relgio origina um deslocamento para esquerda.
Entrada srie (SI) D Q0

Q1

Q2

D Clock

Q3

Figura 39 Registo de deslocamento para a esquerda.

No fundo, o que acontece em cada impulso de relgio pode ser descrito do seguinte modo:

Q 0 = SI Q i = Q i 1

ISCTEIUL

Arquitectura de Computadores

37

Este tipo de registo, embora muito simples, poderia ser utilizado para distribuir os bits que vo chegando entrada srie pelas linhas paralelas Q0 a Q3. Poderia ser por isso designado por registo de deslocamento srie-paralelo. Suponha agora que se pretende construir um registo de deslocamento que, para alm de deslocar o contedo, possui tambm a hiptese de serem carregados novos valores. Tal registo seria um registo de deslocamento com carregamento paralelo. Tal como foi visto anteriormente, para projectar um registo de n bits que permita efectuar estas operaes, basta projectar um andar do registo e depois repetir esse andar n vezes. Um registo de deslocamento com carregamento paralelo dever ento permitir as operaes sintetizadas na seguinte tabela: Clock

Shift 0 0 1

Load 0 1 X

Operao Qi = Qi (manter o valor de Qi) Qi = Di (carregar o valor de Di) Qi = Qi-1(deslocamento para a esquerda)

fcil de verificar que um circuito que efectua estas operaes , por exemplo, o circuito representado na Figura 40 (Qi-1 representa a sada do FF anterior).
Qi-1

Shift Di Load D Qi

Clock

Figura 40 Andar de um registo de deslocamento com carregamento paralelo sncrono.

Com base em 4 andares semelhantes pode-se construir um registo de deslocamento de 4 bits com carregamento paralelo.

ISCTEIUL

Arquitectura de Computadores

38

Shift Load Entrada srie (SI) D0 D Q0

D1

Q1

D2

Q2

D3

Q3

Clock

Figura 41 Registo de deslocamento 4 bits com carregamento paralelo.

O registo projectado permite deslocamento para esquerda (na direco do bit mais significativo). Existem registos que permitem deslocamento nos dois sentidos. Recorrendo a multiplexers relativamente fcil projectar um registo que possibilite o deslocamento da informao em ambas as direces. Assim, utilizando um multiplexer 4-1, um andar de um registo com estas funcionalidades poderia ser o representado na Figura 42, onde Qi-1 e Qi+1 representam as sadas do flip-flop anterior e do flip-flop seguinte, respectivamente.
Qi-1

Mux 4-1 M0 M1
S0 S1 0 1 2 3 Y

Qi

Di Clock Qi+1

Figura 42 Andar de um registo de deslocamento em ambas as direces e com carregamento paralelo.

Na Tabela 20 encontram-se sintetizadas as operaes que seriam possveis de efectuar com este registo:

ISCTEIUL

Arquitectura de Computadores

39

Clock M1 M0 0 0 0 1 1 0 1 1

Operao Qi = Qi (manter o valor de Qi) Qi = Qi+1 (deslocamento para a direita) Qi = Qi-1 (deslocamento para a esquerda) Qi = Di (carregar o valor de Di)

Tabela 20 Operaes no registo com deslocamento bidireccional.

Se fosse projectado um registo de 4 bits, com base em 4 andares idnticos ao da Figura 42, o smbolo para o circuito resultante seria o representado na Figura 43. Repare que possui duas entradas adicionais RSI (Right serial input) e LSI (left serial input) que seriam as entradas srie para os novos bits que entram quando feito um deslocamento para a esquerda ou para direita, respectivamente.
Reg
M0 M1 RSI D0 D1 D2 D3 LSI

Q0 Q1 Q2 Q3

Figura 43 Smbolo de um registo com deslocamento bidireccional.

ISCTEIUL

Arquitectura de Computadores

40

5. Contadores
Um contador consiste num circuito sequencial que segue uma sequncia de estados prdeterminada. A designao contador justifica-se pois essa sequncia de estados corresponde normalmente a uma sequncia de contagem numrica. Por outro lado, comum estabelecer uma analogia entre contadores e registos, uma vez que a maioria dos contadores possuem caractersticas semelhantes s dos registos (tipicamente permitem o carregamento e armazenamento de informao), como ser visto mais adiante.

5.1.

Contadores binrios

A classe de contadores mais simples so os contadores binrios. Um contador binrio segue uma sequncia de estados que corresponde sequncia do cdigo binrio natural. Esta sequncia de estados corresponde a sequncia de contagem do contador. Num contador binrio de n bits, a sequncia de contagem corresponde aos nmeros entre 0 e 2n-1 (e.g., um contador binrio de 4 bits efectua uma contagem entre 0 e 15). semelhana dos registos, um contador binrio de n bits construdo com base em n flip-flops. Consoante o modo como os flip-flops tm ligado o sinal de relgio, os contadores binrios podem ser divididos em dois grupos distintos: Contadores binrios ripple ou assncronos neste tipo de contadores, existe apenas um flipflop est ligado ao sinal de relgio. Cada um dos restantes flip-flops reage com base no sinal de sada de outro flip-flop. Contadores binrios sncronos num contador sncrono, todos os flip-flops reagem em simultneo, por possurem um sinal de relgio comum a todos eles.

Um contador binrio ripple de 4 bits pode ser observado na Figura 44. Repare na sua arquitectura: cada um dos flip-flops possui as entradas J e K ligadas ao nvel lgico 1, o que significa que ao ocorrer uma transio de 1 para 0 na sua entrada de relgio, o flip-flop complementa o estado anterior.
'1' '1' '1' '1'

Q0

Q1

Q2

Q3

CLK
K K K K

Clear
Figura 44 Contador binrio ripple de 4 bits.

Continuando a seguir o raciocnio, pode-se afirmar que, para o i-simo flip-flop trocar o seu estado, necessrio que o flip-flop anterior troque o seu estado duas vezes de 0 para 1 e depois de 1 para 0.
ISCTEIUL Arquitectura de Computadores 41

Considerando que inicialmente os flip-flops esto todos a 0 (poder-se-ia actuar sobre a entrada de clear para garantir essa situao), pode-se escrever que o estado do circuito : Q3Q2Q1Q0 = 0000 Aps a ocorrncia da primeira transio de 1 para 0 no sinal de relgio, o primeiro flip-flop complementa o seu estado, i.e., Q0 passa de 0 para 1. Quanto aos restantes flip-flops permanecem no mesmo estado, uma vez que nenhum dos sinais de relgio aos quais esto ligados transitou de 1 para 0. Logo o 2 estado do circuito ser: Q3Q2Q1Q0 = 0001 Ao chegar a 2 transio de 1 para 0 no sinal de relgio, o primeiro flip-flop complementa novamente o seu estado (Q0 = 0). O segundo FF complementa-o tambm, pois a transio de Q0 de 1 para 0 faz com que reaja, ou seja Q1 vai passar de 0 para 1. O circuito ir ento para o estado Q3Q2Q1Q0 = 0010 Continuando com esta abordagem poder-se-ia verificar com facilidade que o circuito segue uma sequncia de estados que corresponde sequncia binria de 0000 a 1111, isto , os nmeros inteiros entre 0 e 15. Pode-se tambm observar o comportamento do circuito no diagrama temporal representado na Figura 45.

CLK Q0 Q1 Q2 Q3 Estado
0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 1 1 1 0 0 0 0 1

...

...

Figura 45 Evoluo temporal da sequncia de estados do contador ripple.

Apesar do seu princpio de funcionamento ser muito simples, a utilizao de um contador ripple deve ser evitada em sistemas mais complexos. Como j foi referido anteriormente (ver a seco sobre flip-flops), o tempo de propagao de um flip-flop no nulo. Se considerarmos que cada flip-flop tem um tempo de propagao TPD, at que o i-simo flip-flop mude o valor da sada decorrer um tempo igual a i vezes TPD. Por exemplo, na transio do estado 7 para o estado 8, o 4 flip-flop s ir reagir aps todos os anteriores terem reagido mas como cada um destes tambm s reage quando os anteriores reagirem, sero necessrios 3 TPD at que o 4 FF comece a reagir, mais TPD at o valor da sua sada se alterar. Entre a transio do estado 7 para o estado 8 decorre ento um intervalo de tempo correspondente a 4TPD.

ISCTEIUL

Arquitectura de Computadores

42

Para alm do atraso, circuito passa momentaneamente por outros estados, permanecendo um intervalo de tempo aproximadamente igual a TPD em cada um deles. No diagrama temporal da Figura 46 pretende-se ilustrar a situao descrita no pargrafo anterior.
TPD TPD TPD TPD

CLK Q0 Q1 Q2 Q3 7 6 4 0 8

Estados intermdios
Figura 46 Estados intermdios num contador ripple.

Estes estados intermdios so os chamados estados instveis, e devem ser evitados em muitas situaes. Os contadores sncronos no possuem este problema, pois todos os flip-flops reagem ao mesmo tempo. Se todos os flip-flops tiverem tempos de propagao idnticos, no h passagens por estados instveis, e as vrias sadas do contador mudam os seus valores praticamente em simultneo aps ter decorrido um intervalo de tempo igual ao tempo de propagao do flip-flop. Na Figura 47 pode ser observado um contador binrio sncrono de 4 bits, construdo com base em flip-flops JK edge-triggered. O funcionamento deste tipo de contadores simples: as entradas J e K de cada flip-flop s ficam com o valor lgico 1 quando as sadas dos flip-flops anteriores esto todas a 1. Por outras palavras, cada flip-flop s muda de estado quando todos os que o precedem esto no estado 1. A nica excepo o flip-flop que corresponde ao bit menos significativo do estado (o 1 flip-flop), cujas entradas J e K esto sempre 1, para que mude o seu estado em todos os impulsos do sinal de relgio.
1
J CP K

Q0

J CP K

Q1

Q2

Q3

CLK
Figura 47 Contador binrio sncrono de 4 bits.

Existem situaes em que interessa assinalar o ltimo estado da sequncia de contagem. Num contador binrio, o ltimo estado da sequncia de contagem corresponde ao estado em que as sadas do contador esto todas a 1, i.e., Q1=1, Q2=1 ... Qn-1 = 1. Para assinalar o ltimo estado
ISCTEIUL Arquitectura de Computadores 43

habitual os contadores possurem uma sada extra designada por fim de contagem (terminal count). No circuito anterior relativamente simples implementar uma sada deste gnero bastaria uma porta lgica AND entre as vrias sadas Qi. Para alm do fim de contagem, um contador costuma tambm possuir uma entrada que, quando activada, deixa o contador seguir a sequncia de contagem, mas que quando est desactivada, pra a contagem, fazendo com que o contador a permanea no estado em que estava no momento da paragem. Tal entrada costuma ser designada por enable de contagem (count enable). Para conseguir que um contador pre a contagem, basta que se coloquem a 0 as entradas J e K dos flip-flops, fazendo com que estes mantenham o estado actual. Estes sinais extra podem ser implementados com facilidade acrescentando material ao contador sncrono anterior. O resultado o contador representado na Figura 48, onde a entrada CE e a sada TC so os sinais de enable de contagem e fim de contagem, respectivamente.
CE TC
J CP K

Q0

J CP K

Q1

J CP K

Q2

J CP K

Q3

CLK
Figura 48 Contador binrio sncrono de 4 bits com enable e fim de contagem.

5.2.

Contadores especiais

Para alm dos contadores binrios, existem tambm outros contadores que seguem sequncias diferentes do cdigo binrio natural, ou ento que permitem contagens descendentes. Entre os contadores mais comuns, destacam-se:

Contadores BCD contadores cuja sequncia de contagem corresponde representao em binrios dos nmeros entre 0 e 9 (de 0000 a 1001); Contadores Up/Down contadores (binrios ou no) que possuem uma varivel de entrada que permite controlar a direco da contagem (contagem crescente ou decrescente); Contadores mdulo-N contadores que seguem uma sequncia de N estados, que habitualmente correspondem a nmeros consecutivos entre os mais comuns encontram-se o contador mdulo-6 e o mdulo-12, que contam de 0 a 5 e de 0 a 11, respectivamente 5; Contadores com carregamento paralelo possuem uma entrada de load que, quando activada permite carregar um dado valor no contador. Esse valor especificado em entradas paralelas de dados, semelhana de um registo.

Ambos costumam ser utilizados em relgios digitais: o mdulo-6 conta o algarismo das dezenas para os minutos/segundos e o mdulo-12 conta as horas nos relgios que distinguem AM/PM.
Arquitectura de Computadores 44

ISCTEIUL

5.3.

Projecto de contadores

Qualquer contador pode ser projectado com base nos procedimentos de projecto para circuitos sequenciais. Como as sadas do contador so dadas directamente pelos estados em que os flipflops se encontram, os contadores seguem o modelo de Moore. Tal como j foi feito em seces anteriores, nada melhor do que um exemplo para ajudar a perceber como se projecta a base de um contador. Suponha que se pretende projectar um contador up/down de 3 bits. Recorde que um contador up/down possui uma entrada que permite controlar a direco da contagem essa varivel de controlo ser designada por U / D . O contador efectua contagem crescente ou decrescente consoante essa varivel esteja a 1 ou a 0, respectivamente. Como o contador de 3 bits, a sequncia de contagem ser de 0 a 7 (ou de 7 a 0, se estiver em modo decrescente). Em primeiro lugar traduz-se o problema por um diagrama de estados. O diagrama resultante encontra-se representado na Figura 49.
1 1 0 7 1 0 1 6 0 5 0 1 4 0 0 1 0 0 1 0 1 2 1 3

Figura 49 Diagrama de estados do contador up/down de 3 bits.

Como se trata de um contador, conveniente que a codificao de estados siga a sequncia pretendida. Assim, o estado 7 corresponde a 111, o 6 a 110, o 5 a 101 e assim sucessivamente. Com base no diagrama pode-se construir a tabela de transies de estados:
Q2 Q1 Q0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 U/D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Q 2 Q 1 Q 0 1 1 1 0 0 1 0 0 0 0 1 0 0 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0 0 0 0

Tabela 21 Tabela de transio de estados do contador up/down de 3 bits.

ISCTEIUL

Arquitectura de Computadores

45

Neste ponto pode-se optar pela utilizao de flip-flops JK ou flip-flops D. Como a utilizao de flip-flops JK conduz geralmente a equaes mais simples, optou-se pela utilizao de FFs deste tipo. portanto necessrio acrescentar tabela os valores de J e K de modo a que sejam efectuadas as transies de estados pretendidas. O resultado pode ser observado na Tabela 22.
Q2 Q1 Q0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 U/D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Q 2 Q 1 Q 0 1 1 1 0 0 1 0 0 0 0 1 0 0 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0 0 0 0 J 2K 2 1X 0X 0X 0X 0X 0X 0X 1X X1 X0 X0 X0 X0 X0 X0 X1 J 1K 1 1X 0X 0X 1X X1 X0 X0 X1 1X 0X 0X 1X X1 X0 X0 1X J 0K 0 1X 1X X1 X1 1X 1X X1 X1 1X 1X X1 X1 1X 1X X1 X1

Tabela 22 Valores a aplicar aos Js e aos Ks.

Com base na tabela, utilizando simplificao por mapas de Karnaugh (e tambm algumas propriedades da lgebra de Boole) chegam-se s seguintes expresses (por uma questo de simplicidade, U designa a varivel de entrada U / D ):
Q 0U Q2Q1 00 01 11 10 X X X X 00 1 1 X X X X 01 11 10 Q 0U Q2Q1 00 01 11 10 1 00 X X 01 X X 11 X X 1 10 X X

J 2 = K 2 = Q 1 Q 0 U + Q 1Q 0 U = Q 1 U Q 0 U
Q 0U Q2Q1 00 01 11 10 00 1 X X 1 X X 01 11 1 X X 1 X X 10 Q 0U Q2Q1 00 01 11 10 00 X 1 1 X X 01 X 11 X 1 1 X X 10 X

J1 = K1 = Q0 U + Q0 U = Q0 U

ISCTEIUL

Arquitectura de Computadores

46

Quanto a J0 e K0, olhando para a tabela fcil de concluir que J0=K0=1. Tm-se portanto as seguintes equaes: J 2 = K 2 = Q1 U Q 0 U J1 = K1 = Q0 U J0 = K0 = 1 Com base nas equaes desenha-se o circuito resultante:
U/D
Vcc

Q0

Q1

Q2

Clock
Figura 50 Contador up/down de 3 bits.

Um possvel smbolo para este contador seria:


CTR3
Q0 Q1 Q2

U/D

Figura 51 Smbolo para o contador up/down de 3 bits.

ISCTEIUL

Arquitectura de Computadores

47

Lista de revises
Verso 0.01 0.01a Autor TB TB Data Jan./2005 Jan./2005 Comentrios Verso draft inicial para publicao antecipada. Correco de gralha na Figura 22 Correco de diversas gralhas, reformulao de texto, reformatao do documento

0.02

TB

Out./2009

ISCTEIUL

Arquitectura de Computadores

49