km_intf_pkg
Define the Key Manager interface types and address-map constants.
Shared by every Key Manager subsystem component:
- AXI4-Lite channel, request and response types (32-bit)
- ROM and SRAM memory interface structs (req/rsp)
- DRBG AXI-Stream interface structs
- IRQ event type, which no module uses
- SEP OTP data interface struct
- Full CPU address map constants for internal and external peripherals, used by the crossbar and the CPU router
km_addr_t
32-bit AXI data type for the Key Manager subsystem.
Alias for logic [KmAxiAddrWidth-1:0]
km_data_t
4-bit AXI write-strobe type (one bit per data byte).
Alias for logic [KmAxiDataWidth-1:0]
km_strb_t
4-bit AXI write-strobe type (one bit per data byte).
Alias for logic [KmAxiStrbWidth-1:0]
km_axil_aw_chan_t
Packed struct
| Field | Type | Description |
|---|---|---|
addr | km_addr_t | |
prot | axi_pkg::prot_t |
km_axil_w_chan_t
Packed struct
| Field | Type | Description |
|---|---|---|
data | km_data_t | |
strb | km_strb_t |
km_axil_b_chan_t
Packed struct
| Field | Type | Description |
|---|---|---|
resp | axi_pkg::resp_t |
km_axil_ar_chan_t
Packed struct
| Field | Type | Description |
|---|---|---|
addr | km_addr_t | |
prot | axi_pkg::prot_t |
km_axil_r_chan_t
Packed struct
| Field | Type | Description |
|---|---|---|
data | km_data_t | |
resp | axi_pkg::resp_t |
km_axil_req_t
Packed struct
| Field | Type | Description |
|---|---|---|
aw | km_axil_aw_chan_t | |
aw_valid | logic | |
w | km_axil_w_chan_t | |
w_valid | logic | |
b_ready | logic | |
ar | km_axil_ar_chan_t | |
ar_valid | logic | |
r_ready | logic |
km_axil_resp_t
Packed struct
| Field | Type | Description |
|---|---|---|
aw_ready | logic | |
w_ready | logic | |
b | km_axil_b_chan_t | |
b_valid | logic | |
ar_ready | logic | |
r | km_axil_r_chan_t | |
r_valid | logic |
km_rom_mem_req_t
ROM memory request (CPU -> ROM hard macro).
Packed struct
| Field | Type | Description |
|---|---|---|
req | logic | Request valid. |
addr | logic [KM_ROM_MEM_ADDR_WIDTH-1:0] | Word address. |
km_rom_mem_rsp_t
ROM memory response (ROM hard macro -> CPU).
Packed struct
| Field | Type | Description |
|---|---|---|
gnt | logic | Grant/ready. |
rvalid | logic | Read data valid. |
rdata | logic [KM_MEM_DATA_WIDTH-1:0] | Read data. |
parity | logic [KM_MEM_STRB_WIDTH-1:0] | Byte parity bits. |
km_sram_mem_req_t
SRAM memory request (CPU -> SRAM hard macro).
Packed struct
| Field | Type | Description |
|---|---|---|
req | logic | Request valid. |
we | logic | Write enable. |
be | logic [KM_MEM_STRB_WIDTH-1:0] | Byte enables. |
addr | logic [KM_SRAM_MEM_ADDR_WIDTH-1:0] | Word address. |
wdata | logic [KM_MEM_DATA_WIDTH-1:0] | Write data. |
wparity | logic [KM_MEM_STRB_WIDTH-1:0] | Write parity bits. |
km_sram_mem_rsp_t
SRAM memory response (SRAM hard macro -> CPU).
Packed struct
| Field | Type | Description |
|---|---|---|
gnt | logic | Grant/ready. |
rvalid | logic | Read data valid. |
rdata | logic [KM_MEM_DATA_WIDTH-1:0] | Read data. |
rparity | logic [KM_MEM_STRB_WIDTH-1:0] | Read parity bits. |
km_irq_events_t
Packed IRQ event flags for the Key Manager subsystem.
Packed struct
| Field | Type | Description |
|---|---|---|
rom_parity_err | logic | ROM parity error event. |
sram_parity_err | logic | SRAM parity error event. |
km_drbg_axis_req_t
bit-shifted) bind.
Packed struct
| Field | Type | Description |
|---|---|---|
tvalid | logic | |
tdata | logic [KmDrbgAxisDataWidth-1:0] | |
tstrb | logic [KmDrbgAxisStrbWidth-1:0] | |
tuser | logic |
km_drbg_axis_resp_t
DRBG AXI-Stream response (KM sampler slave -> DRBG master).
Packed struct
| Field | Type | Description |
|---|---|---|
tready | logic |
km_otp_data_t
the value.
Packed struct
| Field | Type | Description |
|---|---|---|
life_cycle | logic [7:0] | 4-bit value differentially encoded into 8-bit |
demotion_state_1 | logic [1:0] | 1-bit value differentially encoded into 2-bit |
demotion_state_2 | logic [1:0] | 1-bit value differentially encoded into 2-bit |
chiplet_uid | logic [511:0] | 256-bit UID, dual-rail: {~uid, uid} |
class_key | logic [511:0] | 256-bit class key, dual-rail: {~key, key} |
sip_uid | logic [511:0] | 256-bit SIP UID, dual-rail: {~uid, uid} |
sys_uid | logic [511:0] | 256-bit system UID, dual-rail: {~uid, uid} |
sep_chiplet_id | logic [511:0] | 256-bit chiplet public ID, dual-rail: {~id, id} |
sep_sip_id | logic [511:0] | 256-bit SiP public ID, dual-rail: {~id, id} |
sep_sys_id | logic [511:0] | 256-bit system public ID, dual-rail: {~id, id} |
km_window_end
block's registers repeat through the rest of the rule under a second set of addresses.
Function returning km_addr_t
| Name | Direction | Type | Description |
|---|---|---|---|
base | input | km_addr_t | |
addr_width | input | int unsigned |
otp_addr_decoded
True when addr falls in the MAP, CTRL or MMR register map of the OTP page.
Function returning logic
| Name | Direction | Type | Description |
|---|---|---|---|
addr | input | km_addr_t |