中文 英语
德赢vwin
观点

多循环路径和假路径验证

单时钟的设计并不总是像看起来那么简单。

人气

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

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


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

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


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

逻辑综合工具需要了解mcp和FPs,这样,例如,它就不会浪费时间试图将图1中的三周期路径或图2中的慢到慢路径放入一个时钟周期。在Design Compiler家族的早期,Synopsys引入了设计约束来指定时钟、定时、设置和保持检查、mcp、FPs和其他有用的指导。图1中的三循环路径和图2中的假路径可以用以下Synopsys设计约束(SDCs)表示:

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 SDCs是体系结构特性,理想情况下,应该在RTL阶段连同功能意图一起指定并验证,远远早于考虑任何反向注释的GLS。SpyGlass Constraints解决方案为SDCs提供了毛衬功能,包括那些与时间相关的功能。它捕获了几类MCP和FP错误,否则这些错误可能在逻辑综合之前无法检测到。它还可以比较两组约束以检查增量修订,这是有价值的,因为约束经常随着设计的发展而变化。

SpyGlass Constraints还提取了MCP和FP属性,可以通过其内部正式引擎进行验证。形式分析试图证明每个属性是正确的,或者提供一个反例来说明如何可以违反它。与模拟不同,形式验证是详尽的,因此这些结果是确定的。它为块级设计提供了全面的分析。然而,形式化算法对设计的大小和复杂性敏感,可能无法扩展到跨越大型系统片上(SoC)设计的mcp和FPs。

对于任何不确定的结果,既不是充分的证明,也不是反例,SpyGlass Constraints可以将提取的MCP和FP数据库导出到VCS,使用RTL仿真进行验证。这种模拟可以包括在处理器模型上运行的嵌入式软件,从而反映不属于正式模型的SoC行为。

在复杂芯片设计中,伪路径和多循环路径的正确确定对正确的合成结果至关重要。使用SpyGlass Constraints进行早期分析,利用其内部正式引擎并得到VCS仿真的支持,在项目时间轴的早期提供了对SDCs正确性的高度信心。这是MCP和FP验证中一个重要的“左移”,结果是用更少的资源开发出更快的更好的芯片。

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



1评论

中V Dikramanjian 说:

乔乔。

留下一个回复


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