-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
56 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
consecutive | ||
=========== | ||
|
||
Nesse exercício, foi implementada uma máquina de estados para detectar | ||
uma sequência consecutiva de quatro uns ou quatro zeros. A Máquina de Estados | ||
implementada, uma máquina de Moore, consiste de 9 estados, onde um estado é o | ||
inicial e os demais detectam se o valor atual de $ w $ é consistente com relação | ||
à sequência que estão detectando (quatro estados para verificar uma sequência | ||
consecutiva de quatro zeros e quatro estados para verificar uma sequência consecutiva | ||
de quatro uns). Caso o(s) valor(es) anterior(es) de w seja(m) zero e o atual seja um, | ||
o próximo estado será o estado inicial para detectar uma sequência de uns e vice-versa. | ||
|
||
Os estados finais correspondentes a uma sequência de zeros ou uns habilita uma saída, | ||
nesse caso, a porta `LEDR9`. Nota-se que a FSM permanecerá em um estado final se o valor | ||
de w for preservado, ou seja, a FSM detecta todas as sequências consecutivas de quatro uns | ||
ou quatro zeros, até mesmo sequências que se sobreponham. | ||
|
||
Usando os códigos de estado dados, montamos a máquina de estados usando a estrutura | ||
`case ... when` do VHDL. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
morse | ||
===== | ||
|
||
O objetivo desse exercício é reimplementar o circuito para codificar uma letra | ||
em código morse, usando Máquina de Estados (FSM). Escolhemos usar uma Máquina de | ||
Estados de Moore, cuja representação gráfica é exibida a seguir. | ||
|
||
```mermaid | ||
graph LR; | ||
R[Reset]; | ||
A((A / q = 0, n = 0)); | ||
B((B / q = 0, n = 0)); | ||
C((C / q = 1, n = 0)); | ||
D((D / q = 1, n = 0)); | ||
E((E / q = 1, n = 0)); | ||
F((F / q = 1, n = 1)); | ||
R-->A; | ||
A-->|enable = 0|B; | ||
B-->|c = 0|A; | ||
B-->|w = 0|C; | ||
C-->B; | ||
B-->|w = 1|D; | ||
D-->E; | ||
E-->F; | ||
F-->B; | ||
``` | ||
|
||
O estado $ A $ é o estado inicial, onde devemos aguardar até que o | ||
usuário pressione o botão $ \textrm{enable} $. O estado $ B $ é um | ||
estado de pausa entre cada pulso do código morse, que retornará ao | ||
estado inicial caso a contagem da quantidade restante de pulsos que | ||
devem ser exibidos chegue a zero. As saídas da FSM são $ q $ (o | ||
código em si) e $ n $ (sinal para decrementar o contador do tamanho da | ||
sequência restante e habilitar o registrador de deslocamento | ||
por um ciclo de clock). |