CN108763815B - 程序语法检查的方法及芯片验证的方法 - Google Patents
程序语法检查的方法及芯片验证的方法 Download PDFInfo
- Publication number
- CN108763815B CN108763815B CN201810589358.0A CN201810589358A CN108763815B CN 108763815 B CN108763815 B CN 108763815B CN 201810589358 A CN201810589358 A CN 201810589358A CN 108763815 B CN108763815 B CN 108763815B
- Authority
- CN
- China
- Prior art keywords
- switch
- type
- program
- type switch
- check
- 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/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
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)
- Stored Programmes (AREA)
Abstract
本发明提供了一种程序语法检查的方法,所述程序语法检查的方法包括判断同一个变量是否出现在不同的开关内,若同一个变量出现在不同的开关内,报错提醒,若同一个变量没有出现在不同的开关内,执行步骤将所有所述开关分为第一类开关、第二类开关及第三类开关,所述第一类开关为不可拆分开关,所述第二类开关为功能可选检查开关,所述第三类开关为功能增加检查开关,执行步骤验证所述程序中第一类开关及所述第二类开关的组合中的语法是否正确,本发明将所述程序的各开关进行了分类,通过压缩开关选项的组合数,在确保程序语法检查正确性的基础上,达到了提高验证效率,节省开发周期的预设目的。
Description
技术领域
本发明涉及芯片验证领域,尤其涉及一种程序语法检查的方法及芯片验证的方法。
背景技术
目前,现有的芯片验证程序包含DRC(Design Rule Check,设计规则检查)、LVS(Layout Versus Schematic,一致性检查)、ANTEANA Check(天线效应规则检查),上述验证程序在开发过程中均具有多个功能模块,而每个功能模块之间是通过开关隔开的,通过开关的开启和闭合可以验证在各个开关组合情况下,验证程序的语法正确与否。目前,通常采用穷举法对芯片验证程序进行语法检查,即将各个开关所有的可能选项进行组合,当开关的个数较多时,需要验证的组合数就很大,验证效率低,开发周期较长。
发明内容
本发明的目的在于提供一种程序语法检查的方法及芯片验证的方法,以解决现有技术中开关的个数较多时芯片验证效率低、开发周期长等问题。
为了达到上述目的,本发明提供了一种程序语法检查的方法,所述程序语法检查的方法包括:
S1:提供程序,所述程序包括若干个功能模块,每个所述功能模块通过开关隔开;
S2:判断同一个变量是否出现在不同的开关内,若同一个变量出现在不同的开关内,报错提醒,若同一个变量没有出现在不同的开关内,执行步骤S3;
S3:将所有所述开关分为第一类开关、第二类开关及第三类开关,所述第一类开关为不可拆分开关,所述第二类开关为功能可选检查开关,所述第三类开关为功能增加检查开关,执行步骤S4;
S4:对所述程序中第一类开关、第二类开关及第三类开关的组合进行程序语法检查,所述第一类开关中每个开关的开启状态、闭合状态或变量赋值与其余开关的所有可能的组合均需要检查,所述第二类开关需要检查开启状态和闭合状态,并且,所述第二类开关中的变量赋值分配到所述第一类开关的组合中检查,所述第三类开关需要检查开启状态。
可选的,所述第一类开关及所述第二类开关中定义有变量,所述第三类开关中没有定义变量。
可选的,所述第一类开关、第二类开关及第三类开关均能够开启和关闭。
可选的,述第一类开关及所述第二类开关检查开关开启的状态及开关闭合的状态。
可选的,所述第三类开关仅检查开关开启时的状态。
可选的,所述程序包括一芯片验证程序。
可选的,所述第一类开关包括金属层数定义开关、顶层金属厚度定义开关及源端与衬底通过ACT连接开关中的一种或多种。
可选的,所述第二类开关包括寄生参数提取开关、电阻阻值与宽长检查切换开关、单位电容赋值开关及单位电阻赋值开关中的一种或多种。
可选的,所述第三类开关包括电器特性检查开关、LOD参数提取开关及版图缩涨开关中的一种或多种。
本发明提供了一种芯片验证的方法,采用所述程序语法检查的方法对一芯片验证程序进行语法检查。
在本发明提供的程序语法检查的方法中,所述程序语法检查的方法包括:S1:提供程序,所述程序包括若干个功能模块,每个所述功能模块通过开关隔开;S2:判断同一个变量是否出现在不同的开关内,若同一个变量出现在不同的开关内,报错提醒,若同一个变量没有出现在不同的开关内,执行步骤S3;S3:将所有所述开关分为第一类开关、第二类开关及第三类开关,所述第一类开关为不可拆分开关,所述第二类开关为功能可选检查开关,所述第三类开关为功能增加检查开关,执行步骤S4;S4:对所述程序中第一类开关、第二类开关及第三类开关的组合进行程序语法检查,所述第一类开关中每个开关的开启状态、闭合状态或变量赋值与其余开关的所有可能的组合均需要检查,所述第二类开关需要检查开启状态和闭合状态,并且,所述第二类开关中的变量赋值分配到所述第一类开关的组合中检查,所述第三类开关需要检查开启状态,以验证所述程序中第一类开关及所述第二类开关的组合中的语法是否正确,本发明将所述程序的各开关进行了分类,通过压缩开关选项的组合数,在确保程序语法检查正确性的基础上,达到了提高验证效率,节省开发周期的预设目的。
附图说明
图1为本发明实施例提供的程序语法检查的方法的示意图。
具体实施方式
下面将结合示意图对本发明的具体实施方式进行更详细的描述。根据下列描述和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
参阅图1,其为本实施例提供的程序语法检查的方法的流程图,如图1所示,所述程序语法检查的方法包括:
S1:提供程序,所述程序包括若干个功能模块,每个所述功能模块通过开关隔开;
S2:判断同一个变量是否出现在不同的开关内,若同一个变量出现在不同的开关内,报错提醒,若同一个变量没有出现在不同的开关内,执行步骤S3;
S3:将所有所述开关分为第一类开关、第二类开关及第三类开关,所述第一类开关为不可拆分开关,所述第二类开关为功能可选检查开关,所述第三类开关为功能增加检查开关,执行步骤S4;
S4:对所述程序中第一类开关、第二类开关及第三类开关的组合进行程序语法检查,所述第一类开关中每个开关的开启状态、闭合状态或变量赋值与其余开关的所有可能的组合均需要检查,所述第二类开关需要检查开启状态和闭合状态,并且,所述第二类开关中的变量赋值分配到所述第一类开关的组合中检查,所述第三类开关需要检查开启状态。
本发明将所述程序的各开关进行了分类,通过压缩开关选项的组合数,在确保程序语法检查正确性的基础上,达到了提高验证效率、节省开发周期的预设目的。
接下来,为了更清楚的描述本发明提供的程序语法检查的方法,本实施例提供如下一段芯片验证程序(0.13E-Flash 1.5V/3.3V/HV Non-Shrink PROCESS LVS Run-set):
#DEFINE)METAL_NUM 7//(4/5/6/7)//金属层数定义开关;
#DEFINE MT_THICKNESS 0.9u//(0.9u/2.5u/1.05u)//顶层金属厚度定义开关;
#DEFINE CAL_XRC NO//(YES/NO)//寄生参数提取开关;
#DEFINE DIFF_BUTTED_CONN NO//(YES/NO)//源端与衬底通过ACT连接的开关;
#DEFINE ERC_CHK YES//(YES/NO)//电器特性检查开关;
#DEFINE RES_PROPERTY RESISTANCE//(RESISTANCE/OTHER)//电阻阻值与宽长检查切换开关;
#DEFINE LVPW_HVPW_MERGE YES//(YES/NO)//LVPW与HVPW Merge与否的开关;
#DEFINE LOD_EFFECT YES//(YES/NO)//LOD参数提取开关;
#DEFINE CAP_UNIT 1//(1/2)//单位电容赋值开关;
#DEFINE RES_UNIT 1//(1/2/10)//单位电阻赋值开关;
#DEFINE LAYOUT_SHRINK NO//(YES/NO)//版图缩涨开关;
#DEFINE OUT_NET_FORMAT NETLIST//(CALIBREVIEW/NETLIST)//寄生参数提取格式的开关;
#DEFINE HV_TECH HV5//(HV5/HV5_12)//HV 12V Device是否选取的开关;
#DEFINE COMPARE_MOS_M NO//(YES/NO)//是否比较MOS M参数的开关;
可见,上述芯片验证程序中具有14个功能模块,每个所述功能模块通过开关隔开,即开关也有14个,按照穷举法进行程序语法检查,即将这14个开关按照阶乘的方法相乘,共有73728(4*3*2*2*2*2*2*2*2*3*2*2*2*2)个组合,需要执行73728次。
本实施中,首先确保同一变量不被重复定义,即首先判断同一个变量是否出现在不同的开关内,若同一个变量出现在不同的开关内,报错提醒,再由设计者针对被重复定义的变量进行修改,若同一个变量没有出现在不同的开关内,再对程序中的开关进行分类。
进一步,将所述芯片验证程序中的开关分为三类,分别为第一类开关、第二类开关及第三类开关,所述第一类开关为不可拆分开关,所述不可拆分开关为芯片验证中必须验证的功能模块,代表芯片底层工艺的验证,例如金属层数定义开关、顶层金属厚度定义开关及源端与衬底通过ACT连接开关中的一种或多种;所述第二类开关为功能可选检查开关,此类开关通常包括寄生参数提取开关、电阻阻值与宽长检查切换开关、单位电容赋值开关及单位电阻赋值开关中的一种或多种,所述第二类开关通常可以根据实际的需求进行选择;所述第三类开关为功能增加检查开关,所述第三类开关包括电器特性检查开关、LOD参数提取开关及版图缩涨开关中的一种或多种,该类开关中通常没有变量定义,可以只验证开关开启时的状态,不验证开关关闭时的状态也不会对准确率造成影响。因此,可以据此将上述芯片验证程序中的开关分成三类:
第一类开关(不可拆分开关):
#DEFINE)METAL_NUM 7//(4/5/6/7)//金属层数定义开关;
#DEFINE MT_THICKNESS 0.9u//(0.9u/2.5u/1.05u)//顶层金属厚度定义开关;
#DEFINE DIFF_BUTTED_CONN NO//(YES/NO)//源端与衬底通过ACT连接的开关;
#DEFINE LVPW_HVPW_MERGE YES//(YES/NO)//LVPW与HVPW Merge与否的开关;
#DEFINE HV_TECH HV5//(HV5/HV5_12)//HV 12V Device是否选取的开关;
第二类开关(功能可选检查开关):
#DEFINE CAL_XRC NO//(YES/NO)//寄生参数提取开关;
#DEFINE RES_PROPERTY RESISTANCE//(RESISTANCE/OTHER)//电阻阻值与宽长检查切换开关;
#DEFINE CAP_UNIT 1//(1/2)//单位电容赋值开关;
#DEFINE RES_UNIT 1//(1/2/10)//单位电阻赋值开关;
#DEFINE OUT_NET_FORMAT NETLIST//(CALIBREVIEW/NETLIST)//寄生参数提取格式的开关;
第三类开关(功能增加检查开关):
#DEFINE ERC_CHK YES//(YES/NO)//电器特性检查开关;
#DEFINE LOD_EFFECT YES//(YES/NO)//LOD参数提取开关;
#DEFINE LAYOUT_SHRINK NO//(YES/NO)//版图缩涨开关;
#DEFINE COMPARE_MOS_M NO//(YES/NO)//是否比较MOS M参数的开关;
所述第一类开关需要按照阶乘的方式与其余的开关进行组合验证,即需要验证第一类开关中每个开关的开启状态、闭合状态或变量赋值与其余开关的所有可能的组合;所述第二类开关只需要验证开和关两个状态,而所述第二类开关对整体开关验证组合数没有贡献,不会乘上该类开关中每个开关的组合数,即所述第二类开关中所有开关同时全部开启和同时全部关闭的这两个状态;因为该类开关定义的变量是每种组合下都会调用的通常变量,该类开关中的变量赋值可以分配到所述第一类开关的组合一起检查,(其中,所述第二类开关中所有赋值开关的开启状态可将变量赋值分配至所述第一类开关的组合中,例如:CAP_UNIT 1及CAP_UNIT 2可以分别在METAL_NUM 7及METAL_NUM 6的情况下检查,而不用每赋一个METAL_NUM值,CAP_UNIT 1及CAP_UNIT 2都检查一次);所述第三类开关没有变量定义,只验证其开启时的状态,关闭状态不需要验证,但是也不会对准确率造成影响,采用本发明提供的程序语法的检查方法仅需要验证192(4*3*2*2*2*2)个组合,需要执行192次,大大压缩了开关选项的组合数。
本实施例还提供一种芯片验证的方法,采用所述程序语法检查的方法对一芯片验证程序进行语法检查。
综上,在本发明实施例提供的程序语法检查的方法中,所述程序语法检查的方法包括:S1:提供程序,所述程序包括若干个功能模块,每个所述功能模块通过开关隔开;S2:判断同一个变量是否出现在不同的开关内,若同一个变量出现在不同的开关内,报错提醒,若同一个变量没有出现在不同的开关内,执行步骤S3;S3:将所有所述开关分为第一类开关、第二类开关及第三类开关,所述第一类开关为不可拆分开关,所述第二类开关为功能可选检查开关,所述第三类开关为功能增加检查开关,执行步骤S4;S4:验证所述程序中第一类开关及所述第二类开关的组合中的语法是否正确,本发明将所述程序的各开关进行了分类,通过压缩开关选项的组合数,在确保程序语法检查正确性的基础上,达到了提高验证效率,节省开发周期的预设目的。
上述仅为本发明的优选实施例而已,并不对本发明起到任何限制作用。任何所属技术领域的技术人员,在不脱离本发明的技术方案的范围内,对本发明揭露的技术方案和技术内容做任何形式的等同替换或修改等变动,均属未脱离本发明的技术方案的内容,仍属于本发明的保护范围之内。
Claims (6)
1.一种程序语法检查的方法,其特征在于,所述程序语法检查的方法包括:
S1:提供程序,所述程序包括若干个功能模块,每个所述功能模块通过开关隔开;
S2:判断同一个变量是否出现在不同的开关内,若同一个变量出现在不同的开关内,报错提醒,若同一个变量没有出现在不同的开关内,执行步骤S3;
S3:将所有所述开关分为第一类开关、第二类开关及第三类开关,所述第一类开关为不可拆分开关,所述第二类开关为功能可选检查开关,所述第三类开关为功能增加检查开关,执行步骤S4;
S4:对所述程序中第一类开关、第二类开关及第三类开关的组合进行程序语法检查,所述第一类开关中每个开关的开启状态、闭合状态或变量赋值与所述第二类开关和第三类开关的组合均需要检查,所述第二类开关需要检查开启状态和闭合状态,并且,所述第二类开关中的变量赋值分配到所述第一类开关的组合中检查,所述第三类开关需要检查开启状态;
所述程序包括一芯片验证程序,所述第一类开关包括金属层数定义开关、顶层金属厚度定义开关及源端与衬底通过ACT连接开关中的一种或多种;所述第二类开关包括寄生参数提取开关、电阻阻值与宽长检查切换开关、单位电容赋值开关及单位电阻赋值开关中的一种或多种;所述第三类开关包括电器特性检查开关、LOD参数提取开关及版图缩涨开关中的一种或多种。
2.如权利要求1所述的程序语法检查的方法,其特征在于,所述第一类开关及所述第二类开关中定义有变量,所述第三类开关中没有定义变量。
3.如权利要求2所述的程序语法检查的方法,其特征在于,所述第一类开关、第二类开关及第三类开关均能够开启和关闭。
4.如权利要求3所述的程序语法检查的方法,其特征在于,所述第一类开关及所述第二类开关检查开关开启的状态及开关闭合的状态。
5.如权利要求4所述的程序语法检查的方法,其特征在于,所述第三类开关仅检查开关开启时的状态。
6.一种芯片验证的方法,其特征在于,采用如权利要求1-5中任一项所述的程序语法检查的方法对一芯片验证程序进行语法检查。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810589358.0A CN108763815B (zh) | 2018-06-08 | 2018-06-08 | 程序语法检查的方法及芯片验证的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810589358.0A CN108763815B (zh) | 2018-06-08 | 2018-06-08 | 程序语法检查的方法及芯片验证的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108763815A CN108763815A (zh) | 2018-11-06 |
CN108763815B true CN108763815B (zh) | 2022-12-02 |
Family
ID=64000705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810589358.0A Active CN108763815B (zh) | 2018-06-08 | 2018-06-08 | 程序语法检查的方法及芯片验证的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108763815B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112800705B (zh) * | 2021-02-22 | 2023-04-07 | 长鑫存储技术有限公司 | 设计规则检查方法、装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010015509A (ja) * | 2008-07-07 | 2010-01-21 | Mori Seiki Co Ltd | 加工プログラムチェック装置 |
CN101639805A (zh) * | 2008-07-31 | 2010-02-03 | 国际商业机器公司 | 用于在程序调试中跟踪变量的方法和设备 |
CN105701006A (zh) * | 2014-11-28 | 2016-06-22 | 国际商业机器公司 | 用于程序调试中的变量跟踪的方法和系统 |
CN106940772A (zh) * | 2016-01-05 | 2017-07-11 | 阿里巴巴集团控股有限公司 | 变量对象的跟踪方法及装置 |
-
2018
- 2018-06-08 CN CN201810589358.0A patent/CN108763815B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010015509A (ja) * | 2008-07-07 | 2010-01-21 | Mori Seiki Co Ltd | 加工プログラムチェック装置 |
CN101639805A (zh) * | 2008-07-31 | 2010-02-03 | 国际商业机器公司 | 用于在程序调试中跟踪变量的方法和设备 |
CN105701006A (zh) * | 2014-11-28 | 2016-06-22 | 国际商业机器公司 | 用于程序调试中的变量跟踪的方法和系统 |
CN106940772A (zh) * | 2016-01-05 | 2017-07-11 | 阿里巴巴集团控股有限公司 | 变量对象的跟踪方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108763815A (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7127686B2 (en) | Method for validating simulation results of a system as well as equivalence comparison of digital circuits based on said method | |
US6732338B2 (en) | Method for comprehensively verifying design rule checking runsets | |
US7434184B2 (en) | Method for detecting flaws in a functional verification plan | |
US8028259B2 (en) | Automated method and apparatus for very early validation of chip power distribution networks in semiconductor chip designs | |
CN117321601A (zh) | 一种集成电路的版图生成方法及装置 | |
US8356271B2 (en) | Layout testing method and wafer manufacturing method | |
US20110289465A1 (en) | Statistical On-Chip Variation Timing Analysis | |
US20040063228A1 (en) | Redundant via rule check in a multi-wide object class design layout | |
WO2001042994A2 (en) | Modification of integrated circuits | |
CN102368276A (zh) | 一种自动验证电学规则文件正确性的流程方法 | |
US9147034B1 (en) | Circuit layout verification method | |
US8219959B2 (en) | Generating integrated circuit floorplan layouts | |
KR102419645B1 (ko) | 집적 회로를 설계하기 위한 컴퓨터 구현 방법, 컴퓨팅 시스템, 및 집적 회로의 제조 방법 | |
CN108763815B (zh) | 程序语法检查的方法及芯片验证的方法 | |
CN105787145A (zh) | 一种提升模拟版图后端验证可靠性的方法 | |
EP3236373A1 (en) | Method to optimize standard cells manufacturability | |
US20180336307A1 (en) | Method for designing an integrated circuit, and method of manufacturing the integrated circuit | |
ITVI20100166A1 (it) | Integrated circuit design framework comprising automatic analysis functonality | |
CN107092757B (zh) | 一种pcb设计中过孔压分割线的检查方法 | |
CN105278966B (zh) | 基于失效模式分析的卫星星载制导与导航软件的设计与测试方法 | |
CN109543308B (zh) | 一种验证设计规则检查脚本的方法 | |
US8196083B1 (en) | Incremental placement and routing | |
US20080172640A1 (en) | Method for comparing two designs of electronic circuits | |
CN115587569B (zh) | 芯片版图的设计规则检查方法、系统及存储介质 | |
CN112668259A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |