slipegg / CPU-with-54-instructions

同济大学计算机组成原理作业——使用Verilog HDL语言实现54条MIPS指令的CPU的设计和仿真和下板,在NEXYS 4 DDR Atrix-7开发板上完成。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CPU-with-54-instructions

同济大学计算机组成原理作业——使用Verilog HDL语言实现54条MIPS指令的CPU的设计和仿真和下板,在NEXYS 4 DDR Atrix-7开发板上完成。

配备有较为完整的设计文件,结合报告应该能看懂。

使用Verilog语言来设计CPU指令并不算难,但主要是比较繁琐,并且设计部分需要很大的功夫而且debug难度较大。

指令流程图

image

操作:Add rd,rs,rt ;rd←rs+rt,PC←NPC(PC+4) 所需部件:PC、NPC、IMEM、Regfile、ALU

image

操作:Addu rd,rs,rt ;rd←rs+rt,PC←NPC(PC+4) 所需部件:PC、NPC、IMEM、Regfile、ALU

image

操作:Sub rd,rs,rt ;rd←rs-rt,PC←NPC(PC+4) 所需部件:PC、NPC、IMEM、Regfile、ALU

...

具体54条指令的完整流程图可查看报告

总体数据通路图:

image

各指令所使用的部件及联系:

image

模块建模

整体模块结构如下:

image

实验结果

前仿真截图,调试过程将大量结果都输出出来好检查:

image

image

按提交要求得到的前仿真截图:

image

image

image

将寄存器的内容用文件输出出来:

image

后仿真截图:

image

可以看到相比于前仿真后仿真上面每一个指令都相较于PC后移了一些位置,即加入了门电路的延迟。

得到的时序报告:

image

下板图片:

image

数码管显示的PC值能稳定在004013d8的原因是最后是陷入了4013d4,4013d8,4013dc的死循环,这样数字叠加的结果就是如上了

About

同济大学计算机组成原理作业——使用Verilog HDL语言实现54条MIPS指令的CPU的设计和仿真和下板,在NEXYS 4 DDR Atrix-7开发板上完成。


Languages

Language:VHDL 56.0%Language:Verilog 14.8%Language:Shell 10.5%Language:HTML 8.1%Language:JavaScript 4.7%Language:Tcl 4.4%Language:Stata 0.9%Language:Batchfile 0.4%Language:Pascal 0.1%Language:Forth 0.1%