entropy_sha256_whitener

Condition a 32-bit entropy stream with SHA-256 whitening per NIST SP 800-90B.

Accumulates 16 words (512 bits) into a SHA-256 block and streams the 256-bit digest as eight 32-bit words. When enable_i is low the module bypasses hashing and passes entropy through with ready/valid. busy_o, input_count_o, and output_count_o report hasher progress.

Ports

Table 1. Ports
NameDirectionTypeDescription
clk_iinputlogicSystem clock.
rst_niinputlogicActive-low asynchronous reset.
entropy_valid_iinputlogicQualifies entropy_data_i on the input handshake.
entropy_data_iinputlogic [31:0]Raw entropy word to hash, or to pass through in bypass.
entropy_ready_ooutputlogicInput handshake ready; low while hashing or streaming a digest.
whitened_valid_ooutputlogicQualifies whitened_data_o on the output handshake.
whitened_data_ooutputlogic [31:0]Digest word in order from word 0, or the input word in bypass.
whitened_ready_iinputlogicOutput handshake ready; advances to the next digest word.
enable_iinputlogicHigh hashes the stream; low bypasses hashing and passes entropy_data_i straight through.
busy_ooutputlogicHigh while enabled and a digest is being computed or streamed.
input_count_ooutputlogic [3:0]Words accepted into the current 16-word block.
output_count_ooutputlogic [3:0]Digest words still to be streamed; zero while enable_i is low.