中文 英语
系统与设计
的意见

早期的模拟多循环路径和错误的路径

正确规范的FPs和兆赫对适当的合成结果至关重要。

受欢迎程度

设计和同步时钟时钟域交叉避免亚稳态问题,但它提出了自己的挑战时多循环和错误的路径。多循环路径(MCP)发生在一个逻辑函数需要多个时钟周期产生一个决赛,结果稳定。设计师必须确保目的寄存器不钟,直到结果是准备好了。这通常需要一个激活不激活,直到所需数量的周期运行在一个新值加载到注册来源。设计师还必须确保逻辑综合工具不会浪费时间去补习MCP函数为一个周期,静态时序分析提供准确的结果。

一个错误的路径(FP)发生在有物理路径通过逻辑永远不会在实际使用时启用。设计师必须确保逻辑合成和静态时序分析忽略错误的路径。合成一个FP永远不会执行,所以不能试图解决种族短路径或优化长路径。这样做会消耗计算资源并添加不必要的逻辑设计。设计师需要一个简单、有效和一致的方式沟通兆赫和FPs所有相关工具在设计和验证流程,这样的结果是正确的。

一个最近的博客帖子讨论了使用Synopsys对此设计约束(署)正是出于这一目的。署可以指定时钟、定时设置和检查,兆赫,FPs和其他有用的信息在一个单一的文件指导逻辑综合、静态时序分析和其他开发流程中的步骤。署的语法非常简单,自然的设计师。例如,约束”set_false_path通过signal1 signal2中徜徉“定义任何路径包括两个指定的信号是错误的。任何路径会议期间应该被忽略这个约束分析或合成。

工具提供了正确的结果,署提供给他们必须准确。前面的帖子讨论了几种方法来验证约束。项目的寄存器传输级(RTL)产品毛羽解决方案必须提交功能,所以它可以国旗印刷错误,丢失信息,参考信号和模块中没有找到注册RTL设计。它是运行在开发流程的早期,所以设计师不必等到逻辑合成找到提交问题。产品毛羽过程还必须生成MCP和FP属性和验证他们正式的引擎。如果不能获得一个明确的正式的结果对于一些属性,应该将它们导出在RTL模拟运行。

这种方法捕获额外提交错误,但它不能找到他们所有由于传统RTL仿真的本质。考虑MCP的双循环乘数,指定的“set_multicycle_path 2设置从ff1 *——ff2 *”约束。乘法运算结果寄存器必须等到产品已经计算时钟。如果结果寄存器时钟每一辆自行车,它将不完整的和不正确的数据加载第一周期的双循环乘法。添加一个使结果登记确保它不会加载一个产品,直到两个周期后新值加载到被乘数和乘数寄存器。

如果设计师忘记添加支持,这个bug不会被发现在传统的RTL模拟。由于乘法结果立即可用,每个产品值加载将是正确的。与全职门电路级仿真(gl),最终产品是不可用的,直到两个周期运行,所以结果是不正确的。从历史上看,这是唯一的方法来检测某些类型的MCP和FP bug。然而,gl比RTL模拟和故障运行慢得多是更难调试。此外,gl发生在项目后期,当固定每一个bug tape-out需要重大的努力和延迟。需要更好的方法来“左移位”MCP和FP的发现和解决问题,以减少验证时间和精力。

解决方案是使用一个RTL模拟器与阅读能力直接提交文件和考虑约束。SDC-aware模拟触发断言违反或注入X(未知)值过早当加载一个多循环的结果。如果断言触发,它指向特定的MCP值是过早地加载到寄存器的结果。如果结果寄存器加载数据过早,X-injection确保加载一个未知值。如果这个值传播到一个可观察到的故障点依赖乘法的结果,检测到错误。下面的截图显示这看起来设计师或验证工程师调试失败。


常规RTL模拟车MCP的设计。


SDC-aware RTL模拟车MCP的设计。

这种方法还用于验证FPs。署作为MCP的FP可以指定任意大的延迟,也许100个时钟周期。如果该值通过传播FP之前加载到结果登记在任何时候这个大延迟,断言违反报告,或者X注入。

正确规范的FPs和兆赫是适当的合成结果复杂芯片设计的关键。Synopsys对此投模拟器支持SDC-aware RTL的独特方法模拟和Synopsys对此SpyGlass约束的解决方案包括广泛署产品毛羽的能力。他们一起提供高质素的正确性的信心在项目早期时间表。这个重大转变了MCP和FP验证也更快和更容易使用比gl back-annotated时机。这部小说的方法是至关重要的对于今天的复杂的芯片。

白皮书和更多的细节可用



留下一个回复


(注意:这个名字会显示公开)

Baidu