Você está na página 1de 23

Sistemas Lógicos I – Trabalho Final

Máquina de estados síncrona

Turno P4
15/12/2019

Alunos:
Dariane Borges – 58496
João Amorim – 58324
Ricardo Leal - 57500
1

Índice:

1. Introdução:..........................................................................................................................2
2. Descrição dos requisitos:.....................................................................................................3
3. Apresentação do projeto implementado:...........................................................................4
4. Detalhe dos módulos do projeto:........................................................................................5
5. Testes e resultados............................................................................................................18
6. Conclusão:..........................................................................................................................21
7. Referências Bibliográficas:.................................................................................................22

SISTEMAS LÓGICOS I – RELATÓRIO DE TRABALHO FINAL | Máquina de estados síncrona


2

1. Introdução:

Este trabalho consiste em criar uma máquina de estados síncrona com sete estados (Q2Q1Q0)
e com duas variáveis de entrada (X1X0), que permita gerar três saídas – F3, F2 e F1 -, que
controlam alarmes. A máquina contém ainda uma função FIM, que indica o fim da sequência
de números. Definiu-se os estados da máquina criando uma sequência com os números dos
três alunos que compõem este grupo, seguida de pequenas alterações referidas no capítulo
dois.

O projeto contém ainda um validador, que permite certificar que a máquina de estados está a
funcionar corretamente, composto por um registo de oito bits, mais lógica adicional. No final,
o validador conterá a soma de todos os estados da máquina por onde passou, ou seja, a soma
de todos, ou certos dígitos da sequência de números. É de notar que a máquina de estados e o
validador foram também realizados no Xilinx, sendo implementada a solução mais simples.

Este relatório está dividido em vários capítulos, com o intuito de especificar e estudar cada
fase do trabalho, até à sua implementação. No capítulo dois, como já referido acima,
apresentam-se os requisitos detalhados do trabalho a implementar. No capítulo três, é feita
uma descrição detalhada do projeto, assim como a discussão da sua adequação aos requisitos
do sistema. No capítulo quatro, encontram-se os elementos chave para a realização da
máquina de estados e do validador, desde as tabelas de estado até ao desenho dos circuitos
constituintes. No capítulo cinco, apresentam-se os nossos testes e resultados, obtidos das
simulações feitas no software utilizado. Por último, no capítulo seis, são apresentadas as
nossas conclusões sobre o trabalho, assim como a lista de cumprimento dos objetivos e outros
elementos importantes.

SISTEMAS LÓGICOS I – RELATÓRIO DE TRABALHO FINAL | Máquina de estados síncrona


3

2. Descrição dos requisitos:

Como já foi referido, definiu-se os estados da máquina criando uma sequência com os
números dos três alunos que compõem este grupo. No entanto, são feitas as seguintes
alterações na mesma:

 Na sequência de números, todos os dígitos superiores a sete são ignorados.


 Na sequência de números, no caso de um dígito se repetir mais do que quatro vezes,
considera-se o dígito seguinte. Note que se o dígito repetido for sete, considera-se o dígito
zero, já que todos os dígitos acima desse são ignorados.

Concluídas as alterações na sequência de números, podemos agora clarificar os requisitos da


máquina de estados:

 A máquina inicia-se no estado zero.


 Sempre que um estado se repete, considera-se que existe um incremento nas entradas
X1X0.
 Depois do último dígito, a mesma volta sempre ao estado zero.

Para além destes requisitos, a nível de implementação no relatório, foi-nos pedido o seguinte:

 A máquina de estados deve ser implementada em Flip-Flops D e Flip-Flops JK.


 O alarme F3 deve ser implementado com Multiplexadores de três, duas e uma entrada de
seleção.
 O alarme F2 deve ser implementado com Descodificadores de três, duas e uma entrada de
seleção.
 O alarme F1 deve ser implementado usando somente lógica combinatória.

O grupo escolheu a seguinte ordem de números:

583245750058496

A sequência correta é a seguinte:

0532457500546

SISTEMAS LÓGICOS I – RELATÓRIO DE TRABALHO FINAL | Máquina de estados síncrona


4

3. Apresentação do projeto implementado:

Figura 1 - Circuito completo do projeto

O circuito do projeto foi implementado usando o mínimo número de portas lógicas e recursos
possíveis e, como já foi referido, o circuito apresenta apenas a solução mais simples.

 MAQUINA_ESTADOS: símbolo obtido a partir do ficheiro VHD, gerado posteriormente à


realização do diagrama de estados.
 M2_1: Multiplexador de 2 inputs e 1 output (F3), com uma entrada de seleção.
 D2_4E: Descodificador de 3 inputs (incluindo o ENABLE) e 4 outputs. O ENABLE é ligado ao
VCC para garantir o seu funcionamento permanente. Ligam-se as saídas com valor 1 a uma
porta OR e obtém-se o output F2.
 F1 é obtido a partir de lógica combinatória.
 ADD8: Somador de 8 bits, que realiza a soma do input BUS1(7:0) e o output do registador
de 8 bits. CARRY IN é ligado a GND e ignora-se CARRY OUT e OVERFLOW.
 FD8CE: Registo de 8 bits com entrada CLOCK, CLOCK ENABLE e CLEAR.
 COMP8: Comparador de 8 bits utilizado para obter FIM. Compara o output do registador
com a soma de todos os dígitos da nossa sequência de números, que no nosso caso, é 46.

SISTEMAS LÓGICOS I – RELATÓRIO DE TRABALHO FINAL | Máquina de estados síncrona


5

4. Detalhe dos módulos do projeto:

Neste capítulo, apresentam-se os diferentes módulos do projeto, necessários para a


construção de todo o circuito. Estão incluídos o diagrama de estados, as tabelas de estados e
transições, as tabelas de excitação para os Flip-Flops JK e Flip-Flops D, os mapas de Karnaugh
correspondentes, assim como as funções simplificadas obtidas pela construção dos mesmos e,
por fim, o desenho dos circuitos.

 Diagrama de estados:

Figura 2 - Diagrama de estados da máquina

SISTEMAS LÓGICOS I – RELATÓRIO DE TRABALHO FINAL | Máquina de estados síncrona


6

 Tabelas de estado e transições:

X1 X0 Q2 Q1 Q0 Q2+t Q1+t Q0+t FIM


0 0 0 0 0 1 0 1 0
0 0 0 0 1 X X X X
0 0 0 1 0 1 0 0 0
0 0 0 1 1 0 1 0 0
0 0 1 0 0 1 0 1 0
0 0 1 0 1 0 1 1 0
0 0 1 1 0 0 0 0 1
0 0 1 1 1 1 0 1 0
0 1 0 0 0 0 0 0 0
0 1 0 0 1 X X X X
0 1 0 1 0 X X X X
0 1 0 1 1 X X X X
0 1 1 0 0 1 1 0 0
0 1 1 0 1 1 1 1 0
0 1 1 1 0 0 0 0 1
0 1 1 1 1 X X X X
1 0 0 0 0 1 0 1 0
1 0 0 0 1 X X X X
1 0 0 1 0 X X X X
1 0 0 1 1 X X X X
1 0 1 0 0 X X X X
1 0 1 0 1 0 0 0 0
1 0 1 1 0 0 0 0 1
1 0 1 1 1 X X X X
1 1 0 0 0 X X X X
1 1 0 0 1 X X X X
1 1 0 1 0 X X X X
1 1 0 1 1 X X X X
1 1 1 0 0 X X X X
1 1 1 0 1 1 0 0 0
1 1 1 1 0 0 0 0 1
1 1 1 1 1 X X X X

Q2 Q1 Q0 F3 F2 F1
0 0 0 0 1 1
0 0 1 0 1 0
0 1 0 0 0 0
0 1 1 0 0 0
1 0 0 1 0 0
1 0 1 X 0 1
1 1 0 1 1 0
1 1 1 0 1 1

SISTEMAS LÓGICOS I – RELATÓRIO DE TRABALHO FINAL | Máquina de estados síncrona


7

 Tabelas de excitação para os Flip-Flops JK e Flip-Flops D:

Para Flip-Flop D:

X1 X0 Q2 Q1 Q0 Q2+t Q1+t Q0+t D2 D1 D0


0 0 0 0 0 1 0 1 1 0 1
0 0 0 0 1 X X X X X X
0 0 0 1 0 1 0 0 1 0 0
0 0 0 1 1 0 1 0 0 1 0
0 0 1 0 0 1 0 1 1 0 1
0 0 1 0 1 0 1 1 0 1 1
0 0 1 1 0 0 0 0 0 0 0
0 0 1 1 1 1 0 1 1 0 1
0 1 0 0 0 0 0 0 0 0 0
0 1 0 0 1 X X X X X X
0 1 0 1 0 X X X X X X
0 1 0 1 1 X X X X X X
0 1 1 0 0 1 1 0 1 1 0
0 1 1 0 1 1 1 1 1 1 1
0 1 1 1 0 0 0 0 0 0 0
0 1 1 1 1 X X X X X X
1 0 0 0 0 1 0 1 1 0 1
1 0 0 0 1 X X X X X X
1 0 0 1 0 X X X X X X
1 0 0 1 1 X X X X X X
1 0 1 0 0 X X X X X X
1 0 1 0 1 0 0 0 0 0 0
1 0 1 1 0 0 0 0 0 0 0
1 0 1 1 1 X X X X X X
1 1 0 0 0 X X X X X X
1 1 0 0 1 X X X X X X
1 1 0 1 0 X X X X X X
1 1 0 1 1 X X X X X X
1 1 1 0 0 X X X X X X
1 1 1 0 1 1 0 0 1 0 0
1 1 1 1 0 0 0 0 0 0 0
1 1 1 1 1 X X X X X X

SISTEMAS LÓGICOS I – RELATÓRIO DE TRABALHO FINAL | Máquina de estados síncrona


8

Para Flip-Flop JK:

X1 X0 Q2 Q1 Q0 Q2+t Q1+t Q0+t J2 K2 J1 K1 J0 K0


0 0 0 0 0 1 0 1 1 X 0 X 1 X
0 0 0 0 1 X X X X X X X X X
0 0 0 1 0 1 0 0 1 X X 1 0 X
0 0 0 1 1 0 1 0 0 X X 0 X 1
0 0 1 0 0 1 0 1 X 0 0 X 1 X
0 0 1 0 1 0 1 1 X 1 1 X X 0
0 0 1 1 0 0 0 0 X 1 X 1 0 X
0 0 1 1 1 1 0 1 X 0 X 1 X 0
0 1 0 0 0 0 0 0 0 X 0 X 0 X
0 1 0 0 1 X X X X X X X X X
0 1 0 1 0 X X X X X X X X X
0 1 0 1 1 X X X X X X X X X
0 1 1 0 0 1 1 0 X 0 1 X 0 X
0 1 1 0 1 1 1 1 X 0 1 X X 0
0 1 1 1 0 0 0 0 X 1 X 1 0 X
0 1 1 1 1 X X X X X X X X X
1 0 0 0 0 1 0 1 1 X 0 X 1 X
1 0 0 0 1 X X X X X X X X X
1 0 0 1 0 X X X X X X X X X
1 0 0 1 1 X X X X X X X X X
1 0 1 0 0 X X X X X X X X X
1 0 1 0 1 0 0 0 X 1 0 X X 1
1 0 1 1 0 0 0 0 X 1 X 1 0 X
1 0 1 1 1 X X X X X X X X X
1 1 0 0 0 X X X X X X X X X
1 1 0 0 1 X X X X X X X X X
1 1 0 1 0 X X X X X X X X X
1 1 0 1 1 X X X X X X X X X
1 1 1 0 0 X X X X X X X X X
1 1 1 0 1 1 0 0 X 0 0 X X 1
1 1 1 1 0 0 0 0 X 1 X 1 0 X
1 1 1 1 1 X X X X X X X X X

SISTEMAS LÓGICOS I – RELATÓRIO DE TRABALHO FINAL | Máquina de estados síncrona


9

 Mapas de Karnaugh:

KMAP D2 Q1', Q0' Q1', Q0 Q1, Q0 Q1, Q0'


X1', X0', Q2' 1 X 0 1
X1', X0', Q2 1 0 1 0
X1', X0, Q2 1 1 X 0
X1', X0, Q2' 0 X X X
X1, X0', Q2' 1 X X X
X1, X0', Q2 X 0 X 0
X1, X0, Q2 X 1 X 0
X1, X0, Q2' X X X X

KMAP D1 Q1', Q0' Q1', Q0 Q1, Q0 Q1, Q0'


X1', X0', Q2' 0 X 1 0
X1', X0', Q2 0 1 0 0
X1', X0, Q2 1 1 X 0
X1', X0, Q2' 0 X X X
X1, X0', Q2' 0 X X X
X1, X0', Q2 X 0 X 0
X1, X0, Q2 X 0 X 0
X1, X0, Q2' X X X X

KMAP D0 Q1', Q0' Q1', Q0 Q1, Q0 Q1, Q0'


X1', X0', Q2' 1 X 0 0
X1', X0', Q2 1 1 1 0
X1', X0, Q2 0 1 X 0
X1', X0, Q2' 0 X X X
X1, X0', Q2' 1 X X X
X1, X0', Q2 X 0 X 0
X1, X0, Q2 X 0 X 0
X1, X0, Q2' X X X X

KMAP J2 Q1', Q0' Q1', Q0 Q1, Q0 Q1, Q0'


X1', X0', Q2' 1 X 0 1
X1', X0', Q2 X X X X
X1', X0, Q2 X X X X
X1', X0, Q2' 0 X X X
X1, X0', Q2' 1 X X X
X1, X0', Q2 X X X X
X1, X0, Q2 X X X X
X1, X0, Q2' X X X X

SISTEMAS LÓGICOS I – RELATÓRIO DE TRABALHO FINAL | Máquina de estados síncrona


10

KMAP J1 Q1', Q0' Q1', Q0 Q1, Q0 Q1, Q0'


X1', X0', Q2' 0 X X X
X1', X0', Q2 0 1 X X
X1', X0, Q2 1 1 X X
X1', X0, Q2' 0 X X X
X1, X0', Q2' 0 X X X
X1, X0', Q2 X 0 X X
X1, X0, Q2 X 0 X X
X1, X0, Q2' X X X X

KMAP J0 Q1', Q0' Q1', Q0 Q1, Q0 Q1, Q0'


X1', X0', Q2' 1 X X 0
X1', X0', Q2 1 X X 0
X1', X0, Q2 0 X X 0
X1', X0, Q2' 0 X X X
X1, X0', Q2' 1 X X X
X1, X0', Q2 X X X 0
X1, X0, Q2 X X X 0
X1, X0, Q2' X X X X

KMAP K2 Q1', Q0' Q1', Q0 Q1, Q0 Q1, Q0'


X1', X0', Q2' X X X X
X1', X0', Q2 0 1 0 1
X1', X0, Q2 0 0 X 1
X1', X0, Q2' X X X X
X1, X0', Q2' X X X X
X1, X0', Q2 X 1 X 1
X1, X0, Q2 X 0 X 1
X1, X0, Q2' X X X X

KMAP K1 Q1', Q0' Q1', Q0 Q1, Q0 Q1, Q0'


X1', X0', Q2' X X 0 1
X1', X0', Q2 X X 1 1
X1', X0, Q2 X X X 1
X1', X0, Q2' X X X X
X1, X0', Q2' X X X X
X1, X0', Q2 X X X X
X1, X0, Q2 X X X 1
X1, X0, Q2' X X X X

SISTEMAS LÓGICOS I – RELATÓRIO DE TRABALHO FINAL | Máquina de estados síncrona


11

KMAP K0 Q1', Q0' Q1', Q0 Q1, Q0 Q1, Q0'


X1', X0', Q2' X X 1 X
X1', X0', Q2 X 0 0 X
X1', X0, Q2 X 0 X X
X1', X0, Q2' X X X X
X1, X0', Q2' X X X X
X1, X0', Q2 X 1 X X
X1, X0, Q2 X 1 X X
X1, X0, Q2' X X X X

KMAP KMAP KMAP


F1 Q0' Q0 F2 Q0' Q0 F3 Q0' Q0
Q2', Q2', Q2',
Q1' 1 0 Q1' 1 1 Q1' 0 0
Q2', Q2', Q2',
Q1 0 0 Q1 0 0 Q1 0 0
Q2, Q2, Q2,
Q1 0 1 Q1 1 1 Q1 1 0
Q2, Q2, Q2,
Q1' 0 1 Q1' 0 0 Q1' 1 X

KMAP FIM Q1', Q0' Q1', Q0 Q1, Q0 Q1, Q0'


X1', X0', Q2' 0 X 0 0
X1', X0', Q2 0 0 0 1
X1', X0, Q2 0 0 X 1
X1', X0, Q2' 0 X X X
X1, X0', Q2' 0 X X X
X1, X0', Q2 X 0 X 1
X1, X0, Q2 X 0 X 1
X1, X0, Q2' X X X X

 Funções simplificadas:

F1 = Q2Q0 + Q2’Q1’Q0’

F2 = (Q2+Q1’) (Q2’+Q1)

F3 = Q2Q0’

D2 = X0Q0 + X0’Q2’Q0’+Q2Q1’Q0’+Q2Q1Q0

D1 = Q2’Q0 + X1’Q1’Q0 + X1’X0Q2Q1’

D0 = X0’Q1’Q0’ + X1’Q2’Q0’

J2 = X0’Q0’

K2 = Q1Q0’ + X0’Q1’Q0

SISTEMAS LÓGICOS I – RELATÓRIO DE TRABALHO FINAL | Máquina de estados síncrona


12

J1 = X1’Q0 + X1’X0Q2

K1 = Q0’ + Q2

J0 = X0’Q1’

K0 =Q2’+X1

SISTEMAS LÓGICOS I – RELATÓRIO DE TRABALHO FINAL | Máquina de estados síncrona


13

 Desenho dos circuitos:

F1:

Figura 3 - Função F1 desenhado com lógica combinatória

F2:

Figura 4 - Função F2 desenhado com descodificador 3/8

SISTEMAS LÓGICOS I – RELATÓRIO DE TRABALHO FINAL | Máquina de estados síncrona


14

Figura 5 - Função F2 desenhado com descodificador 2/4

Figura 6 - Função F2 desenhado com descodificador ½

SISTEMAS LÓGICOS I – RELATÓRIO DE TRABALHO FINAL | Máquina de estados síncrona


15

F3:

Figura 7 - Função F3 desenhado com multiplexador 8/1

Figura 8 - Função F3 desenhado com multiplexador 4/1

SISTEMAS LÓGICOS I – RELATÓRIO DE TRABALHO FINAL | Máquina de estados síncrona


16

Figura 9 - Função F3 desenhado com multiplexador 2/1

Máquina de estados implementada com FFD:

Figura 10 - Máquina de estados implementada com Flip-Flops D

SISTEMAS LÓGICOS I – RELATÓRIO DE TRABALHO FINAL | Máquina de estados síncrona


17

Máquina de estados implementada com FFJK:

Figura 11 - Máquina de estados implementada com Flip-Flops JK

Registador de 8bits, utilizado no validador:

Figura 12 - Registador de 8bits

SISTEMAS LÓGICOS I – RELATÓRIO DE TRABALHO FINAL | Máquina de estados síncrona


18

5. Testes e resultados

Neste capítulo serão apresentados os diferentes testes realizados no software, assim com os
seus resultados, em forma de diagramas temporais.

Para o primeiro teste, atribuímos o valor 0 a todos os inputs e não foram realizadas alterações
nos mesmos ao longo do diagrama. Este é o resultado obtido:

Neste teste, dado que RESET é declarado com valor 0, não é possível saber qual o estado inicial
da máquina de estados, pelo que os outputs apresentarão resultados muito invulgares.

Para o segundo teste (e para os restantes), o RESET é declarado com valor 1 e reposto a 0,
antes do primeiro pulso do CLOCK. Neste teste em particular, mantiveram-se X1X0 a 0. Este é o
resultado obtido:

Neste teste, obtém-se resultados importantes para a compreensão dos restantes: o resultado
da soma respeita a seguinte ordem: soma-se 5 a 0, soma-se 3 a 5, soma-se 2 a 8, soma-se 4 a
10 e soma-se novamente 5 a 14. Irá reparar de 19 para 22 vão 3, ou seja, repete-se este ciclo
de soma ao longo do diagrama. Isto deve-se ao facto de os inputs X1 e X0 não sofrerem
alterações. Vejamos:

0532457500546 -> Não existe a transição do estado 5 para o estado 7 porque neste caso, os
inputs X1 e X0 são 0 e 1, respetivamente

Terceiro teste: estabelece-se o RESET tal como referido acima, mas desta vez, X0 é declarado
com valor 1:

SISTEMAS LÓGICOS I – RELATÓRIO DE TRABALHO FINAL | Máquina de estados síncrona


19

Neste teste, a soma será sempre zero visto que o único estado de transição para o qual o
estado 0 segue, com os valores submetidos nos inputs, é para ele mesmo. Ou seja, a cada
pulso do CLOCK, a máquina de estados mantém o seu estado infinitamente, ao longo do
diagrama temporal.

Quarto teste: X1 é declarado a 1 e X0 retorna ao valor 0:

Neste teste, a máquina de estados transita do estado 0 para o estado 5 e vice-versa. Vejamos
de novo a sequência:

0532457500546

No segmento da sequência a verde, o estado 5 passa para o estado 0, com X1 e X0 a 1 e 0,


respetivamente. Por outro lado, no segmento a azul, do estado 0 para o estado 5, X1 e X0
estão também a 1 e 0.

Quinto teste: X1 e X0 são ambos declarados com valor 1:

Neste teste, observamos uma limitação na máquina de estados importante: como o estado 0
não se repete quatro vezes (apenas três), não existe transição possível, logo, a máquina de
estados mantém-se no estado 0 infinitamente, ao longo do diagrama.

Sexto e último teste: são feitas várias variações nos inputs X1 e X0:

SISTEMAS LÓGICOS I – RELATÓRIO DE TRABALHO FINAL | Máquina de estados síncrona


20

O último teste apresenta várias alterações nos outputs Q2Q1Q0 como se pode verificar na
soma. Dada a complexidade do diagrama, estudaremos apenas a parte em que X1 e X0 são
ambos 1. Neste momento, a máquina de estados encontra-se no estado 4. No entanto, como
aconteceu no quinto teste, não existe transição possível visto que o estado 4 não se repete
quatro vezes na sequência de números.

Em todos os testes, nenhum dos resultados da soma foi 46. Isto explica o facto de o output
FIM apresentar o valor 0 ao longo do diagrama, em todos os testes.

SISTEMAS LÓGICOS I – RELATÓRIO DE TRABALHO FINAL | Máquina de estados síncrona


21

6. Conclusão:

Com este trabalho, concluímos que para a máquina de estados percorrer todos os estados
segundo a ordem da sequência de números, são necessárias alterações muito específicas nos
inputs X1 e X0 no diagrama temporal. No entanto, não é necessário a máquina de estados
percorrer todos os estados para que a soma apresente o valor 46, ativando assim o output
FIM.

Apesar das adversidades, o trabalho cumpre todos os objetivos estabelecidos. Muitos


problemas inicialmente encontrados, principalmente no desenho do diagrama de estados,
foram corrigidos e as soluções encontradas permitiram-nos encontrar maneiras mais
inovadoras de implementar o circuito, especialmente no validador.

Infelizmente, encontrámos algumas irregularidades nas funções de alarme, especialmente na


função 1 e função 3, apesar de a lógica implementada corresponder às funções booleanas
obtidas nas tabelas de verdade das funções: em alguns testes, as funções correspondem aos
resultados esperados, enquanto que noutros, os resultados diferem.

Um dos pontos fortes deste projeto foi certamente a implementação do validador, que apesar
de exigir estudo da nossa parte, despertou interesse e curiosidade no estudo de
comparadores, somadores e registadores.

SISTEMAS LÓGICOS I – RELATÓRIO DE TRABALHO FINAL | Máquina de estados síncrona


22

7. Referências Bibliográficas:

Sousa, P., & Pimentão, J. P. (2019). Sistemas Lógicos I 19/20. Obtido de Moodle@fctunl:
https://moodle.fct.unl.pt/course/view.php?id=5491

SISTEMAS LÓGICOS I – RELATÓRIO DE TRABALHO FINAL | Máquina de estados síncrona

Você também pode gostar