CN116542190A - 用户设计综合方法、装置、设备、介质及产品 - Google Patents
用户设计综合方法、装置、设备、介质及产品 Download PDFInfo
- Publication number
- CN116542190A CN116542190A CN202310645073.5A CN202310645073A CN116542190A CN 116542190 A CN116542190 A CN 116542190A CN 202310645073 A CN202310645073 A CN 202310645073A CN 116542190 A CN116542190 A CN 116542190A
- Authority
- CN
- China
- Prior art keywords
- user design
- process library
- output pin
- delay time
- instance
- 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.)
- Granted
Links
- 238000013461 design Methods 0.000 title claims abstract description 248
- 238000000034 method Methods 0.000 title claims abstract description 204
- 230000008569 process Effects 0.000 claims abstract description 158
- 230000015572 biosynthetic process Effects 0.000 claims abstract description 48
- 238000003786 synthesis reaction Methods 0.000 claims abstract description 48
- 230000010354 integration Effects 0.000 claims abstract description 35
- 230000005540 biological transmission Effects 0.000 claims abstract description 9
- 238000006243 chemical reaction Methods 0.000 claims description 41
- 230000014509 gene expression Effects 0.000 claims description 26
- 230000007704 transition Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 18
- 238000004458 analytical method Methods 0.000 claims description 7
- 230000002194 synthesizing effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000630 rising effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000002950 deficient Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000001308 synthesis method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000010501 iterative synthesis reaction Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction 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/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
Abstract
本申请公开了一种用户设计综合方法、装置、设备、介质及产品,涉及电子设计自动化技术领域。用户设计综合方法包括:获取目标寄存器传输级设计文件和逻辑综合工具支持的标准工艺库集合;解析目标寄存器传输级设计文件,得到多个用户设计模块和每个用户设计模块对应的设计约束;针对第一用户设计模块,从标准工艺库集合中确定满足第一用户设计模块的设计约束的第一标准工艺库,其中,第一用户设计模块为多个用户设计模块中的任一用户设计模块;利用逻辑综合工具和第一标准工艺库对第一用户设计模块进行综合。根据本申请实施例,能够提高工艺库调用效率。
Description
技术领域
本申请属于电子设计自动化技术领域,尤其涉及一种用户设计综合方法、装置、设备、介质及产品。
背景技术
集成电路电子设计自动化(Electronics Design Automation,EDA)工具包括实现工具和验证工具。实现工具用于对用户设计进行综合,得到门级网表(netlist),验证工具用于对用户设计进行验证,检验其正确性。
相关技术中,通常使用开源的逻辑综合工具作为实现工具。然而逻辑综合工具不能为用户设计的不同设计模块匹配不同的工艺库,造成工艺库调用速度较慢,工艺库调用效率较低。
发明内容
本申请实施例提供一种用户设计综合方法、装置、设备、介质及产品,能够解决工艺库调用效率低的问题。
第一方面,本申请实施例提供一种用户设计综合方法,包括:
获取目标寄存器传输级(register-transfer level,RTL)设计文件和逻辑综合工具支持的标准工艺库集合;
解析目标RTL设计文件,得到多个用户设计模块和每个用户设计模块对应的设计约束;
针对第一用户设计模块,从标准工艺库集合中确定满足第一用户设计模块的设计约束的第一标准工艺库,其中,第一用户设计模块为多个用户设计模块中的任一用户设计模块;
利用逻辑综合工具和第一标准工艺库对第一用户设计模块进行综合。
第二方面,本申请实施例提供一种用户设计综合装置,包括:
获取模块,用于获取目标RTL设计文件和逻辑综合工具支持的标准工艺库集合;
解析模块,用于解析目标RTL设计文件,得到多个用户设计模块和每个用户设计模块对应的设计约束;
确定模块,用于针对第一用户设计模块,从标准工艺库集合中确定满足第一用户设计模块的设计约束的第一标准工艺库,其中,第一用户设计模块为多个用户设计模块中的任一用户设计模块;
综合模块,用于利用逻辑综合工具和第一标准工艺库对第一用户设计模块进行综合。
第三方面,本申请实施例提供一种电子设备,该电子设备包括:处理器以及存储有计算机程序指令的存储器;处理器执行计算机程序指令时实现第一方面的用户设计综合方法。
第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现第一方面的用户设计综合方法。
第五方面,本申请实施例提供了一种计算机程序产品,计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备执行如第一方面的用户设计综合方法。
在本申请实施例中,通过获取目标RTL设计文件和逻辑综合工具支持的标准工艺库集合;解析目标RTL设计文件,得到多个用户设计模块和每个用户设计模块对应的设计约束;针对第一用户设计模块,从标准工艺库集合中确定满足第一用户设计模块的设计约束的第一标准工艺库,其中,第一用户设计模块为多个用户设计模块中的任一用户设计模块;利用逻辑综合工具和第一标准工艺库对第一用户设计模块进行综合。由于按照用户设计模块对应的设计约束确定满足其设计约束的工艺库,即确定出了与用户设计模块匹配的工艺库,使得与用户设计模块匹配的工艺库契合于用户设计模块,能够提高工艺库调用效率和综合结果准确性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的用户设计综合方法的流程示意图;
图2是本申请实施例提供的用户设计综合的架构示意图;
图3是本申请实施例提供的用户设计综合装置的结构示意图;
图4是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本申请,而不是限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的用户设计综合方法、装置、设备、介质及产品进行详细地说明。
图1是本申请实施例提供的用户设计综合方法的流程示意图。如图1所示,用户设计综合方法可以包括:
步骤101:获取目标RTL设计文件和逻辑综合工具支持的标准工艺库集合。
在本申请实施例的一些可能实现中,本申请实施例中的逻辑综合工具可以为ABC工具,即ABC(Berkeley),其中,ABC工具是加州大学伯克利分校开发的一款逻辑综合工具,具有简单易用的特点。然而,本申请并不限于此,本领域技术人员可以根据实际情况确定具体使用的逻辑综合工具,例如还可以是OSFPGA Yosys(Clifford Wolf)工具、ALSO(NingboUniv)工具、QuteRTL工具等。
在本申请实施例的一些可能实现中,标准工艺库集合是指Liberty标准下的若干不同电压温度等参数条件的工艺库的集合,Liberty标准属于行业标准,因此,Liberty标准下的工艺库具有普遍的适用性。
步骤102:解析目标RTL设计文件,得到多个用户设计模块和每个用户设计模块对应的设计约束。
本申请实施例并不对解析目标RTL设计文件,得到多个用户设计模块和每个用户设计模块对应的设计约束所采用的方式进行限定,任何可用的方式均可以应用于本申请实施例中。例如,利用用户设计解析器(DesignParser)进行解析。
步骤103:针对第一用户设计模块,从标准工艺库集合中确定满足第一用户设计模块的设计约束的第一标准工艺库,其中,第一用户设计模块为多个用户设计模块中的任一用户设计模块。
在本申请实施例的一些可能实现中,在步骤103中,针对第一用户设计模块,可以遍历标准工艺库集合,依次判断每一个标准工艺库是否满足该第一用户设计模块的设计约束,如果满足,则将标准工艺库集合中满足第一用户设计模块的设计约束的标准工艺库,确定为第一标准工艺库。
在本申请实施例的一些可能实现中,当标准工艺库集合中不存在满足第一用户设计模块的设计约束的标准工艺库时,可以进行报错处理。例如,显示错误提示信息,该错误提示信息用于提示用户标准工艺库集合中不存在满足设计约束的标准工艺库,该设计约束存在错误。
在本申请实施例的一些可能实现中,本申请实施例中的设计约束包括但不限于:低功耗设计约束和/或用户自定义设计约束。其中,低功耗设计约束包括但不限于电压约束和温度约束,用户自定义约束包括用户自定义约束命令。用户自定义约束命令包括但不限于设置目标标准工艺库命令(set_target_library)和设置电压命令(set_voltage)。
示例性地,某一用户设计模块的低功耗设计约束为:电压约束为0.8V,温度约束为128℃,则需要遍历标准工艺库集合中所有标准工艺库,根据每个标准工艺库中的电压参数和温度参数,判断其是否满足该用户设计模块的电压0.8V和温度128℃的约束,将满足该电压约束和温度约束的所有标准工艺库作为该用户设计模块对应的第一标准工艺库。
在本申请实施例的一些可能实现中,对于用户自定义设计约束,可以通过设置目标标准工艺库命令(set_target_library)或设置电压命令(set_voltage)从标准工艺库集合中选择标准工艺库,将所选择的标准工艺库作为满足该用户自定义设计约束的第一标准工艺库。
步骤104:利用逻辑综合工具和第一标准工艺库对第一用户设计模块进行综合。
在本申请实施例中,通过获取目标RTL设计文件和逻辑综合工具支持的标准工艺库集合;解析目标RTL设计文件,得到多个用户设计模块和每个用户设计模块对应的设计约束;针对第一用户设计模块,从标准工艺库集合中确定满足第一用户设计模块的设计约束的第一标准工艺库,其中,第一用户设计模块为多个用户设计模块中的任一用户设计模块;利用逻辑综合工具和第一标准工艺库对第一用户设计模块进行综合。由于按照用户设计模块对应的设计约束确定满足其设计约束的工艺库,即确定出了与用户设计模块匹配的工艺库,使得与用户设计模块匹配的工艺库契合于用户设计模块,能够提高工艺库调用效率和综合结果准确性。
在本申请实施例的一些可能实现中,步骤104可以包括:对第一标准工艺库进行格式转化,得到第一标准工艺库对应的第一固有工艺库,其中,第一固有工艺库具有逻辑综合工具支持的固有格式;利用逻辑综合工具和第一固有工艺库对第一用户设计模块进行综合。
其中,某逻辑综合工具的固有格式是为该工具专属定制化的格式。例如,对于ABC工具而言,固有格式是指后缀名为“.genlib”的文件格式,该文件格式与标准工艺库后缀名为“.lib”的文件格式相比,具有更加轻量化的特点。
在本申请实施例中,通过将标准工艺库转化为逻辑综合工具所支持的更轻量型的固有格式的固有工艺库,能够大大提高逻辑综合工具对工艺库的调用效率,从而提高逻辑综合工具的综合效率。
在本申请实施例的一些可能实现中,在对第一标准工艺库进行格式转化之前,可以根据库单元的特性对第一标准工艺库中的所有库单元进行分类,主要分为低功耗单元(LowPowerCells)、触发器单元(FFCells)、锁存器单元(LatchCells)、宏单元(MacroCells)、组合逻辑单元(LogicCells)和未知单元(UnknownCells)。然后,统一所有的度量单位,主要包括电压单位:伏(V)、电容单位:皮法(pF)和时间单位:纳秒(ns)。
在本申请实施例的一些可能实现中,对第一标准工艺库进行格式转化,得到第一标准工艺库对应的第一固有工艺库,可以包括:针对第一标准工艺库的组合逻辑单元进行合法性检查;在组合逻辑单元通过合法性检查的情况下,对组合逻辑单元的功能表达式进行格式转换,得到第一功能表达式,其中,第一功能表达式具有逻辑综合工具支持的格式;计算组合逻辑单元的第一延迟时间,其中,组合逻辑单元包括多个输入管脚和至少一个输出管脚,第一延迟时间包括每个输出管脚相对于每个输入管脚的第二延迟时间;根据第一功能表达式和第一延迟时间,生成第一固有工艺库。
在本申请实施例的一些可能实现中,合法性检查包括:功能表达式包含的变量是否与输入管脚对应、功能表达式的格式是否合法、功能表达式的运算符是否合法等。
在本申请实施例的一些可能实现中,对组合逻辑单元的功能表达式进行格式转换可以包括:对表达式的逻辑运算符进行符号标准化。例如,逻辑非使用符号‘!’、逻辑与使用符号‘*’、逻辑或使用符号‘+’、逻辑异或使用符号‘^’、括号使用符号‘(’和‘)’。并利用以下公式(1)简化逻辑非到输出管脚。
(1)
在本申请实施例中,通过合法性检查,能够避免逻辑综合工具在调用有瑕疵工艺库时的无效资源花销;在功能表达式转换、计算延迟时间等操作之后,生成固有格式文件,能够进一步提高逻辑综合工具的综合效率。
在本申请实施例的一些可能实现中,在组合逻辑单元未通过合法性检查的情况下,可以进行报错处理。例如:显示错误提示信息,该错误提示信息用于提示组合逻辑单元不合法,工艺库可能存在错误等等,以使用户对错误进行处理。
在本申请实施例的一些可能实现中,计算组合逻辑单元的第一延迟时间,可以包括:针对第一输入管脚和第一输出管脚,根据第一输入管脚的信号转换时间和第一输出管脚的负载电容信息,确定组合逻辑单元的每个实例相对于第一输入管脚和第一输出管脚的候选延迟时间,其中,第一输入管脚为多个输入管脚中的任一输入管脚,第一输出管脚为至少一个输出管脚中的任一输出管脚;根据每个实例相对于第一输入管脚和第一输出管脚的候选延迟时间,确定第一输出管脚相对于第一输入管脚的第二延迟时间。
其中,本申请实施例中的信号转换时间包括上升转换时间或下降转换时间。其中,上升转换时间可以理解为输入管脚的“信号”波形中上升沿对应的时间,下降转换时间可以理解为输入管脚的“信号”波形中下降沿对应的时间。
在本申请实施例的一些可能实现中,根据第一输入管脚的信号转换时间和第一输出管脚的负载电容信息,确定组合逻辑单元的每个实例相对于第一输入管脚和第一输出管脚的候选延迟时间,可以包括:获取延迟查找表;在不存在第一实例对应的第一输入管脚的信号转换时间和第一输出管脚的负载电容信息的情况下,查询延迟查找表中每一行每一列对应的第三延迟时间,比较每一行每一列对应的第三延迟时间,将第三延迟时间中的最大值,确定为第一实例相对于第一输入管脚和第一输出管脚的候选延迟时间,其中,第一实例为组合逻辑单元的任一实例;在存在第一实例对应的第一输入管脚的信号转换时间和第一输出管脚的负载电容信息的情况下,将延迟查找表中与第一输入管脚的信号转换时间和第一输出管脚的负载电容信息分别对应的行和列对应的第三延迟时间,确定为第一实例相对于第一输入管脚和第一输出管脚的候选延迟时间。
在本申请实施例的一些可能实现中,延迟查找表中预先确定了不同信号转换时间和不同负载电容信息与不同第三延迟时间之间的对应关系。其中,延迟查找表中的同一行中的各个第三延迟时间对应于相同信号转换时间阈值,不同行中的各个第三延迟时间对应于不同信号转换时间阈值;同一列中的各个第三延迟时间对应于相同负载电容信息阈值,不同列中的各个第三延迟时间对应于不同负载电容信息阈值。
在本申请实施例的一些可能实现中,针对第一实例,在将延迟查找表中与第一输入管脚的信号转换时间和第一输出管脚的负载电容信息分别对应的行和列对应的第三延迟时间,确定为第一实例相对于第一输入管脚和第一输出管脚的候选延迟时间时,可以根据第一输入管脚的信号转换时间,确定延迟查找表的行数;根据第一输出管脚的负载电容信息,确定延迟查找表的列数;将延迟查找表中所确定的行数和列数所对应的第三延迟时间作为第一实例相对于第一输入管脚和第一输出管脚的候选延迟时间。
在本申请实施例的一些可能实现中,在根据第一输入管脚的信号转换时间,确定延迟查找表的行数;根据第一输出管脚的负载电容信息,确定延迟查找表的列数时,可以将第一输入管脚的信号转换时间与延迟查找表中的各个信号转换时间阈值进行比较,根据比较结果,确定相应的行数;将第一输出管脚的负载电容信息与延迟查找表中的各个负载电容信息阈值进行比较,根据比较结果,确定相应的列数。
示例性地,本申请实施例提供的延迟查找表如表1所示。
表1
示例性地,对于组合逻辑单元的某一实例,不存在该实例对应的第一输入管脚的信号转换时间和第一输出管脚的负载电容信息,则将上述表1中的最大值“1.35368”作为该实例相对于第一输入管脚和第一输出管脚的候选延迟时间。
在本申请实施例的一些可能实现中,在仅存在第一实例对应的第一输入管脚的信号转换时间而不存在第一输出管脚的负载电容信息的情况下,查询延迟查找表中与该信号转换时间对应的行对应的第三延迟时间,将与该信号转换时间对应的行对应的第三延迟时间中的最大值,确定为第一实例相对于第一输入管脚和第一输出管脚的候选延迟时间。
示例性地,对于组合逻辑单元的某一实例,该实例对应的第一输入管脚的信号转换时间小于或等于0.008,不存在第一输出管脚的负载电容信息,则将上述表1中与0.008对应的行中的最大值“1.25966”作为该实例相对于第一输入管脚和第一输出管脚的候选延迟时间。
在本申请实施例的一些可能实现中,在仅存在第一实例对应的第一输出管脚的负载电容信息而不存在第一输入管脚的信号转换时间的情况下,查询延迟查找表中与该负载电容信息对应的列对应的第三延迟时间,将与该负载电容信息对应的列对应的第三延迟时间中的最大值,确定为第一实例相对于第一输入管脚和第一输出管脚的候选延迟时间。
示例性地,对于组合逻辑单元的某一实例,该实例对应的第一输入管脚的负载电容大于0.1而小于0.15,不存在第一输入管脚的信号转换时间,则将上述表1中与0.15对应的列中的最大值“0.813347”作为该实例相对于第一输入管脚和第一输出管脚的候选延迟时间。
再示例性地,对于组合逻辑单元的某一实例,该实例对应的第一输入管脚的信号转换时间小于或等于0.008,第一输出管脚的负载电容大于0.01而小于0.06,则将上述表1中与0.008对应的行和与0.06对应的列相交的单元格中的值“0.395553”作为该实例相对于第一输入管脚和第一输出管脚的候选延迟时间。
在本申请实施例中,通过在无法获取信号转换时间和负载电容信息的情况下,直接使用延迟查找表中的最大值作为候选延迟时间,能够为管脚延迟提供一定的冗余空间,避免出错。
在本申请实施例的一些可能实现中,根据第一输入管脚的信号转换时间和第一输出管脚的负载电容信息,确定组合逻辑单元的每个实例相对于第一输入管脚和第一输出管脚的候选延迟时间,可以包括:根据第一输入管脚的信号转换时间和第一输出管脚的负载电容信息,确定第二实例相对于第一输入管脚和第一输出管脚分别对应多个延迟查找表的第四延迟时间,其中,第二实例为组合逻辑单元的任一实例;根据第二实例相对于第一输入管脚和第一输出管脚分别对应多个延迟查找表的第四延迟时间,确定第二实例相对于第一输入管脚和第一输出管脚的候选延迟时间。
其中,根据第一输入管脚的信号转换时间和第一输出管脚的负载电容信息,确定第二实例相对于第一输入管脚和第一输出管脚对应每个延迟查找表的第四延迟时间过程可以参考上述确定第一实例相对于第一输入管脚和第一输出管脚的候选延迟时间的描述,本申请实施例在此不对其进行赘述。
在本申请实施例中,在提供了多个延迟查找表的情况下,每个实例都可以在多个延迟查找表中确定出多个第四延迟时间,然后,根据多个第四延迟时间来进一步确定候选延迟时间,提高了输出管脚相对于输入管脚的延迟时间的可靠性和适用性,避免了单点故障。
在本申请实施例的一些可能实现中,在根据第二实例相对于第一输入管脚和第一输出管脚分别对应多个延迟查找表的第四延迟时间,确定第二实例相对于第一输入管脚和第一输出管脚的候选延迟时间时,可以将第二实例相对于第一输入管脚和第一输出管脚分别对应多个延迟查找表的第四延迟时间进行加权平均,得到第二实例相对于第一输入管脚和第一输出管脚的候选延迟时间;第二实例相对于第一输入管脚和第一输出管脚分别对应每个延迟查找表的第四延迟时间的权重可由本领域技术人员根据实际情况来确定,以增加方案的可靠性和适用性。为了节约资源、简化计算,可使第二实例相对于第一输入管脚和第一输出管脚对应每个延迟查找表的第四延迟时间的权重均相同,得到算术平均值作为第二实例相对于第一输入管脚和第一输出管脚的候选延迟时间。
示例性地,假设存在5个延迟查找表,对于组合逻辑单元的某一实例,针对第一输入管脚和第一输出管脚,该实例对应5个延迟查找表的第四延迟时间分别为:0.395553、0.345464、0.354653、0.365467和0.387685。则该实例相对于第一输入管脚和第一输出管脚的候选延迟时间为:(0.395553+0.345464+0.354653+0.365467+0.387685)/5=0.369764。
在本申请实施例的一些可能实现中,针对第一输入管脚和第一输出管脚,在根据每个实例相对于第一输入管脚和第一输出管脚的候选延迟时间,确定第一输出管脚相对于第一输入管脚的第二延迟时间时,可以将所有实例相对于第一输入管脚和第一输出管脚的候选延迟时间进行加权平均,得到第一输出管脚相对于第一输入管脚的第二延迟时间;每个实例相对于第一输入管脚和第一输出管脚的候选延迟时间的权重可由本领域技术人员根据实际情况来确定,以增加方案的可靠性和适用性;为了节约资源、简化计算,可使每个实例相对于第一输入管脚和第一输出管脚的候选延迟时间的权重均相同,得到算术平均值作为第一输出管脚相对于第一输入管脚的第二延迟时间。
示例性地,假设组合逻辑单元的第一输出管脚的时间延迟由组合逻辑单元的第一输入管脚引起。组合逻辑单元存在10个实例,对应第一输入管脚和第一输出管脚的3个实例的候选延迟时间为0.395553,对应第一输入管脚和第一输出管脚的7个候选延迟时间为1.35368,则第一输出管脚相对于第一输入管脚的第二延迟时间=(0.395553*3+1.35368*7)/10=1.0662419。
下面以包括两个输入管脚A、B以及一个输出管脚O的单元C1为例,对确定输出管脚相对于输入管脚的延迟时间进行说明。
示例性地,标准工艺库中延迟查找表的定义示例如下:
lu_table_template(delay_template_7x7) { //维度为7x7的延迟查找表
variable_1 : input_net_transition; //信号转换时间
variable_2 : total_output_net_capacitance; //负载电容信息
index_1 ("1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0,1006.0"); //7个预设信号转换时间阈值坐标
index_2 ("1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0,1006.0"); //7个负载电容信息阈值坐标
}
Cell C1{ //单元C1
pin(A) { //输入管脚A
direction : input;
input_signal_level : RAIL_VDD;
capacitance : 0.00289594;
rise_capacitance : 0.00288999;
fall_capacitance : 0.00289594;
}
pin(B) { //输入管脚B
direction : input;
input_signal_level : RAIL_VDD;
capacitance : 0.00286482;
rise_capacitance : 0.00285174;
fall_capacitance : 0.00286482;
}
pin(O) { //输出管脚O
direction : output;
output_signal_level : RAIL_VDD;
capacitance : 0;
rise_capacitance : 0;
fall_capacitance : 0;
max_capacitance : 0.262575;
function : "(A+B)"; //功能表达式
timing() {
related_pin : "A"; //O由A引起变化时,在延迟查找表cell_rise中确定A的候选延迟时间
timing_sense : positive_unate; //输入信号变化与输出变化一致,即A从0到1,O也从0到1
cell_rise(delay_template_7x7) { //延迟查找表cell_rise
index_1 ("0.008, 0.04, 0.08, 0.12, 0.16, 0.224, 0.28"); //7个预设信号转换时间阈值
index_2 ("0.01, 0.06, 0.1, 0.15, 0.2, 0.25, 0.3"); //7个负载电容信息阈值
values ( \
"0.205832, 0.395553, 0.539816, 0.718983, 0.89916, 1.08116,1.25966", \
"0.217523, 0.407235, 0.55108, 0.730718, 0.910632, 1.09138,1.27213", \
"0.232146, 0.421821, 0.565704, 0.744915, 0.926005, 1.10546,1.28545", \
"0.246031, 0.435738, 0.579743, 0.759023, 0.939342, 1.11919,1.2995", \
"0.259703, 0.449411, 0.593432, 0.772697, 0.953001, 1.13286,1.31306", \
"0.281384, 0.471057, 0.61493, 0.793864, 0.974785, 1.15193,1.33496", \
"0.300407, 0.490111, 0.634026, 0.813347, 0.992418, 1.17338,1.35368");
} //定义7x7的延迟查找表,并利用variable_1确定延迟查找表的行数(variable_1的数值对应于index_1中的第M个数值,则确定行数为M),利用variable_2确定延迟查找表的列数(variable_2的数值对应于index_2中的第N个数值,则确定列数为N)
…
}
timing() {
related_pin : "A";
timing_sense : negative_unate; //输入信号变化与输出变化相反,即A从0到1,O从1到0
cell_rise(delay_template_7x7) {
index_1 ("0.008, 0.04, 0.08, 0.12, 0.16, 0.224, 0.28");
index_2 ("0.01, 0.06, 0.1, 0.15, 0.2, 0.25, 0.3");
values ( …);
}
…
}
timing() {
related_pin : "A";
timing_sense : non_unate; //不关心信号变化是否一致
cell_rise(delay_template_7x7) {
index_1 ("0.008, 0.04, 0.08, 0.12, 0.16, 0.224, 0.28");
index_2 ("0.01, 0.06, 0.1, 0.15, 0.2, 0.25, 0.3");
values ( …);
}
…
}
}
当输出管脚O的延迟时间由输入管脚A的变化引起时,针对单元C1的某一实例,假设不存在该实例对应的输入管脚A的信号转换时间和输出管脚O的负载电容信息,则将上述定义的延迟查找表cell_rise中的最大值“1.35368”作为该实例相对于输入管脚A和输出管脚O的候选延迟时间;假设该实例对应的输入管脚A的信号转换时间小于或等于0.008,不存在输出管脚O的负载电容信息,则将上述定义的延迟查找表cell_rise中与index_1为0.008对应的行中的最大值“1.25966” 作为该实例相对于输入管脚A和输出管脚O的候选延迟时间;假设该实例对应的输入管脚A的信号转换时间小于或等于0.008,输出管脚O的负载电容大于0.01而小于0.06,则将上述定义的延迟查找表cell_rise中与index_1为0.008对应的行和与index_2为0.06对应的列相交的值“0.395553” 作为该实例相对于输入管脚A和输出管脚O的候选延迟时间。
假设上述单元C1存在10个实例,对应输入管脚A和输出管脚O的3个实例的候选延迟时间为0.395553,对应输入管脚A和输出管脚O的另外7个候选延迟时间为1.35368,则输出管脚O相对于该输入管脚A的第二延迟时间=(0.395553*3+1.35368*7)/10=1.0662419。
在本申请实施例的一些可能实现中,本申请实施例提供的用户设计综合方法还可以包括:根据综合结果,更新目标寄存器传输级设计文件中管脚信息。
其中,管脚信息包括但不限于:上升/下降转换时间(rise/fall transitiontime)、负载电容(load capacitance)等信息。
在本申请实施例的一些可能实现中,可以根据更新后的目标寄存器传输级设计文件,重新利用逻辑综合工具进行综合。
在本申请实施例中,首次综合时,很多组合逻辑单元可能没有对应的管脚信息,在确定管脚的延迟时间时,直接使用了延迟查找表中的最大值,以避免出错。但全部使用最大值,会导致设计的总体延迟偏高,性能下降;而综合完成后,会自动生成管脚信息,因此,可以将生成的管脚信息更新到设计文件中,重新综合,迭代多次,从而能够得到更精确的结果。
下面结合图2以逻辑综合工具为ABC工具为例对本申请实施例提供的用户设计综合方法进行说明。图2是本申请实施例提供的用户设计综合的架构示意图。本申请实施例提供的用户设计综合的架构包括:标准工艺库解析器(LibParser)201、用户设计解析器(DesignParser)202、数据库(Database)203、工艺库生成器(LibAbcGenertor)204、综合器(Synthesizer)205和ABC工具206。
其中,LibParser用于解析标准工艺库,将解析得到的数据存储到Database中。DesignParser用于解析用户设计(即RTL设计文件),包括输入网表、时钟约束、低功耗约束等,并将解析得到的数据存储到Database中。LibAbcGenertor用于生成ABC工具所需格式的genlib工艺库(genlib工艺库具有ABC工具支持的固有格式),并将生成的genlib工艺库存储到Database中。Synthesizer用于从Database获取用户设计对应的解析结果和genlib工艺库,利用ABC工具进行综合。
在本申请实施例的一些可能实现中,为了节约计算资源,可以利用逻辑综合工具进行单次综合。单次综合过程如下:
LibParser解析标准工艺库集合,根据库单元的特性对标准工艺库中的所有库单元进行分类。
DesignParser解析用户设计,得到多个用户设计模块和每个用户设计模块对应的设计约束。根据每个用户设计模块对应的设计约束,获取每个模块对应的标准工艺库。
LibAbcGenertor针对分类为组合逻辑单元的标准工艺库,构建genlib工艺库。
Synthesizer调用genlib工艺库和逻辑综合工具完成综合,并根据综合结果,更新信号转换时间、负载电容等信息。
在本申请实施例的一些可能实现中,为了得到更精确的结果,可以利用ABC工具进行多次迭代综合。多次迭代综合过程如下:
LibParser解析标准工艺库集合,根据库单元的特性对标准工艺库中的所有库单元进行分类。
DesignParser解析用户设计,得到多个用户设计模块和每个用户设计模块对应的设计约束。根据每个用户设计模块对应的设计约束,获取每个模块对应的标准工艺库。
LibAbcGenertor针对分类为组合逻辑单元的标准工艺库,构建genlib工艺库。
Synthesizer调用genlib工艺库和ABC工具完成综合,并根据综合结果,更新信号转换时间、负载电容等信息;继续执行Synthesizer调用genlib工艺库和ABC工具完成综合的步骤,直至迭代次数达到设置的迭代次数。
本申请实施例在此并不对LibParser解析标准工艺库集合、DesignParser解析用户设计、LibAbcGenertor构建genlib工艺库以及Synthesizer调用genlib工艺库和ABC工具综合的过程进行赘述,具体可参考上文中相关的描述。
本申请实施例还提供一种用户设计综合装置,如图3所示。图3是本申请实施例提供的用户设计综合装置的结构示意图,该用户设计综合装置300可以包括:
获取模块301,用于获取目标RTL设计文件和逻辑综合工具支持的标准工艺库集合;
解析模块302,用于解析目标RTL设计文件,得到多个用户设计模块和每个用户设计模块对应的设计约束;
确定模块303,用于针对第一用户设计模块,从标准工艺库集合中确定满足第一用户设计模块的设计约束的第一标准工艺库,其中,第一用户设计模块为多个用户设计模块中的任一用户设计模块;
综合模块304,用于利用逻辑综合工具和第一标准工艺库对第一用户设计模块进行综合。
在本申请实施例中,通过获取目标RTL设计文件和逻辑综合工具支持的标准工艺库集合;解析目标RTL设计文件,得到多个用户设计模块和每个用户设计模块对应的设计约束;针对第一用户设计模块,从标准工艺库集合中确定满足第一用户设计模块的设计约束的第一标准工艺库,其中,第一用户设计模块为多个用户设计模块中的任一用户设计模块;利用逻辑综合工具和第一标准工艺库对第一用户设计模块进行综合。由于按照用户设计模块对应的设计约束确定满足其设计约束的工艺库,即确定出了与用户设计模块匹配的工艺库,使得与用户设计模块匹配的工艺库契合于用户设计模块,能够提高工艺库调用效率和综合结果准确性。
在本申请实施例的一些可能实现中,综合模块304包括:
格式转化子模块,用于对第一标准工艺库进行格式转化,得到第一标准工艺库对应的第一固有工艺库,其中,第一固有工艺库具有逻辑综合工具支持的固有格式;
综合子模块,用于利用逻辑综合工具和第一固有工艺库对第一用户设计模块进行综合。
在本申请实施例中,通过将标准工艺库转化为逻辑综合工具所支持的更轻量型的固有格式的固有工艺库,能够大大提高逻辑综合工具对工艺库的调用效率,从而提高逻辑综合工具的综合效率。
在本申请实施例的一些可能实现中,格式转化子模块包括:
合法性检查单元,用于针对第一标准工艺库的组合逻辑单元进行合法性检查;
格式转换单元,用于在组合逻辑单元通过合法性检查的情况下,对组合逻辑单元的功能表达式进行格式转换,得到第一功能表达式,其中,第一功能表达式具有逻辑综合工具支持的格式;
计算单元,用于计算组合逻辑单元的第一延迟时间,其中,组合逻辑单元包括多个输入管脚和至少一个输出管脚,第一延迟时间包括每个输出管脚相对于每个输入管脚的第二延迟时间;
生成单元,用于根据第一功能表达式和第一延迟时间,生成第一固有工艺库。
在本申请实施例中,通过合法性检查,能够避免逻辑综合工具在调用有瑕疵工艺库时的无效资源花销;在功能表达式转换、计算延迟时间等操作之后,生成固有格式文件,能够进一步提高逻辑综合工具的综合效率。
在本申请实施例的一些可能实现中,合法性检查包括以下所列项至少其中之一:
功能表达式包含的变量是否与输入管脚对应;
功能表达式的格式是否合法;
功能表达式的运算符是否合法。
在本申请实施例的一些可能实现中,计算单元包括:
第一确定子单元,用于针对第一输入管脚和第一输出管脚,根据第一输入管脚的信号转换时间和第一输出管脚的负载电容信息,确定组合逻辑单元的每个实例相对于第一输入管脚和第一输出管脚的候选延迟时间,其中,第一输入管脚为多个输入管脚中的任一输入管脚,第一输出管脚为至少一个输出管脚中的任一输出管脚;
第二确定子单元,用于根据每个实例相对于第一输入管脚和第一输出管脚的候选延迟时间,确定第一输出管脚相对于第一输入管脚的延迟时间。
在本申请实施例的一些可能实现中,第一确定子单元具体用于:
获取延迟查找表;
在不存在第一实例对应的第一输入管脚的信号转换时间和第一输出管脚的负载电容信息的情况下,查询延迟查找表中每一行每一列对应的第三延迟时间,比较每一行每一列对应的第三延迟时间,将第三延迟时间中的最大值,确定为第一实例相对于第一输入管脚和第一输出管脚的候选延迟时间;
在存在第一实例对应的第一输入管脚的信号转换时间和第一输出管脚的负载电容信息的情况下,将延迟查找表中与第一输入管脚的信号转换时间和第一输出管脚的负载电容信息分别对应的行和列对应的第三延迟时间,确定为第一实例相对于第一输入管脚和第一输出管脚的候选延迟时间,其中,第一实例为组合逻辑单元的任一实例。
在本申请实施例中,通过在无法获取信号转换时间和负载电容信息的情况下,直接使用延迟查找表中的最大值作为候选延迟时间,能够为管脚延迟提供一定的冗余空间,避免出错。
在本申请实施例的一些可能实现中,第一确定子单元具体用于:
根据第一输入管脚的信号转换时间和第一输出管脚的负载电容信息,确定第二实例相对于第一输入管脚和第一输出管脚分别对应多个延迟查找表的第四延迟时间,其中,第二实例为组合逻辑单元的任一实例;
根据第二实例相对于第一输入管脚和第一输出管脚分别对应多个延迟查找表的第四延迟时间,确定第二实例相对于第一输入管脚和第一输出管脚的候选延迟时间。
在本申请实施例中,在提供了多个延迟查找表的情况下,每个实例都可以在多个延迟查找表中确定出多个第四延迟时间,然后,根据多个第四延迟时间来进一步确定候选延迟时间,提高了输出管脚相对于输入管脚的延迟时间的可靠性和适用性,避免了单点故障。
在本申请实施例的一些可能实现中,设计约束,包括:
低功耗设计约束和/或用户自定义设计约束。
在本申请实施例的一些可能实现中,本申请实施例提供的用户设计综合装置300还可以包括:
更新模块,用于根据综合结果,更新目标RTL设计文件中管脚信息。
图4是本申请实施例提供的电子设备的结构示意图。
该电子设备可以包括处理器401以及存储有计算机程序指令的存储器402。
具体地,上述处理器401可以包括中央处理器(Central Processing Unit,CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器402可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器402可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器402可以包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器402可在电子设备的内部或外部。在一些特定实施例中,存储器402是非易失性固态存储器。
在一些特定实施例中,存储器可包括只读存储器(Read-Only Memory,ROM),随机存取存储器(Random Access Memory,RAM),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本申请的用户设计综合方法所描述的操作。
处理器401通过读取并执行存储器402中存储的计算机程序指令,以实现本申请实施例提供的用户设计综合方法。
在一个示例中,该电子设备还可以包括通信接口403和总线410。其中,如图4所示,处理器401、存储器402、通信接口403通过总线410连接并完成相互间的通信。
通信接口403,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。
总线410包括硬件、软件或两者,将电子设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(Accelerated Graphics Port,AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,EISA)总线、前端总线(Front Side Bus,FSB)、超传输(Hyper Transport,HT)互连、工业标准架构(IndustryStandard Architecture,ISA)总线、无限带宽互连、低引脚数(Low Pin Count,LPC)总线、存储器总线、微信道架构(Micro channel architecture,MCA)总线、外围组件互连(Peripheral Component Interconnect,PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial Advanced Technology Attachment,SATA)总线、视频电子标准协会局部(Video electronics standards association Local Bus,VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线410可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
该电子设备可以执行本申请实施例提供的用户设计综合方法,从而实现本申请实施例提供的用户设计综合方法的相应技术效果。
另外,结合上述实施例中的用户设计综合方法,本申请实施例还提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现本申请实施例提供的用户设计综合方法。计算机可读存储介质的示例包括非暂态计算机可读介质,如ROM、RAM、磁碟或者光盘等。
本申请实施例提供一种计算机程序产品,该计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备执行本申请实施例提供的用户设计综合方法,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,做出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除只读存储器(Erasable Read Only Memory,EROM)、软盘、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、光盘、硬盘、光纤介质、射频(RadioFrequency,RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上面参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
以上所述,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。
Claims (13)
1.一种用户设计综合方法,其特征在于,所述方法包括:
获取目标寄存器传输级设计文件和逻辑综合工具支持的标准工艺库集合;
解析所述目标寄存器传输级设计文件,得到多个用户设计模块和每个所述用户设计模块对应的设计约束;
针对第一用户设计模块,从所述标准工艺库集合中确定满足所述第一用户设计模块的设计约束的第一标准工艺库,其中,所述第一用户设计模块为所述多个用户设计模块中的任一用户设计模块;
利用所述逻辑综合工具和所述第一标准工艺库对所述第一用户设计模块进行综合。
2.根据权利要求1所述的方法,其特征在于,所述利用所述逻辑综合工具和所述第一标准工艺库对所述第一用户设计模块进行综合,包括:
对所述第一标准工艺库进行格式转化,得到所述第一标准工艺库对应的第一固有工艺库,其中,所述第一固有工艺库具有所述逻辑综合工具支持的固有格式;
利用所述逻辑综合工具和所述第一固有工艺库对所述第一用户设计模块进行综合。
3.根据权利要求2所述的方法,其特征在于,所述对所述第一标准工艺库进行格式转化,得到所述第一标准工艺库对应的第一固有工艺库,包括:
针对所述第一标准工艺库的组合逻辑单元进行合法性检查;
在所述组合逻辑单元通过合法性检查的情况下,对所述组合逻辑单元的功能表达式进行格式转换,得到第一功能表达式,其中,所述第一功能表达式具有所述逻辑综合工具支持的格式;
计算所述组合逻辑单元的第一延迟时间,其中,所述组合逻辑单元包括多个输入管脚和至少一个输出管脚,所述第一延迟时间包括每个所述输出管脚相对于每个所述输入管脚的第二延迟时间;
根据所述第一功能表达式和所述第一延迟时间,生成所述第一固有工艺库。
4.根据权利要求3所述的方法,其特征在于,所述合法性检查包括以下所列项至少其中之一:
所述功能表达式包含的变量是否与输入管脚对应;
所述功能表达式的格式是否合法;
所述功能表达式的运算符是否合法。
5.根据权利要求3所述的方法,其特征在于,所述计算所述组合逻辑单元的第一延迟时间,包括:
针对第一输入管脚和第一输出管脚,根据所述第一输入管脚的信号转换时间和所述第一输出管脚的负载电容信息,确定所述组合逻辑单元的每个实例相对于所述第一输入管脚和所述第一输出管脚的候选延迟时间,其中,所述第一输入管脚为所述多个输入管脚中的任一输入管脚,所述第一输出管脚为所述至少一个输出管脚中的任一输出管脚;
根据所述候选延迟时间,确定所述第一输出管脚相对于所述第一输入管脚的第二延迟时间。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第一输入管脚的信号转换时间和所述第一输出管脚的负载电容信息,确定所述组合逻辑单元的每个实例相对于所述第一输入管脚和所述第一输出管脚的候选延迟时间,包括:
获取延迟查找表;
在不存在第一实例对应的所述信号转换时间和所述负载电容信息的情况下,查询所述延迟查找表中每一行每一列对应的第三延迟时间,比较每一行每一列对应的第三延迟时间,将所述第三延迟时间中的最大值,确定为所述第一实例相对于所述第一输入管脚和所述第一输出管脚的候选延迟时间,其中,所述第一实例为所述组合逻辑单元的任一实例;
在存在第一实例对应的所述信号转换时间和所述负载电容信息的情况下,将所述延迟查找表中与所述信号转换时间和所述负载电容信息分别对应的行和列对应的第三延迟时间,确定为所述第一实例相对于所述第一输入管脚和所述第一输出管脚的候选延迟时间。
7.根据权利要求5所述的方法,其特征在于,所述根据所述第一输入管脚的信号转换时间和所述第一输出管脚的负载电容信息,确定所述组合逻辑单元的每个实例相对于所述第一输入管脚和所述第一输出管脚的候选延迟时间,包括:
根据所述信号转换时间和所述负载电容信息,确定第二实例相对于所述第一输入管脚和所述第一输出管脚分别对应多个延迟查找表的第四延迟时间,其中,所述第二实例为所述组合逻辑单元的任一实例;
根据所述第二实例相对于所述第一输入管脚和所述第一输出管脚分别对应多个延迟查找表的第四延迟时间,确定所述第二实例相对于所述第一输入管脚和所述第一输出管脚的候选延迟时间。
8.根据权利要求1所述的方法,其特征在于,所述设计约束,包括:
低功耗设计约束和/或用户自定义设计约束。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据综合结果,更新所述目标寄存器传输级设计文件中管脚信息。
10.一种用户设计综合装置,其特征在于,所述装置包括:
获取模块,用于获取目标寄存器传输级设计文件和逻辑综合工具支持的标准工艺库集合;
解析模块,用于解析所述目标寄存器传输级设计文件,得到多个用户设计模块和每个所述用户设计模块对应的设计约束;
确定模块,用于针对第一用户设计模块,从所述标准工艺库集合中确定满足所述第一用户设计模块的设计约束的第一标准工艺库,其中,所述第一用户设计模块为所述多个用户设计模块中的任一用户设计模块;
综合模块,用于利用所述逻辑综合工具和所述第一标准工艺库对所述第一用户设计模块进行综合。
11.一种电子设备,其特征在于,所述电子设备包括:处理器以及存储有计算机程序指令的存储器;
所述处理器读取并执行所述计算机程序指令,以实现如权利要求1-9任意一项所述的用户设计综合方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-9任意一项所述的用户设计综合方法。
13.一种计算机程序产品,其特征在于,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行如权利要求1-9任意一项所述的用户设计综合方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310645073.5A CN116542190B (zh) | 2023-06-02 | 2023-06-02 | 用户设计综合方法、装置、设备、介质及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310645073.5A CN116542190B (zh) | 2023-06-02 | 2023-06-02 | 用户设计综合方法、装置、设备、介质及产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116542190A true CN116542190A (zh) | 2023-08-04 |
CN116542190B CN116542190B (zh) | 2023-09-01 |
Family
ID=87450754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310645073.5A Active CN116542190B (zh) | 2023-06-02 | 2023-06-02 | 用户设计综合方法、装置、设备、介质及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116542190B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117077602A (zh) * | 2023-10-12 | 2023-11-17 | 北京芯愿景软件技术股份有限公司 | 集成电路分析方法和装置 |
CN117709294A (zh) * | 2024-02-05 | 2024-03-15 | 英诺达(成都)电子科技有限公司 | 集成电路的约束验证方法、装置、电子设备、介质及产品 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200110912A1 (en) * | 2018-09-26 | 2020-04-09 | Taiwan Semiconductor Manufacturing Company Ltd. | System and method of timing characterization for semiconductor circuit |
US11144703B1 (en) * | 2018-11-30 | 2021-10-12 | Synopsys, Inc. | Smart repeater design for on-route repeater planning for bus |
CN114117973A (zh) * | 2020-08-25 | 2022-03-01 | 深圳市中兴微电子技术有限公司 | 逻辑综合方法、设备和存储介质 |
CN114417773A (zh) * | 2020-10-28 | 2022-04-29 | 龙芯中科技术股份有限公司 | 一种芯片布局方法、装置、电子设备和可读存储介质 |
CN114707445A (zh) * | 2022-03-29 | 2022-07-05 | 上海阵量智能科技有限公司 | 集成电路的综合方法、装置、计算机设备及存储介质 |
WO2022198447A1 (zh) * | 2021-03-23 | 2022-09-29 | 华为技术有限公司 | 一种数字电路的综合方法及综合装置 |
-
2023
- 2023-06-02 CN CN202310645073.5A patent/CN116542190B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200110912A1 (en) * | 2018-09-26 | 2020-04-09 | Taiwan Semiconductor Manufacturing Company Ltd. | System and method of timing characterization for semiconductor circuit |
US11144703B1 (en) * | 2018-11-30 | 2021-10-12 | Synopsys, Inc. | Smart repeater design for on-route repeater planning for bus |
CN114117973A (zh) * | 2020-08-25 | 2022-03-01 | 深圳市中兴微电子技术有限公司 | 逻辑综合方法、设备和存储介质 |
WO2022042397A1 (zh) * | 2020-08-25 | 2022-03-03 | 中兴通讯股份有限公司 | 逻辑综合方法、设备和存储介质 |
CN114417773A (zh) * | 2020-10-28 | 2022-04-29 | 龙芯中科技术股份有限公司 | 一种芯片布局方法、装置、电子设备和可读存储介质 |
WO2022198447A1 (zh) * | 2021-03-23 | 2022-09-29 | 华为技术有限公司 | 一种数字电路的综合方法及综合装置 |
CN114707445A (zh) * | 2022-03-29 | 2022-07-05 | 上海阵量智能科技有限公司 | 集成电路的综合方法、装置、计算机设备及存储介质 |
Non-Patent Citations (7)
Title |
---|
S. GAYATHRI等: "RTL synthesis of case study using design compiler", 《2017 INTERNATIONAL CONFERENCE ON ELECTRICAL, ELECTRONICS, COMMUNICATION, COMPUTER, AND OPTIMIZATION TECHNIQUES (ICEECCOT)》, pages 1 - 7 * |
不吃葱的酸菜鱼: "综合工具-Design Compiler使用(从RTL到综合出各种报告timing\\area\\critical_path)", Retrieved from the Internet <URL:https://blog.csdn.net/qq_57502075/article/details/127550161> * |
刘乙力等: "基于时间约束的高层次综合调度方法", 《电子技术与软件工程》, no. 15, pages 95 - 97 * |
刘新云等: "VHDL语言逻辑综合的研究", 《电测与仪表》, no. 08, pages 36 - 38 * |
杨光等: "用Design Compiler进行逻辑综合概述", 《微处理机》, vol. 31, no. 05, pages 32 - 34 * |
白博: "基于高层次设计的MCU的研究", 《中国优秀硕士学位论文全文数据库》, pages 137 - 71 * |
赵庆哲等: "逻辑综合在数字IC设计中的应用", 《微处理机》, vol. 34, no. 04, pages 16 - 18 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117077602A (zh) * | 2023-10-12 | 2023-11-17 | 北京芯愿景软件技术股份有限公司 | 集成电路分析方法和装置 |
CN117077602B (zh) * | 2023-10-12 | 2024-02-09 | 北京芯愿景软件技术股份有限公司 | 集成电路分析方法和装置 |
CN117709294A (zh) * | 2024-02-05 | 2024-03-15 | 英诺达(成都)电子科技有限公司 | 集成电路的约束验证方法、装置、电子设备、介质及产品 |
CN117709294B (zh) * | 2024-02-05 | 2024-04-30 | 英诺达(成都)电子科技有限公司 | 集成电路的约束验证方法、装置、电子设备、介质及产品 |
Also Published As
Publication number | Publication date |
---|---|
CN116542190B (zh) | 2023-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116542190B (zh) | 用户设计综合方法、装置、设备、介质及产品 | |
US7464015B2 (en) | Method and apparatus for supporting verification, and computer product | |
US9218440B2 (en) | Timing verification of an integrated circuit | |
US10192015B2 (en) | Method of estimating a yield of an integrated circuit and method of optimizing a design for an integrated circuit | |
US11341304B2 (en) | Machine learning based methods and apparatus for integrated circuit design delay calculation and verification | |
CN114742001B (zh) | 一种基于多fpga的系统静态时序分析方法 | |
US20160189720A1 (en) | Model Based Prediction in a Critically Sampled Filterbank | |
CN112560401B (zh) | Verilog文件转换方法、装置、存储介质及设备 | |
CN115796093B (zh) | 电路时序优化方法、装置、电子设备及存储介质 | |
US11176305B2 (en) | Method and system for sigma-based timing optimization | |
US9165105B2 (en) | Rule checking for confining waveform induced constraint variation in static timing analysis | |
CN111581899A (zh) | 良率参数文件和门级网表的生成方法以及芯片的开发流程 | |
Vasicek | Relaxed equivalence checking: a new challenge in logic synthesis | |
US8881075B2 (en) | Method for measuring assertion density in a system of verifying integrated circuit design | |
Eslami et al. | Reusing verification assertions as security checkers for hardware trojan detection | |
JPWO2006006198A1 (ja) | 電力算出装置、電力算出方法、耐タンパ性評価装置及び耐タンパ性評価方法 | |
CN113779499A (zh) | 一种基于高层次综合工具的快速傅里叶算法优化方法及系统 | |
Gupta et al. | Energy and peak-current per-cycle estimation at RTL | |
US7428712B1 (en) | Design optimization using approximate reachability analysis | |
CN112149370B (zh) | 芯片老化的静态时序分析方法、装置和电子设备 | |
US8863058B2 (en) | Characterization based buffering and sizing for system performance optimization | |
US11520960B1 (en) | Register transfer level based side channel leakage assessment | |
US6877141B2 (en) | Evaluating a validation vector for validating a network design | |
CN111695321B (zh) | 电路设计方法及相关的电脑程序产品 | |
US7139929B2 (en) | Generating a test environment for validating a network design |
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 |