CN116595915A - 一种系统仿真方法、装置、电子设备和存储介质 - Google Patents
一种系统仿真方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116595915A CN116595915A CN202310383463.XA CN202310383463A CN116595915A CN 116595915 A CN116595915 A CN 116595915A CN 202310383463 A CN202310383463 A CN 202310383463A CN 116595915 A CN116595915 A CN 116595915A
- Authority
- CN
- China
- Prior art keywords
- module
- netlist
- tested
- chip module
- netlist file
- 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 181
- 238000004088 simulation Methods 0.000 title claims abstract description 131
- 238000000605 extraction Methods 0.000 claims abstract description 62
- 238000004519 manufacturing process Methods 0.000 claims abstract description 9
- 235000013599 spices Nutrition 0.000 claims description 34
- 230000015654 memory Effects 0.000 claims description 30
- 238000012360 testing method Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 10
- 238000013461 design Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 11
- 239000000284 extract Substances 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 108091093018 PVT1 Proteins 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- KLDZYURQCUYZBL-UHFFFAOYSA-N 2-[3-[(2-hydroxyphenyl)methylideneamino]propyliminomethyl]phenol Chemical compound OC1=CC=CC=C1C=NCCCN=CC1=CC=CC=C1O KLDZYURQCUYZBL-UHFFFAOYSA-N 0.000 description 1
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 201000001098 delayed sleep phase syndrome Diseases 0.000 description 1
- 208000033921 delayed sleep phase type circadian rhythm sleep disease Diseases 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 239000000463 material 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
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 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
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
技术领域
本公开涉及半导体技术领域,尤其涉及一种系统仿真方法、装置、电子设备和存储介质。
背景技术
在高带宽存储器(High Bandwidth Memory,HBM)等三维集成电路(3DimensionsIntegrated Circuit,3D-IC)结构的电路设计中,为了对整体电路性能进行验证,在设计规范中要求对某些关键电路模块的多个例化单元处于不同的制程工艺、工作电压、工作温度(Process、Voltage、Temperature,PVT)条件下进行同时仿真,来确定芯片性能是否满足要求。
发明内容
第一方面,本公开实施例提供了一种系统仿真方法,所述系统包括至少一个芯片模块,该方法包括:
获取待测芯片模块的模块信息,所述待测芯片模块中包括关键电路模块;
根据所述待测芯片模块的模块信息对所述系统进行网表抽取,生成所述待测芯片模块对应的网表文件;所述网表文件包括所述关键电路模块对应的第一网表文件和所述待测芯片模块对应的第二网表文件;其中,所述第一网表文件和所述第二网表文件的文件名包括工艺角参数信息,所述工艺角参数信息包括制程工艺、工作温度、工作电压;
根据所述第一网表文件和所述第二网表文件执行仿真操作,得到所述系统的仿真结果。
在一些实施例中,所述待测芯片模块的模块信息包括:
所述待测芯片模块的顶层模块名称、所述待测芯片模块对应的例化单元名称、所述待测芯片模块的顶层模块对应的参数库的库名、所述工艺角参数信息。
在一些实施例中,所述获取待测芯片模块的模块信息,还包括:
获取所述关键电路模块的模块信息;
其中,所述关键电路模块的模块信息包括:所述关键电路模块的名称、所述关键电路模块对应的待测芯片模块的顶层模块名称、所述关键电路模块对应的参数库的库名。
在一些实施例中,所述根据所述待测芯片模块的模块信息对所述系统进行网表抽取,生成所述待测芯片模块对应的网表文件,包括:
根据所述待测芯片模块的模块信息进行第一网表抽取,生成所述关键电路模块对应的第一网表文件;以及,
根据所述待测芯片模块的模块信息进行第二网表抽取,生成所述待测芯片模块对应的第二网表文件;
其中,所述第一网表文件的仿真精度高于所述第二网表文件的仿真精度。
在一些实施例中,所述第一网表抽取包括Spice网表抽取,所述第二网表抽取包括Verilog网表抽取;
对应的,所述第一网表文件包括Spice网表文件,所述第二网表文件包括Verilog网表文件。
在一些实施例中,所述待测芯片模块包括至少一个层级的电路模块,所述至少一个层级的电路模块包括所述关键电路模块和非关键电路模块;其中:
所述根据所述待测芯片模块的模块信息进行第一网表抽取,生成所述关键电路模块对应的第一网表文件,包括:
在根据所述待测芯片模块的模块信息执行所述第一网表抽取的过程中,检索所述待测芯片模块的每一层级中的第一例化单元,对所述第一例化单元对应的网表文件的名称添加所述工艺角参数信息,得到所述第一网表文件;其中,所述第一例化单元为所述关键电路模块对应的例化单元。
所述根据所述待测芯片模块的模块信息进行第二网表抽取,生成所述待测芯片模块对应的第二网表文件,包括:
在根据所述待测芯片模块的模块信息执行所述第二网表抽取的过程中,检索所述待测芯片模块的每一层级中的第二例化单元,对所述第二例化单元对应的网表文件的名称添加所述工艺角参数信息,得到所述第二网表文件;其中,所述第二例化单元为所述非关键电路模块对应的例化单元。
在一些实施例中,所述根据所述第一网表文件和所述第二网表文件执行仿真操作,包括:
根据所述关键电路模块的名称在所述待测芯片模块中定位所述关键电路模块对应的至少一个目标例化单元,根据所述工艺角参数信息对所述至少一个目标例化单元进行仿真配置并执行仿真操作。
在一些实施例中,所述系统包括逻辑芯片模块和所述至少一个芯片模块,且所述待测芯片模块为所述至少一个芯片模块中的一个或者多个。
第二方面,本公开实施例提供了一种仿真装置,包括:获取单元、抽取单元和仿真单元,其中:
所述获取单元,配置为获取待测芯片模块的模块信息,所述待测芯片模块中包括关键电路模块;
所述抽取单元,配置为根据所述待测芯片模块的模块信息对系统进行网表抽取,生成所述待测芯片模块对应的网表文件;所述网表文件包括所述关键电路模块对应的第一网表文件和所述待测芯片模块对应的第二网表文件;其中,所述第一网表文件和所述第二网表文件的文件名包括工艺角参数信息,所述工艺角参数信息包括制程工艺、工作温度、工作电压;
所述仿真单元,配置为根据所述第一网表文件和所述第二网表文件执行仿真操作,得到所述系统的仿真结果。
第三方面,本公开实施例提供了一种电子设备,包括:
存储器,用于存储能够在处理器上运行的计算机程序;
处理器,用于在运行所述计算机程序时,执行如第一方面中任一项所述的方法。
第四方面,本公开实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被至少一个处理器执行时实现如第一方面中任一项所述的方法。
本公开实施例提供了一种系统仿真方法、装置、电子设备和存储介质,该系统包括至少一个芯片模块,该方法包括:获取待测芯片模块的模块信息,待测芯片模块中包括关键电路模块;根据待测芯片模块的模块信息对系统进行网表抽取,生成待测芯片模块对应的网表文件;网表文件包括关键电路模块对应的第一网表文件和待测芯片模块对应的第二网表文件;其中,第一网表文件和第二网表文件的文件名包括工艺角参数信息,工艺角参数信息包括制程工艺、工作温度、工作电压;根据第一网表文件和第二网表文件执行仿真操作,得到系统的仿真结果。这样,本公开实施例分别对关键电路模块和芯片模块抽取第一网表文件和第二网表文件,且在第一网表文件和第二网表文件的文件名中添加工艺角参数信息,一方面,能够在保证关键电路模块的仿真精度的同时,节省时间和功耗,节省大量人工处理的时间,避免手动处理可能出现的错误;另一方面,有助于在庞大的电路结构中快速定位需要进行多PVT配置的关键电路模块的例化单元,并做出相应的仿真配置,并方便在后续迭代中对电路网表进行维护和更新。
附图说明
图1为一种利用完全Spice对电路模块进行仿真的示意图;
图2为一种利用Verilog和Spice相结合对电路模块进行仿真的示意图;
图3为本公开实施例提供的一种系统仿真方法的流程示意图;
图4为本公开实施例提供的一种芯片系统的示意图;
图5为本公开实施例提供的一种工艺设计的示意图;
图6为本公开实施例提供的一种网表文件的示意图;
图7为本公开实施例提供的一种仿真装置的示意图;
图8为本公开实施例提供的一种仿真测试平台的示意图;
图9为本公开实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释相关公开,而非对该公开的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关公开相关的部分。
除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本公开实施例的目的,不是旨在限制本公开。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
需要指出,本公开实施例所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本公开实施例能够以除了在这里图示或描述的以外的顺序实施。
对本公开实施例进行进一步详细说明之前,先对本公开实施例中涉及的名词和术语进行说明,本公开实施例中涉及的名词和术语适用于如下的解释:
动态随机存取存储器(Dynamic Random Access Memory,DRAM);
双倍数据速率(Double Data Rate,DDR);
高带宽存储器(High Bandwidth Memory,HBM);
三维集成电路(3Dimensions Integrated Circuit,3D-IC或3DIC);
制程工艺、工作电压、工作温度(Process、Voltage、Temperature,PVT);
仿真电路模拟器(Simulation program with integrated circuit emphasis,Spice);
硬件描述语言(Very-High-Speed Integrated Circuit Hardware DescriptionLanguage,Verilog或VHDL);
存储颗粒/存储芯片(Die);
编译型Verilog模拟器(VCS);
灵敏放大器(Sense Amplifier,SA);
子字线驱动(Sub Word line Driver,SWD)。
在HBM等三维集成电路3D-IC结构的电路设计中,为了对整体电路性能进行验证,在设计规范中要求对某些关键电路模块的多个例化单元处于不同的PVT条件下进行同时仿真,来确定芯片性能是否满足要求。
参考仿真工具厂商的用户手册,类似的情况有以下常见的处理流程:
在完全Spice的仿真文件中做相应的特殊配置,可以对同一电路模块的多个例化单元在不同PVT条件下进行仿真。但是对于HBM这种大型电路来讲,完全Spice仿真会消耗大量的机器硬件资源和时间。
在利用完全Spice流程对同一电路模块的多个例化单元在不同PVT条件下进行仿真时,如图1所示,将多个Die(I_die1、I_die2和I_die3)中的模块Coreblock的不同例化单元(I_core1、I_core2和I_core3)分别在三种PVT条件(PVT1、PVT2、PVT3)中同时仿真,可以在Spice文件中进行如下述设置(1)所示的设置:
设置(1):
.module Die_PVT1
.temp XX
.lib xxx.lib<PVT1>
.inc Coreblock.sp
.endmodule
.module Die_PVT2
.temp XX
.lib xxx.lib<PVT2>
.inc Coreblock.sp
.endmodule
.module Die_PVT3
.temp XX
.lib xxx.lib<PVT3>
.inc Coreblock.sp
.endmodule
并同时设置如下:
…
I_core1<port_list>Die_PVT1::Coreblock
…
I_core2<port_list>Die_PVT2::Coreblock
…
I_core3<port_list>Die_PVT3::Coreblock
其中,temp表示PVT中的温度;LIB表示库,例如参数库,用来给定不同的PVT条件;inc xxx表示电路模块对应的仿真网表(xxx.sp文件)。
这种方式的缺点在于:纯Spice仿真会占用大量的仿真资源和时间,且需要对所有的模块例化单元的调用模块前加上“Module_name::”进行定义,导致设置比较麻烦。
利用Verilog和Spice网表结合起来的混合信号仿真流程,能够很大程度地节约运行的硬件资源和时间,而且通过在配置文件中指定电路模块例化单元的层次化全路径,可以实现对同一电路模块的多个例化单元在不同PVT条件下进行仿真。不过这种方法的缺点就是配置麻烦且不够灵活,因为同一电路模块的例化单元可能数量很多,且分布在不同层次的电路结构中,这就导致了指定这些例化单元层次化全路径的工作非常困难,如果在电路设计过程中目标例化单元的层次或者位置发生改变,就需要在配置文件中对相应的例化单元进行层次修改,否则就会造成结果不准确甚至仿真失败。所以,利用这种方法会导致在整个电路设计期间耗费大量的人力,并且极易出错。
在利用Verilog和Spice网表相结合的混合信号仿真流程对同一电路模块的多个例化单元在不同PVT条件下进行仿真时,如图2所示,每个矩形的右上角表示电路的层级,在3D-IC的每个Die中,模块Coreblock的不同例化单元可能位于不同的层级。在进行仿真时,可以将使用Spice网表部分的Coreblock模块仍然在Spice配置文件中设置如前述设置(1)所示。同时在VCS AMS的控制文件中,做如下设置:
…
use_spice-cell Coreblock-icmodule Die_PVT1-inst
top.I_die1.xxx.xxx.I_core1 top.I_die1.yyy.yyy.I_core2…;
use_spice-cell Coreblock-icmodule Die_PVT2-inst
top.I_die2.xxx.xxx.I_core1 top.I_die2.yyy.yyy.I_core2…;
由于use_spice中的模块名相同,均为Coreblock,因此必须通过-inst来指定PVT组中具体的例化单元,否则前面的定义语句会被后面的语句覆盖,无法实现多PVT同时仿真。
这种方式的缺点在于:工程师需要在“-inst”的后面将每个电路模块的例化单元全路径准确写出来,这是非常麻烦且容易出错的。即使可以用通配符*来代替某层例化单元的名字,但是仍然需要多个*来表示多层关系,*的数量需要和层级数量匹配,另外使用*的代价就是仿真中的编译时间增加。当在电路开发阶段,需要频繁变动Coreblock的层次关系和位置时,“-inst”的设置就会变得更加难以维护。
基于此,本公开实施例提供了一种系统仿真方法,该系统包括至少一个芯片模块,该方法包括:获取待测芯片模块的模块信息,待测芯片模块中包括关键电路模块;根据待测芯片模块的模块信息对系统进行网表抽取,生成待测芯片模块对应的网表文件;网表文件包括关键电路模块对应的第一网表文件和待测芯片模块对应的第二网表文件;其中,第一网表文件和第二网表文件的文件名包括工艺角参数信息,工艺角参数信息包括制程工艺、工作温度、工作电压;根据第一网表文件和第二网表文件执行仿真操作,得到系统的仿真结果。这样,本公开实施例分别对关键电路模块和芯片模块抽取第一网表文件和第二网表文件,且在第一网表文件和第二网表文件的文件名中添加工艺角参数信息,一方面,能够在保证关键电路模块的仿真精度的同时,节省时间和功耗,节省大量人工处理的时间,避免手动处理可能出现的错误;另一方面,有助于在庞大的电路结构中快速定位需要进行多PVT配置的关键电路模块的例化单元,并做出相应的仿真配置,并方便在后续迭代中对电路网表进行维护和更新。
下面将结合附图对本公开各实施例进行详细说明。
本公开的一实施例中,参见图3,其示出了本公开实施例提供的一种系统仿真方法的流程示意图。如图3所示,该方法可以包括:
S101:获取待测芯片模块的模块信息,待测芯片模块中包括关键电路模块。
需要说明的是,本公开实施例所提供的仿真方法可以应用于对芯片系统(简称系统)进行仿真测试的仿真装置,或者集成有该仿真装置的仿真测试平台、电子设备等。
其中,该芯片系统可以为3DIC,具体可以为DRAM,例如DDR、DDR4/5/6DRAM等。示例性地,图4示出了一种芯片系统的示意图。如图4所示,该芯片系统包括:底层芯片模块(BaseDie,通常作为逻辑芯片,也称逻辑芯片模块)、n个存储芯片(Core Die,也称存储芯片模块,简称芯片模块),n个存储芯片模块包括Die0、Die1、……、Die(n-2)和顶层芯片模块(Die(n-1),或记作Top Die),其中,n为大于或者等于1的整数,例如可以为2、3、4、8或者16等等。
在本公开实施例中,被检测的待测芯片模块通常为存储芯片模块Core Die,在进行仿真检测时,可以是针对n个存储芯片模块中的一个进行检测,或者也可以是针对n个存储芯片模块中的多个进行检测,这里不作具体限定。例如,如果只针对Die0进行仿真,那么将Die0作为待测芯片模块,获取Die0的模块信息;如果针对n个芯片模块均进行仿真,那么将Die0至Die(n-1)均作为待测芯片模块,分别获取Die0至Die(n-1)的模块信息。
可以理解,图4所示的芯片系统的结构仅为示例性的,具体芯片设计还可能包括其他多种类型,对此不作具体限定。
由于3DIC的结构复杂且电路庞大,按照相关技术的方法对3DIC进行仿真测试往往需要耗费大量的人力、物力以及时间成本,而本公开实施例提供的仿真方法则能够大大提高仿真效率,节省成本。因此,本公开实施例所提供的仿真方法可以应用于对3DIC的仿真测试,但是不仅限于3DIC,对于其它类型的集成电路设计等均能够实现高效的仿真。
在进行仿真操作时,往往需要对3DIC中的关键电路模块(或称关键模块)在多个PVT条件下进行协同仿真。因此,在获取待测芯片模块的模块信息时,还包括获取该待测芯片模块中的关键电路模块的模块信息。
其中,待测芯片模块的模块信息可以包括:待测芯片模块的顶层模块名称、待测芯片模块对应的例化单元名称、待测芯片模块的顶层模块对应的参数库的库名、工艺角参数信息。
关键电路模块的模块信息可以包括:关键电路模块的名称、关键电路模块对应的待测芯片模块的顶层模块名称、关键电路模块对应的参数库的库名。
示例性地,关键电路模块可以是阵列区的SA电路模块,SWD电路模块等。
需要说明的是,在本公开实施例中,在进行芯片模块的电路设计时,一个芯片模块的电路模块可以包括多个层级,顶层模块表示最大的电路层级。示例性的,一个芯片模块的电路层级包括N层,第1层为该芯片模块的整体电路规划,第2层为对第1层的更细致的划分设计,第3层为对第2层的更细致的划分设计……第N层为对第N-1层的更细致的划分设计。可以理解,最大的电路层级即第1层电路层级,也就是本实施例所涉及的顶层模块;可以看出,顶层模块通常为该芯片模块(Die模块)自身。
还需要说明的是,为了对电路的整体性能进行验证,一个芯片模块以及其中的电路模块各自可以对应一个或者多个例化单元。其中,例化单元就是给这些电路模块实例化,给定一组参数值用以固定测试条件/仿真条件,也就是说,电路模块对应的一个例化单元可以用于在一种固定的仿真条件下测试该电路模块的性能。可以理解,当需要进行多PVT仿真时,芯片模块就对应多个例化单元。其中,参数库(或称工艺参数库)中配置有不同仿真条件下的参数;工艺角参数信息(或称PVT组名、PVT信息、PVT条件、PVT名信息,一个工艺角参数信息表示一组预设数值的PVT)用于指示该例化单元所对应的PVT,具体数据在参数库中进行配置。
关键电路模块为本公开实施例中需要进行多PVT仿真的电路模块,将芯片模块中除关键电路模块之外的电路模块均称作非关键电路模块(或称非关键模块)。也就是说,对于待测芯片模块而言,其包括至少一个层级的电路模块,至少一个层级的电路模块包括关键电路模块和非关键电路模块。
例如,以待测芯片模块包括一个芯片模块为例(后续均以一个芯片模块为例对本公开实施例的实现进行描述),该待测芯片模块包括3个层级的电路模块,其中,第1层级为顶层模块,即芯片模块自身;在第2层级,将顶层模块划分为电路模块1和电路模块2;在第3层级,将电路模块1划分为电路模块3和电路模块4,将电路模块2划分为电路模块5和电路模块6。假设电路模块5为关键电路模块,其余的电路模块则均为非关键电路模块,且电路模块2和顶层模块为包含关键电路模块的非关键电路模块。
参见图5,其示出了本公开实施例提供的一种工艺设计的示意图。在图5所示的工艺设计中,3DIC有工艺项目1设计的一个Die(用Die-0表示)和工艺项目2设计的4个Die(分别用Die-1、Die-2、Die-3和Die-4表示)。其中,工艺项目2中4个Die是同一个Die模块的4个例化单元,这4个Die中某个关键电路模块IMX2X1需要在多个PVT条件下进行仿真。
结合图5所示,在实现该仿真方法的过程中,首先需要提供如下述表1和表2所示的信息。其中,表1为待测芯片模块的模块信息,包括工艺项目2中的Die模块对应的4个例化单元的信息,表2为关键电路模块的信息,包括工艺项目2中的Die模块中的某个关键电路模块IMX2X1的模块信息。
表1
表2
如表1所示,Die_name表示待测芯片模块的顶层模块名称(由于一个Die模块通常处于相同的PVT条件,也称作该待测芯片模块所属的PVT区域的顶层模块名称);Instance_name表示待测芯片模块对应的例化单元名称;cds_rundir表示该待测芯片模块对应的工艺项目路径;Lib_name表示待测芯片模块的顶层模块对应的参数库的库名;PVT_name表示工艺角参数信息,具体是某一组特定的PVT数值所对应的名称。
如表2所示,Cell_name表示关键电路模块的名称;Parent_pvt_cell_name表示关键电路模块对应的待测芯片模块的顶层模块名称(即表1中的Die_name);cds_rundir表示该关键电路模块对应的工艺项目路径;Lib_name表示该关键电路模块对应的参数库的库名。
结合图5、表1和表2所示,需要对关键电路模块IMX2X1在coredie_tt_25(图5中表示为TT 25C)、coredie_ss_110(图5中表示为SS 110C)、coredie_ff_110(图5中表示为FF110C)和coredie_ss_m40(图5中表示为SS-40C)这4个工艺角参数信息下进行多PVT仿真。
从表1可以看出,对于该待测芯片模块而言,每种不同的工艺角参数信息都对应有一个该待测芯片模块的例化单元,这里,与工艺角参数信息“coredie_tt_25”对应的例化单元为“I_TA_core_top_w_98”、与工艺角参数信息“coredie_ss_110”对应的例化单元为“I_TA_core_top_w_99”、与工艺角参数信息“coredie_ff_110”对应的例化单元为“I_TA_core_top_w_100”、与工艺角参数信息“coredie_ss_m40”对应的例化单元为“I_TA_core_top_w_101”。
另外,工艺项目2的路径下包括了很多参数库(或称工艺参数库),例如表1中,Die_lib_name表示待测芯片模块对应的参数库(Die_lib)的库名,例如表2中,Cell_lib_name表示电路模块(或称Cell模块)对应的参数库(Cell_lib)的库名,这里表示的是关键电路模块对应的参数库;其中,Die_lib_name和Cell_lib_name分别与对应的表格中第一列所示电路模块的层级对应,如果是die模块,就调用Die_lib,如果是Cell模块,就调用Cell_lib。
S102:根据待测芯片模块的模块信息对系统进行网表抽取,生成待测芯片模块对应的网表文件,网表文件包括关键电路模块对应的第一网表文件和待测芯片模块对应的第二网表文件。
需要说明的是,可以通过运行自动化脚本进行网表抽取,并根据步骤S101中获取到的模块信息进行电路模块的例化单元检索以及模块名替换,以在各模块中添加对应的工艺角参数信息。
在一些实施例中,根据待测芯片模块的模块信息对系统进行网表抽取,生成待测芯片模块对应的网表文件,可以包括:
根据待测芯片模块的模块信息进行第一网表抽取,生成关键电路模块对应的第一网表文件;以及,
根据待测芯片模块的模块信息进行第二网表抽取,生成待测芯片模块对应的第二网表文件;
其中,第一网表文件的仿真精度高于第二网表文件的仿真精度。
需要说明的是,在进行网表抽取时,对于待测芯片模块中的关键模块和非关键模块,分别采用不同的方式进行网表抽取。对于关键电路模块,采用第一网表抽取的方式进行,得到仿真精度较高的第一网表文件;对于非关键电路模块,采用第二网表抽取的方式进行,得到仿真精度较低的第二网表文件。这里的“较高”和“较低”是相对第一网表和文件和第二网表文件的比较而言的。
更具体地,第一网表抽取包括Spice网表抽取,第二网表抽取包括Verilog网表抽取;对应的,第一网表文件包括Spice网表文件,第二网表文件包括Verilog网表文件。
需要说明的是,因为Spice网表文件仿真精确,但是存在耗时的缺点,所以本公开实施例只对关键电路模块执行Spice网表抽取;Verilog网表文件相较于Spice网表文件精确度较低,但是速度快节省时间,所以对于非关键电路模块执行Verilog网表抽取进行模拟仿真即可,而不必追求较高的精准性。从而在保证关键电路模块的多PVT协同仿真的精度的情况下,还能够节省时间和资源成本等,提升仿真效率。
在一些实施例中,根据待测芯片模块的模块信息进行第一网表抽取,生成关键电路模块对应的第一网表文件,可以包括:
在根据待测芯片模块的模块信息执行第一网表抽取的过程中,检索待测芯片模块的每一层级中的第一例化单元,对第一例化单元对应的网表文件的名称添加工艺角参数信息,得到第一网表文件;
其中,第一例化单元为关键电路模块对应的例化单元。
在一些实施例中,根据待测芯片模块的模块信息进行第二网表抽取,生成待测芯片模块对应的第二网表文件,可以包括:
在根据待测芯片模块的模块信息执行第二网表抽取的过程中,检索待测芯片模块的每一层级中的第二例化单元,对第二例化单元对应的网表文件的名称添加工艺角参数信息,得到第二网表文件;其中,第二例化单元为非关键电路模块对应的例化单元。
需要说明的是,在生成第一网表文件时,是在待测芯片模块的每一层的电路模块中进行检索,检索到关键电路模块对应的每一个例化单元(记作第一例化单元),然后对按照第一网表抽取得到的第一例化单元的网表文件的文件名添加工艺角参数信息,得到第一网表文件。
对于第二网表文件也是同理,在生成第二网表文件时,也是在待测芯片模块的每一层的电路模块中进行检索,检索到非关键电路模块对应的每一个例化单元(记作第二例化单元),然后对按照第二网表抽取得到的第二例化单元的网表文件的文件名添加工艺角参数信息,得到第二网表文件。
这里,非关键电路模块可以分为包含关键电路模块的非关键电路模块和不包含关键电路模块的非关键电路模块,可以对这两种非关键电路模块的网表文件的文件名均添加工艺角参数信息;或者,只对包含关键电路模块的非关键电路模块的网表文件的文件名添加工艺角参数信息。
图6为根据表1和表2所示的模块信息进行网表抽取后,所得网表文件的示意图。其中,“.v”表示进行Verilog网表抽取生成的Verilog网表文件,“.sp”表示进行Spice网表抽取生成的Spice网表文件。其中的每一行都表示一个网表文件。
具体来说,如图6所示,对非关键电路模块进行Verilog网表抽取,对顶层模块(TA_core_top_w)分别生成4种工艺角参数信息下的4个例化单元对应的4个Verilog网表文件,文件名分别为:TA_core_top_w_coredie_ff_110.v(包括有工艺角参数信息ff_110)、TA_core_top_w_coredie_ss_110.v(包括有工艺角参数信息ss_110)、TA_core_top_w_coredie_ss_m40.v(包括有工艺角参数信息ss_m40)、TA_core_top_w_coredie_tt_25.v(包括有工艺角参数信息tt_25)。
对关键电路模块(IMX2X1)进行Spice网表抽取,分别生成4种工艺角参数信息下的4个例化单元对应的4个Spice网表文件,文件名分别为:IMX2X1_coredie_ff_110.sp(包括有工艺角参数信息ff_110)、IMX2X1_coredie_ss_110.sp(包括有工艺角参数信息ss_110)、IMX2X1_coredie_ss_m40.sp(包括有工艺角参数信息ss_m40)、IMX2X1_coredie_tt_25.sp(包括有工艺角参数信息tt_25)。
也就是说,在执行网表抽取操作之后,生成了关键电路模块IMX21的Spice网表,并将4组工艺角参数信息加入了文件名,生成了4个Spice网表文件。
同样,包含这些关键电路模块的顶层模块(Die模块)“TA_core_top_w”所抽取的Verilog网表的文件名中,也被加入了4组工艺角参数信息。对于其它的非关键电路模块,均进行Verilog网表抽取。这些非关键电路模块的对应的第二网表文件中,文件名同样可以包括工艺角参数信息。
示例性地,以下所示为待测芯片模块对应的第二网表文件的文件名示意:
TA_core_top_w_coredie_ss_110I_TA_core_top_w_99(<Port list…>);
TA_core_top_w_coredie_tt_25I_TA_core_top_w_98(<Port list…>);
TA_core_top_w_coredie_ss_m40 I_TA_core_top_w_101(<Port list…>);
TA_core_top_w_coredie_ff_110I_TA_core_top_w_100(<Port list…>);
以其中的第一行为例,“TA_core_top_w_coredie_ss_110”表示添加了工艺角参数信息“ss_110”的例化单元对应的第二网表文件的文件名,“I_TA_core_top_w_99(<Portlist…>)”表示的是原来的包含关键电路模块的例化单元的名字。
可见,在3D-IC的Top层Verilog网表“TA_top_w.v”中,脚本将包含关键电路模块的“TA_core_top_w”重命名,在文件名(或称模块名)后面添加了工艺角参数信息。
进一步地,打开某个“TA_core_top_w_<PVT_name>.v”文件,例如打开“TA_core_top_w_coredie_ff_110.v”之后,如下所示:
module TA_core_top_w_coredie_ff_110(<port_list…>);
…
IMX2X1_coredie_ff_110IMX2X1_0(<port_list…>);
可以看到,电路模块(module)的名称被重命名加入了工艺角参数信息ff_110,并且在抽取网表的过程中,脚本将此电路模块中所有层次下的全部关键电路模块的名字均重命名加入了工艺角参数信息:
进一步打开对应的“IMX2X1_coredie_ff_110.sp”之后,如下所示:
.subckt IMX2X1_coredie_ff_110a b s y
可以看到,IMX2X1的子电路命名中也添加了工艺角参数信息ff_110。
对于另外的三个工艺角参数信息也是采用相同的方式对网表文件进行处理。
S103:根据第一网表文件和第二网表文件执行仿真操作,得到系统的仿真结果。
需要说明的是,根据前述所得的第一网表文件和第二网表文件,利用对应的仿真工具(如Spice和Verilog)执行仿真操作,就能够得到针对该系统在所指定的若干个工艺角参数信息下的协同仿真结果。
在一些实施例中,根据第一网表文件和第二网表文件执行仿真操作,包括:
根据关键电路模块的名称在芯片模块中定位关键电路模块对应的至少一个目标例化单元,并根据工艺角参数信息对至少一个目标例化单元进行仿真配置并执行仿真操作。
需要说明的是,由于前述所得的第一网表文件和第二网表文件的文件名均包括工艺角参数信息,那么在对关键电路模块进行多PVT协同仿真时,就可以根据关键电路模块的名称快速定位其所对应的例化单元(称作目标例化单元),同时,由于该例化单元对应的网表文件包括工艺角参数信息,从而可以根据该工艺角参数信息对电路结构进行相应的PVT配置,实现快速定位和仿真测试。
所有在PVT条件下的关键电路模块的例化单元的调用语句中,均将模块重命名为IMX2X1_<PVT组名>,如下所示:
use_spice-cell IMX2X1_coredie_ss_110-icmodule coredie_ss_110;
use_spice-cell IMX2X1_coredie_ss_m40-icmodule coredie_ss_m40;
use_spice-cell IMX2X1_coredie_tt_25-icmodule coredie_tt_25;
use_spice-cell IMX2X1_coredie_ff_110-icmodule coredie_ff_110;
因此,在VCS AMS的控制文件中,只需要对“use_spice”的“-cell”定义相应的重命名后的模块名,仿真工具在对相应的模块例化单元进行分析时,可以根据其模块名中的工艺角参数信息(PVT组名)分别赋予对应的PVT条件进行仿真,不需要再进行“–inst”的定义,大大提高了效率,且避免人工添加路径或者进行设置易出错的问题。
简言之,本公开实施例提供了一种3DIC快速配置多PVT模块协同仿真的方法,涉及半导体集成电路,特别涉及3DIC。利用本方法在多PVT条件下的协同仿真中对关键电路模块的例化单元进行快速地定位和配置,应用于对3DIC的仿真验证领域。
为了解决仿真流程所遇到的问题(如设置麻烦、易出错等),提高3D-IC的关键电路模块在多个PVT条件下协同仿真的运行效率,本公开实施例提出了一个能快速对关键电路模块的例化单元进行定位和配置的方法,无论关键电路模块的例化单元的数量、层次和位置发生什么变化,都会准确地将这些例化单元配置到相应的PVT条件下。
在具体实现过程中,由用户(或工程师、测试人员)提供关键电路模块所处的PVT区域的顶层模块的名称,在3D-IC设计中,此PVT区域顶层模块通常是Die模块。本方法对顶层模块进行抽取网表时,会检索所有层次中该关键电路模块的例化单元,将找到的例化单元调用的模块名加上PVT组名后缀,这样就可以将不同的PVT区域的顶层模块中各自的例化单元分组,不需要再在VCS AMS的控制文件的“use_spice–inst”的选项后面添加所有全层次路径的例化单元。即使电路开发过程中例化单元的数量、层级、或位置发生变化,只需再次抽取网表就可以实现信息更新。
该方法适用于所有多PVT条件协同仿真需求的3D-IC电路,能够帮助电路设计工程师在庞大的电路原理图中全面检索并快速定位需要进行多PVT配置的电路模块例化单元,并做出相应的仿真配置。节省了大量的人工处理的时间,避免了手动处理错误导致的风险,并方便在后续迭代中对电路网表进行维护和更新。本方法可以通过自动化脚本实现,更加方便用户使用。
以图5的设计为例,3D-IC有工艺项目1设计的一个Die和工艺项目2设计的4个Die,其中工艺项目2中4个Die是同一个Die模块的4个例化单元,这4个Die中某个关键模块IMX2X1需要在多个PVT条件下进行仿真,流程中对此关键电路模块抽取Spice网表来处理,其它非关键模块抽取Verilog网表。
具体实现过程如下:
首先,电路设计工程师提供需要进行多PVT系统仿真的关键电路模块的信息,包括:信息1(待测芯片模块的模块信息):所属的PVT区域顶层模块名称,在3D-IC top层的例化单元名称、顶层模块所属参数库的库名,PVT组名等;信息2(关键电路模块的模块信息):关键电路模块名称、所属PVT区域顶层模块名称、参数库的库名等。
然后运行自动化脚本,进行网表抽取,并根据前述工程师提供的信息进行电路模块例化单元检索和模块名替换,将模块名中添加对应的PVT组名信息。运行脚本之后,生成如图6所示的Verilog网表(*.v)和Spice网表(*.sp):
如图6所示,生成了关键电路模块IMX21的Spice网表,并将4组PVT信息加入了文件名,生成了4个Spice网表文件。同样,包含这些关键电路模块的Die“TA_core_top_w”所抽取的Verilog网表的文件名中,也被加入了4组PVT信息。其它非关键模块,均进行Verilog网表抽取。
经过验证,该方法能够在保证3DIC的功能验证中配置多PVT模块协同仿真的稳定性和质量可靠性的同时,减少了在传统方法中的人为错误概率,大大提高了工作效率。
本公开的另一实施例中,参见图7,其示出了本公开实施例提供的一种仿真装置的组成结构示意图。如图7所示,该仿真装置30包括获取单元301、抽取单元302和仿真单元303,其中:
获取单元301,配置为获取待测芯片模块的模块信息,待测芯片模块中包括关键电路模块;
抽取单元302,配置为根据待测芯片模块的模块信息对系统进行网表抽取,生成待测芯片模块对应的网表文件;网表文件包括关键电路模块对应的第一网表文件和待测芯片模块对应的第二网表文件;其中,第一网表文件和第二网表文件的文件名包括工艺角参数信息,工艺角参数信息包括制程工艺、工作温度、工作电压;
仿真单元303,配置为根据第一网表文件和第二网表文件执行仿真操作,得到系统的仿真结果。
在一些实施例中,待测芯片模块的模块信息包括:
待测芯片模块的顶层模块名称、待测芯片模块对应的例化单元名称、待测芯片模块的顶层模块对应的参数库的库名、工艺角参数信息。
在一些实施例中,获取单元301,还配置为获取关键电路模块的模块信息;
其中,关键电路模块的模块信息包括:关键电路模块的名称、关键电路模块对应的待测芯片模块的顶层模块名称、关键电路模块对应的参数库的库名。
在一些实施例中,抽取单元302,还配置为根据待测芯片模块的模块信息进行第一网表抽取,生成关键电路模块对应的第一网表文件;以及,根据待测芯片模块的模块信息进行第二网表抽取,生成待测芯片模块对应的第二网表文件;其中,第一网表文件的仿真精度高于第二网表文件的仿真精度。
在一些实施例中,第一网表抽取包括Spice网表抽取,第二网表抽取包括Verilog网表抽取;对应的,第一网表文件包括Spice网表文件,第二网表文件包括Verilog网表文件。
在一些实施例中,待测芯片模块包括至少一个层级的电路模块,至少一个层级的电路模块包括关键电路模块和非关键电路模块。
在一些实施例中,抽取单元302,还配置为在根据待测芯片模块的模块信息执行第一网表抽取的过程中,检索待测芯片模块的每一层级中的第一例化单元,对第一例化单元对应的网表文件的名称添加工艺角参数信息,得到第一网表文件;其中,第一例化单元为关键电路模块对应的例化单元。
在一些实施例中,抽取单元302,还配置为在根据待测芯片模块的模块信息执行第二网表抽取的过程中,检索待测芯片模块的每一层级中的第二例化单元,对第二例化单元对应的网表文件的名称添加工艺角参数信息,得到第二网表文件;其中,第二例化单元为包含关键电路模块的非关键电路模块对应的例化单元。
在一些实施例中,仿真单元303,还配置为根据关键电路模块的名称在芯片模块中定位关键电路模块对应的至少一个目标例化单元,并根据工艺角参数信息对至少一个目标例化单元进行仿真配置并执行仿真操作。
需要说明的是,本实施例提供的仿真装置应用于前述实施例中的仿真方法,对于本公开实施例未披露的细节,请参照前述实施例的描述而理解。
可以理解地,在本实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
基于上述仿真装置30,参见图8,其示出了本公开实施例提供的一种仿真测试平台40的组成结构示意图。如图8所示,该仿真测试平台40包括前述实施例任一项所述的仿真装置30。
这样,在对3DIC等芯片进行测试时,能够节省时间,简化设置流程,进而提高仿真效率。
进一步地,本实施例提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述实施例中任一项所述的仿真方法。
基于上述的一种仿真装置的组成以及计算机存储介质,参见图9,其示出了本公开实施例提供的一种电子设备50的具体硬件结构示意图。如图9所示,可以包括:通信接口501、存储器502和处理器503;各个组件通过总线系统504耦合在一起。可理解,总线系统504用于实现这些组件之间的连接通信。总线系统504除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图9中将各种总线都标为总线系统504。其中,通信接口501,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
存储器502,用于存储能够在处理器503上运行的计算机程序;
处理器503,用于在运行所述计算机程序时,执行:
获取待测芯片模块的模块信息,待测芯片模块中包括关键电路模块;
根据待测芯片模块的模块信息对系统进行网表抽取,生成待测芯片模块对应的网表文件;网表文件包括关键电路模块对应的第一网表文件和待测芯片模块对应的第二网表文件;其中,第一网表文件和第二网表文件的文件名包括工艺角参数信息,工艺角参数信息包括制程工艺、工作温度、工作电压;
根据第一网表文件和第二网表文件执行仿真操作,得到系统的仿真结果。
可以理解,本公开实施例中的存储器502可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、DRAM、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步链动态随机存取存储器(Synchronouslink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本文描述的系统和方法的存储器502旨在包括但不限于这些和任意其它适合类型的存储器。
而处理器503可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器503中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器503可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本公开实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本公开实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器502,处理器503读取存储器502中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本公开所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
可选地,作为另一个实施例,处理器503还配置为在运行所述计算机程序时,执行前述实施例中应用于终端设备的任一项所述的仿真方法。
以上所述,仅为本公开的较佳实施例,并非用于限定本公开的保护范围。
需要说明的是,在本公开中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
本公开所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本公开所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本公开所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种系统仿真方法,其特征在于,所述系统包括至少一个芯片模块,所述方法包括:
获取待测芯片模块的模块信息,所述待测芯片模块中包括关键电路模块;
根据所述待测芯片模块的模块信息对所述系统进行网表抽取,生成所述待测芯片模块对应的网表文件;所述网表文件包括所述关键电路模块对应的第一网表文件和所述待测芯片模块对应的第二网表文件;其中,所述第一网表文件和所述第二网表文件的文件名包括工艺角参数信息,所述工艺角参数信息包括制程工艺、工作温度、工作电压;
根据所述第一网表文件和所述第二网表文件执行仿真操作,得到所述系统的仿真结果。
2.根据权利要求1所述的方法,其特征在于,所述待测芯片模块的模块信息包括:
所述待测芯片模块的顶层模块名称、所述待测芯片模块对应的例化单元名称、所述待测芯片模块的顶层模块对应的参数库的库名、所述工艺角参数信息。
3.根据权利要求2所述的方法,其特征在于,所述获取待测芯片模块的模块信息,还包括:
获取所述关键电路模块的模块信息;
其中,所述关键电路模块的模块信息包括:所述关键电路模块的名称、所述关键电路模块对应的待测芯片模块的顶层模块名称、所述关键电路模块对应的参数库的库名。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述根据所述待测芯片模块的模块信息对所述系统进行网表抽取,生成所述待测芯片模块对应的网表文件,包括:
根据所述待测芯片模块的模块信息进行第一网表抽取,生成所述关键电路模块对应的第一网表文件;以及,
根据所述待测芯片模块的模块信息进行第二网表抽取,生成所述待测芯片模块对应的第二网表文件;
其中,所述第一网表文件的仿真精度高于所述第二网表文件的仿真精度。
5.根据权利要求4所述的方法,其特征在于,所述第一网表抽取包括Spice网表抽取,所述第二网表抽取包括Verilog网表抽取;
对应的,所述第一网表文件包括Spice网表文件,所述第二网表文件包括Verilog网表文件。
6.根据权利要求4所述的方法,其特征在于,所述待测芯片模块包括至少一个层级的电路模块,所述至少一个层级的电路模块包括所述关键电路模块和非关键电路模块;其中:
所述根据所述待测芯片模块的模块信息进行第一网表抽取,生成所述关键电路模块对应的第一网表文件,包括:
在根据所述待测芯片模块的模块信息执行所述第一网表抽取的过程中,检索所述待测芯片模块的每一层级中的第一例化单元,对所述第一例化单元对应的网表文件的名称添加所述工艺角参数信息,得到所述第一网表文件;其中,所述第一例化单元为所述关键电路模块对应的例化单元;
所述根据所述待测芯片模块的模块信息进行第二网表抽取,生成所述待测芯片模块对应的第二网表文件,包括:
在根据所述待测芯片模块的模块信息执行所述第二网表抽取的过程中,检索所述待测芯片模块的每一层级中的第二例化单元,对所述第二例化单元对应的网表文件的名称添加所述工艺角参数信息,得到所述第二网表文件;其中,所述第二例化单元为所述非关键电路模块对应的例化单元。
7.根据权利要求3所述的方法,其特征在于,所述根据所述第一网表文件和所述第二网表文件执行仿真操作,包括:
根据所述关键电路模块的名称在所述待测芯片模块中定位所述关键电路模块对应的至少一个目标例化单元,根据所述工艺角参数信息对所述至少一个目标例化单元进行仿真配置并执行仿真操作。
8.根据权利要求5至7任一项所述的方法,其特征在于,所述系统包括逻辑芯片模块和所述至少一个芯片模块,且所述待测芯片模块为所述至少一个芯片模块中的一个或者多个。
9.一种仿真装置,其特征在于,所述仿真装置包括获取单元、抽取单元和仿真单元,其中:
所述获取单元,配置为获取待测芯片模块的模块信息,所述待测芯片模块中包括关键电路模块;
所述抽取单元,配置为根据所述待测芯片模块的模块信息对系统进行网表抽取,生成所述待测芯片模块对应的网表文件;所述网表文件包括所述关键电路模块对应的第一网表文件和所述待测芯片模块对应的第二网表文件;其中,所述第一网表文件和所述第二网表文件的文件名包括工艺角参数信息,所述工艺角参数信息包括制程工艺、工作温度、工作电压;
所述仿真单元,配置为根据所述第一网表文件和所述第二网表文件执行仿真操作,得到所述系统的仿真结果。
10.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储能够在处理器上运行的计算机程序;
处理器,用于在运行所述计算机程序时,执行如权利要求1至8中任一项所述的方法。
11.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序被至少一个处理器执行时实现如权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310383463.XA CN116595915A (zh) | 2023-04-06 | 2023-04-06 | 一种系统仿真方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310383463.XA CN116595915A (zh) | 2023-04-06 | 2023-04-06 | 一种系统仿真方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116595915A true CN116595915A (zh) | 2023-08-15 |
Family
ID=87599748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310383463.XA Pending CN116595915A (zh) | 2023-04-06 | 2023-04-06 | 一种系统仿真方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116595915A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117313599A (zh) * | 2023-10-10 | 2023-12-29 | 上海合芯数字科技有限公司 | 电路仿真方法、装置、电子设备及介质 |
CN118246374A (zh) * | 2024-05-28 | 2024-06-25 | 珠海凌烟阁芯片科技有限公司 | 用于芯片设计的参数随电压温度变化的预测方法及装置 |
-
2023
- 2023-04-06 CN CN202310383463.XA patent/CN116595915A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117313599A (zh) * | 2023-10-10 | 2023-12-29 | 上海合芯数字科技有限公司 | 电路仿真方法、装置、电子设备及介质 |
CN117313599B (zh) * | 2023-10-10 | 2024-05-14 | 上海合芯数字科技有限公司 | 电路仿真方法、装置、电子设备及介质 |
CN118246374A (zh) * | 2024-05-28 | 2024-06-25 | 珠海凌烟阁芯片科技有限公司 | 用于芯片设计的参数随电压温度变化的预测方法及装置 |
CN118246374B (zh) * | 2024-05-28 | 2024-08-06 | 珠海凌烟阁芯片科技有限公司 | 用于芯片设计的参数随电压温度变化的预测方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116595915A (zh) | 一种系统仿真方法、装置、电子设备和存储介质 | |
US8860458B2 (en) | Integrated circuits with logic regions having input and output bypass paths for accessing registers | |
US8788988B2 (en) | Managing consistency of multiple-source fabrication data in an electronic design environment | |
EP3185027B1 (en) | Information processing method and device and computer storage medium | |
US11783104B2 (en) | Apparatus and method for mapping foundational components during design porting from one process technology to another process technology | |
US10437946B1 (en) | Using implemented core sources for simulation | |
US10235485B1 (en) | Partial reconfiguration debugging using hybrid models | |
US6658628B1 (en) | Developement of hardmac technology files (CLF, tech and synlib) for RTL and full gate level netlists | |
CN113408222B (zh) | 文件生成方法、装置、电子设备及存储介质 | |
US20170140087A1 (en) | Method and device for chip integration and storage medium | |
US6526561B2 (en) | Database for designing integrated circuit device, and method for designing integrated circuit device | |
US6738953B1 (en) | System and method for memory characterization | |
CN117195818B (zh) | 电源设计命令生成方法、装置、电子设备及存储介质 | |
US9298875B2 (en) | Semiconductor circuit design method, memory compiler and computer program product | |
US20090288055A1 (en) | Method and system for characterizing an integrated circuit design | |
US9697314B1 (en) | Identifying and using slices in an integrated circuit (IC) design | |
US6820048B1 (en) | 4 point derating scheme for propagation delay and setup/hold time computation | |
US20180107777A1 (en) | Optimizing an integrated circuit (ic) design comprising at least one wide-gate or wide-bus | |
US20180107779A1 (en) | Multi-bit-mapping aware clock gating | |
US6668356B2 (en) | Method for designing circuits with sections having different supply voltages | |
US9690890B1 (en) | Creating and using a wide-bus data structure to represent a wide-bus in an integrated circuit (IC) design | |
US7418675B2 (en) | System and method for reducing the power consumption of clock systems | |
US7389484B2 (en) | Method and apparatus for tiling memories in integrated circuit layout | |
US10152566B1 (en) | Constraint based bit-stream compression in hardware for programmable devices | |
US6571374B1 (en) | Invention to allow multiple layouts for a schematic in hierarchical logical-to-physical checking on chips |
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 |