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
| Name | Direction | Type | Description |
|---|---|---|---|
clk_i | input | logic | System clock. |
rst_ni | input | logic | Active-low asynchronous reset. |
entropy_valid_i | input | logic | Qualifies entropy_data_i on the input handshake. |
entropy_data_i | input | logic [31:0] | Raw entropy word to hash, or to pass through in bypass. |
entropy_ready_o | output | logic | Input handshake ready; low while hashing or streaming a digest. |
whitened_valid_o | output | logic | Qualifies whitened_data_o on the output handshake. |
whitened_data_o | output | logic [31:0] | Digest word in order from word 0, or the input word in bypass. |
whitened_ready_i | input | logic | Output handshake ready; advances to the next digest word. |
enable_i | input | logic | High hashes the stream; low bypasses hashing and passes entropy_data_i straight through. |
busy_o | output | logic | High while enabled and a digest is being computed or streamed. |
input_count_o | output | logic [3:0] | Words accepted into the current 16-word block. |
output_count_o | output | logic [3:0] | Digest words still to be streamed; zero while enable_i is low. |