极大规模集成电路的超前后仿真方法、装置及设备转让专利

申请号 : CN202310262791.4

文献号 : CN115983170B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘必慰胡春媚郭阳宋睿强刘胜吴振宇韩雨王洁辛欣龚艳琼

申请人 : 中国人民解放军国防科技大学

摘要 :

本申请涉及一种极大规模集成电路的超前后仿真方法、装置及设备。所述方法包括:通过根据网表模块和RTL模块之间的连接关系进行相应处理,使得网表模块与RTL模块的接口适配,其中,当连接关系为RTL模块内嵌网表模块时,则对网表模块对应STA的接口约束进行修改并虚拟修复时序违反,当连接关系为网表模块内嵌RTL模块时,则根据RTL模块构建一个lib模型并将其替换,使得网表模块与RTL模块的接口适配,这样处理后的网表模块和RTL模块可以进行混合后仿真。采用本方法可以在每一个模块完成或接近完成时,就能够进行超前后仿真,极大加速了时序和功能验证。

权利要求 :

1.极大规模集成电路的超前后仿真方法,其特征在于,所述方法包括:

获取待进行后仿真集成电路中已经完成布局布线的模块对应的门级网表,以及未完成布局布线的模块对应的RTL文件,其中,所述门级网表带延时反标,并将已经完成布局布线的模块称为网表模块,将未完成布局布线的模块称为RTL模块;

根据所述网表模块和RTL模块之间的连接关系进行相应处理,使得所述网表模块与所述RTL模块的接口适配,其中,当连接关系为RTL模块内嵌网表模块时,则对网表模块对应STA的接口约束进行修改并虚拟修复时序违反,当连接关系为网表模块内嵌RTL模块时,则根据所述RTL模块构建一个lib模型并将其替换,使得所述网表模块与所述RTL模块的接口适配;

对处理后的所述网表模块和RTL模块进行混合后仿真。

2.根据权利要求1所述的超前后仿真方法,其特征在于,所述当连接关系为RTL模块内嵌网表模块时,则对网表模块对应STA的接口约束进行修改并虚拟修复时序违反,对处理后的所述网表模块和RTL模块进行混合后仿真包括:利用STA工具对所述网表模块生成对应的反标延时文件;

在所述反标延时文件中找到所述网表模块接入RTL模块的输入接口以及输出RTL模块的输出接口的后仿延迟;

根据所述输入接口和输出接口的后防延迟与一个时钟周期的关系,选择零延时修复方法以及错拍修复方法对对应的反标延时文件进行修改;

对所述网表模块重新进行STA分析,根据报出的时序违反,在STA中进行虚拟修复,直到没有违反;

重新生成所述反标延时文件,根据重新生成的反标延时文件、所述网表模块对应的门级网表以及所述RTL模块对应的RTL文件进行混合后仿真。

3.根据权利要求2所述的超前后仿真方法,其特征在于,所述根据所述输入接口和输出接口的后防延迟与一个时钟周期的关系,选择零延时修复方法以及错拍修复方法对对应的反标延时文件进行修改包括:当所述输入接口和输出接口后仿延时小于一个时钟周期时,则选择零延时修复方法,将所述输入接口和输出接口的后仿延时修改为零;

当所述输入接口和输出接口后仿延时大于一个时钟周期时,则选择错拍修复方法,将所述输入接口的后仿延时修改为一个时间钟周期,将所述输出接口的后仿延时修改为负一个时间钟周期。

4.根据权利要求3所述的超前后仿真方法,其特征在于,所述当连接关系为网表模块内嵌RTL模块时,则根据所述RTL模块构建一个lib模型并将其替换包括:对所述RTL模块对应的RTL文件进行分析,得到所有端口并区分输入和输出;

将所有输入端口区分为时钟输入端口和信号输入端口,将所有输出端口区别为时钟输出端口和信号输出端口;

根据所述信号输入端口以及信号输出端口各自的延时弧依赖关系构建时序模型文件也就是lib模型,并将输入信号的建立保持时间都设定为0,输出信号的延时都设定为0。

5.根据权利要求4所述的超前后仿真方法,其特征在于,所述对处理后的所述网表模块和RTL模块进行混合后仿真包括:将构建的所述lib模型替换所述RTL模块与所述网表模块一并进行STA分析;

根据STA报出setup和hold违反,在STA中进行虚拟修复,直到没有违反;

重新生成所述反标延时文件,根据重新生成的反标延时文件以及所述网表模块对应的门级网表进行混合后仿真。

6. 根据权利要求5所述的超前后仿真方法,其特征在于,所述虚拟修复采用set_annonate _delay 语句指定单元或线的延时。

7.根据权利要求1‑6任一项所述的超前后仿真方法,其特征在于,在每一个模块完成或接近完成时就能够采用所述超前后仿真方法进行超前后仿。

8.极大规模集成电路的超前后仿真装置,其特征在于,所述装置包括:

仿真文件获取模块,用于获取待进行后仿真集成电路中已经完成布局布线的模块对应的门级网表,以及未完成布局布线的模块对应的RTL文件,其中,所述门级网表带延时反标,并将已经完成布局布线的模块称为网表模块,将未完成布局布线的模块称为RTL模块;

接口适配模块,用于根据所述网表模块和RTL模块之间的连接关系进行相应处理,使得所述网表模块与所述RTL模块的接口适配,其中,当连接关系为RTL模块内嵌网表模块时,则对网表模块对应STA的接口约束进行修改并虚拟修复时序违反,当连接关系为网表模块内嵌RTL模块时,则根据所述RTL模块构建一个lib模型并将其替换,使得所述网表模块与所述RTL模块的接口适配;

混合后仿真模块,用于对处理后的所述网表模块和RTL模块进行混合后仿真。

9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求7所述方法的步骤。

说明书 :

极大规模集成电路的超前后仿真方法、装置及设备

技术领域

[0001] 本申请涉及集成电路仿真技术领域,特别是涉及一种极大规模集成电路的超前后仿真方法、装置及设备。

背景技术

[0002] 基于布局布线门级网表的后标后仿真是实现时序验证与签收的重要手段。在当前的超大规模微处理器和SOC电路中,STA中的sdc约束复杂,形式化验证例外多,存在较多的人为判断。需要进行后仿真,作为STA和形式化验证的补充。后仿真使用布局布线工具输出的门级网表文件(Verilog文件),和STA工具输出的反标延时文件(sdf文件)进行后仿真。全芯片的后仿非常重要。这是因为有的物理设计模块没有单独的模拟激励,需要和其他模块组合才能仿真;即使模块有独立的模拟激励,模块级的模拟激励也往往过于理想,不能充分验证功能。因此,必须进行全芯片的后仿,才能验证功能和时序。
[0003] 然而,全芯片后仿需要全芯片时序修复完成才能进行,启动时间将非常晚。并且全芯片的后仿runtime时间长,需要数周的时间才能进行1次,甚至可能根本无法完成。总之,后仿时间是流片时间的关键影响因素之一。

发明内容

[0004] 基于此,有必要针对上述技术问题,提供一种能够在每一个模块完成布线布局后就能进行超前后仿真的极大规模集成电路的超前后仿真方法、装置及设备。
[0005] 一种极大规模集成电路的超前后仿真方法,所述方法包括:
[0006] 获取待进行后仿真集成电路中已经完成布局布线的模块对应的门级网表,以及未完成布局布线的模块对应的RTL文件,其中,所述门级网表带延时反标,并将已经完成布局布线的模块称为网表模块,将未完成布局布线的模块称为RTL模块;
[0007] 根据所述网表模块和RTL模块之间的连接关系进行相应处理,使得所述网表模块与所述RTL模块的接口适配,其中,当连接关系为RTL模块内嵌网表模块时,则对网表模块对应STA的接口约束进行修改并虚拟修复时序违反,当连接关系为网表模块内嵌RTL模块时,则根据所述RTL模块构建一个lib模型并将其替换,使得所述网表模块与所述RTL模块的接口适配;
[0008] 对处理后的所述网表模块和RTL模块进行混合后仿真。
[0009] 在其中一实施例中,所述当连接关系为RTL模块内嵌网表模块时,则对网表模块对应STA的接口约束进行修改并虚拟修复时序违反,对处理后的所述网表模块和RTL模块进行混合后仿真包括:
[0010] 利用STA工具对所述网表模块生成对应的反标延时文件;
[0011] 在所述反标延时文件中找到所述网表模块接入RTL模块的输入接口以及输出RTL模块的输出接口的后仿延迟;
[0012] 根据所述输入接口和输出接口的后防延迟与一个时钟周期的关系,选择零延时修复方法以及错拍修复方法对对应的反标延时文件进行修改;
[0013] 对所述网表模块重新进行STA分析,根据报出的时序违反,在STA中进行虚拟修复,直到没有违反;
[0014] 重新生成所述反标延时文件,根据重新生成的反标延时文件、所述网表模块对应的门级网表以及所述RTL模块对应的RTL文件进行混合后仿真。
[0015] 在其中一实施例中,所述根据所述输入接口和输出接口的后防延迟与一个时钟周期的关系,选择零延时修复方法以及错拍修复方法对对应的反标延时文件进行修改包括:
[0016] 当所述输入接口和输出接口后仿延时小于一个时钟周期时,则选择零延时修复方法,将所述输入接口和输出接口的后仿延时修改为零;
[0017] 当所述输入接口和输出接口后仿延时大于一个时钟周期时,则选择错拍修复方法,将所述输入接口的后仿延时修改为一个时间钟周期,将所述输出接口的后仿延时修改为负一个时间钟周期。
[0018] 在其中一实施例中,所述当连接关系为网表模块内嵌RTL模块时,则根据所述RTL模块构建一个lib模型并将其替换包括:
[0019] 对所述RTL模块对应的RTL文件进行分析,得到所有端口并区分输入和输出;
[0020] 将所有输入端口区分为时钟输入端口和信号输入端口,将所有输出端口区别为时钟输出端口和信号输出端口;
[0021] 根据所述信号输入端口以及信号输出端口各自的延时弧依赖关系构建时序模型文件也就是lib模型,并将输入信号的建立保持时间都设定为0,输出信号的延时都设定为0。
[0022] 在其中一实施例中,所述对处理后的所述网表模块和RTL模块进行混合后仿真包括:
[0023] 将构建的所述lib模型替换所述RTL模块与所述网表模块一并进行STA分析;
[0024] 根据STA报出setup和hold违反,在STA中进行虚拟修复,直到没有违反;
[0025] 重新生成所述反标延时文件,根据重新生成的反标延时文件以及所述网表模块对应的门级网表进行混合后仿真。
[0026] 在其中一实施例中,所述虚拟修复采用set_annonate _delay 语句指定单元或线的延时。
[0027] 在其中一实施例中,在每一个模块完成或接近完成时就能够采用所述超前后仿真方法进行超前后仿。
[0028] 一种极大规模集成电路的超前后仿真装置,所述装置包括:
[0029] 仿真文件获取模块,用于获取待进行后仿真集成电路中已经完成布局布线的模块对应的门级网表,以及未完成布局布线的模块对应的RTL文件,其中,所述门级网表带延时反标,并将已经完成布局布线的模块称为网表模块,将未完成布局布线的模块称为RTL模块;
[0030] 接口适配模块,用于根据所述网表模块和RTL模块之间的连接关系进行相应处理,使得所述网表模块与所述RTL模块的接口适配,其中,当连接关系为RTL模块内嵌网表模块时,则对网表模块对应STA的接口约束进行修改并虚拟修复时序违反,当连接关系为网表模块内嵌RTL模块时,则根据所述RTL模块构建一个lib模型并将其替换,使得所述网表模块与所述RTL模块的接口适配;
[0031] 混合后仿真模块,用于对处理后的所述网表模块和RTL模块进行混合后仿真。
[0032] 一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0033] 获取待进行后仿真集成电路中已经完成布局布线的模块对应的门级网表,以及未完成布局布线的模块对应的RTL文件,其中,所述门级网表带延时反标,并将已经完成布局布线的模块称为网表模块,将未完成布局布线的模块称为RTL模块;
[0034] 根据所述网表模块和RTL模块之间的连接关系进行相应处理,使得所述网表模块与所述RTL模块的接口适配,其中,当连接关系为RTL模块内嵌网表模块时,则对网表模块对应STA的接口约束进行修改并虚拟修复时序违反,当连接关系为网表模块内嵌RTL模块时,则根据所述RTL模块构建一个lib模型并将其替换,使得所述网表模块与所述RTL模块的接口适配;
[0035] 对处理后的所述网表模块和RTL模块进行混合后仿真。
[0036] 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
[0037] 获取待进行后仿真集成电路中已经完成布局布线的模块对应的门级网表,以及未完成布局布线的模块对应的RTL文件,其中,所述门级网表带延时反标,并将已经完成布局布线的模块称为网表模块,将未完成布局布线的模块称为RTL模块;
[0038] 根据所述网表模块和RTL模块之间的连接关系进行相应处理,使得所述网表模块与所述RTL模块的接口适配,其中,当连接关系为RTL模块内嵌网表模块时,则对网表模块对应STA的接口约束进行修改并虚拟修复时序违反,当连接关系为网表模块内嵌RTL模块时,则根据所述RTL模块构建一个lib模型并将其替换,使得所述网表模块与所述RTL模块的接口适配;
[0039] 对处理后的所述网表模块和RTL模块进行混合后仿真。
[0040] 上述极大规模集成电路的超前后仿真方法、装置及设备,通过根据网表模块和RTL模块之间的连接关系进行相应处理,使得网表模块与RTL模块的接口适配,其中,当连接关系为RTL模块内嵌网表模块时,则对网表模块对应STA的接口约束进行修改并虚拟修复时序违反,当连接关系为网表模块内嵌RTL模块时,则根据RTL模块构建一个lib模型并将其替换,使得网表模块与RTL模块的接口适配,这样处理后的网表模块和RTL模块可以进行混合后仿真。采用本方法可以在每一个模块完成或接近完成时,就能够进行超前后仿真,极大加速了时序和功能验证。

附图说明

[0041] 图1为一个实施例中极大规模集成电路的超前后仿真方法的流程示意图;
[0042] 图2为一个实施例中RTL和门极网表混合后仿流程的示意框图;
[0043] 图3为一个实施例中RTL内嵌门级网表后仿示意图,其中(a)为问题示意图,(b)为接口约束修改示意图,(c)为时序修复方法;
[0044] 图4为另一个实施例中RTL内嵌门级网表示意图,其中(a)为时钟延时超过一个周期时出现问题的示意图,(b)为接口约束修改示意图,(c)为时序修复方法;
[0045] 图5为一个实施例中门级网表内嵌RTL的结构示意图;
[0046] 图6为一个实施例中极大规模集成电路的超前后仿真装置的结构框图;
[0047] 图7为一个实施例中计算机设备的内部结构图。

具体实施方式

[0048] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0049] 现有技术中,对全芯片进行后仿真时需要全芯片已经完成时序修复完成才能进行,导致启动时间非常晚。并且,全芯片的后仿时间需要非常长的时间,需要数周的时间才能进行1次,在跑完反正之后,还要根据报错进行修改,由于此时是对全芯片的仿真,所以在此时进行修改时也需要花很多时间,修改后再进行仿真,直至不出现报错,这无疑会浪费很多时间。针对该问题,如图1所示,本申请提供了一种极大规模集成电路的超前后仿真方法,具体包括以下步骤:
[0050] 步骤S100,获取待进行后仿真集成电路中已经完成布局布线的模块对应的门级网表,以及未完成布局布线的模块对应的RTL文件,其中,门级网表带延时反标,并将已经完成布局布线的模块称为网表模块,将未完成布局布线的模块称为RTL模块;
[0051] 步骤S110,根据网表模块和RTL模块之间的连接关系进行相应处理,使得网表模块与RTL模块的接口适配,其中,当连接关系为RTL模块内嵌网表模块时,则对网表模块对应STA的接口约束进行修改并虚拟修复时序违反,当连接关系为网表模块内嵌RTL模块时,则根据所述RTL模块构建一个lib模型并将其替换,使得网表模块与所述RTL模块的接口适配;
[0052] 步骤S120,对处理后的网表模块和RTL模块进行混合后仿真。
[0053] 在本实施例中,针对上述问题,提出了一种超前后仿真技术,即RTL与门级网表的混合仿真技术,如图2所示。在每一个模块完成时就能够针对该模块进行超前后仿真,从而及时对该模块进行修正。这样可以对整个芯片的各模块进行逐步后仿,极大的加速了时序和功能验证。
[0054] 在步骤S100中,待进行后仿真集成电路中各模块的完成进度不一样,有的,模块已经完成的布局布线,则提取该模块带延时反标的门级网表,而其他没有完成的模块也已经完成的RTL代码与前仿真。
[0055] 在步骤S110中,在对网表模块和RTL模块进行处理时,根据两者之间的连接关系做相应处理。其中网表模块和RTL模块两者之间的关系包括RTL模块内嵌网表模块,和网表模块内嵌RTL模块。
[0056] 具体的,当连接关系为RTL模块内嵌网表模块时,则对网表模块对应STA的接口约束进行修改并虚拟修复时序违反,对处理后的所述网表模块和RTL模块进行混合后仿真包括:先利用STA工具对网表模块生成对应的反标延时文件。并在反标延时文件中找到网表模块接入RTL模块的输入接口以及输出RTL模块的输出接口的后仿延迟。根据输入接口和输出接口的后防延迟与一个时钟周期的关系,选择零延时修复方法以及错拍修复方法对对应的反标延时文件进行修改。对网表模块重新进行STA分析,根据报出的时序违反,在STA中进行虚拟修复,直到没有违反。最后重新生成所述反标延时文件,根据重新生成的反标延时文件、网表模块对应的门级网表以及RTL模块对应的RTL文件进行混合后仿真。
[0057] 具体的,根据输入接口和输出接口的后防延迟与一个时钟周期的关系,选择零延时修复方法以及错拍修复方法对对应的反标延时文件进行修改包括:当输入接口和输出接口后仿延时小于一个时钟周期时,则选择零延时修复方法,将输入接口和输出接口的后仿延时修改为零。当输入接口和输出接口后仿延时大于一个时钟周期时,则选择错拍修复方法,将输入接口的后仿延时修改为一个时间钟周期,将输出接口的后仿延时修改为负一个时间钟周期。
[0058] 网表模块和RTL模块两者之间的关系最典型的情况就是RTL模块内嵌网表模块。SDF反标文件是STA工具生成,一般来说STA分析如果没有违反后仿也就不会有时序问题。但在RTL模块和网表模块之间接口处则有问题,STA和后仿的情况不一致。
[0059] 如图3所示,在门级网表STA中往往会设置较大的input delay和output delay以便压缩模块网表内的接口逻辑延时。但在包裹上RTL进行后仿时,input和output接口上是0延时的,从而将极有可能出现hold违反,而这些违反实际上是虚假的、不应当考虑的,这里的input和output接口指的是网表模块接入RTL模块的输入接口以及输出RTL模块的输出接口。进而,模块内的时钟树也存在延时,这将使得input接口上的hold违反更加明显。
[0060] 先考虑一种简单的情况,即模块内的时钟树延时明显小于时钟周期。可以通过适当修改STA的接口约束并虚拟修复时序违反的方法实现混合后仿。具体过程如图3所示。第一步,将接口约束从0.6ns修改为0,使得STA与后仿接口状态一致;第二步,重新进行STA分析,报出接口的时序违反;第三步,在STA中进行虚拟修复,直到没有违反;第四步,重新写出SDF文件,即可与RTL代码接口适配进行后仿。
[0061] 在本实施例中,虚拟修复指的是使用set_annonate _delay 语句指定单元或线的延时。
[0062] 如图4所示的例子所示,直接将INV1的延时指定为0.7ns就简单的修复了input接口上的hold违反。而无需真实的插入延时单元和布局布线。注意,在虚拟修复时不能指定负延时,因为现有的逻辑模拟算法都不支持负延时反标。
[0063] 接着考虑另外一种更加困难的情况,如果门级网表中的时钟树延时如果接近或超过了1个时钟周期,继续按图4所示的方法也就是零延时修复方法修复则会存在两个问题:1)修复后输入接口上的逻辑延时将超过1个周期,导致输入输出错拍;2)输出接口对外部RTL的建立时间理论上不可能满足。
[0064] 而针对这种情况,采用错拍修复方法,即接口约束不按照0延时设定,而是前推和后推若干个周期。如图4(b)所示,将input delay从0修改定为1个时钟周期,将output delay从0修改为负1个时钟周期。然后,在STA工具中进行虚拟修复,这时修复input 接口上的hold不需要反标超过1个周期的大延时,0.5ns即可,output接口上的setup时间已自动满足。这时生成的SDF文件能够与RTL适配后仿。
[0065] 通过详细推导后仿时的实际波形可知:第1个时钟沿驱动RTL中的D1寄存器锁存数据,并向I端口和D2寄存器输出;同样是第1个时钟沿经模块内时钟延时,驱动D2寄存器上正确锁存信号;第2个时钟沿在D3处锁存正确锁存;第3个时钟沿在本电路中实际并无作用;第4个时钟沿驱动RTL中的D4寄存器正确锁存。这个节拍与RTL原本意义一致。
[0066] 在本实施例中,当网表模块和RTL模块之间的连接关系为网表模块内嵌RTL模块时,则根据RTL模块构建一个lib模型并将其替换包括:先对RTL模块对应的RTL文件进行分析,得到所有端口并区分输入和输出,再对RTL进一步进行分析,将所有输入端口区分为时钟输入端口和信号输入端口,将所有输出端口区别为时钟输出端口和信号输出端口,根据信号输入端口以及信号输出端口各自的延时弧依赖关系构建时序模型文件也就是lib模型,并将输入信号的建立保持时间都设定为0,输出信号的延时都设定为0。
[0067] 进一步的,在对利用构建的lib模型替代RTL模块和网表模块进行混合后仿真时包括:将构建的lib模型替换RTL模块与网表模块一并进行STA分析,并根据STA报出setup和hold违反,在STA中进行虚拟修复,直到没有违反。最后重新生成所述反标延时文件,再根据重新生成的反标延时文件以及所述网表模块对应的门级网表进行混合后仿真。
[0068] 如图5所示,当门级网表内嵌RTL时,同样,在接口处会存在大量的时序违反,从网表模块到RTL模块的接口处会有setup,从RTL模块到网表模块的接口会有hold,从而导致后仿会有大量的虚假功能错误。
[0069] 而针对内嵌的RTL模块构建一个0延时的lib模型,完成程序ZDLib_Gen。
[0070] 具体的,ZDLib_Gen伪代码为:
[0071] 1.分析RTL,得到所有端口并区分为输入和输出。
[0072] 2.分析RTL,进一步将输入区分为时钟和输入信号。
[0073] 3.分析RTL,得到输入信号和输出信号各自的延时弧依赖关系。
[0074] 4.根据延时弧依赖关系构建时序模型文件liberty文件。输入信号的建立保持时间都设定为0,输出信号的延时都设定为0。
[0075] 最后,将0延时lib模型与门级网表一并带入STA分析。根据STA报出setup和hold违反,虚拟修复接口违反。重新生成sdf延时反标文件,即可适配混合后仿。
[0076] 基于本文所提出的极大规模集成电路的超前后仿真方法,在模块物理设计完成时就随即完成模块的反标后仿,消除了可能的时序问题。全芯片签收时,仅需进行Fullchip、AccZone、GPZone三个反标网表+其他RTL的混合后仿即可,时间仅需26小时,大大加速了签收时间。如果采用传统的方式,全芯片后仿需要3个星期以上的时间,并且这3个星期都加在流片前,使得流片推出3个星期以上。
[0077] 而从用本文方法后,全芯片后仿分为,Fullchip RTL+等等8个混合仿真,其中前7个已在模块设计时超前完成。仅仅最后一个在流片完成,需要26小时完成。仅对流片有微小的推迟。
[0078] 上述极大规模集成电路的超前后仿真方法,通过根据网表模块和RTL模块之间的连接关系进行相应处理,使得网表模块与RTL模块的接口适配,其中,当连接关系为RTL模块内嵌网表模块时,则对网表模块对应STA的接口约束进行修改并虚拟修复时序违反,当连接关系为网表模块内嵌RTL模块时,则根据RTL模块构建一个lib模型并将其替换,使得网表模块与RTL模块的接口适配,这样处理后的网表模块和RTL模块可以进行混合后仿真。采用本方法可以在每一个模块完成或接近完成时,就能够进行超前后仿真,极大加速了时序和功能验证。
[0079] 应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0080] 在一个实施例中,如图6所示,提供了一种极大规模集成电路的超前后仿真装置,包括:仿真文件获取模块200、接口适配模块210和混合后仿真模块220,其中:
[0081] 仿真文件获取模块200,用于获取待进行后仿真集成电路中已经完成布局布线的模块对应的门级网表,以及未完成布局布线的模块对应的RTL文件,其中,所述门级网表带延时反标,并将已经完成布局布线的模块称为网表模块,将未完成布局布线的模块称为RTL模块;
[0082] 接口适配模块210,用于根据所述网表模块和RTL模块之间的连接关系进行相应处理,使得所述网表模块与所述RTL模块的接口适配,其中,当连接关系为RTL模块内嵌网表模块时,则对网表模块对应STA的接口约束进行修改并虚拟修复时序违反,当连接关系为网表模块内嵌RTL模块时,则根据所述RTL模块构建一个lib模型并将其替换,使得所述网表模块与所述RTL模块的接口适配;
[0083] 混合后仿真模块220,用于对处理后的所述网表模块和RTL模块进行混合后仿真。
[0084] 关于极大规模集成电路的超前后仿真装置的具体限定可以参见上文中对于极大规模集成电路的超前后仿真方法的限定,在此不再赘述。上述极大规模集成电路的超前后仿真装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0085] 在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种极大规模集成电路的超前后仿真方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0086] 本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0087] 在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
[0088] 获取待进行后仿真集成电路中已经完成布局布线的模块对应的门级网表,以及未完成布局布线的模块对应的RTL文件,其中,所述门级网表带延时反标,并将已经完成布局布线的模块称为网表模块,将未完成布局布线的模块称为RTL模块;
[0089] 根据所述网表模块和RTL模块之间的连接关系进行相应处理,使得所述网表模块与所述RTL模块的接口适配,其中,当连接关系为RTL模块内嵌网表模块时,则对网表模块对应STA的接口约束进行修改并虚拟修复时序违反,当连接关系为网表模块内嵌RTL模块时,则根据所述RTL模块构建一个lib模型并将其替换,使得所述网表模块与所述RTL模块的接口适配;
[0090] 对处理后的所述网表模块和RTL模块进行混合后仿真。
[0091] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
[0092] 获取待进行后仿真集成电路中已经完成布局布线的模块对应的门级网表,以及未完成布局布线的模块对应的RTL文件,其中,所述门级网表带延时反标,并将已经完成布局布线的模块称为网表模块,将未完成布局布线的模块称为RTL模块;
[0093] 根据所述网表模块和RTL模块之间的连接关系进行相应处理,使得所述网表模块与所述RTL模块的接口适配,其中,当连接关系为RTL模块内嵌网表模块时,则对网表模块对应STA的接口约束进行修改并虚拟修复时序违反,当连接关系为网表模块内嵌RTL模块时,则根据所述RTL模块构建一个lib模型并将其替换,使得所述网表模块与所述RTL模块的接口适配;
[0094] 对处理后的所述网表模块和RTL模块进行混合后仿真。
[0095] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0096] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0097] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。