我经常收到错误消息
警告:[RTGEN 206-101] 端口“xy”没有扇入或扇出,处于悬空状态。请使用 C 语言仿真确认此函数参数可以读取或写入。
C 模拟和综合通过。端口有时悬空的一般原因是什么?我该如何调试它?解决它们重要吗?
我经常收到错误消息
警告:[RTGEN 206-101] 端口“xy”没有扇入或扇出,处于悬空状态。请使用 C 语言仿真确认此函数参数可以读取或写入。
C 模拟和综合通过。端口有时悬空的一般原因是什么?我该如何调试它?解决它们重要吗?
如果某些端口(即函数参数)从未在您的 C/C++ 代码中使用,则通常会出现该警告。编译器/Vivado HLS 可能会简单地优化掉参数/端口从未被访问或从未到达的部分代码。
最后一个条件实际上可能有助于发现有缺陷的算法。例如:一条if-else
语句只能在始终执行的一个分支中解析,从而忽略在另一个分支中处理的参数(并因此产生悬空端口)。
一般来说,警告会导致生成的 RTL仍然具有定义的端口,但只是让它们未连接到任何东西。它们在以后的生成步骤中通常不是问题,因为它们可能会被进一步优化和删除(在合成或优化期间,在生成比特流之前)。