E - CPU
Entrega |
---|
Segunda - 14/10 |
Nesse projeto cada grupo terá que implementar sua própria CPU do Z01.
Começando
A seguir explicações de como começar o projeto.
Entendendo a Organização do Projeto
A pasta do projeto E no repositório Z01, possui a seguinte estrutura:
e_CPU/
test_CPU.py
CPU_cocotb.py
/Quartus
/src
*.vhd
- Quartus: Projeto Quartus que faz uso dos arquivos VHDL localizados em src/*.vhd;
- *.py: Scripts em python que automatizam a execução dos testes;
- src/*.vhd: Arquivos VHDL que serão implementados pelo grupo;
Testando HW
Abra o terminal na pasta e_CPU
e execute:
$ pytest -s
O teste do CPU apenas funcionará se o ControlUnit tiver sido implementado.
Todos os módulos vhdl (desde o projeto B) serão compilados e o cpu.vhd
será executado.
Projeto
Deve-se implementar o Control Unit
e integrar os módulos: MemoryIO
e CPU
.
Módulos
Note
Esses arquivos estão localizados em e_CPU/src/
- MemoryIO
- Arquivo :
memoryio.vhd
- Descrição : Faz o mapa de memória para a CPU.
- Dependências :
.Dispositivos/ram16k.vhd
: RAM a ser utilizada no projeto (já foi dado pronto).Dispositivos/screen.vhd
: Controlador do LCD a ser utilizada no projeto (já foi dado pronto)
- Arquivo :
- CPU
- Arquivo :
cpu.vhd
- Descrição : CPU do Z01 integra registradores, controlUnit, ULA e PC.
- Dependências :
controlunit.vhd
: Unidade de controle a ser implementadaalu.vhd
: Unidade lógica desenvolvida no projeto Dpc.vhd
: Program counter do projeto Eregister16.vhd
,mux16.vhd
: Componentes do projeto C e D
- Arquivo :
- ControlUnit
- Arquivo :
controlunit.vhd
- Descrição : Unidade de controle da CPU do Z01.
- Dependências :
- não há
- Arquivo :
Diagramas
Rubrica do projeto
Warning
Os conceitos B e A devem ser feitos em um outro branch!
git checkout -B CPU-Extras
Conceito | |
---|---|
I | Menos da metade dos módulos funcionando |
D | Ao menos um módulo não está feito e não passa no testes. |
C+ | Construiu com os módulos do grupo o seu próprio computador |
Todos os módulos passando nos testes. | |
B+ | Possibilita realizar carregamento da um valor da instrução diretamente para %D |
Modificar os testes para testar esse novo recurso! | |
A+ | Adiciona um novo registrador a CPU e fazer os ajustes correspondentes |
Modificar os testes para testar esse novo recurso! |
O grupo deve avaliar o melhor local para colocar o novo registrador e como fazer o carregamento em %D (Há mais de uma forma).
Testagem mais completa na próxima APS
Para testar o computador de uma forma mais completa, iremos executar os programas realizados na APS f_Assembly
no Harware que vocês montaram.