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

Table 1. Parameters
NameTypeDefaultDescription
TOTAL_LENGTHint unsigned17Full ring-oscillator stage count.
TAPPED_LENGTHint unsigned13Stage count of the shorter feedback tap, used while detune_i is low.

Ports

Table 2. Ports
NameDirectionTypeDescription
clk_iinputlogicSystem clock.
rst_niinputlogicActive-low asynchronous reset of the sample and synchronizer flops.
sample_clk_iinputlogicClock of the flop that samples the asynchronous ring output.
enable_iinputlogicEnables the ring oscillator; while low its output is static.
detune_iinputlogicHigh selects the ring's full TOTAL_LENGTH feedback path, low the shorter TAPPED_LENGTH tap.
noise_ooutputlogicRing-oscillator sample, double-synchronized onto clk_i.