From b2b39eec7a4b302deebd23312581fcf4902b33f5 Mon Sep 17 00:00:00 2001 From: peteraaser Date: Mon, 1 Jun 2020 14:16:36 +0200 Subject: [PATCH] Oops forgot to add files --- Images/rasta.png | Bin 0 -> 53398 bytes description.org | 184 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 184 insertions(+) create mode 100644 Images/rasta.png create mode 100644 description.org diff --git a/Images/rasta.png b/Images/rasta.png new file mode 100644 index 0000000000000000000000000000000000000000..80ee132f6a486b325acbe0a8d3a58468aa82ecff GIT binary patch literal 53398 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

~d2BLef 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 T&TGRE_*alsk;%M%`_caaJ@ie& literal 0 HcmV?d00001 diff --git a/description.org b/description.org new file mode 100644 index 0000000..2608795 --- /dev/null +++ b/description.org @@ -0,0 +1,184 @@ +* About RISCV-FiveStage + The task in this exercise is to implement a 5-stage pipelined processor for + the [[./instructions.org][RISCV32I instruction set]]. + + This exercise framework is used for the two graded exercises in the processor + design course TDT4255, however you are more than welcome to use this project + yourself, or to teach a class. Please reach out if you do! + + If you are doing this as part of the TDT4255 course be sure to join our slack + group. Slack links only last for a month, so the invite link will likely be + expired. + Here it is anyways, feel free to join even if you're not taking the course at NTNU. + https://join.slack.com/t/tdt4255-2020/shared_invite/zt-erb9fbnm-NscwZGNsVSTjYPnSCjo1aA + + In this exercise you will build a 5-stage RISCV32I processor that is able to run + real RISC-V programs as long as they only use the 32I instruction subset. + Since this is your first time building a processor, starting with a 5-stage design + presents a very difficult challenge, which is why this exercise is split into two + parts. In the first part the instructions will be interspersed with NOP instructions, + four NOPs for every real. This means that you do not need to take into account + dependencies and so forth, making things a lot easier for you. + + For the second exercise the only difference is that NOP instructions will not be + inserted. You can read about this in the [[exercise2.org][ex2 guide]], and will not be discussed + further here. + + In the project skeleton files ([[./src/main/scala/][Found here]]) you can see that a lot of code has + already been provided, which can make it difficult to get started. + Hopefully this document can help clear up at least some of the confusion. + The rest of this document gives an overview of the exercise framework and testing. + If you want to jump straight to something practical you can start following the + [[exercise.org][exercise guide]], however at some point you should read through the rest of this document. + +** A tour of FiveStage + In order to orient yourself you first need a map, thus a high level overview of the + processor you're going to design is showed underneath: + Keep in mind that this is just a high level sketch, omitting many details as well + entire features (for instance branch logic) + + *Important* + When you are done, use the provided ./deliver.sh script to pack up the archive. + If you're unable to run bash scripts then please ensure that you deliver a *zip* archive. + Not .rar or anything else, just use zip because my grading script knows how to handle that + in addition to the one used by deliver.sh + named after your username. Nothing more, nothing less, just your username. + This archive should be runnable as is, thus you need to include all the necessary files. + (I may or may not diff the tests to check if you're screwing with them) + + #+CAPTION: A very high level processor schematic. Registers, Instruction and data memory are already implemented. + #+attr_html: :width 1000px + #+attr_latex: :width 1000px + [[./Images/FiveStage.png]] + + Now that you have an idea of what you're building it is time to take inventory of + the files included in the skeleton, and what, if anything should be added. + + + [[./src/main/scala/Tile.scala]] + This is the top level module for the system as a whole. This is where the test + harness accessses your design, providing the necessary IO. + *You should not modify this module for other purposes than debugging.* + + + [[./src/main/scala/CPU.scala]] + This is the top level module for your processor. + In this module the various stages and barriers that make up your processor + should be declared and wired together. + Some of these modules have already been declared in order to wire up the + debugging logic for your test harness. + This file corresponds to the high-level overview in its entirety. + *This module is intended to be further fleshed out by you.* + As you work with this module, try keeping logic to a minimum to help readability. + If you end up with a lot of signal select logic, consider moving that to a separate + module. + + + [[./src/main/scala/IF.scala]] + This is the instruction fetch stage. + In this stage instruction fetching should happen, meaning you will have to + add logic for handling branches, jumps, and for exercise 2, stalls. + The reason this module is already included is that it contains the instruction + memory, described next which is heavily coupled to the testing harness. + *This module is intended to be further fleshed out by you.* + + + [[./src/main/scala/IMem.scala]] + This module contains the instruction memory for your processor. + Upon testing the test harness loads your program into the instruction memory, + freeing you from the hassle. + *You should not modify this module for other purposes than maaaaybe debugging.* + + + [[./src/main/scala/ID.scala]] + The instruction decode stage. + The reason this module is included is that the registers reside here, thus + for the test harness to work it must be wired up to the register unit to + record its state updates. + *This module is intended to be further fleshed out by you.* + + + [[./src/main/scala/Registers.scala]] + Contains the registers for your processor. Note that the zero register is alredy + disabled, you do not need to do this yourself. + The test harness ensures that all register updates are recorded. + *You should not modify this module for other purposes than maaaaybe debugging.* + + + [[./src/main/scala/MEM.scala]] + Like ID and IF, the MEM skeleton module is included so that the test harness + can set up and monitor the data memory + *This module is intended to be further fleshed out by you.* + + + [[./src/main/scala/DMem.scala]] + Like the registers and Imem, the DMem is already implemented. + *You should not modify this module for other purposes than maaaaybe debugging.* + + + [[./src/main/scala/Const.scala]] + Contains helpful constants for decoding, used by the decoder which is provided. + *This module may be fleshed out further by you if you so choose.* + + + [[./src/main/scala/Decoder.scala]] + The decoder shows how to conveniently demux the instruction. + In the provided ID.scala file a decoder module has already been instantiated. + You should flesh it out further. + You may find it useful to alter this module, especially in exercise 2. + *This module should be further fleshed out by you.* + + + [[./src/main/scala/ToplevelSignals.scala]] + Contains helpful constants. + You should add your own constants here when you find the need for them. + You are not required to use it at all, but it is very helpful. + *This module can be further fleshed out by you.* + + + [[./src/main/scala/SetupSignals.scala]] + You should obviously not modify this file. + You may choose to create a similar file for debug signals, modeled on how + the test harness is built. + *You should not modify this module at all.* + + +** Tests + In addition to the skeleton files it's useful to take a look at how the tests work. + You will not need to alter anything here other than the [[./src/test/scala/Manifest.scala][test manifest]], but some + of these settings can be quite useful to alter. + The main attraction is the test options. By altering the verbosity settings you + may change what is output. + The settings are: + + + printIfSuccessful + Enables logging on tests that succeed. + You typically want this turned off, at least for the full test runner. + + + printErrors + Enables logging of errors. You obviously want this one on, at least on the single + test. + + + printParsedProgram + Prints the desugared program. Useful when the test asm contains instructions that + needs to be expanded or altered. + Unsure what "bnez" means? Turn this setting on and see! + + + printVMtrace + Enables printing of the VM trace, showing how the ideal machine executes a test + + + printVMfinal + Enables printing of the final VM state, showing how the registers look after + completion. Useful if you want to see what a program returns. + + + printMergedTrace + Enables printing of a merged trace. With this option enabled you get to see how + the VM and your processor executed the program side by side. + This setting is extremely helpful to track down where your program goes wrong! + This option attempts to synchronize the execution traces as best as it can, however + once your processor design derails this becomes impossible, leading to rather + nonsensical output. + Instructions that were only executed by either VM or Your design is colored red or + blue. + + *IF YOU ARE COLOR BLIND YOU SHOULD ALTER THE DISPLAY COLORS!* + + On some windows terminal emulators there exists a bug that causes colors to not display + correctly, giving your terminal a very.. rastafarian look as shown below: + #+attr_html: :width 300px + #+attr_latex: :width 3000px + [[./Images/rasta.png]] + + + nopPadded + Set this to false when you're ready to enter the big-boy league + + + breakPoints + Not implemented. It's there as a teaser, urging you to implement it so I don't have to.