sep_trng

Group the internal entropy source and DRBG under one local reset, rst_ni.

Owns:

  • entropy_source on a 32-bit AXI-Lite port (9-bit register offset), whose conditioned entropy stream seeds the DRBG directly.
  • The DRBG (CSRNG and EDN) on two 64-bit AXI-Lite ports, with NUM_AXIS EDN AXI-Stream endpoints and no native EDN endpoints.
  • CSRNG and EDN alerts; for each, index 0 is recoverable (recov_alert) and index 1 is fatal (fatal_alert).
  • Sticky CSRNG/EDN register-bridge faults, each held until its clear.

CSRNG software application reads are always enabled and lifecycle hardware debug is tied off. Source selection and consumer adapters live in sep_crypto because they also serve the external TRNG path.

trng_reset_active_o is rst_ni's assertion synchronized to clk_i under por_rst_ni; it is meant as a synchronous clear downstream, not as a reset.

Parameters

Table 1. Parameters
NameTypeDefaultDescription
NUM_AXISint unsignedsep_crypto_pkg::SepCryptoEdnEndpointCountNumber of DRBG AXI-Stream endpoints; elaboration fails unless it equals SepCryptoEdnEndpointCount.

Ports

Table 2. Ports
NameDirectionTypeDescription
clk_iinputlogicSystem clock.
por_rst_niinputlogicActive-low power-on reset; resets only the trng_reset_active_o synchronizer.
rst_niinputlogicActive-low local reset for entropy_source and the DRBG.
entropy_rosc_sample_clk_iinputlogicRing-oscillator sample clock for entropy_source; asynchronous to clk_i.
esrc_axil_req_iinputsep_pkg::sep_32_32_axil_req_tentropy_source register request; address bits [8:0] are used.
esrc_axil_resp_ooutputsep_pkg::sep_32_32_axil_resp_tentropy_source register response.
csrng_axil_req_iinputdrbg_pkg::drbg_axil64_req_tCSRNG register request, bridged to TL-UL inside the DRBG.
csrng_axil_resp_ooutputdrbg_pkg::drbg_axil64_resp_tCSRNG register response.
edn_axil_req_iinputdrbg_pkg::drbg_axil64_req_tEDN register request, bridged to TL-UL inside the DRBG.
edn_axil_resp_ooutputdrbg_pkg::drbg_axil64_resp_tEDN register response.
drbg_axis_req_ooutputdrbg_pkg::drbg_axis_req_t [NUM_AXIS-1:0]DRBG random-data streams, one independent stream per EDN endpoint.
drbg_axis_rsp_iinputdrbg_pkg::drbg_axis_rsp_t [NUM_AXIS-1:0]Consumer tready for each DRBG random-data stream.
csrng_alert_rx_iinputprim_alert_pkg::alert_rx_t [csrng_reg_pkg::NumAlerts-1:0]CSRNG alert receiver handshakes; index 0 recoverable (recov_alert), index 1 fatal (fatal_alert).
csrng_alert_tx_ooutputprim_alert_pkg::alert_tx_t [csrng_reg_pkg::NumAlerts-1:0]CSRNG differential alert senders; index 0 recoverable (recov_alert), index 1 fatal (fatal_alert).
edn_alert_rx_iinputprim_alert_pkg::alert_rx_t [edn_reg_pkg::NumAlerts-1:0]EDN alert receiver handshakes; index 0 recoverable (recov_alert), index 1 fatal (fatal_alert).
edn_alert_tx_ooutputprim_alert_pkg::alert_tx_t [edn_reg_pkg::NumAlerts-1:0]EDN differential alert senders; index 0 recoverable (recov_alert), index 1 fatal (fatal_alert).
entropy_source_irq_ooutputlogicentropy_source interrupt, aggregating its sticky fault and health-test status.
intr_cs_cmd_req_done_ooutputlogicCSRNG command-request-done interrupt.
intr_cs_entropy_req_ooutputlogicCSRNG entropy-request interrupt.
intr_cs_hw_inst_exc_ooutputlogicCSRNG hardware-instance exception interrupt.
intr_cs_fatal_err_ooutputlogicCSRNG fatal-error interrupt.
intr_edn_cmd_req_done_ooutputlogicEDN command-request-done interrupt.
intr_edn_fatal_err_ooutputlogicEDN fatal-error interrupt.
csrng_bus_err_ooutputlogicSet by a TL-UL error response on the CSRNG register bridge; sticky until csrng_bus_err_clr_i.
csrng_bus_err_clr_iinputlogicSingle-cycle clear for csrng_bus_err_o, pulsed by PERIPH_BUS_ERR_CLEAR.csrng in sep.
edn_bus_err_ooutputlogicSet by a TL-UL error response on the EDN register bridge; sticky until edn_bus_err_clr_i.
edn_bus_err_clr_iinputlogicSingle-cycle clear for edn_bus_err_o, pulsed by PERIPH_BUS_ERR_CLEAR.edn in sep.
trng_reset_active_ooutputlogicHigh while rst_ni is asserted, through a two-flop synchronizer to clk_i that por_rst_ni resets high.