实验九 单周期MIPS CPU设计实验(基于Logisim)

一、实验目的

学生掌握控制器设计的基本原理,能利用硬布线控制器的设计原理在Logisim平台中设计实现MIPS单周期CPU。

二、实验内容

利用运算器实验,存储系统实验中构建的运算器、寄存器文件、存储系统等部件以及Logisim中其它功能部件构建一个32位MIPS CPU单周期处理器。数据通路如下图所示:

要求支持8条MIPS核心指令,最终设计实现的MIPS处理器能运行实验包中的冒泡排序测试程序sort.asm,该程序自动在数据存储器0~15号字单元中写入16个数据,然后利用冒泡排序将数据升序排序,要求统计指令条数并与MARS中的指令统计数目进行对比。

####电路引脚

信号 输入/输出 位宽 功能描述
CLK 输入 1 时钟信号
PC 输出 32 程序寄存器的值
IR 输出 32 当前指令字
RegWrite 输出 1 寄存器文件写使能控制信号
RDin 输出 32 寄存器文件写入端口的数据
MemWrite 输出 1 存储器写使能控制信号
MDin 输出 32 存储器写入端口的数据

三、方案设计

1)单周期MIPS控制器设计

2)单周期MIPS数据通路:

3)单周期MIPS(硬布线)总体电路

4)单周期硬布线控制器

1、指令译码逻辑的设计,该实验只涉及8条核心的MIPS指令。而这8条MIPS指令的指令字段已经在附件中给出,并且电路底部文字也给出了关于SYSCALL的提示,因此,这部分只需根据相应的OP和FUNC字段进行简单地逻辑比较就可实现。

2、ALU控制逻辑的设计,由于该MIPS CPU设计中有关的8条核心MIPS指令中,对于ALU运算逻辑单元中只涉及到加法和比较,因此这一部分可以大大简化。只有运行STL指令时,需要选择比较运算,其余都是加法运算。

3、对于控制器输出信号的设计,则要根据硬布线控制器中所包含的9中控制信号进行分析,如下图。主要考虑每种控制信号的产生条件。这里更高的要求是掌握8条核心指令集在执行时全部周期中所设计的控制信号,已经使用相应控制信号的作用

四、测试结果

五、故障与调试

问题:在平台提交的时候提示 cannot find Jar library cs3410.jar。

出现以上故障可能有两种原因:

一是没有在中国大学mocc上下载cs3410.jar扩展包。

二是本地 cs3410.jar 和测试平台中的 cs3410.jar 路径不一样。一般建议本地的 jar 文件和 cpu.circ 文件在同一目录下,如果出现这个问题,可以调整将本地 cs3410.jar 先移动到 cpu.circ 同目录下后,打开 cpu.circ,logisim 会提示找不到 cs3410.jar,重新指向同目录 cs3410.jar,存盘退出,再重新上传电路文本内容,即可解决这个问题。

六、实验总结与心得体会

本次实验主要完成了以下工作:设计实现了单周期MIPS CPU

数据通路、单周期MIPS CPU 硬布线控制器指令译码逻辑、单周期MIPS CPU硬布线控制器ALU控制逻辑、单周期MIPS CPU 硬布线控制器控制信号逻辑。并且最终设计实现的MIPS处理器能运行实验包中的冒泡排序测试程序sort.asm。本次实验我学会了单周期MIPS CPU的设计方法,感到收获颇丰、受益匪浅。

相关推荐
智感子1 小时前
测控链路:从传感器到上位机
人工智能·嵌入式硬件·fpga开发
新晨单片机设计3 小时前
S021A-基于STM32单片机自动追光系统(步进电机)【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus·自动追光系统
恒锐丰科技林技术员5 小时前
EG2129 带过流保护全桥驱动芯片解析
经验分享·嵌入式硬件·硬件工程
女神下凡8 小时前
芯参谋(43):DDR4_电路设计指南
arm开发·单片机·嵌入式硬件·设计规范
电子元器件选型哥8 小时前
MOS管驱动电阻怎么选?阻值大小到底影响什么?
单片机·嵌入式硬件·硬件工程师·半导体·电子元器件
lhbweilai9 小时前
深挖FreeRTOS内核实现(三)
c语言·stm32·单片机
白搞电子9 小时前
ESP32-S31 上做可在线安装的 WASM 应用平台:0.4.9 Beta 发布
单片机·嵌入式硬件·物联网
水果里面有苹果9 小时前
48-AS5600旋转磁编码器
嵌入式硬件
iCxhust9 小时前
8088的nmi中断能关闭吗?
嵌入式硬件·8088单板机
黑妹天下第一乖14 小时前
第 08 讲:阿加犀 AidGenSE 端侧大模型服务化与 OpenAI 兼容接口
人工智能·嵌入式硬件·深度学习·机器人·iot