同济大学计算机组成原理作业——使用Verilog HDL语言实现54条MIPS指令的CPU的设计和仿真和下板,在NEXYS 4 DDR Atrix-7开发板上完成。
配备有较为完整的设计文件,结合报告应该能看懂。
使用Verilog语言来设计CPU指令并不算难,但主要是比较繁琐,并且设计部分需要很大的功夫而且debug难度较大。
操作:Add rd,rs,rt ;rd←rs+rt,PC←NPC(PC+4) 所需部件:PC、NPC、IMEM、Regfile、ALU
操作:Addu rd,rs,rt ;rd←rs+rt,PC←NPC(PC+4) 所需部件:PC、NPC、IMEM、Regfile、ALU
操作:Sub rd,rs,rt ;rd←rs-rt,PC←NPC(PC+4) 所需部件:PC、NPC、IMEM、Regfile、ALU
...
具体54条指令的完整流程图可查看报告
总体数据通路图:
各指令所使用的部件及联系:
整体模块结构如下:
前仿真截图,调试过程将大量结果都输出出来好检查:
按提交要求得到的前仿真截图:
将寄存器的内容用文件输出出来:
后仿真截图:
可以看到相比于前仿真后仿真上面每一个指令都相较于PC后移了一些位置,即加入了门电路的延迟。
得到的时序报告:
下板图片:
数码管显示的PC值能稳定在004013d8的原因是最后是陷入了4013d4,4013d8,4013dc的死循环,这样数字叠加的结果就是如上了