计算机系统结构实验报告课件.doc

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机系统结构实验报告课件

电 子 科 技 大 学 实 验 报 告 学生姓名: 学 号: 一、实验室名称:计算机学院实验中心 二、实验项目名称:计算机系统结构课程实验 三、实验原理: 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 add rd rs rt sub 寄存器

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档