monografia - circuitos sequenciais

143
SISTEMAS DIGITAIS 1 5 - Análise e síntese de circuitos sequenciais síncronos de baixa complexidade 5.1 - Introdução A análise de circuitos sequenciais (ou, aliás, de qualquer tipo de circuito) é o processo de obter uma descrição do seu funcionamento a partir do exame do circuito - exame esse feito sobre o diagrama lógico. A síntese de um circuito é a tarefa inversa: partindo de uma descrição do funcionamento (pretendido) para o circuito, construí-lo, ou seja, chegar ao diagrama lógico de um circuito que exiba o funcionamento pretendido. Tanto a análise como a síntese de circuitos sequenciais síncronos podem ser feitas recorrendo a metodologias diversas - devendo todas elas fornecer processos sistemáticos de obtenção dos objectivos pretendidos. Como existem circuitos com graus de complexidade muito diferentes, um método aplicável a circuitos simples pode ser impraticável quando aplicado a um circuito complexo …e um método adequado à análise de circuitos complexos pode parecer deslocado e inútilmente trabalhoso se aplicado a um circuito simples. Por outro lado, as metodologias seguidas na síntese podem ser orientadas para a utilização de módulos construtivos de relativa complexidade, ou, alternativamente, não permitirem senão a utilização de dispositivos elementares - flip-flops e portas lógicas, naturalmente os existentes sob a forma de circuitos integrados da família TTL (ou outra família lógica). Neste capítulo estudaremos metodologias adequadas a circuitos com um número de variáveis de estado não superior a 6, e que produzem - quanto à síntese - apenas soluções baseadas em dispositivos elementares: portas lógicas e flip-flops D e J-K. Estes métodos são também aplicáveis à implementação com dispositivos programáveis - tais como os PALs - que contêm internamente essas mesmas portas lógicas e flip-flops. Estudaremos em 1º lugar o problema da análise de circuitos sequenciais e em seguida o problema mais complexo da síntese de circuitos. Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Upload: alexisgm68

Post on 11-Aug-2015

87 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 1

5 - Análise e síntese de circuitos sequenciais

síncronos de baixa complexidade

5.1 - Introdução

A análise de circuitos sequenciais (ou, aliás, de qualquer tipo de circuito) é o

processo de obter uma descrição do seu funcionamento a partir do exame do circuito -

exame esse feito sobre o diagrama lógico.

A síntese de um circuito é a tarefa inversa: partindo de uma descrição do

funcionamento (pretendido) para o circuito, construí-lo, ou seja, chegar ao diagrama lógico

de um circuito que exiba o funcionamento pretendido.

Tanto a análise como a síntese de circuitos sequenciais síncronos podem ser feitas

recorrendo a metodologias diversas - devendo todas elas fornecer processos sistemáticos

de obtenção dos objectivos pretendidos. Como existem circuitos com graus de

complexidade muito diferentes, um método aplicável a circuitos simples pode ser

impraticável quando aplicado a um circuito complexo …e um método adequado à análise

de circuitos complexos pode parecer deslocado e inútilmente trabalhoso se aplicado a um

circuito simples.

Por outro lado, as metodologias seguidas na síntese podem ser orientadas para a

utilização de módulos construtivos de relativa complexidade, ou, alternativamente, não

permitirem senão a utilização de dispositivos elementares - flip-flops e portas lógicas,

naturalmente os existentes sob a forma de circuitos integrados da família TTL (ou outra

família lógica).

Neste capítulo estudaremos metodologias adequadas a circuitos com um número

de variáveis de estado não superior a 6, e que produzem - quanto à síntese - apenas

soluções baseadas em dispositivos elementares: portas lógicas e flip-flops D e J-K. Estes

métodos são também aplicáveis à implementação com dispositivos programáveis - tais

como os PALs - que contêm internamente essas mesmas portas lógicas e flip-flops.

Estudaremos em 1º lugar o problema da análise de circuitos sequenciais e em

seguida o problema mais complexo da síntese de circuitos.

Circuitos síncronos vs. circuitos assíncronos

Neste capítulo apenas abordamos os circuitos síncronos (que na literatura também

aparecem designados por pulse-mode circuits ) , com exclusão dos circuitos assíncronos

(também chamados fundamental-mode circuits ).

Com efeito, a análise e síntese de circuitos assíncronos é extremamente mais

complexa do que as dos circuitos síncronos. Por esta razão, os circuitos assíncronos são

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 2: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 2

limitados a implementações de pequena complexidade, sendo a larga maioria dos circuitos

sequenciais projectados como circuitos síncronos.

Note-se que existem funções sequenciais que têm especificações de

funcionamento que podem ser cumpridas por um circuito assíncrono mas não por um

circuito síncrono. No entanto, trata-se geralmente de problemas muito delimitados (por

exemplo, dividir por 3 a frequência de um sinal de entrada), que podem ser considerados à

periferia de um circuito global - isto é, mesmo nos casos em que é necessário recorrer a

circuitos assíncronos, nem por isso se converte todo o projecto ao funcionamento

assíncrono, mas sim apenas as sub-funções imprescindíveis.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 3: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 3

Máquinas de estados finitos

Uma máquina de estados finitos é caracterizada essencialmente pelas seguintes

propriedades:

• Requisito finito de memória: o número de elementos de memória necessário para

determinar as saídas é finito.

• Propriedade do disparo externo: uma transição do estado interno nunca causa

uma subsequente transição nesse estado interno.

• Propriedade do relógio único: existe uma única entrada (designada por relógio)

que temporiza as mudanças de estado; todas as mudanças de estado ocorrem em

sincronismo com o relógio.

• Propriedade da vertente única: todas as variações de estado interno ocorrem em

resposta à transição de 0 para 1 em uma variável de entrada (essa variável de

entrada é o relógio ). A mudança de 1 para 0 nunca causa qualquer variação no

estado interno. (É claro que também haverá outros circuitos em que a vertente

activa é a 1->0; o que é esencial é que a vertente activa seja única).

Neste capítulo apenas examinaremos as Máquinas de estados finitos, as quais

constituem uma sub-classe da categoria mais lata dos circuitos sequenciais síncronos.

Num ou noutro exemplo aparecerão circuitos que utilizam as entradas assíncronas,

que existem em muitos flip-flops, para fins de inicialização. A operação dessas entradas

assíncronas é tratada à parte do funcionamento síncrono.

5.2 - Formas de descrição do funcionamento dos circuitos sequenciais

Diagrama de estados. Tabela de transição

A descrição do funcionamento de circuitos combinacionais é trivial: basta uma

simples tabela de verdade (da tabela de verdade podem ser obtidas as expressões lógicas

das variáveis de saída, que consituem uma outra forma válida de descrição do

funcionamento dos circuitos combinacionais).

Nos circuitos sequenciais as saídas dependem não só das entradas como também

do estado do circuito (relembre-se que o estado do circuito é definido pelo conjunto de

valores das saídas das células de memória que nele existem).

A descrição do funcionamento dos circuitos sequenciais é inerentemente mais

complexa: é necessário especificar todas as possíveis sequências de estados para o

circuito, bem como os valores das saídas que estão associados a esses estados - incluindo

o caso das saídas condicionais, que dependem não só do estado em que o circuito se

encontra mas também dos valores das entradas.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 4: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 4

A forma mais sugestiva de descrição do funcionamento dos circuitos sequenciais é

o diagrama de estados . No diagrama de estados, cada estado é representado por uma

oval etiquetada com a designação (ou símbolo)do estado , designação essa que pode ser

tão compactada como uma simples letra ou ser uma mnemónica que traduza algum

significado especial que o estado tenha.

As possíveis transições a partir de cada estado são representadas por "setas" que

partem desse estado e que apontam para outros estados (ou mesmo para o próprio estado,

quando representam a manutenção do estado).

Como é óbvio, aquilo que decide qual, a partir de um determinado estado, das

transições é que se efectiva é o conjunto dos valores das variáveis de entrada. Assim, cada

seta é etiquetada com a combinação de valores das variáveis de entrada que comandam a

transição representada pela seta.

A título de exemplo, vejamos o diagrama de estados de um circuito sequencial com

uma única (além da entrada de relógio) entrada "SEGUE", com o seguinte funcionamento:

- enquanto SEGUE = 1, percorre a sequência de estados A, B, C, D, A, …

- enquanto SEGUE = 0 mantém-se no mesmo estado

A

B

C

D

1

11

1

00

0

0

Fig.5.1

Neste diagrama de estados, os 1s e os 0s associados às setas são os valores da

variável de entrada SEGUE que comandam as transições representadas pelas setas.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 5: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 5

Num diagrama de estados para uma função com várias entradas, em vez de 0s e

1s aparecem (associados às transições) conjuntos de 0s e 1s (e eventualmente também

Xs, que correspondem ao caso de transições que são independentes de uma ou mais

variáveis) que representam as combinações de valores das várias entradas que comandam

cada uma das transições. Assim, é conveniente associar ao diagrama lógico uma legenda

que indique o formato com que são etiquetadas as transições.

O diagrama de estados também deve exprimir a dependência das saídas com as

entradas e com o estado. Dada a possibilidade das saídas dependerem não só do estado,

mas também das entradas, as saídas não são geralmente associadas com os estados mas

sim com as transições (o que deve ser entendido da maneira seguinte: os valores de saídas

que são associados a uma determinada transição são os valores que se verificam durante o

estado de partida dessa transição, quando as variáveis de entrada tomam os valores que

comandam essa mesma transição) . Também seria plausível associar os valores das saídas

com os estados, mas isso teria de ser feito sob uma forma condicional qualquer, como por

exemplo uma pequena tabela em que as variáveis independentes são apenas as entradas -

mas a convenção normalmente seguida é a de associar os valores das saídas às transições.

Vamos ver alguns exemplos que ilustram estas convenções de representação.

Em 1º lugar, vamos supôr que o circuito da figura acima deverá produzir as saídas X e Y,

de acordo com a seguinte lei:

Estado X Y

A

B

C

D

0 0

0 1

1 0

1 1

O diagrama de estados será o seguinte:

A

B

C

D

1/00

1/011/10

1/11

0/010/11

0/00

0/10

SEGUE / X YFormato:

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 6: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 6

Fig.5.2

Como neste caso as saídas não dependem directamente das entradas, mas sim

apenas do estado, aparecem combinações de saída iguais nas duas transições que partem

de cada estado.

Por vezes pode ser necessário associar mais do que uma etiqueta a uma seta que

represente uma transição.

É o caso do seguinte exemplo: suponhamos um circuito com dois estados A e B,

uma entrada E e uma saída S. No estado A, a saída S deve reflectir o valor da entrada E, e

no estado B a saída S deve estar incondicionalmente a 1.

O diagrama será o seguinte:

A

B

X / 1

E / SFormato:

0 / 0

1 / 1

Fig.5.3

Uma outra forma de representar o funcionamento de um circuito sequencial é a

tabela de transição ou tabela de estado seguinte. A tabela de transição é semelhante a

uma tabela de verdade, mas tem dois grupos de variáveis independentes - as entradas e o

estado presente - e dois grupos de variáveis dependentes - as saídas e o estado seguinte.

A tabela de transição referente à função que tem o diagrama de estados da Fig.5.2

será a seguinte:

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 7: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 7

Estado presente

Entradas

SEGUE

Estado seguinte

Saídas

X Y

A

B

B

A

0

1

C

C

D

D

0

1

0

1

0

1

A

B

C

D

B

C

D

A

0 0

0 0

0 1

0 1

1 0

1 0

1 1

1 1

A tabela de transição contém a mesma informação que o diagrama de estados,

mas sob uma forma não tão imediatamente apreensível.

O ponto de partida do trabalho de síntese é normalmente uma descrição verbal do

funcionamento do circuito, e o primeiro passo é a obtenção de uma primeira descrição

formal que corresponda a esse funcionamento. Para essa primeira descrição formal é

utilizado quase sempre um diagrama de estados, uma vez que é a representação mais

sugestiva para comparar com a descrição verbal.

Como já vimos, o estado de um circuito sequencial corresponde a uma combinação

de valores dos estados das células de memória (flip-flops, no caso de circuitos síncronos).

As saídas dos flip-flops representam as variáveis de estado e a combinação de valores das

variáveis de estado associada a um determinado estado é o código desse estado.

No diagrama de estados, bem como na tabela de transição, cada estado pode

aparecer referido pela sua designação ou (símbolo) ou pelo seu código de estado, ou ainda

pelas duas coisas.

Para completar a descrição, também é usual associar, quer ao diagrama de

estados, quer à tabela de transição, um diagrama de blocos global que serve para indicar

claramente quais as entradas e as saídas do sistema.

Na análise e síntese de circuitos sequenciais também tem relevância a tabela de

excitação. Esta tabela é semelhante à tabela de transição, mas em vez do estado seguinte

inclui os valores das entradas a aplicar aos flip-flops (que são portanto as variáveis de

excitação dos flip-flops) para a obtenção do estado seguinte.

A tabela de excitação para flip-flops D é igual à tabela de transição.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 8: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 8

5.3 - Análise de circuitos sequenciais síncronos

Como foi referido, a análise de circuitos sequenciais parte do exame do diagrama

lógico, e o resultado final será uma descrição do seu funcionamento - sob a forma de um

diagrama de estados e, eventualmente, de uma descrição verbal.

O primeiro passo será a leitura (a partir do diagrama lógico) das expressões das

funções de excitação, isto é, as funções aplicadas às entradas dos flip-flops. (A parte -

combinacional - do circuito que recebe as saídas dos flip-flops e as entradas, e que tem por

saídas as variáveis de excitação dos flip-flops é o descodificador de estado seguinte ).

A tabela de excitação pode então ser preenchida, e a partir desta, a tabela de

transição, ou então directamente o diagrama de estados. Por fim, o diagrama de estados

poderá sugerir uma descrição verbal da função do circuito.

EXEMPLO 1: Seja o circuito:

JA

KA

QA

QA

JB

KB

QB

QB

Relógio

S

1

1

Do diagrama lógico tiramos as funções de excitação :

JA = B . S KA = 1

JB= A . S KB = 1

E podemos então preencher a tabela de excitação, que aliás podemos combinar

com a tabela de transição numa tabela única:

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 9: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 9

Estado presente

QB(n)

QA(n)

S J B K B J A K A

Estado seguinte

QB(n+1)

QA(n+1)

0 0 0 0 1 0 1 0 0

0 0 1 0 1 1 1 0 1

0 1 0 0 1 0 1 0 0

0 1 1 1 1 1 1 1 0

1 0 0 0 1 0 1 0 0

1 0 1 0 1 0 1 0 0

1 1 0 0 1 0 1 0 0

1 1 1 1 1 0 1 0 0

Da tabela de transição desenha-se directamente o diagrama de estados.

Código de estado: formato Q QB A

0 0

0 1

1 0

1 1

0 1

1

X (indiferente)

X (indiferente)

Formato (transições): S

0

A descrição verbal poderia ser: o circuito tem um estado de partida com o código

(QB QA) 00. Quando a entrada S é 1, avança para o estado 01, depois para o 10 e

finalmente volta a 00. Em qualquer estado, com S = 0 volta ao estado 00.

Há um estado 11 que não faz parte da sequência principal.

A entrada S serve portanto de controlo para o avanço na sequência principal,

composta pelos estados 00, 01 e 10.

EXEMPLO2: Seja o circuito

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 10: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 10

JA

KA

QA

QA

JB

KB

QB

QB

JC

KC

QC

QC

CLR CLR CLR

Relógio

APAGA

Existe um sinal APAGA que está ligado às entradas assíncronas de CLEAR. Como o

efeito CLEAR é accionado quando a linha é posta a 0, conclui-se que o sinal APAGA, quando

a 0, coloca os 3 flip-flops a 0, assíncronamente.

Esta é a única funcionalidade assíncrona neste circuito - tudo o resto funciona

síncronamente.

Do diagrama lógico tiramos as funções de excitação (síncronas):

JA = QC KA = QC

JB = QA KB = QA

JC = QB KC = QB

Estas expressões permitem construir a tabela de excitação/transição :

Estado presente

QB(n)

QA(n)

J B K BJ A K A

Estado seguinte

QB(n+1)

QA(n+1)

0 0 0 1 0 1 1 0

0 0 0 1 0 1 0 0

0 1 0 1 1 0 1 0

0 1 0 1 1 0 0 0

1 0 1 0 0 1 1 1

1 0 1 0 0 1 0 1

1 1 1 0 1 0 1 1

1 1 1 0 1 0 0 1

QC(n)

0

1

0

1

0

1

0

1

J C K C

1 0

0 1

1 0

0 1

1 0

0 1

1 0

0 1

QC(n+1)

0

0

1

1

0

0

1

1

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 11: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 11

E daqui construimos o diagrama de estados. Tomemos o estado 100 (formato

QAQBQC) como ponto de partida; desenvolvendo a sequência, temos:

100

110

111

011

001

000

Esta sequência abarca apenas 6 dos 8 códigos de estado possíveis. Para completar

o diagrama de estados falta considerar os outros dois estados:

101

010

Falta apenas a descrição verbal do funcionamento do circuito. Do diagrama total, é

aparente que a sequência principal é a composta por 6 estados; pode ser até que a função

pretendida para o circuito corresponda apenas a essa sequência. No entanto, dado

existirem 3 flip-flops, há 8 estados possíveis, e os dois adicionais aparecem no diagrama de

estados completo.

Em relação à sequência que se presume ser a principal, podemos dizer que

funciona como um registo de deslocamento de 3 bits, em que o padrão existente em

QAQBQC se desloca uma casa para a direita em cada impulso do relógio. O registo é

recirculante, mas com negação no percurso de recirculação. Assim, quando está 1 em QC,

o estado seguinte de QA é 0.

Este tipo de funcionamento correponde aos twisted-ring counters, também

chamados contadores de Moebius.

Finalmente, podemos enumerar um conjunto de passos que pode servir de guia

para o processo de análise:

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 12: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 12

1º - Considerar separadamente as partes do circuito que dizem respeito ao funcionamento

síncrono e as que dizem respeito ao funcionamento assíncrono.

Para a parte respeitante ao funcionamento síncrono:

2º - Ler as funções de excitação (ou seja, as expressões das saídas do

Descodificador de estado seguinte).

3º - Construir a tabela de excitação e a tabela de transição.

4º - A partir da tabela de transição, desenhar o diagrama de estados.

Isto é feito escolhendo um estado de partida (preferivelmente aquele que, segundo

a tabela de transição, parecer o estado inicial) e em seguida ir marcando todos os

estados que estão na sequência daquele, tomando para cada estado todas as possíveis

hipóteses de estados seguintes. Para cada estado, existe um número máximo de

estados seguintes possíveis, número máximo esse que é igual a 2Ne, em que Ne é

o número de entradas do circuito - mas a tabela de transição poderá indicar que

vários desses estados seguintes possíveis são idênticos, ou seja, que determinado

circuito tem um nº de estados seguintes menor do que o máximo possível.

5º - Obter uma descrição verbal do funcionamento do circuito. Aqui, o mais

importante será identificar a "lógica" da sequência que o circuito segue. A

descrição verbal carece de sentido se não se conseguir identificar essa "lógica".

5.4 - Síntese de circuitos sequenciais

5.4.1 - Validação das especificações. Construção do primeiro diagrama de estados

Quase sempre, a especificação inicial de um circuito sequencial é uma descrição

verbal do funcionamento pretendido para o circuito.

Como a especificação de um circuito sequencial deve definir todas as possíveis

sequências de estados para o circuito, bem como os valores das saídas que lhe estão

associados, compreende-se que de uma descrição verbal surjam frequentemente

especificações incompletas, ou com incongruências (Em alguns casos é a falta de

pormenorização adicional que faz considerar incompletas as especificações: é por exemplo

o caso dos detalhes relacionados com a temporização dos sinais de entrada e de saída - se

os sinais são ou não sincronizados com um relógio, quais as restrições à sua temporização,

…).

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 13: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 13

Assim, o primeiro passo do trabalho de síntese é a validação das especificações

recebidas: devem ser completas e não conter incongruências. Quando o implementador de

um sistema digital concluir que as especificações são incompletas ou incongruentes, deve

apontar esses problemas ao especificador, que elaborará novas especificações. O trabalho

de síntese volta então ao princípio (este passo pode repetir-se várias vezes).

O segundo passo do trabalho de síntese é a obtenção de uma primeira descrição

formal do funcionamento do circuito, normalmente sob a forma de um diagrama de

estados - já que é a forma que mais directamente se obtém da descrição verbal.

Ora a detecção de especificações incompletas ou incongruentes também só pode

ser feita convenientemente com base no diagrama de estados. Assim, a validação das

especificações e a construção do diagrama de estados são feitos num só passo. A

obtenção, sem problemas, de um diagrama de estados claro é prova de que a

especificação, no que toca à sequência, não é incompleta nem tem incongruências.

Obtenção do diagrama de estados a partir de uma descrição verbal

A dificuldade de obtenção do diagrama de estados a partir da descrição verbal

varia não só com o grau de complexidade do problema, mas também com a maneira como

é feita a descrição verbal. Esta pode descrever o problema (aquilo que o circuito deve

fornecer em termos de funcionamento) ou uma solução já delineada para o problema (que

poderá ir ao ponto de ser uma "descrição do diagrama de estados"). Aliás, a especificação

propriamente dita será uma descrição do 1º tipo; quando a descrição é do 2º tipo, admite-

se que já foi dado algum passo para a resolução do problema.

Vamos começar por um exemplo particularmente simples e passar depois a casos

mais complexos. Veremos em secções posteriores que para uma mesma especificação é

possível obter vários diagramas de estados, todos eles correctos, mas alguns mais simples

do que os outros. Existem várias técnicas para a obtenção de diagramas de estados

"minimizados" mas por agora interessa-nos apenas obter um diagrama de estados

correcto.

EXEMPLO 1 : Uma função sequencial F é descrita verbalmente da seguinte maneira:

"O circuito admite apenas uma entrada INICIO (além da entrada de relógio).

Enquanto INICIO se mantiver a 0, o circuito deve percorrer encadeadamente uma

sequência de 4 estados A, B, C, e D.

A-> B -> C -> D -> A -> ……

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 14: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 14

(óbviamente, passando de estado a estado na vertente activa do relógio). Quando o sinal

INICIO fôr 1, o circuito deverá transitar para o estado A (ou manter-se lá). O circuito deve

apresentar uma saída S que estará sempre a 0, excepto no estado D, em que deverá estar

a 1 independentemente do valor da entrada INICIO.

O diagrama de estados será:

A

B

C

D

0 / 0

0 / 0

1 / 0

1 / 0

0 / 0

INICIO / SFormato:

1 / 0

X / 1

Neste exemplo foi especialmente fácil desenhar o diagrama de estados porque a

descrição verbal já definia completamente o diagrama de estados: tanto os estados

existentes, como as transições entre eles.

EXEMPLO 2 : Projectar um circuito que produza um pulso a 1 na saída S (com a duração de

um período de relógio) quando 3 valores sucessivos (isto é, os valores verificados nos

instantes de 3 vertentes activas do relógio sucessivas) - ou "amostras" - da entrada Z têm

um número ímpar de 1s (1 ou 3).

Após 3 impulsos de relógio (quer seja produzido pulso ou não), o circuito deve

voltar ao início e reiniciar o processo de teste.

Também faz parte da especificação o seguinte diagrama temporal, que define a

temporização da entrada Z e da saída S:

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 15: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 15

1º valor

Relógio

2º valor 3º valor 1º valor 2º valorZ

S

Possibilidade de pulso a 1

Neste caso não sabemos quais são os estados que o diagrama de estados deve

comportar - temos que os deduzir de alguma maneira.

Claramente, deverá existir um estado inicial, em que ainda não foi examinada

nenhuma amostra de Z - chamemos A a este estado. Deste estado, poderá haver

transições para um ou mais estados seguintes. Como o que decide para qual desses

estados é que o circuito transita é apenas o valor da entrada Z (que só pode assumir dois

valores: 0 ou 1) - existe um máximo de dois estados seguintes para o estado A . Sejam

eles B e C. Análogamente, para cada um de B ou C podem existir dois estados seguintes.

Sejam D e E os estados seguintes de B, e F e G os estados seguintes de C.

A

F G

C

D E

B

Z / SFormato:1 / 0

1 / 00 / 01 / 00 / 0

0 / 0

Quando o circuito passa a um dos estados B e C, já foi examinada a 1ª amostra de

Z e quando o circuito passa a um dos estados D, E, F ou G, já foi examinada a 2ª amostra

de Z.

Quando, encontrando-se o circuito num dos estados D, E, F ou G, é examinada a 3ª

amostra de Z (o que acontece na vertente de relógio nº3), o circuito já pode decidir se se

deve produzir pulso em S ou não. Com efeito, se o circuito está no estado D, sabe-se que

as duas primeiras amostras foram 00, se está no estado E sabe-se que as duas primeiras

amostras foram 01, etc.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 16: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 16

1º valor

Relógio

2º valor 3º valor 1º valor 2º valorZ

S

Estado A B CouD EF Gou

, ,

1 2 3 1' 2'

O pulso de saída é especificado como tendo a duração de um período de relógio.

Assim, é necessário dedicar um estado especial à produção do pulso (um estado com a

saída S incondicionalmente a 1).Para o caso de não ser produzido pulso, terá que haver um

estado "gémeo" com saída S incondicionalmente a 0. Seja H o 1º destes estados e I o 2º.

Qualquer destes estados ficará localizado entre as vertentes 3 e 1'.

Do diagrama temporal, vê-se que na sequência de teste anterior assumiu-se que o

estado A ficava localizado antes da vertente 1. Assim, os estados H e I estão em

sobreposição com o estado A, o que é óbviamente impossível.

Este problema fica resolvido se eliminarmos os estados H e I e em vez do estado A

tivermos dois estados A' e A" , idênticos no que toca às transições para os estados

seguintes, mas diferentes quanto ao valor da saída S: A' terá a saída S incondicionalmente

a 0 e A" terá a saída S incondicionalmente a 1.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 17: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 17

O diagrama de estados completo será:

A'

F G

C

D E

B

Z / SFormato:

1 / 0

1 / 00 / 01 / 00 / 0

0 / 0A"0 / 1

1 / 1

1 / 00 / 0

0 / 01 / 0 1 / 00 / 0 1 / 0

0 / 0

EXEMPLO 3 (Um caso de especificação incompleta) : Projectar um contador binário que

siga a sequência 0 - 1 - 2 - 0 - … enquanto a entrada de controlo LONGO estiver a 0 e que

siga a sequência 0 - 1 - 2 - 3 - 4 - 5 - 0 - … enquanto LONGO estiver a 1.

Ao desenhar o diagrama de estados, apercebemo-nos que a especificação não

define (nem pode dela ser depreendido de uma maneira clara) qual deve ser a evolução do

circuito nos seguintes casos:

estado 3, LONGO a 0

estado 4, LONGO a 0

embora se possa admitir que quando no estado 5, LONGO está a 0, é lógico que o estado

seguinte seja o 0. Nos dois casos anteriores, tanto se pode pôr a hipótese de deixar

completar a sequência longa, como a de voltar imediatamente ao estado 0.

0

1

2

5

4

3

?

?

Formato: LONGOX

X

1

0

0

0

1

1

X

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 18: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 18

Neste caso, o implementador teria de obter do especificador uma especificação

completa no que toca às transições a partir dos estados 3 e 4.

5.4.2 - Obtenção de diagramas de estados simplificados

Redução de estados

Para uma mesma função sequencial, podem definir-se vários diagramas de estados

- todos eles correctos - diferindo entre si pelo grau de complexidade.

Obviamente, interessa obter um diagrama de estados de complexidade mínima (ou

pouco acima da mínima), ou seja, com o número mínimo de estados, ou pouco além do

mínimo. Assim reduzir-se-á o mais possível a complexidade do circuito necessário para

implementar o diagrama de estados.

Mas não há nenhum processo sistemático de, a partir da descrição verbal, obter um

diagrama de estados com o número mínimo de estados - nem pode haver, pois a descrição

verbal é informal e pode ser dada sob várias formas.

Mas no processo de síntese existem dois pontos em que pode incidir um esforço de

simplificação do diagrama:

- O mais óbvio consiste em, após traçado um 1º diagrama de estados, pesquisar esse

diagrama tendo em vista a identificação de estados desnecessários. Isto é, tenta-se

encontrar pares de estados que sejam equivalentes (adiante se definirá

precisamente o que é que são estados equivalentes). De cada par de estados

equivalentes A e B, podemos eliminar um (seja p.ex. o B) , substituindo B por A.

Este processo é mais convenientemente levado a cabo sobre a tabela de

transição, e não sobre o diagrama de estados.

- O outro baseia-se no facto de que o conjunto dos estados mais não é do que uma

forma de memorização da informação necessária à execução da função. Assim,

reconhece-se que uma análise prévia da informação realmente essencial pode levar

à determinação do número mínimo de estados, bem como a um diagrama de estados

com esse número mínimo.

Vamos ver, para o caso do EXEMPLO 2 (pág.5.12) como se aplicaria o 1º método e

em seguida o 2º.

Redução de estados na tabela de transição

Antes de mais, convém definir rigorosamente estados equivalentes :

dois estados A e B são equivalentes se e só se:

- tem especificações de saída idênticas (isto é, para todas as possíveis

combinações de entradas, os valores das saídas são iguais num e noutro estado)

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 19: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 19

- e se os estados seguintes são os mesmos, ou equivalentes.

O método que vamos utilizar (existem outros métodos correntemente utilizados,

que não examinaremos) para a redução de estados na tabela de transição consiste no

particionamento dos estados em classes de estados "candidatos a equivalência". Em

seguida, examinam-se sucessivamente os vários estados em cada classe para verificar se

são realmente equivalentes.

Se no processo de verificação se concluir que dois ou mais estados pertencentes a

uma mesma classe não são equivalentes, haverá que fraccionar essa classe em duas ou

mais. Com o novo conjunto de classes, procede-se a nova verificação, e assim

sucessivamente até se ter concluido que cada uma das classes contém apenas estados

equivalentes.

O conjunto de classe inicial é constituido pelas classes o mais latas possível: isto é,

agrupam-se em cada classe todos os estados com a mesma especificação de saída.

Em relação ao problema que nos serve de exemplo, temos a seguinte tabela de

transição, em que à partida se podem definir as duas classes ? e ?:

Estado Presente Classe

EntradaZ

Estado Seguinte Classe

SaídaS

A'

A'

A"

A"

B

B

C

C

D

D

E

E

F

F

G

G

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

B

C

B

C

D

E

F

G

A'

A"

A"

A'

A"

A'

A'

A"

0

0

1

1

0

0

0

0

0

0

0

0

0

0

0

0

Análise do 1º conjunto de classes:

Há apenas duas classes: ? e ?

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 20: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 20

Podemos concluir que:

F e G não são equivalentes, porque p.ex. para Z = 1, os seus estados

seguintes são A" e A', que pertencem a classes diferentes

D e E não são equivalentes, por razão análoga

D e F não são equivalentes, por razão análoga

E e G não são equivalentes, por razão análoga

D e G são equivalentes, pois têm saídas e estados seguintes iguais

E e F são equivalentes, pois têm saídas e estados seguintes iguais

Concluimos que a classe ? tem de ser subdividida em pelo menos duas classes.

Chamemos ?1 à classe de D e G e ?2 à classe de E e F.

Nenhum dos estados D, E, F e G pode ser equivalente a A', pois D, E, F e G têm a

possibilidade de ter A" como estado seguinte (o que não acontece com A') e A" pertence a

outra classe (?). Logo, a classe ? tem de ter outra subdivisão, em que está A' - chamemos-

lhe ?3.

Nem B nem C podem ser equivalentes a D, E, F ou G pela mesma razão. Assim, B e

C devem estar noutra subdivisão de ? - por enquanto, devemos assumir que possa ser ?3.

Podemos então reescrever a tabela de transição, já com as sub-classes que

conseguimos determinar no 1º passo:

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 21: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 21

Estado Presente Classe

EntradaZ

Estado Seguinte Classe

SaídaS

A'

A'

A"

A"

B

B

C

C

D

D

E

E

F

F

G

G

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

B

C

B

C

D

E

F

G

A'

A"

A"

A'

A"

A'

A'

A"

0

0

1

1

0

0

0

0

0

0

0

0

0

0

0

0

Nesta 2ª tabela, podemos concluir que A' não pode ser equivalente a B ou a C,

nem B equivalente a C, porque os seus estados seguintes - para entradas iguais -

pertencem a classes diferentes.

Logo, a classe ?3 tem de ser subdividida em 3 classes, que designaremos por ?4, ?

5 e ?6.

O diagrama de estados obtido após a redução de estados será:

Z / SFormato:

1 / 0

1 / 00 / 0

1 / 00 / 0

0 / 0

0 / 1

1 / 1

0 / 01 / 01 / 0

0 / 0

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 22: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 22

Simplificação do diagrama de estados por análise da informação mínima

necessária

Continuando a utilizar o mesmo exemplo, concluimos que cada estado tem de

exprimir dois tipos de informação acerca da história anterior das entradas do circuito:

1 - quantas amostras é que já foram examinadas (em que passo é que se vai)

2 - qual é a paridade da parte da sequência que foi examinada até agora

Como a paridade pode ter dois valores, isto quer dizer que por cada amostragem

efectuada teremos dois estados. Podemos arranjar os estados por linhas - em que os

estados em cada linha pertencem ao mesmo passo - e por colunas - em que uma das duas

colunas é associada à paridade par e a outra à paridade ímpar.

Como já tínhamos visto anteriormente, são também precisos dois estados para o

estágio inicial em que ainda não foi examinada qualquer amostra.

Chamemos aos dois estados "iniciais" A e B (sendo B o que tem saída a 1). Os

estados A e B terão estados seguintes (em número de 2) iguais para valores de entrada

iguais.

Desses estados seguintes - ambos estão na situação de "1 amostra já examinada" -

um representa a situação "par" e outro a situação "ímpar".

Podemos desenhar um diagrama parcial:

A Z / SFormato:1 / 0

0 / 0

0 / 1

1 / 1

B

C D

Neste diagrama, C representa a situação "par" e D representa a situação "ímpar".

Os estados seguintes de C e D representarão o estágio de "duas amostras já examinadas"

e serão também em número de dois: um para a situação "par" (E) e outro para "ímpar" (F).

Como a ocorrência de um 1 muda a paridade da sequência e de um 0 conserva-a,

temos:

A Z / SFormato:1 / 0

0 / 0

0 / 1

1 / 1

B

C D

0 / 0

E F

1 / 0 1 / 0 0 / 0

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 23: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 23

Finalmente, a amostra final vai decidir se dos estados E ou F se transita para o

estado A ou para o B.

O diagrama final fica idêntico ao obtido após a redução de estados.

Este exemplo mostra que a análise cuidada do problema pode ser a forma mais

expedita de obter um diagrama de estados simplificado.

5.4.2 - Codificação dos estados

Após se ter chegado a um diagrama de estados satisfatório, o próximo passo é a

codificação de estados. A codificação de estados consiste em 1º lugar em determinar qual

o número de flip-flops necessário para a implementação da unidade de memória do circuito

- geralmente o expoente da menor potência de 2 (2N) que seja maior ou igual ao número

de estados do circuito (há no entanto funções em que a utilização de mais flip-flops

simplifica muito o descodificador de estado seguinte ou o descodificador de saída,

resultando num circuito globalmente mais simples).

O passo seguinte consiste em atribuir um código de N bits a cada um dos estados

do circuito. Ora essa atribuição tem uma incidência directa na complexidade do circuito

necessário para implementar o descodificador de estado seguinte. Haverá combinações de

códigos que resultam numa implementação mais compacta e económica, sendo de preferi-

las a outras que resultam em implementações mais complexas.

Não estudaremos nenhum processo sistemático para fazer com que a codificação

de estados resulte na minimização do descodificador de estado seguinte, mas vamos

enunciar um conjunto de regras que tendem a simplificar o descodificador de estado

seguinte. Não se deve, no entanto, dar um valor exagerado a estas regras, como se verá

mais adiante.

As regras podem ser enunciadas como se segue.

Tentar atribuir códigos adjacentes a estados:

1 que, para entradas iguais, têm o mesmo estado seguinte

2 que são os estados seguintes de um mesmo estado (neste caso a parte variável

dos códigos dos estados seguintes deverá reproduzir a parte variável das

combinações de entrada que a eles conduzem)

3 que têm especificações de saída iguais

Convém ter uma ideia da justificação das "regras" , de modo a poder apreciar o seu

valor.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 24: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 24

A 1ª regra tende a favorecer o aparecimento de grupos de adjacência nos

M. de K. de todas as variáveis de excitação para flip-flops D. A título de exemplo,

suponhamos que temos um sistema com 3 variáveis de estado A, B e C e 1 entrada Z.

Quando Z=1, o estado e é o estado seguinte dos estados a, b, c e d. Vamos supor que

utilizamos um mapa para escrever a codificação de estados e vamos codificar os estados a,

b, c e d da seguinte maneira:

a b

c d

C

B

Z

A

010 011

110 111

b

d

a

c

Neste mapa especial (que só serve para ajudar a prever as consequências da codificação), o formato de cada célula é o seguinte:

Tanto os valores das variáveis ABC como o estado referem-se ao estado presente. Notar que como a codificação dos estados não tem nada a ver com a variável de entrada Z (é independente da variável de entrada Z),cada estado aparece em 2 células que só diferem pelo valor de Z .

ABC

estado

000 000 001 001

011

111

101101100100

110

010

… … … …

… … … …

Supondo agora que a codificação do estado e acaba por ser 101, os M. de K. das

variáveis de excitação D aparecem como se segue:

C

A

B

Z

1 1

1 1

DA C

A

B

Z

0 0

0 0

DB C

A

B

Z

1 1

1 1

DC

Nos casos de DA e DC, que têm 1s para o estado e vê-se que realmente aparecem

grupos de adjacência de 1s (que é o que convém quando estamos a extrair a função na

FMSP). No caso de DB aparecem 0s agrupados, mas mesmo aqui não é difícil de imaginar

que isso vai tender a "empurrar" os eventuais 1s de DB para posições adjacentes.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 25: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 25

Enunciando a 2ª regra dum modo mais simples - "atribuir códigos adjacentes a

estados que são os estados seguintes de um mesmo estado" - podemos concluir que faz

aparecer grupos de adjacência nos mapas de excitação para as variáveis de

estado que têm ocorrências constantes nos vários códigos adjacentes. Por outras

palavras:

- Os estados seguintes, tendo códigos adjacentes, têm ocorrências constantes de

algumas variáveis de estado

- Nos mapas dessas variáveis em que a ocorrência constante é 1 (0), aparecem

(0s) nas células com o mesmo estado origem, que são células que só

diferem pelos valores das variáveis de entrada, tendo portanto "alguma"

adjacência.

Como exemplo, vamos supôr que temos um sistema com 3 variáveis de estado A,

B e C e uma entrada X e que os estados seguintes do estado (que virá a ter a codificação)

111 são os estados a e c.

C

A

B

Z

C

A

B

Z

1

DA C

A

B

Z

00

DB C

A

B

Z

01

DC

Mapa de estado seguinte

a c 1

Dando códigos adjacentes aos estados e por exemplo:

a c

a 101ABC ABC temos os mapas

de excitação:c 100

Como se vê, nos mapas de excitação das variáveis com ocorrências iguais nos

códigos adjacentes aparecem grupos de adjacência (embora não apareçam nos mapas das

variáveis que têm ocorrências diferentes dentro desses códigos).

A 2ª parte da 2ª regra (relativa às partes variáveis ) tem a ver com a simplificação

da dependência das funções de excitação com as entradas.

Quanto à 3ª regra, a sua justificação é análoga à apresentada para as duas

primeiras.

Das justificações apresentadas depreende-se que estas "regras" não devem ser

entendidas como de aplicação rigorosa. Cada uma delas tende a contribuir para simplificar

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 26: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 26

a implementação, mas não há garantia alguma de vir a obter um conjunto de expressões

mínimo. Aliás, as "regras" podem entrar em conflito: a aplicação de uma delas pode levar a

uma codificação que não esteja de acordo com outra das "regras".

Assim, optamos por aplicar as "regras" apenas nos casos mais óbvios, não

tentando esgotar todas as possibilidades de aplicação.

5.4.3 - Finalização da síntese de circuitos sequenciais

Mapas de excitação. Selecção de flip-flops

Desenho do diagrama lógico

Uma vez encontrado um diagrama de estados satisfatório e feita a codificação de

estados, faltam ainda alguns passos para que a síntese fique completa.

Após a codificação, é possível preencher uma tabela de transição codificada, que

serve também de tabela de excitação para a implementação com flip-flops D. Dessa tabela

de excitação preenchem-se os mapas de estado seguinte, que são mapas de Karnaugh

para o valor seguinte das variáveis de estado; esses mapas de estado seguinte são

idênticos aos mapas de excitação para flip-flops D.

Muitas vezes, o descodificador de estado seguinte resulta muito mais simples se

em vez dos flip-flops D forem utilizados flip-flops J-K (em circuitos integrados da série TTL,

os dois tipos de flip-flop mais divulgados são o D e o J-K, pelo que não interessa explorar a

possibilidade de implementação com outros tipos de flip-flop). Interessa portanto explorar a

opção da implementação com J-K, para o que se deve construir os respectivos mapas de

excitação : estes mapas obtêm-se dos mapas de estado seguinte através da tabela de

excitação característica dos flip-flops J-K.

Por fim, compara-se, em termos de complexidade, as implementações com flip-

flops D e com flip-flops J-K, com vista a escolher a mais conveniente.

Também é necessário sintetizar o descodificador de saída, o que se faz também

com recurso a mapas de Karnaugh.

O passo final é o desenho do diagrama lógico do circuito, incluindo os flip-flops, o

descodificador de estado seguinte e o descodificador de saída.

Exemplo

Vamos continuar a usar o exemplo cujo diagrama de estados está representado na

pág.5.17 e que se encontra repetido (mas com designações diferentes para os estados) na

figura seguinte:

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 27: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 27

A

F

D

E

C

Z / SFormato:

1 / 0

1 / 00 / 0

1 / 00 / 0

0 / 0

B0 / 1

1 / 1

0 / 01 / 01 / 0

0 / 0

O 1º passo para finalizar a síntese é a codificação de estados.

Vamos tentar aplicar as regras de codificação, sem no entanto o fazer de modo

exaustivo - apenas nas instâncias mais óbvias.

A 1ª regra indica que A e B devem ter códigos adjacentes.

Sejam A = 0 0 0 e B = 0 0 1

A 2ª regra indica que C e D devem ter códigos adjacentes. A "parte variável" deve

ser 0 para C (porque C é acedido, desde A ou B, com Z = 0) e 1 para D.

Sejam C = 0 1 0 e D = 0 1 1

A 2ª regra também indica que E e F devem ter códigos adjacentes. O critério da

"parte variável" não é conclusivo neste caso, pois p.ex. E é acedido de C com Z = 0, mas

de D é acedido com Z = 1.

Sejam E = 1 1 0 e F = 1 1 1

Podemos então preencher a tabela de transição codificada (que é também a tabela

de excitação para flip-flops D):

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 28: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 28

Estado presente

EntradaZ

Estado seguinte

SaídaS

A

A

B

B

C

C

D

D

E

E

F

F

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 1 0

1 1 0

1 1 1

1 1 1

0

1

0

1

0

1

0

1

0

1

0

1

C

D

C

D

E

F

F

E

A

B

B

A

0 1 0

0 1 1

0 1 0

0 1 1

1 1 0

1 1 1

1 1 1

1 1 0

0 0 0

0 0 1

0 0 1

0 0 0

0

0

1

1

0

0

0

0

0

0

0

0

Estados adicionais

1 0 0

1 0 1

0

1 0 1

1 0 0 1

0

1

X

X

X

X

X X X

X X X

X X X

X X X

X

X

X

X

Desta tabela podemos preencher os mapas de estado seguinte, que são também

os mapas de excitação para flip-flops D.

Z

DA

B

B

A

E

F

F

E

C

D

D

C

0 X 0 1

0 X 0 1

0 X 0 1

0 X 0 1

Z

DA

B

B

A

E

F

F

E

C

D

D

C

1 X 0 1

1 X 0 1

1 X 0 1

1 X 0 1

Z

DA

B

B

A

E

F

F

E

C

D

D

C

0 X 0 0

0 X 1 1

1 X 0 0

1 X 1 1

Z Z

Z

Dos mapas lêem-se as funções de excitação para flip-flops D:

D

Z ZZ

=

D =

D = + +

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 29: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 29

Estas funções seriam usadas se se optasse pela implementação com flip-flops D.

É possível que optando por flip-flops J-K, o descodificador de estado seguinte

resulte mais simples.

Para concluir se isso realmente se verifica, vamos preencher os mapas de excitação

para flip-flops J-K, a partir dos mapas de estado seguinte e da tabela de excitação

característica dos flip-flops J-K, que é:

Qn Qn+1-> J K

0 0 0 X

0 1 1 X

1 0 X 1

1 1 X 0

Onde se pode reparar que J é opcional quando o estado inicial é 1 e que é igual ao

estado final quando o inicial é 0. O K é opcional quando o estado inicial é 0 e é igual ao

complemento do final quando o inicial é 1.

Assim, para este exemplo os mapas de excitação para J-K serão:

Z

A

B

B

A

E

F

F

E

C

D

D

C

0 X 1

0 X 1

0 X 1

0 X 1

Z

KA

B

B

A

E

F

F

E

C

D

D

C

X X 1 X

X X 1 X

X X 1 X

X X 1 X

Z

JA

B

B

A

E

F

F

E

C

D

D

C

1 X X X

1 X X X

1 X X X

1 X X X

J X

X

X

X

1

1

Z

A

B

B

A

E

F

F

E

C

D

D

C

X X 0

X X 0

X X 0

X X 0

Z

JA

B

B

A

E

F

F

E

C

D

D

C

0 X 0 0

X X X X

X X X X

1 X 1 1

Z

KA

B

B

A

E

F

F

E

C

D

D

C

X X X X

1 X 0 0

0 X 1 1

X X X X

K1

1

1

1

Z

Z

Z

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 30: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 30

Falta ainda sintetizar a função de saída S.

Z

SA

B

B

A

E

F

F

E

C

D

D

C

0 X 0 0

1 X 0 0

1 X 0 0

0 X 0 0

O diagrama lógico para o circuito completo será:

J

K

Q

Q

J

K

Q

Q

Relógio

1

J

K

Q

Q

1

Z

S

5.4.4 - Síntese de circuitos sequenciais síncronos - Sumário

O procedimento de síntese de um circuito sequencial síncrono simples pode ser

sumarizado nos seguintes passos:

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 31: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 31

1 - Estudar as especificações do circuito, com o fim de compreender o comportamento

operacional pretendido.

Pode acontecer que nesta fase se conclua que as especificações fornecidas estão

incompletas ou que contêm incongruências. Nesse caso, as especificações devem

ser "devolvidas" ao especificador .

2 - Desenhar um diagrama-bloco do circuito, identificando os sinais de entrada e de

saída.

3 - Obter um primeiro diagrama de estados (a rever posteriormente), tentando evitar

estados "redundantes"

4 - Obter a partir do diagrama de estados uma tabela de transição "primitiva". Com o

auxílio desta tabela identificar estados redundantes que porventura restem.

5 - Eliminar do diagrama de estados quaisquer estados redundantes (identificados no

passo 5).

6 - Codificar os estados. Pode recorrer-se às "regras" enunciadas a seguir, que tendem a

conduzir (não garantem , tanto mais que as regras não são supostas serem aplicadas à

exaustão - o que seria extremamente moroso - e acontece mesmo que duas regras estejam

em conflito, sendo necessária uma escolha ou um compromisso) às realizações mínimas

para a lógica combinacional (descodificador de estado seguinte e descodificador de saída).

As regras podem sintetizar-se da seguinte forma:

Tentar atribuir códigos adjacentes a estados:

• que, para entradas iguais, têm o mesmo estado seguinte

• que são os estados seguintes de um mesmo estado (neste caso a parte variável

dos códigos dos estados seguintes deverá reproduzir a parte variável das

combinações de entrada que a eles conduzem)

• que têm especificações de saída iguais

7 - Obter a tabela de transição (colunas "estado presente", "entradas", "estado seguinte"

e "saídas")

8 - Obter M. de K. para as variáveis de excitação para flip-flops D. A partir deles obter

M. de K. para flip-flops JK. Obter M. de K. para as saídas.

9 - Seleccionar os flip-flops a utilizar e obter expressões simplificadas para as

variáveis de excitação e para as saídas.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 32: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 32

10 - Desenhar o diagrama lógico do circuito sequencial

À falta de melhor designação, referiremos este método como "método tradicional" .

5.5 - Auto-correcção nos circuitos sequenciais síncronos

Quando se faz a codificação de estados de um circuito sequencial, determina-se o

número de flip-flops como igual a (geralmente) N, sendo 2N a menor potência de 2 igual ou

superior ao número de estados do circuito. Há no entanto casos em que o nº de flip-flops é

ainda superior a este valor mínimo.

Assim, é vulgar que o número das possíveis combinações de valores das variáveis

de estado seja superior ao número de estados que constam do diagrama de estados

sintetizado para cumprir a função do circuito, gerando-se estados adicionais. Esses estados

adicionais deverão também constar num diagrama de estados completo.

EXEMPLO: Seja um contador binário 0-5. Como a sequência principal inclui apenas 6

estados e para codificar esses 6 estados serão necessárias 3 variáveis, que geram 8

combinações possíveis, há dois estados adicionais, cujo estado seguinte não é definido

pela especificação do contador.

000

001

010

011

100

101110

?

111

?

Como em princípio o circuito nunca se deve encontrar num destes estados

adicionais, as linhas da tabela de transição que lhes correspondem podem aparecer com

condições opcionais (X) nos códigos de estado seguinte, sendo estes Xs utilizados para a

máxima simplificação das expressões das funções de excitação.

Circuitos inicializados e não-inicializados

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 33: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 33

Em muitos casos, o circuito é feito arrancar (quando a alimentação é ligada) num

estado - considerado o estado inicial - da sequência de base do circuito, após o que o

circuito apenas transita de estado a estado dentro dessa sequência de base, sem nunca

aceder a qualquer um dos estados adicionais. O arranque num estado determinado é

conseguido com um circuito especial que detecta o estabelecimento da tensão de

alimentação e aplica pulsos às entradas assíncronas apropriadas dos flip-flops de modo a

colocá-los no estado desejado.

A necessidade da auto-correcção põe-se em casos em que não se pretende

implementar qualquer circuito de inicialização, mas antes se quer que o circuito (síncrono)

entre por si na sequência correcta, admitindo-se que isto só seja garantido ocorrer ao fim

de alguns ciclos de relógio. Com efeito, quando se liga a alimentação a um circuito com

flip-flops, o estado inicial destes está dependente de vários factores aleatórios (por

exemplo o ritmo de subida da tensão de alimentação) que fazem com que esse estado seja

imprevisível, podendo resultar numa combinação de valores correspondente a um dos

estados adicionais - serão então necessários alguns ciclos de relógio para entrar na

sequência correcta.

Diz-se de um circuito em que o descodificador de estado seguinte garanta que, seja

qual fôr o estado inicial, é atingida a sequência principal após um número finito de ciclos

de relógio, que tem a propriedade de auto-correcção .

EXEMPLO: O seguinte diagrama de estados corresponde a um contador binário 0-5 auto-

corrector.

000

001

010

011

100

101 110 111

EXEMPLO: O seguinte diagrama de estados corresponde a um contador binário 0-5 que

não é auto-corrector.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 34: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 34

000

001

010

011

100

101 110

111

Obtenção da auto-correcção

Uma maneira simples de obter a auto-correcção é desenhar à partida um diagrama

de estados em que se arbitram estados seguintes para os estados adicionais de maneira a

que o diagrama tenha auto-correcção …mas esta não será a opção mais optimizada.

Tendo em mente o objectivo sempre presente de optimizar a implementação das

funções digitais, interessa tentar conciliar a simplificação do descodificador de estado

seguinte possibilitada pelo aparecimento de Xs nas posições da tabela de transição (nas

linhas correspondentes aos estados adicionais) com o requisito da auto-correcção.

Um procedimento razoável é o seguinte:

• sintetizar as funções D utilizando todos os X's convenientes.

• desenhar o diagrama de estados e examinar todos os eventuais ciclos

indesejáveis (sequências que se fecham sobre si mesmas, que não sejam a

principal)

• alterando (X->0 ou X->1) apenas um dos mapas, fazer esses ciclos desembocar

no ciclo principal (começar pelas alterações óbviamente inevitáveis); depois de cada

uma das alterações (X->0 ou X->1), ver qual é a função mais simples que se pode retirar

do mapa, e verificar se todos os ciclos indesejáveis são já eliminados.

5.6 - Contadores

Os contadores são uma classe especial de circuitos sequenciais que se distingue

por o seu funcionamento básico não depender de entradas externas (para além da de

relógio) - antes seguindo uma sequência fixa de estados. Versões mais complexas

possuem sim entradas externas, mas estas servem só para escolher a sequência de

contagem, parar a contagem (manter o mesmo estado), inicializá-la com um valor de

partida, …

As utilizações mais vulgares de contadores são:

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 35: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 35

• contagem (no sentido comum) de impulsos ou ocorrências

• divisão de frequência

• geração de formas de onda faseadas (relógios ou enables faseados)

Outras aplicações (tais como p.ex. a geração de atrazos de tempo) geralmente são

implementadas utilizando um contador e lógica combinacional suplementar. Sob a forma

de CI existem contadores por vezes adequados apenas a uma das utilizações descritas,

mas também contadores que podem servir igualmente bem em qualquer um dos casos.

5.6.1 - Aplicações dos contadores

Contagem de impulsos ou ocorrências

Neste caso o que se pretende é que as saídas do contador percorram códigos

sucessivos de uma sequência de contagem pré-estabelecida (geralmente essa sequência

corresponde a um código numérico qualquer, sendo muito vulgares os contadores que

"contam" segundo o código binário natural).

A sequência de contagem de um contador binário (contadores binários são os que

contam segundo o código binário natural) de 4 bits tem o seguinte aspecto:

0001

Relógio

Saídas 0010 0011

Divisão de frequência

Por divisão de frequência entende-se a produção de uma saída cuja frequência seja

um submúltiplo da frequência de um sinal de entrada. Para um divisor por 8, a saída terá a

seguinte evolução temporal:

Relógio

Saída

1 2 3 4 5 6 7 8 1 2 3 4

Geração de formas de onda faseadas

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 36: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 36

Existem muitos circuitos síncronos em que são empregues vários relógios ,

geralmente com o mesmo período e uma relação de fase constante. Nesses circuitos,

alguns dos dispositivos são accionados por um relógio A, outros por um relógio B, …

Os vários relógios têm então as suas vertentes activas distribuídas ao longo de um

período global do sistema e o contador que têm por saídas esses relógios tem por sua vez

de ser accionado por um contador de período mais curto - igual ou submúltiplo da

separação entre dois relógios (de saída) que ocorram consecutivamente.

Um exemplo do tipo de formas de onda neste género de aplicação é apresentado

na figura seguinte:

Relógio

Saída 1

Saída 2

Saída 3

Saída 4

Um tipo de contadores muito utilizado na geração de ondas faseadas é o dos

contadores em anel (ring counters).

5.6.2 - Tipos de contadores

Contadores uni-modo são aqueles que não têm entradas externas além da de

relógio . Assim, os contadores uni-modo limitam-se a percorrer a sua sequência de

contagem, avançando em cada vertente activa do relógio.

Os contadores multi-modo possuem entradas externas (de controlo) que servem

para seleccionar a sequência de contagem (são vulgares os contadores up/down, que

permitem contar quer em sentido crescente, quer decrescente), parar a contagem,

inicializar (carregar ) o contador com um valor fornecido externamente, ou ainda fazer o

anulamento do estado do contador. As operações de carga e anulamento (nos contadores

disponíveis em CI) são algumas vezes feitas síncronamente (isto é, pondo as entradas de

controlo de maneira a fazer p.ex. a carga, a carga só é efectivada no próximo relógio) ou

assíncronamente (acção imediata assim que a entrada de controlo é posta no seu estado

asserido).

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 37: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 37

A maioria dos contadores modernos são síncronos (a menos de uma eventual

função de carga ou anulamento assíncrona) mas é muito utilizado um tipo especial de

contadores - os contadores ripple - que não são síncronos.

Os contadores mais vulgares seguem sequências de códigos numéricos. Há no

entanto contadores que seguem sequências especiais, tais como os contadores em anel

(ring counters). Destes, há dois tipos: os contadores em anel directo (standard ring

counters) e contadores em anel "torcido" (twisted ring counters).

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 38: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 38

5.6.2.1 - Contadores ripple

Os contadores ripple , embora construídos a partir de flip-flops (síncronos) não são

circuitos síncronos - com efeito, uma sua designação alternativa é a de contadores

assíncronos (estas designação é algo ambígua, porque também é possível construir

contadores com células assíncronas - contadores esses que com mais propriedade seriam

chamados de contadores assíncronos ).

Nos contadores ripple a entrada de relógio de todos os flip-flops excepto um é

accionada não por um sinal temporizador mas sim pelos sinais associados às próprias

variáveis de estado ou delas derivado. Assim, quando surge uma vertente activa do

relógio, nem todos os flip-flops comutam simultâneamente, antes há um "escoar" ou uma

"propagação" de comutações: em 1º lugar comuta o flip-flop que tem a entrada de relógio

ligada ao relógio própriamente dito, em 2º o flip-flop cuja entrada de relógio está

dependente da saída do 1º flip-flop, e assim por diante - o efeito pode ser comparado com

uma ondulação (em inglês ripple ) que se vai propagando num lago.

Resulta que os contadores ripple são caracterizados por mudanças de estado

afectadas por transitórios - que correspondem aos vários estágios da propagação da

comutação.

Se se pretender dispôr da saída estabilizada de um destes contadores durante uma

certa percentagem do período de relógio é necessário limitar a frequência deste a um valor

mais baixo do que seria possível com um contador síncrono - em que as saídas estabilizam

logo após um tempo de propagação "relógio->saída" de um flip-flop.

Vemos assim que um contador ripple é funcionalmente inferior a um contador

síncrono. A única razão de ser dos contadores ripple deriva de poderem ser implementados

com muito menos lógica combinacional - em muitos casos, nenhuma - do que os

contadores síncronos.

Esta simplicidade deriva de uma propriedade da sequência binária natural:

Um bit tem uma comutação (0->1 ou 1->0) do mesmo passo que o bit imediatamente

menos significativo tem uma comutação 1->0 (e só nesse caso).

Isso pode ser observado na sequência de 3 bits abaixo desenvolvida, sendo claro

que se verifica para qualquer número de bits.

Q2 Q1 Q0

0 0 0

0 0 1

0 1 0

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 39: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 39

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

0 0 0

Implementação de contadores ripple

A implementação preferencial dos contadores ripple é feita com base em flip-flops

T (ou J-K ligados em T). Os flip-flops mais divulgados são accionados pela vertente 0->1 do

relógio, pelo que para realizar um contador ascendente se liga a entrada de relógio de

cada flip-flop à saída Q do flip-flop "anterior" (isto é, o imediatamente menos significativo) e

para realizar um contador descendente liga-se a entrada de relógio de cada flip-flop à saída

Q do flip-flop "anterior".

Um contador ripple binário ascendente de 3 bits será construído como se segue:

T Q T T

Relógio

QA

QB

QC

"1" "1" "1"

Q

Q

Q

Q

Q

E um contador ripple binário descendente de 3 bits será:

T Q T T

Relógio

QA

QB

QC

"1" "1" "1"

Q

Q

Q

Q

Q

A realização com flip-flops J-K envolveria simplesmente a fixação da condição de

toggle , isto é: J=1 e K=1.

Os contadores ripple apenas podem seguir a sequência do código binário natural,

mas é possível construir p.ex. um contador decimal que conte:

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 40: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 40

0 , 1, 2 , … , 7 , 8 , 9 , 0, 1 , 2 , …

Um contador deste tipo é realizado recorrendo aos CLEARs (assíncronos) dos flip-

flops. Ao contador binário básico é acrescentado um circuito combinacional que assere o

CLEAR dos flip-flops quando a combinação de saída é 10 (1010 em binário). No entanto,

este processo não é fiável se não for garantido que os tempos de propagação dos flip-flops

estão muito próximos uns dos outros; com efeito, se um flip-flop reagisse ao CLEAR antes

do outro, faria desaparecer a condição 1010, o que terminaria a asserção do CLEAR.

Isto é mais uma confirmação de que os contadores ripple são funcionalmente

inferiores aos contadores síncronos.

5.6.3 - Contadores disponíveis em CI

7493A, 74LS93 - Ripple-clock binary counters

NOTA: ligando a saída QA à entrada INPUTB obtém-se um contador binário de 4 bits. Não

fazendo essa ligação temos um contador de 3 bits e um flip-flop T (com toggle

permanente, isto é, T=1) descomprometido que pode ser utilizado separadamente.

74163, 74LS163, 74S163 - Synchronous 4-bit binary counters

74163, 74LS163, 74S163 - Synchronous 4-bit binary counters (continuação)

Expansão de contadores síncronos

Se se dispuser apenas de CIs que implementem contadores básicos (sem entradas

além da de relógio) para construir um contador de mais bits é necessário acrescentar

lógica combinacional. Aliás, para que o contador resultante seja integralmente síncrono é

necessário que os CIs de contadores disponham pelo menos de um COUNT ENABLE . Num

contador, um COUNT ENABLE é uma entrada que quando no estado deasserido faz com

que o relógio seja inoperante (não faça avançar o contador) e que quando no estado

asserido "deixa" o contador funcionar normalmente.

A lógica combinacional deve garantir o cumprimento da seguinte propriedade da

sequência crescente em código binário natural:

"um bit (ou um grupo de bits) do código binário é incrementado

quando todos os bits menos significativos estão a 1"

Exemplo: contador de 12 bits construído a partir de 3 CIs de contador de 4 bits

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 41: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 41

Relógio

QA

QB

QC

QD

EnableQA

QB

QC

QD

EnableQA

QB

QC

QD

Enable1

Q0

Q1

Q2

Q3

Q4

Q5

Q6

Q7

Q8

Q9

Q10

Q11

Mas existem contadores que incluem já provisões para construir contadores de

mais bits sem recurso a lógica combinacional externa - é precisamente o caso do 74163.

Como se pode ver do diagrama interno, o 74163 já inclui o E que tivemos de acrescentar

externamente (a saída do E é o ripple carry output (RCO).

Um contador de 12 bits (funcionalmente equivalente ao que construímos

anteriormente) implementado com 74163s seria:

Relógio

QA

QB

QC

QD En. T

QA

QB

QC

QD

QA

QB

QC

QD

Q0

Q1

Q2

Q3

Q4

Q5

Q6

Q7

Q8

Q9

Q10

Q11

En. P1

1

Clear1

Load1

En. T

En. P1 Clear1

Load1

En. T

En. P1 Clear1

Load1

RCO RCO RCO

74163 74163 74163

Notar que o 74163 não tem um só ENABLE, mas sim dois: o ENT (ENABLE

"TRANSMIT") e o ENP (ENABLE PARALLEL). Para que o 74163 conte, é necessário que

ambos os ENABLEs estejam asseridos, mas só o ENT é que contribui para a saída RCO. O

ENT é apropriado para ser ligado à saída RCO do contador imediatamente menos

significativo, e o ENP é adequado para ser (ligando a todos os 74163s) utilizado com um

ENABLE global para um conjunto de 74163s.

5.6.4 - Síntese de contadores síncronos

Os contadores síncronos (e particularmente os uni-modo ) são circuitos simples,

cuja síntese é tratável pelo método "tradicional" já visto (e que é, relembremo-lo, apenas

adequado a circuitos de baixa complexidade)

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 42: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 42

Em relação aos passos que constituem o "método tradicional", a síntese de

contadores síncronos equivale a curto-circuitar certos deles, já que:

• o diagrama de estados é dado com a especificação

• a própria codificação de estados também geralmente faz parte da especificação,

já que é (geralmente) igual à sequência de contagem.

Isto porque geralmente não faz sentido utilizar um descodificador de saída

num contador: as saídas externas são as próprias saídas dos flip-flops.

Há no entanto uma excepção, que corresponde a sequências com códigos

repetidos. Seja por exemplo um contador com uma sequência de 5 códigos dos quais os

dois últimos são iguais:

0000 , 0001 , 0010 , 0011 , 0011 , 0000 , …

Neste caso é necessário utilizar um descodificador de saída e a codificação

de estados é diferente da sequência de contagem.

5.6.4.1 - Síntese de um contador "standard-ring"

Pretende-se sintetizar um contador "standard-ring" (contador em anel de sequência

"standard") de 4 bits. A sequência de contagem é:

QA

QB

QC

QD

1000

0001

0010

0100

1000

O contador deve ser auto-corrector.

Como na generalidade dos contadores, nos contadores em anel a síntese é feita no

pressuposto de que o descodificador de saída é nulo , isto é, as saídas finais são as

próprias saídas dos flip-flops. Como para um contador de anel de N bits o número de

códigos da sequência de contagem é sempre muito menor do que 2N, isto corresponde a

utilizar mais flip-flops do que o mínimo indispensável. No entanto, a poupança em lógica

combinacional mais do que compensa este gasto adicional de flip-flops.

O diagrama de estados básico (que não inclui os estados "adicionais") é:

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 43: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 43

0001

1000

0100

0010

E a tabela de transição virá:

QA

(n)Q

B

(n)Q

C

(n)Q

D

(n)Q

AQ

BQ

CQ

D

(n+1) (n+1) (n+1) (n+1)

0000 XXXX

1000

100 0

1

0

1

0

1

0

1

0

1

0

1

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

00

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

1

1

1

1

1

1

1

1

001

1000

XXXX

0100

XXXX

XXXX

XXXX

0010

XXXX

XXXX

XXXX

XXXX

XXXX

XXXX

XXXX

0

E os mapas de estado seguinte (que são também os mapas de excitação para flip-

flops D):

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 44: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 44

0000X

00010

0011X

00101

01000

0101X

0111X

0110X

1100X

1101X

1111X

1110X

10000

1001X

1011X

1010X

AB

C

D

DA

0000X

00010

0011X

00100

01001

0101X

0111X

0110X

1100X

1101X

1111X

1110X

10000

1001X

1011X

1010X

AB

C

D

DB

0000X

00010

0011X

00100

01000

0101X

0111X

0110X

1100X

1101X

1111X

1110X

10001

1001X

1011X

1010X

AB

C

D

DC

0000X

00011

0011X

00100

01000

0101X

0111X

0110X

1100X

1101X

1111X

1110X

10000

1001X

1011X

1010X

AB

C

D

DD

DA

QB

=

DB

QC

=

DC

QD

= DD

QA

=

Selecção do tipo de flip-flops: como para flip-flops D já não há lógica adicional,

opta-se por utilizar flip-flops D.

Para esta implementação com flip-flops D, o diagrama de estados completo

(incluindo os estados adicionais) seria:

0001

1000

0100

0010

0111

1011

1101

1110

0011

1001

1100

0110

0101

1010

0000

1111

Sequência principal

O diagrama de estados evidencia que as funções de excitação tal como foram

sintetizadas fazem com que o contador não seja auto-corrector.

Conforme foi apontado anteriormente, para obter a auto-correcção vamos fazer

alterações em apenas um dos mapas de excitação, começando pelas alterações

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 45: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 45

claramente inevitáveis. Em seguida, redesenha-se o diagrama de estados para as

alterações efectuadas e verifica-se se já é auto-corrector. Caso não seja, fazem-se

correcções adicionais, e assim sucessivamente.

Vamos alterar apenas o mapa de DA. Como o estado 0000 transita para o próprio

estado 0000, é necessário alterar o valor da célula 0000, passando de 0 para 1.

Análogamente, como o estado 1111 transita para o próprio estado 1111, é necessário

alterar o valor da célula 1111, passando de 1 para 0.

O mapa e a expressão extraída são:

00001

00010

0011X

00101

01000

0101X

0111X

0110X

1100X

1101X

11110

1110X

10000

1001X

1011X

1010X

AB

C

D

DA

DA

QD

= QC

QA

. .

Com as novas funções de excitação, o diagrama de estados passa a ser:

0000

0001

1000

0100

0010

1111

1110

0110

0011

0101

1010

0111

1001

1100

1011 1101 Formato dos códigos de estado:

QD

QC

QB

QA

Como este diagrama de estados mostra que a implementação já garante a auto-

correcção, pode passar-se à fase de desenho do diagrama lógico.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 46: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 46

Q

Relógio

D

Q

D

D

QC

Q

D

C

QB

Q

D

B

QA

Q

D

A

5.6.4.2 - Síntese de um contador "twisted-ring"

A designação de "twisted-ring" ("anel torcido") provém de se poder imaginar a

operação destes contadores como se os bits circulassem num anel, anel esse que em

determinado ponto tem uma inversão. Outra designação para estes contadores é a de

"contadores de Moebius".

Pretende-se sintetizar um contador "twisted-ring" de 4 bits. A sequência de

contagem é:

QA

QB

QC

QD

0000

0001

0011

0111

0000

1111

1110

1100

1000

O contador deve ser auto-corrector.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 47: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 47

O diagrama de estados básico (que não inclui os estados "adicionais") é:

0000 1000

0001 1100

1110

11110111

0011

A tabela de transição é:

QA

(n)Q

B

(n)Q

C

(n)Q

D

(n)Q

AQ

BQ

CQ

D

(n+1) (n+1) (n+1) (n+1)

0000 0001

1000

100 0

1

0

1

0

1

0

1

0

1

0

1

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

00

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

1

1

1

1

1

1

1

1

000

XXXX

1000

XXXX

XXXX

XXXX

1100

0011

XXXX

XXXX

XXXX

0111

XXXX

1111

1110

0

E os mapas de estado seguinte (iguais aos mapas de excitação para flip-flops D):

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 48: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 48

00000

00010

00111

0010X

0100X

0101X

01111

0110X

11000

1101X

11111

11101

10000

1001X

1011X

1010X

AB

C

D

DA

00000

00010

00110

0010X

0100X

0101X

01111

0110X

11001

1101X

11111

11101

10000

1001X

1011X

1010X

AB

C

D

DB

00000

00010

00110

0010X

0100X

0101X

01110

0110X

11001

1101X

11111

11101

10001

1001X

1011X

1010X

AB

C

D

DC

00001

00010

00110

0010X

0100X

0101X

01110

0110X

11001

1101X

11110

11101

10001

1001X

1011X

1010X

AB

C

D

DD

DA

QB

=

DB

QC

=

DC

QD

=

DD

QA

=

Selecção do tipo de flip-flops: como para flip-flops D já não há lógica adicional,

opta-se por utilizar flip-flops D.

Para esta implementação com flip-flops D, o diagrama de estados completo

(incluindo os estados adicionais) seria:

0000 1000

0001 1100

1110

11110111

0011

0010 1001

0101 0100

1010

11010110

1011

Sequência principal Sequência fechada de estados adicionais

O diagrama de estados evidencia que as funções de excitação tal como foram

sintetizadas fazem com que o contador não seja auto-corrector.

Para obter a auto-correcção vamos fazer alterações em apenas um dos mapas de

excitação, começando pelas alterações claramente inevitáveis. Em seguida, redesenha-se

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 49: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 49

o diagrama de estados para as alterações efectuadas e verifica-se se já é auto-corrector.

Caso não seja, fazem-se correcções adicionais, e assim sucessivamente.

Vamos alterar apenas o mapa de DA, mas aqui não há "alterações óbviamente

inevitáveis", pois haverá muitas maneiras de quebrar o ciclo fechado de estados adicionais.

Já que este critério não é aplicável, vamos em vez dele considerar as alterações que

implicam menor complexidade adicional.

A expressão inicialmente extraída consta de apenas um grupo de 8, e para compôr

expressões alternativas podemos tomar a 1 Xs que anteriormente tinham sido tomados a

0, bem como tomar a 0 Xs que anteriormente tinham sido tomados a 1. Por ordem de

complexidade crescente, a solução que viria a seguir seria "dois grupos de 8", mas os

opcionais existentes no mapa não o permitem. Em segundo lugar, virá uma solução com

um grupo de 8 e um grupo de 4, que já é possível. Uma possibilidade é a seguinte:

00000

00010

00111

0010X

0100X

0101X

01111

0110X

11000

1101X

11111

11101

10000

1001X

1011X

1010X

AB

C

D

DA

QB

QC

QD

.

DA

= QB Q

CQ

D.+

Com as novas funções de excitação, o diagrama de estados passa a ser:

Formato dos códigos de estado:

QD

QC

QB

QA

0000 1000

0001 1100

1110

11110111

0011

0010

1001

0101

0100

1010

1101

0110

1011

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 50: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 50

Como este diagrama de estados mostra que a implementação já garante a auto-

correcção, pode passar-se à fase de desenho do diagrama lógico.

Q

Relógio

D

Q

D

D

QC

Q

D

C

QB

Q

D

B

QA

Q

D

A

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 51: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 51

9 - Condicionantes analógicas e de temporização

no projecto de sistemas digitais

9.1 - Introdução

O projecto digital caracteriza-se por uma extrema clareza de funcionamento: não

existem quaisquer interacções entre os seus elementos constituintes para além das

descritas pela lógica binária.

Em particular, o projecto de circuitos sequenciais síncronos faz com que o estado de

todas as células de memória, num período N do relógio, só dependa dos valores das

variáveis no período N-1, sendo irrelevante a temporização exacta das transições dos

sinais.

Mas esta limpidez de funcionamento está dependente de serem verificadas várias

circunstâncias:

- os valores de tensão e de corrente estarem dentro das gamas admissíveis para as

componentes utilizadas

- os parâmetros de temporização não excederem determinados limites

- as técnicas de síntese de circuitos serem correctas no sentido de garantirem

fiabilidade de funcionamento.

Paralelamente ao trabalho de projecto executado dentro do domínio digital, há assim

que levar a cabo um trabalho de verificação para assegurar que os pormenores analógicos

e de temporização permitem que o sistema funcione tal como assumido.

Este capítulo descreve, pois, uma série de problemas que potencialmente afectam a

fiabilidade dos pressupostos do funcionamento digital, e em particular, do funcionamento

dos circuitos sequenciais síncronos.

Critério worst-case

Na verificação de valores limite, utiliza-se sempre o critério worst-case, ou seja, o

critério do "caso pior". Este critério é a forma correcta de considerar os valores-limite

apresentados pelos fabricantes das componentes.

Um exemplo: para a ligação de uma memória RAM a um microprocessador, uma das

verificações a fazer é a de que a duração do pulso de escrita é adequada.

Suponhamos que as especificações relevantes são:

RAM (requisito) - duração do pulso de escrita - 200 ns mínimo

µP (prestações) - duração do pulso de escrita - 180 ns mínimo

- 220 ns típico

- 230 ns máximo

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 52: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 52

A verificação deve ser de que a duração mínima requerida pela RAM seja sempre

cumprida, e para que isso seja assegurado a 100% deve considerar-se o caso pior,

ou seja, o de um CI que exiba o pior dos tempos especificados pelo fabricante. Neste

caso, o valor "pior" da prestação do µP ("pior" quanto à satisfação do requisito da

RAM) é o mínimo, pelo que de acordo com o critério worst-case a RAM é rejeitada.

Assim, haverá casos em que os valores "típicos" satisfariam os requisitos de projecto,

mas em que os valores limite mais desfavoráveis já não satisfazem. Nesses casos, deve

rejeitar-se essa escolha de componentes, embora um sistema construído com elas tivesse

uma boa probabilidade de funcionar. Mas é claro que não são de aceitar projectos de

sistemas que funcionem "umas vezes sim, outras vezes não", ou que num lote de fabrico

apresentem por exemplo 60% de sistemas funcionantes e 40% de não-funcionantes.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 53: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 53

9.2 - Pormenores relacionados com o funcionamento síncrono

Vimos anteriormente que para que o andamento de um circuito sequencial se torne

independente do sequenciamento exacto das transições dos sinais, esse circuito deve ser

construido com células de memória "disparadas pelo bordo" (edge-triggered). Os flip-flops

"disparados pelo bordo" modernos têm um tempo de manutenção nulo ou práticamente

nulo. Por outro lado, mesmo para as células de memória das sub-famílias TTL mais rápidas

o tempo mínimo de propagação de relógio para a saída é sempre superior a 2 ou 3ns.

Assim, consegue-se a separação no tempo entre o intervalo em que o estado seguinte é

"calculado" (intervalo de amostragem) e o intervalo em que as saídas dos flip-flops

transitam para o estado seguinte (intervalo de transição) - o que está esquematizado na

Fig.9.1.

Relógio

Intervalo de amostragem

Intervalo de transição

Fig.9.1 - Funcionamento de base dos circuitos síncronos

9.2.1 - Dessincronização do relógio (clock skew)

Para desenhar a Fig.9.1 assumiu-se que o sinal de relógio era exactamente igual para

todas as células de memória, o que pode não se verificar em todos os projectos.

Por exemplo, quando a linha de relógio é comunicada a um número muito elevado de

entradas de CIs, torna-se necessário inserir um ou mais buffers para aumentar o fan-out.

A Fig.9.2 mostra um exemplo de uma situação que pode surgir nessas circunstâncias.

Um flip-flop B recebe a sua entrada de um flip-flop A cujo sinal de relógio provém de um

buffer que não é o mesmo que fornece o relógio do flip-flop B.

D QA

Relógio

D QB

…Fig.9.2 - Dois flip-flops com linhas de relógio distintas

Plausívelmente, os dois buffers não terão tempos de propagação exactamente iguais.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 54: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 54

Vamos assumir que o tempo de propagação do buffer que fornece o relógio do flip-flop B é

apreciávelmente mais longo do que o do buffer do flip-flop A, pelo que haverá uma

dessincronização nos instantes de ocorrência da vertente activa nos flip-flop A e B (skew).

Podemos então desenhar um diagrama correspondente ao da Fig.9.1.

Relógio

Intervalo de amostragem

Intervalo de transiçãoFlip

-flo

p A

Relógio

Intervalo de amostragem

Intervalo de transiçãoFlip

-flo

p B

Fig.9.3 - Intervalos de amostragem e de transição para os dois flip-flops

Como se vê da Fig.9.3, há sobreposição parcial do intervalo de transição do flip-flop A

e do intervalo de amostragem do flip-flop B. Isto quer dizer que será possível que o flip-flop

B, em vez de reagir ao estado anterior do flip-flop A (como seria correcto), possa reagir ao

novo estado para o qual o flip-flop A transitou. A possibilidade disto ocorrer corresponde a

uma defeito de projecto, o qual deve ser rejeitado.

Assim, quando fôr necessário introduzir buffers nas linhas de distribuição do relógio, a

solução preferencial é usar um único buffer de alto fan-out, ou - se um só buffer não fôr

suficiente - assegurar que todos os buffers estão equilibrados (isto é, têm tempos de

propagação muito próximos uns dos outros).

Outras razões para o aparecimento de dessincronização

Em sistemas que, embora não utilizando buffers múltiplos na distribuição do relógio,

apresentam pistas muito longas nesse percurso de distribuição, é a própria propagação do

relógio ao longo das linhas que cria a dessincronização.

Mas um caso em que a dessincronização é muito mais grave surge quando se utiliza a

técnica de gated clock (o que poderíamos traduzir por "relógio porteado"), o que veremos

a seguir.

9.2.2 - Primeiro exemplo de técnicas de projecto

infiáveis: relógio porteado (gated clock)

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 55: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 55

É muito frequente que certas funções (como por exemplo a contagem executada por

um módulo contador), que em princípio são executadas em todos os ciclos de relógio,

devam ser comandadas por um sinal de habilitação. Assim, num ciclo de relógio em que a

entrada de habilitação esteja asserida, o contador deverá contar, e num ciclo em que a

habilitação estiver deasserida, a vertente activa do relógio não deverá ter efeito.

Supondo que dispomos de um circuito que realiza a função desejada, mas de uma

maneira constante (isto é, não apresenta uma entrada de habilitação), uma solução

imediata para realizar um circuito com habilitação é fazer passar o relógio por uma porta E

de 2 entradas, cuja outra entrada é precisamente o sinal de habilitação. Na

Fig.9.4 representa-se um exemplo de um circuito assim obtido a partir de um contador sem

função de habilitação.

Fig.9.4 - Contador com habilitação obtido a partir de um contador sem habilitação

Mas verifica-se que este circuito não funciona fiávelmente! O sinal HAB, sendo

também oriundo de um sistema síncrono, terá comutações que ocorrem alguns

nanosegundos após a vertente activa (ascendente) de RLG. Como se vê na Fig.9.5, há dois

problemas no funcionamento deste circuito.

Fig.9.5 - Duas situações de erro (uma certa, outra provável) no circuito da Fig.9.4

Note-se que na Fig.9.5 se assumiu que o circuito que gera HAB apresenta um atrazo

pequeno mas sensível em relação à vertente activa de RLG mas para simplicidade

assumiu-se um atrazo nulo para a porta E. Os erros do circuito tanto podem ser de pulsos

demasiado estreitos aplicados à entrada de relógio do contador (por exemplo, muitos CIs

da sub-família LS-TTL requerem um largura mínima do impulso de relógio de 20ns, pelo

que é muito provável que o pulso designado como "pouco fiável" possa ou não ser eficaz)

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 56: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 56

como de pulsos além dos pretendidos.

Já o circuito da Fig.9.6 é um pouco superior ao anterior, pois se as portas utilizadas

forem mais rápidas do que o atrazo de relógio para saída do circuito que gera HAB não

haverá erros.

Fig.9.6 - Contador com habilitação (2ª alternativa)

A Fig.9.7 mostra o diagrama de tempos deste circuito, assumindo novamente que as

portas têm propagação instantânea.

Fig.9.7 - Diagrama temporal para o circuito da Fig.9.6

Pela Fig.9.7, concluir-se-ia que este novo circuito já é inteiramente fiável. Mas

considerando agora a situação real, que é a de haver atrasos de propagação nas portas,

chega-se à conclusão de que, embora não havendo certeza de erros, há probabilidade de

surgirem erros. Para investigar a possibilidade de erro, temos de considerar o que acontece

quando HAB tem transições 1->0 e 0->1, e considerar que o atraso de propagação da 1ª

porta NEG é à partida desconhecido, podendo ser inferior ou superior ao atraso da

transição de HAB em relação à vertente activa de RLG.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 57: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 57

RLG

HAB

Transição HAB 1->0

RLG

HAB . RLG

CLK (Contador)

RLG

HAB

Transição HAB 0->1

RLG

HAB . RLG

CLK (Contador)

Fig.9.8 - Diagrama temporal para as transiçoes de HAB no circuito da Fig.9.6

No diagrama da Fig.9.8, considera-se a possibilidade de o atraso de propagação na

porta NEG que gera RLG ser inferior, igual ou superior ao atrazo das transições de HAB em

relação à vertente activa do relógio. Verifica-se que na transição HAB 1->0, não há

qualquer possibilidade de erro, embora a vertente activa de CLK surja tanto mais cedo

quanto mais rápida fôr a porta NEG. Mas na transição HAB 0->1, se a porta NEG tiver um

atraso superior ao atraso do sinal HAB, haverá um pulso curto de CLK a 0, o que poderá

provocar a contagem do contador quando tal não era desejado. Conclui-se que este

circuito só funciona bem (e ainda assim , com pouca fiabilidade) se a porta NEG utilizada

fôr muito rápida, com um tempo de atraso inferior ao atraso mínimo de HAB em relação à

vertente activa do relógio.

A conclusão final é a de que os circuitos com relógio porteado são em geral

susceptíveis de erros. Embora não seja de todo impossível projectar um circuito com

relógio porteado isento de erros, a exploração de todos os detalhes de temporização

é laboriosa e pode sempre acontecer que uma situação que iludiu o exame possa vir

a causar erros.

Assim, considera-se que o recurso à técnica de relógio porteado é uma técnica

incorrecta, devendo a função de habilitação ser sempre implementada com recurso

a técnicas exclusivamente síncronas.

9.2.3 - Segundo exemplo de técnicas de projecto infiáveis:

uso incorrecto de entradas adicionais assíncronas

Já vimos que muitos CIs dirigidos ao funcionamento síncrono apresentam entradas

adicionais assíncronas. É por exemplo o caso das entradas PRESET e CLEAR em flip-flops D

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 58: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 58

e JK, e também da entrada CLEAR existente em alguns CIs de contadores síncronos. O uso

primário destas entradas assíncronas é no papel de entradas de inicialização: quando o

sistema é posto sob tensão, será produzido um pulso numa linha de inicialização, o qual

mediante ligação às entradas de inicialização relevantes permitirá estabelecer o estado

inicial de algumas ou mesmo de todas as células de memória do sistema.

Salvo em casos pontuais, as entradas adicionais assíncronas não devem ser utilizadas

para outros fins além da inicialização. Esses casos pontuais justificam-se quando se trata

de funções impossíveis de implementar com circuitos integralmente síncronos; e, nestes

casos, para assegurar a fiabilidade de funcionamento em circuitos assim construidos é

necessário fazer uma análise exaustiva dos detalhes temporais.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 59: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 59

7 - Métodos estruturados de projecto de sistemas digitais

7.1 - Introdução

7.1.1 - Insuficiências do método "tradicional"

Adequado só a circuitos de muito baixa complexidade

Projectámos até agora pequenos circuitos sequenciais, como detectores de

sequências, contadores, etc., que se caracterizavam por assumirem um pequeno número

de estados distintos e por terem um número modesto de entradas de controlo.

No projecto desses circuitos usámos fundamentalmente um método sistemático

de síntese, o método "tradicional" ou "convencional". Este método apoiava-se em

diagramas e tabelas de estados como ferramentas de representação de circuitos e era

apenas orientado para soluções em torno de flip-flops e circuitos combinacionais

implementados com portas. Como todos os métodos sistemáticos, compreende uma

sequência de passos de fácil apreensão, cuja aplicação disciplinada leva o projectista das

especificações ao circuito final de forma geralmente cómoda e expedita.

No entanto, o método "tradicional" ou "convencional" revela-se insatisfatório

quando o circuito a projectar, mesmo que dirigido à implementação com flip-flops, é

complexo. Com efeito, as ferramentas "tradicionais" ou "convencionais" de descrição de

funções e de circuitos - os diagramas de estados e as tabelas de estados - tornam-se de

aplicação penosa, senão de todo impraticável, quando o número de variáveis de estado e

de variáveis de entrada ultrapassa um limite reduzido (digamos, 4 variáveis de estado e 2

ou 3 variáveis de entrada).

Incapaz de utilizar blocos funcionais mais complexos

Muito mais importante é que mesmo as funções ainda moderadamente

complexas são mais convenientemente implementadas com recurso a módulos. Esses

módulos poderão ser, no caso do projecto orientado para os circuitos standard de famílias

como a TTL, os circuitos existentes na família utilizada, ou associações simples desses

circuitos (por exemplo um módulo de contador de 8 bits implementado com 2 circuitos

integrados de contador de 4 bits). O método "tradicional" simplesmente não contempla a

utilização de primitivas de implementação que não sejam os flip-flops e as portas lógicas

vulgares.

Mas não é só a questão de poder usar primitivas de implementação mais

complexas que dá importância ao conceito de módulo. Os módulos, numa visão mais

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 60: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 60

geral, traduzem a decomposição do problema de síntese de um circuito numa estrutura

de circuitos mais simples, em que as funções dos vários módulos, convenientemente

orquestradas por um módulo especial - o módulo controlador, ou controlador de sistema -

realizam a função global proposta. Assim, os módulos podem não estar directamente

associados com circuitos integrados existentes (Quando o projecto é orientado para

implementação com lógica programável, é claro que os módulos de acção nunca estão

directamente associados com as funções dos CIs existentes. Mas mesmo neste caso, as

funções estandardizadas existentes nas famílias lógicas servem muitas vezes de guia

para a definição das sub-funções a implementar como módulos, uma vez que fornecem

um reportório de ideias pré-estabelecidas de funções elementares em termos das quais

se pode estruturar a decomposição da função global).

7.1.2 - Métodos heurísticos

Uma aproximação muito vulgar ao problema de na implementação conseguir

utilizar as funções existentes em circuitos integrados é a de seguir métodos intuitivos ou

heurísticos. Com estes métodos, que se apoiam fundamentalmente na capacidade

criativa e na experiência adquirida do projectista, chega-se típicamente à solução final

por uma sequência de tentativas. Um bom conhecimento, por parte do projectista, dos

componentes existentes permite-lhe esboçar de imediato uma solução a partir das

especificações, tirando desde logo partido dos componentes mais complexos (verifica-se

que, regra geral, o custo total de um sistema é mais baixo quando se utilizam menos

circuitos integrados, embora para diminuir o número de circuitos integrados se utilizem

circuitos integrados mais complexos, logo mais caros - isto é, o benefício económico da

redução do número de circuitos integrados mais que compensa o custo mais elevado dos

circuitos mais complexos). Segue-se um ciclo de análise-correcção, repetido tantas vezes

quantas as necessárias, até que a solução satisfaça as especificações.

Estes métodos estão nos antípodas do que se entende por um método

sistemático, ou pelo menos estruturado.

A favor deles, argumenta-se que a tarefa proposta (pelo menos quanto ao

projecto orientado para circuitos integrados standard, da família TTL ou de outra) é

intrínsecamente incondutível a um método sistemático - com efeito, o objectivo é

seleccionar e interligar um conjunto de circuitos integrados de entre os disponíveis

comercialmente, de maneira a cumprir o proposto com o mínimo de circuitos integrados.

Obviamente, os circuitos integrados existentes não constituem um qualquer reportório

estruturado sistemáticamente, antes são o resultado de uma acumulação de funções, que

num momento ou noutro foram julgadas úteis na resolução de problemas correntes, e

logo comercializáveis com rentabilidade. Assim, um método que passe pela selecção de

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 61: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 61

circuitos destes com vista a implementar uma determinada função nunca pode ser

sistemático.

Mas contra os métodos heurísticos, argumenta-se também correctamente que:

- permitem que se caia numa situação de descontrolo do tempo de projecto, pois

os ciclos de análise-correcção podem repetir-se vezes sem fim

- a qualidade da solução (bem como o tempo de projecto) está exageradamente

dependente das características individuais do projectista

- a natureza indisciplinada do método poderá conduzir a implementações difíceis

de assegurar correctas, de compreender e por conseguinte pouco condutíveis a um

processo posterior de aperfeiçoamentos ou alterações (para satisfazer alterações ou

acrescentos nas especificações) bem como torna mais difícil a identificação de possíveis

avarias do sistema.

7.1.3 - Metodologias estruturadas de projecto

A metodologia estruturada de projecto, reconhecida que está a impossibilidade

de recorrer exclusivamente a métodos sistemáticos, propõe um referencial de projecto

com o fim de permitir a aplicação dos métodos heurísticos de forma ordenada e eficiente.

É inspirada na metodologia homónima seguida no desenvolvimento de programas, que

propõe que o desenvolvimento destes se faça do "topo para a base", por refinamentos

sucessivos, recorrendo no final a um conjunto restrito de "construções" modulares, com

interfaces bem definidos, fáceis de compreender e de verificar correctas.

Para frisar bem a diferença em relação aos métodos puramente heurísticos,

podemos dizer que:

- a metodologia estruturada confina os passos heurísticos aos pontos onde eles

são indispensáveis (veremos que esses pontos são fundamentalmente a partição de

funções e a escolha de componentes).

- a metodologia estruturada evita que o próprio método de projecto seja também

deixado à "inspiração" heurística.

Níveis de projecto

Como já se disse, cada técnica de projecto tem validade a um certo nível de

complexidade - por exemplo, o "método tradicional" é adequado ao projecto de circuitos

simples, com poucas variáveis de estado e poucas entradas.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 62: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 62

Para situar a "metodologia estruturada" (que iremos seguidamente desenvolver)

em relação aos outros níveis de projecto, diremos que os sistemas/funções a implementar

com esta metodologia são caracterizados por:

- uma complexidade suficientemente elevada para justificar a utilização de

funções como as encontradas nos circuitos MSI (multiplexers, adicionadores, contadores,

…) e LSI

- uma complexidade bastante abaixo da que exige o emprego de

microprocessadores e dos seus circuitos periféricos associados, para já não falar de

combinações de placas de circuitos baseados em microprocessadores (que é o caso de

um microcomputador pessoal, um sistema de controlo industrial, …).

Aliás, existem sistemas cuja complexidade justificaria o uso de um

microprocessador, mas que por outro lado apresentam requisitos de velocidade que são

incompatíveis com a implementação em microprocessador. Com efeito, para que um

microprocessador mude o estado de uma das linhas de um registo de saída

(normalmente implementados em circuitos associados ao microprocessador, mas que lhe

são externos) é necessário que sejam executadas várias instruções, e cada uma delas

desenrola-se ao longo de vários períodos do relógio do microprocessador.

Mesmo que o relógio do microprocessador pudesse ser tão rápido como o limite

máximo de frequência de circuitos TTL, as saídas do microprocessador teriam tempos de

reacção superiores por um factor de dez ou mais em relação a uma implementação

alternativa com circuitos TTL. Mas verifica-se que as frequências de relógio dos

microprocessadores mais vulgares ficam por valores da ordem das dez vezes inferiores

aos limites de frequência em TTL, pelo que a diferença de velocidade entre uma

implementação TTL e uma implementação com microprocessador pode chegar a um

factor de 100.

Assim, estes sistemas de complexidade já considerável, mas cujos requisitos de

velocidade não permitem o uso de microprocessadores são também candidatos ao

desenvolvimento com uma metodologia estruturada semelhante à que vai ser

apresentada neste capítulo.

Arquitectura de referência

Para a implementação dos sistemas deste nível de complexidade, empregaremos

uma arquitectura cujos elementos constituintes são:

- os vários módulos de acção, que são circuitos como contadores,

comparadores, etc., ou associações simples destes circuitos; cada módulo de acção

desempenha um papel bem definido e requer sinais de controlo (tais como os sinais LOAD

e COUNT ENABLE num contador síncrono) que lhe devem ser fornecidos por outro

circuito.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 63: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 63

- o módulo controlador que, fornecendo os sinais de controlo dos módulos de

acção, orquestra a operação de todo o sistema.

linhas de contrololinhas de controlo

linhas de informação

linhas de informação

Módulo controlador

Módulo de acção nº1

Módulo de acção nº2

Módulo de acção nº4

Módulo de acção nº3

Fig.1 - Arquitectura de referência

Como se vê na figura, o módulo controlador produz as linhas de controlo para os

módulos de acção e por outro lado pode receber de alguns destes linhas de informação

que irão influenciar a sua evolução.

A implementação de um sistema deste nível passa então pelo desenho de um

diagrama de blocos em que aparece um módulo controlador e vários módulos de acção.

Obviamente, especificadas à partida as funções que o sistema deverá cumprir haverá

várias maneiras alternativas de as particionar e atribuir aos diversos módulos de acção.

Assim, o diagrama de blocos exprime também as decisões feitas quanto à partição de

funções - não só entre os módulos de acção, mas também entre estes e o módulo

controlador, pois haverá sub-funções que tanto podem "residir" num módulo de acção

como no módulo controlador.

Os sistemas que vamos estudar serão integralmente síncronos a menos de

eventuais mecanismos de inicialização. Logo, o módulo controlador será um circuito

síncrono, bem como o serão os módulos de acção que sejam sequenciais.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 64: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 64

7.2 - Passos do projecto

7.2.1 - Estudo e validação das especificações

Embora possa acontecer que as especificações de um sistema sejam elaboradas

pela mesma pessoa (ou equipa) que o vai implementar, deve considerar-se que existem

duas entidades distintas - o especificador e o implementador - o que dá lugar a um ponto

definido do projecto que é a recepção das especificações.

Uma vez as especificações recebidas, a primeira fase do projecto é a de estudo e

validação das especificações, no sentido de determinar:

- se todos os pontos estão suficientemente claros e definidos

- se contêm incongruências

- se é possível uma formulação mais simples das funções a executar (acontece

amíude que o especificador produza uma formulação das especificações

desnecessáriamente complicada; o implementador, ao abordar o problema de uma forma

mais estruturada, poderá concluir - ou suspeitar - que as especificações são susceptíveis

de uma formulação mais simples)

Pode acontecer que as especificações não devam ser validadas (aceites), mas

sim devolvidas ao especificador para que proceda à sua reformulação ou clarificação.

7.2.2 - Partição funcional

Um dos passos fulcrais no projecto é a partição de funções, descrita por um

diagrama de blocos em que se definem os vários módulos de acção e os sinais que fluem

de uns para os outros e de/para o módulo controlador.

Os módulos de acção podem ser definidos sem ser em relação directa com os

circuitos integrados standard - particularmente quando o projecto fôr orientado também

para a utilização de PALs ou outros dispositivos programáveis - mas há conveniência em

escolher funções do tipo das encontradas nesses circuitos standard.

Este é claramente um passo desenvolvido segundo métodos heurísticos - o que

também pode trazer consigo um processo de tentativa e erro. Com efeito, é natural que à

1ª tentativa não se obtenha uma versão satisfatória, e que se pretenda explorar outras

possibilidades.

Este passo será ilustrado em exemplos.

7.2.3 - Definição da sequência de operações

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 65: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 65

Ao mesmo tempo que se faz a partição funcional, define-se a sequência de

operações a serem efectuadas pelos vários módulos de acção.

Um mesmo módulo pode executar diversas operações durante as várias fases do

funcionamento do circuito - por exemplo um contador pode ora fazer uma operação de

carregamento, ora de apagamento, ora de contagem.

A sequência de acções pode ser representada por um diagrama de fluxo. No

desenho do diagrama de fluxo, também é natural que à 1ª tentativa não se obtenha uma

versão satisfatória - mas essa 1ª tentativa deve ser entendida como um passo necessário

para fazer sobressair deficiências que serão corrigidas em tentativas posteriores.

7.2.4 - Implementação dos módulos de acção

Haverá casos em que este passo é de execução trivial. Isto acontece quando a

função do módulo de acção é cumprida por um circuito integrado standard. A situação é

práticamente idêntica quando a função do módulo corresponde a uma expansão de uma

função disponível em circuito integrado - poderíamos ter por exemplo uma função

"comparação de 2 palavras de 8 bits" mas dispôr de CIs de comparadores de apenas 4

bits. Nestes casos, é usual que os próprios CIs já incluam disposições para facilitar a

expansão, e a sua folha de especificações muitas vezes inclui exemplos de diagramas

para circuitos de expansão.

7.2.5 - Definição da sequência temporal dos sinais de controlo

Este passo corresponde a elaborar um diagrama temporal em que figuram os

sinais de controlo dos módulos de acção. É este diagrama temporal, em conjunção com o

diagrama de fluxo, que define as funções de saída do módulo controlador.

7.2.6 - Implementação do módulo controlador

Com base na implementação dos módulos de acção e na sequência temporal dos

sinais de controlo, é possível elaborar um diagrama de fluxo detalhado, que toma já

em conta as operações possibilitadas por cada módulo de acção e as entradas de

controlo efectivamente existentes.

O diagrama de fluxo detalhado pode diferir do diagrama de fluxo inicial por

várias razões:

a) Por vezes chega-se à conclusão de que algumas entradas de controlo dos

módulos de acção podem ser ligadas directamente a entradas externas do sistema.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 66: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 66

Neste caso, se bem que conceitualmente essas entradas de controlo dos módulos

de acção continuem a ser consideradas como saídas do módulo controlador (que para as

produzir se limita a "copiar" alguns dos seus sinais de entrada), não interessa que esses

sinais apareçam no diagrama de fluxo detalhado que vai servir para basear a síntese do

módulo controlador. Por este motivo, no diagrama de fluxo detalhado apenas aparecem

(como saídas do módulo controlador) as entradas de controlo dos módulos de acção que

efectivamente precisem de ser produzidas pela máquina de estados que constitui o

módulo controlador (sobre o uso do diagrama de fluxo detalhado, ver também 7.3.2).

b) É possível que a um bloco-acção complexo do diagrama de fluxo inicial

corresponda uma sequência de blocos-acção no diagrama de fluxo detalhado, por causa

de a acção complexa original dever ser executada como uma série de passos pelos

módulos de acção tal como foram implementados. É importante notar que o diagrama de

fluxo inicial é desenhado numa altura em que ainda não se sabe como serão

implementados os módulos de acção, ao passo que o diagrama de fluxo detalhado é

desenhado já após a implementação dos módulos de acção.

c) Mais raramente, ao implementar os módulos de acção podemos detectar pela

primeira vez a possibilidade de ocorrer uma qualquer situação de excepção, não prevista

na altura em que se desenhou o diagrama de fluxo inicial (um exemplo: num sistema que

faz operações aritméticas, pode acontecer que só na implementação dos módulos de

acção se detecte que existe a possibilidade de ocorrer ultrapassagem de capacidade -

overflow - dos dispositivos usados para a implementação) e as acções necessárias para

tratar essa situação devem ser incluidas no diagrama de fluxo detalhado.

Também pode acontecer o contrário: após a implementação concluir-se que uma

situação de excepção que tinha prudentemente sido prevista no diagrama de fluxo inicial

afinal nunca acontece.

Mas a verdade é que para não prejudicar o conceito de que o diagrama de fluxo

inicial é uma representação fiel (embora não totalmente detalhada) do funcionamento do

sistema, qualquer destes dois tipos de constatação deve dar origem a um redesenho do

diagrama de fluxo inicial. Assim, qualquer caso dos tipos mencionados em c) deve ser

considerado não como uma explicação para diferenças entre o diagrama de fluxo inicial e

o diagrama de fluxo detalhado, mas sim como razão suficiente para redesenhar o

diagrama de fluxo inicial e voltar atrás correspondentemente no processo de síntese.

Em sistemas relativamente simples, pode acontecer que o módulo controlador

seja um circuito muito simples, sintetizável pelo "método tradicional" - em que as

ferramentas de representação são o diagrama de estados e a tabela de transição, e as

ferramentas de síntese são os mapas (de Karnaugh) de estado seguinte e de excitação.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 67: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 67

Para circuitos levemente mais complexos, como ferramenta de representação

pode ser utilizado o diagrama de estados reduzido e como ferramentas de síntese os

mapas reduzidos de estado seguinte e de excitação (que estudaremos mais adiante).

Módulos controladores mais complexos podem ser sintetizados com base em

circuitos ROM, em circuitos especiais programáveis como os sequenciadores, ou no topo

de complexidade, com microprocessadores rápidos.

7.2.7 - Refinamento do projecto

Finalmente, e se bem que este aspecto não vá ser explicitado nos exemplos que

servirão de núcleo a este capítulo, é importante reconhecer que na prática corrente o

projecto de sistemas modulares é quase sempre sujeito a um processo de refinamentos

sucessivos.

Por exemplo, é bem provável a seguinte situação: após obter uma "partição

funcional" e "definição de sequência de operações" satisfatórios, o projectista passa à

"Implementação dos módulos de acção", e o contacto com os problemas deste passo de

projecto pode sugerir-lhe uma "Partição funcional" nítidamente superior (maior

simplicidade, etc.) à inicial.

Confrontado com uma situação deste tipo, o projectista pode ser tentado a

simplesmente desprezar o conceito de "partição funcional", e a iniciar um processo de

remanejamento dos módulos, à medida do que lhe parecer mais conveniente.

Este procedimento é incorrecto. O procedimento correcto será o seguinte: se o

projectista, ponderando as vantagens de uma nova "partição funcional", decidir que vale

a pena refazer a "partição funcional", deve voltar atrás no projecto até esse passo, e

refazer tudo desde aí.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 68: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 68

7.2.8 - Sequência de passos de projecto

Podemos então definir uma sequência de passos:

1 - Estudo e validação das especificações

Deve chegar-se a uma descrição perfeitamente clara das funções que se

pretende que o sistema execute. Essa descrição será apoiada num esboço de unidade

global para o sistema - com indicação de entradas e saídas - como se exemplifica na

figura a seguir:

Início

Sensor A

Sensor B

Sensor C

Relógio

Pré-aviso

Desactivação

Fig.2 - Exemplo de esboço de unidade global

Muitas vezes também é conveniente elaborar um diagrama temporal que

descreva as relações de temporização entre as várias entradas ou entre as entradas e as

saídas.

2 - Decomposição da unidade global esboçada em módulos de acção

e módulo controlador

A partição de funções deverá levar a uma definição clara das funções de cada

módulo de acção. Este é o critério fundamental na partição de funções, não se dando

importância, numa primeira fase, ao facto de as funções serem ou não implementáveis

directamente com os circuitos integrados disponíveis (pois a preocupação de procurar

circuitos que implementem directamente subfunções acaba por tender a influenciar a

definição dessas funções, prejudicando a clareza da estrutura do particionamento).

Ao mesmo tempo que se define um particionamento em módulos de acção

também se define um particionamento das tarefas no tempo. Assim, elabora-se ao

mesmo tempo o diagrama de blocos inicial e o diagrama de fluxo.

3 - Implementação dos módulos de acção

Cada módulo de acção é implementado com base nos circuitos integrados MSI

/LSI standard da família lógica que se está a utilizar, em flip-flops e portas lógicas, bem

como possívelmente em circuitos programáveis tais como PALs.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 69: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 69

4 - Estabelecimento das relações temporais dos sinais de controlo

Também com base na implementação dos módulos de acção é possível elaborar

um diagrama temporal para os sinais de controlo que eles requerem.

Podemos em seguida passar do diagrama de fluxo ao diagrama de fluxo

detalhado.

5 - Síntese do módulo controlador

Como já vimos, os métodos de implementação variam muito com o nível de

complexidade atingido. Nos casos mais simples bastarão as ferramentas tradicionais dos

diagramas de estados e dos mapas de estado seguinte e de excitação, mas utilizaremos

sempre - para uniformidade - o diagrama de estados reduzido.

7.3 - Ferramentas de projecto

7.3.1 - Diagramas de fluxo

Elementos

Os elementos de um diagrama de fluxo são os seguintes:

Denota usualmente a situação inicial, de partida

Denota ACÇÕES executadas neste ponto do fluxo

Denota DECISÕES de fluxo

Fig.3 - Elementos dos diagramas de fluxo

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 70: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 70

Na compreensão dos diagramas de fluxo é essencial reconhecer que a passagem

de um elemento ao seguinte não traduz necessáriamente eventos separados no tempo -

isto é, em períodos sucessivos do relógio.

Por exemplo, seja o seguinte diagrama de fluxo (este sistema é projectado para

encontrar o maior dos valores armazenados em 3 registos A, B e C. Compara em 1º lugar

A e B; o resultado desta comparação vai determinar qual a comparação seguinte):

A >B?

Comparar A com B

Comparar B com C

Comparar A com C

sim não

Durante a operação do circuito, a 2ª comparação (A<->C ou B<->C) será feita no

ciclo de relógio imediatamente a seguir ao ciclo utilizado para a 1ª comparação (A<->B);

isto é, a decisão de salto não ocupa nenhum ciclo de relógio.

O diagrama de fluxo inicial normalmente só tem sentido se associado a um

diagrama de blocos (partição de funções) pois as acções que aparecem no diagrama de

fluxo são específicas dos blocos de acção escolhidos.

7.3.2 - Diagrama de fluxo detalhado

O diagrama de fluxo detalhado está ligado com o processo de implementação

dos módulos de acção. Assim, as acções que figuram no diagrama de fluxo detalhado

referem-se já à implementação dos módulos de acção que foi feita.

Opção quanto ao que convém representar no diagrama de fluxo detalhado

O diagrama de fluxo detalhado é desenhado já com um conhecimento

pormenorizado dos requisitos dos módulos de acção em termos dos sinais de controlo

que realmente devem ser produzidos pelo módulo controlador. Pode acontecer que

algum, ou alguns, dos sinais de controlo para os módulos de acção possam ser gerados

simplesmente por ligação a sinais de entrada para o sistema (veremos que isto acontece

no 1º exemplo de aplicação que estudaremos).

Como o diagrama de fluxo detalhado vai servir fundamentalmente para basear o

projecto da máquina de estados que constitui o módulo controlador, põe-se a questão de

fazer uma opção quanto ao que é representado no diagrama de fluxo detalhado:

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 71: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 71

- ou todas as operações de todos os módulos do sistema

- ou apenas os comandos (concretizados no sequenciamento dos sinais de

controlo) emitidos pelo módulo controlador, deixando de fora acções dos módulos de

acção que não requeiram a emissão de comandos pelo módulo controlador.

Como um dos usos do diagrama de fluxo detalhado será o de permitir reconhecer

os estados que deverão figurar no diagrama de estados reduzido, consideramos a 2ª

opção do uso do diagrama de fluxo detalhado como indispensável. No caso de projectos

especialmente complexos, pode também utilizar-se o diagrama de fluxo detalhado para

pormenorizar todas as operações, produzindo-se então dois diagramas de fluxo

detalhados em que um inclui algumas operações além das que figuram no outro.

Blocos-acção com saídas condicionais

No desenho do diagrama de fluxo detalhado deve utilizar-se tanto quanto

possível o conceito de saídas condicionais, desde que isso não prejudique a clareza do

diagrama. Isto é, as estruturas do tipo das da esquerda, na Fig.4, devem ser substituidas

por um bloco do tipo do da direita (se a especificação não exigir que "Acção 1" e "Acção

2" sejam executadas em ciclos de relógio diferentes):

Teste ?Sim

Não

Acção 1

Acção 2

Acção 1

Acção 2? (Teste)

Fig.4 - Representação das saídas condicionais

A acção 2 está associada a saídas condicionais, o que é representado pelo "?".

Continua a ser necessário especificar qual o teste feito.

Esta substituição é importante, pois cada bloco-acção geralmente vai dar origem

a um estado, e a figura da esquerda poderia levar a que se incluisse um estado

desnecessário.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 72: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 72

7.3.3 - Diagrama de estados reduzido

O diagrama de estados reduzido (MDS diagram, de "Mnemonic-Documented

State diagram", na terminologia de "An Engineering Approach to Digital Design", W. I.

Fletcher, 1980) apresenta algumas diferenças de notação em relação aos diagramas de

estados convencionais.

Chamamos-lhe diagrama de estados reduzido porque se presta especialmente

bem ao preenchimento directo de mapas reduzidos.

É preferível ao diagrama de estados convencional porque este último resulta

excessivamente denso quando aplicado aos módulos controladores, para os quais na

maior parte dos casos se verifica que:

- existem muitas saídas (que são as entradas de controlo dos módulos de acção)

- é frequente que cada uma destas saídas esteja apenas asserida num ou em

poucos estados, mantendo-se deasserida em todos os outros estados (outras

variáveis estão quase sempre asseridas e só ficam deasseridas em um ou em

poucos estados)

- as saídas são muitas vezes condicionais (isto é, não são asseridas sempre que se

está num determinado estado, mas sim são asseridas em determinado estado

apenas quando as condições de entrada cumprem um certo critério).

- as decisões de transição de um estado para os possíveis estados seguintes são

muitas vezes tomadas com base no valor de apenas uma variável, mas essa

variável não é a mesma para todos os estados

Diferenças em relação ao diagrama de estados convencional

As diferenças do diagrama de estados reduzido em relação ao diagrama de

estados convencional são as seguintes:

- Os valores das saídas associados a cada estado são indicados por legendas

associadas ao próprio estado em vez de associadas aos arcos de transição que

emergem desse estado

- os valores das saídas condicionais, e também as condições que comandam as

transições, são descritos por expressões lógicas e não por enumeração das

condições de entrada para as quais são verdadeiras.

Exemplos de aplicação do diagrama de estados reduzido

Exemplo 1

O diagrama de estados convencional é particularmente pouco eficiente na

representação de saídas condicionais.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 73: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 73

Suponhamos um sistema com uma saída O1 e 3 entradas I1 I2 I3 e que do

estado A transita sempre para o estado B. No entanto, no estado A, O1 é uma saída

condicional e é 1 quando I1 I2 I3 = 010 ou quando I1 I2 I3 = 001. A representação

correspondente, em diagrama de estados convencional, seria:

A

B

1XX/0 011/0 000/0 010/1 001/1

Fig.5 - Exemplo 1 - diagrama de estados convencional

E no diagrama de estados reduzido, a representação é:

A

B

Fig.6- Exemplo 1 - diagrama de estados reduzido

Exemplo 2

Suponhamos um sistema com uma saída O1 e 3 entradas I1 I2 I3 e que do

estado A transita para o estado B quando I2 = 1 ? I3 = 1, e nos outros casos permanece

em A. No estado A, O1 é uma saída condicional e é 1 quando I2 I3 = 11. A

representação correspondente, em diagrama de estados convencional, seria:

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 74: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 74

 

A

B

X10/0 X01/0 X11/1

X00/0

Fig.7 - Exemplo 2 - diagrama de estados convencional

E no diagrama de estados reduzido, a representação é:

B

+

+

= .A

Fig.8 - Exemplo 2 - diagrama de estados reduzido

7.3.4 - Compactação da representação de saídas com comutações pouco

frequentes

Como se disse acima, nos módulos controladores muitas variáveis de saída estão

quase sempre deasseridas ou quase sempre asseridas. Assim, para maior compactação

(e também para maior clareza) emprega-se a seguinte notação:

Para representar o facto de que uma variável de saída O1 é asserida apenas

durante a permanência num estado A:

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 75: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 75

Oa

dA 1

Para representar o facto de que uma variável de saída O1 é asserida à

entrada num estado A e que permanece asserida em um ou mais dos

possíveis estados seguintes:

OaA 1

Para representar o facto de que uma variável de saída O1 é deasserida à

entrada num estado A e que permanece deasserida em um ou mais dos

possíveis estados seguintes:

OdA 1

Na figura seguinte compara-se esta forma de representação com a que tínhamos

vindo a utilizar. No diagrama da esquerda, representa-se (da maneira convencional) o

andamento de um sistema que percorre (incondicionalmente) 6 estados A, B, C, D, E, F e

que produz duas saídas (asseridas a 1) O1 e O2 ; O1 deve manter-se asserida durante

os estados B, C e D, e O2 deve estar asserida só durante a permanência no estado A. No

diagrama da direita representa-se o mesmo sistema, mas de acordo com a nova

convenção de representação; já que as variáveis só figuram nos estados em que sofrem

comutações, a representação ganha em clareza e resulta mais compacta.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 76: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 76

A

B

C

D

F

E

Formato: O1

O2

01

10

10

10

00

00A

B

C

D

F

E

Oa

d2

Oa1

Od1

Fig.9- Representação compactada das variáveis de saída

7.3.5 - Representação, no diagrama de estados reduzido e nos diagramas de

fluxo, para:

- variáveis de saída asseridas a 1

- variáveis de saída asseridas a 0

- variáveis de saída para as quais ainda não foi definido o valor de

asserção

No projecto modular de circuitos digitais é frequentemente vantajoso protelar a

decisão quanto ao valor de asserção dos sinais (ou melhor, de todos os sinais cujo valor

de asserção não seja pré-definido pelas especificações), até que se tenha feito a

implementação dos módulos de acção. Escolhendo os valores de asserção de acordo com

as implementações já realizadas, é possível conseguir economias de lógica

combinacional.

EXEMPLO:

Suponhamos um circuito em que, ao fazer a partição funcional, se definiu

um sinal Apagar, cujo papel é repôr a zero um contador que constitui um módulo

de acção. Nesta fase, não convém arbitrar o valor de asserção do sinal Apagar.

Suponhamos então que para a implementação desse módulo de acção se escolheu

o CI 74163, que dispõe de um sinal de entrada CLEAR*, asserido a 0. Tomando já

em conta esta implementação, é óbvio que se decidirmos que o sinal Apagar seja

asserido a 0 pouparemos no circuito a inclusão de um negador interposto entre o

módulo controlador (que gera o sinal Apagar) e a entrada CLEAR* do CI 74163.

Sendo assim, num estágio inicial do projecto poderemos estar a trabalhar apenas

com variáveis das quais ainda não se decidiu o valor de asserção (embora possa

acontecer que a própria especificação estabeleça já o valor de asserção de algumas das

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 77: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 77

variáveis). Num estágio mais avançado, o valor de asserção de mais algumas variáveis já

terá sido decidido.

Assim, no caso geral, teremos de representar:

- variáveis de saída asseridas a 1

- variáveis de saída asseridas a 0

- variáveis de saída para as quais ainda não foi definido o valor de asserção

Uma solução fácil seria representar só a asserção / deasserção dos sinais, sem

relação aos valores 0 e 1. Mas isto seria inconsistente com as decisões já tomadas, que

não seriam reflectidas na representação utilizada (quer seja um diagrama de fluxo, quer

um diagrama de estados).

Assim, utilizaremos nos diagramas de fluxo e nos diagramas de estados a

seguinte convenção:

Setas e , sem mais indicações, referem-se sempre a 0s e 1s.

Setas e indicam asserção e deasserção de um sinal, respectivamente.

Estes símbolos só deverão ser utilizados no caso de sinais para os quais ainda não se definiu o valor de asserção.

a

d

Assim, se CARGA fôr um sinal do qual ainda não está definido o valor de

asserção, o seguinte segmento de diagrama…

CARGAa

dEstado Y

indica que CARGA será asserido apenas durante o Estado Y.

Para o sinal APAGA* (relembrar que "*" denota um sinal asserido a 0) , que é

asserido a 0,

APAGA *a

dEstado Y

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 78: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 78

indica que APAGA* será asserido durante a permanência no estado Y.

Alternativamente (e mais correctamente, de acordo com a nossa convenção), isto poderia

ser representado por:

APAGA * Estado Y

7.3.6 - Representação, no diagrama de estados reduzido e nos diagramas de

fluxo, para:

- variáveis de entrada asseridas a 1

- variáveis de entrada asseridas a 0

- variáveis de entrada para as quais ainda não foi definido o valor de

asserção

O problema da representação dos três casos de variáveis também se põe em

relação às variáveis de entrada. Iremos utilizar a seguinte convenção:

Variáveis de entrada para as quais ainda não foi definido o valor de asserção

São escritas com o índice "a".

EXEMPLO:

A variável INICIO ainda não tem definido o seu valor de asserção.

O circuito transita de A para B se a variável INICIO estiver asserida e

mantém-se em A se a variável INICIO estiver deasserida.

A

B

INICIO a

INICIO a

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 79: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 79

Variáveis de entrada asseridas a 1

Variáveis de entrada asseridas a 0

São escritas sem o índice "a", e considera-se que as condições indicadas se

referem a 0s e 1s.

EXEMPLOS:

SALTA é uma variável asserida a 1. No seguinte diagrama, o circuito transita de

A para B se SALTA = 1 e permanece em A se SALTA = 0.

A

B

SALTASALTA

PERMANECE* é uma variável asserida a 0. No diagrama apresentado a seguir,

o circuito transita de A para B se PERMANECE* = 1 e continua em A se

PERMANECE* = 0

A

B

PERMANECE *

PERMANECE *

Em resumo:

De acordo com esta convenção, quer o sinal seja asserido a 1 , quer seja asserido

a 0 , a interpretação é em termos de "sinal está a 1".

No entanto, quando para o sinal ainda não se definiu o valor de asserção, a

interpretação é em termos de "sinal asserido"; para denotar o uso desta opção, sufixam-

se as mnemónicas dos sinais com o índice "a".

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 80: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 80

AQUIAQUI tenho que rever:

- os 2 exemplos do cap.7

- problemas resolvidos

- resolução dos pontos

- o trabalho prático

ver se o exemplo que tinha galho por causa do RCO depender do en.T fica melhor usando

o En. P

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 81: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 81

7.3.7 - Desenho do diagrama de estados a partir do diagrama de fluxo

detalhado

O diagrama de fluxo detalhado é obtido a partir dum reexame do diagrama de

fluxo inicial , feito à luz da implementação efectuada para os módulos de acção. O

próximo passo é o desenho do diagrama de estados.

Motivação para "contenção" do número de estados

Como o número de estados que constam do diagrama vai influenciar a

complexidade do circuito, ao desenhar o diagrama de estados deve-se procurar "conter"

o número de estados. Mas por outro lado, como já foi mencionado no capítulo 5

(relembrar por exemplo o caso dos contadores de anel), a redução do número de estados

para além de certo ponto "paga-se" com um aumento da complexidade do descodificador

de estado seguinte e do descodificador de saída. Assim, ao passarmos do diagrama de

fluxo detalhado para o diagrama de estados tentaremos reduzir o número de estados,

mas sem levar este propósito ao ponto de aumentar muito a complexidade da lógica

combinacional (por exemplo, um meio desaconselhável de reduzir o número de estados é

fazer um uso exagerado de saídas combinacionais - o que compromete a clareza do

diagrama de estados e pode acabar por redundar num custo de implementação maior por

causa da lógica combinacional requerida).

Correspondências entre estruturas do diagrama de fluxo detalhado e estruturas

do diagrama de blocos

Seria desejável definir relações consistentes de correspondência entre estruturas

do diagrama de fluxo detalhado e estruturas do diagrama de estados , pois isso permitiria

sistematizar totalmente o desenho do diagrama de estados.

Por exemplo, interessaria saber se a relação expressa pela figura seguinte se

verifica sempre:

A

ACÇÃO

TESTE?

Sim

Não TESTE

TESTEACÇÃO

Diagrama de fluxo detalhado

Diagrama de estados

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 82: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 82

Fig.10 - Exemplo de correspondência usual entre Diagrama de fluxo detalhado e

Diagrama de estados

Mas constata-se que não há regras rigorosas de correspondência. Pode apenas

dizer-se que na maioria dos casos:

1 - A um bloco-teste geralmente não corresponde um estado (mas sim o conjunto de arcos de transição emergentes de um determinado estado)

2 - A um bloco-acção geralmente corresponde um e só um estado

Mas em muitos casos estas correspondências não são verificadas. As excepções à

2ª correspondência ocorrem mais frequentemente, e no caso geral um bloco-acção pode:

- corresponder a um único estado

- corresponder a vários estados

- ou partilhar um estado em conjunto com vários outros blocos-acção

Aliás, as correspondências sistemáticas entre o diagrama de fluxo detalhado e o

diagrama de estados não podem existir porque a informação representada nestas duas

formas não é exactamente a mesma.

Com efeito, a informação temporal está quase totalmente ausente do diagrama

de fluxo detalhado, que apenas indica a ordem de execução das acções e testes, mas é

omisso quanto a:

- se as acções e os testes podem ou não ser simultâneos

- se é necessário interpôr "intervalos de espera" (um ou mais períodos de relógio)

entre

algumas das acções e dos testes

Pelo contrário, todos estes detalhes de temporização são explicitados no

diagrama de estados.

Assim, só se pode desenhar o diagrama de estados integrando a informação do

diagrama de fluxo detalhado com os pormenores de temporização explicitados no

diagrama temporal.

É o diagrama temporal que fornece a informação para por exemplo:

- fazer corresponder vários estados a um único bloco-acção se a acção

aparecer no diagrama temporal desagregada em várias acções elementares

consecutivas.

Notar que isso já não deve poder acontecer aos blocos-acção do diagrama de

fluxo detalhado, porque aí as acções já devem estar desagregadas em acções

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 83: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 83

elementares. No entanto, intervalos entre acções, exigidos pelos dispositivos

(p.ex. uma memória RAM, que veremos no próximo capítulo) podem ainda não

estar explicitados no diagrama de fluxo detalhado, e têm de aparecer no

diagrama de estados.

- fazer corresponder um único estado a vários blocos-acção consecutivos

se o diagrama temporal indicar que podem ser simultâneos.

- fazer até corresponder um único estado a vários blocos-acção que têm

interpostos blocos-decisão se o diagrama temporal indicar que as acções podem

ser simultâneas e se fôr considerado conveniente que algumas saídas passem a

condicionais (só transformando saídas incondicionais em condicionais é que se

consegue reunir num único estado acções correspondentes a blocos-acção que

tinham entre si blocos-teste).

Veremos em seguida exemplos que ilustram estas considerações.

7.3.8 - Exemplos de desenho do diagrama de estados

1º exemplo - um caso de correspondências "normais" (cada bloco-acção

corresponde a um estado, e os blocos-teste não correspondem a nenhum

estado)

Numa determinada fase do funcionamento de um sistema, pretende-se ligar um

motor (sinal Ligar), mas só após ter decorrido um intervalo de espera, correspondente a

um certo número ("Limite") de ciclos de relógio.

Para isso implementou-se um módulo de acção designado por Contador de

espera, que dispõe de duas entradas de controlo: Apaga, que põe a contagem a zero, e

Incr, que faz a contagem avançar. O diagrama de fluxo detalhado e o diagrama temporal

são mostrados a seguir:

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 84: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 84

Apaga

Incr

Cont. = Limite ?

Ligar

SimNão

Apaga

Relógio

CONTAGEM 0 1

Incr

Lim - 1

Detecção de contagem no limite

Lim

Ligar

Lim + 1

Fig.11 - Diagrama de fluxo detalhado e diagrama temporal

Neste caso, o diagrama de estados mais natural é o da figura seguinte (seria

possível que fazendo as variáveis Incr e Ligar condicionais se conseguisse suprimir o

estado B, mas isso seria feito em prejuízo da clareza do diagrama e com provável

acréscimo do custo de implementação):

B

Cont._Lim

Incr

Cont._Lim

A Apaga

C Ligar

Apaga

Relógio

CONTAGEM 0 1

Incr

Lim - 1

Detecção de contagem no limite

Lim

Ligar

Lim + 1

Estados B B B B CA

Fig.12- Diagrama de estados e diagrama temporal

Notar que se redesenhou o diagrama temporal, mas agora com a adição do

andamento dos estados do circuito - isto é uma boa verificação de que o diagrama de

estados está correcto face ao funcionamento pretendido.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 85: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 85

2º exemplo - um caso em que a um só bloco-acção correspondem vários estados

Suponhamos que se pretende escrever uma série de células de memória

consecutivas numa memória RAM estática.

O diagrama de fluxo inicial e o diagrama de fluxo detalhado estão representados

na Fig.13 (considera-se que a incrementação do endereço é obtida asserindo o sinal Incr,

e a escrita é efectuada pulsando a 0 um sinal WE*):

Incr

End. = último ?

SimNão

WE*

Incrementar endereço

End. = último ?

SimNão

Escrever na memória

Fig.13- Diagrama de fluxo e diagrama de fluxo detalhado

No entanto, as memórias RAM estáticas exigem um intervalo de tempo desde o

instante de estabilização dos endereços até ao início da escrita, e outro intervalo desde o

fim da escrita até ao instante em que os endereços mudam. Esses intervalos não estão

explicitados no diagrama de fluxo detalhado , em que normalmente só aparecem acções,

não intervalos entre acções.

Para este sistema, e dada a necessidade dos intervalos, o diagrama de estados

poderia ser:

End_é_último

A Incr

B

C

D

WE*

End_é_último

Fig.14- Diagrama de estados

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 86: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 86

Como a passagem pelo estado B faz passar um ciclo de relógio, o intervalo desde

o instante em que os endereços são incrementados até ao início da escrita é cumprido. A

passagem por D garante o cumprimento do outro intervalo.

3º exemplo - um caso em que a blocos-teste correspondem estados

Suponhamos um problema de detecção de sequência (semelhante ao exemplo 2

da secção 5.4.1); pretende-se que sempre que seja detectada a sequência 101 (isto é,

em 3 ciclos sucessivos do relógio) numa linha Bit, seja produzido um pulso a 1 numa

saída Ident.

O diagrama de fluxo detalhado e um possível diagrama de estados são

apresentados na figura a seguir:

bit = 1?

Sim

Não

bit = 0?

Sim

Não

bit = 1?

Sim

Não

Ident

Bit = 1

A

B

C

D

Bit = 0

Bit = 0

Bit = 1

Bit = 1

Bit = 0

Ident

Fig.15- Diagrama de fluxo detalhado e diagrama de estados

Neste caso, a cada bloco-teste acabou por corresponder um estado.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 87: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 87

4º exemplo - um caso em que por recurso a saídas condicionais é possível (mas

não aconselhável) reduzir o número de estados

Imaginemos um sistema que realiza multiplicações de dois dados A e B através

do algoritmo de adição múltipla (isto é, a um total inicializado a zero o valor A é somado

B vezes). Uma nova operação é desencadeada sempre que uma entrada de controlo

NovoProduto, síncrona com o relógio, passa de 0 a 1. Considera-se que os factores A e

B são automáticamente carregados em registos quando NovoProduto vai de 0 a 1 e que

o registo de B é decrementável (sinal Decr). As operações de adição são executadas ao

ritmo de uma por ciclo de relógio se o sinal Somar estiver a 1. A inicialização do registo

Total é uma operação síncrona que é executada quando o sinal Inic está a 1. O

diagrama de fluxo inicial é o indicado na figura a seguir.

NovoProduto=1

?

Sim

Não

Inicializar Total a zero

Somar A a Total

Decrementar B

B = 0

?

Sim

Não

NovoProduto=0

?

Sim

Não

NOTA: o teste final (" NovoProduto = 0 ?") é introduzido porque NovoProduto pode ainda continuar a 1 quando acabarem as somas relativas ao produto anterior. Se este teste não fosse feito, a continuação de NovoProduto a 1 seria tomada como uma nova passagem de 0 a 1 e um novo produto seria executado, o que seria incorrecto.

Fig.16- Diagrama de fluxo detalhado

Ambos os diagramas de estados da Fig.17 estão correctos, e o da Fig.17 b) tem 2

estados em vez dos 4 estados do da Fig.17 a). Mas o diagrama de Fig.17b) perde muito

em clareza, e é possível que tenha um custo de implementação mais elevado. Neste

caso, considerar-se-ia mais recomendável o diagrama de estados da Fig.17 a).

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 88: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 88

ANovoProduto

SOMAR

NovoProduto

B

CB_Zero

B_Zero

DECR

DNovoProduto

NovoProduto

INIC ANovoProduto

NovoProduto

INIC = NovoProduto

SOMAR C

B_Zero

DECR

= B_Zero

= B_Zero

. NovoProdutoB_Zero+NovoProduto

Fig.17-a) Fig.17-b)

7.4 - Primeiros exemplos de aplicação

EXEMPLO 1

Especificação

Pretende-se implementar um circuito sequencial que compare palavras de 8 bits

X (que lhe vão sendo fornecidas) a uma palavra Y (que foi préviamente memorizada pelo

circuito). A comparação considera-se positiva (devendo a saída IGUAL ficar a 1) se

deslocando recirculantemente a palavra Y um número adequado de vezes se conseguir

uma palavra igual à X.

O circuito tem uma entrada síncrona COMPARA que indica que foi fornecida uma

nova palavra X e que deve ser desencadeada a comparação.

Outra entrada síncrona - NOVOPADRÃO - indica que o padrão de comparação Y

passa a ser uma nova palavra NovoY fornecida externamente. Considera-se que

NOVOPADRÃO nunca é asserido enquanto está a decorrer uma comparação.

A saída IGUAL deve entrar em validade o menor número possível de ciclos de

relógio após ter sido asserido COMPARA e manter-se em validade pelo menos até

COMPARA ser novamente asserido (após ter sido deasserido depois do fim do processo

de comparações).

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 89: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 89

O sinal COMPARA é síncrono com o relógio do sistema e a palavra X está válida

durante todo o tempo em que COMPARA estiver asserido. COMPARA está asserido

durante pelo menos 10 ciclos de relógio (o que se considera suficiente para que todo o

processo de comparação se desenrole com COMPARA asserido).

Na operação de carregamento, o sinal NOVOPADRÃO é síncrono com o relógio e

o valor de NovoY está válido durante todo o tempo em que NOVOPADRÃO estiver

asserido.

Os sinais COMPARA, NOVOPADRÃO e IGUAL são asseridos a 1.

1º PASSO - Estudo e validação das especificações

Sendo a palavra-padrão Y = { Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 }

e a palavra a comparar X = { X7 X6 X5 X4 X3 X2 X1 X0 }

o sinal IGUAL é 1 quando:

{ X7 X6 X5 X4 X3 X2 X1 X0 } = { Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 }

ou também quando:

{ X7 X6 X5 X4 X3 X2 X1 X0 } = { Y0 Y7 Y6 Y5 Y4 Y3 Y2 Y1 }

ou quando:

{ X7 X6 X5 X4 X3 X2 X1 X0 } = { Y1 Y0 Y7 Y6 Y5 Y4 Y3 Y2 }

………………

O sinal IGUAL podia ser gerado combinatorialmente, se o circuito fizesse em

simultâneo as 8 comparações:

{ X7 X6 X5 X4 X3 X2 X1 X0 } COM { Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 }

{ X7 X6 X5 X4 X3 X2 X1 X0 } COM { Y0 Y7 Y6 Y5 Y4 Y3 Y2 Y1 }

{ X7 X6 X5 X4 X3 X2 X1 X0 } COM { Y1 Y0 Y7 Y6 Y5 Y4 Y3 Y2 }

………………

Um circuito assim seria extremamente gaspilhador, exigindo 64 comparadores

elementares (de 1:1 bit), ou então 16 circuitos integrados 7485.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 90: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 90

Assim, o que se pretende é um circuito que faça sucessivamente as

comparações:

{ X7 X6 X5 X4 X3 X2 X1 X0 } COM { Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 }

{ X7 X6 X5 X4 X3 X2 X1 X0 } COM { Y0 Y7 Y6 Y5 Y4 Y3 Y2 Y1 }

{ X7 X6 X5 X4 X3 X2 X1 X0 } COM { Y1 Y0 Y7 Y6 Y5 Y4 Y3 Y2 }

………………

óbviamente só podendo apresentar um resultado válido após 8 ciclos de

comparação (que necessitarão cada um de um ciclo de relógio).

Os diagramas temporais que explicitam as relações de temporização entre

entradas e saídas do circuito são os seguintes:

Compara

X

IGUAL

Dado X

Saída anterior

1 2 3 4 5 6 7 8

Válido

Relógio

9

NOTA: neste ponto do projecto ainda não se pode definir a altura exacta em que o sinal IGUAL ficará válido, pois isso depende da implementação que vamos fazer.

NOTA: a numeração indica o número de ocorrência da vertente após a asserção do sinal COMPARA

10

Fig. 18 - Diagrama temporal para o processo de comparação

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 91: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 91

NovoPadrão

NovoY

Relógio

Válido

Fig. 19- Diagrama temporal para o carregamento de novo padrão de comparação

O esboço da unidade global, com indicação de entradas e saída, está na Fig.20.

8

X

8Novo Y

Compara

NovoPadrão

Relógio

Circuito de

comparação

IGUAL

Fig. 20 - Esboço da unidade global

2ºPASSO - Decomposição da unidade global em módulos de acção e

módulo controlador

O problema principal é o de comparar a palavra X com versões sucessivamente

deslocadas da palavra Y. Para fazer cada comparação podemos utilizar um comparador

combinacional de 8 bits (que constituirá pois um dos módulos de acção) mas é necessário

um dispositivo capaz de:

- fazer os deslocamentos sucessivos da palavra Y

- preservar o valor de Y para um futuro ciclo de comparações

Isto pode ser conseguido com um registo de deslocamento, recirculante, de 8

bits. Esse registo deve ter a capacidade de carregamento em paralelo.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 92: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 92

O processo de comparação deve ser concluído após 8 ciclos, o que pode ser

controlado pelo próprio módulo controlador ou então por um contador de ciclos que

constitui um outro módulo de acção. Seguimos esta segunda opção.

Finalmente, é necessário memorizar a ocorrência de uma (qualquer) comparação

elementar positiva, o que leva a um outro módulo de acção. Este módulo deve ser capaz

de ser posto a um estado inicial e de memorizar a ocorrência de uma comparação

positiva, em qualquer um dos 8 passos.

Diagrama de blocos - partição funcional

8

X

8Y C

om

pa

rad

or

de

8 b

its

Reg. de deslocamento de 8 bits recirculante

Novo Y

Ca

rre

ga

De

slo

ca

Módulo controlador

Compara

NovoPadrão

Relógio

Relógio

CP

Memorização de comparação

positiva

Inicialização

JáHouveIgual

Relógio

Contador de ciclos

Ap

ag

a

Fim

De

Co

nta

ge

m

IGUAL

Habilitação

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 93: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 93

Fig.21 - Diagrama de blocos que exprime a partição funcional

O módulo Memorização de comparação positiva dispõe de uma entrada de

controlo Habilitação, que quando asserida permitirá a memorização e quando

deasserida não permitirá a memorização. Este módulo pode então ser controlado de

maneira a memorizar a "ocorrência de comparação positiva" apenas nas alturas em que

isso fôr desejado.

Como é óbvio, este diagrama de blocos corresponde a uma determinada maneira

(que é apenas uma de várias possíveis) de resolver o problema, e que deve ser

documentada por um diagrama de fluxo.

Diagrama de fluxo

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 94: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 94

NovoPadrão?Sim

Não

Não

Início

Contador de Ciclos <- 0

Mem. de Comp. Pos. <- 0

Carrega Novo Y

Compara ?

X = Y ?Sim

NãoMem.Comp <- 1

Incrementa CONT. CICLOS

desloca Y

CONT. = 8 ?Não

Compara ?

Não

Sim

Sim

Sim

Fig. 22 - Diagrama de fluxo inicial

Notar que no fim do diagrama há um ciclo de espera pela condição "COMPARA

deasserido". Este ciclo de espera é necessário porque se se passasse imediatamente à

situação inicial a eventual continuação da asserção de COMPARA (relembrar que a

especificação diz "COMPARA está asserido durante pelo menos 10 ciclos de relógio")

funcionaria como nova asserção e desencadearia novo ciclo de comparação.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 95: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 95

3º PASSO - Implementação dos módulos de acção

Comparador de 8 bits

A0A1A2

7485

A3

A=BB0B1B2B3

A>Bin

A=Bin

A<Bin

X0X1X2X3

Y0Y1Y2Y3

A0A1A2

7485

A3

B0B1B2B3

X4X5X6X7

Y4Y5Y6Y7

01

1

1

1

1

0

A>Bin

A=Bin

A<Bin

02

2

2

1

0

A=B2

X = Y

Fig.23 - Módulo "Comparador de 8 bits"

Registo de deslocamento recirculante de 8 bits

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 96: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 96

QA QB QC QD

Y0 Y1 Y2 Y3

A B C D

y0 y1 y2 y3

S1 S0

QA QB QC QD

Y4 Y5 Y6 Y7

A B C D

y4 y5 y6 y7

S1 S0

Clear

Left Sh. S.Inp.Right Sh. S.Inp.

Clock

74194 "1" "1"Left Sh. S.Inp.Right Sh. S.Inp.

Clock

74194

"1"Clear

"1"

NovoY

S0S1 Carreg. 1 1

Desl.Dir. 0 1 Conglto 0 0

S1 S0

Fig.24- Módulo " Registo de deslocamento recirculante de 8 bits"

Memorização de comparação positiva

É um circuito síncrono de memória de um bit, com lógica combinacional

adicional.

As funções a serem cumpridas por este módulo são as seguintes:

- inicialização síncrona (passagem a 0 incondicional, quando o sinal Inicialização

estiver asserido)

- passagem a 1 condicional (caso CP=1; CP é o resultado de cada comparação),

quando o sinal Habilitação estiver asserido

- manutenção do valor quando Habilitação estiver deasserido, e também

quando Habilitação estiver asserido, mas CP estiver a 0.

Temos assim uma especificação verbal do estado seguinte da célula de memória

utilizada neste módulo. Optando pela implementação com um flip-flop Q, podemos

preencher imediatamente uma tabela de verdade para a entrada D (vamos utilizar uma

tabela de verdade reduzida em Q, que é a saída do flip-flop; por outro lado, vamos

começar por supôr que ambas as variáveis Inicialização e Habilitação são asseridas a

1, e só depois decidiremos se há conveniência em fazer qualquer delas asserida a 0):

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 97: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 97

Inicialização Habilitação CP D

1 X X 0

0 0 X Q

0 1 0 Q

0 1 1 1

E daqui podemos preencher o respectivo mapa de Karnaugh e extrair a

expressão minimizada:

CPHabilitação

Inicialização

Q Q 1 Q

0 0 0 0

Habilitação . CP . Inicialização

Q . Inicialização

InicializaçãoD = ( Q + Habilitação . CP ) .

Como a variável Inicialização (que tínhamos inicialmente suposto asserida a 1)

aparece complementada nesta expressão, podemos arbitrar que essa variável é asserida

a 0 e economizar uma porta de negador.

CLR

PRD Q

"1"

"1"CP

Inicialização*

Relógio

Habilitação

Fig.25 - Módulo "Memorização de comparação positiva"

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 98: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 98

Contador de ciclos

Utilizaremos um contador síncrono, preferívelmente um que já conheçamos - que

é o caso do 74163. Como podemos ver do Diagrama de fluxo, as operações que o

Contador de ciclos deverá fazer são o apagamento e a contagem. Aliás, para simplificar o

controlo deste módulo, podemos admitir que ele conte em todos os ciclos de relógio

excepto aqueles em que faz o apagamento .

A operação CLEAR (apagamento) do 74163 é síncrona e sobrepõe-se a todas as

funções comandadas pelas outras entradas de controlo; a entrada Clear é asserida a 0.

Assim, a operação correspondente ao sinal de controlo Apaga (do diagrama de blocos /

partição funcional) pode ser obtida por simples ligação do sinal Apaga à entrada Clear do

74163, mas Apaga será então um sinal asserido a 0, pelo que a sua mnemónica correcta

será Apaga* (como ficou estabelecido no 2º Capítulo, os sinais asseridos a 0 terão a sua

mnemónica acrescida do sufixo "*"; os fabricantes de CIs preferem muitas vezes assinalar

a asserção a 0 por meio de uma barra de negação aposta à mnemónica - é por isto que o

sinal aparece designado por Clear no diagrama de pinos apresentado pelo fabricante). As

outras entradas de controlo deverão receber valores fixos de maneira a que quando

Apaga* estiver deasserido o contador conte normalmente; as ligações fixas serão então:

ENABLE P , ENABLE T …a 1

Load …a 1

O diagrama deste módulo será pois o seguinte:

QA

QB

QC

QD

Clear

Relógio

Apaga *74163

Load"1"

En P En T

"1"

"1"A B C D

"1"

Circuito combinacional

FimDeContagem

Fig.26- Módulo "Contador de ciclos"

A contagem a que corresponde o sinal FimDeContagem ainda não foi

determinada (será escolhida como a mais conveniente em termos da simplicidade do

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 99: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 99

módulo controlador) - fica indicado apenas que há um "circuito combinacional" para este

efeito.

4º PASSO - Estabelecimento das relações temporais dos sinais de controlo.

O módulo Comparador de 8 bits não necessita de sinais de controlo - pois é

suposto estar sempre no mesmo modo de funcionamento.

O módulo Memorização de comparação positiva recebe do módulo

controlador duas linhas de controlo: Inicialização* e Habilitação.

Inicialização*, de acordo com o diagrama de fluxo, deve ser asserido após

COMPARA passar a asserido, mas apenas durante um período de relógio.

Habilitação deve em seguida ser asserido durante 8 períodos de relógio para

permitir a memorização de eventuais comparações positivas com as versões de Y

sucessivamente deslocadas. Aliás, o início da asserção de Habilitação pode ocorrer já no

período de relógio em que Inicialização* é asserido.

Finalmente, tanto Inicialização* como Habilitação devem permanecer

deasseridos até que COMPARA seja novamente asserido.

O módulo Contador de ciclos deve receber a entrada Apaga* asserida pelo

menos durante um período de relógio antes que comece o processo de comparações;

isto, para que quando começa o processo de comparações o contador esteja sempre na

posição de partida, que é a contagem 0.

O seguinte diagrama indica o funcionamento obtido se se identificar o sinal

Apaga* com o sinal COMPARA (este sinal Apaga* está ligado à entrada Clear do 74163,

pelo que é asserido a 0).

Compara

1

Relógio

1 2 3 4 5 6 7 80 9 …Saídas do contador

2 3 4 5 6 7 8 9 10

Fig.27 - Evolução das saídas do "Contador de ciclos"

Verifica-se (relembre-se que no 74163 a operação de apagamento tem

precedência sobre a operação de contagem - isto é, quando CLEAR está asserido, o

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 100: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 100

74163 é colocado a 0000 na próxima vertente activa do relógio, independentemente do

estado das outras entradas de controlo) que o contador começa em 0 e indica sempre o

número de ciclos de relógio ocorridos após a asserção de Compara, o que satisfaz a

função atribuida a este módulo - assim, o sinal Apaga* pode simplesmente ser ligado à

entrada COMPARA. Note-se no entanto que tomando rigorosamente o conceito de

módulo controlador e módulos de acção isto seria interpretado como sendo o módulo

controlador a fornecer ao circuito de Contador de ciclos um sinal de controlo que "só por

acaso" é igual ao sinal COMPARA.

Registo de deslocamento recirculante - Em primeira análise, pareceria que

este módulo devesse operar em três modos de funcionamento:

- deslocamento: durante os 8 períodos de relógio em que há as comparações

- carregamento: quando é asserido o sinal NovoPadrão

- congelamento: durante o resto do tempo

Este último modo de funcionamento serviria para fazer com que o estado do

Registo de deslocamento Y fosse sempre o mesmo quando se dá início a uma

sequência de comparação.

Na realidade, o modo de congelamento não é necessário. Com efeito, é

indiferente o facto de a palavra Y, em relação à palavra originalmente carregada, ter

menos ou mais deslocamentos - como haverá comparações com as 8 versões deslocadas

recirculantemente, o resultado final é independente do deslocamento que a palavra já

tivesse no início do processo. Assim, sendo indiferente o número de deslocamentos entre

duas sequências de comparação, este módulo pode estar sempre no modo deslocamento

excepto quando faz um carregamento.

Neste momento, estamos em condições de desenhar um diagrama temporal para

os sinais de controlo:

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 101: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 101

Compara

1

Relógio

1 2 3 4 5 6 7 80 9 10Saídas do contador

Inicialização*

Habilitação

1 2 3 4 5 6 70Número de comparações já memorizadas

2 3 4 5 6 7 8 9 10

0 8

Fig.28- Diagrama temporal para os sinais de controlo

gerados pelo "Módulo Controlador"

Em relação a este diagrama, notar que o sinal Apaga* não é referido, visto se ter

concluido que bastava ligá-lo à entrada COMPARA.

Este diagrama também já permite determinar a que contagem do Contador de

ciclos é que deve corresponder a asserção do sinal FimDeContagem. Com efeito, o sinal

FimDeContagem servirá para que o Módulo controlador proceda à comutação de uma

ou mais das suas saídas, e do diagrama vê-se que a comutação em questão é a

deasserção do sinal Habilitação. Assim, essa contagem deve ser a presente no período

de relógio imediatamente anterior a essa comutação, e que é a contagem 9. Como a

contagem 9 é a primeira que cumpre o critério:

QD QC QB QA = 1 X X 1

o circuito combinacional que produz FimDeContagem pode ser o seguinte:

QA

QDFimDeContagem

Finalmente, também se nota que no diagrama não figuram as linhas de controlo

para o Registo de deslocamento recirculante, uma vez que este estará sempre no modo

de deslocamento - excepto quando se der uma operação de carregamento.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 102: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 102

No diagrama de blocos inicial (partição funcional) referem-se, em relação ao

módulo Registo de deslocamento recirculante, dois sinais de controlo: Carrega e

Desloca (subentendia-se, naturalmente, que quando ambos os sinais estão deasseridos

não há nenhuma operação - ou antes, há a operação "congelamento").

Posteriormente, no passo "Implementação dos módulos de acção", verificou-se

que as entradas de controlo nos circuitos integrados utilizados (74194) eram S1 e S0,

que comandam as seguintes operações:

S1 S0 Operação

1 1 Carregamento

0 1 Deslocamento para a direita

0 0 Congelamento

NOTA: poder-se-ia incluir neste módulo um circuito combinacional que realizasse

a transformação dos sinais Carga e Desloca para os sinais S1e S0, de maneira a

construir um módulo Registo de deslocamento recirculante totalmente condizente com a

especificação inicial. Mas é óbvio que o mais correcto é reformular a especificação inicial

deste módulo, que tinha originalmente sido feita na "Partição de funções" ainda com

completo desconhecimento dos custos de implementação do módulo.

Também se concluiu que só eram necessárias as duas operações Carregamento

e Deslocamento. Assim, a entrada S0 deve estar sempre a 1 e a entrada S1 passa a ter a

função Carregamento / Deslocamento* (isto é: a 1 comanda o carregamento, e a 0 o

deslocamento).

Logo, o diagrama temporal para a operação de carregamento é o apresentado na

figura seguinte:

NovoPadrão

NovoY

Relógio

Válido

Carregamento / Deslocamento * ( S1 )

Fig.29 - Diagrama temporal para a operação de carregamento

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 103: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 103

De onde se vê que o sinal S1 pode ser produzido por simples ligação à entrada

NovoPadrão. Também aqui, à luz do conceito de módulo controlador e módulos de

acção isto seria interpretado como sendo o módulo controlador a fornecer ao circuito de

Registo de deslocamento recirculante um sinal de controlo que "só por acaso" é igual ao

sinal NovoPadrão.

Diagrama de fluxo detalhado

Este diagrama de fluxo detalhado dirá respeito apenas à máquina de estados

incluída no Módulo Controlador.

Não

Início

Compara ?

Habilitação

FimDeContagem ?Não

Não

Sim

Sim

Sim

Inicialização *

Compara ?

Fig.30- Diagrama de fluxo detalhado

Nota-se que este diagrama vem bastante simplificado em relação ao diagrama de

fluxo inicial. Com efeito, constatou-se anteriormente que algumas das acções que

constavam do diagrama de fluxo inicial podiam ser comandadas pelas entradas externas

do sistema, sem que fosse necessário serem produzidos pela máquina de estados do

Módulo Controlador.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 104: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 104

5º PASSO - Síntese do módulo controlador

Do diagrama de fluxo detalhado produz-se imediatamente o diagrama de estados

reduzido para a máquina de estados que constitui o Módulo Controlador.

Compara

Compara

Habilitação

Inicialização*

FimDeContagem

FimDeContagem

Compara

Compara

Habilitação

Fig.31 - Diagrama de estados reduzido

Existem 4 estados, que são codificáveis com 2 variáveis de estado.

Embora fosse possível utilizar Mapas de Karnaugh convencionais (há 2 variáveis

de estado e 2 variáveis de entrada: Compara e FimDeContagem, o que permite aplicar

Mapas de Karnaugh de 4 variáveis), vamos utilizar mapas reduzidos nas variáveis

Compara e FimDeContagem.

Podemos fazer uma codificação arbitrária:

Estado Variáveis

? ?

A 0 0

B 0 1

C 1 0

D 1 1

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 105: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 105

Mapas de excitação para flip-flops D

0

Compara

1

1

D

D = . + . + . Compara

Compara0

D

D = .

. Compara

Compara FimDeCont. FimDeContagem +

+ ( . + . )

= + . Compara

= .

. Compara

. FimDeContagem +

+

Mapas de excitação para flip-flops JK

Dos mapas D tiram-se imediatamente os mapas para JK:

0 X

1

J

X

Compara

0

X

K

X

J = K = . Compara

X

J

Compara FimDeCont

Compara1

K

X

X X

K = + ComparaJ = . Compara +

. FimDeContagem+

Não há grande diferença de complexidade entre a implementação D e a

implementação J-K. Arbitráriamente, optamos pela implementação D.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 106: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 106

Mapas para o descodificador de saída

Temos que sintetizar duas saídas incondicionais: Inicialização* e Habilitação.

Inicialização* deve ser asserido no estado B, mas o nível de asserção é o 0. Habilitação

deve ser asserido no estado B e no estado C; o nível de asserção é o 1.

1 1

0

Inicialização*

1

Inicialização* = +

0 1

1

Habilitação

0

Habilitação = . . +

Diagrama do circuito do módulo controlador

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 107: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 107

Relógio

D Q

Q

D Q

Q

Compara

Inicialização *

HabilitaçãoFimDeContagem

Fig.32 - Diagrama lógico do módulo controlador

Como se vê, é um circuito de complexidade já considerável, que no entanto foi

"cómodamente" desenvolvido graças à metodologia estruturada de projecto.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 108: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 108

EXEMPLO 2

Especificação

Pretende-se construir um circuito Controlador para uma Máquina de vender

chocolates que funciona com moedas de 10ESC, 20ESC, 50ESC e 100ESC, e que poderá

fornecer chocolates com diversos preços de acordo com a escolha feita pelo cliente.

Controlador

Sensor de moedas

Mecanismo de fornecimento

Moeda

Relógio

Relógio

AceitaMoedas

Fornece

M4

M3

M2

M1

Selector

S4

S3

S2

S1

Botão

Selecção

Fig.34- Diagrama de blocos do sistema completo

O cliente, após ter introduzido moedas suficientes, selecciona o chocolate que

quer e carrega num botão que assere o sinal BOTÃO. O módulo Selector fornece um

código que é igual ao preço do chocolate escolhido a dividir por 10.

O módulo Sensor de moedas emite um pulso MOEDA sempre que uma moeda

seja introduzida, sendo esse pulso de duração igual a um ciclo de relógio:

Moeda

Relógio

Ao mesmo tempo, produz nas linhas M4 M3 M2 M1 o código binário

correspondente ao valor da moeda dividido por 10: 0001 para uma moeda de 10ESC,

0010 para uma moeda de 20ESC, etc.

Quando fôr asserido o sinal BOTÃO e já tiverem sido introduzidas moedas

suficientes (se o cliente por acaso se enganar colocando moedas a mais perde o que

introduziu a mais), o Controlador deve asserir a saída FORNECE durante 1 ciclo de

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 109: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 109

relógio. Se o sinal BOTÃO fôr asserido quando ainda não há moedas suficientes, o

Controlador não deve fazer nada, mas deve manter em memória o total já introduzido.

Enquanto estiver a ser fornecido um chocolate é óbvio que não deve ser

novamente asserido o sinal FORNECE . É o próprio módulo Mecanismo de

fornecimento que impede a aceitação de moedas no módulo Sensor de moedas

durante a fase de fornececimento.

Assim, no projecto do Controlador não é necessário tomar medidas para evitar

que o sinal FORNECE seja novamente asserido durante a fase de fornecimento.

1º PASSO - Estudo e validação das especificações

O sistema a desenvolver é na realidade um subsistema de um sistema maior.

Concordantemente com a metodologia estruturada de projecto, não são relevantes para o

projecto do Controlador os detalhes de implementação dos outros módulos do sistema

global (tais como o Selector, Sensor de Moedas, …), nem tão pouco as interacções

entre esses módulos (por exemplo entre o Selector e o Mecanismo de Fornecimento).

Podemos desenhar os diagramas que explicitam as relações de temporização

entre entradas e saídas:

Para a introdução de cada moeda…

Moeda

M1 … M4

Relógio

Válido

e para o fornecimento…

Botão

Relógio

Fornece

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 110: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 110

Quanto ao esboço de unidade global, basta extraí-lo do diagrama de blocos do

sistema geral:

Fornece

Controlador

MoedaRelógio

M4

M3

M2

M1

S4

S3

S2

S1

Botão

Fig.35- Entradas e saídas do sistema a desenvolver

2º PASSO - Decomposição da unidade global em módulos de acção e

módulo controlador

À medida que forem sendo recebidas moedas, o montante total deve ir sendo

registado. Isso poderá ser feito por um circuito acumulador (um acumulador é constituído

pela associação de um somador e de um registo; a saída do somador é comunicada ao

registo cuja saída, por sua vez, fornece uma das parcelas do somador).

O acumulador constituirá portanto um dos módulos de acção.

A saída do acumulador será comunicada a um comparador em que o outro

termo de comparação será o valor S4 S3 S2 S1 . Assim, o 2º módulo de acção será o

Comparador.

Diagrama de blocos - partição funcional

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 111: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 111

Módulo controlador

Moeda

Botão

Fornece

Acumulador

M1 … M4

So

ma

Ap

ag

aT1…T4

Comparador

S1…S4

TsupS

Fig.36- Partição funcional

O Comparador, funcionando sempre no mesmo modo de operação, não necessita

de qualquer sinal de controlo. Fornece um sinal TsupS que indica que a palavra T é igual

ou superior à palavra S.

O Acumulador necessita de um sinal Apaga para poder ser posto a zero no início

da operação do circuito e necessitará também de um sinal Soma que, quando

deasserido, fará com que o Acumulador mantenha o seu valor - este modo de operação

será utilizado nos ciclos de relógio em que o sinal Moeda está deasserido.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 112: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 112

Diagrama de fluxo

Moeda ?Sim

Não

Início

Acumulador <- 0

Acum. <- Acum. + ValorMoeda

Fornece

Botão ?Sim

NãoValorSuficiente ?

Sim

Não

Fig.37- Diagrama de fluxo inicial

A estrutura de teste final parece um pouco confusa e pode com vantagem ser

substituída pela estrutura seguinte:

Fornece

Botão

Sim

Não

ValorSuficiente ?E

Fig.38- Alternativa preferível para o segmento final do diagrama de fluxo

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 113: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 113

3º PASSO - Implementação dos módulos de acção

Acumulador

O acumulador representado na figura seguinte foi projectado heurísticamente

(aliás, a única maneira de projectar circuitos com CIs standard). Como se vê do diagrama,

resulta mais económico considerar como asseridos a 0 os sinais Apaga* e Hab*.

Q4 Q3 Q2 Q1

Registo D 74377

D4 D3 D2 D1

Enable

3 2 1

74283

B4 B3 B2 B1

4

A4 A3 A2 A1

Relógio

M4 M3 M2 M1

C0

"0"

Hab *

Apaga *

T4 T3 T2 T1

Fig.39- Implementação do módulo "Acumulador"

Note-se que a definição dos sinais de controlo para o Acumulador ficou diferente

do que tinha sido inicialmente estabelecido no "Diagrama de blocos - partição funcional".

Com efeito, há um sinal Hab* em vez do sinal Soma e para a operação de apagamento é

necessário que os dois sinais Hab* e Apaga* estejam asseridos.

Como é despropositado complicar o circuito do Acumulador apenas para que

fique de acordo com uma especificação feita numa fase inicial, o mais correcto aqui é

corrigir o Diagrama de blocos para que considere estes sinais e não os inicialmente

definidos. O sinal Hab* habilita então a operação de acumulação e a de apagamento.

Comparador

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 114: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 114

S4

B3 B2 B1 B0 A3 A2 A1 A0

A=B

A>B

A<B

in

in

in

"1"

"0"

7485

A=B

S3 S2 S1

A<BA>B"0"

T4 T3 T2 T1

TsupS*

Fig.40 - Implementação do módulo "Comparador"

Também aqui se conclui que o sinal de saída é mais económicamente produzido

se fôr asserido a 0.

4º PASSO - Estabelecimento das relações temporais dos sinais de controlo

Os únicos sinais de controlo referidos na partição funcional são Hab* e Apaga*.

Além destes sinais de controlo, o Módulo controlador também produz o sinal de saída

Fornece.

Botão

Relógio

Fornece

Apaga *

Moeda

Hab *

Início de nova operação

Fim da operação anterior

Fig.41 - Diagrama temporal para os sinais de controlo

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 115: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 115

Verifica-se que nenhum dos sinais Fornece, Apaga* e Hab* pode ser

directamente obtido graças aos sinais de entrada, pelo que todos têm de ser gerados

pela máquina de estados do Módulo Controlador.

Diagrama de fluxo detalhado

Moeda ?Sim

Não

Início

Hab*

Fornece

Botão

Sim

Não

ValorSuficiente ?E

Apaga*

Hab*

Fig.42 - Diagrama de fluxo detalhado

5º PASSO - Síntese do módulo controlador

Do diagrama de fluxo detalhado produz-se imediatamente o diagrama de estados

reduzido para a máquina de estados que constitui o Módulo Controlador.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 116: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 116

B

C

Hab*

Apaga*

Hab*

Fornece

Botão . TsupS* Botão . TsupS*

= Moeda

Fig.43- Diagrama de estados do módulo controlador

Existem 3 estados, que são codificáveis com 2 variáveis de estado.

Vamos utilizar mapas reduzidos nas variáveis Botão e TsupS*.

Podemos fazer uma codificação arbitrária:

Estado Variáveis

? ?

A 0 0

B 0 1

C 1 1

Mapas de excitação para flip-flops D

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 117: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 117

0

Botão.TsupS *

X

D

D = . . Botão

0

. TsupS*

1 X

D

D =

01

Dada a simplicidade conseguida na implementação D, não vale sequer a pena

explorar a implementação JK.

Como a existência de 2 variáveis de estado faz com que exista um estado

adicional, ?? = 10, é necessário verificar se a máquina de estados tem a capacidade de

auto-correcção para a eventualidade de "arrancar" nesse estado.

De acordo com as expressões implementadas, para ?? = 10 temos:

D? = 0 D? = 0

ou seja, há uma transição incondicional para o estado A, o que mostra que o

circuito será auto-corrector.

Mapas para o descodificador de saída

Temos que sintetizar três saídas: Apaga*, Hab* e Fornece.

Apaga* deve ser asserido incondicionalmente no estado A.

Hab* deve ser asserido no estado A (incondicionalmente) e no estado B

(condicionalmente).

Fornece deve ser asserido incondicionalmente no estado C, e o nível de

asserção é o 1.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 118: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 118

0 X

Hab*

1

Hab* = +

Moeda

. Moeda

0 X

Apaga*

1

Apaga* =

1

0 X

Fornece

1

Fornece =

0

Diagrama lógico do módulo controlador

Relógio

D Q

Q

D Q

Q

Apaga *

Moeda

Botão

TsupS*

Fornece

Hab *

Fig.44- Diagrama lógico para o módulo controlador

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 119: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 119

Por outro lado, há muitas funções susceptíveis de implementação com circuitos

integralmente síncronos, mas em que pareceria que a utilização das entradas adicionais

assíncronas levaria a uma solução mais simples (ou de obtenção menos trabalhosa).

Mas a utilização indiscriminada das entradas adicionais assíncronas traz normalmente

problemas de fiabilidade, como se demonstra no exemplo a seguir.

O circuito da Fig.9.9 é um contador binário de 3 bits, que percorre a sequência

(QCQBQA) :

… 000 001 010 011 100 101 110 111 000 …

J Q

Q

A

A

Q

Q

B

B

Relógio

K

J

K

Q

Q

C

C

J

K

1

Fig.9.9 - Contador binário de 3 bits

O circuito é particularmente simples, utilizando apenas uma porta E além dos flip-

flops. Imaginemos agora que a sequência que se pretende implementar é a sequinte:

… 000 001 010 011 100 101 000 …

isto é, a sequência anterior encurtada. Pareceria que uma solução imediata para obter um

contador com esta sequência seria fazer uma adaptação com base no circuito anterior,

utilizando as entradas Clear dos flip-flops.

J Q

Q

A

A

Q

Q

B

B

Relógio

K

J

K

Q

Q

C

C

J

K

1

Clear Clear Clear

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra

Page 120: Monografia - Circuitos sequenciais

SISTEMAS DIGITAIS 120

Fig.9.10 - Adaptação do circuito anterior

O circuito da Fig.9.10 detecta a ocorrência da combinação QCQBQA = 110, para o que

aliás basta detectar QCQB = 11, pois QCQBQA = 110 é a primeira contagem que verifica

QCQBQA = 11X.

Quando se verificar QCQB = 11, é asserida a entrada Clear de todos os flip-flops, o

que em princípio provoca a passagem de todos eles a 0. Mas suponhamos que o flip-flop

C e a porta NE são muito rápidos (isto é, têm tempos muito inferiores aos máximos

especificados pelo fabricante), ao passo que o flip-flop B é muito lento (isto é, tem tempos

muito perto dos máximos especificados pelo fabricante). Então, pode acontecer que QC

passe a 0, e provoque a deasserção do Clear, ainda antes de o flip-flop B ter tido tempo de

reagir.

Também pode acontecer que o contador, ao transitar de QCQBQA = 011 para

QCQBQA = 100, apresente uma saída transitória QCQBQA = 110 ou QCQBQA = 111, o que

provocaria a asserção transitória do Clear. Este pulso de Clear, embora curto, pode ser

suficiente para provocar a passagem a 0 de um ou mais flip-flops.

A conclusão final é a de que os circuitos em que se utilizam as entradas

adicionais assíncronas (para outros fins além da simples função de incialização) são

susceptíveis de erros de funcionamento. O aparecimento desses erros depende de

combinações particulares das velocidades de operação dos circuitos, mas a

possibilidade existe.

Considera-se que o recurso às entradas adicionais assíncronas, em casos em

que é possível uma solução totalmente síncrona, é uma técnica incorrecta. As

entradas adicionais assíncronas devem ser exclusivamente reservadas para a

função de inicialização e para a implementação de funções inerentemente

assíncronas.

Departamento de Engenharia Electrotécnica – Instituto Superior de Engenharia de Coimbra