计算机组成原理实验报告1-单周期_第1页
计算机组成原理实验报告1-单周期_第2页
计算机组成原理实验报告1-单周期_第3页
计算机组成原理实验报告1-单周期_第4页
计算机组成原理实验报告1-单周期_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机组成原理实验报告 单周期处理器开发 Q:10649503642015.05.12文档目录:1、 功能设计说明2、 模块化和层次化设计说明3、 具体模块定义4、 测试代码及结果5、 实验完成时间安排6、 心得体会1、 功能设计说明1. 完成的指令集:a) add,sub,and,or,slt,lw,sw,beq 和J 指令。b) 不支持溢出。2. 处理器为单周期设计。3. 功能模块统一采用书上201页的图4-24设计,信号控制采用书上的193页图4-12和200页图4-22的真值表进行化简。2、 模块化和层次化设计说明3、 具体模块定义数据通路:1)PC模块定义:(1) 基本描述PC 主要

2、功能是完成输出当前指令地址。复位后,PC指向0x0000_0000,此处为第一条指令的地址。(2) 模块接口 信号名方向描述31:0addressI输入的指令地址clkI时钟信号rstI复位信号31:0outO输出的指令地址(3)功能定义序号功能名称功能描述1复位rst=1时,将out置为0X0000_00002输出指令地址时钟信号到来时,将address赋给out2)NPC模块定义:(1) 基本描述NPC 主要功能是根据当前指令是否为beq指令,输出下一条指令的地址。该模块调用了MUX模块。(2) 模块接口 信号名方向描述15:0imaddrI指令的低16位zeroIALU计算结果:1表示当

3、前两寄存器(rs,rt)值相等;0表示不相等。brI是否为beq指令。1是0否31:0pcI输入当前指令地址31:0npcO输出下一条指令地址(3)功能定义序号功能名称功能描述1输出指令地址根据zero与br的值输出下一条指令的地址。3)ALU模块定义:(1) 基本描述实现加、减、与、或、小于则赋1五种计算。(2) 模块接口 信号名方向描述2:0aluctrlIALU控制信号31:0AI rs寄存器的值31:0BIrt寄存器的值zeroOA- B=0,则zero=1;否则zero=0.31:0resultOAlu计算输出的结果。(3)功能定义序号功能名称功能描述1输出计算结果根据alu控制信号

4、,输出A与B的计算结果2输出zero若result=0则输出zero=1,否则输出zero=0。4)MUX模块定义:(1) 基本描述实现32位和5位二选一数据选择器(2) 模块接口信号名方向描述SIMUX控制信号31:0d0/4:0d0I MUX输入31:0d1/4:0d1IMUX输入31:0y/4:0yOMUX输出(3)功能定义序号功能名称功能描述1输出d0,或d1的值S为0,y=d0;S为1,y=d1.5)EXT模块定义:(1) 基本描述将输入的16位地址按符号位扩展为32位。(2) 模块接口信号名方向描述15:0addrinI输入的16位地址 31:0addroutO 输出的32位地址(

5、3)功能定义序号功能名称功能描述1输出扩展的32位地址.将addrin扩展为32位的addrout.6)regfile模块定义:(1) 基本描述 根据输入的两个寄存器地址,输出相应寄存器的值,根据寄存器写信号和寄存器地址,将输入的数据选择写入寄存器。 (2) 模块接口信号名方向描述clkI时钟信号4:0rreg1I Rs寄存器地址4:0rreg2IRt寄存器地址31:0rdata1ORs寄存器值31:0rdata2ORt寄存器值regwI写寄存器信号4:0wregIRt写寄存器地址31:0wdataI写入寄存器的信号(3)功能定义序号功能名称功能描述1读寄存器数据读rs、rt寄存器的数据2向寄

6、存器写入数据根据写信号向寄存器选择写入数据7)im_4k模块定义:(1) 基本描述 指令内存大小为4K,初始化从code.txt载入指令。根据输入的指令地址,输出当前位置存储的指令。 (2) 模块接口信号名方向描述9:0addrI指令地址31:0doutO 指令(3)功能定义序号功能名称功能描述1载入指令初始化载入code.txt中的指令2输出指令根据输入的指令地址,输出当前指令8)dm_4k模块定义:(1) 基本描述 “数据内存”大小为4K,根据输入的地址读出“数据内存”中的数据,并根据数据写信号,将输入的数据选择写入“数据内存”中。 (2) 模块接口信号名方向描述clkI时钟信号9:0ad

7、drI 数据地址31:0dinI写入的数据 weI数据内存写信号31:0doutO读出的数据(3)功能定义序号功能名称功能描述1读数据内存数据根据输入的数据地址,读出数据内存的数据,读出的数据不一定被使用,只有lw指令才会使用。2向数据内存写入数据在时钟信号到来时,根据写数据信号,将输入的数据选择写入数据内存中。9)Jump模块定义:(1) 基本描述 将输入的低26位指令左移两位,高四位加上pc+4的高4位,组成32位地址输出。 (2) 模块接口信号名方向描述25:0addrinI低26位指令31:0pcI 当前PC31:0addroutO计算出的32位地址(3)功能定义序号功能名称功能描述1

8、输出J跳转地址输出计算得到的32位地址,为J指令要跳转的地址。10) ALUCtrl模块定义:(1) 基本描述 根据指令的低6位(function字段)和输入的aluop控制信号,利用真值表化简输出三位的ALU控制信号。真值表利用书上193页图4-12. (2) 模块接口信号名方向描述5:0funcI指令低6位1:0aluopI Aluop控制信号2:0aluctrlO Alu控制信号(3)功能定义序号功能名称功能描述1 输出ALU控制信号利用真值表化简输出ALU控制信号。11) controller模块定义:(1) 基本描述 根据输入的指令高6位(Op字段),利用真值表化简,输出RegDst

9、,ALUSrc,MemtoReg,RegWrite,MemWrite,Branch,J,ALUOp控制信号。真值表采用书上200页图4-22,再加上J指令的输入输出。其中高阻状态设为0。MemRead信号可以省略。 (2) 模块接口信号名方向描述5:0OpI指令高6位 RegDstO Rd寄存器控制信号 ALUSrcO ALU数据来源控制信号 MemtoRegO 数据内存数据写入寄存器控制信号 RegWriteO 寄存器写控制信号 MemWriteO 数据内存写控制信号 BranchO Beq指令控制信号JO J指令控制信号1:0ALUOp O ALUOp控制信号(3)功能定义序号功能名称功能

10、描述1输出各种控制信号根据输入的OP,利用真值表化简,输出各种控制信号。4、 测试代码及结果1) 测试代码及结果:在regfile模块初始化了17($s1),18($s2),20($s4)号寄存器的值分别为8、4、12.add $s3,$s2,$s1 /$s3=4+8=12sub $s5,$s4,$s3 /$s5=12-12=0beq $s3,$s4,LI /$s3=$s4,跳到LIsw $s2,1($s1)lw $s3,1($s1)LI:and $s5,$s4,$s3 /$s5=$s4 & $s3=12or $s5,$s3,$s1 /$s5=$s4 | $s3=12slt $s5,$

11、s3,$s1 /$s3>$s1,$s5=0sw $s2,1($s1) /存入4lw $s3,1($s1) /载入4到$s3j LI /跳转2) 生成的16进制文件(code.txt):02519820 / add $s3,$s2,$s10293a822 / sub $s5,$s4,$s312740002 / beq $s3,$s4,LIae320001 / sw $s2,1($s1)8e330001 /lw $s3,1($s1)0293a824 / LI:and $s5,$s4,$s30271a825 / or $s5,$s3,$s10271a82a / slt $s5,$s3,$s1a

12、e320001 / sw $s2,1($s1)8e330001 / lw $s3,1($s1)08100005 /j LI5、 实验完成时间安排1、 实验前2小时看了Verilog语法,并用ModelSim跑了PPT给的counter程序。2、 实验课上跟着老师写了各个模块,至此各个模块已经基本写完。3、 中午用了不到1小时写了控制信号及顶层模块,只剩下测试工作。4、 中午用了大概半小时时间测试程序可以运行,完成调试。5、 总体完成时间在10小时以内。6、心得体会 通过该实验,对硬件编程有了更深入的理解。之前参加学校的PLD比赛赛前培训(后来时间太紧,比赛放弃),使用过Vivado跑了一段测试程序,当时对仿真一块

温馨提示

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

评论

0/150

提交评论