电 子 科 技 大 学

实 验 报 告

学生姓名: 学 号: 一、实验室名称:计算机学院实验中心二、实验项目名称:计算机系统结构课程实验三、实验原理:

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自行设计与所给出的流水线指令的汇编格式,在下表中写出。

指令

指令意义

Op[31:26]

Op2 [25:20]

[19:15]

[14:10]

[9:5]

[4:0]

add

寄存器加法

000000

000001

00000

rd

r

计算机系统结构结构相关实验报告,计算机系统结构实验报告.doc相关推荐

  1. 计算机系统结构结构相关实验报告,计算机系统结构实验报告(中南民族大学).doc...

    计算机系统结构实验报告(中南民族大学).doc 院 系 专 业 年 级 课程名称 计算机系统结构 学 号 姓 名 指导教师 年 月 日年级班级学号专业计算机科学与技术姓名题目名称矩阵相乘题目内容1. ...

  2. 关于计算机的学术类论文,计算机类学术相关论文参考文献 计算机类学术核心期刊参考文献哪里找...

    [100个]关于计算机类学术相关论文参考文献汇总,作为大学生的毕业生应该明白了计算机类学术核心期刊参考文献哪里找,收集好参考文献后的计算机类学术论文写作起来会更轻松! 一.计算机类学术论文参考文献范文 ...

  3. 七年级计算机基本结构,七年级信息技术计算机基本组成和工作原理

    <七年级信息技术计算机基本组成和工作原理>由会员分享,可在线阅读,更多相关<七年级信息技术计算机基本组成和工作原理(19页珍藏版)>请在人人文库网上搜索. 1.第二章第二章 计 ...

  4. 计算机专业及相关专业目录,计算机相关专业目录

    计算机相关专业目录,供你公考报名考试所用. 计算机.会计及相关专业 本科计算机及相关专业 04015700 04034200 05034300 05049300 05047900 07010200 0 ...

  5. 计算机专业及相关专业目录,计算机及相关专业目录

    公务员.事业单位.警察.选调生 招考专业目录 计算机及相关专业 本科计算机及相关专业 04015700 教育信息技术 04034200 现代信息技术教育 05034300 出版与电脑编辑技术 0504 ...

  6. skt计算机仿真,结构疲劳寿命估算的计算机仿真 - Journal of Northeastern University.PDF...

    结构疲劳寿命估算的计算机仿真 - Journal of Northeastern University 1998年 6月 东 北 大 学 学 报 (自 然 科 学 版 ) Jun.1 9 9 8 第1 ...

  7. 计算机一级考试相关书,全国计算机一级考试考什么?怎么考?有书吗?

    全国计算机一级考试都考啥?怎么考?有书吗? 计算机一级考试考什么? 根据2018年最新考试科目设置,全国计算机一级考试主要开考:计算机基础及WPS Office应用.计算机基础及MS Office应用 ...

  8. 计算机系统结构结构相关名词解释,体系结构复习题

    名词解释: 1.计算机系统结构:计算机体系结构包括指令集结构.计算机组成和计算机 实现三个方面的内容. 2.CISC:CISC是指采用一整套计算机指令进行操作的计算机.而后又出现 了精简指令集计算机, ...

  9. 计算机与会计相关毕设,关于会计专业毕业设计开题报告

    会计专业毕业设计开题报告 课题名称 Excel图表在会计电算化中的应用方案设计 姓名 罗x 选题依据 一.选题来源.目的和意义 (1)来源:在实际工作当中,我发现Excel能够解决有关会计核算和管理的 ...

最新文章

  1. Linux 下从命令行打开pdf文件和html文件的命令
  2. 【WebGL】《WebGL编程指南》读书笔记——第2章
  3. amd为什么还用针脚_英特尔的针脚都取消了,为什么AMD的还没动静?
  4. jquery ajax 拒绝访问,拒绝访问IE上的jQuery脚本
  5. 二叉树的创建及各种遍历
  6. HCIE-Security Day27:IPSec:实验(二)两个网关之间通过手工方式创建IPSec PN隧道
  7. 1、position用法技巧,2、CSS 属性 选择器,3、CSS 选择器
  8. quartus ii IP核的破解
  9. IDEA打包jar-解决错误: 找不到或无法加载主类 main
  10. 图像识别(五)| 春天花开却不识?打开百度识图,残差和卷积带你识遍路边野花
  11. o2o模式都有哪些应用场景?
  12. mysql合并两个表_MYSQL如何合并两个表
  13. Blender自动化建模入门
  14. 5、区域特征分析和区域提取
  15. python样本期望值_总体是指数分布,样本均值倒数的期望和方差如何求?
  16. 安卓证书在线制作工具
  17. jq.ajax+php+mysql实现瀑布流缓冲加载数据
  18. 密码与安全新技术专题
  19. 【运筹学】对偶理论 : 互补松弛定理应用 ( 原问题与对偶问题标准形式 | 已知原问题最优解求对偶问题最优解 | 使用单纯形法求解 | 使用互补松弛定理公式一求解 | 互补松弛定理公式二无效 ) ★★
  20. javascript兼容性很好的省市区联动,易修改

热门文章

  1. laravel 项目迁移_在Laravel迁移
  2. python中locked_Python锁类| 带示例的locked()方法
  3. vs生成linux服务器程序,从Visual Studio到Linux上调试C++代码
  4. php curl keepalive,HTTPKeepAlive,开启还是关闭
  5. php有多少魔术方法,PHP常用的几个魔术方法
  6. java调用构造函数中某一个值_Java如何在枚举的构造函数中调用另一个枚举值
  7. cdh集群linux命令,CDH集群中,服务器启动spark2-shell命令行注意事项
  8. tgc 什么意思 tgt_TGT的完整形式是什么?
  9. 40 个 SpringBoot 常用注解:让生产力爆表!
  10. android listview 数据数组制作,android – 从对象的数组列表中填充listview