首页>>科技 >>内容

逻辑等价性检查 LEC基础知识介绍

发布时间:2023-08-03 21:14:39编辑:温柔的背包来源:

很多朋友对逻辑等价性检查,LEC基础知识介绍不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

逻辑等价性检查 LEC基础知识介绍

逻辑锥从数字网表的角度来看,设计可以分为几个“以DFF为终点的逻辑块”,如下图所示。DFF的CK(时钟)、D(数据)、RN(复位)、SN(置位)是这个“逻辑块”的端点,它们的输入都是一个组合逻辑。时钟和复位可以是时钟树或缓冲树,也可以有稍微复杂的逻辑,如与门、或门、异或门和选择器。(图1)

如果设计(模块)是组合逻辑输出,也可以想象在设计之外有一个DFF,如下所示。(图2)这些组合逻辑的输入是什么?只有两种情况:一是之前DFF的产量;二是设计模块的输入引脚。(图3)

跨模块优化呢?如下图所示,组合逻辑分为两个模块。但如果忽略设计的层次关系,两片组合逻辑可以合并成一片。好处是综合工具可以和两块组合逻辑一起考虑,看看有没有可以复用的逻辑,这样面积和时序会优化得更好。缺点:模块的端口可能不存在,或者创建了一个新的端口。因此,积分求和LEC的解组(平面)选项用于此目的,这使得该工具忽略了等级关系。

(图4)因此,设计(模块)由“以DFF为终点的逻辑块”组成。不仅是网单,还有RTL。我们知道所有的数字电路都可以通过always和assign来实现(latch可以看作是一种DFF)。这些“DFF终止的逻辑块”被称为逻辑锥。关键点映射

有了逻辑锥的概念,关键点映射就更容易理解了。由上可知,逻辑锥的端点是DFF的CK(时钟)、D(数据)、RN(复位)和SN(置位)。如果这些“关键点”的逻辑相同或等价,那么这两个逻辑锥的逻辑是等价的。对于组合逻辑直接输出的逻辑锥,“关键点”是输出管脚。那么,总结一下,有以下几个重点:DFF的输入(CK,D,RN,SN)。

顶部模块的输出引脚

要检查等价性,那么键位映射是前提和基础。如果击键映射是错误的,等价性检查结果必定会失败。对于要对比的两个设计,我们通常称之为黄金和修正(S的名字是引用和实现)。金色可能是RTL,综合网表,APR网表,ECO网表,这不是绝对的,只是说明这个设计是作为比较的基准。所以做等价性检查的时候黄金和修正是反的问题不大。

但是S的工具依赖于svf(安装验证文件),所以要注意。当RTL或网表ECO被修改时,逻辑锥的“关键点”可能会发生很大变化,例如:

添加DFF,删除DFFDFF,重命名,复位设置上升沿,更改下降沿。DFF也可以从模块A移动到模块B寄存器合并寄存器以复制多位寄存器。因此,在绘制关键点图时,应考虑这些情况。可以手动分析,可以参考综合的svf文件,也可以用一些算法进行测试分析。形式证明

关键点映射正确后,就可以开始正式验证了。如果逻辑锥的输入不一致,比如在下图所示的修改设计中增加了输入4和5,就需要分析这两个新增加的输入与golden的输入是等价还是反等价。如果没有任何关系,只是简单的新增了一个条件,那么这两个逻辑锥肯定会失效。(图5)

在检查完上一步逻辑锥的输入后,我们需要通过数学方法检查等价性。这种数学方法的原理很简单。如下,每个关键点的逻辑可以用下面的公式描述:Y=F(a,b,c,n)将相同的测试向量应用于黄金逻辑锥和修正逻辑锥,以查看是否有相同的输入。理论上,对于具有n个输入的按键,有2 n个输入可能性。遍历一下就知道等价的结果了。

如果其中一个测试向量失败,则该关键点不等价,并且没有必要继续剩余的测试向量。如果都通过了,你需要遍历所有的测试向量。为了节省测试时间,LEC工具需要优化逻辑锥。现在市场上有一些基于机器学习和深度学习的形式化验证算法的LEC工具。

审计刘清

以上知识分享希望能够帮助到大家!