The lab materials heavily follow the design from Dr. Zonghui Wang, who provides generous help to develop sample code as well.
1.  | Learn the operation of the SWORD board and the usage of Xilinx Vivado. |
2.  | Understand the principle of the pipelined CPU and RISC-V instructions. |
3.  | Design the pipelined CPU that can execute RV32I instructions correctly on the SWORD board step by step according to the lab tutorial. |
4.  | Enhance the pipelined CPU with various caching and scheduling techniques. |
Lab 01          |
Review & warmup the experiment environment of the course of Computer Organization: SWORD board, Xilinx Vivado environment; Implement a 5-staged pipelined CPU with forwarding and predicted-not-taken to support RV32I instructions. |
Lab 02      | Implement handling of interrupt and exception on the pipelined CPU from Lab 01. |
Lab 03      | Implement a two-way associative cache through simulation. |
Lab 04      | Incorporate the two-way associative cache from Lab 03 to the pipelined CPU from Lab 02. |
Lab 05      | Extend the pipelined CPU from Lab 02 to support multi-cycle operations, out-of-order execution, and hazard detection. |
Lab 06       |
Extend the pipelined CPU from Lab 05 to support dynamic scheduling such as Scoreboarding or Tomasulo.   |
Lab 01     | Lab 02     | Lab 03     | Lab 04     | Lab 05     | Lab 06     |
6%     | 4%     | 3%     | 4%     | 7%     | 8%     |
Notes: A demo of the experiment result is required during the lab session; a report should be submitted per instructions.
  | Demo | Report |
Lab 01     | 2021.10.11     | 2021.10.18 |
Lab 02     | 2021.10.25 | 2021.11.01 |
Lab 03     | 2021.11.08 | 2021.11.15 |
Lab 04     | 2021.11.15 | 2021.11.22 |
Lab 05     | 2021.12.06 | 2021.12.13 |
Lab 06     | 2022.01.03 | 2022.01.05 |
TBD