- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字逻辑与处理器基础实验
32 位 MIPS 处理器设计实验报告
王晗
(2013011076)
July 26, 2015
Date Performed: July 15, 2015 Partners: 耿天毅 (2012011119)
陈志杰 withdrawn
1 实验目的
熟悉现代处理器的基本工作原理;掌握单周期和流水线处理器的设计方法。
2 设计方案
2.1 总体结构
由于这次实验涉及的功能较多,我们将完整的 CPU 分成多个模块。指令存储器、寄存器堆、控制
器、ALU 控制器、ALU、数据存储器、UART 等功能单元均在单独的 Module 中实现。其中指令存储
器、寄存器堆、控制器、ALU 控制器、ALU 等单元在 Single Cycle Core 中实例化,作为单周期处理
器的核心;数据存储器、UART 和定时器、LED、七段数码管、开关在 Peripheral 中实现,作为处理 器的外设。处理器核心和外设在顶层模块中实例化,互相通信。
单周期 CPU 模块的结构关系如 Figure 1所示:
1
Figure 1: 单周期处理器结构
对于流水线 CPU,我们还在 Pipeline Core 中加入了流水线寄存器、冒险检测单元、数据转发单元:
Figure 2: 流水线处理器结构
2
2.2 ALU 1
ALU 模块的结构如图所示,输入两个操作数 A、B 和控制信号 ALUFun、Signed,在 ARITH 子
模块中做加减法运算,CMP 子模块根据 ARITH 模块的输出进行比较判断,LOGIC 和 SHIFT 模块分
别进行逻辑运算和移位运算,ALUFun 的最高两位用于控制多路选择器的输出。
Figure 3: ALU 结构
ARITH 模块 ARITH 模块中包括减法和加法两个模块,加法模块直接通过 + 号运算,减法模块先
对第二个操作数取补码,再调用加法模块做加法运算。Over?ow 和 Negative 信号的产生是 ALU 中的 难点:
Figure 4: ADD 中的 Over?ow 和 Negative
1原作者:陈志杰;修改:王晗
3
其中 pos 为正数,neg 为负数,big 为 MSB=1 的无符号数,small 为 MSB=0 的无符号数。
Figure 5: SUB 中的 Over?ow 和 Negative
图中的缩写含义同上。
CMP 模块 CMP 模块直接根据 ARITH 模块产生的 Zero, Over?ow, Negative 进行关系判断。
LOGIC 模块 LOGIC 模块直接根据 ALUFun[3:0] 指定的逻辑运算进行运算。
SHIFT 模块 将移位操作拆分为 16 位移位、8 位移位、4 位移位、2 位移位、1 位移位,分别用 Shamt
的每一个 bit 位控制,组合产生最后的运算结果。
2.3 寄存器堆、指令存储器、数据存储器和外设2
寄存器堆 直接采用 reg [31:0] RF_DATA[31:1] 实现,注意 RF_DATA[0] 不存在,读取时直接返回 0。
指令存储器 将机器码以十六进制文本的形式存放在.rom 文件中,使用 $readmemh 系统任务初始化
一个大小为 256words 的只读存储器。
数据存储器 由于数据存储器容量设计为 256words,因此寻址时只根据 address[9:2] 寻址。
另外,0开始的地址用于外设编址,因此数据存储器不对 0开始的地址进行读写
操作。
其他外设 定时器、LED、Switch 参考老师提供的样例代码直接在 Peripheral.v 中实现,UART 使用
春季学期第四次实验的 UART 发送和接收模块,将发送模块中 Tx_Status 的定义取反,即 1 表示发
送端忙碌。UART 的控制同样在 Peripheral.v 中实现,当 0写入要发送的数据时,串口控 制器自动产生一个发送使能信号。
2作者:王晗
4
2.4 控制器和 ALU 控制器3
控制单元采用两级控制的实现方法,在主控制器中根据 OpCode 和 Funct 产生 PCSrc、RegWrite、
RegDst、MemRead、MemWrite、MemToReg、ALUSrc1、ALUSrc2、ExtOp、LuOp、ALUOp 等控制
信号,其中 ALUOp 经过 ALU 控制器进一步解码生成 ALUFunc、Signed 信号,控制 ALU 的运算,其
余信号控制数据通路中的多路选择器。控制器还产生了 Unde?nedInst 信号,用于识别未定义指令的异 常。
在单周期 CPU 中,PCSrc 信号位宽为 2,分别指示从 PC+4、Branc
您可能关注的文档
最近下载
- 3.1 电离平衡 课件【新教材】人教版高中化学选择性必修一(共42张PPT).pptx VIP
- 2024年人教版必修一第二章氧化还原反应第一课时 课件 29PPT.ppt VIP
- 平面向量测试题高考经典试题附详细答案解析.doc VIP
- (高清版)T 30366-2024 生物质术语.pdf VIP
- 汽车消费复杂行为分析报告.pptx VIP
- 交通事故和解赔偿协议书范本.docx VIP
- 弘扬抗战精神+担当育人使命.pptx VIP
- 《氧化还原反应》优教课件(第一课时).pptx VIP
- 变频器在石油化工行业中的应用案例.pptx VIP
- 全南2019年招聘中小学幼儿园教师工作方案.doc VIP
文档评论(0)