07-12-2024, 05:46 PM
I am encountering an issue while using an AXI crossbar in my project, which has 2 slave ports and 1 master port. In the project, I have two DMAs accessing a single memory for read operations. I am using the PULP AXI_XBAR, and although it simulates, I am experiencing an error where the crossbar directs all request response data to one DMA. It correctly decodes read addresses from both DMAs but sends the response data to only one DMA. Can anyone guide me on this issue? Here is the crossbar configuration:
// AXI Configuration
localparam axi_pkg::xbar_cfg_t XbarCfg = '{
NoSlvPorts: 2,
NoMstPorts: 1,
MaxMstTrans: 20,
MaxSlvTrans: 10,
FallThrough: 1'b0,
LatencyMode: axi_pkg::CUT_ALL_AX,
PipelineStages: 2,
AxiIdWidthSlvPorts: 2,
AxiIdUsedSlvPorts: 2,
UniqueIds: 1'b0,
AxiAddrWidth: AddrWidth,
AxiDataWidth: DataWidth,
NoAddrRules: 1
};
// AXI Configuration
localparam axi_pkg::xbar_cfg_t XbarCfg = '{
NoSlvPorts: 2,
NoMstPorts: 1,
MaxMstTrans: 20,
MaxSlvTrans: 10,
FallThrough: 1'b0,
LatencyMode: axi_pkg::CUT_ALL_AX,
PipelineStages: 2,
AxiIdWidthSlvPorts: 2,
AxiIdUsedSlvPorts: 2,
UniqueIds: 1'b0,
AxiAddrWidth: AddrWidth,
AxiDataWidth: DataWidth,
NoAddrRules: 1
};