Logisim完成单周期处理器开发(共18页)_第1页
Logisim完成单周期处理器开发(共18页)_第2页
Logisim完成单周期处理器开发(共18页)_第3页
Logisim完成单周期处理器开发(共18页)_第4页
Logisim完成单周期处理器开发(共18页)_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、Logisim完成单周期处理器开发实验报告目录一、总体数据通路结构设计图二、数据通路中的模块设计图1、IFU2、GPR3、ALU4、EXT5、DM6、Controller三、控制器设计四、机器指令描述五、测试程序六、运行结果七、问答八、收获体会附:Logisim模块目录一、 总体数据通路结构设计图 二、数据通路中的模块设计图1、IFU模块接口信号名方向描述ZeroIALU计算结果1:计算结果为00:计算结果非0ClkI时钟信号ResetI复位信号1:复位0:无效Insout31:0O32位MIPS指令功能定义序号功能名称描述1复位当复位信号有效时,PC被设置为0x000000002取指令根据P

2、C从IM中取出指令3计算下一条指令地址若不是beq指令,则PC-PC+1,若是beq指令,且zero为1,则PC-PC+sign_ext2、GPR信号名方向描述Wd31:0I写入数据的输入RegwriteI读写控制信号1:写操作0:读操作ClkI时钟信号ResetI复位信号1:复位0:无效A14:0I读存取器地址1A24:0I读存取器地址2A34:0I写寄存器地址Rd131:0O32位数据输出1Rd231:0O32位数据输出23、ALU模块接口信号名方向描述A31:0I32位输入数据1B31:0I32位输入数据22F1:0I控制信号01:或运算10:减法11加法C31:0O32位数据输出功能定

3、义序号功能名称描述1或A|B2减A-B3加A+B4、EXT模块接口信号名方向描述Imm1615:0I16位数据输入Extop1:0I控制信号00:高位补001:低位补010:符号扩展Ext32O32位数据输出功能定义序号功能名称描述1高位补0高16位补02低位补0低16位补03符号扩展符号位扩展5、DM模块接口信号名方向描述D31:0I写入数据的输入MemwriteI读写控制信号1:写操作ClkI时钟信号ResetI复位信号1:复位0:无效A4:0I操作寄存器地址Out31:0032位数据输出功能定义序号功能名称描述1复位当复位信号有效时,所有数据被设置为02读根据输入的寄存器地址读出数据3写

4、根据输入的地址把输入的数据写入6、Controller模块接口信号名方向描述Op5:0I六位opFunc5:0I六位functionRegdst0写地址控制Alusrc0cpu第二操作数选择控制Mentoreg0Dm读控制Regwrite0GPR读写控制Memwrite0DM写控制,写入GPR数据选择Npc_sel0Beq指令标志Extop0控制ext扩展方式Aluop1:00控制cpu进行相应运算三、控制器设计单周期真值表Func100000100010N/AOp000000000000001101100011000100001111addsuborilwswbeqluiRegDst1100

5、XX0ALUSrc0011101MentoReg0001XXXRegWrite1111002MemWrite0000100Npc_sel0000010ExtopXX000X1ALUctrAddsubtractoraddaddsubtractX四、机器指令描述助记符opcodefunction功能addu000000100001rd-rs+rtsubu000000100011rd-rs-rtori001101rt - rs | (zero-extend)immediatelw100011rt - memoryrs + (sign-extend)immediatesw101011memoryrs

6、+ (sign-extend)immediate - rtbeq000100if (rs = rt) PC - PC+4 + (sign-extend)immediate2lui001111rt - immediate*65536j000010PC - (PC+4)31.28,address,0,0五、测试程序lui$t0,0x0004 #lui 测试程序要实现:立即数 0x0004 加载至 t0 寄存器的高位 lui$t1,0x0008 #lui 测试程序要实现:立即数 0x0008 加载至 t1 寄存器的高位 ori$t3,$zero,0x00002000 #ori 测试程序要实现: ze

7、ro 寄存器中的内容与立即数 0x00002000 进行或运算,储存在 t3 寄存器中 sw$t0,4($t3) #sw 测试程序要实现:把 t0 寄存器中值(1Word),存储到 t3 的值再加上偏移量 4, 所指向的 RAM 中 sw$t0,8($t3) #sw 测试程序要实现:把 t0 寄存器中值(1Word),存储到 t3 的值再加上偏移量 8, 所指向的 RAM 中 loop:add$t2,$t2,$t1 #add 测试程序要实现:t1 寄存器中的值加上 t2 寄存器中的值后存到 t2 寄存器中 lw$t4,4($t3) #lw 测试程序要实现:把 t3 寄存器的值+4 当作地址读取

8、存储器中的值存入 t4 lui$t5,0x0004 #lui 测试程序要实现:立即数 0x0004 加载至 t5 寄存器的高位 sub$t7,$t6,$t5 #sub 测试程序要实现:t6 寄存器中的值减去 t5 寄存器中的值后存到 t7 寄存器中 add$t0,$t0,$t5 #sub 测试程序要实现:t0 寄存器中的值减去 t5 寄存器中的值后存到 t0 寄存器中 add$t6,$t6,$t0 #add 测试程序要实现:t6 寄存器中的值加上 t0 后存到 t6 寄存器中 beq$t0,$t1,loop #beq 测试程序要实现:判断 t0 的值和 t1 的值是否相等,相等转 loop a

9、dd$t0,$t0,$t5 #add 测试程序要实现:t0 寄存器中的值加上 t5 后存到 t0 寄存器中 lui$v0,0x0001 #lui 测试程序要实现:立即数 0x0001 加载至 v0 寄存器的高位 lui$v1,0x0002 #lui 测试程序要实现:立即数 0x0002 加载至 v1 寄存器的高位 add$v0,$v0,$v1 #add 测试程序要实现:v0 寄存器中的值加上 v1 后存到 v0 寄存器中 add$v1,$v0,$v1 #add 测试程序要实现:v0 寄存器中的值加上 v1 后存到 v1 寄存器中 ori$a0,$v0,0xffff #ori 测试程序要实现:v

10、0 寄存器中的内容与立即数 0xffff 进行或运算,储存在 a0 寄存器中 sub$a1,$a0,0x0000ffff #sub 测试程序要实现:a0 寄存器中的值减去立即数 0x0000ffff 后存到 a1 寄存器中 loop2:sub$a2,$v1,$v0 #sub 测试程序要实现:v1 寄存器中的值减去 v0 中的值后存到 a2 寄存器中 add$a1,$a2,$a1 #add 测试程序要实现:a2 寄存器中的值加上 a1 后存到 a1 寄存器中 beq$a1,$v1,loop2 #beq 测试程序要实现:判断 a1 的值和 v1 的值是否相等,相等转 loop2机器码:3c0800

11、04 3c090008 340b2000 ad680004 01495020 8d6c0004 3c0d0004 01cd7822 010d4020 01c87020 1109fff9 010d4020 3c020001 3c030002 00431020 00431820 3444ffff 3c010000 3421ffff 00812822 00623022 00c52820 10a3fffdMARS:六、运行结果GPRDM七、问答1. 请充分利用Error! Reference source not found.中的X可以将控制信号化简为最简单的表达式。RegDst=add+subALU

12、Src=ori+lw+swMemtoReg=lwRegWrite=add+sub+ori+lwMemWrite=swNpc_sel=beqExtop=lw+swALUctr0=(subu+beq)ALUctr1=ori+luiALUctr2=02. 对于Error! Reference source not found.、Error! Reference source not found.中的与或阵列来说,1个3输入与门最终转化为2个2输入与门,1个4输入与门最终转化为3个2输入与门,依次类推。或阵列也类似计算。那么a) 请给出采用Error! Reference source not fou

13、nd.、Error! Reference source not found.中的方法设计的每个控制信号所对应的2输入与门、2输入或门、非门的数量。2输入与门2输入或门非门RegDst17110RegWrite32410ALUsrc2035PCsrc505Memwrite502MemRead503MentoReg503Extop1524ALUctr11013ALUctr22129b) 请与第1项对比,你更喜欢哪种设计方法。为什么第一种的每个控制信号都需要对其分配单独的与门、或门,因为它是直接对 op、func 的 12 位或 6 位信号的逻辑表达式,所以没有针对性并且浪费元件。 而第二种是先把 op、func 变成相应的指令信号,再由指令信号生成控制信号。当一种指令对应多种控制信号为 1 时,不必再对每个信号再单独为这个

温馨提示

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

评论

0/150

提交评论