kmac_wrapper

Wrap the OpenTitan KMAC core with an AXI-Lite CSR bridge and a Key Manager key CSR block.

axi_lite_to_tlul bridges the 32-bit AXI-Lite CSR interface onto the KMAC TL-UL port. CSR addresses are rebased by the low 12 bits of the SEP KMAC base address and masked to the 12-bit KMAC window before the bridge. The AXI4-Lite key interface from the Key Manager private bus terminates in the generated kmac_wrapper_key_reg block, whose two key shares and valid bit drive the KMAC keymgr_key_i sideload port. EDN supplies entropy for the PRNG. Two alerts leave the block: index 0 is recoverable (recov_operation_err) and index 1 is fatal (fatal_fault_err). The hardware application interfaces are tied off, the shadow-register reset is tied to rst_ni, lifecycle escalation is tied off, and the EDN clock is clk_i. bus_err_o sticks on a TL-UL error response until bus_err_clr_i. idle_o reports KMAC idle.

Ports

Table 1. Ports
NameDirectionTypeDescription
clk_iinputlogicSystem clock.
rst_niinputlogicActive-low reset; also drives the KMAC shadow-register reset.
kmac_axil_req_iinputsep_pkg::sep_32_32_axil_req_tKMAC CSR request at system addresses; rebased and masked to 12 bits before the TL-UL bridge.
kmac_axil_resp_ooutputsep_pkg::sep_32_32_axil_resp_tKMAC CSR response from the TL-UL bridge.
kmac_key_axil_req_iinputsep_pkg::sep_32_32_axil_req_tKey Manager private-bus request to the KMAC key CSR block.
kmac_key_axil_resp_ooutputsep_pkg::sep_32_32_axil_resp_tResponse from the KMAC key CSR block to the Key Manager.
edn_req_ooutputedn_pkg::edn_req_tEDN request for PRNG entropy.
edn_rsp_iinputedn_pkg::edn_rsp_tEDN response for PRNG entropy.
intr_kmac_done_ooutputlogicKMAC done interrupt.
intr_fifo_empty_ooutputlogicKMAC message FIFO empty interrupt.
intr_kmac_err_ooutputlogicKMAC error interrupt.
alert_rx_iinputprim_alert_pkg::alert_rx_t [1:0]Alert receiver handshakes; index 0 recoverable (recov_operation_err), index 1 fatal (fatal_fault_err).
alert_tx_ooutputprim_alert_pkg::alert_tx_t [1:0]Differential alert senders; index 0 recoverable (recov_operation_err), index 1 fatal (fatal_fault_err).
bus_err_ooutputlogicSet by a TL-UL error response on the CSR bridge; sticky until bus_err_clr_i.
bus_err_clr_iinputlogicClears bus_err_o; a fault in the same cycle still sets it.
idle_ooutputlogicHigh when the KMAC core reports idle (mubi4 strictly true).