Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
Peter Aaser d7df1adfaf
Create LICENSE
před 6 roky
project Nuke před 6 roky
src Nuke před 6 roky
.gitignore Nuke před 6 roky
LICENSE Create LICENSE před 6 roky
README.md Nuke před 6 roky
TODO.org Nuke před 6 roky
build.sbt Nuke před 6 roky
deliver.sh Nuke před 6 roky
exercise.org Nuke před 6 roky
instructions.org Nuke před 6 roky
sbt.sh Nuke před 6 roky

README.md

This is the coursework for the graded part of the TDT4255 course at NTNU.

Since it is the authors opinion that most tools out there are vastly underdesigned, this project comes with a lot of added homegrown utilities, including a RISC-V parser, assembler and interpreter.

When you test a design with a given program, that program is first parsed, then run in a software interpreter to get correct output, then assembled into a binary. This binary will then be loaded to your synthesized design (your processor) by the test harness provided in the skeleton code, along with any initial state.

Your processor will run the supplied binary, and the changes to state (memory and registers) will be recorded and compared with the interpreter log.

If it matches, your processor works, if not, you get an execution trace, hopefully showing what went wrong and where.

To get started, read the exercise.org file, it goes over the first pieces of the puzzle.

If you want to learn chisel on your own and use this project please send me some feedback on what you liked, disliked and what could have been improved :) If you end up using it for a course you're teaching I would be thrilled too. In this case, you can spend the time you're saving by sending a pull requests with some improvements!

Pull requests are more than welcome!

Nice to have list:

  • More sophisticated test feedback. A detailed error report on why the processor design failed.
  • Scaffolding to run synthesized designs. Preferrably targeting the PYNQ platform.
  • A fix for whatever problems you run into when using this project.
  • Either a battery of tests to find corner cases stress testing forwarders, hazard detectors etc, or even better, the tools to generate code with hazards automatically.