E - CPU
| Entrega |
|---|
| Quarta - 15/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
programCPU_FPGA.py
/CPU_FPGA
/Quartus
/src
*.vhd
- Quartus: Projeto Quartus que faz uso dos arquivos VHDL localizados em src/*.vhd;
- CPU_FPGA: Arquivos necessários para programar a FPGA;
- *.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+ | Construiu com os módulos do grupo o seu próprio computador (conceito C+) |
| E teste da CPU básica na FPGA | |
| E modificou a CPU para realizar carregamento de um valor da instrução diretamente para %D | |
| A+ | Todos os itens do conceito B++ |
| A+ | E adicionou um novo registrador na CPU com os ajustes correspondentes |
| E modificou 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.
