CN101916305A - 一种复杂管脚芯片的验证方法 - Google Patents
一种复杂管脚芯片的验证方法 Download PDFInfo
- Publication number
- CN101916305A CN101916305A CN2010102294181A CN201010229418A CN101916305A CN 101916305 A CN101916305 A CN 101916305A CN 2010102294181 A CN2010102294181 A CN 2010102294181A CN 201010229418 A CN201010229418 A CN 201010229418A CN 101916305 A CN101916305 A CN 101916305A
- Authority
- CN
- China
- Prior art keywords
- pin
- data
- chip
- verification method
- priority
- 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
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明提供了一种复杂管脚芯片的验证方法,采取形式验证方法,对芯片引脚接口模块的引脚与其他模块的连接关系进行验证,对复杂管脚芯片既能保证验证覆盖率,又能缩短验证时间。本发明对于需要大规模的激励测试组合的设计能够达到很好的效果,对于各种协议的验证,同样需要海量的随机测试向量时也能起到事半功倍的效果。
Description
技术领域
本发明属于芯片验证领域,具体是一种基于形式验证的复杂管脚芯片的验证方法。
背景技术
随着集成电路工业的飞速发展,系统级芯片的广泛应用,芯片的规模日趋扩大,集成在芯片上的功能也日益增多。芯片的管脚数量以及每个管脚的复用的功能数量也都大幅提高。因此在芯片设计阶段,增加了芯片通用性的同时,芯片的管脚功能复用关系以及优先级验证的复杂性也大大增加。传统测试架构如图1所示。
对于低管脚数的芯片,传统的验证方法仍然适用。传统的验证方法为直接激励验证,即通过将所测功能编写成直接的测试向量,附加到待验证的设计(DUT)上,通过另外编写的检测模块比对芯片行为以及所测管脚当前值是否符合期望。以某16引脚的8位单片机为例,某引脚同时复用功能计时器输入捕捉/IIC时钟/外部中断引脚(优先级:定时器输入捕捉<IIC时钟<外部中断)。如下表:(1表示使能该功能,0表示不使能)。
如上表所示,每一组合均对应一组测试向量,所以对于该引脚优先级的验证需要8组测试向量来达到验证目标。同理当引脚复用功能由3个扩展到4个,相应的测试向量也要增加到16组。由此得出,一个引脚每增加一种功能,测试向量将成倍增长。对于上例中一个有16引脚的单片机,整个引脚接口功能的测试向量组数至少为8x16=108组。如果单一功能定义为可出现在同一芯片的不同引脚上,则测试向量组合的可能性还会增加。
传统验证方法对于功能复用简单的低引脚数量芯片能够达到测试需求,所需要考虑的就是验证时间与功能覆盖率的矛盾。因为要完成所有的测试组合以达到对引脚接口功能优先级设计覆盖率的目标,势必会对设计阶段的验证周期造成一定影响,从而影响整个芯片设计周期。
而对于大规模集成电路,以某百万门32位单片机为例,该芯片共有144引脚(约120功能引脚),每个引脚上有7个通用功能另外附加5个测试功能,用先前的公式推导,如果仍然运用传统的验证方法(即直接测试向量)对于该引脚接口功能优先级的测试,则该引脚上所需测试向量组数至少为27=128组,该芯片所有引脚的接口优先级测试向量组数至少为128x120=1536组。假设平均每组测试向量验证时间为2分钟,则在一台机器上总测试时间1536x2/60=512小时。即使以上测试向量也不能保证合格的测试覆盖率和产品质量,因为这些测试向量并没有涉及到同一种功能在不同引脚上的情况。(例如IIC的时钟可以在PTA0和PTC0上分别使能,则PTA0及PTB0间IIC功能同时使能时优先级的测试也需要考虑)另外该单片机分别有144/80/64/48引脚的封装形式,考虑到对于非144引脚封装形式上的未引出引脚的接口功能测试,则总的向量组数还会大量增加。
综上所述,运用传统验证方式,直接测试向量(direct stimulus)已经不能够完成复杂的芯片引脚接口功能验证,因为这需要验证工程师编写大量的测试向量,并且占用大量的及其资源。因此需要有新的验证方法能够同时在保证测试覆盖率的情况下,用可实现的人力以及测试资源在较短时间完成测试。
发明内容
本发明的目的在于克服现有技术中存在的缺点,克服上述现有技术的不足,提供一种对复杂管脚芯片既能保证验证覆盖率,又能缩短验证时间的验证方法。
为了实现以上目的,本发明采用以下技术方案:
一种复杂管脚芯片的验证方法,采取形式验证方法,对芯片引脚接口模块的引脚与其他模块的连接关系进行验证;包括以下步骤:
步骤A:根据产品的引脚功能优先级的规定,建立相对应优先级数据;
步骤B:根据优先级数据,通过脚本生成形式验证模块;
步骤C:形式验证模块将引脚接口模块每个引脚相应的功能引入,进行比对,生成比对数据;
步骤D:将比对数据与优先级数据进行比较,并记录比较结果。
进一步地,步骤C采取随机激励比对,所述引脚相应的功能是针对引脚接口逻辑的所有输入,枚举输入所有可能的状态组合而成。
进一步地,步骤A建立的优先级数据包括芯片引脚数据、测试模式数据、功能模式数据。
更进一步地,步骤A建立的优先级数据还包括引脚接口单元的输入输出信号数据、连接到该输入输出信号的顶层信号数据。
优选地,步骤A建立的优先级数据是建立于电子表格应用程序的电子表格中。
作为一个优选项,电子表格应用程序为微软EXCEL。
附图说明
图1为传统测试架构的结构框图;
图2为形式验证架构的结构框图;
图3为优先级数据示意图;
图4为某一种模式下的优先级数据示意图;
图5为工作目录结构示意图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步说明,但不限于此。
图2为形式验证架构的结构框图。本发明是一种基于某形式验证工具的形式验证方法(formal verification)完成对于复杂芯片引脚接口功能验证。
如图2所示,形势验证的目标是验证引脚接口(padi)的优先级正确性以及与管脚模块(pads)及其他功能模块的连接关系的正确性,并不关心引脚接口(padi)之外其他模块的内部的逻辑关系正确与否。这就为缩短验证的复杂性以及验证时间提供了可能。在实际验证过程中,除引脚接口模块(padi)的设计保留,其他模块一概采取黑盒子的处理方式,即只保留该模块的引脚及与其他模块的连接关系,对于模块内部的逻辑以黑盒子的方式进行屏蔽,这样在验证中工具就会略过对于这些模块内部逻辑关系的分析,从而节省了仿真分级时间和对机器资源的占用,达到缩短验证时间的目的。同时工具进行形式验证时采取了随机激励的概念(random stimulus),即针对引脚接口逻辑的所有输入(input),枚举输入所有可能的状态组合,从而将输出与实现写在形势验证模块中的约束进行比对,达到验证目的的同时,保证了测试覆盖率。
图3为优先级数据示意图,图4为某一种模式下的优先级数据示意图。
运用工具进行形势验证的原理以及流程如下:
1、生成形式验证模块的实例。
根据产品的参考手册中关于引脚功能优先级的规定,填写一张相对应优先级表格(excel)如图3所示的例子。从该表中第一列pad_pta0~pad_pta7分别为该芯片上标识为pta的八个引脚。第二列代表一种测试模式,后面四列alt1~alt4代表通用功能模式1-4。图4详细列出对于其中一个引脚PTA0的某一种模式的详细定义。
第一列中port_en/ibe/ind/offval/obe/do/dse等信号是引脚接口单元(padi cell)的输入输出信号,第二列是从设计顶层提取出的连接到该输入输出信号的顶层信号名称。例如对于PTA0引脚,连接到通用功能模式4中padi cell的obe输入引脚的顶层信号是CORE.rgpio_direction[0]。
完成了对于padi单元输入输出信号的表格对应后,可以通过perl脚本生成形式验证模块的实例(verilog文件)。
部分代码的示例如下所示:
io_3v_unit#(14)io_3v_PTA0(
//port_en
{`TEST.port_en_chip_scan,1′b0,1′b0,1′b0,`TEST.port_en_ram_bist,`TEST.port_en_logic_bist,1′b0,1′b0,`TEST.po
rt_en_pad_safe,`MCU_CORE.rgpio_enable[0]&~(`MUXCTRL.port_en_alt3[55]|`MUXCTRL.port_en_alt2[55]
|
`MUXCTRL.port_en_alt1[55]),`MUXCTRL.port_en_alt3[55],`MUXCTRL.port_en_alt2[55],`MUXCTRL.port_e
n_alt1[55],1′b1},
//
{1′b0,1′b0,1′b0,1′b0,1′b0,1′b0,1′b0,1′b0,1′b0,`MCU_CORE.rgpio_data_out[0],1′b0,`UR.do[38],`SIM.sim_pin_dat
al_tx_out,`CONTROL_PTA.do[0]},
// obe
{1′b0,1′b0,1′b0,1′b0,1′b0,1′b0,1′b0,1′b0,1′b0,`MCU_CORE.rgpio_direction[0],1′b0,`UR.obe[38],`SIM.sim_datal_
tx_gz,`CONTROL_PTA.obe[0]},
...);
在上面的代码中是一个verilog实例,io_3v_unit是一个形式验证模块的模块名,io_3v_PTA0是该模块的实例名。后面的信号是从前面excel表格中提取出的设计顶层连接关系信号。
2、设置工作环境。
工作目录结构如图2所示。
command目录中存放对于整个设计的一些约束文件,例如对于芯片复位的控制,一些特殊信号的约束,时钟的定义,黑盒子模块的定义等等。
result目录中存放经过形式验证工具运行出现错误的功能模式的数据,包括错误波形以及全部设计数据和相关信号记录,用于后期的纠错(debug)。
log目录中存放形式验证过程中工具汇报的所有信息,验证工程师可以根据该信息了解更多的内容。
source目录中存放的是整个设计的verilog代码,其中除引脚借口(padi)外,其他模块都已经被黑盒子处理,即模块内部逻辑代码被去掉,只保留模块名以及接口名称。
script目录中存放的是相关处理的perl脚本,例如将模块的源代码转换成黑盒子形式的代码(stub view)的脚本,从excel表格中提取形式验证模块的脚本,运行形势验证的相关脚本。
assertion目录中存放了前面提到的io_3v_unit的定义文件,其中运用了形式验证的关键词assert,通过assertion对于焊盘引脚接口信号的关系进行约束,形式验证工具将根据该定义通过对引脚接口(padi)输入信号引入随机激励,同时对比输出信号与assertion的定义是否一致来得出接口优先级设计是否正确的结论。
部分信号Assertion的示例如下:
module io_3v_unit(
priority,
do,
force_output_h,
force_output_l,
do_pad,
...
)
input priority;
input do;
input force_output_h;
input force_output_l;
a_do:assert property(@(posedge clk) priority-> \
(force_output_h ?(1’b1==do_pad): \
(force_output_l?(1’b0==do_pad): \
(do==do_pad);
...
endmodule
结合图2所示的形式验证框图,形式验证模块(io_3v_unit)将引脚接口模块每个引脚相应的功能do/do_pad引入,通过assertion进行比对,相当于验证引脚接口(padi)基于输入上各种激励,在输出上的功能是否满足。
例如:当alt2与alt3上的port_en同时使能并且force_output_h/force_output_l未使能,此时do_pad值并不能由alt2功能的do决定,而是由alt3功能上的do决定。所以当随机激励如下:
此时do_pad上得值应该为1,如果do_pad上的值为0,工具将报告错误,证明引脚接口模块(padi)内部在优先级或者逻辑关系上出现了问题。验证工程师可以根据系统报告结合设计进行分析找出错误。而这种错误只能由上表所列的激励组合检出,这也正是运用随机激励的优势所在,该工具枚举所有可能的激励组合,来保证检测覆盖率,同时工具对于所有激励组合所产生的错误报告也都指向了设计中的缺陷。而这是传统验证方式所不能完成的。
产品的具有很好的实用性。下面针对实例阐述具体在验证过程中如何纠错。
假设待检测引脚接口设计如下:
assign do_pad=alt2_port_en?alt2_do:(alt3_port_en?alt3_do:do_default);
当alt2_port_en与alt3_port_en同时使能为1’b1时,上述语句中do_pad的值由alt2决定,当do_pad值为1时,而do值为0,二者并不相等,违反了assertion模块中io_3v_unit关于a_do的定义。
通过分析上述语句发现设计错误,因为alt3优先级高于alt2,所以正确设计应该改为:
assign do_pad=alt3_port_en?altL_do:(alt2_port_en?alt2_do:do_default);
由此,该设计错误被assertion准确地检出,从而达到验证目地。
形式验证方法对于需要大规模的激励测试组合的设计能够达到很好的效果,不仅仅应用于本专利所涉及的方面,对于各种协议的验证,同样需要海量的随机测试向量时也能起到事半功倍的效果。同时,形式验证又不能代替传统的直接测试激励方法,对于时序有要求的验证,传统的测试方法依然是不可替代的。
显然上述实施例不是对本发明的限制,上述的一种复杂管脚芯片的验证方法还可以有其他许多变化。实施例中的代码仅是多种可以举例说明,本发明的方法当然包括通过上述代码来实现部分的功能,但并不仅限于上述代码,其他可以实现同样功能的代码可以对实施例的代码进行替换或更新。虽然已经结合上述例子详细讨论了本发明,但应该理解到:业内专业人士可以显而易见地想到的一些雷同,代替方案,均落入本发明权利要求所限定的保护范围之内。
Claims (6)
1.一种复杂管脚芯片的验证方法,其特征在于,采取形式验证方法,对芯片引脚接口模块的引脚与其他模块的连接关系进行验证;包括以下步骤:
步骤A:根据产品的引脚功能优先级的规定,建立相对应优先级数据;
步骤B:根据优先级数据,通过脚本生成形式验证模块;
步骤C:形式验证模块将引脚接口模块每个引脚相应的功能引入,进行比对,生成比对数据;
步骤D:将比对数据与优先级数据进行比较,并记录比较结果。
2.根据权利要求1所述的验证方法,其特征在于,所述步骤C采取随机激励比对,所述引脚相应的功能是针对引脚接口逻辑的所有输入,枚举输入所有可能的状态组合而成。
3.根据权利要求2所述的验证方法,其特征在于,所述步骤A建立的优先级数据包括芯片引脚数据、测试模式数据、功能模式数据。
4.根据权利要求3所述的验证方法,其特征在于,所述步骤A建立的优先级数据还包括引脚接口单元的输入输出信号数据、连接到该输入输出信号的顶层信号数据。
5.根据权利要求4所述的验证方法,其特征在于,所述步骤A建立的优先级数据是建立于电子表格应用程序的电子表格中。
6.根据权利要求5所述的验证方法,其特征在于,所述电子表格应用程序为微软EXCEL。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102294181A CN101916305A (zh) | 2010-07-19 | 2010-07-19 | 一种复杂管脚芯片的验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102294181A CN101916305A (zh) | 2010-07-19 | 2010-07-19 | 一种复杂管脚芯片的验证方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101916305A true CN101916305A (zh) | 2010-12-15 |
Family
ID=43323817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102294181A Pending CN101916305A (zh) | 2010-07-19 | 2010-07-19 | 一种复杂管脚芯片的验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101916305A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102289401A (zh) * | 2010-06-21 | 2011-12-21 | 北京中星微电子有限公司 | 一种芯片系统级验证的方法、装置及系统 |
CN106250280A (zh) * | 2016-07-25 | 2016-12-21 | 北京联盛德微电子有限责任公司 | 一种时钟信号测试方法和装置 |
CN106291222A (zh) * | 2016-07-25 | 2017-01-04 | 北京联盛德微电子有限责任公司 | 一种信号线连接关系的测试方法和装置 |
CN112306767A (zh) * | 2020-01-09 | 2021-02-02 | 成都华微电子科技有限公司 | 一种芯片信号连接关系的自动化测试方法 |
CN116227427A (zh) * | 2023-03-03 | 2023-06-06 | 南京金阵微电子技术有限公司 | 验证方法、验证装置、介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6304837B1 (en) * | 1998-02-21 | 2001-10-16 | Adaptec, Inc. | Automated test vector generation and verification |
CN1376283A (zh) * | 1998-09-30 | 2002-10-23 | 凯登丝设计系统公司 | 基于块的设计方法 |
CN1725188A (zh) * | 2004-07-22 | 2006-01-25 | 华为技术有限公司 | 逻辑验证系统及方法 |
CN1858611A (zh) * | 2006-05-19 | 2006-11-08 | 北京天碁科技有限公司 | 一种验证系统、验证系统的创建方法及验证方法 |
CN101183406A (zh) * | 2007-12-25 | 2008-05-21 | 盛科网络(苏州)有限公司 | 网络芯片模块级功能验证测试平台的建立方法 |
-
2010
- 2010-07-19 CN CN2010102294181A patent/CN101916305A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6304837B1 (en) * | 1998-02-21 | 2001-10-16 | Adaptec, Inc. | Automated test vector generation and verification |
CN1376283A (zh) * | 1998-09-30 | 2002-10-23 | 凯登丝设计系统公司 | 基于块的设计方法 |
CN1725188A (zh) * | 2004-07-22 | 2006-01-25 | 华为技术有限公司 | 逻辑验证系统及方法 |
CN1858611A (zh) * | 2006-05-19 | 2006-11-08 | 北京天碁科技有限公司 | 一种验证系统、验证系统的创建方法及验证方法 |
CN101183406A (zh) * | 2007-12-25 | 2008-05-21 | 盛科网络(苏州)有限公司 | 网络芯片模块级功能验证测试平台的建立方法 |
Non-Patent Citations (6)
Title |
---|
《合肥师范学院学报》 20080531 刘路路、陶玲 "数字系统的形式化验证方法" 第51-54页 1-6 第26卷, 第3期 * |
《微处理机》 20060430 徐英伟、刘佳 "SoC功能验证的特点和方法" 第11-13页 1-6 , * |
《微电子学》 20070228 胡建国、位招勤等 "面向CPU芯片的验证技术研究" 第16-19、23页 1-6 第37卷, 第1期 * |
刘路路、陶玲: ""数字系统的形式化验证方法"", 《合肥师范学院学报》, vol. 26, no. 3, 31 May 2008 (2008-05-31), pages 51 - 54 * |
徐英伟、刘佳: ""SoC功能验证的特点和方法"", 《微处理机》, 30 April 2006 (2006-04-30), pages 11 - 13 * |
胡建国、位招勤等: ""面向CPU芯片的验证技术研究"", 《微电子学》, vol. 37, no. 1, 28 February 2007 (2007-02-28) * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102289401A (zh) * | 2010-06-21 | 2011-12-21 | 北京中星微电子有限公司 | 一种芯片系统级验证的方法、装置及系统 |
CN102289401B (zh) * | 2010-06-21 | 2015-07-01 | 北京中星微电子有限公司 | 一种芯片系统级验证的方法、装置及系统 |
CN106250280A (zh) * | 2016-07-25 | 2016-12-21 | 北京联盛德微电子有限责任公司 | 一种时钟信号测试方法和装置 |
CN106291222A (zh) * | 2016-07-25 | 2017-01-04 | 北京联盛德微电子有限责任公司 | 一种信号线连接关系的测试方法和装置 |
CN106250280B (zh) * | 2016-07-25 | 2021-03-19 | 北京联盛德微电子有限责任公司 | 一种时钟信号测试方法和装置 |
CN112306767A (zh) * | 2020-01-09 | 2021-02-02 | 成都华微电子科技有限公司 | 一种芯片信号连接关系的自动化测试方法 |
CN116227427A (zh) * | 2023-03-03 | 2023-06-06 | 南京金阵微电子技术有限公司 | 验证方法、验证装置、介质及电子设备 |
CN116227427B (zh) * | 2023-03-03 | 2024-05-07 | 南京金阵微电子技术有限公司 | 验证方法、验证装置、介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111931445B (zh) | 用于调试逻辑系统设计的方法、仿真器及存储介质 | |
CN101183406B (zh) | 网络芯片模块级功能验证测试平台的建立方法 | |
CN102169846B (zh) | 一种在集成电路晶圆测试过程中实现多维变量密码并行写入的方法 | |
CN104657245B (zh) | 基于amba总线的模块级uvm验证平台的自动生成装置 | |
US8788993B2 (en) | Computer system for generating an integrated and unified view of IP-cores for hierarchical analysis of a system on chip (SoC) design | |
CN102592023B (zh) | 集成电路设计过程中的寄存器设计方法及装置 | |
CN112417798B (zh) | 一种时序测试方法、装置、电子设备及存储介质 | |
CN103116069B (zh) | 芯片频率的测试方法、装置及系统 | |
CN101957428B (zh) | 监控电路板的自动测试方法与工具 | |
CN106133537A (zh) | 一种fpga功能模块仿真验证方法及其系统 | |
US8732632B1 (en) | Method and apparatus for automated extraction of a design for test boundary model from embedded IP cores for hierarchical and three-dimensional interconnect test | |
CN109633419A (zh) | 一种基于ate的芯片测试方法 | |
CN104793171A (zh) | 一种基于故障仿真的智能电表故障检测方法 | |
CN101916305A (zh) | 一种复杂管脚芯片的验证方法 | |
CN105279345B (zh) | 一种航天器用数字软ip核评测方法 | |
CN106133640A (zh) | 使用电源监控器校准电源 | |
CN108038328A (zh) | 芯片自动仿真验证系统 | |
CN106405286A (zh) | 电能质量监控装置的自动测试方法及系统 | |
CN103605606A (zh) | 一种可自动转换的嵌入式软件测试用例批量执行方法 | |
US8645897B1 (en) | Integrated circuit design verification system | |
CN104765671A (zh) | 一种用可重用性层次化验证平台进行uart模块验证的方法 | |
CN102565683B (zh) | 一种测试向量的生成与验证方法 | |
CN118052196A (zh) | 基于uvm的芯片验证测试方法、装置及电子设备 | |
CN105204999B (zh) | 一种实现自动化测试的方法 | |
CN103165405A (zh) | 一种通过gpib接口实时生成多维变量密码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20101215 |