[SystemVerilog] MIPS架构下的五级流水线CPU设计

完整代码已上传 github


众所周知,MIPS体系的五级流水线CPU分为五个阶段:取指(IF)、译码(ID)、执行(EX)、存储器(MEM)、写回(WB)。所以这根本算不上“设计”,基本上就是把这个图翻译一遍:
在这里插入图片描述
可以发现节点数比较多,为了减少出错(对自己静态调试能力较为自信.jpg),那么程序的框架就显得非常重要了。
我采用了按阶段划分的方式,每个阶段作为一个模块写在一个 .sv 里,然后ALU、内存、寄存器文件又单列出来,最后在顶层处理模块间的连线和冲突模块的设计。

举例来说,如下图,执行阶段(EX.sv)描述绿框内的电路,这个模块的输入大致为蓝线上的节点,输出大致为红线上的节点。这里的大致是因为还有一些需要用到的节点是不在这里面的(比如解决冲突连出来的)。
请添加图片描述

这样做的好处是每个模块独立性较强,几十行代码即可解决,静态查错比较方便;模块间连接也比较规范,很好处理。坏处就是一个节点名会敲很多次…
最后代码加起来好像还没有数字钟长?

体系结构实验资料说明 1 实验材料-静态5级流水 MIPS CPU实现.docx 实验内容文档 2 体系结构实验课_V1.ppt 讲解PPT 3 报告模板.docx 报告封皮 4 Basys3实验指导手册-V1.0.pdf basys3 板卡资料 5 verilog示例代码rtl_code ppt讲解代码示例(流水线代码,单周期CPU代码) 6 pipelinecpu_prj_err 方案1题目建立的工程(工程示例,未调试通过。1,修改CPU设计代码 2,testbench验证 3.下载板卡验证) 6.2 pipelinecpu_code 方案1原始代码,未创建工程 7 minimipsb3 柴可版本的实验题目(方案2) 8 mips编译器 用于编译生成2进制文件 静态5级流水 MIPS CPU实现 1 实验目的 1. 掌握流水处理器设计原理。 2. 熟悉并运用verilog语言进行电路设计。 2 实验设备 1. 装有Xilinx Vivado的计算机一台。 2. Basys-3实验板一块。 3 实验任务 1) 设计一款静态5级流水简单MIPS CPU。 基于单周期MIPS处理器设计,修改完成5级流水的MIPS处理器,5级流水的时空图如图1所示。 2) 本次课程设计设计框图。 5个部件都是同时运转,但对每条指令而言,依然是依次工作的,如图2所示。 3) 流水线处理器设计要求 本次实验内容暂不考虑前递技术,主要实现阻塞控制。 MIPS架构有延迟槽设定,处理器设计要支持延迟槽技术。 MIPS 架构中分支和跳转指令参与计算的PC 值均为延迟槽指令对应的PC(即分支跳转指令的PC+4),在本课程设计中尤其需要注意这一点。比如一条指令“beq,r0,r0,#2”在不考虑延迟槽的多周期CPU 中,其跳转的目标地址为beq 指令后面的第2条。而在考虑延迟槽的流水CPU 中,其跳转的目标地址为beq 指令后面的第3 条(即延迟槽指令后面的第2 条)。在编写测试程序时就需要注意分支跳转指令的偏移量。 4)指令系统 4 设计步骤 1) 分析掌握单周期MIPS处理的设计框图和设计代码。 2) 对单周期处理器进行流水线改造。 3) 通过IP核形式增加指令存储器和数据存储器。 4) 完成SOC顶层设计 顶层接口信号描述 5) 编写测试程序和testbench进行仿真测试。 6)(进阶设计内容)增加数码管单元,下载板卡调试。 哈工大体系结构实验报告包含代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值