Skip to content

Commit bc80713

Browse files
Implement ORI and ANDI instructions
1 parent 4e981ea commit bc80713

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

src/main/scala/RISCV/Main.scala

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,34 @@ class Main() extends Module {
212212

213213
printf("[XORI] Rs1: %d Rd: %d Immediate: %b\n", decoder.io.rs1, decoder.io.rd, decoder.io.immediate);
214214
}
215+
216+
// ORI
217+
is("b110_0010011".U) {
218+
registers.io.read_address_a := decoder.io.rs1;
219+
220+
registers.io.write_address := decoder.io.rd;
221+
registers.io.write_enable := true.B;
222+
registers.io.in := registers.io.out_a | decoder.io.immediate;
223+
224+
program_pointer := program_pointer + 1.U;
225+
stage := 0.U;
226+
227+
printf("[XORI] Rs1: %d Rd: %d Immediate: %b\n", decoder.io.rs1, decoder.io.rd, decoder.io.immediate);
228+
}
229+
230+
// ANDI
231+
is("b111_0010011".U) {
232+
registers.io.read_address_a := decoder.io.rs1;
233+
234+
registers.io.write_address := decoder.io.rd;
235+
registers.io.write_enable := true.B;
236+
registers.io.in := registers.io.out_a & decoder.io.immediate;
237+
238+
program_pointer := program_pointer + 1.U;
239+
stage := 0.U;
240+
241+
printf("[XORI] Rs1: %d Rd: %d Immediate: %b\n", decoder.io.rs1, decoder.io.rd, decoder.io.immediate);
242+
}
215243
}
216244
}
217245

0 commit comments

Comments
 (0)