【发布时间】:2017-08-02 18:21:22
【问题描述】:
对于 FPGA/ASIC 开发的 PnR 后和/或综合后仿真的用处,我有点困惑。如果综合或 PnR 过程在设计流程中成功完成,那么相应的“后期”仿真是否有可能揭示设计中的错误?谁能举个例子?
【问题讨论】:
标签: simulation fpga synthesis asic
对于 FPGA/ASIC 开发的 PnR 后和/或综合后仿真的用处,我有点困惑。如果综合或 PnR 过程在设计流程中成功完成,那么相应的“后期”仿真是否有可能揭示设计中的错误?谁能举个例子?
【问题讨论】:
标签: simulation fpga synthesis asic
在典型的设计流程中,综合后和/或 PnR 后仿真没有有用,我们的目标应该是避免它们。
合成后仿真只能发现合成工具中的错误,而这些错误在已建立的 FPGA 工具中极为罕见。检查这些不应成为任何设计流程的组成部分。
尽管 PnR 工具在极少数情况下可能会出现,例如技术映射错误或未能给出违反设计规则的警告,在 PnR 后仿真中揭示问题的至少 99% 的情况是由于设计错误,最常见的是时钟域交叉,内存访问竞争条件很好,但已经非常罕见,第二。
因此,重点应该是遵守设计规则并采用严格的设计方法来避免问题,而不是试图在 PnR 后仿真中发现问题。
对于您的问题 - 如果没有负松弛并且设计规则检查正常,则任何一个后期模拟都不应该显示更多内容。
PnR 后仿真的一个实际用途是当您的复杂设计偶尔会由于外部组件的时序变化或 I/O 约束错误而失败,但您对错误机制一无所知。集成逻辑分析仪和 PnR 后仿真的结合可以帮助最棘手的情况找出根本原因。
【讨论】:
PnR 后仿真不仅验证功能,还验证时序。可以将电路的时序信息以多种格式转储到仿真中,但最流行的是标准延迟格式 (SDF),其发布为IEEE 1497。
那么我们可以捕捉到什么样的错误呢?
在 RTL 模拟中很难发现一些不需要的故障。如果某些输出是由组合逻辑生成的,那么 PnR 后仿真比以往任何时候都更加重要。
综合和/或 PnR 约束中可能存在一些错误。最好仔细检查所有内容。
综合/PnR 工具可能存在错误。逻辑等价检查 (LEC) 也可以捕获错误,但它只针对功能执行。
【讨论】:
PnR 后仿真在工业上被称为门级仿真。这有计时和非计时两种。这种模拟是用来检测的
【讨论】:
就将逻辑从映射到 PAR 的转换而言,过程最为稳定。但是,当然,如果学究气,您可以将 LEC 用于 syn->map 和 map-> PAR。
Post PAR Sims 可能很有用,但如果您在实验室遇到问题,可能是因为您没有完全限制设计的时序,并且需要使用反向注释的 SDF 进行仿真,正如上面提到的其他人。当然,如果您尚未在 TB 中创建具有时序的模型和/或未按照 Board 设计人员提供给您的正确限制 IO,那么这当然对您没有帮助。
我认为最好的做法是针对带有反注释 SDF 的 PAR 网表至少运行一次回归套件。它不会花费您任何费用,并提供更多的置信度数据点。
【讨论】: