计算机硬件课程设计报告基于mips的31条指令集和ise软件的单周期cpu设计与实现.

上传人:哈**** 文档编号:137217923 上传时间:2020-07-06 格式:DOCX 页数:54 大小:1.43MB
返回 下载 相关 举报
计算机硬件课程设计报告基于mips的31条指令集和ise软件的单周期cpu设计与实现._第1页
第1页 / 共54页
计算机硬件课程设计报告基于mips的31条指令集和ise软件的单周期cpu设计与实现._第2页
第2页 / 共54页
计算机硬件课程设计报告基于mips的31条指令集和ise软件的单周期cpu设计与实现._第3页
第3页 / 共54页
计算机硬件课程设计报告基于mips的31条指令集和ise软件的单周期cpu设计与实现._第4页
第4页 / 共54页
计算机硬件课程设计报告基于mips的31条指令集和ise软件的单周期cpu设计与实现._第5页
第5页 / 共54页
点击查看更多>>
资源描述

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

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

2、器133.1设计思路:133丄2遇到的问题:173.1.3解决方法:173.2 ALU17321设计思路:17322遇到的问题:19323解决的方法:193.3取指部件193.3设计思路:19332遇到的问题:21333解决的方法:223.4寄存器堆223.4.1设计思路: 22342遇到的问题:23343解决的方法:233.5存储器243.5.1设计思路:243.5.2遇到的问题:263.5.3解决的方法:263.6数据通路273.6.1设计思路: 273.6.2遇到的问题: 29363解决的方法:29五、测试结果291-说明:292. 具体执行部分的截图:302.1 lw 指令302.2

3、add、addu 指令302.3 sub、subu 指令312.4 and、or 指令312.6 sll、sllu 指令322.8 sra、lv 指令332.9 sllv、srlv 指令3420srav、lw 指令342.11 jn addi 指令352.12addiu、andi 指令352.13 ori、xori 指令36241ui、sv 指令362.15hv、beq 指令372.16 bnc. slti 指令372.17sltiu、j 指令382.18jak lw 指令38六、课程设计总结39七、附录391. 测试程序:392. coe 文件: 42_、设计名称基于MIPS的31条指令集和

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

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

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

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

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

9、. sit, situB. 需要移位操作类:sll. srl. sra, sllv, srlv, sravC. 立即数操作类:addi. addiu. andi. ori, xori, slti, sltiu. luiD. 利用存储器操作类:sw, lwE. 跳转指令类:bcq. bnc. 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. sit, situB. 指令格式:31262521201615111065op (000000rsrtrdshamt (00000func)C. 指令特点:】)R型指令,指令类型是op和func同决定2) 这类指令op全为03) (rs), (rt)为ALU的源操作数4) rd为目的寄存器地址,ALU将结果写入D. 所盂

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

12、送到ALU两输入端ALU:根据控制信号ALUCtr(3:0)计算结果4) ALU-寄存器堆:将计算结果送到寄存器堆写数据端口 WriteD(31:0)G. 设计图4图1.1利用寄存器操作类指令数据通路图2.2.2需要移位操作类A.包含指令:sii. srl, sra, sllv. srlv, sravB.指令格式:312625212016151110-一65一0op(000000rsrtrdshamtfunc)C.指令特点:1)R型指令,指令类型是op和func共同决定2)这类指令op和rs全为03)(rt). shamt为ALU的源操作数,shamt需要拓展成32位4)rd为目的寄存器地址,

13、ALU或移位器将结果写入D. 所盅器件:1)取指部分PC寄存器、加法器(产生下一条PC)、ROM (存放指令)2) 执行部分寄存器堆、拓展器(拓展shamt)、控制器(产生控制信号)、移位器、选择器E. 所需信号:RcgWr:写寄存器堆倍号Arith:是否算术移位控制借号Right:是否右移信号ISSHIFT:是否有移位信号IsShamt:是否要用到shaml内容F. 操作步骤1) PC-ROM:将 PC 送入 ROM2) ROM-控制器:将指令的op, ftinc送入控制器控制器:产生 RcgWr, Arith, Right, IsShamt, ISSHIFTROM-寄存器堆:rs, rt送

14、入寄存器堆两个读地址端口 Ra(4:0)、Rb(4:0)rd送入寄存器堆写地址端口 Rv(4:0)ROM拓展器:shaml送入532位拓展器PC-加法器:改写PC3) 寄存器堆一移位器:寄存器堆输出(rt)到移位器数据端寄存器堆选择器:寄存器堆输出(rs)到选择器拓展器选择器:拓展器输出由shamt拓展的移位位数送入选择器 选择器一移位器:选择器根据控制依号IsShamt选择移位位数 移位器:根据控制佶号Arith和Right移位4) 移位器一寄存器堆:将计算结果送到寄存器堆写数据端口 WritcD(31:0)G. 完善设计图为了判断移位來H rs还是shaml.加入IsShamt控制佶号为了判断是原ALU还是移位器回写寄存器堆,加入回写寄存器堆选择佶号ISSHIFT2.2.3立即数操作类A.包含指令:addi. addin, andi* ori. xori. slti, sltiu* luiB.指令格式:31-2625212016150op )(000000r

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

当前位置:首页 > 大杂烩/其它

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