如何使用 post place'n' route and/or post 综合模拟跟踪 FPGA/ASIC 开发中的错误?

how to track errors in FPGA/ASIC development using post place'n' route and/or post synthesis simulation?

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

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

那我们能捕捉到什么样的错误呢?

  • 在 RTL 模拟中很难捕捉到一些不需要的故障。如果某些输出是由组合逻辑生成的,post-PnR 仿真比以往任何时候都更加重要。

  • 合成and/orPnR约束可能有一些错误。最好仔细检查所有内容。

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

在典型的设计流程中 post 综合 and/or post PnR 模拟 没有 有用,目的应该是避免它们。

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

尽管在一些非常罕见的情况下,PnR 工具可能会导致例如技术映射错误或未能针对违反设计规则发出警告,在 Post PnR 仿真中揭示问题的案例中至少有 99% 是由于设计错误造成的,最典型的是时钟域交叉、内存访问竞争条件良好,但已经非常罕见,第二。

因此,重点应该放在遵守设计规则和采用严格的设计方法来避免问题,而不是试图在 post PnR 模拟中捕捉它们。

关于您的问题 - 如果没有负松弛并且设计规则检查正常,那么 post 模拟中的任何一个都不能揭示更多内容。

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

Post PnR模拟就是业界所谓的Gate Level Simulation。这是定时和非定时两种类型。这种模拟是用来检测

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

在将逻辑从映射转换为 PAR 方面最稳定的过程。但是,当然,如果学究气,您可以对 syn->map 和 map->PAR 使用 LEC。

Post PAR Sims 可能很有用,但如果您在实验室中遇到问题,可能是因为您没有完全限制时序设计,并且需要使用 back-annotated SDF 进行模拟,正如上面提到的其他人。当然,这对你没有帮助,如果你没有在你的 TB 中创建带有时序的模型,h 就 IO 而言 and/or 正确地限制了你的 IO,正如电路板设计师提供给你的那样。

我认为它是 best-practice 到 运行 回归套件至少一次针对具有 back-annotated SDF 的 PAR 网表。不花一分钱,又多了一个置信度数据点。