Prof V Vargas, IST Síntese Clássica (Modelo de Moore) 26/11/13, Pg 2/20
Síntese clássica (Modelo de Moore)/ 16aº Projecto
Esta é a primeira sessão dedicada à Síntese de Circuitos Sequenciais Síncronos, isto é, ao desenho de Circuitos
Sequenciais com flip-flops recebendo directamente impulsos de relógio da mesma fonte... Tal como as demais
sessões, ir-se-á partir de um Projecto concreto…
Considere-se um condutor que, para abrir a porta da viatura, recorre a um dispositivo de controlo remoto: clica-
o, e ele emite repetidamente, por rádio frequência (RF), e ao ritmo do relógio, a sequência de bits ‘1011’.
Ao lado, apresenta-se o diagrama temporal representativo da sequência referida – e o objectivo é precisamente
desenhar um circuito sequencial síncrono capaz de o gerar.
O essencial na Síntese de Circuitos Sequenciais Síncronos é discernir os Estados que o circuito pode assumir –
e como é que de um deles se transita para os outros. No caso entre mãos, é claro que o circuito vai passando
ciclicamente por quatro estados, denominem-se eles de {A, B, C e D}. Mais ainda: em cada momento, tanto a
evolução do circuito (por outras palavras: qual o estado seguinte?) como a saída, seja ‘Z’, dependem só do estado
em que o circuito se encontra. Um circuito assim diz-se autónomo: não contando, é claro, com o sinal de relógio,
não há quaisquer entradas externas, o seu estado é a única “entrada” de que a saída depende.
Em Projectos não tão simples, será exigir muito ao intelecto humano discernir sem mais quais os Estados
possíveis do circuito, e a relação entre eles – pelo que a praxis recomendável é começar pelo desenho do seu
Diagrama de Estados. Este deve, aliás, ser considerado o ponto crítico no desenho de um Circuito sequencial
síncrono: o que se lhe segue é automático – já que não será difícil conceber software que, recebendo como input
tal Diagrama, indique como se deverão interligar flip-flops e chips combinatórias para concretizar o circuito.
1. Considere-se o momento em que o condutor clica no seu dispositivo de controlo… Conforme ao enunciado,
o circuito deverá ingressar num estado – seja ‘A’ – em que irá produzir ‘1’ na saída; fá-lo-á até ao próximo impulso
de relógio (doravante, substitui-se impulso de relógio por, mais brevemente, clock). Graficamente,
– esse estado representa-se por um círculo nomeado por, embora não obrigatoriamente, uma maiúscula, ‘A’;
– a saída, ‘1’, é indicada no seio do círculo, precedida pelo símbolo ‘/’;
– o caracter inicial do estado é denotado por uma seta dirigida da esquerda para o próprio círculo.
2. Admita-se agora que ocorre um clock. Conforme ao enunciado, o circuito deverá ingressar num novo estado,
‘B’, em que irá produzir ‘0’. Graficamente,
– esse estado e saída representam-se como acima: um círculo nomeado ‘B’, em cujo seio se indica a saída ‘0’;
– a transição, entre os estados ‘A’ e ‘B’, representa-se por uma seta dirigida do círculo ‘A’ para o círculo ‘B’.
3. Com outro clock, o circuito irá ingressar num novo estado, ‘C’, em que irá gerar ‘1’. Intui-se como é que isso
se representa: uma seta dirigida de ‘B’ para um novo círculo, ‘C’, apropriadamente rotulado…
4. E com um novo clock, o circuito irá ingressar num novo estado, ‘D’, continuando a gerar o bit ‘1’. Isso
representa-se por uma seta dirigida de ‘C’ para um novo círculo, ‘D’, adequadamente rotulado…
5. Com o próximo clock, o circuito irá regressar ao estado inicial, ‘A’, continuando a gerar o bit ‘1’. Isso
representa-se por uma seta dirigida do círculo ‘D’ para o círculo ‘A’ …
O diagrama de estados ocupa uma superfície de papel não despicienda, pelo que se prefere convertê-la numa
bem mais compactada Tabela de Estados/Saída. Esta é constituída, de facto, por duas Tabelas:
– uma que indica, para cada estado actual ‘Q(t)‘, qual a saída actual, ‘Z(t)‘;
– e uma outra que indica, para cada estado actual ‘Q(t)‘, qual o estado seguinte, ‘Q(t+1)‘.
Na prática, dispõe-se:
– à esquerda uma coluna, ‘Q(t)‘, onde se listam, linha a linha, os estados que constam no diagrama de estados;
– à direita, duas colunas, ‘Z(t)‘ e ‘Q(t+1)‘, em que, linha a linha, se inscreve a saída e o estado seguinte, tais como
o indicam o diagrama de estados.
Por exemplo, o diagrama de estados indica que, para o estado actual ‘B’, a saída é ‘0’ e o estado seguinte é ‘C’;
isso volve-se em escrever, na linha ‘B’ da Tabela de Estados/Saída: ‘0’ na coluna de ‘Z(t)’ e ‘C’ na coluna ‘Q(t+1)’.
(Na vida real, e para maior segurança, os dispositivos de abertura da porta de viaturas geram sequências mais
longas e, aliás, variáveis; mas, para o fim em vista, basta uma sequência fixa de 4 bits, não é preciso complicar…)
Prof V Vargas, IST Síntese Clássica (Modelo de Moore) 26/11/13, Pg 4/20
Síntese clássica (Modelo de Moore)/ Síntese Clássica com Flip-Flops T
De posse da Tabela de Estados/Saída, resta concretizá-la mediante flip-flops e chips combinatórios: ANDs,
ORs e NOTs, ou só NANDs, ou só NORs, como se fará adiante, ou decoders e ORs, ou multiplexers, etc…
O método de desenho dito clássico visa usar não mais que o menor número de flip-flops capaz de concretizar a
Tabela. A esse respeito, a Tabela ao lado apresenta quatro estados – do que se deduz que serão necessários, e
suficientes, dois flip-flops, designem-se eles de {Q1, Q0}.
Isso decidido, o passo seguinte é proceder à codificação dos estados – isto é, estabelecer uma correspondência
biunívoca entre cada estado e uma combinação particular de dois bits {Q1 Q0}. Aquela que se privilegia ao lado
usa o CBN (Código Binário Natural); mas há outras possibilidades, nomeadamente o código de Gray… De facto,
há muitas mais maneiras de codificar os 4 estados: após escolher, para codificar ‘A’, um dos 4 pares de bits
possíveis, sobram 3 pares; após escolher, para codificar ‘B’, um desses 3 pares, sobram 2 pares; e após escolher,
para codificar ‘C’, um desses 2 pares, resta 1 par, que será usado para codificar ‘D’: um total, portanto, de 4!=24
possibilidades distintas – que, se suspeitará, conduzem a circuito diferentes! Eles poderão ser mais ou menos
complicados – o que recomenda a praxis de explorar várias possibilidades, visando chegar à solução mais simples.
A etapa seguinte é transformar a Tabela de Estados/Saída na assim designada Tabela de Transições e Saídas –
ou preferivelmente, já antevendo o que seguirá, num Mapa de Karnaugh, vidé ao lado: cada literal {A, B, C, D}
designando um estado é substituído pelo par de bits {Q1 Q0} que o codifica…
Obtida essa Tabela de Transições e Saídas, torna-se viável escrever a expressão simplificada da saída ‘Z’ do
circuito; em geral, usar-se-á o método de Karnaugh, mas no caso presente nem isso é preciso: a expressão da POS
é suficiente…
Resta determinar as expressões simplificadas das entradas dos flip-flops – e isso exige, é claro, precisar o tipo
de flip-flop a usar – e de novo se intui que consoante a escolha, assim se obterão circuitos distintos! Poderão ser
mais ou menos complexos – o que recomenda a praxis de explorar várias possibilidades, visando a mais simples…
Admita-se que, neste Projecto, se opta por flip-flops T (advertindo desde já que a seu tempo, e no contexto de
novos Projectos, serão explorados outros tipos de flip-flops); como auxiliar de memória, apresentam-se ao lado o
diagrama de estados do flip-flop T e a correspondente Tabela de Excitação.
O passo imediato será obter a Tabela de Excitações do circuito: para tal, desdobra-se a Tabela de Transições em
duas Tabelas, uma por cada um dos estados seguintes de {Q1, Q0} - e depois substituem-se os valores nas colunas
‘Q1(t+1)’ e ‘Q0(t+1)’ pelos valores a impor nas entradas {T1, T0} para lograr as transições de estado em causa.
Considere-se, por exemplo, a linha em que Q1=0 e Q0=0. O estado seguinte de ‘Q1’ é ‘0’ e o estado seguinte de
‘Q0’ é ‘1’– e isso remete para a pergunta: para que aconteçam essas “transições” em {Q1, Q0}, como se devem
excitar as entradas dos flip-flops? A resposta da Tabela de Excitação do flip-flop T é: a transição ‘0’→‘0’ logra-se
aplicando ‘0’ na entrada ‘T1’ e a transição ‘0’→‘1’ logra-se aplicando ‘1’ na entrada ‘T0’. São precisamente esses
valores, ‘0’ e ‘1’, que se escrevem nas Tabelas de ‘T1’ e ‘T0’.
A etapa final é deduzir as expressões simplificadas das entradas {T1 e T0} dos flip-flops; em geral, usar-se-á o
método de Karnaugh, mas no caso presente nem isso é preciso, basta um olhar atento…
Conhecidas tais expressões, é hora de desenhar o logigrama do circuito com a geografia habitual:
– entradas à esquerda – o que neste caso, em que não há entradas externas, se reduz a dispor à esquerda os dois
flip-flops, ficando ‘Q1’ (a de maior peso) por baixo de ‘Q0’;
– saídas, que neste caso se reduzem a ‘Z’, à direita;
– à direita dos flip-flops: malha combinatória que produz ‘Z’ e os valores que excitam as entradas {T1 T0}
Ainda que não indispensável, convirá etiquetar as linhas com os nomes das funções (por exemplo, ‘T1’) que
“transportam”;
– setas apropriadas nas linhas em que o fluxo se processa da direita para a esquerda ou de baixo para cima;
– entradas de clock dos flip-flops ligadas à mesma fonte de clocks… No logigrama ao lado, pressupõe-se que
eles são edge-triggered comutando no flanco descendente do relógio – mas também seria válido ter-se escolhido
flip-flops edge-triggered comutando no flanco ascendente do relógio.
Prof V Vargas, IST Síntese Clássica (Modelo de Moore) 26/11/13, Pg 6/20
Síntese clássica (Modelo de Moore)/ Análise de Circuito com Flip-flops T
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 a prova dos nove”: será que o circuito concebido segue mesmo o diagrama de
estados desenhado inicialmente? E este passo de maneira nenhuma se deve omitir!
Essa “conferência” deve ser independente do método usado na síntese do circuito – e na prática suporta-se na
Equação característica dos flip-flops usados, como já se testemunhou algures e agora se volta a aplicar:
O circuito envolve dois flip-flops T – cujos estados se designam de {Q1, Q0}. O primeiro passo na análise do
circuito é, a partir do respectivo logigrama, escrever as expressões algébricas que traduzem o comportamento da
saída do circuito e das entradas dos flip-flops, vidé ao lado.
Tendo em mira o desenho do Diagrama de Estados, o segundo passo é substituir as expressões das entradas dos
flip-flops na equação característica do flip-flop T. O resultado são expressões que exprimem o estado seguinte de
cada flip-flop – em função dos estados dos flip-flops no instante em que ocorre o flanco descendente do relógio.
O terceiro passo é converter tais expressões nas assim denominadas Tabelas de Estado/Saída – que indicam,
para cada combinação das entradas internas {Q1, Q0} num instante ‘t’, a saída ‘Z’ do circuito nesse instante, e, a
ocorrer em ‘t’ o flanco descendente do relógio, os estados dos flip-flops no instante ‘t+1’ seguinte.
No total, existirão três Tabelas, para {Z, Q1 e Q0}:
– à esquerda, dispõem-se duas colunas, representando outros tantos flip-flops, {Q1, Q0};
– estando envolvidos dois flip-flops, e pois que cada um pode assumir dois valores {Q=0 e Q=1}, o circuito
poderá assumir quatro estados distintos, que convirá nomear por códigos binários: {‘00’, ‘01’, ‘10’ e ‘11’}.
O preenchimento das Tabelas não deverá provocar engulhos. As expressões de {Z, Q1 e Q0} são claras:
– ‘Z’ será ‘0’ apenas para a combinação Q1=0 e Q0=1;
– ‘Q1(t+1)‘ é o XOR de Q1(t) e Q0(t), pelo que será ‘1’ apenas quando ‘Q1(t)‘ e ‘Q0(t)‘ forem diferentes;
– e ‘Q0(t+1)‘ é o complemento de ‘Q0(t)‘, pelo que a coluna ‘Q0(t+1)‘ será o complemento da coluna ‘Q0(t)‘.
Resta desenhar o Diagrama de Estados: a cada estado, associa-se um círculo, etiquetado com um código
binário; depois, traçam-se setas rotuladas, descrevendo graficamente a Tabela obtida.
Veja-se como exemplo a primeira linha, relativa ao estado ‘00’: a saída é Z=1, e o estado seguinte será ‘01’;
isso volve-se numa seta dirigida do círculo ‘00’ para o círculo ‘01’. Para denotar que, no estado ‘00’, a saída é
Z=1, o correspondente círculo é rotulado por /1.
É hora de o Projectista comparar o diagrama de estados obtido a partir do logigrama do circuito com o
diagrama de estados que ele inicialmente concebeu – e ficar tranquilo, que o circuito a que chegou está ok: afora os
nomes, o número de estados, a interligação entre eles e as saídas são idênticos…
Uma questão que não é de somenos importância é a seguinte: quando se faz o power-on ao circuito, qual o
estado em que ele ingressa? A resposta é: não se sabe, em particular não se pode pressupor que os estados estão a
‘0’ inicialmente! No Projecto entre mãos, isso não terá provavelmente nenhuma importância: qualquer que seja o
estado inicial, entre {‘00’, ‘01’, ‘10’ e ‘11’}, e afora um eventual período transitório, o circuito acaba por gerar
repetidamente, ao ritmo do relógio, a sequência de bits ‘1011’… Mas haverá Projectos em que isso terá mesmo
importância – pelo que então há que recorrer a entradas assíncronas (Preset e Clear) para obrigar a que o estado
inicial seja um específico.
Prof V Vargas, IST Síntese Clássica (Modelo de Moore) 26/11/13, Pg 8/20
Síntese clássica (Modelo de Moore)/ 16bº Projecto
O 16aº Projecto é um sistema autónomo, isto é: não envolve entradas externas. É hora de avançar para um
Projecto já com uma entrada externa…
Admita-se que a abertura da porta de uma viatura pode ser detonada por um dispositivo de controlo remoto. Ela
dispõe dum receptor de RF cuja saída, seja ‘X’, é uma sucessão indefinida de ‘0’s e ‘1’s… Pretende-se um circuito
sequencial síncrono que reporte a detecção da sequência ‘1011’ (Não se consideram sequências sobrepostas).
O ponto crítico para obter um Circuito sequencial síncrono é o desenho do seu Diagrama de Estados:
1. Considere-se o momento em que se faz o power-on… O circuito nada “sabe” então do que se passou antes –
pelo que será pacífico iniciá-lo a um estado em que irá assinalar ‘0’ na sua saída. Graficamente, esse estado
representa-se por um círculo com um nome significativo, como seja ‘S0’, em cujo seio se indica, precedida pelo
símbolo ‘/’, a saída a assinalar, ‘0’, a ser mantida até ao próximo "clock; o caracter inicial do estado é denotado
por uma seta dirigida da esquerda para o círculo ‘S0’.
2. Recorde-se, entretanto, que tal circuito está recebendo, do receptor de RF, uma sucessão de ‘0’ e ‘1’s…
– admita-se que, logo após o power-on, ele recebe um ‘1’; o circuito pode “julgar” que ele é já o primeiro bit do
padrão ‘1011’ – pelo que irá transitar para um novo estado, em que continuará a gerar ‘0’ (pois só passará a gerar
‘1’ quando houver detectado todo o padrão ‘1011’). Essa situação representa-se por um círculo nomeado ‘S1’ (em
cujo seio se indica a saída ‘0’), e uma seta do círculo ‘S0’ para o círculo ‘S1’;
– mas suponha-se, em alternativa, que o primeiro bit a ser recebido é um ‘0’; então, o circuito irá permanecer
no mesmo estado, ‘S0’ – o que se representa por uma seta do círculo ‘S0’ para ele mesmo.
Em consequência, de ‘S0’ “saem” duas setas. Para distinguir o que motiva aquela dirigida para ‘S1’, ela é
rotulada por X=1, ou, conforme à lei do menor esforço, ‘1’; intui-se que a seta dirigida para ‘S0’ é rotulada por ‘0’.
Repare-se que o estado/círculo ‘S0’ fica assim completamente especificado: estando o circuito nesse estado,
sabe-se qual é então a sua saída, e como evolui o circuito se receber, do receptor de RF, um ‘0’ ou um ‘1’…
3. “Resolvido” o estado ‘S0’, considere-se, então, que o circuito se encontra no estado ‘S1’. Sabe-se qual a sua
saída, resta decidir como evolui ele quando receber, do receptor de RF, um ‘0’ ou um ‘1’; não custa descortiná-lo:
– se ele receber um ‘0’, o circuito pode “julgar” que esse é o segundo bit do padrão ‘1011’ – pelo que irá
transitar para um novo estado, em que irá continuar a assinalar ‘0’. Isso representa-se por um círculo nomeado ‘S10’
(onde se indica a saída ‘0’), e uma seta de ‘S1’ para ‘S10’;
– se, porém, receber um ‘1’, irá concluir que estava errada a suposição de que o ‘1’ precedente era o primeiro
bit do padrão ‘1011’ – mas talvez o ‘1’ que acaba de receber o seja; isso remete para uma seta de ‘S1’ para ‘S1’.
Para clarificar o que motiva as setas “saindo” de ‘S1’, elas são devidamente rotuladas – pelo valor de ‘X’ que
conduz à transição de estados que representam…
4. Considere-se, agora, que o circuito se encontra no estado ‘S10’. Como evolui ele quando receber outro bit?
– se receber um ‘1’, o circuito pode “julgar” que esse é o terceiro bit do padrão ‘1011’ – pelo que irá transitar
para um novo estado, em que irá continuar a gerar ‘0’. Isso representa-se por um círculo nomeado ‘S101’ (onde se
indica a saída ‘0’), e uma seta rotulada por ‘1’ de ‘S10’ para ‘S101’;
– se, porém, receber um ‘0’, concluirá que afinal os bits ‘10’ precedentes não eram o começo do padrão ‘1011’:
tem que regressar ao início – o que remete para uma seta rotulada por ‘0’ de ‘S10’ para ‘S0’.
5. Considere-se, agora, que o circuito se encontra no estado ‘S101’. Como evolui ele quando receber outro bit?
– se receber um ‘1’, o circuito conclui que esse é o quarto bit do padrão ‘1011’ – pelo que irá transitar para um
novo estado, seja ‘S1011’, em que irá assinalar ‘1’. Isso representa-se por um círculo nomeado ‘S1011’ (onde se indica
a saída ‘1’), e uma seta rotulada por ‘1’ de ‘S101’ para ‘S1011’;
– se, porém, receber um ‘0’, concluirá que afinal os bits ‘101’ precedentes não eram o começo do padrão ‘1011’
– mas talvez os últimos ‘10’ o sejam, o que remete para uma seta rotulada por ‘0’ de ‘S101’ para ‘S10’.
6. Considere-se, enfim, que o circuito se encontra no estado ‘S1011’. Como evolui quando receber um outro bit?
– se receber um ‘1’, o circuito pode “julgar” que ele é já o primeiro bit de um novo padrão ‘1011’ – pelo que irá
transitar para ‘S1’. Isso representa-se por uma seta rotulada por ‘1’ de ‘S1011’ para ‘S1’;
– se, porém, receber um ‘0’, concluirá que ainda não começou a receber o padrão ‘1011’: tem que regressar ao
início – o que remete para uma seta rotulada por ‘0’ de ‘S1011’ para ‘S0’…
Com isso, fica completo o Diagrama de Estados – a converter numa Tabela de Estados/Saída, vidé ao lado – em
que há que organizar a Tabela de ‘Q(t+1)’ em duas colunas, correspondendo aos casos em que X=0 e X=1.
Prof V Vargas, IST Síntese Clássica (Modelo de Moore) 26/11/13, Pg 10/20
Síntese clássica (Modelo de Moore)/ Síntese Clássica com Flip-Flops D
De posse da Tabela de Estados/Saída, a sua concretização segundo o método de desenho dito clássico
acompanha pari passu as etapas seguidas aquando do 16aº Projecto; em particular, e porquanto a Tabela apresenta
cinco estados, deduz-se que serão necessários, e suficientes, três flip-flops, designem-se eles de {Q2, Q1, Q0}.
Isso decidido, o passo seguinte é proceder à codificação dos estados – isto é, estabelecer uma correspondência
biunívoca entre cada estado e uma combinação particular de três bits {Q2 Q1 Q0}. Aquela que se elegeu ao lado
usa o CBN (Código Binário Natural)…
A etapa seguinte é transformar a Tabela de Estados/Saída na assim designada Tabela de Transições e Saídas –
ou preferivelmente, já antevendo o que seguirá, num Mapa de Karnaugh, vidé ao lado: cada nome designando um
estado é substituído pelo trio de bits {Q2 Q1 Q0} que o codifica…
Repare-se que a Tabela de Estados se limita a cinco estados, todavia há oito combinações possíveis de três bits:
sobram três combinações, que de certo modo podem ser consideradas como codificando estados inexistentes – pelo
que as respectivas linhas na Tabela de Transições e Saídas são preenchidas com indiferenças, ‘X’…
Obtida essa Tabela de Transições e Saídas, a aplicação do método de Karnaugh habilita a escrever a expressão
simplificada da saída ‘Z’…
Resta determinar as expressões simplificadas das entradas dos flip-flops – e isso exige, é claro, precisar o tipo
de flip-flop a usar. Admita-se que, neste 16bº Projecto, se opta por flip-flops D; como auxiliar de memória,
apresentam-se ao lado o diagrama de estados do flip-flop D e a correspondente Tabela de Excitação.
O passo imediato será obter a Tabela de Excitações do circuito: para tal, começa-se por desdobrar a Tabela de
Transições em três Tabelas, uma por cada um dos estados seguintes de {Q2, Q1, Q0}. Considerando o que se fez a
propósito do 16aº Projecto, prevê-se que a seguir se deveria proceder à substituição dos valores nas colunas
‘Q2(t+1)’, ‘Q1(t+1)’ e ‘Q0(t+1)’ pelos valores a impor nas entradas {D2, D1 e D0} para lograr as transições de estado em
causa; acontece que, tendo-se agora optado pelo flip-flop D, isso é desnecessário: se se pretende que ele transite
para um estado genérico ‘Q’, o que há a fazer é impor, na sua entrada ’D’, o valor D=Q! Ou seja: as Tabelas de
{D2, D1 e D0} são exactamente iguais às de ‘Q2(t+1)’, ‘Q1(t+1)’ e ‘Q0(t+1)’, não é preciso duplicá-las…
A etapa final é – usando em geral o método de Karnaugh – deduzir as expressões simplificadas das entradas
{D2, D1 e D0} dos flip-flops… e proceder ao desenho do correspondente logigrama com a geografia habitual, vidé
ao lado, em que se pressupõe que os flip-flops são edge-triggered comutando no flanco descendente do relógio.
Uma peculiaridade deste circuito é que a saída, ‘Z’, depende apenas dos estados dos flip-flops: não depende
directamente da entrada, ‘X’! A isso não será alheio, certamente, a decisão de, ao desenhar o Diagrama de Estados
do circuito, seguir o assim denominado modelo de Moore: a saída do circuito é inscrita dentro dos círculos que
representam os estados.
Prof V Vargas, IST Síntese Clássica (Modelo de Moore) 26/11/13, Pg 12/20
Síntese clássica (Modelo de Moore)/ Análise de Circuito com Flip-flops D
Será que o circuito concebido segue mesmo o diagrama de estados desenhado inicialmente? Eis um passo que
de maneira nenhuma se deve omitir!
Essa “conferência” deve ser independente do método usado na síntese do circuito – e na prática suporta-se na
Equação característica dos flip-flops usados, como já se testemunhou algures e agora se volta a aplicar:
O circuito envolve três flip-flops D – cujos estados se designam de {Q2, Q1, Q0}. O primeiro passo na análise
do circuito é, a partir do respectivo logigrama, escrever as expressões algébricas que traduzem o comportamento
da saída do circuito e das entradas dos flip-flops, vidé ao lado.
O segundo passo é substituir as expressões das entradas dos flip-flops na equação característica do flip-flop D.
O resultado são expressões que exprimem o estado seguinte de cada flip-flop – em função dos estados dos flip-
flops e da entrada externa ‘X’ no instante em que ocorre o flanco descendente do relógio.
O terceiro passo é converter tais expressões nas assim denominadas Tabelas de Transições/Saída – que
indicam, para cada combinação das entradas internas {Q2, Q1, Q0} num instante ‘t’, a saída ‘Z’ do circuito nesse
instante, e, a ocorrer em ‘t’ o flanco descendente do relógio, os estados dos flip-flops no instante ‘t+1’ seguinte.
No total, existirão quatros Tabelas, para {Z, Q2, Q1 e Q0}:
– à esquerda, dispõem-se três colunas, representando outros tantos flip-flops, {Q2, Q1, Q0};
– e no topo dispõe-se uma linha representando a entrada externa ‘X’;
– estando envolvidos três flip-flops, e pois que cada um pode assumir dois valores {Q=0 e Q=1}, o circuito
poderá assumir oito estados distintos, que convirá identificar por códigos binários: {‘000’, ‘001’, ‘010’, etc.}.
O preenchimento das Tabelas não deverá provocar engulhos. As expressões de {Z, Q2, Q1 e Q0} são claras:
– Z=Q2, pelo que a coluna ‘Z’ será igual à coluna ‘Q2’;
– Q0(t+1) será ‘0’ quando X=0 ou Q1(t)=Q0(t)=1;
– Q1(t+1) será ‘1’ apenas quando Q0(t)=1 e X=0, ou Q1(t)=1 e Q0(t)=0 e X=1;
– Q2(t+1) será ‘1’ apenas quando Q1(t)=Q0(t)=X=1.
O passo seguinte será aglutinar as Tabelas dos estados seguintes dos flip-flops, {Q2, Q1, Q0}, numa única, dita
do estado seguinte do circuito, ‘Q2Q1Q0(t+1)’; veja-se o caso da primeira linha, em que, conforme X=0 ou X=1,
assim advém {Q2=0, Q1=0, Q0=0} ou {Q2=0, Q1=0, Q0=1}; aglutinar significa preencher a primeira linha da nova
Tabela com ‘000’ e ‘001’, respectivamente nas colunas ‘X=0’ e ‘X=1’. Para as outras linhas, o método é o mesmo.
A Tabela obtida pode reescrever-se (embora isso não se mostre ao lado) numa outra, dita de Tabela de Estados,
em que cada trio de bits {Q2 Q1 Q0} é entendido como o código binário de um número, e ele é substituído por um
nome como seja ‘S’ indexado pela representação desse número na base 10; essa Tabela descreve “para que Estado”
evoluem os Estados {S0, S1, S2, etc.} do circuito, à medida que se vai alterando a entrada ‘X’.
Resta desenhar o Diagrama de Estados: a cada estado, associa-se um círculo, etiquetado com um nome (ou
código binário); depois, traçam-se setas rotuladas, descrevendo graficamente a Tabela obtida.
Veja-se como exemplo a primeira linha, relativa ao estado ‘000’: a saída é Z=1, e o estado seguinte será ‘000’
ou ‘001’ conforme o valor de ‘X’; isso volve-se em duas setas: uma de ‘S0’ para ‘S0’ rotulada com X=0, ou,
conforme à lei do menor esforço, ‘0’; e uma outra de ‘S0’ para ‘S1’ rotulada com ‘1’. Para denotar que, no estado
‘000’, a saída é Z=0, o correspondente círculo é rotulado por /0.
É hora de se comparar o diagrama de estados obtido a partir do logigrama do circuito com o diagrama de
estados inicialmente concebido – e constatar que aquele está ok: se se confinar a comparação somente a cinco
estados {S0, S1, S2, S3, S4}, e afora os nomes, são idênticas as saídas e a interligação entre eles…
Há, entretanto, que inquirir: quando se faz o power-on ao circuito, qual o estado em que ele ingressa? A
resposta é: não se sabe! No Projecto entre mãos, isso tem importância: se, ao fazer-se o power-on, o circuito
ingressar no estado S5, S6 ou mesmo S7, o circuito assinalará, de imediato, erroneamente (porquanto ainda se não
recebeu a sequência ‘1011’), o valor ‘1’ na sua saída – pelo que convirá recorrer a entradas assíncronas (Clear)
para obrigar a que o estado inicial do circuito seja S0.
Prof V Vargas, IST Síntese Clássica (Modelo de Moore) 26/11/13, Pg 14/20
Síntese clássica (Modelo de Moore)/ 16cº Projecto
Esta sessão começou por um Projecto sem entradas externas, e progrediu para outro com uma entrada externa,
mas ambos com uma só saída; o aumento da complexidade propõe agora duas entradas externas e duas saídas…
Adivinha-se que, com estas poucas “novidades”, a síntese e análise do logigrama obtido seguirão pari passu a
etapas do 16bº Projecto – pelo que não será de estranhar a referência ao lado “Se sobrar tempo na aula…”.
Admita-se que a abertura da porta de uma garagem pode ser detonada por um dispositivo de controlo remoto: o
condutor clica-o, e ele emite um impulso de curta duração. A porta começará a subir, e assim continuará até um
sensor sinalizar “resistência”: a porta encontra-se então completamente aberta. Para a fechar, o condutor clica
novamente no comando… A porta começará a descer, e assim continuará até o sensor sinalizar “resistência”: a
porta encontra-se então completamente fechada. Em qualquer momento, poderá o condutor interromper o
movimento da porta – clicando no comando; quando, depois, voltar a clicar no comando, a porta regressará à
posição de fechada, independentemente do que estava fazendo no momento em que foi interrompida.
O ponto crítico para obter um Circuito sequencial síncrono é o desenho do seu Diagrama de Estados:
Antes de mais, há que codificar as entradas {C, S} e saídas {M, A} do circuito. Vidé o lado uma possibilidade:
– quando activados, tanto o comando ‘C’ como o sensor ‘S’ emitem impulsos curtos – que se poderão
compreender como um ‘1’ com a duração do período dos clocks, seguido de ‘0’s…
– a porta movendo-se é codificada com M=1, e abrindo-se é codificada com A=1.
1. Considere-se o momento anterior a ter o condutor clicado no seu dispositivo de controlo… A porta estará
fechada: o circuito encontrar-se-á num estado inicial em que o motor deverá estar parado. Esse estado representa-
se por um círculo com um nome significativo, como seja ‘F’ - em cujo seio se indica, precedidas pelo símbolo ‘/’,
as saídas a assinalar, M=0 (que torna ‘A’ irrelevante), a ser mantidas até ao próximo "clock; o caracter inicial do
estado é denotado por uma seta dirigida da esquerda para o círculo ‘F’.
2. Admita-se, então, que o condutor clica no seu comando… Isto é, ocorre C=1 (e S=0, no sentido de que,
estando a porta então parada, o sensor não poderá então sinalizar “resistência”); o motor irá fazer subir a porta.
Essa situação representa-se por um círculo nomeado ‘A:2’ (significando algo como porta meio-aberta), em
cujo seio se indicam as saídas M=1 e A=1 (ou, conforme à lei do menor esforço, ‘11’), e uma seta do círculo ‘F’
para o círculo ‘A:2’, rotulada com C=1 e S=0 (ou, conforme à lei do menor esforço, ‘10’);
3. Algo mais tarde, o sensor sinalizará “resistência”… Isto é, irá ocorrer C=0 e S=1; o motor irá parar a porta.
Essa situação representa-se por um círculo nomeado ‘A’ (significando porta aberta), em cujo seio se indicam as
saídas ‘0X’ (isto é: M=0 e ‘A’ irrelevante), e uma seta do círculo ‘A:2’ para o círculo ‘A’, rotulada com ‘01’ (isto
é: C=0 e S=1);
4. Mais tarde, o condutor irá clicar no comando… Isto é, irá ocorrer C=1 e S=0; o motor irá fechar a porta.
Essa situação representa-se por um círculo nomeado ‘F:2’ (significando porta meio-fechada), em cujo seio se
indicam as saídas ‘10’, e uma seta do círculo ‘A’ para o círculo ‘F:2’, rotulada com ‘10’;
5. Algo mais tarde, o sensor sinalizará “resistência”… Isto é, ocorrerá C=0 e S=1; o circuito irá retornar ao
estado inicial.
Essa situação representa-se por uma seta do círculo ‘F:2’ para o círculo ‘F’, rotulada com ‘01’;
6. Enquanto a porta está abrindo ou fechando, o condutor poderá clicar no comando: poderá ocorrer C=1 e S=0
nos estados ‘A:2’ ou ‘F:2’; o motor deverá parar.
Essa situação pode representar-se por um círculo nomeado ‘P’ (significando porta parada), em cujo seio se
indicam as saídas ‘0X’, e setas dos círculos ‘A:2’ ou ‘F:2’ para o círculo ‘P’, rotuladas com ‘10’ (A menção “pode
representar-se” significa que é possível fazer de outra maneira mais simples, que adiante se aborda)
7. Quando o condutor voltar a clicar no comando, isto é, ocorrer C=1 e S=0, o motor irá fechar a porta.
Essa situação representa-se por uma seta do círculo ‘P’ para o círculo ‘F:2’, rotulada com ‘10’
As transições acima enumeradas encontram-se explicitadas no Diagrama de Estados ao lado – mas muitas mais
combinações das entradas se poderiam congeminar – que todavia lá não estão: o Diagrama está incompletamente
especificado! Pois que as entradas são duas, a sua especificação cabal poderia volver-se em quatro setas “saindo”
de cada estado (isto é: originando um total de 20 setas) – o que tornaria o Diagrama algo como uma ilegível sopa
de esparguete… O mais recomendado será suspender o desenho do Diagrama, e passar directamente à construção
da Tabela de Estados e Saídas: é o que se fará de imediato…
Prof V Vargas, IST Síntese Clássica (Modelo de Moore) 26/11/13, Pg 16/20
Síntese clássica (Modelo de Moore)/ Síntese Clássica com Flip-Flops D
Considere-se então a porção do Diagrama de Estados já traçada; a partir dela, poder-se-á dar início ao
preenchimento da Tabela de Estados e Saídas, vidé ao lado – onde estão definidas as células correspondentes às
setas naquele traçadas: falta preencher treze células. O resto do preenchimento não deverá provocar engulhos…
1. Quando C=0 e S=0 (isto é, nem o comando nem o sensor sinalizam actividade), o que corresponde à coluna
da Tabela mais à esquerda, intui-se que o estado do circuito não se deve alterar: nomeadamente, se a porta estava
abrindo), continua abrindo e se estava fechada, assim continua… Essa coluna será então uma cópia da coluna ‘Qt’;
2. A ocorrência de S=1 nos estados ‘F’, ‘A’ e ‘P’ (isto é: com a porta imóvel, o sensor sinaliza “resistência”),
deve ser considerada impossível – pelo que devem preencher-se as correspondentes (6) células com ‘X’;
3. Resta preencher duas células – correspondentes aos casos em que C=1 e S=1 quando a porta se encontra
movendo. Ora, S=1 significa “resistência” – pelo que a porta se deve imobilizar; e ̧quando a porta se encontra
movendo, C=1 significa o mesmo: o condutor pretende interromper o movimento da porta… Ou seja: naquelas
duas células, o circuito deve ingressar num estado em que a porta esteja imóvel – mas quanto a isso há três
possibilidades, a saber: ‘F’, ‘A’ e ‘P’. Qual delas deve ser a eleita?
Para o caso em que a porta se está abrindo (em ‘A:2’), será pacífico que a interrupção do seu movimento
conduza o circuito ao estado ‘P’ (mas a escolha do estado ‘A’ seria igualmente válida).
Já para o caso em que a porta se está fechando (em ‘F:2’), a escolha não será tão pacífica… pelo se deverá
considerar o enunciado incompletamente especificado – e acrescentar-lhe: deve ser ignorado o clicar no comando
(para interromper o movimento da porta) se ocorrer exactamente quando ela está a acabar de se fechar.
(Abra-se um parêntesis: esta é uma prática comum; eventualmente, em provas de avaliação, o próprio estudante
será confrontado com ela: poderão elas conter algum enunciado incompletamente especificado, no sentido de ser
omisso relativamente a alguns detalhes - cabendo-lhe então completá-lo, com algumas assunções razoáveis…)
Construída a Tabela de Estados e de Saídas, e optando por recorrer a flip-flops D, os subsequentes passos no
sentido de lograr o correspondente circuito seguirão pari passu o que se fez a propósito do 16bº Projecto…
Porém, e antes de o fazer, convirá olhar cuidadosamente para a Tabela a que se chegou. E desde logo sobressai
a quase igualdade entre as linhas respeitantes aos estados ‘A’ e ‘P’: ambos geram as saídas {M=0 e A=X}, e as
células com os estados seguintes contêm exactamente o mesmo para todas as combinações de {C, S} excepto para
{C=0 e S=0} – e mesmo neste caso o comportamento do circuito em ambos os estados vem a ser o mesmo: o
estado não se altera. Pelo que é lícita deduzir que os estados ‘A’ e ‘P’ são equivalentes: em termos práticos, podem
ser colapsados em um único estado, como seja o próprio ‘A’. Aliás, isso mesmo já poderia ter sido decidido
aquando do traçado do Diagrama de Estados: se o condutor clica no comando quando a porta se está abrindo ou
fechando, o motor deverá parar – mas, em vez de se congeminar um novo estado, ‘P’, poder-se-ia ao invés ter
aproveitado um estado já definido, ‘A’ – que ademais tem a propriedade de, quando se clicar no comando, dele se
transitar para o estado em que a porta se estará fechando, como requerido no enunciado…
Adiante, observar-se-ão outros Projectos em que o desenho do Diagrama de Estados conduz a mais estados do
que os estritamente necessários – no sentido de que envolve estados equivalentes, que por isso mesmo deverão ser
colapsados…
Formalmente, poder-se-ão colapsar dois estados (por isso dito de equivalentes) em um único se, para qualquer
sequência de entradas, as saídas forem rigorosamente as mesmas. Esse colapso pode ser vantajoso, e o Projecto
entre mãos manifesta-o: o Diagrama de Estados envolve 5 estados, o que conduz a um mínimo de 3 flip-flops –
mas a Tabela final a que se chega (após a substituição do nome ‘P’ por ‘A’, e a remoção da linha ‘P’) já só exibe 4
estados, o que se basta em 2 flip-flops! Menos um flip-flop, portanto…
As etapas subsequentes vêm a ser, vidé ao lado:
– a codificação dos 4 estados da Tabela de Estados; ao lado, optou-se pelo CBN (Código Binário Natural);
– o preenchimento da Tabela de Transições do circuito, pela substituição dos nomes dos estados pelos seus
códigos; prevendo o subsequente uso do método de Karnaugh, convirá organizá-la de modo a que a ordem das
combinações das entradas (internas e externas) siga o código binário reflectido;
– a obtenção da Tabela de Excitações do circuito: para tal, começa-se por desdobrar a Tabela de Transições em
duas Tabelas, uma por cada um dos estados seguintes de {Q1, Q0}…
– a dedução das expressões das entradas {D1 e D0} dos flip-flops…
Prof V Vargas, IST Síntese Clássica (Modelo de Moore) 26/11/13, Pg 18/20
Síntese clássica (Modelo de Moore)/ Análise de Circuito com Flip-flops D
Será que o circuito concebido segue mesmo o diagrama de estados desenhado inicialmente?
A resposta deve ser por um método independente daquele usado na síntese do circuito – e na prática suporta-se
na Equação característica dos flip-flops usados, como já se testemunhou algures e agora se volta a aplicar:
O circuito envolve dois flip-flops D – cujos estados se designam de {Q1, Q0}. O primeiro passo na análise do
circuito é, a partir do respectivo logigrama, escrever as expressões algébricas que traduzem o comportamento das
saídas do circuito e das entradas dos flip-flops, vidé ao lado.
O segundo passo é substituir as expressões das entradas dos flip-flops na equação característica do flip-flop D.
O resultado são expressões que exprimem o estado seguinte de cada flip-flop – em função dos estados dos flip-
flops e das entradas externas {C, S} no instante em que ocorre o flanco descendente do relógio.
O terceiro passo é converter tais expressões nas assim designadas Tabelas de Transições/Saída – que indicam,
para cada combinação das entradas internas {Q1, Q0} num instante ‘t’, as saídas {M, A} do circuito nesse
instante, e, a ocorrer em ‘t’ o flanco descendente do relógio, os estados dos flip-flops no instante ‘t+1’ seguinte.
No total, existirão três Tabelas, para {Z, Q1 e Q0}:
– à esquerda, dispõem–se duas colunas, representando outros tantos flip-flops, {Q1, Q0};
– e no topo dispõem-se duas linhas representando as entradas externas {C, S};
– estando envolvidos dois flip-flops, e pois que cada um pode assumir dois valores {Q=0 e Q=1}, o circuito
poderá assumir quatro estados distintos, que convirá identificar por códigos binários: {‘00’, ‘01’, ‘10’, etc.}.
O preenchimento das Tabelas não deverá provocar engulhos. As expressões de {Z, Q1 e Q0} são claras:
– M=Q0, pelo que a coluna ‘M’ será igual à coluna ‘Q0’;
– A é o complemento de ‘Q1’, pelo que a coluna ‘A’ será o complemento da coluna ‘Q1’;
– quanto a ‘Q1(t+1)’ e ‘Q0(t+1)’, deixa-se ao leitor conferir o seu preenchimento…
O passo seguinte será aglutinar as Tabelas dos estados seguintes dos flip-flops, {Q1(t+1), Q0(t+1)}, numa única,
dita do estado seguinte do circuito, ‘Q1Q0(t+1)’.
A Tabela obtida pode reescrever-se (embora isso não se mostre ao lado) numa outra, dita de Tabela de Estados,
em que cada par de bits {Q1 Q0} é entendido como o código binário de um número, e ele é substituído por um
nome como seja ‘S’ indexado pela representação desse número na base 10; essa Tabela descreve “para que Estado”
evoluem os Estados {S0, S1, S2, S3} do circuito, à medida que se vão alterando as entradas {C, S}.
Resta desenhar o Diagrama de Estados: a cada estado, associa-se um círculo, etiquetado com um nome (ou
código binário); depois, traçam-se setas rotuladas, descrevendo graficamente a Tabela obtida.
Veja-se como exemplo a primeira linha, relativa ao estado ‘00’: as saídas são {M=0, A=1}, e o estado seguinte
será ‘00’, ‘10’, ‘01’ ou ‘11’ conforme os valores de {C, S}; isso volve-se em quatro setas, respectivamente de ‘S0’
para ‘S0’ (rotulada com ‘00’), de ‘S0’ para ‘S2’ (rotulada com ‘01’), de ‘S0’ para ‘S1’ (rotulada com ‘10’) e de ‘S0’
para ‘S3’ (rotulada com ‘11’). Para denotar que, no estado ‘00’, as saídas são {M=0, A=1}, o correspondente
círculo é rotulado por /01.
Atente-se que no Diagrama há setas com vários rótulos; em particular, a seta de ‘S1’ para ‘S2’ comporta três
rótulos, a saber ‘01’, ‘10’ e ‘11’: isso é preferível a traçar três setas de ‘S1’ para ‘S2’, cada uma com um desses três
rótulos…
É hora de se comparar o diagrama de estados obtido a partir do logigrama do circuito com a Tabela de estados
inicialmente concebida – e constatar que aquele está ok: afora os nomes, são “idênticas” as saídas e a interligação
entre os estados… as aspas em “idênticas” querendo significar que as indiferenças na Tabela se volveram agora em
valores concretos (o que é irrelevante, pois as indiferenças significam situações a não ter em conta).
Há, entretanto, que inquirir: quando se faz o power-on ao circuito, qual o estado em que ele ingressa? A
resposta é: não se sabe! No Projecto entre mãos, isso tem importância: a porta deve inicialmente considerar-se
fechada, isto é, o estado inicial deve ser ‘S0’ – pelo que convirá recorrer a entradas assíncronas (Clear) para
obrigar a que o estado inicial do circuito seja mesmo S0.
Prof V Vargas, IST Síntese Clássica (Modelo de Moore) 26/11/13, Pg 20/20
Síntese clássica (Modelo de Moore)/ Forma Canónica de Moore
Após três exemplos de síntese de circuitos sequenciais síncronos, é hora de abstrair das particularidades…
Um relance aos logigramas obtidos descortina uma arquitectura comum, esquematizada ao lado:
à esquerda, encontram-se as entradas, a saber:
– se existentes, as entradas primárias ou externas, como seja ‘X’ ou {C, S} (ou outras);
– as entradas secundárias ou internas, que são as saídas dos flip-flops usados: T ou D (ou mesmo SR e JK);
– as entradas assíncronas (Preset e Clear), destinadas a inicializar o circuito a um estado específico;
– uma entrada Clock, por onde se recebem os impulsos de relógio – e que alimenta directamente todos os
flip-flops: trata-se de um circuito sequencial síncrono.
Conforme à convenção seguida neste itinerário, as entradas externas localizam-se por cima das entradas
internas: estas são consideradas as entradas de maior peso.
à direita, encontra-se a lógica das saídas, isto é: uma malha combinatória, alimentada pelas entradas
internas, que gera as saídas do circuito.
A dedução das suas expressões algébricas passa por preencher as Tabelas de Verdade (ou, preferivelmente,
Mapas de Karnaugh) das saídas em função das entradas internas – que são as saídas dos flip-flops.
A tal lógica das saídas está associado um certo tempo de propagação, seja ‘TZ’, que é o intervalo de tempo que
medeia entre a mudança nos estados dos flip-flops e as mudanças nas saídas.
entre ambos, encontra-se a lógica do estado seguinte, isto é: uma malha combinatória, alimentada pelas
entradas (externas e internas), que gera os novos valores a aplicar às entradas dos flip-flops, para que eles evoluam
como deve ser.
A dedução das respectivas expressões algébricas passa por preencher as Tabelas de Verdade (ou Mapas de
Karnaugh) das entradas dos flip-flops em função das entradas (externas e internas).
A tal lógica do estado seguinte está associado um certo tempo de propagação, seja ‘TNovasEntradas’, que é o
intervalo de tempo que decorre entre a mudança nos estados dos flip-flops (ou nas entradas externas) e a mudança
nas entradas dos flip-flops.
Os flip-flops são temporalmente caracterizados por um certo tempo de preparação, tsu, e um certo tempo de
propagação, tpHL e tpLH.
Notável nesta arquitectura é que, em cada momento, as saídas dependem directamente só dos estados dos flip-
flops, que não das entradas externas nesse momento. Ela reflecte o facto de o seu desenho ter seguido o que se
denomina de Modelo de Moore: em termos do Diagrama de estados, ele é caracterizado pelo fato de as saídas
ficarem inscritas dentro dos círculos que representam os estados – por conseguinte independentemente das
entradas externas do circuito, vidé ao lado.
Isso tem uma consequência óbvia: como as saídas dos flip-flops podem mudar somente no próximo flanco de
comutação do relógio, também as saídas dos circuito somente poderão mudar então: elas permanecem inalteradas
durante todo um período de relógio.
Como testemunho disso, veja-se o diagrama temporal da evolução do 16cº Projecto:
– inicialmente, a porta encontra-se fechada: o circuito encontra-se no estado ‘F’, gerando a saída M=0;
– quando o condutor clica no comando, este sinaliza-o forçando C=1 – sem qualquer consequência imediata;
– a consequência só se manifesta no próximo clock: pois que se verifica C=1, o estado do circuito, e após um
certo tempo de propagação {tpHL ou tpLH}, passa a ser ‘A:2’ – gerando, após um tempo de propagação tZ, as saídas
{M=1, A=1};
– quando o sensor assinala “resistência”, ele sinaliza-o forçando S=1 – sem qualquer consequência imediata;
– a consequência manifesta-se no próximo clock: pois que se verifica S=1, o estado do circuito, e após um certo
tempo de propagação {tpHL ou tpLH}, passa a ser ‘A’ – gerando, após um tempo de propagação tZ, a saída M=0.
Moral do Modelo de Morre: ainda que uma entrada mude, as saídas só mudarão após se alterar o estado de
algum flip-flop (e isso somente sucederá no próximo clock); e, depois de mudarem, manter-se-ão assim até ao clock
seguinte.
Top Related