CN113420516B - 一种优化加载电路网表的方法 - Google Patents
一种优化加载电路网表的方法 Download PDFInfo
- Publication number
- CN113420516B CN113420516B CN202110801239.9A CN202110801239A CN113420516B CN 113420516 B CN113420516 B CN 113420516B CN 202110801239 A CN202110801239 A CN 202110801239A CN 113420516 B CN113420516 B CN 113420516B
- Authority
- CN
- China
- Prior art keywords
- netlist
- circuit
- loaded
- loading
- statement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
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
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
一种优化加载电路网表的方法,包括以下步骤:进行网表预加载,处理预加载的网表内容,提取网表语句关键字;根据语句关键字,标记未经过实例化的子电路块和器件模型块;根据语句关键字,预处理正式网表加载时依赖的网表内容;正式加载网表时,跳过已标记的子电路模块和器件模块,并从预加载结果中获取加载所需的正确依赖。本发明的优化加载电路网表的方法,能够通过预加载筛除冗余的电路网表内容,加快正式加载网表的速度,并通过提前处理加载电路网表时需要的依赖,保证加载正确执行。
Description
技术领域
本发明涉及集成电路计算机辅助设计技术领域,特别是涉及一种优化加载电路网表的方法。
背景技术
在集成电路的设计中,模拟仿真进行之前,需要对网表内容进行加载并解析成特定的数据结构。随着电路网表内容量增加,尤其是网表引用巨型库时,加载过耗时非常长,严重影响仿真器效率。如何快速有效的解析网表,成为仿真器前端(parser)中需要解决的一个重要问题。
对于中小规模电路网表而言,解析网表所耗时间占仿真时间比重并不高。但是对于大规模的网表,前端效率变得尤其重要,考虑大规模电路网表的特点,其所含冗余内容往往十分巨大,因此如何从网表中快速筛选出有用信息是一个非常实用的功能。
目前,在集成电路仿真领域,比较常用的模拟仿真器有:Synopsys公司的hspice、Cadence公司的spectre。但是对于大规模的电路网表内容解析,不少模拟仿真器还在探索阶段。因此,提出一种优化电路网表加载的方法,成为亟待解决的问题。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种优化加载电路网表的方法,能够快速有效地加载电路网表,提高仿真器前端效率。
为实现上述目的,本发明提供的一种优化加载电路网表的方法,包括以下步骤:
进行网表预加载,处理预加载的网表内容,提取网表语句关键字;
根据语句关键字,标记未经过实例化的子电路块和器件模型块;
根据语句关键字,预处理正式网表加载时依赖的网表内容;
正式加载网表时,跳过已标记的子电路模块和器件模块,并从预加载结果中获取加载所需的正确依赖。
进一步地,所述进行网表预加载,处理预加载的网表内容,提取网表语句关键字的步骤,还包括,
在正式加载电路网表之前进行网表预加载,读入网表内容,根据关键词对限定的网表语句进行分析处理;
所述限定的网表语句,包括,关键词subckt、关键词model开头的块语句、器件关键词定义的器件语句、option开头的选项语句,以及定义网表加载方式的语句。
进一步地,所述根据语句关键字,标记未经过实例化的子电路块和器件模型块的步骤,还包括,
根据提取的关键字,识别关键字定义的块语句,并进行标记;
预加载处理并标记出未经实例化的块语句定义的内容。
进一步地,还包括,
根据关键词识别出网表中的子电路块和器件模型块并记录;
根据器件关键词找出并记录被器件实例化过的子电路或器件模型。
进一步地,还包括,根据电路器件关键词找出被实例化过的子电路定义和器件模型定义,筛选出未经过实例化的子电路和器件模型,作为电路网表中的冗余内容。
进一步地,所述根据语句关键字,预处理正式网表加载时依赖的网表内容的步骤,还包括,
根据提取的关键字,识别并读取关键字定义的正式加载电路时依赖的信息。
进一步地,所述正式加载网表时,跳过已标记的子电路模块和器件模块,并从预加载结果中获取加载所需的正确依赖的步骤,还包括,在读块语句之前,从预处理的结果中获取未经实例化的块信息,判断是否加载网表块内容。
更进一步地,还包括,读到关键字定义的块语句式时,和预处理阶段标记的冗余块进行对比,若冗余,则整块跳过,并从预加载的结果中获取加载所需的正确依赖。
为实现上述目的,本发明还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的优化加载电路网表的方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的优化加载电路网表的方法的步骤。
本发明的优化加载电路网表的方法、电子设备及计算机可读存储介质,具有以下有益效果:
1)能够快速的提前检查出电路网表中的冗余部分,并在正式加载的时候直接跳过,提高了网表加载的效率;同时提前解决正式加载时对网表内容的依赖,保证网表读取的正确性。;
2)能够快速有效地提升网表读取的效率。尤其适用于冗余内容多的大规模网表加载,在实际的工程应用中,此方法极大地提高了仿真器前端的速度。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的优化加载电路网表的方法流程图;
图2为根据本发明的筛除冗余子电路块的示意图;
图3为根据本发明的正确获取加载依赖的示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1
图1为根据本发明的优化加载电路网表的方法流程图,下面将参考图1,对本发明的优化加载电路网表的方法进行详细描述。
首先,在步骤101,进行网表预加载,逐行处理网表内容,提取网表语句关键字。
优选地,在正式加载电路网表之前进行网表预加载,处理电路网表语句,逐行读入网表内容,根据关键词判断,提前对限定的网表语句进行分析处理。
优选地,限定的网表语句,包括关键词subckt,关键词model开头的块语句、器件关键词定义的器件语句、以及option开头的选项语句和其他定义网表加载方式的语句。
在步骤102,根据语句关键字,标记未经过实例化的子电路块和器件模型块。
优选地,根据提取的关键字,识别关键词subckt,model定义的块语句,并进行标记。
优选地,预加载标记出被实例化的子电路,同时标记出被实例化的器件模型。
优选地,在预处理阶段的后处理中,对已标记的子电路块和器件模型块与已标记的实例化过的子电路或器件模型进行对比,筛选出未被实例化过的子电路和器件模型,作为冗余的网表内容进行标记。
本实施例中,首先根据关键词subckt,model识别出网表中的子电路块和器件模型块,进行记录;同时根据器件关键词找出并记录被器件实例化过的子电路或器件模型。在预处理逐行处理完以后,通过后处理对比筛选出冗余块内容。
在步骤103,根据语句关键字,预处理正式网表加载时依赖的网表内容。该步骤中,预加载预处理正式加载网表时依赖的网表内容。
优选地,根据提取的关键字,识别关键词option等定义的正式加载电路时依赖的信息,并提前处理。该步骤中,保证在正式加载之前,所依赖信息被正确攫取。
本发明实施例中,根据关键词预处理加载依赖,如部分加载网表时依赖的option语句,预处理阶段提前读取此类语句,保证加载的正确执行。
在步骤104,正式加载网表时,跳过已标记的子电路模块和器件模块,并从预加载结果中获取加载所需的正确依赖。该步骤中,正式加载时,通过读入预加载结果,跳过网表冗余内容。并获取正确依赖。
优选地,正式加载网表的过程中,读块语句subckt,model之前,从预处理的结果中获取未经实例化的块信息,由此决定网表块内容是正常加载还是整块跳过。同时从预加载的结果中获取加载所需的正确依赖。
本发明实施例中,正式加载网表的过程中,由于加载过程本身所需要用到的电路网表信息已经被提前处理,因此加载的正确行为得以被保证。
实施例2
下面结合一具体实施例对本发明的优化加载电路网表的方法做进一步的说明。
本发明实施例的另一方面,通过电路网表预加载筛除冗余子电路块。
图2为根据本发明的筛除冗余子电路块的示意图,如图2所示,电路网表以hspice格式网表为例,包含两个子电路定义subckt_a和subckt_b,其中subckt_a在电路网表中被实例化,subckt_b没有被实例化。
预加载筛除冗余网表的步骤如下:
(1)预读网表中每一行语句,提取关键字,即语句首词。
(2)读到网表第1行语句头匹配到.subckt,说明子电路定义开始,将.subckt名字subckt_a记录并继续逐行处理。
(3)读到网表第4行语句头匹配到.subckt,同理将subckt_b记录并继续逐行处理网表。
(4)读到网表第7行语句头匹配到子电路实例化器件的语句首字母x,说明有子电路定义被实例化,继续提取器件x1实例化的子电路名称subckt_a,记录为被实例化过的子电路,并继续逐行处理网表直到电路网表末尾。
(5)逐行处理完成后对比被实例化的子电路subckt_a以及网表中出现的子电路subckt_a和subckt_b。将subckt_b记录为网表中冗余的子电路。
(6)正式加载网表时,每次加载一个网表子电路块之前,判断子电路的名字是否在标记的未经实例化的子电路中,如果是,说明子电路块冗余,则从.subckt到下一个.ends之间的网表中的子电路内容全部跳过。
实施例3
本发明实施例的另一方面,通过电路网表预加载正确获取加载依赖。
图3为根据本发明的正确获取加载依赖的示意图,如图3所示,电路网表以hspice格式网表为例,包含语句.option maxwarns=100。
正确获取加载依赖的步骤如下:
(1)预读网表中每一行语句,提取关键字,即语句首词。
(2)读到第100行语句头匹配到.option,继续提取option名字为maxwarns,说明这一条option需要在预处理中提前加载。选项maxwarns设置仿真器在仿真过程中log中报告的最大warning个数;因为加载的过程本身受maxwarns的值影响,如果按照传统网表加载过程顺序处理语句,可能在加载过程中报warnning的行为发生在加载.option maxwarns之前,导致仿真器行为错误。
(3)正式加载网表时,按照提前加载的maxwarns值动作。
本发明提出了一种优化电路网表加载的方法,针对大规模的电路网表输入,提出了一种去冗余加载的方法。在正式加载网表之前,实现预加载;根据关键词识别,筛选出网表中定义的子电路块和器件模型块,找出被电路器件实例化了的子电路和器件模型,通过对比筛选出没被实例化过的子电路;同时,在预加载阶段提前处理了在正式加载电路时需要依赖的网表内容;在正式加载网表时,跳过加载在预加载阶段筛选出来的网表内容,并加载预加载阶段处理好的依赖。它的特点是简单明了,能够快速筛出网表中的冗余内容,正确的处理加载过程依赖的网表内容。增强了仿真器前端的效率和准确性。
本发明的一个实施例中,还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的优化加载电路网表的方法的步骤。
本发明的一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的优化加载电路网表的方法的步骤。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种优化加载电路网表的方法,其特征在于,包括以下步骤:
进行网表预加载,处理预加载的网表内容,提取网表语句关键字;
根据语句关键字,标记未经过实例化的子电路块和器件模型块;
根据语句关键字,预处理正式网表加载时依赖的网表内容;
正式加载网表时,跳过已标记的子电路模块和器件模块,并从预加载结果中获取加载所需的正确依赖。
2.根据权利要求1所述的优化加载电路网表的方法,其特征在于,所述进行网表预加载,处理预加载的网表内容,提取网表语句关键字的步骤,还包括,
在正式加载电路网表之前进行网表预加载,读入网表内容,根据关键词对限定的网表语句进行分析处理;
所述限定的网表语句,包括,关键词subckt、关键词model开头的块语句、器件关键词定义的器件语句、option开头的选项语句,以及定义网表加载方式的语句。
3.根据权利要求1所述的优化加载电路网表的方法,其特征在于,所述根据语句关键字,标记未经过实例化的子电路块和器件模型块的步骤,还包括,
根据提取的关键字,识别关键字定义的块语句,并进行标记;
预加载处理并标记出未经实例化的块语句定义的内容。
4.根据权利要求3所述的优化加载电路网表的方法,其特征在于,还包括,
根据关键词识别出网表中的子电路块和器件模型块并记录;
根据器件关键词找出并记录被器件实例化过的子电路或器件模型。
5.根据权利要求4所述的优化加载电路网表的方法,其特征在于,还包括,根据电路器件关键词找出被实例化过的子电路定义和器件模型定义,筛选出未经过实例化的子电路和器件模型,作为电路网表中的冗余内容。
6.根据权利要求1所述的优化加载电路网表的方法,其特征在于,所述根据语句关键字,预处理正式网表加载时依赖的网表内容的步骤,还包括,
根据提取的关键字,识别并读取关键字定义的正式加载电路时依赖的信息。
7.根据权利要求1所述的优化加载电路网表的方法,其特征在于,所述正式加载网表时,跳过已标记的子电路模块和器件模块,并从预加载结果中获取加载所需的正确依赖的步骤,还包括,在读块语句之前,从预处理的结果中获取未经实例化的块信息,判断是否加载网表块内容。
8.根据权利要求7所述的优化加载电路网表的方法,其特征在于,还包括,读到关键字定义的块语句式时,和预处理阶段标记的冗余块进行对比,若冗余,则整块跳过,并从预加载的结果中获取加载所需的正确依赖。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行权利要求1至8任一项所述的优化加载电路网表的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序运行时执行权利要求1至8任一项所述的优化加载电路网表的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110801239.9A CN113420516B (zh) | 2021-07-15 | 2021-07-15 | 一种优化加载电路网表的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110801239.9A CN113420516B (zh) | 2021-07-15 | 2021-07-15 | 一种优化加载电路网表的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113420516A CN113420516A (zh) | 2021-09-21 |
CN113420516B true CN113420516B (zh) | 2022-02-22 |
Family
ID=77721749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110801239.9A Active CN113420516B (zh) | 2021-07-15 | 2021-07-15 | 一种优化加载电路网表的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113420516B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5384710A (en) * | 1990-03-13 | 1995-01-24 | National Semiconductor Corporation | Circuit level netlist generation |
US5546562A (en) * | 1995-02-28 | 1996-08-13 | Patel; Chandresh | Method and apparatus to emulate VLSI circuits within a logic simulator |
JP2010176208A (ja) * | 2009-01-27 | 2010-08-12 | Fujitsu Ltd | 冗長論理素子削除方法、その装置、及びプログラム |
CN102402631A (zh) * | 2010-09-10 | 2012-04-04 | 北京华大九天软件有限公司 | 一种集成电路层次网表比较方法 |
US8954307B1 (en) * | 2011-10-10 | 2015-02-10 | Cadence Design Systems, Inc. | Chained programming language preprocessors for circuit simulation |
CN110619168A (zh) * | 2019-09-11 | 2019-12-27 | 上海高性能集成电路设计中心 | 一种基于网表的超大规模芯片信息分析方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2843213B1 (fr) * | 2002-07-30 | 2004-12-24 | Bull Sa | Procede et systeme d'etablissement automatique d'un modele global de simulation d'une architecture |
US7606692B2 (en) * | 2004-04-26 | 2009-10-20 | Lsi Corporation | Gate-level netlist reduction for simulating target modules of a design |
JP2022536648A (ja) * | 2019-06-10 | 2022-08-18 | バテル メモリアル インスティチュート | 平坦化されたネットリストからの挙動設計回復 |
-
2021
- 2021-07-15 CN CN202110801239.9A patent/CN113420516B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5384710A (en) * | 1990-03-13 | 1995-01-24 | National Semiconductor Corporation | Circuit level netlist generation |
US5546562A (en) * | 1995-02-28 | 1996-08-13 | Patel; Chandresh | Method and apparatus to emulate VLSI circuits within a logic simulator |
JP2010176208A (ja) * | 2009-01-27 | 2010-08-12 | Fujitsu Ltd | 冗長論理素子削除方法、その装置、及びプログラム |
CN102402631A (zh) * | 2010-09-10 | 2012-04-04 | 北京华大九天软件有限公司 | 一种集成电路层次网表比较方法 |
US8954307B1 (en) * | 2011-10-10 | 2015-02-10 | Cadence Design Systems, Inc. | Chained programming language preprocessors for circuit simulation |
CN110619168A (zh) * | 2019-09-11 | 2019-12-27 | 上海高性能集成电路设计中心 | 一种基于网表的超大规模芯片信息分析方法 |
Non-Patent Citations (1)
Title |
---|
基于spice3f5的射频器件建模工具设计;郭威等;《电子世界》;20131130(第22期);第126页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113420516A (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144882B (zh) | 一种基于程序不变量的软件故障定位方法及装置 | |
US9857421B2 (en) | Dynamic design partitioning for diagnosis | |
US20160342720A1 (en) | Method, system, and computer program for identifying design revisions in hardware design debugging | |
US8522182B2 (en) | Generation of an end point report for a timing simulation of an integrated circuit | |
CN111522708B (zh) | 一种日志记录方法、计算机设备及存储介质 | |
JP4588037B2 (ja) | ドキュメントの整合性検査支援システムおよび方法、ならびにそのプログラム | |
CN113157565B (zh) | 一种基于种子用例突变的反馈式js引擎模糊测试方法及装置 | |
CN114385491A (zh) | 一种基于深度学习的js转译器缺陷检测方法 | |
CN113420516B (zh) | 一种优化加载电路网表的方法 | |
CN111767213B (zh) | 数据库检查点的测试方法、装置、电子设备及存储介质 | |
CN113032279A (zh) | 一种基于语义路径搜索的Web应用测试修复方法 | |
CN109101355B (zh) | 一种提取错误现场特征测试激励的处理器调试方法 | |
US8191031B2 (en) | Apparatus for giving assistance in analyzing deficiency in RTL-input program and method of doing the same | |
CN117171741A (zh) | 代码缺陷分析方法及装置 | |
CN107203405A (zh) | 一种检查多语言定义的方法和装置 | |
US7210128B2 (en) | Event-driven observability enhanced coverage analysis | |
CN113806234A (zh) | 一种芯片寄存器提取及测试方法 | |
US20050159925A1 (en) | Cache testing for a processor design | |
CN112380133A (zh) | 一种指令集模拟器利用功能库仿真的方法及装置 | |
Filipovikj | Automated approaches for formal verification of embedded systems artifacts | |
CN112749079A (zh) | 软件测试的缺陷分类方法、装置及计算设备 | |
Filipovikj et al. | Specifying industrial system requirements using specification patterns: A case study of evaluation with practitioners | |
CN112463624B (zh) | 一种基于Systemverilog的CPU验证平台 | |
CN111427731B (zh) | 一种自动化拆分码流及验证码流的测试方法和系统 | |
US20240005098A1 (en) | Method of using open-domain information for understanding context of temporal relation information |
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 |