efuse_token_digest_sha256
Hash a fixed 256-bit token through OpenTitan prim_sha2_32 into a sticky digest.
Feeder FSM pulses hash_start, streams eight 32-bit words MSW-first (token_i[7] → message schedule w[0]), asserts hash_process, and waits for hash_done. The 256-bit message always fits in one 512-bit block; MultimodeEn is 0 (SHA-256 only). Digest is standard SHA-256 of the token byte stream with no endianness swap; H0 sits in the MSBs of the sticky digest. test_en_i freezes the retained digest for DFT; digest_vld_sticky_o marks validity.
Ports
| Name | Direction | Type | Description |
|---|---|---|---|
clk_i | input | logic | System clock. |
rst_ni | input | logic | Active-low asynchronous reset of the feeder and the SHA engine; the digest and valid latches are not reset. |
test_en_i | input | logic | DFT test-enable: freeze the retained digest. |
start_i | input | logic | Starts a hash of token_i when the feeder and engine are idle; while high it also clears digest_vld_sticky_o. |
token_i | input | logic [7:0][31:0] | 256-bit token, MSW = token_i[7]. |
digest_vld_sticky_o | output | logic | High when the retained digest is valid; cleared by start_i, set one cycle after the engine finishes, and held in a latch across reset. |
sha_digest_sticky_o | output | logic [255:0] | SHA-256 digest of the last hashed token, H0 in the MSBs; held in a latch across reset and frozen while test_en_i is high. |