Skip to content

Commit 5dd198d

Browse files
Fix reading incorrect location from memory
1 parent 9a38fad commit 5dd198d

File tree

4 files changed

+26
-5
lines changed

4 files changed

+26
-5
lines changed

src/main/scala/main/Core.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ class Core extends Module {
1818
val dispatcher = Module(new Dispatcher());
1919
val thread = Module(new Thread());
2020

21-
memory.io.readPorts(0).enable := 3.U * dispatcher.io.read_requested;
22-
memory.io.readPorts(0).address := dispatcher.io.read_program_pointer;
21+
memory.io.readPorts(0).enable := dispatcher.io.read_requested;
22+
memory.io.readPorts(0).address := 3.U * dispatcher.io.read_program_pointer;
2323
memory.io.readPorts(1).enable := dispatcher.io.read_requested;
2424
memory.io.readPorts(1).address := 3.U * dispatcher.io.read_program_pointer + 1.U;
2525
memory.io.readPorts(2).enable := dispatcher.io.read_requested;

src/main/scala/main/Dispatcher.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class Dispatcher extends Module {
5050
printf(p"\t[Dispatcher]=====");
5151
printf(p"\n\t\tRead Complete ${io.read_opcode}");
5252
printf(p"\n\t\tImmediate Lower ${io.read_immediate_l}");
53-
printf(p"\n\t\tImmediate Upper ${io.read_immediate_u}");
53+
printf(p"\n\t\tImmediate Upper ${io.read_immediate_u}\n\n");
5454

5555
opcode := Operation.safe(io.read_opcode(6, 3))._1;
5656

src/main/scala/main/Thread.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class Thread extends Module {
2424

2525
val register_a = RegInit(2.U(16.W));
2626
val register_b = RegInit(3.U(16.W));
27-
val register_c = RegInit(0.U(16.W));
27+
val register_c = RegInit(7.U(16.W));
2828

2929
val alu = Module(new Alu())
3030
alu.io.execute := false.B;
@@ -99,6 +99,8 @@ class Thread extends Module {
9999
printf(p"\n\t\ta=${register_a}");
100100
printf(p"\n\t\tb=${register_b}");
101101
printf(p"\n\t\tc=${register_c}");
102+
printf(p"\n\t\tSrc Register=${io.src_register}");
103+
printf(p"\n\t\tDst Register=${io.dst_register}");
102104
printf(p"\n\n");
103105
}
104106
}

src/test/scala/main/CoreTest.scala

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,14 @@ class CoreTest extends AnyFlatSpec with ChiselScalatestTester {
77
test(new Core) { dut =>
88
dut.io.debug_memory_write.poke(true.B);
99
dut.io.debug_memory_write_address.poke(0.U(8.W));
10-
dut.io.debug_memory_write_data.poke(0b00100000.U(8.W));
10+
dut.io.debug_memory_write_data.poke(0b00100010.U(8.W));
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(3.U(8.W));
17+
dut.io.debug_memory_write_data.poke(0b00100001.U(8.W));
1418

1519
println("[CoreTest]=====");
1620
dut.clock.step(1);
@@ -26,6 +30,21 @@ class CoreTest extends AnyFlatSpec with ChiselScalatestTester {
2630

2731
println("[CoreTest]=====");
2832
dut.clock.step(1);
33+
34+
println("[CoreTest]=====");
35+
dut.clock.step(1);
36+
37+
println("[CoreTest]=====");
38+
dut.clock.step(1);
39+
40+
println("[CoreTest]=====");
41+
dut.clock.step(1);
42+
43+
println("[CoreTest]=====");
44+
dut.clock.step(1);
45+
46+
println("[CoreTest]=====");
47+
dut.clock.step(1);
2948
}
3049
}
3150
}

0 commit comments

Comments
 (0)