计算机系统结构实验报告..docVIP

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机系统结构实验报告.

电 子 科 技 大 学 实 验 报 告 学生姓名: 学 号: 一、实验室名称:计算机学院实验中心 二、实验项目名称:计算机系统结构课程实验 三、实验原理: 1. 由教师给出一个具有基本功能的Verilog HDL流水线源代码; 2. 学生完成下面3个方面的内容: (1)自行设计汇编伪指令格式,完成一个能把自己的汇编指令转换成流水线CPU能够识别的二进制指令的汇编器,实现语言不限; (2)自行设计能够解决数据相关的机制并基于源代码进行扩展; (3)自行设计能够解决控制相关的机制并基于源代码进行扩展。 四、实验目的: 帮助学生理解流水线的运行机制和基于Verilog HDL硬件描述语言的实现技术。 五、实验内容: (一) 基本流水线分析 1.1 认真阅读和理解源代码,请详细按要求回答每个问题。 源代码中文件是按什么样的规律来组织的? 答:按照子模块组织源代码文件。模块pipelinedcpu_tb用来控制CPU的时钟等信号,调用pipelinedcpu模块(假定为1级模块,最高级),1级模块中按顺序调用各个周期以及周期与周期之间的中间寄存器模块(假定为2级模块),2级模块中调用各自部件模块(假定为3级模块)。模块pipelinedcpu用来控制每级流水线及流水线级之间的控制信号,寄存器信息,其余子模块用来具体实现每一级流水线的功能。 存储器的实现方式? 答:用一个二维数组reg [31:0] ram [0:31] 实现,其中第一维代表32位地址,第二维代表32位数据 接口有:32位输入数据和输出,32位地址,一个同步时钟脉冲clk,一个控制写入的信号we 先对二维数组进行初始化 读数据时不需要时钟脉冲的激励,写数据时需要时钟脉冲的上升沿激励信号并且we信号为1 源代码文件中的流水线与我们课堂上讲的原理电路图有何相同之处,有何不同之处 答:相同:WB级,写回级使用2路32位的多路选择器来选择是获取ALU的计算结果还是LOAD指令从数据存储器中读取出来的数据。这里与课堂上所讲的内容基本相同。 流水线都分为五个执行级,都是在译码级产生各种控制信号,一级一级往后传,分离的指令存储器和数据存储器。各个部件以及逻辑都没有太大差异 不同:源代码文件中的流水线中的ALU部件的输出接在一个两路选择器上,并且没有zero输出端,而课堂上的直接输出到中间寄存器 源代码文件中没有关于消除数据相关的代码,而课堂上讲的原理电路图有消除数据相关的线路 没有数据前推和load前推的相关实现,指令格式的区别,流水线alu运算部件两个端口都可以接受立即数。 通过分析,写出本流水线的控制信号有哪些?对比我们课堂上讲的控制信号的差别有哪些? 答:本实验的控制信号主要有:wreg、m2reg、wmem、jal、aluc、aluimm 分别表示指令是否要写寄存器、信号是否有数据存储器中的数据需要写回寄存器、是否有指令需要往数据存储器中写数据、流水线寄存器R是要写入ALU的运算结果还是EPC的内容、指令的操作类型,例如加、减、与、或。、ALU的B输入端是否要选择立即数输入 差别主要有:regrt信号控制目的寄存器是rd或rt,sext信号控制是否需要传递立即数,wmem信号控制是否需要访存,jal信号控制exe级和mem级之间是传递运算结果还是立即数,这些信号是课堂上的流水线没有的。 1.2 针对流水线的指令集,编写必要的测试指令,分析运算结果,回答哪些指令的组合能由此流水线源代码正确实现,哪些指令的组合不能由此流水线源代码正确实现。(要求在实验报告中写出所完成的测试指令的组合、每个组合的仿真过程及结果、每个过程和结果的必要分析。) (1)第一组指令序列 指令序列: add r2 r1 1 add r2 r1 10 add r1 r3 1 add r1 r2 10 add r2 r2 1 add r2 r3 10 sub r2 r1 r3 截图: 结果分析: 观察三到九周期的ealu信号分别为(10,1,1,10,1,10,10),第九个周期的ealu为10,该周期执行的指令是sub r2 r1 r3;可见第一条指令赋值r1=10;第二条指令赋值r2=1;所以最后一条指令sub r1 r1 r2执行后结果为9,符合条件。 当有数据相关时,就会出问题,再观察第五、六、七两个周期,指令的执行结果均为1。故该程序不能解决数据相关问题。 (二) 汇编器实现 2.1自行设计与所给出的流水线指令的汇编格式,在下表中写出。 指令 指令意义 O Op2 [25:20] [19:15] [14:10] [9:5] [4:0] add 寄存器加法 000000 000001 00000 rd rs rt a

文档评论(0)

dsf80fhg0j + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档