32位MIPS处理器设计实验报告

32位MIPS处理器设计实验报告

ID:43483938

大小:487.28 KB

页数:16页

时间:2019-10-07

32位MIPS处理器设计实验报告_第1页
32位MIPS处理器设计实验报告_第2页
32位MIPS处理器设计实验报告_第3页
32位MIPS处理器设计实验报告_第4页
32位MIPS处理器设计实验报告_第5页
资源描述:

《32位MIPS处理器设计实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数字逻辑与处理器基础实验32位MIPS处理器设计实验报告王晗(2013011076)July26,2015DatePerformed:July15,2015Partners:耿天毅(2012011119)陈志杰withdrawn1实验目的熟悉现代处理器的基本工作原理;掌握单周期和流水线处理器的设计方法。2设计方案2.1总体结构由于这次实验涉及的功能较多,我们将完整的CPU分成多个模块。指令存储器、寄存器堆、控制器、ALU控制器、ALU、数据存储器、UART等功能单元均在单独的Module中实现。其中指令存储器、寄存器堆

2、、控制器、ALU控制器、ALU等单元在SingleCycleCore中实例化,作为单周期处理器的核心;数据存储器、UART和定时器、LED、七段数码管、开关在Peripheral中实现,作为处理器的外设。处理器核心和外设在顶层模块中实例化,互相通信。单周期CPU模块的结构关系如Figure1所示:1Figure1:单周期处理器结构对于流水线CPU,我们还在PipelineCore中加入了流水线寄存器、冒险检测单元、数据转发单元:Figure2:流水线处理器结构22.2ALU1ALU模块的结构如图所示,输入两个操作数A、

3、B和控制信号ALUFun、Signed,在ARITH子模块中做加减法运算,CMP子模块根据ARITH模块的输出进行比较判断,LOGIC和SHIFT模块分别进行逻辑运算和移位运算,ALUFun的最高两位用于控制多路选择器的输出。Figure3:ALU结构ARITH模块ARITH模块中包括减法和加法两个模块,加法模块直接通过+号运算,减法模块先对第二个操作数取补码,再调用加法模块做加法运算。Overflow和Negative信号的产生是ALU中的难点:Figure4:ADD中的Overflow和Negative1原作者:陈

4、志杰;修改:王晗3其中pos为正数,neg为负数,big为MSB=1的无符号数,small为MSB=0的无符号数。Figure5:SUB中的Overflow和Negative图中的缩写含义同上。CMP模块CMP模块直接根据ARITH模块产生的Zero,Overflow,Negative进行关系判断。LOGIC模块LOGIC模块直接根据ALUFun[3:0]指定的逻辑运算进行运算。SHIFT模块将移位操作拆分为16位移位、8位移位、4位移位、2位移位、1位移位,分别用Shamt的每一个bit位控制,组合产生最后的运算结果

5、。2.3寄存器堆、指令存储器、数据存储器和外设2寄存器堆直接采用reg[31:0]RF_DATA[31:1]实现,注意RF_DATA[0]不存在,读取时直接返回0。指令存储器将机器码以十六进制文本的形式存放在.rom文件中,使用$readmemh系统任务初始化一个大小为256words的只读存储器。数据存储器由于数据存储器容量设计为256words,因此寻址时只根据address[9:2]寻址。另外,0x40000000开始的地址用于外设编址,因此数据存储器不对0x40000000开始的地址进行读写操作。其他外设定时器

6、、LED、Switch参考老师提供的样例代码直接在Peripheral.v中实现,UART使用春季学期第四次实验的UART发送和接收模块,将发送模块中Tx_Status的定义取反,即1表示发送端忙碌。UART的控制同样在Peripheral.v中实现,当0x40000018写入要发送的数据时,串口控制器自动产生一个发送使能信号。2作者:王晗42.4控制器和ALU控制器3控制单元采用两级控制的实现方法,在主控制器中根据OpCode和Funct产生PCSrc、RegWrite、RegDst、MemRead、MemWrite

7、、MemToReg、ALUSrc1、ALUSrc2、ExtOp、LuOp、ALUOp等控制信号,其中ALUOp经过ALU控制器进一步解码生成ALUFunc、Signed信号,控制ALU的运算,其余信号控制数据通路中的多路选择器。控制器还产生了UndefinedInst信号,用于识别未定义指令的异常。在单周期CPU中,PCSrc信号位宽为2,分别指示从PC+4、BranchTarget、JumpTarget、JumpRegister取出下一个指令地址,当发生中断或异常时,由Single-CycleCore直接跳转至中断或

8、异常服务程序入口。在流水线CPU中,为了方便流水线寄存器操作,将PCSrc信号位宽扩展至3,当发生中断或异常,PCSrc变为100或101,指示中断或异常服务程序入口。2.5单周期数据通路4Figure6:单周期数据通路3作者:王晗4作者:王晗5a.当没有中断或异常时,根据PCSrc取出下一个PC地址,并读取指令;否则跳转至中断或

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。