【计算机硬件课程设计报告】基于MIPS的条指令集和ISE软件的单周期CPU设计与实现.docx

上传人:bao****ty 文档编号:132354469 上传时间:2020-05-14 格式:DOCX 页数:51 大小:1.69MB
返回 下载 相关 举报
【计算机硬件课程设计报告】基于MIPS的条指令集和ISE软件的单周期CPU设计与实现.docx_第1页
第1页 / 共51页
【计算机硬件课程设计报告】基于MIPS的条指令集和ISE软件的单周期CPU设计与实现.docx_第2页
第2页 / 共51页
【计算机硬件课程设计报告】基于MIPS的条指令集和ISE软件的单周期CPU设计与实现.docx_第3页
第3页 / 共51页
【计算机硬件课程设计报告】基于MIPS的条指令集和ISE软件的单周期CPU设计与实现.docx_第4页
第4页 / 共51页
【计算机硬件课程设计报告】基于MIPS的条指令集和ISE软件的单周期CPU设计与实现.docx_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《【计算机硬件课程设计报告】基于MIPS的条指令集和ISE软件的单周期CPU设计与实现.docx》由会员分享,可在线阅读,更多相关《【计算机硬件课程设计报告】基于MIPS的条指令集和ISE软件的单周期CPU设计与实现.docx(51页珍藏版)》请在金锄头文库上搜索。

1、计算机硬件课程设计设计报告学号: 09012328 姓名: 唐志灏 成绩: 学号: 09012317 姓名: 王凯健 成绩: 东南大学计算机科学与工程系二0一四年十一月目录目录1一、设计名称1二、实验目的和任务1三、本设计的主要特色(主要体现自己的设计特色)1四、设计方案21. 本设计的体系结构21.1数据结构及表示21.2寻址方式21.3寄存器组织21.4 指令系统21.5 存储系统22. 数据格式和指令系统(列出自己已经完成的指令)32.1数据格式32.2指令格式32.2.1利用寄存器操作类32.2.2需要移位操作类52.2.3立即数操作类62.2.4利用存储器操作类82.2.5跳转指令类

2、93. 各部件的设计与特色133.1控制器133.1.1设计思路:133.1.2遇到的问题:173.1.3解决方法:173.2 ALU173.2.1设计思路:173.2.2遇到的问题:193.2.3解决的方法:193.3取指部件193.3.1设计思路:193.3.2遇到的问题:213.3.3解决的方法:223.4寄存器堆223.4.1设计思路:223.4.2遇到的问题:233.4.3解决的方法:233.5存储器243.5.1设计思路:243.5.2遇到的问题:263.5.3解决的方法:263.6数据通路273.6.1设计思路:273.6.2遇到的问题:293.6.3解决的方法:29五、测试结果

3、291. 说明:292. 具体执行部分的截图:302.1 lw指令302.2 add、addu指令302.3 sub、subu指令312.4 and、or指令312.6 slt、sltu指令322.8 sra、lw指令332.9 sllv、srlv指令342.10 srav、lw指令342.11 jr、addi指令352.12 addiu、andi指令352.13 ori、xori指令362.14 lui、sw指令362.15 lw、beq指令372.16 bne、slti指令372.17 sltiu、j指令382.18 jal、lw指令38六、课程设计总结39七、附录391. 测试程序:39

4、2. coe文件:42一、设计名称基于MIPS的31条指令集和ISE软件的单周期CPU设计与实现二、实验目的和任务1. 综合运用计算机组成原理与数字电路等课程的知识,进行单周期CPU的设计与动手实践,培养实际动手和工程设计的能力。2. 熟悉并掌握ISE平台的操作,并会熟练地运用于硬件的设计、实现及测试。3. 熟练掌握MIPS的31条指令集中各个指令的各个指令及其操作特点。4. 加深对CPU内部数据通路、各个工作器件的设计、实现及工作原理的掌握。理解各个内部元器件受时序的控制原理及实现。5. 在测试过程中加深对单周期CPU设计思想、工作特点的理解。6. 将CPU下载到FPGA板中,掌握FPGA的

5、使用方法7. 实现和外设之间的连接和使用外设控制设备。三、本设计的主要特色(主要体现自己的设计特色)1. 实现了所有31条指令。2. 功能件复用,模块化。3. 控制器在设计时采用了模块化的设计方法,使得控制线不需要对指令进行化简,便于拓展新的指令和新的控制线。4. 数据通路设计过程中,由简至繁,在原有功能的基础上使用易扩展的方式增加元器件,减少了画图工作量,同时为增加新的功能提供良好的接口。5. 所有指令都在一个周期内执行完毕。6. 只有一个时钟源,同时能满足一个时钟周期内修改寄存器和存储器、跳转等复杂操作。四、设计方案1. 本设计的体系结构1.1数据结构及表示所有数据及指令都采用32位数据结

6、构表示,在部件之间的数据传输(出来控制指令)也是32位数据,方便数据传送及器件设计。1.2寻址方式指令的寻址方式采用顺序寻址方式与跳跃寻址方式结合的方式。指令地址在内存中按顺序安排,当执行一段程序时,默认顺序进行。使用程序计数器(又称指令指针寄存器)PC来计数指令的顺序号,该顺序号就是指令在内存中的地址。当程序转移执行的顺序时,指令的寻址就采取跳跃寻址方式。所谓跳跃,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出。指令系统中的各种条件转移或无条件转移指令,就是为了实现指令的跳跃寻址而设置的。1.3寄存器组织32个寄存器混合使用,没有特定的寄存器类型限制,便于程序使用。其中0号寄存

7、器始终为0。1.4 指令系统具体指令设计采用了成熟的指令设计方案,分为R型、J型、I型三种指令格式,具体见附件MIPS指令集.pdf1.5 存储系统采用RAM与ROM独立编址的方法,32位地址,按字节编址,最大空间4GB。2. 数据格式和指令系统(列出自己已经完成的指令)2.1数据格式在数据传输上,由于我们所有数据最终都是32位的结果,在使用的元器件的数据和地址端都以32位为标准,便于在后续的操作中的操作。在实际使用的器件中,由于RAM与ROM的局限性(使用了ISE提供的IPcore实现),必须字节编址,每行数据占据4个字节,所以在最后的PC上每次的地址跳转必须为4的倍数,是需要注意的一点。2

8、.2指令格式31条 指令,直接设计相当困难,但是如果仔细分析这些指令,发现它们之间有不少共同特点。除了指令系统结构本来分成的R、I、J型指令之外,在分析具体需求(如指令的源操作数、目的操作数来源,指令需要的信号和部件等)后,继续将操作与功能类似的指令分为同一类、而在同一类指令中的逻辑设计往往十分相似,仅仅是部分控制信号有区别。在前期ALU的设计中,为了减少ALU的控制器复杂度,我们尽量简化了ALU的功能,只在原来加减法的基础上拓展了逻辑运算与比较功能,在最后的数据通路中直接实现各个移位操作。最终的指令可以分为以下五类:A. 利用寄存器操作类:add,addu,sub,subu,and,or,x

9、or,nor,slt,sltuB. 需要移位操作类:sll,srl,sra,sllv,srlv,sravC. 立即数操作类:addi,addiu,andi,ori,xori,slti,sltiu,luiD. 利用存储器操作类:sw,lwE. 跳转指令类:beq,bne,jr,j,jal在指令再次分类后,需要对各类指令进行逐条分析,在分析过程中可以逐渐了解所需的元器件和具体的控制信号。不用修改原来已经存在的电路图,只需要在电路图上增加所需新器件,在最后合成数据通路时仅需修改部分连接线路即可。分析时并不考虑具体元器件内部实现细节,只关注与指令所需控制信号的生成,是控制器设计的基础。在分析过程中可能

10、用到的符号:rs,rt,rd 寄存器地址(rs),(rt),(rd) 寄存器中内容A 地址为A中存储器(RAM)中的内容2.2.1利用寄存器操作类A. 包含指令:add,addu,sub,subu,and,or,xor,nor,slt,sltuB. 指令格式:31-2625-2120-1615-1110-65-0op(000000)rsrtrdshamt(00000)funcC. 指令特点:1) R型指令,指令类型是op和func共同决定2) 这类指令op全为03) (rs),(rt)为ALU的源操作数4) rd为目的寄存器地址,ALU将结果写入D. 所需器件:1) 取指部分PC寄存器、加法器

11、(产生下一条PC)、ROM(存放指令)2)执行部分寄存器堆、ALU(计算)、控制器(产生控制信号)E. 所需信号:ALUCtr(3:0):ALU操作类型控制信号RegWr:写寄存器堆信号F. 操作步骤1) PCROM:将PC送入ROM2) ROM控制器:将指令的op,func送入控制器 控制器:产生ALUCtr(3:0),RegWr ROM寄存器堆:rs,rt送入寄存器堆两个读地址端口Ra(4:0)、Rb(4:0) rd送入寄存器堆写地址端口Rw(4:0) PC加法器:改写PC3) 寄存器堆ALU:寄存器堆输出(rs)、(rt)送到ALU两输入端 ALU:根据控制信号ALUCtr(3:0)计算

12、结果4) ALU寄存器堆:将计算结果送到寄存器堆写数据端口WriteD(31:0)G. 设计图图1.1 利用寄存器操作类指令数据通路图2.2.2需要移位操作类A. 包含指令:sll,srl,sra,sllv,srlv,sravB. 指令格式:31-2625-2120-1615-1110-65-0op(000000)rsrtrdshamtfuncC. 指令特点:1) R型指令,指令类型是op和func共同决定2) 这类指令op和rs全为03) (rt),shamt为ALU的源操作数,shamt需要拓展成32位4) rd为目的寄存器地址,ALU或移位器将结果写入D. 所需器件:1) 取指部分PC寄

13、存器、加法器(产生下一条PC)、ROM(存放指令)2)执行部分寄存器堆、拓展器(拓展shamt)、控制器(产生控制信号)、移位器、选择器E. 所需信号:RegWr:写寄存器堆信号Arith:是否算术移位控制信号Right:是否右移信号ISSHIFT:是否有移位信号IsShamt:是否要用到shamt内容F. 操作步骤1) PCROM:将PC送入ROM2) ROM控制器:将指令的op,func送入控制器 控制器:产生RegWr,Arith,Right,IsShamt,ISSHIFT ROM寄存器堆:rs,rt送入寄存器堆两个读地址端口Ra(4:0)、Rb(4:0) rd送入寄存器堆写地址端口Rw

14、(4:0) ROM拓展器:shamt送入5-32位拓展器 PC加法器:改写PC3) 寄存器堆移位器:寄存器堆输出(rt)到移位器数据端 寄存器堆选择器:寄存器堆输出(rs)到选择器 拓展器选择器:拓展器输出由shamt拓展的移位位数送入选择器 选择器移位器:选择器根据控制信号IsShamt选择移位位数 移位器:根据控制信号Arith和Right移位4) 移位器寄存器堆:将计算结果送到寄存器堆写数据端口WriteD(31:0)G. 完善设计图为了判断移位来自rs还是shamt,加入IsShamt控制信号为了判断是原ALU还是移位器回写寄存器堆,加入回写寄存器堆选择信号ISSHIFT2.2.3立即数操作类A. 包含指令:addi,addiu,andi,ori,xor

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号