用Verilog实现一个简易RISC-V指令集CPU软核。
本次实验是重庆大学2022级弘深计算机拔尖班计算机组成原理的实验项目。
一. 想说的话
在开始做实验之前,首先要对CPU的物理结构和数据是如何在regfile, data_memory, instr_memory、alu中传输的有比较清晰的认知。建议观看视频: 从0到1设计一台计算机,掌握理论知识。
在看完视频后,可以先跟着这个教你写一个简单的CPU视频,实现一个简单的MIPS指令集CPU软核,掌握实践知识。不用完全写对,跟着写一遍知道各个模块是如何互相运作的即可。因为视频中没有测试文件测试各个模块,都是一口气写下来的。所以最终版仿真是跑不起来的,因为存在诸多bug。
然后,最好在系统学习完一遍计组的理论知识(尤其是流水线冒险)后,再去写RISC-V指令集的软核。或者边学边做也行。我就是在全部写完后,才去学的计组理论知识,所以写出来的软核在冒险那一块是存在几个bug的,已经懒得调了。到时候下半年参加龙芯杯的时候反正也要再一个cpu,把这个遗憾留到龙芯杯解决就是了。
二. 思路
有啥思路?拿到设计图干就完事了,把线连好就行了,没啥难度。
代码已开源:RISCV_CPU(Chongqing University Computer Organization Principles Course Project)