Soft CPUs - how to debug and test in a sane way?

This page summarizes the projects mentioned and recommended in the original post on /r/FPGA

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • zipcpu

    A small, light weight, RISC CPU soft core

  • When I first built the ZipCPU, I wrote an assembly program to test every CPU instruction. If all tests passed, the CPU would halt and the simulator would detect that as a success. If any test failed, the CPU would go into a busy wait and the simulator would detect that as a failure. One CPU register held within it the number of the current test. I then ran this software on the CPU both normally, and through a single-stepping debug interface. That way I had strong confidence that, once I placed it onto the FPGA, I'd be at least able to use the debugging interface to step the CPU and see the register contents along the way. You can read about what this is like here.

  • nes-test-roms

    Collection of test ROMs for testing a NES emulator.

  • Building on top of that - I could modify my software emulator to produce the same format as the Verilog testbench would produce (thinking back to nestest log), and compare the output from C and Verilog implementations when in doubt.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts