Top (controller.sv)
Source:
rtl/systolic_gauss_jordan/controller.sv
controller is the top for one Gauss-Jordan run. It owns run-level
timing only and delegates row feeding to \input.
Function
On start_i, the module latches the run configuration, starts the feeder, and
begins a local cycle counter. During the run it optionally emits a one-cycle
reduce pulse. When the configured run window completes, it pulses done_o and
returns idle.
The data path is:
controller -> \input -> trapeziod_mesh
Interface contract
start_iis single-shot while idlerows_iselects how many A/B rows the feeder issuesreduce_start_iis the step-local cycle at which reduce is assertedrun_cycles_i == 0falls back to3N + rows_i + L - 2busy_ostays high for the active rundone_ois a one-cycle completion pulseerror_oflags invalid control use such as restart-while-busy