Vivado / Vitis HLS - "WARNING: Port "xy" 没有扇入或扇出,悬空。"

Vivado / Vitis HLS - "WARNING: Port "xy" has no fanin or fanout and is left dangling."

我经常收到错误消息

WARNING: [RTGEN 206-101] Port 'xy' has no fanin or fanout and is left dangling. Please use C simulation to confirm this function argument can be read from or written to.

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

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

的代码部分

这最后一个条件实际上可能有助于找到错误算法的位置。例如:一个 if-else 语句可以只在一个总是被执行的分支中解析,从而忽略在另一个分支中处理的参数(因此产生悬空端口)。

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