CN106611088B - 一种库单元时延功耗状态完整性的检查方法 - Google Patents
一种库单元时延功耗状态完整性的检查方法 Download PDFInfo
- Publication number
- CN106611088B CN106611088B CN201611233543.3A CN201611233543A CN106611088B CN 106611088 B CN106611088 B CN 106611088B CN 201611233543 A CN201611233543 A CN 201611233543A CN 106611088 B CN106611088 B CN 106611088B
- Authority
- CN
- China
- Prior art keywords
- state
- target collection
- time delay
- power consumption
- library
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
一种库单元时延功耗状态完整性的检查方法,包括步骤:获取单元库中定义的所有状态集合,组成目标集合;根据所有管脚的名称枚举出所有状态集合,组成状态总集合;根据单元的功能定义,以及不同模型的特点从所述目标集合中求出非法状态集合;基于所述非法状态集合,比较所述状态总集合和所述目标集合,得出重复和缺失的状态集合。本发明提供的库单元时延功耗状态完整性的检查方法,通过检查定义时延和功耗的条件,对时序单元库(Timing Library)中的状态(condition)完备性进行分析,查找出错误定义、重复定义,以及遗漏的状态。
Description
技术领域
本发明涉及集成电路计算机辅助设计领域,尤其涉及一种库单元时延功耗状态完整性的检查方法。
背景技术
在标准单元库、I/O库以及IP器件的时延和功耗定义中,为了计算的准确性,模型都是分不同的状态定义的。在库文件中,时延功耗模型有三种定义格式:leakage_power()、internal_power()及timing(),状态则是用属性when定义在不同的格式中。
而现在的库文件都是由siliconsmart以及liberate等工具自动生成,由于提取库中模型的选项较多,会出现状态定义混乱的情况,目前没有完整的解决方案,因而需要检查状态的完整性。
图1为现有技术中单元及管脚状态定义格式图。在时延和功耗模型中,有三种类型的状态定义需要检查完备性,截取其中的片段进行说明,如图1所示:leakage_power()定义在cell的下一层,分不同的状态定义具体功耗值;internal_power()定义在pin的下一层,分不同的状态,其中有些有定义related_pin,有些没有定义related_pin;timing()也定义在pin的下一层,分不同的状态,不同的timing_type,但是必须定义related_pin。
直观的检查状态完整性的方法,是通过选择所有的输入管脚(pin)进行状态枚举,然后比对枚举结果和出现的状态。
然而实际情况并没有这么简单,模型类型以及输出pin定义的功能(function)格式不同时,状态定义的规则也会不同。并且,还存在双输出、三态、状态表,以及ff和latch等定义更复杂的情况。此时,就需要根据输入输出pin的名称,以及定义的function内容,过滤出可行的状态。
一般情况下,库单元不同模型中状态定义需要满足以下条件:
1)leakage_power()状态,包含有输出pin的状态,利用function定义内容检查,进行布尔表达式的分析,判断哪些状态是可行的;
2)timing()状态,定义在两个端点之间(arc)的时序关系,包括一个输入pin和一个输出pin,输入pin的信号变化会引起输出pin的信号变化,也就是说状态不能确定输出的信号;
3)internal_power()状态,此种状态比较特殊,当定义在两个端点之间(arc)时和timing()状态类似;当定义在在输入pin时,该输入pin的信号变化不会引起输出的变化,也就是说状态能确定输出信号。
因而,提出一种库单元时延功耗状态完整性的检查方法,能够检查功耗时延模型中状态定义的完备性,帮助设计者以及库的提取者得到完整以及规范的库文件数据,成为亟待解决的问题。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种库单元时延功耗状态完整性的检查方法,可以检查功耗时延模型中状态定义的完备性,帮助设计者以及库的提取者得到完整以及规范的库文件数据。
为实现上述目的,本发明提供的库单元时延功耗状态完整性的检查方法,包括以下步骤:
(1)获取单元库中定义的所有状态集合,组成目标集合;(2)根据所有管脚的名称枚举出所有状态集合,组成状态总集合;(3)根据单元的功能定义,以及不同模型的特点从所述目标集合中求出非法状态集合;(4)基于所述非法状态集合,比较所述状态总集合和所述目标集合,得出重复和缺失的状态集合。
所述步骤(1)进一步包括:针对每一个单元,抽取internal_power()、leakage_power()及timing()定义的状态,组成所述目标集合。
所述步骤(2)进一步包括以下步骤:
(21)通过所述目标集合中的状态和单元定义的管脚方向,确定关联的输入及输出管脚的集合;(22)根据输入管脚,得到状态的个数。
所述步骤(3)进一步包括:首先,选出不符合标准单元功能和三态定义的状态;然后,选出不符合模型特点的状态,得到所述非法状态集合。
所述步骤(4)进一步包括:扣除掉所述目标集合中属于所述非法状态集合的部分,得到合法的目标集合;扣除掉所述状态总集合属于所述非法状态集合的部分,得到合法的状态参考集合;求出所述合法的参考集合中多于所述合法的目标集合的部分,得到定义缺失的状态集合;所述目标集合中,定义的状态重复出现的为冗余状态集合。
本发明提供的库单元时延功耗状态完整性的检查方法,通过检查定义时延和功耗的条件,对时序单元库(Timing Library)中的状态(condition)完备性进行分析,查找出错误定义、重复定义,以及遗漏的状态。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为现有技术中单元及管脚状态定义格式图;
图2为根据本发明的库单元时延功耗状态完整性的检查方法流程图;
图3为根据本发明的数字和状态的转换图;
图4为根据本发明的状态规则图;
图5为根据本发明的状态集合运算图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明提供的库单元时延功耗状态完整性的检查方法,通过检查定义时延和功耗的条件,对时序单元库(Timing Library)中的状态(condition)完备性进行分析,查找出错误定义、重复定义,以及遗漏的状态。
首先,需要获取状态定义中的单元的输入和输出pin;然后,根据不同模型的特点,进行功能(function)分析,过滤错误的状态,错误状态集和用户提供的状态集的交集,可得出用户集合中错误的状态;最后,比对用户提供的状态集和所有正确的状态集合,可得出缺失的和重复的状态。
图2为根据本发明的库单元时延功耗状态完整性的检查方法流程图,下面将参考图2,对本发明的库单元时延功耗状态完整性的检查方法进行详细描述。
在步骤201,准备需要检查的标准单元时序库文件,并读入EDA工具中;
用户在单元库中定义的所有状态集合,就是需要比较的目标集合Set_tar。
在该步骤中,针对每一个单元,抽取internal_power()、leakage_power()及timing()定义的状态,组成目标集合Set_tar。
以timing()为例,按照arc整理出所有的when定义的状态,这些状态组成目标集合Set_tar。
internal_power()及leakage_power()也整理出所有的when定义的状态,这些状态组成目标集合Set_tar。
在步骤202,根据所有管脚(pin)的名称枚举出所有状态总集合Set_ref;
(1)通过目标集合Set_tar中的状态和单元定义的管脚方向,确定关联的输入及输出pin的集合;
(2)数字信号只有0、1两种,根据输入pin的个数N,状态的个数可有2的N次方种。
已知输入管脚(pin)的个数N和名字,可以枚举出2N种状态。
图3为根据本发明的数字和状态的转换图。参考图3,有A和B两个输入pin,可枚举出四种状态。因为输入pin的顺序是确定的,每一个数字对应一个状态,所以状态和数字可通过二进制自由转换。数字的操作比字符串的速度更快,只有在最后需要结果时,才把具体的状态用字符串输出。由此枚举出所有状态的总集即状态总集合Set_ref。
以timing()为例,每一条arc时序里存在的状态,可根据输入及输出管脚进行枚举,比如有三个输入pinA、pinB、pinC及一个输出pin Z。选取pinA和pinZ组成A->Z的arc,pinB和pinC的状态枚举出所有状态BC、!BC、B!C、!B!C,这四个状态组成arc A->Z的状态总集合Set_ref;
在步骤203,根据单元的功能定义,以及不同模型的特点从目标集合Set_tar中求出非法状态集合Set_ill;
首先选出不符合标准单元功能和三态定义的状态,然后选出不符合模型特点的状态,得到的就是非法状态集合。
其中,根据功能定义及输入pin的状态生成的二元决策图(BDD)可求出输出pin的状态。
下面解释,如何根据单元功能和三态属性定义,求出非法状态集合Set_ill。
图4为根据本发明的状态规则图。以一个两输入与门为例,参考图4,分析状态的合法性。这个与门包含了两个输入管脚(pin)A和B,包含的输出管脚(pin)Z的功能(function)定义是A&B。
在从pin A到pin Z的时序(arc)上定义timing(),当when=B时(B=1),不能确定pinZ的输出值,所以在从pin A到pin Z的arc下定义状态B是合法的状态;当when=!B(B=0)时,pin Z为0,确定了pin Z的输出,所以在从pin A到pin Z的时序arc下定义状态!B是不合法的。
在internal_power()里定义的状态就与在timing()里定义的完全不同了。
在pin A上定义internal_power(),当when=B(B=1)时,不能确定pin Z的输出值,所以在pin A下定义状态B是不合法的状态;当when=!B(B=0)时,pin Z肯定为0,确定了Z的输出,所以在pin A下定义状态!B是合法的。
在步骤204,基于非法状态集合,比较状态总集合和目标集合,得出重复和缺失的状态集合。
图5为根据本发明的状态集合运算图,如图5中公式所示,扣除掉用户给出的需要比较的目标集合Set_tar中属于非法状态集合Set_ill的部分,得到合法(即符合规则)的目标集合Set_tar’;同时,扣除掉状态总集合Set_ref属于非法状态集合Set_ill的部分,得到合法的状态参考集合Set_ref’。在上述过程中,可以根据不同模型的特点,及功能定义的分析,过滤掉一部分错误的状态。最后,求出合法的参考集合Set_ref’中多于合法的目标集合Set_tar’的部分,得到用户定义缺失的状态集合Set_missing。而用户定义的目标集合Set_tar中,如果有重复出现的则是冗余状态集合Set_redundant。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种库单元时延功耗状态完整性的检查方法,其特征在于,包括以下步骤:
(1)获取单元库中定义的所有状态集合,组成目标集合;
(2)根据所有管脚的名称枚举出所有状态集合,组成状态总集合;
(3)根据单元的功能定义,以及不同模型的特点从所述目标集合中求出非法状态集合;
(4)基于所述非法状态集合,比较所述状态总集合和所述目标集合,得出重复和缺失的状态集合;
所述步骤(3)进一步包括:首先,选出不符合标准单元功能和三态定义的状态;然后,选出不符合模型特点的状态,得到所述非法状态集合;
所述步骤(4)进一步包括:扣除掉所述目标集合中属于所述非法状态集合的部分,得到合法的目标集合;扣除掉所述状态总集合属于所述非法状态集合的部分,得到合法的状态参考集合;求出所述合法的参考集合中多于所述合法的目标集合的部分,得到定义缺失的状态集合;所述目标集合中,定义的状态重复出现的为冗余状态集合。
2.根据权利要求1所述库单元时延功耗状态完整性的检查方法,其特征在于,所述步骤(1)进一步包括:
针对每一个单元,抽取internal_power()、leakage_power()及timing()定义的状态,组成所述目标集合。
3.根据权利要求1所述库单元时延功耗状态完整性的检查方法,其特征在于,所述步骤(2)进一步包括以下步骤:
(21)通过所述目标集合中的状态和单元定义的管脚方向,确定关联的输入及输出管脚的集合;
(22)根据输入管脚,得到状态的个数。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201611233543.3A CN106611088B (zh) | 2016-12-28 | 2016-12-28 | 一种库单元时延功耗状态完整性的检查方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201611233543.3A CN106611088B (zh) | 2016-12-28 | 2016-12-28 | 一种库单元时延功耗状态完整性的检查方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN106611088A CN106611088A (zh) | 2017-05-03 |
| CN106611088B true CN106611088B (zh) | 2019-10-08 |
Family
ID=58636082
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201611233543.3A Active CN106611088B (zh) | 2016-12-28 | 2016-12-28 | 一种库单元时延功耗状态完整性的检查方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN106611088B (zh) |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1258729C (zh) * | 2003-11-14 | 2006-06-07 | 清华大学 | 基于虚拟模块的大规模混合模式布图方法 |
| WO2005111874A2 (en) * | 2004-05-07 | 2005-11-24 | Mentor Graphics Corporation | Integrated circuit layout design methodology with process variation bands |
| US7937256B2 (en) * | 2006-12-02 | 2011-05-03 | Altos Design Automation, Inc. | Systems and methods of efficient library characterization for integrated circuit cell libraries |
| CN102112988B (zh) * | 2008-06-10 | 2015-03-25 | 绿洲模具公司 | 用于针对生产工作流的芯片设计中的单元完整性、改变和起点的独立评估的方法和设备 |
-
2016
- 2016-12-28 CN CN201611233543.3A patent/CN106611088B/zh active Active
Also Published As
| Publication number | Publication date |
|---|---|
| CN106611088A (zh) | 2017-05-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8266571B2 (en) | Methods and devices for independent evaluation of cell integrity, changes and origin in chip design for production workflow | |
| CN105095491B (zh) | 基于Petri网基本结构的过程模型修复方法 | |
| US5301318A (en) | Hierarchical netlist extraction tool | |
| CN103336742B (zh) | 一种基于Android的自动化软件黑盒测试系统及方法 | |
| CN112560401B (zh) | Verilog文件转换方法、装置、存储介质及设备 | |
| WO2009152249A2 (en) | Methods and devices for independent evaluation of cell integrity, changes and origin in chip design for production workflow | |
| CN107394892B (zh) | 一种智能变电站间隔变动的调试范围确定方法及系统 | |
| KR20190121372A (ko) | 시스템 아키텍처를 표현하는 속성 그래프 데이터 모델 | |
| CN118503270B (zh) | 一种nl2sql数据集构建方法、装置、设备及介质 | |
| CN116126692A (zh) | 一种基于python的算法工具自动化测试系统及方法 | |
| CN109408385A (zh) | 一种基于缺陷规则和分类反馈的缺陷发现方法 | |
| Huang et al. | Errortracer: Design error diagnosis based on fault simulation techniques | |
| US8001503B2 (en) | Method and system for automatically accessing internal signals or ports in a design hierarchy | |
| CN106611088B (zh) | 一种库单元时延功耗状态完整性的检查方法 | |
| CN120832858A (zh) | 芯片后仿真验证加速方法、系统、设备以及存储介质 | |
| US20030046649A1 (en) | Model-based logic design | |
| US20110191739A1 (en) | Circuit design method, circuit design system, and recording medium | |
| CN112380798A (zh) | 参数检查方法、装置、设备和存储介质 | |
| CN120849299B (zh) | 用于数据库内核测试的基于算子组合的sql生成方法 | |
| CN112214401B (zh) | 一种基于模型检测的标准模型分析方法 | |
| CN115422863B (zh) | 一种嵌入式的逻辑优化验证流程框架及验证方法 | |
| Adamov et al. | Electronic system level models for functional verification of system-on-chip | |
| CN121051760A (zh) | 一种基于图遍历规则生成的Verilog漏洞检测方法 | |
| CN120849299A (zh) | 用于数据库内核测试的基于算子组合的sql生成方法 | |
| JP4781994B2 (ja) | 信号波形解析装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant | ||
| CP03 | Change of name, title or address | ||
| CP03 | Change of name, title or address |
Address after: 100102 floor 2, block a, No.2, lizezhong 2nd Road, Chaoyang District, Beijing Patentee after: Beijing Huada Jiutian Technology Co.,Ltd. Address before: 100102 floor 2, block a, No.2 lizezhong 2nd Road, Chaoyang District, Beijing Patentee before: HUADA EMPYREAN SOFTWARE Co.,Ltd. |