描述
对于使用时钟时钟模式的AXI VDMA v5.00.a设计,EDK流程中存在一个已知问题,但每个时钟并不完全相互依赖。
当VDMA处于“同步”模式时,所有VDMA时钟都相同。但是,在“异步”模式(C_PRMRY_IS_ACLK_ASYNC = 1)中,用户负责提供所有必要的时钟。
假设在“异步”模式下,客户将使用所有不同的时钟。因此,一系列FROM-TO TIG被添加到核心,用于这些不同时钟域之间的错误路径。但是,如果使用两个或多个AXIVDMA时钟端口的相同时钟信号,则FROM-TO TIG将错误地限制单个时钟域中的所有路径。结果是该时钟域中的所有合法定时误差都被抑制,导致(可能)错误的定时分数。由于这个错误定时的核心,设计将无法正确放置/路由。这将在每个设计中表现得不同,因为AXI VDMA之外的模块会从这些共享时钟之一运行失败。一般来说,请注意与时间相关的问题。
以下是来自不正确约束的AXI VDMA核心的示例时序报告:
时间约束:路径
“TS_axi_vdma_0_from_s_axis_s2mm_aclk_to_m_axi_s2mm_aclk_path”TIG;
分析了182402个路径,分析了58454个端点,0个端点失败
检测到0个定时错误 。 (0设置错误,0保持错误)
解
如果出现以下情况,则无需解决此问题:
- 所有时钟都是同步的(C_PRMRY_IS_ACLK_ASYNC = 0),或
- 所有时钟都是异步的(C_PRMRY_IS_ACLK_ASYNC = 1)并连接到不同的时钟源。
但是,如果符合以下条件,则必须采用以下解决方法:
- 所有时钟都是异步的(C_PRMRY_IS_ACLK_ASYNC = 1),并且一些时钟连接到同一时钟源。
要解决此问题,请将AXI VDMA核心设为本地并编辑tcl脚本,以删除’prmry_is_async’部分下的过敏性FROM-TO TIG。
- 使pcore成为XPS项目的本地化;右键单击核心实例,选择Make ThisIP Local 。
- 导航到pcores / axi_vdma_v5_00_a_axi_datamover_v3_00_a / data目录。
- 打开axi_vdma_v5_00_a_axi_datamover_v2_1_0.mpd文件。
- 编辑第55行,用BEGINaxi_vdma_v5_00_a_axi_datamover替换BEGIN axi_datamover。
- 保存文件。
- 导航到pcores / axi_vdma_v5_00_a / data /目录。
- 打开axi_vdma_2_1_0.tcl文件。
- 注释掉tcl文件中从77到136的任意行,这些行不正确地限制同一时钟域中的信号。例如,如果内核设置为异步模式(C_PRMRY_IS_ACLK_ASYNC = 1)并且m_axi_mm2s_aclk和s_axi_lite_aclk使用相同的时钟源,请注释掉以下TIG:
put $ outputFile“TIMESPEC TS _ $ {instname} _from_s_axi_lite_aclk_to_m_axi_mm2s_aclk = FROM \”s_axi_lite_aclk \“TO \”m_axi_mm2s_aclk \“TIG;”
put $ outputFile“TIMESPEC TS _ $ {instname} _from_m_axi_mm2s_aclk_to_s_axi_lite_aclk = FROM \”m_axi_mm2s_aclk \“TO \”s_axi_lite_aclk \“TIG;” - 保存文件。
- 在XPS中,选择“ 项目” ,然后单击“ 重新扫描用户存储库” 。
计划从EDK 14.1开始修复此问题。
没有回复内容