Ch440 review fixes: 93-bit per-bank test coverage + soften M20K claims [READY FOR REVIEW]
Per Codex review of 471c1af:
1. tb_gs_async_fifo QUAD_WIDTH4 variant now runs at the PRODUCTION 93-bit width
(exercising the odd 23/23/23/24 remainder split) and drives a DISTINCT NONZERO
pattern into every width bank (seq XOR per-bank constants, bank2 inverted), with
the scoreboard checking the FULL reconstructed word. A swapped/broken/zeroed
upper bank now changes the word and trips the scoreboard. Depth-half crossing
(DEPTH=8) + wrap/full coverage retained. mk() is generate-guarded so the 32-bit
variants never elaborate the 93-bit selects.
2. Softened gs_async_fifo comments: 'same total M20K' -> EXPECTED-similar, pending
synthesis (fact -> expectation).
No simulations or Quartus run. Awaiting review before any sim.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -31,8 +31,9 @@ module gs_async_fifo #(
|
||||
parameter bit QUADRANT_READ = 1'b0,
|
||||
// Ch440: two depth banks x FOUR width banks (eight physical RAMs). Like
|
||||
// QUADRANT_READ but splits the payload into four width banks instead of two,
|
||||
// halving each preserved read-address register's M20K load AGAIN at the same
|
||||
// total M20K, while KEEPING QUADRANT_READ's 2:1 depth output selector (no
|
||||
// halving each preserved read-address register's M20K load AGAIN (total M20K
|
||||
// is EXPECTED to stay ~the same, pending synthesis), while KEEPING
|
||||
// QUADRANT_READ's 2:1 depth output selector (no
|
||||
// new/deeper output mux). Depth, one-cycle read latency, ordering, capacity,
|
||||
// and interface behaviour are identical to QUADRANT_READ.
|
||||
parameter bit QUAD_WIDTH4_READ = 1'b0
|
||||
@@ -174,7 +175,8 @@ module gs_async_fifo #(
|
||||
if (QUAD_WIDTH4_READ) begin : g_quad_width4_storage
|
||||
// Ch440: 2 depth banks x 4 width banks = eight RAMs. Each read-address
|
||||
// register drives only a HALF_DEPTH x ~(WIDTH/4) RAM -> roughly half the
|
||||
// M20K load of QUADRANT_READ's hi/lo banks, at the SAME total M20K. The
|
||||
// M20K load of QUADRANT_READ's hi/lo banks, at an EXPECTED-similar total
|
||||
// M20K (pending synthesis confirmation). The
|
||||
// depth-half selection stays a 2:1 OUTPUT mux, byte-for-byte the selector
|
||||
// QUADRANT_READ already uses -- no new/deeper output mux is introduced.
|
||||
localparam int W4B0 = WIDTH/4;
|
||||
|
||||
Reference in New Issue
Block a user