G CPU Testando - guidiamond/Z01.1-Insonia GitHub Wiki

Para testar o projeto G-CPU é necessário:

Rubrica C

  1. Testar o controUnit e o memoryIo:
$ ./testeHW.py lib.tb_memoryio.all 
$ ./testeHW.py lib.tb_controlunit.all

Somente após passar os testes anteriores e com a CPU implementada:

  1. Testar o computador (CPU, controlUnit e memoryIo) com a execução de códigos em assembly:
$ ./testeAssemblyMyCPU.py

SE O TESTE TRAVAR, VERIFICAR DICAS AO FINAL DESSA PÁGINA

  1. 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:

  1. Abrir Quartus e compilar projeto
  2. Executar programMyFPGA.py

Como vocês alteraram o InstructionSet, será necessário escrever um programa em linguagem de máquina, para isso:

  1. Altere o arquivo: testeComputador.mif com suas operações
  2. Execute ./programSoftware.py -m testeComputador.mif para 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:

  1. Compila o .nasm gerando o binário .mif
  2. Carrega na ROM do seu computador (Projeto G) o binário
  3. Executa o código
  4. Verifica se o resultado está certo

Se por algum motivo algum módulo estiver com problema esse teste pode falhar, o que é aconselhado fazer:

  1. Comente todos os teste do Projeto F no arquivo de configuração (F-Assembly/tests/config.txt) com exceção o mov.nasm
    • Esse módulo testa todos os registradores
  2. Execute o teste com a parte do waveform: ./testeAssemblyMyCPU.py -g
    • Análise o transcript em busca de erros!
  3. Inclua os sinais do Computador no waveform e execute o vunit_run
  4. Analise o que está acontecendo com o seu hardware, verifique a instrução que está entrando e o que deveria acontecer.
  5. Corrija o HW quando encontrar o problema, teste novamente.
  6. Descomente os módulos: abs.nasm e teste para saber se está :ok
    • Esse módulo testa o loadPC e saídas da ULA (ng e zr)
  7. Descomente os demais módulos e teste tudo.