Sistemas Digitais
Circuito de Dados / Circuito de
Controlo
ASMs e Implementação de Máquinas
de Estados
Projecto de Sistemas Digitais

No projecto de Sistemas Digitais é possível
encontrar sistemas simples e sistemas mais
complexos
 Projecto de sistemas simples:

Combinatórios





Sequenciais


Tabelas e Mapas de Karnaugh
Tabelas e Multiplexeres
Tabelas e ROMs (Read Only Memories)
Tabelas e PLDs (Programable Logic Devices)
Modelos de Moore e Mealy; Implementação com recurso a
FFs ou registos e a lógica combinatória
Projecto de sistemas mais complexos:

Divisão entre um circuito que dá suporte ao fluxo e
manipulação de dados, e um circuito que controla
esse circuito de dados
Uke2003
Sistemas Digitais
2
Circuito de Controlo/Circuito de Dados
Dados de entrada
Ordens e
condicionantes do
exterior
O circuito de
controlo é um
sistema
sequencial
síncrono
(Máquina de
Moore ou de
Mealy)
Acções a
desencadear
Circuito com
armazenamento
de dados e seu
processamento
Controlo
O circuito controlado
é constituído por um
conjunto de módulos
simples que podem
incluir:
• Registos
• Contadores
• Multiplexeres
• Somadores
Informação
sobre o estado
• Comparadores
• Memórias
• Algumas portas
lógicas
Informação para o exterior
Dados de saída
Uke2003
Sistemas Digitais
3
Exemplo: Controlo do parque de
estacionamento do Pav. de Civil no
IST-Alameda
Detector

Porta
Sentido do tráfego

Como a rua de
acesso é estreita,
só pode circular
nela um veículo
de cada vez

Quando o parque
está cheio não
podem entrar
carros
Existem 4 detectores e 3 portas que controlam o acesso
ao parque de estacionamento
Uke2003
Sistemas Digitais
4
Parque de Civil (cont.)
Porta 1
Detector 1
Porta 2
Detector 2
Porta 3 Detector 4 Detector 3

A saída é detectada pela presença em D3. Se não há entrada em
curso, a cancela P3 abre e só fechará quando o carro a atravessar e
sair de D4. Quando o carro chega a D2, abre-se P2 enquanto o
carro estiver sobre D2. Nessa altura haverá mais um lugar de
estacionamento

A entrada começa quando um carro chega a D1. Se houver lugar, e
se não há saída em curso, a porta P1 abre e asim fica enquanto o
carro for detectado por D1. Quando o carro chega a D4 a cancela
P3 é aberta e o carro entra. Durante essa fase, deve ser anotado
que existe um lugar a menos no estacionamento. Após deixar D4, a
cancela P3 fecha
Uke2003
Sistemas Digitais
5
Parque de Civil (cont.):
Circuito de Dados
Porta 1
Detector 1
Porta 2
Detector 2
Porta 3 Detector 3 Detector 4

O circuito de dados do sistema que se pretende projectar é muito
simples, pois a única informação relevante para o funcionamento
correcto do circuito é se existem ou não lugares no parque

Assim, o circuito de dados poderá ser implementado por um contador
UP/DOWN que guarda o número de carros no parque e que indica se
o parque está cheio:
Uke2003
Sistemas Digitais
6
Parque de Civil (cont.): Circuito de
Dados e Circuito de Controlo

O circuito de Controlo será um circuito sequencial que a partir da
informação dos detectores e da existência de lugares no parque,
deverá controlar a sequência de abertura das portas e o
incremento/decremento do contador

Teremos assim o seguinte modelo para o sistema:
D1 D2 D3 D4

De notar que no circuito de
dados deste sistema não
existem nem dados de saída,
nem dados de entrada

Esses dados, a existirem,
poderiam ser, por exemplo, o
número de lugares vagos
(dado de saída) e o número
máximo de lugares que
poderia ser variável (dado de
entrada)
CP UP
CP DOWN
Contador
Controlo
Cheio
P1 P2 P3
Uke2003
Sistemas Digitais
7
Parque de Civil (cont.): Circuito de
Controlo

A especificação do Circuito de Controlo para este sistema poderia
ser feita através de um diagrama de estados

No entanto, o Circuito de Controlo de controlo possui 5 entradas (D1
a D4, e Cheio), e 5 saídas (P1 a P3, CP_UP e CP_DOWN), pelo
que o diagrama ficaria bem confuso...
D1 D2 D3 D4

CP UP
CP DOWN
Contador
Controlo
Cheio
A solução será
especificar o circuito
através de um
Fluxograma, ou
Máquina de Estados
(ASM – Algorithmic
State Machine)
P1 P2 P3
Uke2003
Sistemas Digitais
8
Parque de
Civil (cont.):
Fluxograma
(ASM) do
Circuito de
Controlo
P1
D1
P2
D2
P3
D4
Uke2003
D3
Sistemas Digitais
9
Implementação de um Circuito
de Controlo explicitado por ASM

A implementação de um Circuito de Controlo
pode ser feita através de vários métodos:

Síntese clássica

1 Flip-Flop por Estado (codificação “One Hot”)

Implementação microprogramada com ROM (Read
Only Memory)

Endereçamento Explícito

Endereçamento Implícito
Uke2003
Sistemas Digitais
16
Implementação através de
Síntese Clássica

A implementação de um Circuito de Controlo através do
método de síntese de circuitos sequenciais síncronos é
possível desde que o ASM seja simples

Basta obter a tabela de transições a partir do fluxograma,
e a partir daí aplica-se o método estudado anteriormente

O principal obstáculo quando o ASM tem uma certa
dimensão consiste na complexidade que o método
implica:

Por exemplo, no problema do Parque de Estacionamento de
Civil, temos 8 estados, 5 entradas e 5 saídas, o que leva a que
as tabelas de estado seguinte tenham 25=32 colunas(!!!), e a que
os mapas de Karnaugh para as entradas dos Flip-Flops tenham
5+3 = 8 variáveis!
Uke2003
Sistemas Digitais
17
Implementação com 1 FF por
estado

Mais uma vez recorre-se ao método estudado
anteriormente. As grandes vantagens deste método são:


Permite uma realização directa a partir do fluxograma;
A sua complexidade não aumenta exponencialmente com a
dimensão da ASM

Estes vantagens devem-se ao facto de este método não
obrigar a uma visão “global” do circuito a implementar
durante a fase de concepção

Recorde-se que neste tipo de implementação cada
estado é representado por um FF, e que em cada
instante só um FF está a High, estando os restantes
obrigatoriamente a Low

Apesar de necessitar de mais FF, a lógica de estado
seguinte vem muito simplificada e, sobretudo, a
metodologia de projecto é muito mais simples
Uke2003
Sistemas Digitais
18
Implementação de ASM com
ROMs (ou Microprogramada)

O maior problema dos métodos apresentados anteriormente reside
na grande quantidade de lógica combinatória necessária para as
funções de entrada dos FF

A utilização de circuitos combinatórios típicos em substituição das
portas lógicas melhora esta situação, mas continua a não ser uma
solução satisfatória

Uma solução bastante melhor será a utilização de ROMs (Read
Only Memories):


Apesar de uma ROM ser um circuito com efeito de “memória”,
i.e., supostamente um circuito sequencial, esta pode ser utilizada
de forma bastante eficiente para implementação de funções
combinatórias
As memórias serão estudadas de forma detalhada nas próximas
aulas, mas para já é conveniente introduzir as ROMs como circuitos
que permitem implementar funções combinatórias
Uke2003
Sistemas Digitais
23
Utilização de ROMs para implementação
de circuitos combinatórios

Uma ROM é um dispositivo lógico que tem como entradas um
conjunto de linhas de endereço (Am,Am-1,...,A1,A0), e como saídas,
um conjunto de linhas de dados (Dn,Dn-1,...,D1,D0)

A dimensão do barramento de dados e do barramento de endereços
é variável

Quando vista como um dispositivo que permite implementar
circuitos combinatórios, uma ROM de 2 bits de endereço e 1 bit de
dados, pode ser representada com o seguinte modelo:

DEC 2/4
A0
1
0
A1
2
1
2
3
Uke2003
b0
b1
b2
f
b3
Sistemas Digitais
De notar que os bits b3,
b2, b1 e b0, não são
entradas exteriores da
ROM, mas sim valores
binários pré-definidos
que não podem ser
alterados em tempo real
24
Utilização de ROMs para implementação
de circuitos combinatórios (II)


Se assumirmos que na ROM se pré-definiu que:

b3=0, b2=1, b1=1 e b0=0, então a saída D0 passa a assumir a função
XOR;

b3=0, b2=1, b1=1 e b0=1, então a saída D0 passa a assumir a função
OR;

...e assim sucessivamente para qualquer função possível de definir com
4 bits
Ou seja, é possível implementar qualquer função de 4 bits a partir de
uma ROM de 2 bits de endereço e 1 bit de dados
DEC 2/4
A0
A1
1
2
0
1
2
3
0
DEC 2/4
1
A0
1
0
1
A0+A1 A1
(XOR)
2
1
2
0
3
Uke2003
Sistemas Digitais
0
1
1
A0+A1
(OR)
1
25
Utilização de ROMs para implementação
de circuitos combinatórios (III)

Numa ROM com n bits de dados, é possível definir n funções
combinatórias diferentes

Se essa ROM possuir m bits de endereço, então será possível
definir n funções combinatórias de m bits

Resumindo, uma ROM pode ser encarada como um dispositivo
extremamente versátil e prático para implementar funções
combinatórias
ROM 32x8
Simbologia de uma ROM de 5 linhas
0
A0
de endereço e 8 linhas de dados
1
A1
0
(32x8):
A
2
A2

31



Com esta ROM é possível
implementar 8 funções de 5 variáveis
Para isso basta que, de alguma forma
que será indicada posteriormente, se
consigam pré-definir os 8 conjuntos de
25=32 bits indicados como bx no
modelo anterior
Normalmente, o conteúdo de uma
ROM é apresentado sob a forma de
Uke2003
Sistemas
Digitais
uma tabela de 2m linhas e n
colunas
A3
3
A4
4
RE_L
EN
1, 2D
A
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
26
Implementação de ASMs com ROMs (I)

A implementação de ASM com recurso a uma ROM pode
ser realizada com a seguinte estrutura:
Entradas
Saídas
1D
ESTADO
C1
1D
C1
ROM
...
...
CL OCK_H
1D
C1
LÓGICA
COMBINATÓRIA
Endereços da ROM
Uke2003
Saídas de dados da
ROM
Sistemas Digitais
27
Implementação com ROMs (II)

Exemplo:

Temos 3 estados: A, B e C e,
portanto, podemos usar 2
variáveis de estado Q1 e Q0.

Temos duas variáveis de
entrada, E0 e E1.

Temos duas funções de
saída, X, de Mealy e Y de
Moore

O diagrama de blocos fica:
A
0
1
E1
X_H
Y_H
C
B
1
0
E0
Uke2003
Sistemas Digitais
28
Implementação com ROMs (III)
Exemplo (cont)
Estado Q1Q0
 Utilizemos a seguinte atribuição de estados:

O conteúdo da ROM será definido pela
seguinte tabela:
ENDEREÇO
Significado das Linhas
Linhas da ROM
Estado
A
A
A
A
B
B
B
B
C
C
C
C
Uke2003
CONTEÚDO da ROM
Q1
A3
Q0
A2
E1
A1
E0
A0
FD1
D3
FD2
D2
Y
D1
X
D0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
X
X
X
X
1
1
0
0
1
1
1
1
0
0
0
0
X
X
X
X
0
0
0
0
0
0
0
0
1
1
1
1
X
X
X
X
1
1
0
0
0
0
0
0
0
0
0
0
X
X
X
X
Sistemas Digitais
A
00
B
01
C
10
No estado C, com
E1=0 e E0=0,
continuo no estado
C (10), e as saídas
são Y=1, X=0
No estado C, com
E1=1 e E0=1, vou
para o estado A
(00), e as saídas
são Y=1, X=0
29
Implementação com ROMs (IV)
Exemplo (cont)
 Repare-se que o conteúdo da ROM em cada endereço
pode ser dividido em dois campos distintos, o Estado
Seguinte e as Saídas
Estado
Seguinte
ENDEREÇO
Significado das Linhas
Linhas da ROM
Estado
A
A
A
A
B
B
B
B
C
C
C
C
Uke2003
Saídas
Q1
A3
Q0
A2
E1
A1
E0
A0
FD1
D3
FD2
D2
Y
D1
X
D0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
X
X
X
X
1
1
0
0
1
1
1
1
0
0
0
0
X
X
X
X
0
0
0
0
0
0
0
0
1
1
1
1
X
X
X
X
1
1
0
0
0
0
0
0
0
0
0
0
X
X
X
X
Sistemas Digitais
30
Implementação com ROMs (II)

Exemplo:

Temos 3 estados: A, B e C e,
portanto, podemos usar 2
variáveis de estado Q1 e Q0.

Temos duas variáveis de
entrada, E0 e E1.

Temos duas funções de
saída, X, de Mealy e Y de
Moore

O diagrama de blocos fica:
A
0
1
E1
X_H
Y_H
C
B
1
0
E0
Uke2003
Sistemas Digitais
31
Implementação com ROMs (V)

A dimensão da ROM necessária para implementar este exemplo seria
bastante aceitável:

4 linhas de endereço

4 linhas de saída (ou dados)

Ou seja, teríamos uma ROM de 16x4 bits, o que é uma ROM
bastante pequena

No entanto, para um problema como o do Parque de Estacionamento
de Civil, a ROM necessária já teria dimensões substancialmente
maiores:

8 linhas de endereço (5 Entradas + 3 Estado Presente)

8 linhas de saída (3 Estado Seguinte + 5 Saídas)

Ou seja, teríamos uma ROM de 256x8 bits, o que não levantando um
“grande” problema já seria mais complicada de programar

Mais uma vez, e à semelhança da síntese clássica, o aumento do
número de entradas, causa um aumento exponencial na dimensão da
ROM, o que causa sérios problemas em circuitos reais com elevado
número de entradas

Felizmente, existem formas de resolver o problema...
Uke2003
Sistemas Digitais
32
Implementação com ROMs:
Endereçamento Explícito

Existem várias soluções. Uma delas consiste em eliminar
as variáveis de entrada do barramento de endereços

A estrutura criada por esta solução diz-se que utiliza
Endereçamento Explícito

Dado que as Entradas são essenciais ao funcionamento
da máquina, é necessário tomar várias medidas que as
envolvem directamente:

Eliminar a acção das Entradas nas Saídas, ou seja,
transformando o circuito de Mealy num circuito de Moore

Limitar a sua acção na mudança de estado da máquina de forma
que, de cada estado actual só se possa passar para um de dois
estados seguintes (incluindo eventualmente o próprio estado) – ou
seja em cada estado só se pode testar no máximo uma variável
de entrada
Uke2003
Sistemas Digitais
33
Implementação com ROMs:
Endereçamento Explícito (II)

A estrutura de uma implementação por ROM com
Endereçamento Explícito é a seguinte
O número de linhas
de Endereço da
ROM é dada pelo nº
de FF (e se existem
N Estados, são
necessários log2N
Flip-Flops), ou seja
eliminaram-se as
Entradas
Uke2003
O MUX 2
escolhe para
qual dos 2
Estados
Seguintes
possíveis o
circuito irá
O barramento Teste permite
seleccionar qual das Entradas se
pretende testar no Estado Actual (só
se testa no máximo uma Entrada em
cada
Estado)
Sistemas
Digitais
34
Endereçamento Explícito - Exemplo

Apliquemos o Endereçamento Explícito ao exemplo anterior

É necessário eliminar as saídas condicionadas (X), e garantir que em
cada Estado só se testa no máximo uma variável de Entrada de
forma a que só se possa saltar para um de 2 estados (neste exemplo
tal não é necessário)

Suponhamos que neste caso a saída X pode ser incluída no Estado
B
 Bastam 2 FF para representar o
Estado, pelo que a ROM só terá 2
linhas de endereço
A
0

A estrutura será a seguinte:
1
E1
X_H
Y_H
C
B
1
0
E0
Uke2003
Sistemas Digitais
35
Endereçamento Explícito – Exemplo (II)

O conteúdo da ROM passa a ser o seguinte:
Estado Seguinte se Teste for Falso
Endereço
E stado D1
A1
A
B
C
-
0
0
1
1
D0
A0
Saídas
Teste FD10 FD00 FD11 FD01
D6
D5
D4
D3
D2
0
1
0
1
1
X
0
X
Teste a E0 ou a E1
0
0
1
X
1
0
0
X
1
0
0
X
0
0
0
X
Y
D1
X
D0
0
0
1
X
0
1
0
X
Estado Seguinte se Teste for Verdadeiro
A
0
1
E1
X_H
Y_H
B
1
C
0
E0
Uke2003
Sistemas Digitais
36
Endereçamento Explícito – Exemplo (III)

Quando se opta pelo endereçamento explícito, a ROM passa a ter 4
palavras de 7 bits em vez de 16 palavras de 4 bits

Este ganho é feito à custa de 2 MUX adicionais. Pode não parecer
muito neste exemplo, mas para sistemas em que o número de
entradas é elevado, o ganho torna-se extremamente importante

Veja-se o exemplo do parque de estacionamento:


Dado que todas as saídas são de Moore não é necessário alterá-las

É necessário acrescentar vários estados adicionais para que só uma
variável seja testada de cada vez
O fluxograma passará a ser o indicado no slide seguinte. De notar as
seguintes modificações:

Passamos a necessitar de 4 FFs, dado que o número de estados passou
de 8 para 11

A codificação de estados é apresentada no slide seguinte, e é arbitrária, à
excepção da atribuição do estado inicial, que por facilidades de
inicialização é conveniente ser o 0000 (mas podia não ser...)
Uke2003
Sistemas Digitais
37
1
Retomemos o
exemplo do
Parque de Civil.
No slide seguinte
estão as
modificações
necessárias no
fluxograma.
Estado
Entrada
Cheio
S
N
N
D3
S
D3
N
N
S
P3_H
D1
S
N
D4
S
Saída
de Moore
P1_H
P3_H
D1
S
S
D4
N
N
P1
D1
P2
D2
P3
D4
Uke2003
D3
D4
N
D2
S
S
P3_H, CP_UP_H
D4
N
Sistemas Digitais
N
S
P2_H, CP_DOWN_H
S
D2
N
1
38
1
1
Estado
A
Entrada
Cheio
S
S
Cheio
S
N
N
P
N
D3
S
D3
N
N
S
D3
S
P3_H
Q
P3_H
N
S
S
N
D1
D1
N
D4
S
P1_H
D1
S
S
D4
N
D1
P3_H
B
S
F
S
D4
N
N
N
N
S
P1_H
P3_H
E
D4
S
Saída
de Moore
N
D3
C
D4
N
N
D2
D4
G
N
D2
N
S
S
S
S
P2_H, CP_DOWN_H
P3_H, CP_UP_H
D4
N
Uke2003
S
P2_H, CP_DOWN_H
D2
D4
Sistemas Digitais
D
S
D2
S
N
1
P3_H, CP_UP_H
S
N
N
1
39
H
1
Endereçamento
Explícito –
Exemplo (IV)
A
S
Cheio
S
N
P
S
D3
S
N
E s tado Q3
Q2
Q1
Uke2003
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
P3_H
Q
Q0
N
A
B
C
D
E
F
G
H
S
P
Q
-
N
D3
D1
N
D4
S
S
P1_H
D1
E
P3_H
B
S
F
S
D4
N
N
C
D4
G
N
D2
N
S
S
P2_H, CP_DOWN_H
P3_H, CP_UP_H
S
D2
D4
H
D
S
N
N
Sistemas Digitais
1
40
Endereçamento Explícito – Exemplo (V)

A estrutura passa a ser a seguinte:
5 saídas
3 variáveis
(necessárias
para
seleccionar 5
entradas)
4 FF (necessários
para codificar 11
estados), logo 4
linhas de endereço
5 entradas

A ROM passará a ter 24=16 linhas de 5+4+4+3=16 bits, i.e., 16x16

Sem endereçamento explícito necessitariamos de uma ROM de
256x8, ou seja, uma ROM 16 vezes maior
Uke2003
Sistemas Digitais
41
Endereçamento Explícito – Exemplo (VI)

O conteúdo da ROM (16x16) será o seguinte:
3 variáveis de
teste que
codificam 5
entradas
4 bits do Estado Seguinte se oTeste for Falso
4 bits do Estado Seguinte se o Teste for Verdade
5 saídas
Esta do Q3 Q2 Q1 Q0
A
B
C
D
E
F
G
H
S
P
Q
-
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
Uke2003
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
T2
T1
T0
0
0
1
1
1
1
0
0
0
0
0
X
X
X
X
X
0
0
0
0
0
0
1
1
1
1
0
X
X
X
X
X
0
1
0
0
0
0
0
0
1
1
1
X
X
X
X
X
FD30 FD20 FD10 FD00 FD31 FD21 FD11 FD01 CP_D CP_U
1
0
0
0
0
0
0
0
0
1
0
X
X
X
X
X
0
0
0
0
1
1
1
0
0
0
0
X
X
X
X
X
0
1
1
0
0
1
1
0
0
1
0
X
X
X
X
X
1
0
0
0
0
0
0
0
0
0
0
X
X
X
X
X
1
0
0
0
0
0
0
0
0
0
0
X
X
X
X
X
Sistemas Digitais
0
0
0
0
1
1
1
1
1
1
0
X
X
X
X
X
0
0
1
1
0
0
1
1
0
0
0
X
X
X
X
X
0
1
1
1
1
1
1
1
0
0
1
X
X
X
X
X
0
0
0
0
0
0
0
1
0
0
0
X
X
X
X
X
0
0
0
1
0
0
0
0
0
0
0
X
X
X
X
X
P3
P2
P1
0
0
0
1
1
1
0
0
0
0
0
X
X
X
X
X
0
0
0
0
0
0
0
1
0
0
0
X
X
X
X
X
0
1
0
0
0
0
0
0
0
0
0
X
X
X
X
X
42
Endereçamento Implícito
 Uma
variante da estrutura apresentada,
chamada endereçamento implícito,
permite reduzir ainda mais a dimensão
da ROM
 Esta
variante será estudada em
Arquitectura de Computadores
Uke2003
Sistemas Digitais
43
Download

DadosControlo