- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CPU实验报告..doc
武 汉 大 学
开放式CPU设计实验报告
专 业:物联网
姓 名:张三 同组姓名:林文 王伟
2012年5月
1. 设计报告7
1.1 实验目的7
1.2 实验方法 7
1.3 总体说明 9
1.4 各部分说明 13
2.测试报告 47
2.1 测试程序 47
2.2 测试结果 49
2.3 性能分析 49
3.总结 49
3.1 实验总结 49
3.2 取得的收获 49
3.3 意见与建议 50
1. 设计报告
1.1 实验目的
与以往的CPU教学实验不同,这次的“开放式教学CUP设计与测试系统”中使用另
外一个成品CUP专门运行监控程序,另外还能够将各种测试程序自动转换成用实验者所设计的指令系统表示的目标代码,并且能够在实验装置上运行、调试和测试所生成的目标代码。
有了这样的改进,我们做实验就有了新的要求和任务:学会使用先进的硬件设计工具和超大规模集成电路FPGA设计并实现一个CPU芯片。要求采用先进的工具软件进行模拟和测试,测试通过后再下载到FPGA中制成CPU芯片。在过程中需要掌握的主要就是CPU的设计、验证和测试方法,以及学会相关工具软件的使用方法。
1.2 实验环境
软件:QuartusII 5.2,完成指令集设计、逻辑设计后,用于各个功能模块的VHDL语言程序编写、编译以及FPGA-CPU的软件模拟;
Debug Controller,用于软件模拟成功后的硬件调试。
硬件:FPGA (Field Programmable Gate Array),即现场可编程门阵列FPGA具有掩膜可编程门阵列的通用结构,它由逻辑功能块排成阵列组成,并由可编程互联资源连接这些逻辑功能块来实现不同的设计。
(VHDL语言程
其中指令系统和逻辑结构的设计主要参考了附录所列的文献。主要的方法是先确定CPU所要实现的功能,根据寄存器等的情况划分指令格式,然后根据功能写出指令,根据不同指令的特点将它们分组并确定操作码;接下来设想每条指令的执行过程,需要哪些硬件支持,最后确定整个CPU的逻辑结构图。
在各个功能模块的实现中主要使用了自底向上的设计方法。先实现寄存器,再实现寄存器组,等等,最后将各个器件和模块之间互连,得到顶层设计图。但有些逻辑的设计实现方法也涉及到顶向下的方法。要注意的是,根据各个信号所对应的管脚可以画出如下的FPGA-CPU顶视图:
可以看出在这个顶层模型中有一些信号并不是CPU本身必须的,比如寄存器选择信号,主要是为调试和检查服务的。为此还需要在设计中加入一些译码电路以输出各个通用寄存器和指令寄存器等的内容。从这个角度说,在设计中还使用了自顶向下的方法。
软件模拟和硬件调试并无太多方法可言,主要是仔细观察和全面考虑,把各种可能性都验证到。
1.4 总体说明
1、指令系统:
计算机的指令是用户使用计算机与计算机本身运行的最小功能单位。一台计算机支持的全部指令就构成该机的指令系统。从计算机本身的组成看,指令系统直接与计算机系统的性能和硬件结构的复杂程度等密切相关,它是CPU设计的起始点和基本依据。
设计指令系统的核心问题是选定指令的格式和功能。具体到我们的设计来说,指令的功能应该包括简单的算术和逻辑运算,移位操作,数据传送,跳转,读写内存,另外还可能包括一些其他功能如置条件码等。
为了指令的规整性和便于译码,我们主要采用了定长的操作码组织方案,操作码为8位。寻址方式包括了寄存器寻址、立即数寻址、直接地址和相对寻址。
指令格式分类(按指令字长和操作数不同):
① 单字单操作数指令
15 8 7 4 3 0 OPCODE DEST_REG 0000
OPCODE OFFSET
包括:DEC,INC,SHL,SHR,JR,JRC,JRNC,JRZ,JRNZ,JRS,JRNS
② 单字双操作数指令
15 8 7 4 3 0 OPCODE DEST_REG SOUR_REG
包括:ADD,SUB,AND,CMP,XOR,TEST,OR,MVRR,ADC,SBB,LDRR,STRR
③ 单字无操作数指令
15 8 7 4 3 0 OPCODE 0000 0000
包括:CLC,STC
④ 双字单
文档评论(0)