目录
实验目的:第1关:单周期MIPS CPU设计第2关:微程序地址转移逻辑设计第3关.MIPS微程序CPU设计第4关.硬布线控制器状态机设计第5关.多周期MIPS硬布线控制器CPU设计(排序程序)测试结果:实验目的:
1、理解计算机中的重要部件存储器和CPU。
2、能利用所学理论知识进行设计 MIPS 寄存器堆、MIPS RAM 存储器扩展,利用所学习的 cache 的基本原理设计硬件 cache。
3、能利用硬布线控制器的设计原理在 Logisim 平台中设计实现支持五条指令的 MIPS 单周期 CPU。
4、能利用硬布线控制器以及微程序控制器的原理设计实现 MIPS 多周期 CPU。
第1关:单周期MIPS CPU设计
1.原理
(1)构建MIPS主机通路
参考慕课给出的实验电路图,可以连接得到通路如下面的硬件设计图。主要利用一个硬布线控制器,指令寄存器,PC计数器、寄存器堆(之前实验中的MIPS寄存器文件),ALU加法器(已经封装好的),数据存储器来实现。这里的连接就按照给出的框图进行连接就可以了。
停机是靠位于左上方的计数器,计算周期数。在计数器中设置最大值为224,当周期达到224时即可停机。
(2)设计单周期MIPS控制器
首先是指令译码逻辑的设计,该实验只涉及8条核心的MIPS指令。而这8条MIPS指令的指令字段已经在附件中给出,并且电路底部文字也给出了关于SYSCALL的提示,因此,这部分只需根据相应的OP和FUNC字段进行简单地逻辑比较就可实现。
其次,是ALU控制逻辑的设计,由于该MIPS CPU设计中有关的8条核心MIPS指令中,对于ALU运算逻辑单元中只涉及到加法和比较,因此这一部分可以大大简化。只有运行STL指令时,需要选择比较运算,其余都是加法运算。
最后,对于控制器输出信号的设计,则要根据硬布线控制器中所包含的9中控制信号进行分析,如下图。主要考虑每种控制信号的产生条件。这里更高的要求是掌握8条核心指令集在执行时全部周期中所设计的控制信号,已经使用相应控制信号的作用。
2.设计硬件布线图
(1)构建MIPS主机通路
(2)设计单周期MIPS控制器
,
测试结果如下:
第2关:微程序地址转移逻辑设计
1.原理
主要根据的下面这个指令状态变换图,这个状态图是整个微程序CPU设计的核心。根据这个图,在微程序地址转移逻辑自动生成Excel表中可以自动生成地址转移逻辑。
在相应的EXCEL表中进行填写,主要是关于机器指令信号及其相关的微程序入口地址的填写。填写完毕后,利用Logisim的自生成功能,就可以实现电路要求的功能了。
2.设计硬件布线图
在相应的EXCEL表中进行填写机器指令信号及其相关的微程序入口地址的填写。填写完毕后,利用Logisim的自生成功能,就可以实现电路要求的功能。
第3关.MIPS微程序CPU设计
1.原理
(1).构建多周期MIPS CPU数据通路
参考慕课给出的实验电路图,可以连接得到通路如下面的硬件设计图。主要利用一个多周期微程序控制器,指令寄存器,数据寄存器,PC计数器、寄存器堆MPIS Regifile,ALU运算器,三个寄存器来实现。按照给出的框图进行连接。
(2).设计微程序控制器
首先是指令译码逻辑的设计,该实验只涉及8条核心的MIPS指令。而这8条MIPS指令的指令字段已经在附件中给出,并且电路底部文字也给出了关于SYSCALL的提示,因此,这部分只需根据相应的OP和FUNC字段进行简单地逻辑比较就可实现。
其次就是ALU控制逻辑的设计,由于该MIPS CPU设计中有关的8条核心MIPS指令中,对于ALU运算逻辑单元中只涉及到加法和比较。只有运行STL指令时,需要选择比较运算,其余都是加法运算。
最后就是对控制器输出信号的设计了,根据硬布线控制器中所包含的9中控制信号进行分析,主要考虑每种控制信号的产生条件。这里更高的要求是掌握8条核心指令集在执行时全部周期中所设计的控制信号,已经使用相应控制信号的作用。
2.设计硬件布线图
(1).构建多周期MIPS CPU数据通路
(2).设计微程序控制器
完成二,三的设计之后,需要进行最后一步CPU测试,在数据通路的指令存储器中加载sort镜像文件,在经过891个时钟周期后会正确停机,并可以看到数据存储器中有降序排列数,放到测试平台也测试通过了。
第4关.硬布线控制器状态机设计
1.原理
状态机的主要功能是将状态转换为信号组合逻辑,实验中已经给出了引脚,非门以及一些必要的连接,完成这个实验的工作量可以说是很小的。按照如下图的状态图,可以参考电路的框架,只需要按照这个框架,继续通过与门和或门来连接N0-N3即可。
2.设计硬件布线图
第5关.多周期MIPS硬布线控制器CPU设计(排序程序)
1.原理
(1)构建多周期MIPS CPU数据通路
参考慕课给出的实验电路图,可以连接得到通路如下面的硬件设计图。主要利用一个硬布线控制器,指令寄存器,PC计数器、寄存器堆,ALU运算器,数据存储器来实现。按照给出的框图进行连接就可以了。
(2)设计硬布线控制器
首先是指令译码逻辑的设计,该实验只涉及8条核心的MIPS指令。而这8条MIPS指令的指令字段已经在附件中给出,并且电路底部文字也给出了关于SYSCALL的提示,因此,这部分只需根据相应的OP和FUNC字段进行简单地逻辑比较就可实现。
其次就是ALU控制逻辑的设计,由于该MIPS CPU设计中有关的8条核心MIPS指令中,对于ALU运算逻辑单元中只涉及到加法和比较。只有运行STL指令时,需要选择比较运算,其余都是加法运算。
接着就是对控制器输出信号的设计了,根据硬布线控制器中所包含的9中控制信号进行分析,主要考虑每种控制信号的产生条件。这里更高的要求是掌握8条核心指令集在执行时全部周期中所设计的控制信号,已经使用相应控制信号的作用。
最后,根据的指令状态变换图,在微程序逻辑自动生成Excel表中输入现态,指令译码信号,就可以自动生成次态逻辑表达式了。
2.设计硬件布线图
(1)构建多周期MIPS CPU数据通路
(2)设计硬布线控制器
完成四,五的设计之后,需要进行最后一步CPU测试,在数据通路的指令存储器中加载sort镜像文件,在经过891个时钟周期后会正确停机,并可以看到数据存储器中有降序排列数,放到测试平台也测试通过了。