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

Table 1. Ports
NameDirectionTypeDescription
clk_iinputlogicSystem clock.
rst_niinputlogicActive-low asynchronous reset of the feeder and the SHA engine; the digest and valid latches are not reset.
test_en_iinputlogicDFT test-enable: freeze the retained digest.
start_iinputlogicStarts a hash of token_i when the feeder and engine are idle; while high it also clears digest_vld_sticky_o.
token_iinputlogic [7:0][31:0]256-bit token, MSW = token_i[7].
digest_vld_sticky_ooutputlogicHigh 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_ooutputlogic [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.