关于使用保形的逻辑等价检查(LEC)的初级知识

文章作者:Deekshith Krishnegowda,Marvell Technology

逻辑等效性检查是集成电路设计过程中的一个重要阶段,在此阶段,不提供测试用例即可对设计进行评估。

设计芯片是一个复杂的过程。它从定义体系结构需求开始,然后是微体系结构开发,然后是RTL设计和功能验证。然后综合设计以获得一个网表,该网表交给后端团队执行后端流程。在后端流程中,网表在不同阶段经历各种变更,例如,在识别错误或修改单元以进行定时关闭后,对设计执行的工程变更单(ECO)。简言之,设计在达到最终的收尾阶段之前要经历几次更改。

为了在更改后验证设计,有必要通过提供测试用例来运行模拟,但这通常是不可能的,因为设计的复杂性——复杂的设计需要更多的运行时,也因为设计更改的频率。在这样的条件下,设计将经受逻辑等效检查(LEC),其中工具通过注入随机向量来验证设计。

业界有很多工具可用于检查逻辑等价性,但使用最广泛的工具是保角的从节奏和手续从Synopsys对此。除了LEC,这些工具还可以用于其他任务,如eco。在本文中,我们将讨论正形LEC流程。

图1典型的共形LEC流包括设置模式和LEC模式。

典型的共形LEC平面运行流主要由设置阶段和LEC模式组成。设置模式包括以下步骤:

  1. 规范的黑箱
  2. 阅读图书馆与设计万博投注网址
  3. 设计约束规范
  4. 建模指令说明
  5. 切换到LEC模式

LEC模式包括:

  1. 映射过程
  2. 比较的过程

1.规范的黑箱

在一个典型的设计中,会有模拟块、存储器和数字块。内存和模拟块由不同的团队提供,在运行LEC时,它们被当作黑箱处理。如果设计中存在IP地址,则由IP提供商对IP地址进行验证,用户无需花费时间对IP地址进行验证。所以,即使是ip也可以被包含在黑箱中。

可以使用中第25行所示的命令指定Blackbox图2在下面。这必须在读取设计文件/库之前完成,以确保只读取I/O端口,而不是整个设计。这样做将大大减少运行时,并将对我们在大型设计中运行LEC有很大帮助。万博投注网址当一个块被指定为黑箱时,Conformal工具将验证连接—黑箱的输入和输出—但它不验证黑箱中的逻辑。

图2可以使用下图所示的命令指定黑箱。

2.阅读VHDL/Verilog设万博投注网址计和库

除了Verilog和VHDL支持读取设计文件外,Conformal工具还支持读取Verilog标准模拟库和Liberty格式库。通过使用在第37和40行中指示的命令,可以向工具提供这些信息图3在下面。搜索路径和文件列表也可以使用适当的命令输入到工具。

图3上面显示的命令用于读取设计文件。

在读入设计后,Conformal中的内置硬件描述语言(HDL)规则检查插件可用于检查lint错误和警告。可以根据严重性报告这些错误和警告,并添加免责声明。使用下面的命令来报告金色的和修改过的设计中的错误和警告消息:

报告规则检查-design -error -warning -golden -verbose > rpt.rule.golden

报告规则检查-design -error -warning -revised -verbose > rtp .rule.revised

3.规范设计约束

在设计中插入测试设计(DFT)后,将添加某些端口/引脚以进行调试。例如:scan_in、scan_out、scan_mode、scan_enable。当比较RTL和DFT-RTL设计时,由于这些额外的端口,设计将是不等效的。因此,无论是黄金设计还是修正设计,都有必要将设计置于一个共同的功能模式中。这可以通过在设计中添加约束来实现。

例如,在图4下面,左边的触发器是金黄色设计的常规D触发器,而右边的触发器是扫描插入后修改设计的扫描启用D触发器。黄金设计中的D输入是D的函数而修改后的设计中D输入是D的函数、扫描入和扫描启用。因此,当工具将向量传递给两个触发器时,它们将被标记为不相等。但在功能模式下,扫描启用将始终为零。因此,如果在scan_enable上添加约束以将其与1'b0绑定,那么黄金设计和修改后的设计在功能模式下都是相同的。

添加引脚约束0 scan_enable-revised

图4这是扫描插入后黄金DFF和修正DFF的外观。

4.规范建模指令的定义

合成后,来自合成工具的网表输出将进行功率优化。因此,golden design中的任何时钟选通逻辑都将转换为基于锁存器的时钟选通,如中所示图5下面是修改后的版本。许多这样的优化将由不同的工具完成,有必要仔细审查它们,并添加建模指令以匹配两种设计。万博投注网址下面的命令可以用来添加时钟门控优化建模指令:

设置平model-gated_clock

图5这就是在功率优化后黄金DFF与修正DFF的对比。

5.切换到LEC模式

添加所有设置约束和建模指令后,必须将工具切换到LEC模式,以便映射关键点和进行比较。通过使用以下命令完成此操作:

设置系统模式

6.映射过程

当工具设置为LEC模式时,工具会自动映射PI (primary input)、PO (primary output)、DFFs (DFFs)、d -latch (d -latch)、blackboxes (blackboxes)、z -gate (z -gate)、cut gate (cut gate)等关键点。首先,该工具使用基于名称的映射,然后是基于函数的映射。顾名思义,在基于名称的映射中,工具映射基于黄金和修订设计中的网/变量的名称。万博投注网址在基于函数的映射中,工具分析关键点的输入逻辑锥,并根据逻辑锥进行映射。基于名称的映射比基于函数的映射花费更少的运行时间,因此该工具在切换到基于函数的映射之前尝试使用基于名称的映射来映射关键点。

必须把所有关键点都映射出来。但是当第一次运行LEC时,并不是所有的关键点都会被映射。这是因为在集成电路设计过程中使用了不同的工具进行优化。例如,基于设置的合成工具将重命名寄存器/dma_reg [0] [1]在RTL中作为/dma_0_注册表[1]在网络列表中。基于名称的映射将无法匹配此关键点,而基于函数的映射可能无法匹配此关键点,这取决于逻辑锥的复杂性。在这些情况下,应向工具提供重命名规则,以便映射这些关键点。以下重命名规则将解决上述未映射的关键点:

添加重命名规则REG1“%d_reg[%d]”reg[@1][@2]“-已修订

7.比较的过程

比较将只在映射的关键点上进行。因此,如前所述,映射所有关键点是很重要的。该工具将试图通过将所有输入组合传递到逻辑锥并检查输出行为来证明等效性。比较过程结束后,工具将关键点分类为等效点、反向等效点、非等效点和中止点。除等效关键点外的所有类别都应进行调试。如果所有的比较点都是等价的,那么我们可以得出结论,黄金和修改后的设计是匹配的。

可以在LEC模式下使用以下命令和以下消息调用比较过程,如中所示图6比较后显示:

添加比较点—全部比较

图6显示的LEC日志摘要是一个非等效的黄金和修订的设计。

如上所述,每次设计更改时运行回归和其他复杂模拟并不是验证设计的有效方法。在这种情况下使用LEC工具表明,可以用更少的运行时间验证设计。按照上述步骤使用Cadence Conformal进行LEC将简化整个过程,并显著减少调试时间。

免责声明:作者与Cadence Design Systems或Synopsys没有任何关联。任何具体的产品参考不构成背书或推荐。作者所表达的观点或意见并不反映作者的雇主Marvell Technology Inc.的观点。

这篇文章最初发表在经济日报.

Deekshith Krishnegowda是Marvell Technology圣克拉拉办公室的IC设计工程师。

留言