drbg_axis_edn_adapter
Fan a 32-bit AXI-Stream entropy source out to native EDN client ports.
Entropy passes through these pipeline stages in order:
- axis (32b) into a 4-entry prim_fifo_sync staging FIFO.
- prim_arbiter_ppc round-robin arbitration across N requesters.
- A per-endpoint 1-deep holding FIFO.
- edn_ack_sm driving edn_ack / edn_bus.
edn_fips is forwarded from the AXI-Stream tuser sideband through both FIFO stages so a FIPS-aware client such as OTBN RND sees correct provenance. Upstream producers drive tuser:
- The DRBG native-EDN-to-AXIS adapter forwards edn_fips from u_edn.
- External streams should drive it from the producer's FIPS policy, commonly tied low when the source is not NIST SP 800-90A approved.
clear_i synchronously flushes staged entropy and every endpoint. endpoint_cancel_i synchronously cancels only the corresponding endpoint and does not disturb another client's in-flight response. It must assert before the client's reset asserts and hold until that reset deasserts.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
NUM_ENDPOINTS | int unsigned | 4 | Number of native EDN clients (e.g. AES, KMAC, OTBN RND/URND). |
Ports
| Name | Direction | Type | Description |
|---|---|---|---|
clk_i | input | logic | System clock. |
rst_ni | input | logic | Async reset, active-low. |
endpoint_cancel_i | input | logic [NUM_ENDPOINTS-1:0] | Per-client synchronous cancel. Must assert before its reset and hold until the reset deasserts; does not disturb other clients. |
clear_i | input | logic | Synchronous flush of staged entropy and every endpoint, active-high. |
axis_req_i | input | drbg_axis_req_t | 32b AXI-Stream sink from the producer (valid/data/strb/tuser). Adapter drives tready; only beats with every tstrb bit set are accepted, and tuser is forwarded as edn_fips. |
axis_rsp_o | output | drbg_axis_rsp_t | AXI-Stream ready toward the producer; high while the 4-entry staging FIFO has space, all tstrb bits are set and clear_i is low. |
edn_req_i | input | edn_pkg::edn_req_t [NUM_ENDPOINTS-1:0] | Native EDN requests from clients. |
edn_rsp_o | output | edn_pkg::edn_rsp_t [NUM_ENDPOINTS-1:0] | Native EDN responses to clients; ack, bus and fips are forced to zero during clear_i or that endpoint's reset. |