Min-sum BP
This page covers the scalable decoder-side RTL under rtl/minsum_bp/.
Role
rtl/minsum_bp/ is the current message-passing decoder path in this
repository. It is separate from the systolic Gauss-Jordan solver and is meant
to act as a scalable front-end that can either stand alone or later feed
decoder-side post-processing.
Current files
minsum_pkg.svShared arithmetic helpers, including normalization support.minsum_row_engine.svThe row-local normalized min-sum update kernel.minsum_decode_top.svThe single-engine layered controller and state store.
Current architecture
The shipped reference implementation uses:
row-layered normalized min-sum
compressed row storage via
row_ptrandedge_varpersistent
app_llr[N]andc2v[E]stateone active row engine at a time
The current example flow for this RTL is:
Why this path is separate
The min-sum decoder has a different scaling model from the solver RTL:
it is graph driven, not matrix-stream driven
it is intended to scale through row-engine replication
it keeps the decoder front-end in a compact fixed-point row-update form
That separation keeps the decoder front-end modular and easier to evolve.