Implements stage 2

This commit is contained in:
2025-11-04 18:06:00 +01:00
parent 2024c74bb4
commit fa60ce372f
2 changed files with 48 additions and 7 deletions

View File

@@ -11,27 +11,39 @@ class Rv32i(sim: Boolean = true) extends Module {
})
val reg_pc = RegInit(0.U(32.W));
val reg_file = Module(new RegFile(sim));
reg_file.io.rd_data := 0.U;
reg_file.io.we := 0.U;
// Increment PC each clock
reg_pc := reg_pc + 4.U;
// Read instruction
// Fetch instruction
io.ibus.en := true.B;
io.ibus.addr := reg_pc;
val insn = io.ibus.rdata;
dontTouch(insn);
// Decode rs1 index
val rs1 = insn(19, 15)
reg_file.io.rs1_addr := rs1
// Decode rs2 index
val rs2 = insn(24, 20)
reg_file.io.rs2_addr := rs2
// Decode rd index
val rd = insn(11, 7)
reg_file.io.rd_addr := rd
// Decode imm-u
val imm_u = insn(31, 12)
// Debug instruction
io.x31 := insn;
io.x31 := reg_file.io.rs1_data;
if(sim)
{
io.valid_x31.get := true.B;
}
//io.ibus.wdata
//io.ibus.be
io.dbus.addr := 0.U;
io.dbus.wdata := 0.U;
io.dbus.be := VecInit(false.B,false.B,false.B,false.B)