drbg_csrng_seed_adapter

Pack 32-bit entropy words into queued 384-bit CSRNG seeds.

Uses prim_packer_fifo to accumulate twelve 32-bit words into one 384-bit seed with the required lane mapping, then stores complete {es_fips, es_bits} entries in a small same-clock FIFO. The wrapped CSRNG consumes queued entries through the native entropy_src_hw_if_req_t / entropy_src_hw_if_rsp_t interface.

Parameters

Table 1. Parameters
NameTypeDefaultDescription
SEED_FIFO_DEPTHint unsignedDrbgDefaultSeedFifoDepthNumber of complete seeds that can be queued.

Ports

Table 2. Ports
NameDirectionTypeDescription
clk_iinputlogicSystem clock.
rst_niinputlogicAsync reset, active-low.
csrng_word_valid_iinputlogicIncoming entropy-word valid.
csrng_word_data_iinputlogic [31:0]Incoming 32-bit entropy word.
csrng_word_ready_ooutputlogicPacker ready for a word; low while the packer holds a complete seed that the seed FIFO has not accepted.
entropy_src_hw_if_req_iinputentropy_src_pkg::entropy_src_hw_if_req_tCSRNG seed-request handshake.
entropy_src_hw_if_rsp_ooutputentropy_src_pkg::entropy_src_hw_if_rsp_tCSRNG seed response with bits and fips; es_ack is combinational, high when es_req is high and a seed is queued.
seed_queue_valid_ooutputlogicSeed FIFO not empty.
seed_queue_bits_ooutputlogic [383:0]Next queued 384-bit seed; zero when the FIFO is empty.
seed_queue_fips_ooutputlogicFIPS flag for the next seed, the provisional policy constant DrbgCsrngSeedFipsProvisional; zero when the FIFO is empty.
seed_push_ooutputlogicPulse when a seed is pushed.
packer_word_count_ooutputlogic [4:0]Words accumulated in the packer, 0 to 12.
seed_queue_depth_ooutputlogic [$clog2(SEED_FIFO_DEPTH + 1)-1:0]Current seed-FIFO fill.