2022年2022年计算机系统结构实验报告. .pdf
《2022年2022年计算机系统结构实验报告. .pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算机系统结构实验报告. .pdf(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、电 子 科 技 大 学实验报告学生姓名:学 号:一、实验室名称:计算机学院实验中心二、实验项目名称:计算机系统结构课程实验三、实验原理:1. 由教师给出一个具有基本功能的Verilog HDL流水线源代码;2. 学生完成下面3 个方面的内容:(1)自行设计汇编伪指令格式,完成一个能把自己的汇编指令转换成流水线CPU 能够识别的二进制指令的汇编器,实现语言不限;(2)自行设计能够解决数据相关的机制并基于源代码进行扩展;(3)自行设计能够解决控制相关的机制并基于源代码进行扩展。四、实验目的:帮助学生理解流水线的运行机制和基于Verilog HDL硬件描述语言的实现技术。名师资料总结 - - -精品
2、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 25 页 - - - - - - - - - 五、实验内容:(一) 基本流水线分析1.1 认真阅读和理解源代码,请详细按要求回答每个问题。1.源代码中文件是按什么样的规律来组织的?答:按照子模块组织源代码文件。模块pipelinedcpu_tb 用来控制CPU 的时钟等信号,调用pipelinedcpu 模块 (假定为1 级模块, 最高级),1 级模块中按顺序调用各个周期以及周期与周期之间的中间寄存器模块(假定为 2 级模块),2 级模块中调用各自部件
3、模块(假定为3 级模块)。模块 pipelinedcpu 用来控制每级流水线及流水线级之间的控制信号,寄存器信息,其余子模块用来具体实现每一级流水线的功能。2.存储器的实现方式?答:用一个二维数组reg 31:0 ram 0:31 实现,其中第一维代表32 位地址,第二维代表32 位数据接口有: 32 位输入数据和输出,32 位地址,一个同步时钟脉冲clk,一个控制写入的信号we 先对二维数组进行初始化读数据时不需要时钟脉冲的激励,写数据时需要时钟脉冲的上升沿激励信号并且we 信号为 1 3.源代码文件中的流水线与我们课堂上讲的原理电路图有何相同之处,有何不同之处答: 相同 :WB 级,写回级
4、使用2 路 32 位的多路选择器来选择是获取ALU 的计算结果还是LOAD 指令从数据存储器中读取出来的数据。这里与课堂上所讲的内容基本相同。流水线都分为五个执行级,都是在译码级产生各种控制信号,一级一级往后传,分离的指令存储器和数据存储器。各个部件以及逻辑都没有太大差异不同 :源代码文件中的流水线中的ALU 部件的输出接在一个两路选择器上,并且没有zero 输出端,而课堂上的直接输出到中间寄存器源代码文件中没有关于消除数据相关的代码,而课堂上讲的原理电路图有消除数据相关的线路没有数据前推和load 前推的相关实现,指令格式的区别, 流水线 alu 运算部件两个端口都可以接受立即数。4.通过分
5、析,写出本流水线的控制信号有哪些?对比我们课堂上讲的控制信号的差别有哪些?答:本实验的控制信号主要有:wreg、m2reg、wmem、jal、aluc、aluimm 分别表示指令是否要写寄存器、信号是否有数据存储器中的数据需要写回寄存器、是否有指令需要往数据存储器中写数据、流水线寄存器R 是要写入ALU 的运算结果还是EPC 的内容、 指令的操作类型,例如加、减、与、或。 、ALU 的 B 输入端是否要选择立即数输入差别主要有: regrt 信号控制目的寄存器是rd 或 rt,sext 信号控制是否需要传递立即数,wmem 信号控制是否需要访存, jal 信号控制exe 级和 mem 级之间是
6、传递运算结果还是立即数,这些信号是课堂上的流水线没有的。1.2 针对流水线的指令集,编写必要的测试指令,分析运算结果,回答哪些指令的组合能由此流水线源代码正确实现,哪些指令的组合不能由此流水线源代码名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 25 页 - - - - - - - - - 正确实现。 (要求在实验报告中写出所完成的测试指令的组合、每个组合的仿真过程及结果、每个过程和结果的必要分析。)(1)第一组指令序列指令序列:add r2 r1 1 add r2 r1
7、 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自行设计与所给出的流水线指令的汇编格式
8、,在下表中写出。指令指令意义Op31:26 Op2 25:20 19:15 14:10 9:5 4:0 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 25 页 - - - - - - - - - add 寄存器加法000000 000001 00000 rd rs rt add rd rs rt sub 寄存器减法000000 000010 00000 rd rs rt sub rd rs rt mul 寄存器乘法000000 000011 00000 rd rs rt
9、 mul rd rs rt and 寄存器与000001 000001 00000 rd rs rt and rd rs rt or 寄存器或000001 000010 00000 rd rs rt or rd rs rt xor 寄存器异或000001 000100 00000 rd rs rt xor rd rs rt sra 算术右移000010 000001 shift rd 00000 rt sra rd rt shift srl 逻辑右移000010 000010 shift rd 00000 rt srl rd rt shift sll 逻辑左移000010 000011 shi
10、ft rd 00000 rt sll rd rt shift jreg 寄存器跳转000010 000100 00000 00000 rs 00000 jreg rs addi 立即数加法000101 16 位 immediate rs rt addi rt rs imme muli 立即数乘法000111 16 位 immediate rs rt muli rt ts imme andi 立即数与001001 16 位 immediate rs rt addi rt rs imme ori 立即数或001010 16 位 immediate rs rt ori rt rs imme xori
11、 立即数异或001100 16 位 immediate rs rt xori rt rs imme load 取整数数据字001101 16 位 offset rs rt load rt rs offset store 存整数数据字001110 16 位 offset rs rt store rt rs offset beq 相等则跳转001111 16 位 offset rs rt beq rt rs offset bne 不相等则跳转010000 16 位 offset rs rt bne rt rs offset lui 设置高位010001 16 位 immediate 00000 r
12、t lui rt imme jump 无条件跳转010010 26 位 address jump address jal 子程序调用010011 26 位 address 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 25 页 - - - - - - - - - jal address 2.2写出实现语言、 主要数据结构、 主要功能模块名字和功能、 以必要的流程图。代码截图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年计算机系统结构实验报告. 2022 计算机系统 结构 实验 报告
限制150内