File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -43,6 +43,7 @@ class Core extends Module {
4343 io.debug_dispatcher_program_pointer := dispatcher.io.program_pointer;
4444
4545 val thread = Module (new Thread ());
46+ thread.io.dispatcher_opcode_loaded := dispatcher.io.opcode_loaded;
4647 thread.io.dispatcher_opcode := dispatcher.io.opcode;
4748 thread.io.dispatcher_program_pointer := dispatcher.io.program_pointer;
4849
Original file line number Diff line number Diff line change @@ -12,6 +12,7 @@ class Dispatcher extends Module {
1212 val read_ready = Input (Bool ());
1313 val read_opcode = Input (Operation ());
1414
15+ val opcode_loaded = Output (Bool ());
1516 val opcode = Output (Operation ());
1617 val program_pointer = Output (UInt (8 .W ));
1718 });
@@ -21,6 +22,8 @@ class Dispatcher extends Module {
2122 val read_program_pointer = RegInit (0 .U (8 .W ));
2223 io.read_program_pointer := read_program_pointer;
2324
25+ val opcode_loaded = RegInit (false .B );
26+ io.opcode_loaded := opcode_loaded;
2427 val opcode = RegInit (Operation .NoOp );
2528 io.opcode := opcode;
2629 val program_pointer = RegInit (0 .U (8 .W ));
@@ -33,6 +36,7 @@ class Dispatcher extends Module {
3336
3437 when(io.read_ready) {
3538 opcode := io.read_opcode;
39+ opcode_loaded := true .B ;
3640 program_pointer := io.read_program_pointer;
3741 read_requested := false .B ;
3842 }
Original file line number Diff line number Diff line change @@ -4,6 +4,7 @@ import _root_.circt.stage.ChiselStage
44
55class Thread extends Module {
66 val io = IO (new Bundle {
7+ val dispatcher_opcode_loaded = Input (Bool ());
78 val dispatcher_opcode = Input (Operation ());
89 val dispatcher_program_pointer = Input (UInt (8 .W ));
910
Original file line number Diff line number Diff line change @@ -8,6 +8,8 @@ class DispatcherTest extends AnyFlatSpec with ChiselScalatestTester {
88 dut.io.thread_requesting_opcode.poke(true .B );
99 dut.io.thread_program_pointer.poke(1 .U (8 .W ));
1010
11+ dut.io.opcode_loaded.expect(false .B );
12+
1113 dut.clock.step(1 );
1214
1315 dut.io.read_requested.expect(true .B );
@@ -20,6 +22,7 @@ class DispatcherTest extends AnyFlatSpec with ChiselScalatestTester {
2022
2123 dut.clock.step(1 );
2224
25+ dut.io.opcode_loaded.expect(true .B );
2326 dut.io.opcode.expect(Operation .Add );
2427 dut.io.program_pointer.expect(1 .U (8 .W ));
2528 }
You can’t perform that action at this time.
0 commit comments