Vou anexar o que já fiz e isso é basicamente o projeto que o professor passou:
O projeto deve ser feito usando obrigatoriamente a abordagem controle + datapath.
A entrega do projeto deve conter os arquivos VHDL que funcionam no emulador
junto com diagramas de blocos e diagramas de estados.
O circuito deve ter no mínimo 3 estados: setup, mostrar e editar.
O estado setup é o estado inicial, o circuito espera até que o botão KEY(1) seja
pressionado. Se SW(17) é ‘0’ o próximo estado será editar, caso contrário o próximo
estado é mostrar.
No estado mostrar, a mensagem armazenada na memória RAM (arquivo ram.vhd) é mostrada nos display 7-segmentos (HEX7 até HEX0) sendo
rotacionada da direita para a esquerda a cada 0,5 segundos. A memória RAM armazena
até 16 caracteres.
No estado editar, o usuário insere o código de cada caractere formado por 5 bits usando
as chaves SW(4:0) conforme a seguinte tabela:
Código/Caractere
00000/0
00001/1, I
00010/2, Z
00011/3
00100/4
00101/5, S
00110/6, G
00111/7
01000/8
01001/9
01010/A
01011/b
01100/c
01101/d
01110/E
01111/F
10000/h
10001/J
10010/K, X
10011/L
10100/M
10101/n
10110/o
10111/P
10111/q
11001/r
11010/t
11011/u, v
11100/W
11101/y
11110/-
11111/Espaço
Quando o usuário pressionar o botão KEY(1) o código do caractere selecionado é
armazenado na memória RAM e o cursor avança para a próxima posição.
O circuito avançará do estado editar para o estado mostrar em duas situações:
(a) Caso os 16 caracteres tenham sido inseridos, ou
(b) Caso o SW(17) mude para o valor ‘1’.
A memória RAM de caracteres deve ser incluída dentro do datapath. A saída dataout sempre mostra o conteúdo da posição indicada pela entrada addr (endereço). O dado de entrada datain será armazenado na posição addr
apenas se a entrada we (write enable) estiver ativada.
Mostrar nos LEDs quais posições da memória de caracteres foram preenchidos (ligar
LED), quais estão vazios (desligar LED) e qual posição está sendo editada no momento
(LED intermitente).
Acrescentar opções de edição como a tecla “backspace” (apagar última posição),
deslocamento do cursor de edição para a direita ou para esquerda sem apagar os
caracteres.
Mostrar o conteúdo do memória de caracteres nos displays quando houver a transição
do estado setup para o estado editar.
Outras melhoras poderão ser aceitas.
PROJETO FINAL 2-20231123T231642Z-001.zip