2.2.4. Avalon® Memory-Mapped Decoder
The Avalon® memory-mapped decoder is an address decoder used to arbitrate multiple Avalon® memory-mapped interface agents to one Avalon® memory-mapped interface host. It is a scalable decoder that can support different number of agents, capable of partial or full address decoding.
Parameter Name | Default Value | Description |
---|---|---|
SLAVE_NUM | 3 | Number of agent interfaces. |
ADDR_WIDTH | 32 | Determines the width of master_addr and slave_addr. |
DATA_WIDTH | 32 | Determines the width of master_writedata, master_readdata, slave_writedata, and slave_readdata. |
BYTE_EN_WIDTH | 4 | Determines the width of master_byteenable and slave_byteenable. |
PARTIAL_DECODING_EN | 0 |
To enable partial decoding of address:
|
SLAVE_ADDR_SEL_LSB_INDEX | 20 | When partial decoding is enabled, specify the lower boundary of the agent address bit index to decode. |
SLAVE_ADDR_SEL_MSB_INDEX | 23 | When partial decoding is enabled, specify the upper boundary of the agent address bit index to decode. Must be greater than or equal to SLAVE_ADDR_SEL_LSB_INDEX and must not exceed ADDR_WIDTH-1. |
Port Name | Width | Direction | Domain | Description |
---|---|---|---|---|
clk | 1 | Input | - | Clock. Supply with i_reconfig_clk. |
rst | 1 | Input | clk | Synchronous reset. Active high. |
master_addr | ADDR_WIDTH | Input | clk | Avalon memory-mapped host address. |
master_read | 1 | Input | clk | Avalon memory-mapped host read. |
master_write | 1 | Input | clk | Avalon memory-mapped host write. |
master_writedata | DATA_WIDTH | Input | clk | Avalon memory-mapped host write data. |
master_byteenable | BYTE_EN_WIDTH | Input | clk | Avalon memory-mapped host byte enable. |
master_readdata | DATA_WIDTH | Output | clk | Avalon memory-mapped host read data. |
master_readdatavalid | 1 | Output | clk | Avalon memory-mapped host read data valid. |
master_waitrequest | 1 | Output | clk | Avalon memory-mapped host wait request. |
slave_addr | ADDR_WIDTH | Output | clk | Avalon memory-mapped agent address. |
slave_writedata | DATA_WIDTH | Output | clk | Avalon memory-mapped agent write data. |
slave_byteenable | BYTE_EN_WIDTH | Output | clk | Avalon memory-mapped agent byte enable. |
slave_read | SLAVE_NUM | Output | clk | Avalon memory-mapped agent read. |
slave_write | SLAVE_NUM | Output | clk | Avalon memory-mapped agent write. |
slave_readdata | SLAVE_NUM*DATA_WIDTH | Input | clk | Avalon memory-mapped agent read data. |
slave_readdatavalid | SLAVE_NUM | Input | clk | Avalon memory-mapped agent read data valid. |
slave_waitrequest | SLAVE_NUM | Input | clk | Avalon memory-mapped agent wait request. |