EEJournal

专题文章
现在就订阅

采取例外

验证和生成虚假和多周期路径约束

电脑的问题是它们没有常识。他们不能简单地在正常情况下做正常的事情,不管那可能是什么。在曼哈顿一栋精致的摩天大楼的高处,建筑师团队哀叹他们的建筑设计工具的脑死亡。一位精通技术的架构师指出,如果有人能为计算机发明一个“常识”模块,那就太棒了。您可以使用“duh”函数访问它。就像,“如果<条件>然后<做我特别需要的事情>咄()”.换句话说,“否则就做显而易见的事”或者“否则就别当白痴”。

由于缺乏这样的智能,他们不得不面对一个令人遗憾的事实:计算机会完全按照你说的做,而不会做你没说的事(也许除了一些副作用,但只有在不受欢迎的情况下)。他们原以为使用电脑可以简化检查新房建造计划的过程,而且这种做法实际上已经开始奏效,但情况在好转之前已经变得更糟了。

一个很好的例子是检查确保所有入口都有门栓。起初,他们只是简单地规定:“确保所有的门都有门栓。”但是,当然,所有的内部门都被标记为缺少门栓。所以他们把规则改写为“确保所有的门都有门栓,但忽略里面的门。”这基本上是可行的,除了有些房子外面的公用壁橱显然不需要门栓。因此,他们将这条规则细化为“确保所有的门都有门栓,但忽略里面的门和公用壁橱。”

这对他们来说很好,直到有一个人有了不同的想法,他有一个可以从里面或外面进入的多功能衣柜。里面的门没有门栓,因为它不是外面的门,外面的门没有门栓,因为它是一个多功能柜的门。所以他们有一个安全漏洞。经过决定,在这种情况下,门栓应该装在里面的门上,并且小心地不要开始只装在里面的多功能柜上,他们最终确定了规则,“确保所有的门都有门栓,但忽略里面的门和多功能柜,除了里面的多功能柜也有外面的门。”

在此之前,手工验证实际上更快。现在他们终于把电脑修好了,希望电脑能开始为他们节省一些时间。

设计有必须遵守的规则,规则也有例外。规则也可能是要求;例如,要求给定的信号路径具有给定的延迟。而且,就规则而言,这些规则也可以有例外。

两个主要的例外是“假路径”和“多周期路径”。这些路径不需要满足时间要求(而且很可能不会或不能满足时间要求)。您不希望合成或放置和路由工具浪费精力试图让这些路径满足时间。您不希望时间分析工具在报告中填充您不关心的时间失败。因此,您将这些路径指定为异常,这通常通过创建指定异常的约束来完成,以便工具将忽略这些路径。

我们可以从两种例外的角度来考虑:一种是有意为之,另一种是有意为之。例如,如果您知道您的芯片将在比典型工作频率低得多的频率下进行某些测试,那么仅与这些测试相关的路径可以标记为假,这意味着在合成操作速度时将忽略它们。这一点在设计中并不明显;只有设计师的大脑知道这些路径是什么。

根据设计,还有一些路径从标准的时间角度来看是没有意义的。两个寄存器,一个接一个,具有相反的时钟极性或数据选择互斥具有相反的选择极性,在下游寄存器从上游寄存器捕获数据之前,它们之间的延迟实际上会有额外的时间;这将是一个多周期路径。

因为在设计中许多异常都有这样的签名,所以可以直接证明它们是正确的还是错误的。这可能是一件有用的事情,因为当您在设计中标记异常时,您可能会过度指定异常,从而实际上忽略了不应该忽略的情况。这些可能会在以后作为真正的硅错误出现。

一种解决方案是指定异常,然后运行正式验证它们的工具。设计中明显的异常显然会通过,但是只反映意图的异常会失败,因为验证工具本身没有办法知道意图。

从这里开始细化异常规范。你可以说,在某些条件下,路径是假的;或者可能指定,在特定的验证运行期间,假设某些外部信号具有特定的常数值,例如,禁用测试电路。您可以添加变量,为某些验证运行打开或关闭部分行为。通过更精确地细化异常,您最终可以在异常中编码您的意图,并且该工具现在可以验证异常仅对那些它应该有效的条件有效。

Real Intent已经在这个领域工作了几年,使用正式的方法来完成许多不同的具体验证任务。他们的PureTime工具提供了约束和异常验证。在过去主要关注门级别的同时,他们在8月份发布的3.2版本增加了在RTL级别验证异常的能力,这允许在与设计相同的抽象级别上进行验证。除了异常中指定的路径之外,它们还更多地关注异常本身的验证和报告。他们还添加了调试功能,用于定位异常定义(通常是SDC文件或TCL脚本)或设计源中的问题。

然而,在这个领域有一个新来者,一家有着如画般的名字的公司Fishtail。他们有一个确认产品,将验证用户创建的异常。但这实际上只是三件套工具中的一件。

如果某些异常在设计中具有可以验证的签名,那么可以从设计中自动提取这些相同的异常。这就是鱼尾焦点产品的作用。他们(目前)有四种不同类型的假路径和一种类型的多循环路径,他们可以识别并创建例外:

当一条路径的源寄存器和捕获寄存器有两个不同的时钟时,就会创建一个时钟到时钟的假路径。

  1. 当源和捕获寄存器有一个muxed时钟源,这样在给定时间只有一个时钟在设计上是活动的(并且受限于其他比我在这里提到的更详细的条件),就会创建一个时钟到时钟的假路径。
  2. 如果从一个寄存器到另一个寄存器的路径不能敏化,则创建一个寄存器到寄存器的假路径。
  3. 如果两个寄存器之间的路径只有在不可达状态下才能被敏化,则会创建一个寄存器到寄存器的假路径。
  4. 如果路径的源寄存器和捕获寄存器上的时钟或数据muxing使得源信号不能在下一个周期捕获,则创建一个多周期路径。

他们也曾经为具有相互异步时钟速率的寄存器生成多周期路径,但很明显,推断这一点(在设计中没有一个时钟从另一个时钟生成)是没有意义的;让用户指定实际的时钟速率要容易得多。这里有一个异常的例子,它从被认为是一个按设计的异常变成了按意图的异常。

然后,这两个工具为您提供了异常的组合,那些由Focus自动生成的异常和那些由用户创建并通过Confirm验证的异常。

他们还提供了一个帮助管理设计流程的功能。当设计从RTL处理到栅极级和更高级别时,每一步都会发生变化。这些变化可能像信号重命名一样微不足道,但是,任何试图在EDA领域做任何远程创意的人都知道,重命名的信号可能会破坏最具创新性的想法。因此,Fishtail提供了一个名为Refocus的工具,可以用来保持异常以及其他时间约束与设计的每一步同步,解决名称和层次结构以及其他问题,最终,约束可以在任何级别使用,问题和调试可以在RTL级别进行管理。

Real Intent和Fishtail都会指出他们各自工具的各种优势,而不仅仅是这里描述的高级功能,但我将让他们成为这些信息的承载者,让他们自己去战斗。

当然,对所有这些精确例外的需求最终源自于工程世界未能设计出EDA工具可以使用的常识模块。一旦我们做到了这一点,这些验证工具就不再需要了。到时候我们会第一时间通知你的。

不要熬夜等待。

链接:

鱼尾

Real Intent PureTime

留下回复

有特色的博客
2022年12月22日
当谈到汽车、摩托车和动力设备时,本田是一个家喻户晓的名字,也是世界上最大的汽车制造商之一。在汽车开发周期的一个关键阶段是发动机的功能保证,具体地说,就是保证发动机的头部。
2022年12月20日
作者:James Paris和Armen Asatryan在实现过程中自动进行简短检查,让设计团队快速找到并修复这些错误... ...
2022年12月20日
我们在Synopsys上回顾了2022年,包括基于云的芯片设计工具、机器学习和人工智能驱动的EDA解决方案、多模系统和安全接口IP。回顾一年:回顾2022年的关键技术进步和冒险,这篇文章首次出现在来自硅…
2022年12月15日
看完这个视频后,我非常想创建我自己的电磁/水浴相控阵实现....

有特色的视频

演示:PCIe Gen5 x16运行在VectorPath加速卡上

Achronix

Achronix工程师展示了如何使用Speedster7t FPGA将VectorPath加速卡连接到PCIe Gen5 x16主机,并通过全芯片二维片上网络(NoC)读取/写入GDDR6内存。NoC将数据从任何高速接口以2GHz的速度路由到FPGA内部的核心结构,而不消耗任何FPGA逻辑资源。

点击这里观看更多来自Achronix的视频

特色粉笔谈话亚博里的电子竞技

Matter & NXP

逮老鼠的电子产品而且NXP半导体

多年来,我们不断增长的物联网生态系统的互操作性一直是一个挑战。但是新的物质标准正试图改变这一切。它不仅能让家庭更智能,而且我们的设计也能让生活更轻松。在本集Chalk Talk中,来自NX亚博里的电子竞技P的Amelia Dalton和Sujata Neidig研究了Matter将如何通过提高互操作性、简化开发并提供全面的安全和隐私方法来彻底改变物联网。他们还讨论了Matter的路线图,以及恩智浦的Matter参考平台如何帮助您开始下一个物联网设计。

点击这里了解更多关于恩智浦半导体物质器件开发平台的信息

Baidu