一种检查时序库和网表库的标准单元功能一致性的方法与流程

文档序号:11155884阅读:581来源:国知局
一种检查时序库和网表库的标准单元功能一致性的方法与制造工艺

本发明涉及集成电路计算机辅助设计领域,尤其涉及一种检查时序库和网表库的标准单元功能一致性的方法。



背景技术:

随着芯片技术的发展,芯片设计越来越复杂,功能验证在整个设计流程中都非常重要。而传统的验证功能的方法是通过仿真,这种方法效率较低。

在不同文件中,标准单元功能的描述形式完全不同。在时序库(Timing Library)里面的功能属性是通过布尔表达式给出的,而在网表库(Verilog)文件中,标准单元的功能可通过门单元的连接关系来描述。而

因而,提出一种新的检查时序库和网表库的标准单元功能一致性的方法,能够更高效地比较时序库和网表库的标准单元功能的一致性,成为亟待解决的问题。



技术实现要素:

为了解决现有技术存在的不足,本发明的目的在于提供一种检查时序库(Timing Library)和网表库(Verilog)的标准单元功能一致性的方法,可以更高效地比较网表库和时序库的标准单元功能的一致性。

为实现上述目的,本发明提供的检查时序库和网表库的标准单元功能一致性的方法,包括以下步骤:

(1)获取时序库及网表库的标准单元的功能文件;(2)获取时序库中的功能属性,得到第一布尔表达式;(3)获取网表库中的功能描述,并将所述功能描述转换为第二布尔表达式;(4)判断所述第一、第二布尔表达式是否相同,验证时序库和网表库的标准单元功能的一致性。

所述步骤(3)中进一步包括:在网表库文件中,通过从端口到线网再到器件进行信号的溯源,得到所述第二布尔表达式。

进一步地,所述网表库文件包括,通过综合或者转化成门级描述的网表库文件。

进一步包括以下步骤:

(31)所有的网表库文件中的功能定义,均转换为由元功能组成的电路结构;(32)将网表库中的所述电路结构转换成布尔表达式。

所述步骤(31)中进一步包括:根据元器件对应的真值表,定义所述元功能的信号操作结果。

所述步骤(32)中进一步包括:依据元器件的真值表得到元器件的处理伪代码。

所述步骤(4)中进一步包括以下步骤:

(41)所述第一、第二布尔表达式的形式相同时,表明时序库与网表库的标准单元功能相一致;(42)所述第一、第二布尔表达式的形式不同时,则判断所述第一、第二布尔表达式是否等价。

步骤(42)所述判断所述第一、第二布尔表达式是否等价是:通过二叉决策图判断所述第一、第二布尔表达式是否等价。

所述步骤(4)中进一步包括:通过可满足性测试判断所述第一、第二布尔表达式是否相同。

本发明的检查时序库和网表库的标准单元功能一致性的方法,基于BDD技术,对Timing Library及Verilog的标准单元库文件功能进行对比。Timing Library中的功能在function属性中被定义为布尔表达式,在Verilog文件中,功能被定义为元器件和线网的连接关系。将Verilog中的功能描述转化为布尔表达式,与Timing Library中的function属性定义的布尔表达式进行比较。并且利用经典的BDD或者SAT求解器判断两个布尔表达式是否等价,验证网表库和时序库中标准单元的功能是否一致。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:

图1为根据本发明的检查时序库和网表库的标准单元功能一致性的方法流程图;

图2为根据本发明的网表库和时序库中的单元功能描述示意图;

图3为根据本发明的电路结构转化为布尔表达式的伪代码示意图;

图4为根据本发明的与门真值表和伪代码示意图;

图5为根据本发明的BDD决策图的生成示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1为根据本发明的检查时序库和网表库的标准单元功能一致性的方法流程图,下面将参考图1,对本发明的检查时序库和网表库的标准单元功能一致性的方法进行详细描述。

在步骤101,准备需要比较的时序库(Timing Library)及网表库(Verilog)的标准单元库文件,并读入EDA工具中;

在该步骤中,获取时序库及网表库的标准单元的功能文件。

图2为根据本发明的网表库和时序库中的单元功能描述示意图。如图2所示,时序库文件中Cell部分通过在输出pin里面定义function属性,来描述器件功能;网表库文件中的module部分定义了AO22是五输入一输出的器件,由两个与门和一个或门组成,来描述功能。

在步骤102,获取时序库中的功能(function)属性,得到第一布尔表达式;

在步骤103,获取网表库(Verilog)中的功能描述部分,并将其转换为第二布尔表达式;

在该步骤中,在Verilog文件中,通过从端口(port)到线网(net)再到器件(instant)进行信号的溯源,得到布尔表达式。

Verilog中不是门级描述的文件,综合或者转化成门级描述,即由基本元器件组成的电路。

基本元器件包括:与门,与非门,或门,或非门等。

下面进一步地描述转换过程:

(1)所有的Verilog文件中的功能定义,均转换为由元功能组成的电路结构;

元功能与基本元器件相对应,根据基本元器件对应的真值表,定义元功能的信号操作结果。

元功能为基本的信号操作,包括:AND、NAND、OR、NOR、XOR、XNOR、BUF、INV、CMOS、NMOS、GND、PWR、X、Z、PullDown及PullUp等。

(2)将网表库中的电路结构转换成布尔表达式。

比如AND单元,输入端的net function分别是A和B,那么经过与门AND单元的功能就转化为布尔表达式A+B。

图3为根据本发明的电路结构转化为布尔表达式的伪代码示意图,如图3所示, 代码可以分为三个部分:第一部分是Extract()选取所有的输出pin,并获取相应的net,然后调用ExtractNetFunction();第二部分是ExtractNetFunction(),当net的驱动是一个器件调用ExtractInstFunction(),如果是一个信号端,可直接获取信号的名称;第三部分是ExtractInstFunction(),对于所有输入pin,获取其所在net,调用ExtractNetFunction(),得到每个输入pin的功能表达式,然后根据PrimitiveFunction()的规则进行组合。

元器件转化为布尔表达式,通过调用PrimitiveFunction()。图4为根据本发明的与门真值表和伪代码示意图。在已知输入pin的信号和器件的功能情况下,以AND单元为例,说明转换细节。如图4所示,两输入与门,根据输入的信号决定输出信号,输入的数字信号有四种0/1/X/Z,其中X是未知,Z是高阻。按照真值表可以得出元器件的处理伪代码,当input1为0时输出为0,当input1为X/Z时输出为X;然后处理input2,当input2为0输出为0,当input2为X/Z时输出为X,当input2等于inv(input1) 输出为0,否则out等于input1 & input2。

在步骤104,判断第一、第二两个布尔表达式是否相同,如果不同则验证其功能的一致性。其中,

两个布尔表达式的形式相同时,直接表明时序库与网表库的标准单元功能相一致;

两个布尔表达式的形式不相同时,则需要判断两个布尔表达式是否等价。

把网表库里面功能转化为布尔表达式之后,与时序库里面的function可能不相同。为了判断两个布尔表达式是否相同,可以通过二叉决策图(BDD)和可满足性测试(SAT)进行验证。

BDD是将两个布尔表达式按照固定顺序转换为一棵二叉树,当变量顺序一定的情况下,树的结构是相同的,时间主要用在构造二叉树的过程中。

利用BDD技术,将两个布尔表达式同时转换为相同顺序的BDD 树,相同功能的布尔表达式对应的BDD都是一样的,如果两个布尔表达式等价,那么BDD树是相同的。所以通过比较BDD可以判断两个布尔表达式是否相同,从而判断两个文件中的功能描述是否相同。

图5为根据本发明的BDD决策图的生成示意图。如图5所示,利用BDD对两个布尔表达式进行比较,并以两个不同的布尔表达式为例进行说明。

f1=(b&c)|(a&!b&!c),f2=(a&!(b^c))|(!a&b&c) 这两个布尔表达式形式不同,但它们对应的真值表是完全相同的,所以按照相同的字符顺序构造出的二叉决策树也是相同的。图5中3)中画出的决策树也是唯一的,其中虚线表示0,实线表示1。为了降低处理的复杂度,对二叉决策树进行规约,所有的输出信号都集中到了0和1这两个点。由此得到图5中4)中唯一的二叉决策图,从而证明这两个表达式是同功能的。

SAT是测试有没有一种解可满足某个表达式,需要将两个需要比较的布尔表达式进行异或,如果存在解,那么这两个布尔表达式就是不相等的,反之无解表示相等。

本发明的检查时序库和网表库的标准单元功能一致性的方法,基于BDD技术,对Timing Library及Verilog的标准单元库文件功能进行对比。Timing Library中的功能在function属性中被定义为布尔表达式,在Verilog文件中,功能被定义为元器件和线网的连接关系。将Verilog中的功能描述转化为布尔表达式,与Timing Library中的function属性定义的布尔表达式进行比较。并且利用经典的BDD或者SAT求解器判断两个布尔表达式是否等价,验证网表库和时序库中标准单元的功能是否一致。

本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1