axi_alias_remap
Remap AXI addresses that hit configured alias regions onto their target bases.
Each remap_regions_i entry supplies a valid bit, a region_start and exclusive region_end bound, an offset, and a cacheable field. The module is combinational. When AW or AR hits valid regions, the lowest-numbered one applies: a carry-select adder adds its offset to the address bits from ALIAS_REMAP_IDX_START upward, modulo their width, the bits below pass through, and AxCACHE is replaced by the region's cacheable value, bit for bit. Misses pass through unchanged, and all other channels are wired straight through.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
NUM_REGIONS | int unsigned | 4 | Number of alias regions. |
DEBUG_OUTPUT | int unsigned | 0 | remap_debug_o is driven when 1 and tied to zero otherwise. |
ALIAS_REMAP_IDX_START | int unsigned | 12 | Lowest remapped address bit; lower bits pass through unchanged. |
AXI_ADDR_WIDTH | int unsigned | 64 | AXI address width. |
NUM_CHUNKS_CARRY_SELECT_ADDER | int unsigned | 2 | Carry-select adder chunk count. |
AliasRemapOffsetWidth | int unsigned | AXI_ADDR_WIDTH - ALIAS_REMAP_IDX_START | Width of the remapped upper address field. |
Ports
| Name | Direction | Type | Description |
|---|---|---|---|
remap_regions_i | input | remap_region_t | Per-region remap configuration. |
remap_debug_o | output | remap_debug_t | Per-channel miss flag and index of the lowest-numbered region hit by the current AW and AR addresses; on a miss the index reads as the highest region. |
axi_in_req_i | input | axi_req_t | Pre-remap AXI request. |
axi_in_resp_o | output | axi_resp_t | Pre-remap AXI response. |
axi_out_req_o | output | axi_req_t | Post-remap AXI request. |
axi_out_resp_i | input | axi_resp_t | Post-remap AXI response. |