Feeder (input.sv)

Source:

  • rtl/systolic_gauss_jordan/input.sv

Scheduled feeder figure

Scheduled feeder figure

Function

\input is the current feeder. It owns the A/B memories, reads one row from each memory per issue cycle, packs them as {B_row, A_row}, applies the stagger delay bank, and drives the top edge of trapeziod_mesh.

The module keeps only the signals needed for execution:

  • row count and base addresses

  • write ports for A/B preload

  • reduce_i

  • busy_o, error_o, and data_bottom_o

Internal stages

  1. Read A and B rows from synchronous RAMs.

  2. Form one combined row word {B_row, A_row}.

  3. Delay column col by col + 1.

  4. Gate delayed bits with delayed valid.

  5. Drive trapeziod_mesh.