Commit 1dbb288
committed
Add FU-CDB pipeline: adapter, ALU shim, MUL/DIV shim into tomasulo_wrapper
Phase A: fu_cdb_adapter — one-deep holding register between FU and CDB
arbiter. Combinational pass-through when granted same cycle, latches
and re-presents otherwise. Includes formal properties and 11 cocotb
tests. Standalone SymbiYosys config in formal/.
Phase B: Add `pc` field to rs_dispatch_t / rs_issue_t so shims can
compute AUIPC/JAL link addresses. Plumbed through RS, testbench
wrappers, and cocotb interfaces/models.
Phase C: int_alu_shim + fu_cdb_adapter integrated into
tomasulo_wrapper. INT_RS issues internally through the ALU shim and
adapter to CDB arbiter slot 0, replacing the external i_fu_complete[0]
path. fu_ready gated by adapter back-pressure. All 26 wrapper tests
updated (backward-compat CDB methods moved from FU_ALU to FU_MUL).
Phase D: int_muldiv_shim integrated into tomasulo_wrapper. MUL_RS
issues internally through the muldiv shim (standalone multiplier +
divider instances) to two fu_cdb_adapters driving CDB arbiter slots
1 and 2. Per-FU in-flight tracking with flush suppression. fu_ready
gated by busy + both adapter pending signals. Tests updated: CDB
backward-compat methods moved from FU_MUL to FU_MEM (slot 3),
arbitration contention test uses external-only slots (MEM/FP_ADD/
FP_DIV), MANUAL_CDB_RS_TYPES excludes MUL_RS.
After this commit, CDB slots 0-2 are driven by internal FU pipelines
(ALU, MUL, DIV). Slots 3-6 remain external (MEM, FP_ADD, FP_MUL,
FP_DIV).1 parent f0d57b7 commit 1dbb288
File tree
26 files changed
+2613
-82
lines changed- formal
- hw
- rtl/cpu_and_mem/cpu
- tomasulo
- fu_cdb_adapter
- fu_shims
- reservation_station
- tomasulo_wrapper
- sim
- tests
- verif/cocotb_tests/tomasulo
- fu_cdb_adapter
- reservation_station
- tomasulo_wrapper
26 files changed
+2613
-82
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
22 | 29 | | |
23 | 30 | | |
24 | 31 | | |
| |||
30 | 37 | | |
31 | 38 | | |
32 | 39 | | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
33 | 47 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1420 | 1420 | | |
1421 | 1421 | | |
1422 | 1422 | | |
| 1423 | + | |
| 1424 | + | |
1423 | 1425 | | |
1424 | 1426 | | |
1425 | 1427 | | |
| |||
1443 | 1445 | | |
1444 | 1446 | | |
1445 | 1447 | | |
| 1448 | + | |
| 1449 | + | |
1446 | 1450 | | |
1447 | 1451 | | |
1448 | 1452 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
Lines changed: 8 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
0 commit comments