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