AR# 47642

14.1 - EDK - XPS does not take parameter values from MHS, but ALWAYS computes from the IP_DRC_TCL procedure for two Interconnect parameters

描述

The expected behavior from XPS is that:

USER should be able to over-write the OPTION_UPDATE parameters values by EXPLICITLY setting their values in MHS.

This behavior in general works fine, but it is not working for following two parameters in axi_vdma_v2_0_1.mpd:

C_INTERCONNECT_M_AXI_MM2S_READ_FIFO_DEPTH
C_INTERCONNECT_M_AXI_S2MM_WRITE_FIFO_DEPTH

For these two parameters, XPS does not take a parameter value from MHS, but ALWAYS computes from the IP_DRC_TCL procedure from axi_vdma_v2_0_1.tcl.

WARNING:EDK:4083 - IPNAME: axi_vdma, INSTANCE: axi_vdma_0 - PARAMETER: C_INTERCONNECT_M_AXI_MM2S_READ_FIFO_DEPTH has value 32 specified in MHS, but tcl is overriding the value to 0
WARNING:EDK:4083 - IPNAME: axi_vdma, INSTANCE: axi_vdma_0 - PARAMETER: C_INTERCONNECT_M_AXI_S2MM_WRITE_FIFO_DEPTH has value 512 specified in MHS, but tcl is overriding the value to 0

解决方案

A workaround for this is to make the AXI VDMA pcore local and then modify Tcl script axi_vdma_v2_1_0.tcl.

Specifically, the procedures iplevel_update_mm2s_fifo_depth and iplevel_update_s2mm_fifo_depth should be modified as below:

## This procedure sets the mm2s fifo depth to 512 if store and forward is turned off.
## users can overide this by explicitly setting fifo depth in the system.mhs
proc iplevel_update_mm2s_fifo_depth {param_handle} {
set mhsinst [xget_hw_parent_handle $param_handle]
set sf_included [xget_hw_parameter_value $mhsinst "C_INCLUDE_MM2S_SF"]
if {$sf_included == 0} {
return 512
} else {
return X <= X should be replaced with the read FIFO depth desired (0, 32 or 512)
}
}

## This procedure sets the s2mm fifo depth to 512 if store and forward is turned off.
## users can overide this by explicitly setting fifo depth in the system.mhs
proc iplevel_update_s2mm_fifo_depth {param_handle} {
set mhsinst [xget_hw_parent_handle $param_handle]
set sf_included [xget_hw_parameter_value $mhsinst "C_INCLUDE_S2MM_SF"]
if {$sf_included == 0} {
return 512
} else {
return X <= X should be replaced with the write FIFO depth desired(0, 32 or 512)
}
}

Once these modifications have been done, the user repositories should be rescanned.

AR# 47642
日期 09/27/2012
状态 Active
Type 已知问题
Tools