lab04单时钟周期的设计实验_第1页
lab04单时钟周期的设计实验_第2页
lab04单时钟周期的设计实验_第3页
lab04单时钟周期的设计实验_第4页
lab04单时钟周期的设计实验_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机组实验实验报告课程名称:计算机组实验编号:04实验实验名称:单时钟周期 CPU 设计报告时间:2014.04.13姓名:学号:121220068院系:12 级计算机科学与技术系班级:2 班邮箱:时间:2014.04.13一 实验目的:1、理解MIPS常用的指令系统并掌握单时钟周期CPU的工作原理与逻辑功能实现2、通过对单时钟周期CPU的运行状况进行观察和分析,进一步加深理解。二 实验设备:1、装有 Quartus II 的计算机一台。2、Altera DE2-70 开发板或 Altera DE2-115 开发板一块。三 实验任务:用Verilog HDL语言或VHDL语言来编写,实现单时

2、钟周期CPU设计,并在QuartusII或Msim上实现模拟(最好时序)。能够完成以下十六条指令,为了使MIPS单时钟周期CPU指令信号表比较好看,我们首先对以下十六条指令进行定义:指令1:add rd,rs,rt指令2:addi rt,rs,imm指令3:addiu rt,rs,imm指令4:sub rd,rs,rt指令5:subu rd,rs,rt指令6:seb rd,rt指令7:luirt,imm指令8:xori rt,rs,imm指令9:clo rd,rs指令10:clz rd,rs指令11:sravrd,rt,rs指令12:rotr rd,rt,shamt指令13:sltu rd,r

3、s,rt指令14:slti rt,rs,imm指令15:j target指令16:bgez rs,offset四 实验原理与电路图:MIPS 是典型的 RISC 处理器,采用 32 位定长指令字,操作码字段也是固定长度,没有专门的寻址方式字段,由指令格式确定各操作数的寻址方式。指令格式只有三种:(1) R-型指令是 RR 型指令,其操作码 OP 为“000000”,操作类型由 func字段指定,若是双目运算类指令,则 rs 和 rt 的内容分别作为第一和第二源操作数,结果送 rd;若是移位指令,则对 rt 的内容进行移位,结果送 rd,所移位数由 shamt 字段给出。因为一条指令需要左移或右

4、移若干位,所以 MIPS 中移位指令多用桶形移位器以提高速度。R 型指令的寻址方式只有一种,就是寄存器寻址。add, addu, sub, subu, nor, clo, clz, slt, sltu 属于 R-型指令。3126 2521206 位5 位5 位5 位5 位6 位oprsrtrdshamtfunc(2)I-型指令是立即数型指令,若是双目运算类指令,则将 rs 的内容和立即数分别作为第一源操作数和第二源操作数,结果送 rt;若是条件分支指令,则对 rs 和 rt 内容进行指定的运算,根据运算的结果,决定是否转到目标地址处执行,转移目标地址通过相对寻址方式得到,即将 PC 的内容和立

5、即数符号扩展后的内容相加得到。由此可知,I-型指令的寻址方式有 4 种,就是寄存器寻址、立即数寻址、相对寻址、基址或变址寻址。addi, addiu, xori, slti, sltiu, blez 属于 I-型指令。3126 25212016 1506 位5 位5 位16 位(3) J-型指令主要是无条件跳转指令,指令中给出的是26 位直接地址,只要将当前 PC 的高 4 位拼上 26 位直接地址,最后添两个“0”就可以得到 32 位的跳转目标地址。J 型指令的寻址方式只有一种,就是变通的直接寻址。j 属于 J-型指令。3126 2506 位26 位optargetoprsrt立即数下面为所

6、要实现的指令的描述:3126252120add000000rsrtrd00000100000seb00000000000rtrd00000100000addi001000rsrtimmediateaddiu001001rsrtimmediatesub000000rsrtrd00000100010subu000000rsrtrd00000100011srav000000rsrtrd00000000111xori001110rsrtimmediateclo011100rs00000rd00000100001clz011100rs00000rd00000100000这里需要注意的一点是:每完一条指令

7、以后PC 都会加 4(每条指令 32 个字节),所以 blez 指令的跳转应该是 PC = PC + 4 + (sign)imm<<2,而 j 指令第一步无须进行 PC+4 而直接计算目标地址。指令按顺序存放在内存连续单元中,指令地址由 PC 给出。CPU 取出并条指令的时间称为指令周期。单周期 CPU 的特点是,每条指令的执行都需要一个时钟周期,一条指令再执行下一条指令。由于每个时钟周期的时间长短都是一样的,因此在确定时钟周期的时间长度时,要考虑指令集中最复杂的指令执行时所需时间。运行较快的指令即使完成了运行,也需要等待时钟周期完成后,才能够进入下一条指令的运行。CPU 执行指令

8、的一般过程如下:(1)指令地址计算。顺序执行时,下条指令地址的计算比较简单,只要rotr00000000001rtrdshamt000010sltu000000rsrtrd00000101011slti001010rsrtimmediatelui00111100000rtimmediateblez000110rs00000offsetj000010target将 PC 加上当前指令长度即可;当遇到转移等改变执行顺序的指令时,则需要根据指令操作码和寻址方式决定下条指令地址的计算方式。(2)取指令。需要访存。(3)指令操作码的译码。每条指令的功能不同,所以设计到的操作过程不同,因而需要不同的信号。

9、应该根据指令的不同操作码译出不同的信号。(4)源操作数地址计算并取操作数。(5)数据操作。在ALU 等运算部件中进行运算。(6)目的操作数地址计算并存结果。现给出可以实现以上指令的单时钟周期 CPU 电路原理图。如图 3.4.4.1 所示。表3.4.4.1 给出的是指令到 ALU_op 译码表五 实验步骤1.建立工程,实验部分代码截图:2.建立文件,写测试代码:3.验证数据是否正确:首先初始化寄存器里面的是数据内容指令1:add rd,rs,rt将 R1 与 R2 寄存器里面的内容相加,存入R3寄存器里面指令2:addi rt,rs,imm按照有符号数的加法,将R1寄存器里面的内容与16h80

10、00相加存入R3中指令3:addiu rt,rs,imm将R3与16h8000按照无符号数相加存入R4中指令4:sub rd,rs,rt将R4寄存器内容减去R2寄存器内容得到的数存入R5寄存器中指令5:subu rd,rs,rt将R4寄存器内容减去R5寄存器内容存入R6寄存器中指令6:seb rd,rt将R2寄存器内容的末字节按照符号位扩展,结果存入R7中指令7:lui rt,imm将立即数的低位值存入寄存器R8的地址,将寄存器的低位值置0指令8:xori rt,rs,imm将寄存器R2与0扩展立即数的逐位逻辑异或结果存入寄存器R9中指令9:clo rd,rs将寄存器R7中数据起始为1连续1的

11、个数存入R10中,如果字中都是1,结果为32指令10:clz rd,rs将寄存器R2种数据其实为0连续0的个数存入R11中,如果字中都是0,结果为32指令11:srav rd,rt,rs由 R1 指定寄存器R11 的算术右移位数,并将结果存入寄存器R12 中指令12:rotr rd,rt,shamt由立即数shamt指定寄存器R11的右移位数,并将结果存入R13指令13:sltu rd,rs,rt寄存器R1与R2进行无符号数比较若小,寄存器R14置1,否则,置0,不产生溢出寄存器R1与R2进行无符号数比较若小,寄存器R15置1,否则,置0,不产生溢出指令14:slti rt,rs,imm寄存器

12、R2与带符号扩展立即数比较若小,寄存器R16置1,否则,置0,不产生溢出寄存器R2与带符号扩展立即数比较若小,寄存器R17置1,否则,置0,不产生溢出指令15:j target无条件跳转到R64目标指令地址指令16:bgez rs,offset若寄存器 R1 大于等于 0,转移的指令数由有符号偏移量左移 2 位来决定六 实验报告要求:填写下面单时钟周期CPU指令信号表,注明变量的取值。认真实验数据,对每条指令的结果进行截图,并加以说明。将以上实验的数据进行分析与总结。对实验中所遇到的问题,以及如何解决要给予说明。(注意到对每条指令,不影响执行结果的信号都可默认为 0)对 PC 的计算部分,在要

13、求的 16 条中,除 J 及 bgez 指令外大部分指令默认下一条指令地址为PC+4。J 指令(Jump=1)无条件跳转至(PC+431:28|IR25:0|00);Begz 在寄存器Rs 大于等于0 时,指令转移数由有符号偏移量左移2 位来决定;(即在出寄存器大于等于 0 时,跳转至(PC+4)+(Ex_offset << 2);七 思考题:单时钟周期 CPU 有什么特点?在设计单时钟周期 CPU 应注意些什么?指令信号12345678910111213141516Rd_write_byte_en 3:0(Overflow=0)000000000000001515Rd_write

14、_byte_en 3:0(Overflow=1)0000001515ALUSrcB0110002100000100Ex_top0110000000000101ALU_op3:0932007501RegDst1001110011111000Shift_amountSrc0000000000100000ALUShift_sel0000000000110000Condition2:00000000000000003Shift_op0000000000230000Jump0000000000000010I_mem_read0000000000000000答:单周期 CPU 的特点是每条指令的执行只需要

15、一个时钟周期,指令是一条条往后执行的。在一个时钟周期内,完成指令的所有任务,包括取址、译码、取操作数、计算、存操作数、更新地址等。设计过程中应尤其注意一下几点:1.明确每条指令的功能以确定相关的,并注意各个所需要的信号的取值;2.考虑好各个/各个模块之间如何互连,也即考虑各模块输入输出之间的关系;3.各器件在时钟上升沿/下降沿的功能,尤其是寄存器组的读写操作的控制等,以保证在一个时钟周期内可以完成一条指令的所有工作;4.明确 PC 的变化条件,及指令的时间,保证程序有序正常地运行;八实验结果:这次试验虽然综合难度与前几次试验相比难度陡增,但是由于前几次试验都是为这次试验作铺垫,所以试验虽但是还是能够完成试验任务,并且通过这次试验较全面地了解了单周期的指令功能以及九 实验中遇到的问题和解决方法:1.实验:由于之前做过的试验没

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论