0

我经常收到错误消息

警告:[RTGEN 206-101] 端口“xy”没有扇入或扇出,处于悬空状态。请使用 C 语言仿真确认此函数参数可以读取或写入。

C 模拟和综合通过。端口有时悬空的一般原因是什么?我该如何调试它?解决它们重要吗?

4

1 回答 1

1

如果某些端口(即函数参数)从未在您的 C/C++ 代码中使用,则通常会出现该警告。编译器/Vivado HLS 可能会简单地优化掉参数/端口从未被访问或从未到达的部分代码。

最后一个条件实际上可能有助于发现有缺陷的算法。例如:一条if-else语句只能在始终执行的一个分支中解析,从而忽略在另一个分支中处理的参数(并因此产生悬空端口)。

一般来说,警告会导致生成的 RTL仍然具有定义的端口,但只是让它们未连接到任何东西。它们在以后的生成步骤中通常不是问题,因为它们可能会被进一步优化和删除(在合成或优化期间,在生成比特流之前)。

于 2021-03-09T15:10:52.847 回答