热度 10| ||
问题描述:在Vivado平台下进行FFT核的功能仿真时,遇到Failure: ERROR: add_1 must be
in range [-1,DEPTh-1]的报错,仿真停止在60us。
现象与波形:
Elaborate过程报错信息:
Simulation过程报错信息:
分析思路:
1、检查Elaborate报错信息,Elaborate报错信息包括三点:
l Elaborate过程检测到错误,详情见elaborate.log。
l 仿真运行过程检测到错误,请纠正错误后重试。
l Spawn失败。
见现象与波形描述部分的附图Elaborate过程报错信息。
2、根据以上提示,检查仿真报告,发现Error:add_1 must be in range [-1,Depth-1],见现象与波形描述部分的附图Simulation过程报错信息。
3、在Xilinx官方论坛检索相关问题的分析过程及解决方案,对该问题的解释主要有两类。
l 一类认为是IP Core的输入信号未被有效赋初值,占多数。
l 一类认为是时钟仿真定义不合理。
4、检查工程项目中包含axis协议的IP核,将IP核输入信号加入仿真波形中,发现FFT核的Status_tready信号未被有效初始化。
5、分析发现,m_axis_status_tready信号间接由testbench发出命令信号控制,而testbench中未对该命令信号进行初始配置;对该命令信号进行初始化配置后重新运行仿真,仿真运行过程正常。
验证过程:
验证结果:由于testbench中未对命令信号进行有效控制,导致IP核工作在不正常状态,仿
真过程异常停止。