14.1 - EDK - XPS不从MHS获取参数值,但始终从IP_DRC_TCL过程计算两个互连参数

描述

XPS的预期行为是:

USER应该能够通过在MHS中设置它们的值来覆盖OPTION_UPDATE参数值。

这种行为通常可以正常工作,但它不能用于跟踪axi_vdma_v2_0_1.mpd中的两个参数:

C_INTERCONNECT_M_AXI_MM2S_READ_FIFO_DEPTH
C_INTERCONNECT_M_AXI_S2MM_WRITE_FIFO_DEPTH

对于这两个参数,XPS不从MHS获取参数值,但总是从axi_vdma_v2_0_1.tcl的IP_DRC_TCL过程计算。

警告:EDK:4083 - IPNAME:axi_vdma,INSTANCE:axi_vdma_0 - PARAMETER:C_INTERCONNECT_M_AXI_MM2S_READ_FIFO_DEPTH在MHS中指定值32,但tcl将值覆盖为0
警告:EDK:4083 - IPNAME:axi_vdma,INSTANCE:axi_vdma_0 - PARAMETER:C_INTERCONNECT_M_AXI_S2MM_WRITE_FIFO_DEPTH在MHS中指定值512,但tcl将值覆盖为0

解决方法是将AXI VDMA pcore设置为本地,然后修改Tcl脚本axi_vdma_v2_1_0.tcl。

具体来说,程序iplevel_update_mm2s_fifo_depth和iplevel_update_s2mm_fifo_depth应修改如下:

##如果关闭存储转发,此过程将mm2s fifo深度设置为512。
##用户可以通过在system.mhs中明确设置fifo深度来覆盖它
proc iplevel_update_mm2s_fifo_depth {param_handle} {
设置mhsinst [xget_hw_parent_handle $ param_handle]
set sf_included [xget_hw_parameter_value $ mhsinst“C_INCLUDE_MM2S_SF”]
if {$ sf_included == 0} {
返回512
} else {
返回X <= X应替换为所需的读取FIFO深度(0,32或512)
}
}

##如果关闭存储转发,此过程将s2mm fifo深度设置为512。
##用户可以通过在system.mhs中明确设置fifo深度来覆盖它
proc iplevel_update_s2mm_fifo_depth {param_handle} {
设置mhsinst [xget_hw_parent_handle $ param_handle]
set sf_included [xget_hw_parameter_value $ mhsinst“C_INCLUDE_S2MM_SF”]
if {$ sf_included == 0} {
返回512
} else {
返回X <= X应替换为所需的写FIFO深度(0,32或512)
}
}

完成这些修改后,应重新扫描用户存储库。

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-31 14:42:27 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它