This entity provides a reusable, optionally pipelined SECDED encoder. It wraps the
eccEncode function from olo_ft_pkg_ecc into a standalone
entity exposing an AXI4-Stream forward handshake (In_Valid / In_Ready, Out_Valid / Out_Ready).
A codeword-wide error-injection side channel is also provided. The injection pattern is latched on
ErrInj_Valid and applied to the next accepted data beat. If ErrInj_Valid is asserted in the
same cycle as a completed handshake, the pattern is applied directly without going through the latch.
See
Open Logic Fault-Tolerance Principles - Error Injection for the
latched-injection semantics shared across the ft area.
Use cases:
Inside ECC-protected RAM/FIFO entities in the ft area (instantiated by olo_ft_ram_sp
and friends to avoid duplicating the encoder body).
Forward error correction (FEC) over a transmission link.
AXI4-Stream traffic that is buffered in unprotected external memory (encode at the producer, decode at the
consumer with olo_ft_ecc_decode).
The Pipeline_g generic inserts register stages on the encode datapath. The range is 0..1.
Pipeline_g
Structure
0
Combinational eccEncode + injection XOR (no register). Out_Codeword tracks In_Data within the same cycle as a completed handshake.
1
Combinational eccEncode + injection XOR feeds a single register at the output. Breaks the combinational path from upstream logic to whatever consumes Out_Codeword.
Number of register stages (range 0..1). 0 = combinational output, 1 = register near output.
UseReady_g
boolean
true
If true, In_Ready honours back-pressure from Out_Ready (shadow-register pipeline). If false, In_Ready is hard-wired to '1' and the pipeline is a plain register chain.