G CPU Testando - guidiamond/Z01.1-Insonia GitHub Wiki
Para testar o projeto G-CPU é necessário:
Rubrica C
- Testar o
controUnite omemoryIo:
$ ./testeHW.py lib.tb_memoryio.all
$ ./testeHW.py lib.tb_controlunit.all
Somente após passar os testes anteriores e com a
CPUimplementada:
- Testar o computador (
CPU,controlUnitememoryIo) com a execução de códigos em assembly:
$ ./testeAssemblyMyCPU.py
SE O TESTE TRAVAR, VERIFICAR DICAS AO FINAL DESSA PÁGINA
- Testar o Computador na FPGA
- Abrir Quartus e compilar projeto
- Executar
programMyFPGA.py - Executar o programa
letra/nome:
$ ./programSoftware.py -n ../F-Assembly/src/nasm/LCDnomeGrupo.nasm
Rubrica B
Não vamos ter o teste do memoryIO nem do controlUnit adequados para as mudanças, será necessário testar direto no Hardware:
- Abrir Quartus e compilar projeto
- Executar
programMyFPGA.py
Como vocês alteraram o InstructionSet, será necessário escrever um programa em linguagem de máquina, para isso:
- Altere o arquivo:
testeComputador.mifcom suas operações - Execute
./programSoftware.py -m testeComputador.mifpara programar a ROM do Z01.1 com seu programa.
Note que o arquivo testeComputador.mif possui um campo que é DEPTH=30; Você deve alterar esse valor para a quantidade de linhas que seu programa possui!
Se o testeAssemblyMyCPU.py travar
Se por algum motivo o teste testeAssemblyMyCPU.py travar no primeiro teste, isso é sinônimo de que algo está errado com o seu HDL. Esse teste faz o seguinte para cada arquivo .nasm incluso no arquivo de configuração do Projeto F:
- Compila o
.nasmgerando o binário.mif - Carrega na ROM do seu computador (Projeto G) o binário
- Executa o código
- Verifica se o resultado está certo
Se por algum motivo algum módulo estiver com problema esse teste pode falhar, o que é aconselhado fazer:
- Comente todos os teste do Projeto F no arquivo de configuração (
F-Assembly/tests/config.txt) com exceção omov.nasm- Esse módulo testa todos os registradores
- Execute o teste com a parte do waveform:
./testeAssemblyMyCPU.py -g- Análise o
transcriptem busca de erros!
- Análise o
- Inclua os sinais do Computador no waveform e execute o
vunit_run - Analise o que está acontecendo com o seu hardware, verifique a instrução que está entrando e o que deveria acontecer.
- Corrija o HW quando encontrar o problema, teste novamente.
- Descomente os módulos:
abs.nasme teste para saber se está :ok- Esse módulo testa o loadPC e saídas da ULA (ng e zr)
- Descomente os demais módulos e teste tudo.