指令集
支持RISC V的RV32I 32位指令集,6种指令类型如下:
本次就根据数据处理,分支,存储器读写各实现两条指令,一共6条指令把!
- I型的立即数加法:ADDI rd, rs1, imm:就是REG[rd] = REG[rs1] + $signed(imm);
- R型的加法:ADD rd, rs1, rs2:REG[rd] = REG[rs1] + REG[rs2];
- J型的非条件跳转:JAL rd imm[20:1];就是pc = pc + {imm[20:1],0} ;REG[rd] = pc + 4;
- B型的条件跳转:BEQ 当rs1和rs2相等,跳转pc = pc + {imm[12:1],0},否则pc = pc + 4。
- I型的LW:从mem读取一个32位的数据到rd。地址是REG[rs1] + imm
- S型的ST:把rs2里面的数据放到地址是REG[rs10] + imm
目标
- 仿真验证通过,后面dc啥的就不用了吧
- 要能解决control hazards,architecture hazards 和data hazards