Logisim完成MIPS单周期处理器开发实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Logisim完成MIPS单周期处理器开发实验报告Project3Logisim完成单周期处理器开发实验报告⼀.总体设计
⼆.模块定义
(1)IFU
(2)GPR
(3)ALU
(4)EXT
(5)DM
(6)Controller
四.控制器设计
单周期真值表
Func100000100010N/A
Op000000000000001101100011000100001111
add sub ori lw sw beq lui RegDst1100X X0 ALUSrc0011101 MemtoReg0001X X X RegWrite1111002 MemWrite0000100 nPC_sel0000010 ExtOp X X000X1
ALUctr Add Subtract Or Add Add Subtract X
五.测试要求
16.测试程序
lui$t0,0x0004#lui测试程序要实现:⽴即数0x0004加载⾄t0寄存器的⾼位
lui$t1,0x0008#lui测试程序要实现:⽴即数0x0008加载⾄t1寄存器的⾼位
ori$t3,$zero,0x00002000#ori测试程序要实现:zero寄存器中的内容与⽴即数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当作地址读取存储器中的值存⼊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
add$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测试程序要实现:v0寄存器中的内容与⽴即数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
机器码:
3c0800043c090008340b2000ad680004014950208d6c00043c0d000401cd7822010d402001c870201109fff9
010d40203c0200013c03000200431020004318203444ffff3c010*******ffff008128220062302200c52820 10a3fffd
MARS模拟结果:
Logism:GPR:DM:
六、问答
18.对于Figure5、Figure6中的与或阵列来说,1个3输⼊与门最终转化为2个2输⼊与门,1个4输⼊与门最终转化为3个2输⼊与门,依次类推。

或阵列
也类似计算。

那么
a)请给出采⽤Figure5、Figure6中的⽅法设计的每个控制信号所对应的2
输⼊与门、2输⼊或门、⾮门的数量。

19.2输⼊与门2输⼊或门⾮门
RegDst17110
RegWrite32410
ALUsrc2035
PCsrc505
MemWrite502
MemRead503
MemtoReg503
ExtOp1524
ALUctr[1]1013
ALUctr[0]2129
a)请与第17项对⽐,你更喜欢哪种设计⽅法。

为什么
第⼀种的每个控制信号都需要对其分配单独的与门、或门,因为它是直接对op、func的12位或6位信号的逻辑表达式,所以没有针对性并且浪费元件。

⽽第⼆种是先把op、func变成相应的指令信号,再由指令信号⽣成控制信号。

当⼀种指令对应多种控制信号为1时,不必再对每个信号再单独为这个指令分配与门,⽽可以共⽤这个指令的信号,再添加或门就可以了。

相关文档
最新文档