中文 英语

验证多周期路径和假路径

单时钟设计并不总是似乎容易。

人气

所有芯片设计人员都知道,当它们有多个异步时钟域时,它们必须特别注意避免延展性问题。相比之下,所有时钟都同步的设计可能很简单。逻辑综合可确保寄存器之间的最短路径没有比赛,并且最长的路径适合目标循环时间。但是,单时钟设计并不总是看起来很容易。多周期路径和假路径向设计过程增加复杂性,合成必须正确处理它们。此外,必须在具有静态分析的开发过程中早期验证这两种类型的路径。

当设计者有意地包括在单个时钟周期内不能完成的逻辑功能时,发生多循环路径(MCP)。图1显示了涉及两个同步时钟的MCP。源和目标之间的逻辑需要目的地时钟的三个周期以产生有效的结果,因此在将新数据加载到源寄存器中,目的寄存器必须加载此结果三个时钟周期。


图1:多周期路径的示例。

当通过从未启用的设计存在可追踪路径时,会发生假路径(FP)。设计本身或使用设计的方式可确保路径不会锻炼。图2显示了一种设计,其中所有有效路径都通过一段慢速逻辑和一段快速逻辑。通过两个慢剖面的路径将花费太长而才能完成,因此它是FP。通过两个快速部分的路径可能导致违规的保持时间,因此它也是错误的。


图2:具有假路径的设计示例。

逻辑综合工具需要了解MCP和FPS,以便例如,它不会浪费时间尝试将图1中的三个周期路径符合图2中的三个周期路径或图2中的慢速路径进入单个时钟周期。在设计编译器家庭的最早日期,Synopsys推出了设计约束来指定时钟,定时,设置和保持检查,MCP,FP等有用指导。可以使用以下Synopsys设计约束(SDC)来表示图1中的三个周期路径和图2中的假路径:

set_multionicycle_path 3  - 从top / src-to top / dst-end set_false_path -through s2 set_path -pthough f1-伸缩f2

正确的合成结果取决于精确的SDC。设计编译器NXT可以检测某些类型的SDC错误,例如引用不在设计中的信号和模块。但是指定图1的规范错误包含四个周期路径将导致设计不按预期工作的设计。传统上,捕获这些问题的唯一方法是运行全时机门级仿真(GLS)。这种模拟缓慢而且很难调试。他们在开发过程中也会太晚了,需要解决问题的长循环时间。

MCP和FP SDC是理想情况下,应与功能意图一起指定并在RTL阶段验证,在甚至考虑任何后涂覆的GLS之前,验证。Spyglass约束解决方案为SDC提供了Linting功能,包括与时序相关的SDC。它捕获了几个类别的MCP和FP错误,否则在逻辑合成之前可能无法检测到。它还可以比较两组约束来检查增量修订,因为由于设计演变,因此约束通常会发生变化。

望远镜约束还提取了可以通过其内部正式发动机验证的MCP和FP属性。正式的分析试图证明每个属性都正确或提供展示如何违反的反例。与模拟不同,正式验证是详尽无遗的,因此这些结果是明确的。它为块级设计提供了彻底的分析。然而,正式的算法对设计大小和复杂性敏感,并且可能不会缩放到MCP和FPS穿过大量的片上(SOC)设计。

对于任何不确定的结果,既不是完全证明也不是反例,间隔约束可以使用RTL仿真将提取的MCP和FP数据库导出到要验证的VCS。此仿真可以包括在处理器模型上运行的嵌入式软件,从而反映非正式模型的SOC行为。

正确规格的假路径和多周期路径对于复杂芯片设计的正确合成结果至关重要。早期分析与望远镜约束,利用其内部正式发动机并由VCS仿真支持,为项目时间表早期对SDC的正确性提供了高度信心。这是MCP和FP验证中的重大“左侧”,结果在更好的芯片中产生更快的资源。

VCS还提供了一种新的和唯一解决方案,可在RTL的动态模拟中验证MCP和FP。更多信息,包括详细示例,可用白皮书



发表评论


(注意:此名称将被公开显示)