Skip to content

Commit 3edf40f

Browse files
Add operation on registers
1 parent f022b7c commit 3edf40f

2 files changed

Lines changed: 9 additions & 19 deletions

File tree

src/main/scala/main/Thread.scala

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,9 @@ class Thread extends Module {
2020
val end_of_program = RegInit(false.B);
2121
val idle = RegInit(true.B);
2222

23-
val register_a = RegInit(0.U(16.W));
24-
val register_b = RegInit(0.U(16.W));
23+
val register_a = RegInit(2.U(16.W));
24+
val register_b = RegInit(3.U(16.W));
25+
val register_c = RegInit(0.U(16.W));
2526

2627
val alu = Module(new Alu())
2728
alu.io.execute := false.B;
@@ -51,8 +52,9 @@ class Thread extends Module {
5152
when(io.operation === Operation.Add || io.operation === Operation.Sub || io.operation === Operation.Mul || io.operation === Operation.Div) {
5253
alu.io.execute := true.B;
5354
alu.io.operation := io.operation;
54-
alu.io.rs := io.immediate_a;
55-
alu.io.rt := io.immediate_b;
55+
alu.io.rs := register_a;
56+
alu.io.rt := register_b;
57+
register_a := alu.io.output
5658

5759
program_counter.io.update := true.B;
5860
program_counter.io.branch := false.B;
@@ -68,6 +70,9 @@ class Thread extends Module {
6870
printf(p"\n\t\tidle=${idle}");
6971
printf(p"\n\t\tio.idle=${io.idle}");
7072
printf(p"\n\t\tio.debug_output=${io.debug_output}");
73+
printf(p"\n\t\ta=${register_a}");
74+
printf(p"\n\t\tb=${register_b}");
75+
printf(p"\n\t\tc=${register_c}");
7176
printf(p"\n\n");
7277
}
7378
}

src/test/scala/main/CoreTest.scala

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,6 @@ class CoreTest extends AnyFlatSpec with ChiselScalatestTester {
1111

1212
println("[CoreTest]=====");
1313
dut.clock.step(1);
14-
15-
dut.io.debug_memory_write.poke(true.B);
16-
dut.io.debug_memory_write_address.poke(1.U(8.W));
17-
dut.io.debug_memory_write_data.poke(2.U(8.W));
1814

1915
println("[CoreTest]=====");
2016
dut.clock.step(1);
@@ -30,17 +26,6 @@ class CoreTest extends AnyFlatSpec with ChiselScalatestTester {
3026

3127
println("[CoreTest]=====");
3228
dut.clock.step(1);
33-
34-
// dut.io.debug_thread_debug_output.expect(5.U(8.W));
35-
36-
println("[CoreTest]=====");
37-
dut.clock.step(1);
38-
39-
println("[CoreTest]=====");
40-
dut.clock.step(1);
41-
42-
println("[CoreTest]=====");
43-
dut.clock.step(1);
4429
}
4530
}
4631
}

0 commit comments

Comments
 (0)