Referring to the Comportable guideline for peripheral device functionality, the module entropy_src has the following hardware interfaces defined
- Primary Clock:
clk_i
- Other Clocks: none
- Bus Device Interfaces (TL-UL):
tl
- Bus Host Interfaces (TL-UL): none
- Peripheral Pins for Chip IO: none
| Port Name |
Package::Struct |
Type |
Act |
Width |
Description |
| entropy_src_hw_if |
entropy_src_pkg::entropy_src_hw_if |
req_rsp |
rsp |
1 |
|
| entropy_src_rng_enable |
logic |
uni |
req |
1 |
Signal through which entropy_src enables the noise source. entropy_src will keep this signal high as long as it expects the noise source to operate. This is not a flow control signal through which entropy_src would exert backpressure on the noise source; rather this signal stays high while entropy_src is enabled. |
| entropy_src_rng_valid |
logic |
uni |
rcv |
1 |
Acknowledgement signal from the noise source. When '1', it indicates that the entropy_src_rng_bit data is valid and ready to be consumed. |
| entropy_src_rng_bits |
logic |
uni |
rcv |
RngBusWidth |
Output data bus carrying the raw entropy bits from the noise source. These bits are valid when entropy_src_rng_valid is asserted. The width is determined by RngBusWidth parametrization. |
| entropy_src_xht_valid |
logic |
uni |
req |
1 |
Valid signal for the external health test interface. When asserted, it indicates that entropy_src_xht_bits, entropy_src_xht_bit_sel, and entropy_src_xht_meta are valid for consumption by the external health test. |
| entropy_src_xht_bits |
logic |
uni |
req |
RngBusWidth |
Carries the raw entropy data from the entropy source to be consumed by the external health test module. The data on this bus is valid when entropy_src_xht_valid is asserted. The width is determined by RngBusWidth parametrization. |
| entropy_src_xht_bit_sel |
logic |
uni |
req |
RngBusBitSelWidth |
Provides bit selection information for the raw entropy data. It specifies which specific bit or subset of bits from entropy_src_xht_bit should be used. The width is determined by RngBusBitSelWidth parametrization. |
| entropy_src_xht_health_test_window |
logic |
uni |
req |
HealthTestWindowWidth |
Provides the window size of the health in bits. |
| entropy_src_xht_meta |
entropy_src_pkg::entropy_src_xht_meta |
req_rsp |
req |
1 |
|
| otp_en_entropy_src_fw_read |
prim_mubi_pkg::mubi8 |
uni |
rcv |
1 |
|
| otp_en_entropy_src_fw_over |
prim_mubi_pkg::mubi8 |
uni |
rcv |
1 |
|
| rng_fips |
logic |
uni |
req |
1 |
|
| tl |
tlul_pkg::tl |
req_rsp |
rsp |
1 |
|
| Interrupt Name |
Type |
Description |
| es_entropy_valid |
Event |
Asserted when entropy source bits are available for firmware for consumption via ENTROPY_DATA register. |
| es_health_test_failed |
Event |
Asserted whenever the main state machine is in the alert state, e.g., due to health tests failing and reaching the threshold value configured in ALERT_THRESHOLD. |
| es_observe_fifo_ready |
Event |
Asserted when the observe FIFO has filled to the configured threshold level (see OBSERVE_FIFO_THRESH). |
| es_fatal_err |
Event |
Asserted when an fatal error condition is met, e.g., upon FIFO errors, or if an illegal state machine state is reached. |
| Alert Name |
Description |
| recov_alert |
This alert is triggered upon the alert health test threshold criteria not met. |
| fatal_alert |
This alert triggers for any condition detected in the ERR_CODE register, which includes FIFO errors, COUNTER errors, FSM state errors, and also when integrity failures are detected on the TL-UL bus. |
| Countermeasure ID |
Description |
| ENTROPY_SRC.CONFIG.REGWEN |
Registers are protected from writes. |
| ENTROPY_SRC.CONFIG.MUBI |
Registers have multi-bit encoded fields. |
| ENTROPY_SRC.CONFIG.REDUN |
Threshold register has an inverted copy to compare against. |
| ENTROPY_SRC.INTERSIG.MUBI |
OTP signal used to enable software access to registers. |
| ENTROPY_SRC.MAIN_SM.FSM.SPARSE |
The ENTROPY_SRC main state machine uses a sparse state encoding. |
| ENTROPY_SRC.ACK_SM.FSM.SPARSE |
The ENTROPY_SRC ack state machine uses a sparse state encoding. |
| ENTROPY_SRC.RNG.BKGN_CHK |
Random number generator is protected with continuous background health checks. |
| ENTROPY_SRC.FIFO.CTR.REDUN |
The FIFO pointers of several FIFOs are implemented with duplicate counters. |
| ENTROPY_SRC.CTR.REDUN |
Counter hardening for all health test counters. |
| ENTROPY_SRC.CTR.LOCAL_ESC |
Redundant counter failures will cause a local escalation to the main state machine. |
| ENTROPY_SRC.ESFINAL_RDATA.BUS.CONSISTENCY |
Comparison on successive bus values for the post-conditioned entropy seed bus. |
| ENTROPY_SRC.TILE_LINK.BUS.INTEGRITY |
Tilelink end-to-end bus integrity scheme. |