如何使用放置后路由和/或后合成仿真跟踪FPGA/ASIC开发中的错误?



我对后PnR和/或后合成仿真对FPGA/ASIC开发的有用性有点困惑。如果综合或PnR过程在设计流程中成功完成,相应的"后期"仿真是否有可能揭示设计中的错误?有人可以举个例子吗?

在典型的设计流程中,综合和/或后PnR仿真是没有用的,目标应该是避免它们。

后综合仿真只能发现综合工具中的错误,这在已建立的FPGA工具中极为罕见。检查这些不应是任何设计流程的组成部分。

尽管在极少数情况下,PnR 工具可能会出现技术映射错误或无法发出违反设计规则的警告,但至少 99% 在 Post PnR 仿真中揭示问题的情况是由于设计错误,最常见的是时钟域交叉、内存访问竞争条件良好, 但已经非常罕见了,其次。

因此,重点应放在遵守设计规则和严格的设计方法以避免问题,而不是试图在PnR后仿真中抓住它们。

对于您的问题 - 如果没有负面松弛并且设计规则检查正常,则任何后期仿真都不应该显示更多内容。

后 PnR 仿真的一个实际用途是,当您的复杂设计由于外部组件的时序变化或 I/O 约束错误而偶尔失败,但您对错误机制一无所知时。集成逻辑分析仪和后PnR仿真相结合,可以帮助最棘手的情况找出根本原因。

后 PnR 模拟不仅验证功能,还验证时序。电路的时序信息可以以多种格式转储到仿真中,但最流行的格式是标准延迟格式(SDF(,它以IEEE 1497的形式发布。

那么我们可以捕获什么样的错误呢?

  • RTL 仿真中很难发现一些不需要的故障。如果某些输出是由组合逻辑生成的,则后 PnR 仿真比以往任何时候都更加重要。

  • 合成和/或 PnR 约束可能存在一些错误。仔细检查所有内容总是更好的。

  • 合成/PnR 工具可能存在错误。逻辑等效性检查 (LEC( 也可以捕获错误,但它仅针对功能执行。

后PnR仿真在工业中被称为门级仿真。这是定时和非定时两种类型。这种模拟用于检测

  1. 时序路径,未通过 STA 或时序收敛进行检查。
  2. HFNS(高扇出网络合成(和 CTS(时钟树合成(等电源和复位操作中的错误可能导致某些可复位触发器的复位不规则,导致它们将 x 传递到路径中的下一个逻辑,从而导致 x 传播。
  3. DFT 逻辑中的错误在 RTL 仿真期间未检查,可能在 PnR 期间已删除。
  4. 由于
  5. STA 跳过的时钟域交叉路径的相关性问题,逻辑路径上的 x

在将逻辑从映射转换为 PAR 方面,大部分是稳定的过程。 但是,当然,如果迂腐,你可以将 LEC 用于 syn->map 和 map-> PAR。

如果您在实验室中遇到问题,Post PAR Sims 可能会很有用,可能是因为您没有完全限制设计时序,并且需要使用背面注释的 SDF 进行模拟,正如上面提到的其他人。 当然,如果您没有创建具有TB计时的模型和/或电路板设计人员提供给您的正确约束IO,则这对IO没有帮助。

我认为最佳实践是使用反向注释的 SDF 针对 PAR 网表至少运行一次回归套件。 它不花钱,并提供一个更多的置信度数据点。

最新更新