axi_window_remap
Remap AXI addresses inside one alias window onto a target base.
Addresses in [local_alias_base_i, local_alias_base_i + region_size_i) rewrite to target_base_i plus the offset; all others pass through unchanged. Only AW and AR addresses change, the module is combinational, and all window parameters are runtime inputs. The remap supports both local-alias and global-to-local remapping.
For example, local_alias_base 0xC000_0000, target_base 0x1000_0000 and region_size 0x50000 map 0xC000_1234 to 0x1000_1234 and leave 0x2000_0000 unchanged.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
AXI_ADDR_WIDTH | int unsigned | 32 | AXI address width. |
Ports
| Name | Direction | Type | Description |
|---|---|---|---|
slv_req_i | input | axi_req_t | Slave-side AXI request, before the remap. |
slv_resp_o | output | axi_resp_t | Slave-side AXI response. |
mst_req_o | output | axi_req_t | Master-side AXI request, after the remap. |
mst_resp_i | input | axi_resp_t | Master-side AXI response. |
local_alias_base_i | input | logic [AXI_ADDR_WIDTH-1:0] | Start of the alias region (e.g. 0xC000_0000). |
region_size_i | input | logic [AXI_ADDR_WIDTH-1:0] | Size of the alias region in bytes. |
target_base_i | input | logic [AXI_ADDR_WIDTH-1:0] | Remap destination base (e.g. 0x1000_0000). |