Skip to content
hw.dev
hw.dev/signal/isdb-fpga-decoder-port-rate-regression-2026
Signalisdb-rs

A Full-Rate Broadcast Test Finds the FPGA Port Is Too Slow

A full-rate receiver test exposed a one-cycle overhead that overflowed an otherwise correct FPGA decoder.

Thesis connection

Worst-case traffic tests can expose timing failures that clean block-level simulations never reach.

#fpga#testing#verification#embedded
Read Original

An isdb-rs test fed a broadcast receiver its hardest traffic pattern and found that the decoder's input port needed 232.6 million cycles per second from a field-programmable gate array (FPGA) clocked at 200 million cycles per second. The design's individual blocks were correct. Under a full-rate 32-point signal, one extra cycle between groups made the input queue drop 9,631 values and left the next frame undecoded.

The serializer had been spending six cycles to deliver five values because it waited an extra cycle before loading the next group. isdb-rs changed it to load the next group while sending the last value from the current one. Required throughput fell to 192.6 million cycles per second, below the clock's limit. A test now runs three frames bit for bit at full rate, and random group tests plus a formal check pin the queue behavior.

This bug is a warning for teams that validate streaming hardware one block at a time. Add a test that combines the fastest legal input with every competing burst on the shared port, then leave it in the default suite; average traffic won't reveal a fixed one-cycle penalty until hardware starts dropping data.