CN117574821A - 基于代表单元的信息关联方法、装置、设备及存储介质 - Google Patents
基于代表单元的信息关联方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117574821A CN117574821A CN202311362365.4A CN202311362365A CN117574821A CN 117574821 A CN117574821 A CN 117574821A CN 202311362365 A CN202311362365 A CN 202311362365A CN 117574821 A CN117574821 A CN 117574821A
- Authority
- CN
- China
- Prior art keywords
- unit
- representative
- target
- current
- functional
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 111
- 230000006870 function Effects 0.000 claims abstract description 106
- 238000013461 design Methods 0.000 claims description 72
- 230000004044 response Effects 0.000 claims description 55
- 230000014509 gene expression Effects 0.000 claims description 36
- 230000015572 biosynthetic process Effects 0.000 claims description 26
- 238000003786 synthesis reaction Methods 0.000 claims description 26
- 230000015654 memory Effects 0.000 claims description 23
- 230000000875 corresponding effect Effects 0.000 description 87
- 230000008569 process Effects 0.000 description 35
- 238000003780 insertion Methods 0.000 description 20
- 230000037431 insertion Effects 0.000 description 20
- 238000012360 testing method Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 238000012938 design process Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/333—Design for testability [DFT], e.g. scan chain or built-in self-test [BIST]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/20—Configuration CAD, e.g. designing by assembling or positioning modules selected from libraries of predesigned modules
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)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请属于集成电路技术领域,并且提出了基于代表单元的信息关联方法、装置、设备及存储介质,所述信息关联方法包括:获取待处理的库文件;基于库文件中的每个单元的单元信息,确定每个单元的单元类别:将当前单元的单元类别确定为目标单元类别,并更新代表单元;将当前单元的单元类别确定为新增的单元类别,将当前单元作为新增的单元类别的代表单元;将每个单元的单元信息关联到相应单元类别的存储空间中。本申请可解决难以定位到所需功能的单元且对同一单元类别下的单元不加以区分的问题,能够从功能的维度建立单元类别,并可将代表单元作为代表,为单元选取提供指导。
Description
技术领域
本申请涉及集成电路技术领域,尤其涉及一种基于代表单元的信息关联方法、装置、设备及存储介质。
背景技术
电子设计自动化(Electronic Design Automation,EDA)是指利用计算机辅助设计(Computer Aided Design,CAD)软件来完成超大规模集成电路(Very Large ScaleIntegration Circuit,VLSI)芯片的功能设计、综合、验证、物理设计(例如包括布局、布线、版图、设计规则检查等)等流程的设计方式。集成电路设计人员可以使用EDA工具设计几十万到数十亿晶体管的复杂集成电路,以减少设计偏差、提高流片成功率及节省流片费用。
在使用EDA工具时,EDA工具往往需要读取库(library)文件,该库文件可以用于描述集成电路设计中各个单元(cell)的单元信息,通常以lib作为扩展名,在按照行业标准《Liberty用户指南和参考手册(Liberty User Guides and Reference Manual)》编写库文件的情况下,库文件也可以被称为“Liberty文件”。一般来说,不同的单元可以具有不同的特性,例如在延迟、功耗、面积等方面,为了便于在设计时对时序和功耗进行分析与优化,EDA工具在读取库文件后,通常需要对各个单元进行分类处理,以便于后续根据不同的设计目标和约束条件,选择合适的单元进行替换或调整,从而提高电路的性能。
在相关技术中,现有的分类方法是直接根据单元的种类进行分类,例如按照寄存器(register)、锁存器(latch)、随机存取存储器(Random Access Memory,RAM)、组合逻辑门(combination gate)等类别对单元进行分类。
在实际使用EDA工具设计过程中,可能需要对单元进行诸如替换、***等处理,然而,基于现有的分类方法分类的单元仅能区别各自的种类,而同一种类下的各单元的功能可能各有不同,这使得在进行诸如单元替换、单元***等处理时,难以快速定位到所需功能的单元,需要消耗过多的时间和资源去重新遍历整个库文件找到对应功能的单元,尤其是在需要进行多次处理的情况下,每次处理都需要遍历一次库文件,这会消耗更多的时间和资源,影响工作效率和设计进度。
此外,在相关技术中,在对单元分类的过程中,仅考虑单元的种类是否相同,而同种单元之间不加以区分,使得在后续设计使用中,在对单元进行选取时,仅存在种类依据,而无法为同一种类的单元之间的选取提供指导。
发明内容
本申请提供一种基于代表单元的信息关联方法、装置、设备及存储介质,以至少解决相关技术中难以定位到所需功能的单元而消耗过多的查找时间和资源并且对同一单元类别下的单元不加以区分而导致无法为后续设计提供进一步的指导的问题。本申请的技术方案如下:
根据本申请的实施例的第一方面,提供一种基于代表单元的信息关联方法,所述信息关联方法应用于集成电路电子设计自动化软件,其中,所述信息关联方法包括:获取待处理的库文件,其中,所述库文件中包含用于构成集成电路的至少一个单元的单元信息,其中,所述单元信息包含单元的功能特征和性能特征,所述性能特征表征单元在实现相应的功能时的性能水平;基于所述库文件中的每个单元的单元信息,通过以下方式确定每个单元的单元类别:响应于当前单元的功能特征与所述至少一个单元中的代表单元中的目标代表单元的功能特征匹配,将当前单元的单元类别确定为所述目标代表单元对应的目标单元类别,并且基于当前单元的性能特征,对当前单元与所述目标代表单元进行比较,根据比较结果,更新所述目标单元类别的代表单元,其中,每个单元类别对应有一个代表单元,所述代表单元的性能特征反映相应单元类别下的单元的代表性的性能水平,响应于当前单元的功能特征与所述至少一个单元中的所有代表单元的功能特征均不匹配,将当前单元的单元类别确定为新增的单元类别,将当前单元作为所述新增的单元类别的代表单元,并且为所述新增的单元类别分配对应的存储空间,其中,每个单元类别对应有一个存储空间;以及,将每个单元的单元信息关联到相应单元类别的存储空间中。
可选地,所述代表单元的性能特征反映相应单元类别下的单元的性能最优性能水平,其中,所述基于当前单元的性能特征,对当前单元与所述目标代表单元进行比较,根据比较结果,更新所述目标单元类别的代表单元,包括:响应于当前单元的性能水平高于或等于所述目标代表单元的性能水平,用当前单元替换所述目标代表单元,作为所述目标单元类别的代表单元;响应于当前单元的性能水平低于所述目标代表单元的性能水平,保持将所述目标代表单元作为所述目标单元类别的代表单元。
可选地,所述待处理的库文件包括多个库文件,其中,响应于当前单元的性能水平高于或等于所述目标代表单元的性能水平,所述信息关联方法还包括:响应于当前单元为首次读取,执行用当前单元替换所述目标代表单元的步骤;响应于当前单元为非首次读取,保持将所述目标代表单元作为所述目标单元类别的代表单元。
可选地,通过以下方式确定所述性能特征:根据集成电路电子设计中的逻辑综合阶段的设计目标,确定所述性能特征,其中,所述设计目标包括:以功耗为最优先考虑因素进行逻辑综合、或者以电路面积为最优先考虑因素进行逻辑综合、或者按照为功耗预设的功耗权重和为电路面积预设的面积权重进行逻辑综合;所述性能特征包括功耗特征和/或电路面积特征。
可选地,所述设计目标包括按照为功耗预设的功耗权重和为电路面积预设的面积权重进行逻辑综合,所述性能特征包括功耗特征和电路面积特征,其中,通过以下方式基于当前单元的性能特征,对当前单元与所述目标代表单元进行比较:基于所述功耗权重和所述面积权重,对当前单元和所述目标代表单元各自的功耗特征和电路面积特征进行加权,分别确定当前单元的性能水平和所述目标代表单元的性能水平;对当前单元的性能水平与所述目标代表单元的性能水平进行比较。
可选地,所述性能特征为功耗特征或电路面积特征,其中,所述基于当前单元的性能特征,对当前单元与所述目标代表单元进行比较,根据比较结果,更新所述目标单元类别的代表单元,包括:响应于当前单元的电容或电路面积小于或等于所述目标代表单元的电容或电路面积,用当前单元替换所述目标代表单元,作为所述目标单元类别的代表单元;响应于当前单元的电容或电路面积大于所述目标代表单元的电容或电路面积,保持将所述目标代表单元作为所述目标单元类别的代表单元。
可选地,所述功能特征包括输出引脚功能特征和/或组属性特征,其中,当前单元的功能特征与所述目标代表单元的功能特征匹配是指:当前单元的输出引脚功能特征与所述目标代表单元的输出引脚功能特征相同;和/或,当前单元的功能特征与所述目标代表单元的功能特征匹配是指:当前单元的输出引脚功能特征与所述目标代表单元的输出引脚功能特征相同,并且当前单元的组属性特征与所述目标代表单元的组属性特征相同。
可选地,所述单元信息还包含单元的规格特征,所述功能特征包括输出引脚功能特征,所述规格特征包括引脚规格特征,其中,通过以下方式确定所述输出引脚功能特征和所述引脚规格特征:确定当前单元的每个引脚的引脚类型,其中,所述引脚类型为电源地引脚类型或非电源地引脚类型;从当前单元的单元信息中提取与所述非电源地引脚类型的引脚对应的功能特征和规格特征,作为所述输出引脚功能特征和所述引脚规格特征。
可选地,所述功能特征包括输出引脚功能特征和组属性特征,其中,通过以下方式确定当前单元的功能特征与所述目标代表单元的功能特征匹配:将当前单元的输出引脚功能特征与所述目标代表单元的输出引脚功能特征进行第一比较;在所述第一比较的结果指示当前单元的输出引脚功能特征与所述目标代表单元的输出引脚功能特征相同的情况下,将当前单元的组属性特征与所述目标代表单元的组属性特征进行第二比较;在所述第二比较的结果指示当前单元的组属性特征与所述目标代表单元的组属性特征相同的情况下,确定当前单元的功能特征与所述目标代表单元的功能特征匹配。
可选地,所述输出引脚功能特征包括至少一个输出引脚的功能表达式,其中,所述将当前单元的输出引脚功能特征与所述目标代表单元的输出引脚功能特征进行第一比较,包括:在指定的输入信号下,分别针对当前单元的每个输出引脚的功能表达式与所述目标代表单元的每个输出引脚的功能表达式进行布尔运算;在当前单元的每个输出引脚的功能表达式的布尔运算结果分别与所述目标代表单元的相应输出引脚的功能表达式的布尔运算结果均一致的情况下,确定当前单元的输出引脚功能特征与所述目标代表单元的输出引脚功能特征相同。
可选地,所述单元信息还包括单元的规格特征,其中,还通过以下方式确定每个单元的单元类别:响应于当前单元的功能特征和规格特征均与所述至少一个单元中的代表单元中的目标代表单元的功能特征和规格特征匹配,执行将当前单元的单元类别确定为所述目标单元类别的步骤;响应于所述至少一个单元中的代表单元中不存在与当前单元的功能特征和规格特征二者均匹配的代表单元,执行将当前单元的单元类别确定为新增的单元类别且将当前单元作为所述新增的单元类别的代表单元的步骤。
可选地,通过以下方式确定当前单元的功能特征和规格特征均与所述目标代表单元的功能特征和规格特征匹配:将当前单元的规格特征与所述目标代表单元的规格特征进行第一匹配;在所述第一匹配的结果指示当前单元的规格特征与所述目标代表单元的规格特征匹配的情况下,将当前单元的功能特征与所述目标代表单元的功能特征进行第二匹配;在所述第二匹配的结果指示当前单元的功能特征与所述目标代表单元的功能特征匹配的情况下,确定当前单元的功能特征和规格特征均与所述目标代表单元的功能特征和规格特征匹配。
可选地,所述规格特征包括引脚数量和引脚方向,所述引脚数量为输入引脚数量与输出引脚数量之和,其中,所述将当前单元的规格特征与所述目标代表单元的规格特征进行第一匹配,包括:确定当前单元的引脚数量与所述目标代表单元的引脚数量是否相同;在当前单元的引脚数量与所述目标代表单元的引脚数量相同的情况下,分别确定当前单元的每个引脚的引脚方向与所述目标代表单元的每个引脚的引脚方向;在当前单元的每个引脚的引脚方向分别与所述目标代表单元的相应引脚的引脚方向均一致的情况下,确定当前单元的规格特征与所述目标代表单元的规格特征匹配。
根据本申请的实施例的第二方面,提供一种基于代表单元的信息关联装置,所述信息关联装置应用于集成电路电子设计自动化软件,其中,所述信息关联装置包括:获取单元,被配置为获取待处理的库文件,其中,所述库文件中包含用于构成集成电路的至少一个单元的单元信息,其中,所述单元信息包含单元的功能特征和性能特征,所述性能特征表征单元在实现相应的功能时的性能水平;确定单元,被配置为基于所述库文件中的每个单元的单元信息,通过以下方式确定每个单元的单元类别:响应于当前单元的功能特征与所述至少一个单元中的代表单元中的目标代表单元的功能特征匹配,将当前单元的单元类别确定为所述目标代表单元对应的目标单元类别,并且基于当前单元的性能特征,对当前单元与所述目标代表单元进行比较,根据比较结果,更新所述目标单元类别的代表单元,其中,每个单元类别对应有一个代表单元,所述代表单元的性能特征反映相应单元类别下的单元的代表性的性能水平,响应于当前单元的功能特征与所述至少一个单元中的所有代表单元的功能特征均不匹配,将当前单元的单元类别确定为新增的单元类别,将当前单元作为所述新增的单元类别的代表单元,并且为所述新增的单元类别分配对应的存储空间,其中,每个单元类别对应有一个存储空间;以及,存储单元,被配置为将每个单元的单元信息关联到相应单元类别的存储空间中。
根据本申请的实施例的第三方面,提供一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器,其中,所述处理器可执行指令在被所述处理器运行时,促使所述处理器执行根据本申请的示例性实施例所述的基于代表单元的信息关联方法。
根据本申请的实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行根据本申请的示例性实施例所述的基于代表单元的信息关联方法。
本申请的实施例提供的技术方案至少带来以下有益效果:
本申请的实施例可以通过遍历库文件中的每个单元的单元信息,基于单元的功能特征与库文件中的至少一个单元中的代表单元的功能特征是否匹配,根据所匹配的代表单元的目标单元类别,确定单元的单元类别,使得能够从单元的功能的维度建立单元类别,以确定各个单元归属于这些单元类别下,这使得在后续需要对单元进行诸如替换、***等处理时,能够快速定位到所需功能的单元类别,从而可以在该单元类别中选择单元进行诸如替换、***等处理,而无需在每次处理时通过遍历库文件来查找对应的单元,从而可以节省设计时间和资源,提高工作效率。
此外,本申请的实施例还可以在确定单元的单元类别的过程中,通过基于当前单元的性能特征,对当前单元与所匹配的代表单元进行比较,并且可以根据比较结果,更新当前单元所属的单元类别的代表单元,如此,可以使代表单元始终为其所对应的单元类别下能够反映该单元类别的代表性的性能水平的单元,从而在后续设计使用中,在对同一单元类别下的单元进行选择时,可以将代表单元的性能特征作为在该单元类别下选择单元的代表或参考,为在相应单元类别下的单元选取提供指导。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理,并不构成对本申请的不当限定。
图1是示出根据一示例性实施例示出的扫描替换的示意图。
图2是示出根据一示例性实施例示出的扫描缝合的示意图。
图3是示出根据一示例性实施例示出的扫描***的示意图。
图4是根据一示例性实施例示出的基于代表单元的信息关联方法的示意性流程图。
图5是根据一示例性实施例示出的基于代表单元的信息关联方法中确定单元的单元类别的步骤的示意性流程图。
图6是根据一示例性实施例示出的基于代表单元的信息关联方法确定单元的单元类别的示意图。
图7是根据一示例性实施例示出的基于代表单元的信息关联方法中更新代表单元的示意性流程图。
图8是根据一示例性实施例示出的基于代表单元的信息关联方法中检测库文件中是否存在数据错误的步骤的示意性流程图。
图9是根据一示例性实施例示出的基于代表单元的信息关联方法中建立扫描单元和非扫描单元的关联关系的示意图。
图10是根据一示例性实施例示出的基于代表单元的信息关联方法的全流程的一示例的示意性流程图。
图11是根据一示例性实施例示出的一种基于代表单元的信息关联装置的框图。
图12是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本申请的技术方案,下面将结合附图,对本申请的实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在此需要说明的是,在本申请中出现的“若干项之中的至少一项”均表示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若干项的全体”这三类并列的情况。例如“包括A和B之中的至少一个”即包括如下三种并列的情况:(1)包括A;(2)包括B;(3)包括A和B。又例如“执行步骤一和步骤二之中的至少一个”,即表示如下三种并列的情况:(1)执行步骤一;(2)执行步骤二;(3)执行步骤一和步骤二。
如前所述,在使用EDA工具进行集成电路电子设计时,EDA工具往往需要读取库文件,库文件是按照行业标准《Liberty用户指南和参考手册》编写的重要文件。例如,库文件可以包括两个部分内容,第一部分可以定义单元库的基本属性,例如单元库名称、文件版本、电压电流电容时间的基本单位、电路传输时间和信号转换时间的电压百分比等;第二部分可以包括每个单元的具体信息,例如延迟时间、泄漏功耗、内部功耗等。
在采用现有的分类方法基于单元种类进行分类的情况下,使用EDA工具对单元进行各种操作和处理可能是困难的。例如,在使用EDA工具对RLT(Register Transfer Level,寄存器传输级)设计进行逻辑综合得到门级网表(Gate-level netlist)后,往往需要针对网表中的一些单元进行替换处理,例如低功耗替换、***扫描链(scan chain)(也可称为扫描***(scan insertion),其可以包括了扫描单元的替换和连线)等。而在希望进行这些操作和处理时的效率并不理想,会消耗过多的时间和资源去遍历库文件找到对应的单元。下面将以可测性设计中的扫描***为例进行示例说明。
可测性设计(Design For Test,DFT)是指在芯片原始设计中阶段即***各种用于提高芯片可测试性(例如包括可控制性和可观测性)的硬件逻辑,通过这部分逻辑,生成测试向量,达到测试大规模芯片的目的。集成电路设计人员往往通过EDA工具快速对设计(design)***DFT电路以实现敏捷开发。
扫描路径设计(scan design)是一种针对时序电路芯片的DFT方案,其基本原理是时序电路可以模型化为一个组合电路网络和带触发器(Flip-Flop,FF)的时序电路网络的反馈。扫描***可以包括两个步骤:扫描替换(scan replacement)和扫描缝合(scanstitching),其目的是将一个不容易测试的时序电路变成容易测试的组合电路。
下面以混合D触发器扫描单元(Muxed-D scan cell)为例,结合图1至图3对扫描***进行简要说明。
如图1所示,扫描替换是把电路中的非扫描单元(例如,图1中的DFF)替换为扫描单元(例如,图1中的SDFF)。在扫描单元SDFF中,当SE(扫描控制端(scan enable),也可以称为“Scan-En”)端的值为0时,电路工作在正常功能状态(function mode)下并且能够将D端(数据端(Data Port))的值锁存下来;当SE端的值为1时,电路工作在扫描状态(scan mode)下并且锁存SI端的值,其中,CK为时钟端口,Q为输出端。
如图2所示,扫描缝合是将扫描替换中得到的扫描单元SDFF的Q端和SI(扫描输入端(scan in),也可以称为“Scan-In”)端连接在一起形成扫描链。在芯片的顶层具有全局的SE端输入信号以及扫描链的输入信号SI和输出信号SO。通过扫描链的连续动作,可以将测试过程从对复杂时序电路的测试转化成测试组合电路。
图3示出了在扫描***之前和在扫描***之后的区别。如图3所示,在扫描***之后,若将Scan-En端的值设成0,则电路可以工作在正常状态下,扫描***对电路的正常功能没有影响;若将Scan-En端的值设成1,则电路工作在扫描状态下,可以通过扫描链的后续动作将组合逻辑的输出值移位(shift)出来,从而可以与期望值进行比较。此外,在图3中,CLK表示时钟信号输入端,FF表示触发器(Flip Flop)。
然而,在上述扫描***过程中,若基于采用传统分类方法进行单元分类,在选取单元时的效率并不理想,会消耗过多的时间和资源去遍历库文件找到对应的单元,尤其在想进行多次替换查看替换效果时会消耗更多的时间和资源。
此外,在采用传统分类方法进行单元分类时,仅考虑单元的种类是否相同,而同种单元之间不加以区分,使得在后续设计使用中,在对单元进行选取时,仅存在种类依据,而无法为同一种类的单元之间的选取提供指导。
鉴于上述问题,本申请的示例性实施例提出一种基于代表单元的信息关联方法、信息关联装置、电子设备以及计算机可读存储介质,其能够解决或至少缓解上述问题。
在本申请的示例性实施例的第一方面,提供一种基于代表单元的信息关联方法,下面将参照图4至图8进行描述。
根据本申请的示例性实施例的信息关联方法可以应用于用户与软件进行交互的场景,例如,用户终端上可以加载有集成电路EDA软件,用户可以在用户终端上使用集成电路EDA软件。
集成电路EDA软件可以获取待处理的库文件,其中,库文件中可以包含用于构成集成电路的至少一个单元的单元信息,其中,单元信息可以包括单元的功能特征和性能特征,性能特征表征单元在实现相应的功能时的性能水平。
集成电路EDA软件可以遍历该库文件中的每个单元的单元信息,并且通过以下方式确定每个单元的单元类别:响应于当前单元的功能特征与至少一个单元中的代表单元中的目标代表单元的功能特征匹配,将当前单元的单元类别确定为目标代表单元对应的目标单元类别,并且基于当前单元的性能特征,对当前单元与目标代表单元进行比较,根据比较结果,更新目标单元类别的代表单元,其中,每个单元类别对应有一个代表单元,代表单元的性能特征反映相应单元类别下的单元的代表性的性能水平;响应于当前单元的功能特征与至少一个单元中的所有代表单元的功能特征均不相同,将当前单元的单元类别确定为新增的单元类别,将当前单元作为新增的单元类别的代表单元,并且为新增的单元类别分配对应的存储空间,其中,每个单元类别对应有一个存储空间。
集成电路EDA软件可以将每个单元的单元信息关联到相应单元类别的存储空间中。
上述用户终端可以是诸如平板电脑、笔记本电脑、数字助理、可穿戴设备等,然而,上面信息关联方法的实施场景仅是一示例场景,根据本申请的示例性实施例的信息关联方法还可以应用于其他应用场景,例如也可以是用户在用户终端(例如,手机、台式电脑、平板电脑等)通过网络向服务器请求查找对象,服务器可以通过执行根据本申请的示例性实施例的信息关联方法来完成信息关联,这里,服务器可以是独立服务器,也可以是服务器集群,还可以是云计算平台或虚拟化中心。
此外,本申请的实施例中所称的软件例如可以是但不限于计算机程序、规程、规则、文件、文档及数据等。尽管在本申请的实施例中以示例的方式描述了集成电路EDA软件在示例场景下的应用,但是本申请的实施例不限于此,也可以适用于集成电路EDA软件的其他应用场景。
根据本申请的示例性实施例的信息关联方法确定库文件中的各个单元的单元类别,可以使得在后续需要对单元进行诸如替换、***等处理时,能够快速定位到所需功能的单元类别,从而可以在该单元类别中选择单元进行诸如替换、***等处理,而无需在每次处理时通过遍历库文件来查找对应的单元,从而可以节省设计时间和资源,提高工作效率。
此外,根据本申请的示例性实施例的信息关联方法还可以在确定单元的单元类别的过程中,对当前单元所属的单元类别的代表单元进行更新,如此,可以使代表单元始终为其所对应的单元类别下能够反映该单元类别的具有代表性的性能水平的单元,从而在后续设计使用中,在对同一单元类别下的单元进行选择时,可以将代表单元的性能特征作为在该单元类别下选择单元的代表或参考,为在相应单元类别下的单元选取提供指导。
下面将参照图4描述根据一示例性实施例的一种信息关联方法的具体步骤。该信息关联方法可以应用于集成电路电子设计自动化(即,集成电路EDA)软件。如图4所示,该信息关联方法可以包括以下步骤:
在步骤S410,可以获取待处理的库文件。
这里,库文件中可以包含用于构成集成电路的至少一个单元的单元信息。
作为示例,可以通过集成电路EDA软件的主程序提供的接口获取到库文件,在一些实施例中,对于同一个设计架构(例如在同一个芯片的设计中)可能会获取多个库文件。这里,库文件可以由用户输入,也可以由其他程序自动导入到集成电路EDA软件中。
集成电路EDA软件在获取到库文件后,可以根据《Liberty用户指南和参考手册》的标准,对库文件进行解析,例如可以进行语法方面的正确性检查、解析各个单元的单元信息等。这里,语法方面的正确性检查例如可以包括但不限于功能表达式的合法性检查,功能表达式的合法性检查例如可以包括但不限于:功能表达式包含的变量是否与输入管脚对应、功能表达式的格式是否合法、功能表达式的运算符是否合法等。
单元信息可以包括单元的功能特征和性能特征,性能特征表征单元在实现相应的功能时的性能水平。
这里,功能特征可以表示单元能够执行的功能,不同种类的单元可以具有不同的功能,而同一种类的单元也可以具有不同的功能。例如,以组合逻辑门单元为例,可以包括实现与(AND)门功能的组合逻辑门单元、实现或(OR)门功能的组合逻辑门单元等。如此,通过获取到库文件中记录的各单元的功能特征,可以便于从功能的维度确定单元的单元类别,这与仅区分单元种类的分类方法相比,可以使单元的单元类别更具体、更细化,并且可以将具有相同功能的单元划分为同类,可以便于在设计中替换、***具有期望功能的单元,从而可以大大提高工作效率。
作为示例,功能特征可以包括单元的输出引脚功能特征和组属性特征中的至少一者。
输出引脚功能(pin function)特征例如可以是指输出引脚的功能表达式,对于单元而言,输入引脚不具有引脚功能,而每个输出引脚可以具有各自的引脚功能,以根据输入信号实现相应的逻辑功能。例如,对于组合逻辑门单元而言,在输入信号相同的情况下,可以通过输出引脚功能的不同来实现与门功能或者或门功能。
每个单元可以具有至少一个组属性特征,组属性特征例如可以包括但不限于ffgroup、latch group、memory group等组属性。
性能特征可以包括功耗特征和/或电路面积特征,功耗特性可以包括单元的电容,具体来说,单元的电容与单元的功耗呈正相关,单元的电容越大,其功耗越大。
在步骤S420,可以遍历库文件中的每个单元的单元信息,确定每个单元的单元类别。
在该步骤中,可以基于解析得到的各个单元的单元信息,逐一确定每个单元的单元类别,对单元进行遍历的顺序可以是任意的。
如图5所示,可以通过以下方式确定每个单元的单元类别:
在步骤S510,可以对当前单元的功能特征与库文件中的至少一个单元中的代表单元中的目标代表单元的功能特征进行匹配。
这里,当前单元可以是当前待确定单元类别的单元,可以从当前单元的单元信息中获得其功能特征。
代表单元可以是在库文件中描述的单元,其可以是从库文件中描述的单元中选出的单元,每个单元类别可以对应有一个代表单元,代表单元具有能够代表对应的单元类别的功能特征,代表单元的性能特征可以反映相应单元类别下的单元的代表性的性能水平。例如,库文件中可以描述多个组合逻辑门单元,可以将具有代表性的性能特征的组合逻辑门单元作为组合逻辑门单元类别中的代表单元。
作为示例,代表性的性能水平可以是相应单元类别下的各单元的性能值的统计值,例如最小值、最大值、中位数等,其可以反映出该单元类别下各单元的性能情况,例如在代表性的性能水平为最优性能水平的情况下,表明代表单元可以是该单元类别下性能最优的单元,在需要优化性能的设计考虑中,可以优先选择该代表单元。然而,代表性的性能水平的示例不限于此,也可以是其他的值,例如在对性能存在具体限制的情况下,可以将具有最接近预设性能值的性能值的单元作为代表单元。
在该步骤中,可以将当前单元与当前已存在的每个代表单元逐一比较,判断二者的功能特征是否匹配。这里,匹配可以是指当前单元能够实现与代表单元相同的功能,例如当前单元包括与代表单元的功能特征相同的功能特征。
在步骤S520,可以响应于当前单元的功能特征与库文件中的至少一个单元中的代表单元中的目标代表单元的功能特征匹配,将当前单元的单元类别确定为目标代表单元对应的目标单元类别,并且基于当前单元的性能特征,对当前单元与目标代表单元进行比较,根据比较结果,更新目标单元类别的代表单元。
这里,目标代表单元是指已存在的代表单元中与当前单元的功能特征匹配的代表单元。在存在目标代表单元时,可以认为当前单元与目标代表单元具有相同的功能,则可以将当前单元的单元类别确定为目标代表单元所对应的目标单元类别。
功能特征包括输出引脚功能特征和/或组属性特征,可以根据输出引脚功能特征和/或组属性特征,确定当前单元的功能特征是否与目标代表单元的功能特征匹配。
具体来说,在一示例中,如上所述,功能特征可以包括输出引脚功能特征,在该示例中,当前单元的功能特征与目标代表单元的功能特征匹配可以是指:当前单元的输出引脚功能特征与目标代表单元的输出引脚功能特征相同。这里,由于单元的输出引脚功能特征可以表征单元的关键功能,因此,从输出引脚功能特征的维度出发进行单元匹配,可以更直接高效地实现按照功能确定单元的单元类别。这里,两个单元的输出引脚功能特征相同可以是指输出引脚功能在数学意义上等价,例如可以通过布尔运算来确定是否等价。
替代地或附加地,在另一示例中,功能特征还可以包括组属性特征,在该示例中,当前单元的功能特征与目标代表单元的功能特征匹配还可以指:当前单元的输出引脚功能特征与目标代表单元的输出引脚功能特征相同,并且当前单元的组属性特征与目标代表单元的组属性特征相同。在一些情况下,组属性特征也可以反映单元的一部分功能,因此,可以考虑到输出引脚功能特征和组属性特征这两个维度进行单元匹配,从而实现对单元功能的细致划分。
在将当前单元的单元类别确定为目标代表单元所对应的目标单元类别的情况下,在该步骤S520中,还可以基于当前单元的性能特征,对当前单元与所述目标代表单元进行比较,根据比较结果,更新目标单元类别的代表单元。
这里,将当前单元与目标代表单元比较是用于确定当前单元和目标代表单元中的哪个更能够代表该单元类别的性能水平。若当前单元的性能更具有代表性,则可以将当前单元更新为该单元类别的代表单元;若目标代表单元的性能更具有代表性,则可以继续将目标代表单元作为该单元类别的代表单元。
性能特征可以包括一个或多个,例如性能特征可以包括单元的功耗特征和/或电路面积特征。
作为示例,可以通过以下方式确定性能特征:根据集成电路电子设计中的逻辑综合阶段的设计目标,确定所述性能特征。
这里,逻辑综合阶段可以是将设计人员所设计数字电路的高抽象级描述(例如verilog设计),经过布尔函数化简、优化后,转换到逻辑门级别的电路连线网表(也可以简称门级网表(Gate-level netlist))的过程,其是将电路的行为级描述转化成为门级表达的过程。
在逻辑综合过程中,可以预先设定有设计目标,设计目标例如可以包括:以功耗为最优先考虑因素进行逻辑综合、或者以电路面积为最优先考虑因素进行逻辑综合、或者按照为功耗预设的功耗权重和为电路面积预设的面积权重进行逻辑综合。
性能特征可以根据逻辑综合阶段的设计目标来确定,例如,与上述设计目标相应地,性能特征可以包括功耗特征和/或电路面积特征。通过这种方式,在逻辑综合时,可以按照这样的设计目标,基于与设计目标相适应的性能特征,在确定单元类别的过程中判断是否需要用当前单元更新代表单元,从而可以提高逻辑综合阶段的处理速度。
在逻辑综合的技术映射(例如将verilog设计的逻辑和功能映射到库单元和操作的组合上)步骤时,需要使用对应的库单元完成逻辑和功能的实现,因此,基于上述方式确定的单元类别,可以快速确定对应功能,并且根据优先功耗或优先面积等设计目标,迅速确定最优单元进行操作。
以优先考虑电路面积为例,若需要实现逻辑“a=b+c”,则需要在库文件的单元中找到对应的“+”功能的单元,此时,可以迅速通过“+”功能找到对应功能的代表单元,并且根据本申请的实施例的方法,该代表单元在分类时即是其相同功能下的面积最小的单元,可以直接选择该代表单元来实现上述“+”功能。此外,在本申请的实施例的方法中,也可以对相同功能的单元进行排序(将在下文中进行描述),也可以根据排序结果,快速找到该功能下的需要的单元。
作为示例,在设计目标包括按照为功耗预设的功耗权重和为电路面积预设的面积权重进行逻辑综合、性能特征包括功耗特征和电路面积特征的情况下,可以通过以下方式基于当前单元的性能特征,对当前单元与目标代表单元进行比较:基于功耗权重和面积权重,对当前单元和目标代表单元各自的功耗特征和电路面积特征进行加权,分别确定当前单元的性能水平和目标代表单元的性能水平;对当前单元的性能水平与目标代表单元的性能水平进行比较。
具体来说,在确定芯片的设计目标时可以考虑到功耗与电路面积的平衡,既期望功耗尽可能低,也期望电路面积尽可能小,以实现更好的电路性能。在此期望下,可以分别为功耗和电路面积预设相应的权重,在逻辑综合阶段,可以按照这样预设的权重来选择更优的单元实现相应的逻辑。而在比较当前单元和目标代表单元时,也可以考虑到该权重,将对于当前的设计目标而言具有最优的性能的单元作为代表单元,从而在逻辑综合阶段,可以直接在相应功能的单元类别下选择代表单元,即可选出最优的单元来实现相应的逻辑。
在代表单元的性能特征反映相应单元类别下的单元的性能最优水平的示例中,如图7所示,可以通过以下方式更新目标单元类别的代表单元:
在步骤S710,可以比较当前单元的性能水平和目标代表单元的性能水平。
这里,可以基于当前单元和目标代表单元的性能特征来比较二者的性能水平。例如,可以基于上面描述过的方法计算当前单元与目标代表单元各自的性能水平的值,以进行比较,以确定二者性能水平的关系。
在步骤S720,可以响应于当前单元的性能水平高于或等于目标代表单元的性能水平,用当前单元替换目标代表单元,作为目标单元类别的代表单元。
在该步骤中,在当前单元的性能水平高于或等于目标代表单元的性能水平的情况下,可以认为当前单元在性能方面相对于目标代表单元更有优势,可以反映该单元类别的最优性能,因此,可以将当前单元作为该单元类别的代表单元。
在步骤S730,可以响应于当前单元的性能水平低于目标代表单元的性能水平,保持将目标代表单元作为目标单元类别的代表单元。
在该步骤中,在当前单元的性能水平低于目标代表单元的性能水平的情况下,可以认为当前单元在性能方面不如目标代表单元有优势,目标代表单元更能够反映该单元类别的最优性能,因此,可以继续将目标代表单元作为该单元类别的代表单元。
例如,在性能特征为功耗特征的情况下,在步骤S520中,可以通过以下方式根据比较结果,更新目标单元类别的代表单元:响应于当前单元的电容小于或等于目标代表单元的电容,用当前单元替换目标代表单元,作为目标单元类别的代表单元;响应于当前单元的电容大于目标代表单元的电容,保持将目标代表单元作为目标单元类别的代表单元。尽管这里通过比较电容来确定单元的功耗,然而其不限于此,也可以通过单元的诸如电压或电流等的其他属性来计算单元功耗。
又例如,在性能特征为电路面积特征的情况下,在步骤S520中,可以通过以下方式根据比较结果,更新目标单元类别的代表单元:响应于当前单元的电路面积小于或等于目标代表单元的电路面积,用当前单元替换目标代表单元,作为目标单元类别的代表单元;响应于当前单元的电路面积大于目标代表单元的电路面积,保持将目标代表单元作为目标单元类别的代表单元。
通过上述方法,在实现确定单元的单元类别的基础上,还可以将具有高性能优势的单元作为单元类别中的代表单元,以便于为设计中的单元选择提供指导,例如可以选择具有最优性能的代表单元进行设计。
此外,根据本申请的实施例,对于同一份设计可能会获取多个库文件文件,即,待处理的库文件包括多个库文件,不同的库文件可能包括一些重复的单元,因此在当前单元的性能水平高于或等于目标代表单元的性能水平的情况下,目标代表单元可能是与当前单元相同的单元,因此可能也不需要进行替换。
具体来说,响应于当前单元的性能水平高于或等于目标代表单元的性能水平,信息关联方法还可以包括:响应于当前单元为首次读取,执行用当前单元替换目标代表单元的步骤;响应于当前单元为非首次读取,保持将目标代表单元作为目标单元类别的代表单元。
例如,在当前单元的性能水平高于或等于目标代表单元的性能水平的情况下,可以进一步判断当前单元是否是首次读取(first read)。若当前单元并非首次读取,则表明不需要更换目标代表单元;若目标代表单元是首次读取,表明需要更换代表单元。
此外,在上述步骤S520中,在功能特征包括输出引脚功能特征和组属性特征的示例中,还可以通过以下方式确定当前单元的功能特征与目标代表单元的功能特征匹配:将当前单元的输出引脚功能特征与目标代表单元的输出引脚功能特征进行第一比较;在第一比较的结果指示当前单元的输出引脚功能特征与目标代表单元的输出引脚功能特征相同的情况下,将当前单元的组属性特征与目标代表单元的组属性特征进行第二比较;在第二比较的结果指示当前单元的组属性特征与目标代表单元的组属性特征相同的情况下,确定当前单元的功能特征与目标代表单元的功能特征匹配。
具体来说,可以通过进行第一比较,确定当前单元的输出引脚功能特征与目标代表单元的输出引脚功能特征是否相同,在第一比较的结果指示二者相同的情况下可以继续执行第二比较,而在第一比较的结果指示二者不同的情况下,可以直接确定当前单元的功能特征与目标代表单元的功能特征不匹配。
如此,由于输出引脚功能对于单元的类别区分起到重要的作用,因此,通过先根据第一比较判断输出引脚功能特征是否相同,再根据第二比较判断组属性特征是否相同,可以先根据第一比较快速过滤掉功能特征不匹配的单元,之后再根据第二比较进行细化判断,从而可以提高功能特征匹配的速度和效率,尽可能以更少的比较过程完成单元之间的匹配。
此外,作为示例,输出引脚功能特征可以包括至少一个输出引脚的功能表达式,在此情况下,上述第一比较过程可以包括:在指定的输入信号下,分别针对当前单元的每个输出引脚的功能表达式与目标代表单元的每个输出引脚的功能表达式进行布尔运算;在当前单元的每个输出引脚的功能表达式的布尔运算结果分别与目标代表单元的相应输出引脚的功能表达式的布尔运算结果均一致的情况下,确定当前单元的输出引脚功能特征与目标代表单元的输出引脚功能特征相同。
这里,在当前单元的任一输出引脚的功能表达式的布尔运算结果与目标代表单元的相应输出引脚的功能表达式的布尔运算结果不一致的情况下,可以认为当前单元的输出引脚功能特征与目标代表单元的输出引脚功能特征不相同。
在上述示例中,通过布尔运算来确定是否等价,可以将输出引脚功能特征进行参数化,并且对其进行逻辑运算,以便于对两个单元的输出引脚功能特征进行比较。
在本申请的实施例的描述中,确定当前单元的单元类别例如可以是指但不限于:为当前单元指定对应的目标单元类别;指定当前单元为目标单元类别的目标代表单元;为当前单元指定对应的目标代表单元;将当前单元与目标代表单元存储在同一空间中;等,只要能够通过其确定当前单元的单元类别的任何直接或间接的方式均可以认为是确定了当前单元的单元类别。
在步骤S530,可以响应于当前单元的功能特征与库文件中的至少一个单元中的所有代表单元的功能特征均不匹配,将当前单元的单元类别确定为新增的单元类别,将当前单元作为新增的单元类别的代表单元,并且为新增的单元类别分配对应的存储空间。
在该步骤中,在当前单元与已存在的所有代表单元的功能特征均不匹配的情况下,表明当前单元与已有代表单元均不具有相同功能,无法归属于已有代表单元的单元类别下,即当前单元不属于已生成的单元类别,在此情况下,可以新增单元类别以及与新增的单元类别对应的代表单元(即,上述新增代表单元)。
如此,在下一次遇到具有该功能特征的单元时,本次新增的新增代表单元可以作为已生成的代表单元,可以将该单元与新增代表单元相匹配,并且将该单元的单元类别确定为本次新增的单元类别。
这里,由于所确定的每个代表单元均是在库文件中选取的单元,因此其保留了库文件中的单元的所有特性,具有信息完整性,并且在确定单元类别过程中不需要额外创建新的单元,节约了存储资源。
此外,在该步骤中,可以为每个代表单元分配一个存储空间,在确定整个库文件的单元的单元类别的过程中,与代表单元匹配的单元被存储至分配给相应代表单元的存储空间中。
通过上述步骤S510至步骤S530的过程,可以在遍历库文件中的各单元的过程中,基于功能特征确定代表单元和单元类别,并且将库文件中的各单元的单元类别确定为相应的单元类别,在实现按照功能确定单元的单元类别的同时,便于快速整理和划分单元类别,一般来说,仅遍历一次库文件即可确定有单元的单元类别,而无需进行多次遍历,不仅能够实现细致划分单元类别,也能够确保单元信息关联过程的快速、高效。
需要说明的是,在确定首个单元的单元类别时,由于不存在已存在的代表单元,可以认为当前单元的功能特征与已存在的所有代表单元的功能特征均不匹配,从而可以执行新增单元类别及新增代表单元的步骤。
作为示例,上述步骤S510至步骤S530的过程可以如图6所示,在从扩展名为lib的库文件中获取到各单元的单元信息后,可以将当前单元与已存在的代表单元(例如图6中的第一代表单元611和第二代表单元612)进行比较,具体地可以比较当前单元与代表单元的功能特征。在匹配成功的情况下,可以将当前单元的单元类别确定为相应的代表单元的单元类别,例如,第一单元621和第二单元622的单元类别已被确定为第一代表单元611下的单元类别,第三单元623的单元类别已被确定为第二代表单元612下的单元类别;在与所有代表单元均不匹配的情况下,可以基于当前单元的单元信息,生成新增代表单元(例如图6的新增代表单元613),并且可以将当前单元的单元类别确定为新增代表单元613下的单元类别。
在步骤S430,可以将每个单元的单元信息关联到相应单元类别的存储空间中。
在依次读取单元的过程中,若没有新的单元可供读取,则表明当前库文件中的所有单元均已经读取完毕,则可以结束单元类别的确定,可以将每个单元的单元信息关联到相应单元类别的存储空间中,以供后续查找使用。
通过上面描述的方法确定单元的单元类别,在对用户提供的设计进行操作(例如低功耗替换、扫描***等)时,能够快速匹配到具有相应功能的单元。例如,在需要替换相应功能的单元时,只需要找到相应功能的代表单元下的所有单元,均可用于替换,在需要扫描***时,也可以通过相应功能的代表单元找到对应的扫描代表单元和其下的所有扫描单元。与现有常见的单元分类相比,可以有效的减少处理文件的时间,更快捷的找到对应的扫描单元和/或更快捷的找到可替换单元,提高EDA程序运行的效率,同时可以给用户提供一些新的选择。此外,通过从库文件中选取单元作为代表单元,在无需创建新的单元的情况下,反映出对各单元类别的性能情况,在节约空间并且能够保留库文件的单元的特征完整性的同时,还能够为后续处理提供性能方面的指导。
此外,在上面的描述中选择一个代表单元作为相应单元类别的代表来反映性能情况,但是本申请的实施例不限于此,作为示例,还可以在此基础上对单元类别中的各单元的性能进行排序。
具体来说,根据本申请的示例性实施例的信息关联方法还可以包括:在更新目标单元类别的代表单元后,可以对目标单元类别中的除代表单元之外的其他单元进行性能排序。作为示例,性能排序可以是性能从小到大的排序,也可以是性能从大到小的排序,本申请对排序方式不作特别限制。通过这种方式,除了能够通过代表单元反映相应单元类别的性能情况外,还可以对单元类别中的其他单元的性能加以区分,从而便于在设计过程中按照性能选择单元。
上面以功能特征为例对确定单元类别的过程进行了描述,然而本申请的实施例不限于此,在一些实施例中,还可以结合单元的规格特征确定每个单元的单元类别。
作为示例,库文件中的每个单元的单元信息还可以包括单元的规格特征。规格特征可以表征与单元的规格相关的信息,规格特征可以包括引脚规格特征,例如可以包括但不限于引脚数量和/或引脚方向。
在该示例中,单元的单元信息可以包括单元的引脚信息,引脚信息可以包括引脚数量(pin number)、引脚方向(pin direction)等。具体来说,单元的引脚(pin)可以包括输入(input)引脚和输出(output)引脚,这里,引脚数量可以是输入引脚和输出引脚的数量总和。
可以根据每个引脚各自的属性信息来分别确定每个引脚的引脚方向(例如输入方向或输出方向),以扫描单元为例,其输入引脚的扫描属性可以为测试扫描的输入(例如表示为test_scan_in)或测试扫描的控制(例如表示为test_scan_enable),输入引脚可以不具有引脚功能,而其输出引脚的扫描属性可以为测试扫描的输出(例如表示为test_scan_q)或测试扫描的相反输出(例如表示为test_scan_qn),输出引脚可以具有引脚功能,因此,可以根据引脚的扫描属性和引脚功能来确定扫描单元的引脚方向。对于非扫描单元同理,可以根据引脚的扫描属性和引脚功能来确定非扫描单元的引脚方向。
在该示例中,可以通过以下方式确定每个单元的单元类别:响应于当前单元的功能特征和规格特征均与库文件中的代表单元中的目标代表单元的功能特征和规格特征匹配,执行将当前单元的单元类别确定为目标单元类别的步骤(例如上面所述的步骤S520);响应于代表单元中不存在与当前单元的功能特征和规格特征二者均匹配的代表单元,执行将当前单元的单元类别确定为新增的单元类别且将当前单元作为新增的单元类别的代表单元的步骤(例如上面所述的步骤S530)。
具体来说,在该示例中,可以从功能和规格两个维度确定单元的单元类别,可以将当前单元的功能特征(例如,上面所述的输出引脚功能特征和组属性特征)和规格特征(例如,引脚数量和/或引脚方向)分别与代表单元的相应特征进行比较。
在功能特征和规格特征均相同的情况下,可以认为当前单元和该代表单元的功能特征和规格特征相匹配,即该代表单元为已存在的代表单元中的目标代表单元,可以将当前单元的单元类别确定为目标代表单元对应的目标单元类别。
在功能特征和规格特征中的任意一种或多种特征不同的情况下,可以认为当前单元和该代表单元不匹配,例如,在功能特征包括输出引脚功能特征和组属性特征且规格特征包括引脚数量和引脚方向的情况下,当前单元与代表单元的输出引脚功能特征、组属性特征、引脚数量和引脚方向中的任意一者或多者不匹配,即认为当前单元与代表单元的特征不匹配,二者不属于同一单元类别。在不存在与当前单元的功能特征和规格特征二者均匹配的代表单元时,可以认为不存在与当前单元属于同一类别的代表单元,当前单元属于新增的单元类别,可以基于当前单元生成新增代表单元,并且将当前单元的单元类别确定为新增的单元类别。
在该示例中,可以从功能和规格两个维度确定单元的单元类别,使得单元类别的划分更细致,从而在后续设计使用中能够更准确定位到所需要的单元。
此外,可选地,在上述示例中,可以通过以下方式确定当前单元的功能特征和规格特征均与目标代表单元的功能特征和规格特征匹配:将当前单元的规格特征与目标代表单元的规格特征进行第一匹配;在第一匹配的结果指示当前单元的规格特征与目标代表单元的规格特征匹配的情况下,将当前单元的功能特征与目标代表单元的功能特征进行第二匹配;在第二匹配的结果指示当前单元的功能特征与目标代表单元的功能特征匹配的情况下,确定当前单元的功能特征和规格特征均与目标代表单元的功能特征和规格特征匹配。
具体来说,可以通过进行第一匹配,确定当前单元的规格特征与目标代表单元的规格特征是否匹配,在第一匹配的结果指示二者匹配的情况下可以继续执行第二匹配,而在第一匹配的结果指示二者不匹配的情况下,可以直接确定当前单元的功能特征和规格特征与目标代表单元的功能特征和规格特征不匹配。
这里,由于从规格维度对当前单元与代表单元进行比较可以有利于快速筛选出与当前单元规格相同的代表单元,因此,通过先对当前单元与代表单元的规格特征进行匹配判断,然后再对当前单元与代表单元的功能特征进行匹配判断,可以先快速从已存在的代表单元中查找到规格相同的代表单元,然后再进行具体的功能特征匹配判断,从而可以提高整体的匹配速度,节约确定单元类别的耗时。
作为示例,规格特征可以包括引脚数量和引脚方向,引脚数量可以为输入引脚数量与输出引脚数量之和,在此情况下,上述第一匹配的过程可以包括:确定当前单元的引脚数量与目标代表单元的引脚数量是否相同;在当前单元的引脚数量与目标代表单元的引脚数量相同的情况下,分别确定当前单元的每个引脚的引脚方向与目标代表单元的每个引脚的引脚方向;在当前单元的每个引脚的引脚方向分别与目标代表单元的相应引脚的引脚方向均一致的情况下,确定当前单元的规格特征与目标代表单元的规格特征匹配。
这里,在当前单元的引脚数量与当前代表单元的引脚数量不相同、或者当前单元的任一引脚的引脚方向与当前代表单元的相应引脚的引脚方向不一致的情况下,可以认为当前单元的规格特征与当前代表单元的规格特征不匹配。
在上述示例中,可以通过先确定引脚数量是否相同、再确定每个引脚的引脚方向是否相同的方式来执行第一匹配,由于引脚数量的比较更方便、快捷,因此在对引脚数量的初次比较中即可确定单元的规格特征不匹配,而在初次比较通过后,再进行对引脚方向的二次比较,如此,可以尽量减少比较引脚方向的次数,以提高第一匹配的速度。
此外,在确定上面描述的输出引脚功能特征或引脚规格特征时,可以先判断当前单元的各引脚的引脚类型,根据引脚类型对与确定单元类别相关类型的引脚特征执行上述步骤。
作为示例,可以通过以下方式确定输出引脚功能特征和引脚规格特征:确定当前单元的每个引脚的引脚类型,其中,引脚类型为电源地引脚类型或非电源地引脚类型;从当前单元的单元信息中提取与非电源地引脚类型的引脚对应的功能特征和规格特征,作为输出引脚功能特征和引脚规格特征。
这里,电源地(Power Ground,PG)引脚类型的引脚可以包括电源引脚和地引脚,用于连接电路板上的电源和地线,以起到提供电源和地线的功能。在集成电路设计中,电源地引脚类型的引脚主要用于提供电源和地线的连接,以确保正常的电路运行和稳定的功耗。
非电源地引脚类型的引脚是指单元的引脚中除了电源地引脚之外的其他引脚,由于电源地引脚类型的引脚对单元的功能没有影响,因此,为了加速判断,可以排除且不读取单元的电源地引脚类型的引脚信息,仅读取非电源地引脚类型的引脚信息即可。
具体来说,由于库文件来源的不同,一些库文件中定义了电源地引脚类型的引脚,一些库文件中省略了电源地引脚类型的引脚的定义,因此,若在读取相关特征时不排除电源地引脚类型的引脚,由于引脚数量不同,对于不同库文件中定义的相同功能的单元,可能会被归类在不同功能的单元类别中,而根据上述方式,可以排除电源地引脚类型的引脚,如此,需要判定引脚功能、引脚功能和引脚方向的引脚数量也随之减少,从而能够加速判断。
特别有利的是,如果设计人员使用的是简化的库文件,本申请的上述实施例也能够适用,具体来说,由于EDA软件对于繁长的库文件的读取时间较长,因此在进行一些简单操作、简单设计时,部分设计人员往往会选择将库文件进行简化操作,例如在不影响基础功能设计的情况下,可以删除电源地引脚类型的引脚的相关属性、内部功耗(internalpower)、时序(timing)属性等,由于根据本申请的上述实施例仅对单元的功能进行了区分,而没有针对电源地引脚类型的引脚、内部功耗、时序属性等进行操作,因此也可以适用于这样简化的库文件,使得根据本申请的实施例的信息关联方法的普适性更强。
下面将基于上述示例的方法描述确定库文件中的任意一个单元的单元类别的若干示例过程,这里,假设功能特征包括输出引脚功能特征和组属性特征且规格特征包括引脚数量和引脚方向,可以按照引脚数量、引脚方向、输出引脚功能特征和组属性特征的顺序对当前单元与代表单元进行匹配判断。
在一示例过程中,可以针对库文件中的任意一个当前单元,从已存在的所有代表单元中查找与当前单元具有相同引脚数量的代表单元作为第一候选代表单元,第一候选代表单元可以为一个或多个。在所有代表单元中未查找到与当前单元具有相同引脚数量的代表单元的情况下,可以认为当前单元与已存在的代表单元中的所有代表单元的功能特征或规格特征均不匹配,执行生成新增代表单元且将当前单元的单元类别确定为新增的单元类别的步骤。
在查找到第一候选代表单元的情况下,可以从第一候选代表单元中查找与当前单元具有相同引脚方向的第一候选代表单元作为第二候选代表单元,第二候选代表单元可以为一个或多个。在所有第二候选代表单元中未查找到与当前单元具有相同引脚方向的第二候选代表单元的情况下,可以认为不存在与当前单元的功能特征和规格特征二者均匹配的代表单元,执行生成新增代表单元且将当前单元的单元类别确定为新增的单元类别的步骤。
可以逐一比较当前单元与每个第二候选代表单元的输出引脚功能特征和组属性特征,在当前单元与第二候选代表单元的输出引脚功能特征和组属性特征均相同的情况下,可以将该第二候选代表单元作为目标代表单元,将当前单元的单元类别确定为该目标代表单元的单元类别。在所有第二候选代表单元中不存在与当前单元的输出引脚功能特征和组属性特征二者均匹配的第二候选代表单元的情况下,可以认为代表单元中不存在与当前单元的功能特征和规格特征二者均匹配的代表单元,执行生成新增代表单元且将当前单元的单元类别确定为新增的单元类别的步骤。
然而,本申请的实施例不限于上述示例过程。在另一示例过程中,可以针对库文件中的任意一个当前单元与已存在的任一代表单元,执行第一预设条件、第二预设条件、第三预设条件和第四预设条件的判断,以判断当前单元是否与该代表单元的功能和规格相匹配。
第一预设条件可以为具有相同的引脚数量,第二预设条件可以为每个引脚的引脚方向相同,第三预设条件可以为每个输出引脚的输出引脚功能特征相同,第四预设条件可以为组属性特征相同。上述四个预设条件的判断顺序可以是任意的,例如可以按照第一预设条件、第二预设条件、第三预设条件和第四预设条件依次进行判断。
在同时满足上述四个预设条件的情况下,表明当前单元与该代表单元具有相同功能,则将当前单元的单元类别确定为该代表单元的单元类别,并且将当前单元被存储至分配给相应代表单元的存储空间中。
在按照任意顺序执行上述四个预设条件判断的过程中,若有任一条件不满足,表明当前单元与该代表单元不具有相同功能,无法归属于该代表单元的单元类别下。若当前单元与已生成的所有代表单元均不具有相同功能,则可以根据当前单元的功能特征和规格特征生成新增代表单元,并且将当前单元的单元类别确定为该新增代表单元的单元类别下。
上面描述了确定库文件中的单元的单元类别的示例过程,根据本申请的实施例,基于对单元类别的确定结果,还可以检测库文件中是否存在数据错误。
例如,如图8所示,在确定每个单元的单元类别后,信息关联方法还可以包括以下步骤:
在步骤S810,可以确定已存在的代表单元中的每个代表单元为扫描单元或非扫描单元。
在该步骤中,可以对每个代表单元进行分类,判断每个代表单元是扫描单元还是非扫描单元。
作为示例,在功能特征包括组属性特征的情况下,可以通过以下方式确定每个代表单元为扫描单元或非扫描单元:可以获取代表单元的组属性特征;可以响应于组属性特征中包括测试单元组属性,确定代表单元为扫描单元;可以响应于组属性特征中不包括测试单元组属性,确定代表单元为非扫描单元。
具体来说,在功能特征包括组属性特征的情况下,可以检测每个代表单元的组属性特征中是否存在测试单元组属性(例如可以表示为test_cell group),可以例如根据《Liberty用户指南和参考手册》代表来检测。这里,测试单元组属性可以为与扫描相关的组属性。若存在测试单元组属性,则该代表单元为扫描单元;若不存在测试单元组属性,则该代表单元为非扫描单元,从而可以将代表单元中的扫描单元和非扫描单元区分出来。
在步骤S820,可以建立已存在的代表单元中的具有相同功能特征的扫描单元和非扫描单元的关联关系。
在该步骤中,在区分出所有代表单元中的扫描单元和非扫描单元的情况下,可以将代表单元中的具有相同功能的扫描单元和非扫描单元进行连接,建立关联关系。这里的“连接”可以理解为创建并保存具有相同功能的扫描单元和非扫描单元两者之间的指向与被指向的关联关系。
在建立关联关系的过程中,在进行扫描单元和非扫描单元之间的功能特征是否相同的判定时,可以针对每个扫描单元,将该扫描单元与各非扫描单元进行功能特征判定,以建立关联关系,但是其不限于此,也可以针对每个非扫描单元,将该非扫描单元与各扫描单元进行功能特征判定,以建立关联关系。
作为示例,功能特征可以包括至少一个输出引脚的功能表达式,在此情况下,步骤S820可以包括:针对任一扫描单元和任一非扫描单元,将该扫描单元的扫描控制端置零,并且在指定的输入信号下,将该扫描单元的每个输出引脚的功能表达式与该非扫描单元的每个输出引脚的功能表达式进行布尔运算;在该扫描单元的每个输出引脚的功能表达式的布尔运算结果分别与该非扫描单元的相应输出引脚的功能表达式的布尔运算结果均一致的情况下,确定该扫描单元和该非扫描单元具有相同功能特征;建立该扫描单元和该非扫描单元之间的关联关系。
具体来说,针对任一扫描单元和任一非扫描单元,若在二者SE(Scan-En)端等于0的情况下,在任意指定的输入信号下,二者的输出引脚的功能表达式的布尔运算结果等价,则可以认为该扫描单元与该非扫描单元的功能特征一致,具有相同功能,可以建立二者之间的关联关系。若在该输入信号下,二者的输出引脚的功能表达式的布尔运算结果不一致,或者说不等价,则可以认为该扫描单元与该非扫描单元的功能特征不一致,二者功能不同,不存在关联关系。
作为示例,如图9所示,可以对具有相同功能特征的扫描单元和非扫描单元建立关联关系,并且可以在各自的存储空间中创建并保存两者之间的指向与被指向的关联关系信息。如此,可以将建立有关联关系的两个代表单元的类别下的单元对应起来。
在步骤S830,可以响应于已存在的代表单元中存在未建立关联关系的单元,确定库文件中存在数据错误。
在该步骤中,在一个代表单元未能与其他代表单元建立关联关系的情况下,例如,代表单元为扫描单元(或非扫描单元),但是不存在与其具有相同功能特征的非扫描单元(或扫描单元),可以认为当前的库文件存在数据错误。
具体来说,在EDA软件的实际实现中,扫描单元必须要存在对应的非扫描单元,而扫描单元如果没有对应的非扫描单元,则可以提示错误(error);而一些非扫描单元(例如一些时序单元)如果没有对应的扫描单元,则可以发出告警(warning)。
通过上述步骤,可以在代表单元中区分出扫描代表单元和非扫描代表单元,并且可以将相同功能的扫描代表单元与非扫描代表单元进行连接,如此,在需要执行扫描***时,也能进行快速替换,提高设计效率。
下面将参照图10描述根据本申请的示例性实施例的信息关联方法对单元进行信息关联的全流程的一个示例。
在步骤S1010,可以获取到库文件并且对库文件进行解析,例如可以通过EDA主程序提供的接口来获取库文件,然后根据《Liberty用户指南和参考手册》标准进行解析。
在步骤S1020,可以判断库文件中的单元是否均已被读取。若所有单元均已被读取,则可以执行后面将描述的步骤S10120。若存在未被读取的单元,在步骤S1030,可以读取未被读取的单元中的一个单元的单元信息。
在步骤S1040,可以根据读取到的当前单元的引脚对应的数量,查找在已存在的代表单元中是否存在具有相同数量引脚的代表单元。若存在,则继续执行步骤S1050;若不存在,则执行步骤S1080。
在步骤S1050,可以判断当前单元与具有相同数量引脚的代表单元的每个引脚的引脚方向和输出引脚功能特征是否相同。若相同,则继续执行步骤S1060;若不相同,则执行步骤S1080。
在步骤S1060,可以判断当前单元与具有相同引脚方向及输出引脚功能特征的代表单元的组属性是否相同。若相同,则继续执行步骤S1070;若不相同,则执行步骤S1080。
在步骤S1070,可以将在步骤S1030读取到的当前单元存储于在步骤S1060中确定的具有相同组属性的代表单元的单元类别下,即,找到前文所述的目标代表单元,将当前单元的单元类别确定为目标代表单元对应的单元类别,并且在该步骤中,可以返回执行步骤S1020,以继续对其他单元的单元类别进行确定。
在步骤S1080,可以将当前读取到的单元(在步骤S1030读取到的单元)作为新的代表单元,并且可以将当前单元存储于该新的代表单元的单元类别下,即将当前单元的单元类别确定为新增代表单元对应的新增单元类别,并且在该步骤中,可以返回执行步骤S1020,以继续对其他单元的单元类别进行确定。
在步骤S1090,可以将在步骤S1030中读取到的当前单元与在步骤S1070中确定的目标代表单元进行比较,判断是否需要更新代表单元。若需要用当前单元更新代表单元,则可以执行步骤S10100;若不需要,则可以执行步骤S10110,将步骤S1030中读取到的当前单元的单元类别确定为目标单元类别,并且可以将步骤S1030中读取到的当前单元存储于与目标代表单元对应的目标单元类别下。
在步骤S10100,可以将步骤S1030中读取到的当前单元作为目标单元类别的新的代表单元,并且返回执行步骤S1020。
在步骤S10110,可以将步骤S1030中读取到的当前单元的单元类别确定为目标单元类别,并且返回执行步骤S1020。
在步骤S10120,可以确定每个代表单元是扫描的代表单元还是非扫描的代表单元,例如可以根据《Liberty用户指南和参考手册》标准来判断。
在步骤S10130,可以对每个扫描的代表单元和非扫描的代表单元的输出引脚功能特征进行匹配,例如可以利用布尔运算进行判断。若一个扫描的代表单元和一个非扫描的代表单元的输出引脚功能特征相同,则可以执行步骤S10140;若不相同或没有未进行匹配的扫描的代表单元,则可以结束流程。
在步骤S10140,可以将步骤S10130中匹配的扫描的代表单元和非扫描的代表单元进行连接,并且返回执行步骤S10130,以进行下一次匹配。
通过上述方法,可以对读取到的每个单元,先计算该单元的引脚数量(输入引脚的数量、输出引脚的数量等),再读取该单元的功能(包括但不局限于输出引脚功能特征、诸如触发器的下一个状态属性、清除属性等的组属性),若这些信息均符合判断条件,即表明单元具有一定的代表性,可以将该单元作为相应的单元类别下的代表单元,以为后续设计中在单元类别下选取单元提供指导。
如此,通过基于代表单元确定单元的单元类别,可以将具有相同功能特征和/或规格特征的单元的单元类别确定为相应的代表单元的单元类别,这样,不仅确定了单元的单元类别,还可以清晰地分析出在用户提供的标准数字电路库文件中存在多少相同功能而不同规格的单元,在想进行单元替换等操作时可以快速得到在同一单元类别下的相同功能但具有相同或不同性能的所有单元,以便于设计者选择。
图11是根据一示例性实施例示出的一种基于代表单元的信息关联装置的框图。参照图11,信息关联装置应用于集成电路电子设计自动化软件,该信息关联装置可以包括获取单元100、确定单元200和存储单元300。
获取单元100被配置为获取待处理的库文件,其中,库文件中包含用于构成集成电路的至少一个单元的单元信息,其中,单元信息包含单元的功能特征和性能特征,性能特征表征单元在实现相应的功能时的性能水平。
确定单元200被配置为基于库文件中的每个单元的单元信息,通过以下方式确定每个单元的单元类别:响应于当前单元的功能特征与至少一个单元中的代表单元中的目标代表单元的功能特征匹配,将当前单元的单元类别确定为目标代表单元对应的目标单元类别,并且基于当前单元的性能特征,对当前单元与目标代表单元进行比较,根据比较结果,更新目标单元类别的代表单元,其中,每个单元类别对应有一个代表单元,代表单元的性能特征反映相应单元类别下的单元的代表性能水平,响应于当前单元的功能特征与至少一个单元中的所有代表单元的功能特征均不匹配,将当前单元的单元类别确定为新增的单元类别,将当前单元作为新增的单元类别的代表单元,并且为新增的单元类别分配对应的存储空间,其中,每个单元类别对应有一个存储空间。
存储单元300被配置为将每个单元的单元信息关联到相应单元类别的存储空间中。
作为示例,代表单元的性能特征反映相应单元类别下的单元的最优性能水平,其中,确定单元200还被配置为:响应于当前单元的性能水平高于或等于目标代表单元的性能水平,用当前单元替换目标代表单元,作为目标单元类别的代表单元;响应于当前单元的性能水平低于目标代表单元的性能水平,保持将目标代表单元作为目标单元类别的代表单元。
作为示例,待处理的库文件包括多个库文件,其中,响应于当前单元的性能水平高于或等于目标代表单元的性能水平,确定单元200还被配置为:响应于当前单元为首次读取,执行用当前单元替换目标代表单元的步骤;响应于当前单元为非首次读取,保持将目标代表单元作为目标单元类别的代表单元。
作为示例,确定单元200还被配置为通过以下方式确定性能特征:根据集成电路电子设计中的逻辑综合阶段的设计目标,确定性能特征,其中,设计目标包括:以功耗为最优先考虑因素进行逻辑综合、或者以电路面积为最优先考虑因素进行逻辑综合、或者按照为功耗预设的功耗权重和为电路面积预设的面积权重进行逻辑综合;性能特征包括功耗特征和/或电路面积特征。
作为示例,设计目标包括按照为功耗预设的功耗权重和为电路面积预设的面积权重进行逻辑综合,性能特征包括功耗特征和电路面积特征,其中,确定单元200还被配置为通过以下方式基于当前单元的性能特征,对当前单元与目标代表单元进行比较:基于功耗权重和面积权重,对当前单元和目标代表单元各自的功耗特征和电路面积特征进行加权,分别确定当前单元的性能水平和目标代表单元的性能水平;对当前单元的性能水平与目标代表单元的性能水平进行比较。
作为示例,性能特征为功耗特征或电路面积特征,确定单元200还被配置为:响应于当前单元的电容或电路面积小于或等于目标代表单元的电容或电路面积,用当前单元替换目标代表单元,作为目标单元类别的代表单元;响应于当前单元的电容或电路面积大于目标代表单元的电容或电路面积,保持将目标代表单元作为目标单元类别的代表单元。
作为示例,功能特征包括输出引脚功能特征和/或组属性特征,其中,当前单元的功能特征与目标代表单元的功能特征匹配是指:当前单元的输出引脚功能特征与目标代表单元的输出引脚功能特征相同;和/或,当前单元的功能特征与目标代表单元的功能特征匹配是指:当前单元的输出引脚功能特征与目标代表单元的输出引脚功能特征相同,并且当前单元的组属性特征与目标代表单元的组属性特征相同。
作为示例,单元信息还包含单元的规格特征,功能特征包括输出引脚功能特征,规格特征包括引脚规格特征,其中,确定单元200还被配置为通过以下方式确定输出引脚功能特征和引脚规格特征:确定当前单元的每个引脚的引脚类型,其中,引脚类型为电源地引脚类型或非电源地引脚类型;从当前单元的单元信息中提取与非电源地引脚类型的引脚对应的功能特征和规格特征,作为输出引脚功能特征和引脚规格特征。
作为示例,功能特征包括输出引脚功能特征和组属性特征,其中,确定单元200还被配置为通过以下方式确定当前单元的功能特征与目标代表单元的功能特征匹配:将当前单元的输出引脚功能特征与目标代表单元的输出引脚功能特征进行第一比较;在第一比较的结果指示当前单元的输出引脚功能特征与目标代表单元的输出引脚功能特征相同的情况下,将当前单元的组属性特征与目标代表单元的组属性特征进行第二比较;在第二比较的结果指示当前单元的组属性特征与目标代表单元的组属性特征相同的情况下,确定当前单元的功能特征与目标代表单元的功能特征匹配。
作为示例,输出引脚功能特征包括至少一个输出引脚的功能表达式,其中,确定单元200还被配置为通过以下方式进行第一比较,包括:在指定的输入信号下,分别针对当前单元的每个输出引脚的功能表达式与目标代表单元的每个输出引脚的功能表达式进行布尔运算;在当前单元的每个输出引脚的功能表达式的布尔运算结果分别与目标代表单元的相应输出引脚的功能表达式的布尔运算结果均一致的情况下,确定当前单元的输出引脚功能特征与目标代表单元的输出引脚功能特征相同。
作为示例,单元信息还包括单元的规格特征,其中,确定单元200还被配置为通过以下方式确定每个单元的单元类别:响应于当前单元的功能特征和规格特征均与至少一个单元中的代表单元中的目标代表单元的功能特征和规格特征匹配,执行将当前单元的单元类别确定为目标单元类别的步骤;响应于至少一个单元中的代表单元中不存在与当前单元的功能特征和规格特征二者均匹配的代表单元,执行将当前单元的单元类别确定为新增的单元类别且将当前单元作为新增的单元类别的代表单元的步骤。
作为示例,确定单元200还被配置为通过以下方式确定当前单元的功能特征和规格特征均与目标代表单元的功能特征和规格特征匹配:将当前单元的规格特征与目标代表单元的规格特征进行第一匹配;在第一匹配的结果指示当前单元的规格特征与目标代表单元的规格特征匹配的情况下,将当前单元的功能特征与目标代表单元的功能特征进行第二匹配;在第二匹配的结果指示当前单元的功能特征与目标代表单元的功能特征匹配的情况下,确定当前单元的功能特征和规格特征均与目标代表单元的功能特征和规格特征匹配。
作为示例,规格特征包括引脚数量和引脚方向,引脚数量为输入引脚数量与输出引脚数量之和,其中,确定单元200还被配置为通过以下方式进行第一匹配:确定当前单元的引脚数量与目标代表单元的引脚数量是否相同;在当前单元的引脚数量与目标代表单元的引脚数量相同的情况下,分别确定当前单元的每个引脚的引脚方向与目标代表单元的每个引脚的引脚方向;在当前单元的每个引脚的引脚方向分别与目标代表单元的相应引脚的引脚方向均一致的情况下,确定当前单元的规格特征与目标代表单元的规格特征匹配。
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图12是根据一示例性实施例示出的一种电子设备的框图。如图12所示,电子设备10包括处理器101和用于存储处理器可执行指令的存储器102。这里,处理器可执行指令在被处理器运行时,促使处理器执行如上述示例性实施例所述的基于代表单元的信息关联方法。
作为示例,电子设备10并非必须是单个的设备,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。电子设备10还可以是集成控制***或***管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的服务器。
在电子设备10中,处理器101可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器***、微控制器或微处理器。作为示例而非限制,处理器101还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
处理器101可运行存储在存储器102中的指令或代码,其中,存储器102还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,网络接口装置可采用任何已知的传输协议。
存储器102可与处理器101集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储器102可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库***可使用的其他存储装置。存储器102和处理器101可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器101能够读取存储在存储器102中的文件。
此外,电子设备10还可以包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。电子设备10的所有组件可经由总线和/或网络而彼此连接。
在示例性实施例中,还可提供一种计算机可读存储介质,当计算机可读存储介质中的指令由服务器的处理器执行时,使得服务器能够执行如上述示例性实施例所述的基于代表单元的信息关联方法。计算机可读存储介质例如可以是包括指令的存储器,可选地,计算机可读存储介质可以是:只读存储器(ROM)、随机存取存储器(RAM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态硬盘(SSD)、卡式存储器(诸如,多媒体卡、安全数字(SD)卡或极速数字(XD)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机***上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的实施例的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求指出。
此外,还需要说明的是,尽管上面参照具体附图描述了各步骤的若干示例,但是应理解的是,本申请的实施方式不限于示例中给出的组合,不同附图中出现的步骤可以相结合,在此不作出穷举。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (16)
1.一种基于代表单元的信息关联方法,其特征在于,所述信息关联方法应用于集成电路电子设计自动化软件,其中,所述信息关联方法包括:
获取待处理的库文件,其中,所述库文件中包含用于构成集成电路的至少一个单元的单元信息,其中,所述单元信息包含单元的功能特征和性能特征,所述性能特征表征单元在实现相应的功能时的性能水平;
基于所述库文件中的每个单元的单元信息,通过以下方式确定每个单元的单元类别:
响应于当前单元的功能特征与所述至少一个单元中的代表单元中的目标代表单元的功能特征匹配,将当前单元的单元类别确定为所述目标代表单元对应的目标单元类别,并且基于当前单元的性能特征,对当前单元与所述目标代表单元进行比较,根据比较结果,更新所述目标单元类别的代表单元,其中,每个单元类别对应有一个代表单元,所述代表单元的性能特征反映相应单元类别下的单元的代表性的性能水平,响应于当前单元的功能特征与所述至少一个单元中的所有代表单元的功能特征均不匹配,将当前单元的单元类别确定为新增的单元类别,将当前单元作为所述新增的单元类别的代表单元,并且为所述新增的单元类别分配对应的存储空间,其中,每个单元类别对应有一个存储空间;以及,
将每个单元的单元信息关联到相应单元类别的存储空间中。
2.根据权利要求1所述的信息关联方法,其特征在于,所述代表单元的性能特征反映相应单元类别下的单元的最优性能水平,其中,所述基于当前单元的性能特征,对当前单元与所述目标代表单元进行比较,根据比较结果,更新所述目标单元类别的代表单元,包括:
响应于当前单元的性能水平高于或等于所述目标代表单元的性能水平,用当前单元替换所述目标代表单元,作为所述目标单元类别的代表单元;
响应于当前单元的性能水平低于所述目标代表单元的性能水平,保持将所述目标代表单元作为所述目标单元类别的代表单元。
3.根据权利要求2所述的信息关联方法,其特征在于,所述待处理的库文件包括多个库文件,
其中,响应于当前单元的性能水平高于或等于所述目标代表单元的性能水平,所述信息关联方法还包括:
响应于当前单元为首次读取,执行用当前单元替换所述目标代表单元的步骤;
响应于当前单元为非首次读取,保持将所述目标代表单元作为所述目标单元类别的代表单元。
4.根据权利要求1所述的信息关联方法,其特征在于,通过以下方式确定所述性能特征:
根据集成电路电子设计中的逻辑综合阶段的设计目标,确定所述性能特征,
其中,所述设计目标包括:以功耗为最优先考虑因素进行逻辑综合、或者以电路面积为最优先考虑因素进行逻辑综合、或者按照为功耗预设的功耗权重和为电路面积预设的面积权重进行逻辑综合;所述性能特征包括功耗特征和/或电路面积特征。
5.根据权利要求4所述的信息关联方法,其特征在于,所述设计目标包括按照为功耗预设的功耗权重和为电路面积预设的面积权重进行逻辑综合,所述性能特征包括功耗特征和电路面积特征,其中,通过以下方式基于当前单元的性能特征,对当前单元与所述目标代表单元进行比较:
基于所述功耗权重和所述面积权重,对当前单元和所述目标代表单元各自的功耗特征和电路面积特征进行加权,分别确定当前单元的性能水平和所述目标代表单元的性能水平;
对当前单元的性能水平与所述目标代表单元的性能水平进行比较。
6.根据权利要求1所述的信息关联方法,其特征在于,所述性能特征为功耗特征或电路面积特征,其中,所述基于当前单元的性能特征,对当前单元与所述目标代表单元进行比较,根据比较结果,更新所述目标单元类别的代表单元,包括:
响应于当前单元的电容或电路面积小于或等于所述目标代表单元的电容或电路面积,用当前单元替换所述目标代表单元,作为所述目标单元类别的代表单元;
响应于当前单元的电容或电路面积大于所述目标代表单元的电容或电路面积,保持将所述目标代表单元作为所述目标单元类别的代表单元。
7.根据权利要求1所述的信息关联方法,其特征在于,所述功能特征包括输出引脚功能特征和/或组属性特征,
其中,当前单元的功能特征与所述目标代表单元的功能特征匹配是指:当前单元的输出引脚功能特征与所述目标代表单元的输出引脚功能特征相同;和/或,当前单元的功能特征与所述目标代表单元的功能特征匹配是指:当前单元的输出引脚功能特征与所述目标代表单元的输出引脚功能特征相同,并且当前单元的组属性特征与所述目标代表单元的组属性特征相同。
8.根据权利要求1所述的信息关联方法,其特征在于,所述单元信息还包含单元的规格特征,所述功能特征包括输出引脚功能特征,所述规格特征包括引脚规格特征,其中,通过以下方式确定所述输出引脚功能特征和所述引脚规格特征:
确定当前单元的每个引脚的引脚类型,其中,所述引脚类型为电源地引脚类型或非电源地引脚类型;
从当前单元的单元信息中提取与所述非电源地引脚类型的引脚对应的功能特征和规格特征,作为所述输出引脚功能特征和所述引脚规格特征。
9.根据权利要求1所述的信息关联方法,其特征在于,所述功能特征包括输出引脚功能特征和组属性特征,其中,通过以下方式确定当前单元的功能特征与所述目标代表单元的功能特征匹配:
将当前单元的输出引脚功能特征与所述目标代表单元的输出引脚功能特征进行第一比较;
在所述第一比较的结果指示当前单元的输出引脚功能特征与所述目标代表单元的输出引脚功能特征相同的情况下,将当前单元的组属性特征与所述目标代表单元的组属性特征进行第二比较;
在所述第二比较的结果指示当前单元的组属性特征与所述目标代表单元的组属性特征相同的情况下,确定当前单元的功能特征与所述目标代表单元的功能特征匹配。
10.根据权利要求9所述的信息关联方法,其特征在于,所述输出引脚功能特征包括至少一个输出引脚的功能表达式,其中,所述将当前单元的输出引脚功能特征与所述目标代表单元的输出引脚功能特征进行第一比较,包括:
在指定的输入信号下,分别针对当前单元的每个输出引脚的功能表达式与所述目标代表单元的每个输出引脚的功能表达式进行布尔运算;
在当前单元的每个输出引脚的功能表达式的布尔运算结果分别与所述目标代表单元的相应输出引脚的功能表达式的布尔运算结果均一致的情况下,确定当前单元的输出引脚功能特征与所述目标代表单元的输出引脚功能特征相同。
11.根据权利要求1所述的信息关联方法,其特征在于,所述单元信息还包括单元的规格特征,其中,还通过以下方式确定每个单元的单元类别:
响应于当前单元的功能特征和规格特征均与所述至少一个单元中的代表单元中的目标代表单元的功能特征和规格特征匹配,执行将当前单元的单元类别确定为所述目标单元类别的步骤;
响应于所述至少一个单元中的代表单元中不存在与当前单元的功能特征和规格特征二者均匹配的代表单元,执行将当前单元的单元类别确定为新增的单元类别且将当前单元作为所述新增的单元类别的代表单元的步骤。
12.根据权利要求11所述的信息关联方法,其特征在于,通过以下方式确定当前单元的功能特征和规格特征均与所述目标代表单元的功能特征和规格特征匹配:
将当前单元的规格特征与所述目标代表单元的规格特征进行第一匹配;
在所述第一匹配的结果指示当前单元的规格特征与所述目标代表单元的规格特征匹配的情况下,将当前单元的功能特征与所述目标代表单元的功能特征进行第二匹配;
在所述第二匹配的结果指示当前单元的功能特征与所述目标代表单元的功能特征匹配的情况下,确定当前单元的功能特征和规格特征均与所述目标代表单元的功能特征和规格特征匹配。
13.根据权利要求12所述的信息关联方法,其特征在于,所述规格特征包括引脚数量和引脚方向,所述引脚数量为输入引脚数量与输出引脚数量之和,其中,所述将当前单元的规格特征与所述目标代表单元的规格特征进行第一匹配,包括:
确定当前单元的引脚数量与所述目标代表单元的引脚数量是否相同;
在当前单元的引脚数量与所述目标代表单元的引脚数量相同的情况下,分别确定当前单元的每个引脚的引脚方向与所述目标代表单元的每个引脚的引脚方向;
在当前单元的每个引脚的引脚方向分别与所述目标代表单元的相应引脚的引脚方向均一致的情况下,确定当前单元的规格特征与所述目标代表单元的规格特征匹配。
14.一种基于代表单元的信息关联装置,其特征在于,所述信息关联装置应用于集成电路电子设计自动化软件,其中,所述信息关联装置包括:
获取单元,被配置为获取待处理的库文件,其中,所述库文件中包含用于构成集成电路的至少一个单元的单元信息,其中,所述单元信息包含单元的功能特征和性能特征,所述性能特征表征单元在实现相应的功能时的性能水平;
确定单元,被配置为基于所述库文件中的每个单元的单元信息,通过以下方式确定每个单元的单元类别:
响应于当前单元的功能特征与所述至少一个单元中的代表单元中的目标代表单元的功能特征匹配,将当前单元的单元类别确定为所述目标代表单元对应的目标单元类别,并且基于当前单元的性能特征,对当前单元与所述目标代表单元进行比较,根据比较结果,更新所述目标单元类别的代表单元,其中,每个单元类别对应有一个代表单元,所述代表单元的性能特征反映相应单元类别下的单元的代表性的性能水平,响应于当前单元的功能特征与所述至少一个单元中的所有代表单元的功能特征均不匹配,将当前单元的单元类别确定为新增的单元类别,将当前单元作为所述新增的单元类别的代表单元,并且为所述新增的单元类别分配对应的存储空间,其中,每个单元类别对应有一个存储空间;以及,
存储单元,被配置为将每个单元的单元信息关联到相应单元类别的存储空间中。
15.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器,
其中,所述处理器可执行指令在被所述处理器运行时,促使所述处理器执行根据权利要求1至13中任一项所述的基于代表单元的信息关联方法。
16.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行根据权利要求1至13中任一项所述的基于代表单元的信息关联方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311362365.4A CN117574821A (zh) | 2023-10-19 | 2023-10-19 | 基于代表单元的信息关联方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311362365.4A CN117574821A (zh) | 2023-10-19 | 2023-10-19 | 基于代表单元的信息关联方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117574821A true CN117574821A (zh) | 2024-02-20 |
Family
ID=89863261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311362365.4A Pending CN117574821A (zh) | 2023-10-19 | 2023-10-19 | 基于代表单元的信息关联方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117574821A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1885295A (zh) * | 2005-06-21 | 2006-12-27 | 辉达公司 | 使用逻辑单元建置集成电路 |
EP1736905A2 (en) * | 2005-06-21 | 2006-12-27 | Nvidia Corporation | Building integrated circuits using logical units |
US20130047130A1 (en) * | 2011-08-15 | 2013-02-21 | Ibm Corporation | Early noise detection and noise aware routing in circuit design |
WO2017117607A1 (en) * | 2015-12-31 | 2017-07-06 | Esi Group | Augmentation of virtual models |
CN112800704A (zh) * | 2021-04-06 | 2021-05-14 | 深圳英集芯科技股份有限公司 | 基于功能buffer的芯片后端改版方法、装置及计算机设备 |
CN116821437A (zh) * | 2023-08-30 | 2023-09-29 | 英诺达(成都)电子科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
-
2023
- 2023-10-19 CN CN202311362365.4A patent/CN117574821A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1885295A (zh) * | 2005-06-21 | 2006-12-27 | 辉达公司 | 使用逻辑单元建置集成电路 |
EP1736905A2 (en) * | 2005-06-21 | 2006-12-27 | Nvidia Corporation | Building integrated circuits using logical units |
US20130047130A1 (en) * | 2011-08-15 | 2013-02-21 | Ibm Corporation | Early noise detection and noise aware routing in circuit design |
WO2017117607A1 (en) * | 2015-12-31 | 2017-07-06 | Esi Group | Augmentation of virtual models |
CN112800704A (zh) * | 2021-04-06 | 2021-05-14 | 深圳英集芯科技股份有限公司 | 基于功能buffer的芯片后端改版方法、装置及计算机设备 |
CN116821437A (zh) * | 2023-08-30 | 2023-09-29 | 英诺达(成都)电子科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
李向阳等: "一种低功耗POK单元库的设计方法", 集成电路应用, no. 04, 27 April 2018 (2018-04-27) * |
王琦: "帮助客户解决芯片设计过程中的问题,与客户共同成长", 电子产品世界, 4 September 2022 (2022-09-04) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102112988B (zh) | 用于针对生产工作流的芯片设计中的单元完整性、改变和起点的独立评估的方法和设备 | |
US5956256A (en) | Method and apparatus for optimizing a circuit design having multi-paths therein | |
US8019586B2 (en) | Hole query for functional coverage analysis | |
US6295636B1 (en) | RTL analysis for improved logic synthesis | |
US7685545B2 (en) | Methods and devices for independent evaluation of cell integrity, changes and origin in chip design for production workflow | |
US6205572B1 (en) | Buffering tree analysis in mapped design | |
US5980092A (en) | Method and apparatus for optimizing a gated clock structure using a standard optimization tool | |
US20030125920A1 (en) | LSI design verification apparatus, LSI design verification method, and LSI design verification program | |
US5727187A (en) | Method of using logical names in post-synthesis electronic design automation systems | |
US6289491B1 (en) | Netlist analysis tool by degree of conformity | |
CN117250480B (zh) | 组合逻辑电路的环路检测方法、装置、设备及存储介质 | |
CN115587554B (zh) | 组合逻辑标准单元的atpg库模型生成*** | |
US20080263480A1 (en) | Language and templates for use in the design of semiconductor products | |
CN115952754B (zh) | 用于生成标准单元目标显示结构的数据处理*** | |
US5940604A (en) | Method and apparatus for monitoring the performance of a circuit optimization tool | |
US8245166B2 (en) | Optimal correlated array abstraction | |
CN117113897B (zh) | 基于标准单元的信息关联方法、装置、设备及存储介质 | |
CN115952755B (zh) | 同步器标准单元的atpg库模型生成*** | |
CN117574821A (zh) | 基于代表单元的信息关联方法、装置、设备及存储介质 | |
CN116467975A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US11829889B2 (en) | Processing method and device for data of well site test based on knowledge graph | |
US6854102B1 (en) | System and method of acquiring delay, setup and hold values for integrated circuit cells | |
CN108108441A (zh) | 一种数据库表结构分析方法和*** | |
US20050172245A1 (en) | System and method for providing interface compatibility between two hierarchical collections of IC design objects | |
CN117907812B (zh) | 电路检测方法及装置、电子设备、存储介质、程序产品 |
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 |