《2023年实验报告流水线cpu处理器的实现.docx》由会员分享,可在线阅读,更多相关《2023年实验报告流水线cpu处理器的实现.docx(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本科实验报告实验名称:流水线机制CPU的实现一、实验内容和原理实验内容:1、分析ARM指令集,明确指令功能、指令在CPU中执行各阶段中的行为;2、设计ARM解决器的数据通路和控制通路,画出指令描述表和指令的状 态转换图;3、运用Vivado软件,用V e rilo g硬件描述语言描述解决器中的各个分部件, 每个分部件通过功能仿真;4、运用Vivad。软件,用Verilog硬件描述语言实现分部件的互连,即实 现数据通路和控制通路;5、编写测试用的汇编指令,并将汇编指令转换为二进制的指令编码,并且 加载到解决器中的指令存储器中。6、将ARM解决器编程下载至FPGA实验板,运营测试程序,并通过开发
2、板上的le d或数码管显示执行结果。二、实验环节与实验结果写出实验操作的总体思绪、操作规范和重要注意事项;按顺序记录实验中每一 个环节和实验现象。画出必要的实验装置结构示意图,并配以相应文字说明;(一)说明你所实现的ARM解决器是多周期还是流水线CPU; 一共实现了多少 条指令?测试通过了多少条指令?我实现的解决器是流水线的,一共实现了 1 0条指令,测试通过了 10条指令。(二)描述你的设计思绪,假如你实现了多周期和流水线CPU,请分别描述 多周期CPU设计思绪:流水线解决器设计思绪:由于将多周期的阶段提成五级流水,无法设立统一的控制信号,而是让每一级流 水段根据自己输入的指令产生控制信号,
3、即将各个控制信号分属到两级流水之间的 寄存器当中。本想设计一个移位寄存器来将指令分别送入各级寄存器,但是发现不 是特别有必要这样做,由于可以将指令一级一级传递下去可以实现同样的功能。总共 分五级流水,取指,译码,执行,存储,写回。假如指令之间出现相关则设立空指令, 假如碰到空指令则所有控制信号为0,不产生任何有影响的操作。(三)对于实现的多周期解决器,为你所实现的指令画出指令描述表,和指令的状态转换图,一类指令可以画一个表或一个状态转换图助记符功能操作描述LD R加载字R F rd= Mem Add r STR存储字MemAddr = RF r dADD加RFrd= RFr n +S r c2
4、SUB减RFrd = RFrn-Src2AND与RFr d= RF rn&Sr c2ORR或RFrd = RF r n|Src2EOR异或RF rd = RF r nrS r c2MOV移动RF rd = Src2CMP比较Set f 1 ags based on RFrn - S rc2B转移PC = PC + 4 + B ranc h Addr(四)画出你设计的解决器(多周期和流水线)的数据通路和控制通路的合成图,规定为V i S。图或其他可再次修改的图,不能仅用无法修改的图片流水线数据通路(vi S O图双击用V is 0打开)(一)假如你设计的是流水线CPU,描述你的设计思绪,实现方法
5、,和多周期实现时的异同。流水线实现的时候与多周期的相同之处在于各级部件均相同,控制信号也 相似,不同之处在于多周期是状态机转换,控制信号统一生成,而流水线是分段 解决,流水作业,各级流水线寄存器产生控制该级流水的控制信号。将一个指令 提成5个相同阶段执行,可以提高并行性,充足运用硬件资源。(二)你的验证程序,汇编形式,带注释指令功能描述结果E3A01001MOV RF1, 1RF 1 = 1E3AO202 3MOV R F 2, 1RF 2= 1E3A0 6002MOV RF 6, 2RF6 = 2E 3A07005MOV RF 7, 5RF7= 5E 1 560007CMP RF6, RF7
6、Z=(RF6=RF7?)1:00 8000003B, 3Z=1,跳至 E5801000E08 1 1 002RF1= RF1 + R F2RF1 = RF1+RF2E0412023RF 2 = RF 1- 叶RF 2 = R F 1-R F2E2866001RF6= RF6+1RF6 = RF 6+1E8FFFFF9B, -7跳至E 1 5 6 0007执行E580 1 000MEMO = RF 1 MEM 0 = RF1(七)你的实验结果见实验结果分析。三、实验结果分析说明分析方法(逻辑分析、系统科学分析、模糊数学分析或记录分析的方法等), 对原始数据进行分析和解决,写出明确的实验结果,并说
7、明其可靠限度;我将斐波那契数列计算到了 5,结果应当显示1,2, 3, 5.最终结果为5lameValue5,8” 5, 885 ns Illi10 Vs .5,895 ns1115, 900 ns tilldouta31:00oooooooo0000000彳色皿31:0)jboooooos00000005WRF631:0 WRF231:0 WRFllJpliOWDM031:000000005 0000000300000005000000051J00000005000000030000000500000005W2010八、问题与建议对实验过程中出现的问题进行描述、分析,提出解决思绪和方法,无法
8、解决的, 要说明因素;记录实验心得体会,提出建议。流水线实现起来较多周期要容易一些,也也许是已经对软件操作比较纯熟,差错 的能力也提高了,所以将多周期改导致流水线的时候没花太多功夫,重要就是将控制 信号分属到各个寄存器当中去,并对RF单独开一个读口给Rd字段,由于要在一拍读 出三个寄存器的值较为困难。还将RF的读功能取消时钟上升沿触发而是改成只要 地址改变就读,这样可以节省在两个流水段之间的时钟周期数为1,取消ALUout寄 存器以及CPSR,而将其结果直接输入下一个流水段之间的寄存器,目的同样是为了减少两个流水段之间的时钟周期为1。但是要保存PC的寄存滞功能。四、实验总结本次实验我学会了使用Veril o g硬件描述语言,通过软件设计的形式来设计硬 件电路。Verilog语言不难学,类似于C语言,可以类比学习。数据通路以及CPU 的设计都是数字电路基础以及计算机原理知识的综合运用。本次实验提高了我综合 运用所学知识,分析,设计电路的能力,我体会到了计算机从业人员工作的不易和自 己能力的薄弱。本次实验提高了我综合运用知识的能力和动手能力,但是不求甚解的态度让我 不能更进一步地体会学习的乐趣,没有追求实验的进阶项目。在此后的学习当中我 应当更加刻苦,知其然知其所以然,刨根问底。