entropy_noise_source
Sample an asynchronous ring oscillator through a metastable flop into the system clock domain.
TOTAL_LENGTH and TAPPED_LENGTH size the RO; enable_i starts oscillation; detune_i high selects the full-length feedback path and low the shorter tap. sample_clk_i clocks the metastable sample; the bit is double-synchronized onto clk_i as noise_o.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
TOTAL_LENGTH | int unsigned | 17 | Full ring-oscillator stage count. |
TAPPED_LENGTH | int unsigned | 13 | Stage count of the shorter feedback tap, used while detune_i is low. |
Ports
| Name | Direction | Type | Description |
|---|---|---|---|
clk_i | input | logic | System clock. |
rst_ni | input | logic | Active-low asynchronous reset of the sample and synchronizer flops. |
sample_clk_i | input | logic | Clock of the flop that samples the asynchronous ring output. |
enable_i | input | logic | Enables the ring oscillator; while low its output is static. |
detune_i | input | logic | High selects the ring's full TOTAL_LENGTH feedback path, low the shorter TAPPED_LENGTH tap. |
noise_o | output | logic | Ring-oscillator sample, double-synchronized onto clk_i. |