CN104346272B - 芯片自动仿真验证系统 - Google Patents
芯片自动仿真验证系统 Download PDFInfo
- Publication number
- CN104346272B CN104346272B CN201310313645.6A CN201310313645A CN104346272B CN 104346272 B CN104346272 B CN 104346272B CN 201310313645 A CN201310313645 A CN 201310313645A CN 104346272 B CN104346272 B CN 104346272B
- Authority
- CN
- China
- Prior art keywords
- chip
- test
- chip system
- emulator
- test vector
- 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
Landscapes
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开一种芯片自动仿真验证系统,包括:芯片系统模型,与片上系统芯片相对应,其中建立与所述片上系统芯片相应的硬件模型和软件模型;所述芯片系统模型随机生成测试向量并运行该测试向量得到测试结果;仿真器,接收并运行与片上系统芯片相应的设计文件;所述仿真器与所述芯片系统模型通信,接收测试向量并利用该测试向量进行测试验证得到仿真结果;所述芯片系统模型还比较所述测试结果和仿真结果,若所述测试结果和仿真结果一致,则继续产生下一随机测试向量,并进行下一轮的测试和比较,否则停止测试。还公开一种相应的芯片自动仿真验证方法。上述芯片自动仿真验证系统和方法在测试验证时更加简单和高效。
Description
技术领域
本发明涉及芯片产品的检测技术领域,特别是涉及一种芯片自动仿真验证系统。
背景技术
片上系统(System On Chip,SOC)是指在单芯片上集成微电子应用产品所需的全部功能系统,其是以超深亚微米(Very Deep Submicron,VDSM)工艺和知识产权(Intellectual Property,IP)核复用技术为支撑。SOC技术是当前大规模集成电路(VeryLarge Scale Integrate,VLSI)的发展趋势,也是解决电子产品开发中的及时上市(Timeto Market,TTM)的主要技术与方法。
随着深亚微米技术的高速发展,芯片的集成规模越来越大,芯片功能的验证变得越来越重要和复杂耗时,芯片的设计方法也随之发生了巨大的变化。目前,仿真验证工作约占整个片上系统芯片开发周期的50%~80%。然而传统的芯片仿真验证时间长、自动化程度低、耗时费力,这就导致整个芯片的开发周期变长。
传统的验证测试模式是开环,需专人管理控制输入测试向量和观察仿真波形,耗时耗力。
而有一些自动仿真平台,例如PLI自动仿真平台也会存在各种问题,1)PLI标准使用复杂;2)PLI必须定义系统任务或函数,且把calltf C函数和该系统任务/函数名称关联;3)C模型与电路的通讯协议交互复杂。这会导致使用这些自动仿真平台有很高的门槛。
发明内容
基于此,有必要提供一种简单并且测试效率高的芯片自动仿真验证系统。
此外,还提供一种芯片自动仿真验证方法。
一种芯片自动仿真验证系统,包括:芯片系统模型,与片上系统芯片相对应,其中建立与所述片上系统芯片相应的硬件模型和软件模型;所述芯片系统模型随机生成测试向量并运行该测试向量得到测试结果;仿真器,接收并运行与片上系统芯片相应的设计文件;所述仿真器与所述芯片系统模型通信,接收测试向量并利用该测试向量进行测试验证得到仿真结果;所述芯片系统模型还比较所述测试结果和仿真结果,若所述测试结果和仿真结果一致,则继续产生下一随机测试向量,并进行下一轮的测试和比较,否则停止测试。
在其中一个实施例中,所述芯片系统模型为systemC模型。
在其中一个实施例中,所述仿真器通过设置第一标志数据指示仿真是否完成,所述芯片系统模型通过读取所述第一标志数据决定是否继续生成测试向量。
在其中一个实施例中,所述芯片系统模型通过设置第二标志数据指示所述测试结果和仿真结果是否一致,所述仿真器通过读取所述第二标志数据决定是否继续接收测试向量并进行仿真。
在其中一个实施例中,所述仿真器还可设置循环对比次数,在所述循环对比次数到达时,输出测试通过信息。
一种芯片自动仿真验证方法,包括如下步骤:构建与片上系统芯片对应的芯片系统模型;将与片上系统芯片相应的设计文件输入仿真器并运行;启动所述芯片系统模型,并由所述芯片系统模型随机生成测试向量,同时所述芯片系统模型运行该测试向量得到测试结果;所述仿真器与所述芯片系统模型通信,接收所述测试向量,并利用该测试向量进行测试验证得到仿真结果;所述芯片系统模型比较所述测试结果和仿真结果,若所述测试结果和仿真结果一致,则继续产生下一随机测试向量,并进行下一轮的测试和比较,否则停止测试。
在其中一个实施例中,所述构建与片上系统芯片对应的芯片系统模型的步骤中,采用systemC建模。
在其中一个实施例中,所述芯片系统模型在运行该测试向量得到测试结果的同时,还设置第二标志数据,以指示所述测试结果和仿真结果是否一致,所述仿真器通过读取所述第二标志数据决定是否继续接收测试向量并进行仿真。
在其中一个实施例中,所述仿真器在利用该测试向量对所述片上系统芯片进行测试验证得到仿真结果的同时,还设置第一标志数据,以指示仿真是否完成,所述芯片系统模型通过读取所述第一标志数据决定是否继续生成测试向量。
在其中一个实施例中,所述仿真器在测试开始前还设置循环对比次数,在所述循环对比次数到达时,输出测试通过信息。
上述芯片自动仿真验证系统和方法,通过构建与片上系统芯片相应的芯片系统模型,其自动产生测试向量和测试结果,继而利用测试向量在仿真器中进行验证获得仿真结果,自动比较测试结果和仿真结果的一致性来实现整个仿真验证过程的自动实现,因此效率较高。而利用包括硬件描述语言的抽象级语言构建芯片系统模型也相对较为简单。
附图说明
图1为片上系统芯片开发过程示意图;
图2为一实施例的芯片自动仿真验证系统模块图;
图3为功能器件模块示意图;
图4为一实施例的芯片自动仿真验证方法流程图;
图5为芯片自动仿真验证系统内部流程图。
具体实施方式
如图1所示,为片上系统芯片开发过程示意图。片上系统芯片从最初的需求提出到最后形成产品,需要经历以下主要阶段:功能设计、设计描述和行为级验证、逻辑综合、门级验证、布局和布线等。
验证(verification)的目的是确认设计的功能正确性和性能(速度和功耗等)满足设计要求,贯穿于设计的整个过程。片上系统包括硬件资源和软件系统。现代SoC设计通常都是软硬件协同设计,因此在设计描述和行为级验证阶段,需要把硬件资源和软件模块进行划分,并形成寄存器传输级(register transfer level,RTL)级结构。
以下实施例提供的系统和方法都是用于对SoC芯片进行测试验证。
如图2所示,为一实施例的芯片自动仿真验证系统。该芯片自动仿真验证系统10包括芯片系统模型100和仿真器200。
芯片系统模型100与片上系统芯片相对应,其中建立与所述片上系统芯片相应的硬件模型110和软件模型120。片上系统芯片通常都包含硬件资源和运行其上的软件系统,可以用于完成各种特定的应用,例如声音检测、无线传输以及导航等等。
而芯片系统模型100则是运用具有硬件库的高级编程语言所构建的软件模型,该芯片系统模型100中包括了体现硬件资源的硬件模型110和体现软件系统的软件模型120。例如用于卫星导航的片上系统芯片具有的硬件包括数字变频器、维特比译码器和数据提取器,用于将卫星信号进行前端处理得到待处理数据,软件部分则对该待处理数据进行处理。前述的高级编程语言采用硬件描述语言(Hardware Description Language,HDL)对该硬件资源进行描述获得硬件模型,而采用惯常的软件描述方法对该处理过程进行描述即得到软件模型。
因此,该芯片系统模型100实现了对片上系统芯片的完整描述,并实现该片上系统芯片的功能。本实施例中采用systemC语言用于构建芯片系统模型100。systemC语言是在C++的基础上增加硬件扩展库和仿真内核的编程语言,不仅有支持硬件操作的信号、时序和接口,在不同抽象层次上对芯片进行建模,而且还可以通过仿真内核搭建仿真平台,对各个设计阶段进行验证。所述的抽象层次即包括系统设计级、寄存器传输级(RTL)以及门(Gate)级等。
芯片系统模型100除构建与片上系统芯片对应的模型之外,还会随机生成测试向量并运行该测试向量得到测试结果。也即芯片系统模型100通过建模可以提供完全随机的测试向量TV和与之相应的测试结果TR。
仿真器200接收并运行与片上系统芯片相应的设计文件。所述设计文件也是片上系统芯片在设计层次的反映,一般都是采用verilog语言进行描述和生成。Verilog语言是更接近硬件的硬件描述语言,其大量应用在芯片开发过程中。其与高级编程语言的差别在于其抽象层次更低。仿真器200则用于执行上述设计文件,验证所设计的功能。可以理解,不同的设计文件在仿真器200中执行,会完成不同的功能。上述设计文件处于RTL级。
例如,采用verilog语言对如图3所示的功能模块进行描述如下:
片上系统芯片中所有的模块和模块间的通信都采用module进行定义,最后形成上述的设计文件。
仿真器200与芯片系统模型100通信,接收测试向量并利用该测试向量进行测试验证得到仿真结果SR。芯片系统模型100比较所述测试结果TR和仿真结果SR,若所述测试结果TR和仿真结果SR一致,则继续产生下一随机测试向量TV,并进行下一轮的测试和比较,否则停止测试。
上述芯片自动仿真验证系统10由芯片系统模型100自动生成随机测试向量和对应的测试结果,并将测试向量提供给仿真器200,通过比较测试结果和仿真结果,自动不断进行测试验证,无需人为参与,简单高效。
进一步地,仿真器200通过设置第一标志数据指示仿真是否完成,芯片系统模型100通过读取所述第一标志数据决定是否继续生成测试向量。芯片系统模型100通过设置第二标志数据指示所述测试结果和仿真结果是否一致,仿真器200通过读取所述第二标志数据决定是否继续接收测试向量并进行仿真。所述第一标志数据和第二标志数据都可以是布尔型的标志位。设置第一标志数据和第二标志数据使得芯片系统模型100和仿真器200之间的通信方式极为简单。
进一步地,仿真器200还可设置循环对比次数,在所述循环对比次数到达时,输出测试通过信息。在一定的循环对比次数下,随机生成的测试向量可以形成全覆盖,在全覆盖的情况下,仿真器的仿真结果都没有出错,说明该设计是可行的,因此可以输出测试通过信息告知测试人员测试通过。该循环对比次数示例为1000次。在其他实施例中,可以综合考虑时间成本和测试可靠性确定循环对比次数。
基于上述的芯片自动仿真验证系统10,本发明还提供一种芯片自动仿真验证方法。参考图4,该方法包括以下步骤。
步骤S101:构建与片上系统芯片对应的芯片系统模型。
步骤S102:将与片上系统芯片相应的设计文件输入仿真器并运行。
步骤S103:启动所述芯片系统模型,并由所述芯片系统模型随机生成测试向量,同时所述芯片系统模型运行该测试向量得到测试结果。
步骤S104:所述仿真器与所述芯片系统模型通信,接收所述测试向量,并利用该测试向量进行测试验证得到仿真结果。
步骤S105:判断所述测试结果和仿真结果是否一致,若是,则继续产生下一随机测试向量,也即返回到步骤S103,并进行下一轮的测试和比较,否则停止测试。
在步骤S104中,还设置第一标志数据,以指示仿真是否完成,所述芯片系统模型通过读取所述第一标志数据决定是否继续生成测试向量。在步骤S105中,还设置第二标志数据,以指示所述测试结果和仿真结果是否一致,所述仿真器通过读取所述第二标志数据决定是否继续接收测试向量并进行仿真。所述第一标志数据和第二标志数据都可以是布尔型的标志位。设置第一标志数据和第二标志数据使得芯片系统模型100和仿真器200之间的通信方式极为简单。
芯片系统模型100和仿真器200之间基于标志位的通信更具体地采用图5示出。
在步骤S102之前,所述仿真器还设置循环对比次数,在所述循环对比次数到达时,输出测试通过信息。在一定的循环对比次数下,随机生成的测试向量可以形成全覆盖。在全覆盖的情况下,如果仿真器的仿真结果都没有出错,说明该设计是可行的,因此可以输出测试通过信息告知测试人员测试通过。该循环对比次数示例为1000次。在其他实施例中,可以综合考虑时间成本和测试可靠性确定循环对比次数。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (4)
1.一种芯片自动仿真验证系统,其特征在于,包括:
芯片系统模型,与片上系统芯片相对应,其中建立与所述片上系统芯片相应的硬件模型和软件模型;所述芯片系统模型随机生成测试向量并运行该测试向量得到测试结果;所述芯片系统模型为systemC模型;
仿真器,接收并运行与片上系统芯片相应的设计文件;所述仿真器与所述芯片系统模型通信,接收测试向量并利用该测试向量进行测试验证得到仿真结果;
所述芯片系统模型还比较所述测试结果和仿真结果,若所述测试结果和仿真结果一致,则继续产生下一随机测试向量,并进行下一轮的测试和比较,否则停止测试;
所述仿真器通过设置第一标志数据指示仿真是否完成,所述芯片系统模型通过读取所述第一标志数据决定是否继续生成测试向量;
所述芯片系统模型通过设置第二标志数据指示所述测试结果和仿真结果是否一致,所述仿真器通过读取所述第二标志数据决定是否继续接收测试向量并进行仿真。
2.根据权利要求1所述的芯片自动仿真验证系统,其特征在于,所述仿真器还可设置循环对比次数,在所述循环对比次数到达时,输出测试通过信息。
3.一种芯片自动仿真验证方法,包括如下步骤:
采用systemC构建与片上系统芯片对应的芯片系统模型;
将与片上系统芯片相应的设计文件输入仿真器并运行;
启动所述芯片系统模型,并由所述芯片系统模型随机生成测试向量,同时所述芯片系统模型运行该测试向量得到测试结果;
所述仿真器与所述芯片系统模型通信,接收所述测试向量,并利用该测试向量进行测试验证得到仿真结果;
所述芯片系统模型比较所述测试结果和仿真结果,若所述测试结果和仿真结果一致,则继续产生下一随机测试向量,并进行下一轮的测试和比较,否则停止测试;
所述芯片系统模型在运行该测试向量得到测试结果的同时,还设置第二标志数据,以指示所述测试结果和仿真结果是否一致,所述仿真器通过读取所述第二标志数据决定是否继续接收测试向量并进行仿真;
所述仿真器在利用该测试向量对所述片上系统芯片进行测试验证得到仿真结果的同时,还设置第一标志数据,以指示仿真是否完成,所述芯片系统模型通过读取所述第一标志数据决定是否继续生成测试向量。
4.根据权利要求3所述的芯片自动仿真验证方法,其特征在于,所述仿真器在测试开始前还设置循环对比次数,在所述循环对比次数到达时,输出测试通过信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310313645.6A CN104346272B (zh) | 2013-07-24 | 2013-07-24 | 芯片自动仿真验证系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310313645.6A CN104346272B (zh) | 2013-07-24 | 2013-07-24 | 芯片自动仿真验证系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104346272A CN104346272A (zh) | 2015-02-11 |
CN104346272B true CN104346272B (zh) | 2018-04-10 |
Family
ID=52501936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310313645.6A Active CN104346272B (zh) | 2013-07-24 | 2013-07-24 | 芯片自动仿真验证系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104346272B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105279050B (zh) * | 2015-09-29 | 2019-01-15 | 中国电子科技集团公司第五十四研究所 | 一种检测SoC前后端ROM数据一致性的方法 |
CN105302950B (zh) * | 2015-10-19 | 2018-07-24 | 北京精密机电控制设备研究所 | 一种软、硬件协同的可编程逻辑器件交联仿真测试方法 |
CN106199392B (zh) * | 2016-06-27 | 2019-02-12 | 中国科学院深圳先进技术研究院 | 芯片单粒子效应探测方法及装置 |
CN108021767A (zh) * | 2017-12-21 | 2018-05-11 | 郑州云海信息技术有限公司 | 一种用于芯片仿真验证的信息记录方法及系统 |
CN108038328A (zh) * | 2017-12-24 | 2018-05-15 | 苏州赛源微电子有限公司 | 芯片自动仿真验证系统 |
CN110516334B (zh) * | 2019-08-16 | 2021-12-03 | 浪潮电子信息产业股份有限公司 | 基于硬件环境的卷积计算仿真测试方法、装置及相关设备 |
CN112986806A (zh) * | 2019-12-16 | 2021-06-18 | 合肥杰发科技有限公司 | 一种接口测试方法、测试系统及计算机存储介质 |
CN111965530A (zh) * | 2020-04-30 | 2020-11-20 | 京微齐力(北京)科技有限公司 | 一种基于jtag的fpga芯片自动化测试方法 |
CN111985179A (zh) * | 2020-08-26 | 2020-11-24 | 上海磐启微电子有限公司 | 一种无线通信芯片的设计验证系统及方法 |
CN112100954B (zh) * | 2020-08-31 | 2024-07-09 | 北京百度网讯科技有限公司 | 验证芯片的方法、装置和计算机存储介质 |
CN112329369B (zh) * | 2020-11-09 | 2024-04-12 | 安徽芯纪元科技有限公司 | 一种在芯片仿真模型上进行软件调试的方法 |
CN113032195B (zh) * | 2021-03-24 | 2023-05-23 | 上海西井信息科技有限公司 | 芯片仿真验证方法、系统、设备及存储介质 |
CN113485875A (zh) * | 2021-05-20 | 2021-10-08 | 新华三半导体技术有限公司 | 一种芯片验证系统及验证方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5923567A (en) * | 1996-04-10 | 1999-07-13 | Altera Corporation | Method and device for test vector analysis |
US20020173942A1 (en) * | 2001-03-14 | 2002-11-21 | Rochit Rajsuman | Method and apparatus for design validation of complex IC without using logic simulation |
CN101183406B (zh) * | 2007-12-25 | 2010-06-30 | 盛科网络(苏州)有限公司 | 网络芯片模块级功能验证测试平台的建立方法 |
CN101515301B (zh) * | 2008-02-23 | 2011-05-04 | 炬力集成电路设计有限公司 | 一种片上系统芯片验证的方法和装置 |
-
2013
- 2013-07-24 CN CN201310313645.6A patent/CN104346272B/zh active Active
Non-Patent Citations (1)
Title |
---|
"数字专用集成电路设计中的System C建模验证方法";罗琨等;《武汉大学学报(理学版)》;20020630;第48卷(第3期);第306-310页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104346272A (zh) | 2015-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104346272B (zh) | 芯片自动仿真验证系统 | |
US7958475B2 (en) | Synthesis of assertions from statements of power intent | |
KR100463735B1 (ko) | 복합 ic의 설계 검증 방법 | |
USRE44479E1 (en) | Method and mechanism for implementing electronic designs having power information specifications background | |
CN108830008A (zh) | 一种标准单元库全模型的测试方法及测试系统 | |
CN108038328A (zh) | 芯片自动仿真验证系统 | |
US9934342B1 (en) | Clock gating verification during RTL stage of integrated circuit design | |
CN104239616A (zh) | 集成电路的设计方法及硬件木马检测方法 | |
CN112417798B (zh) | 一种时序测试方法、装置、电子设备及存储介质 | |
US20020173942A1 (en) | Method and apparatus for design validation of complex IC without using logic simulation | |
US9189578B1 (en) | System, method, and computer program product for power supply network visualization | |
CN109543212A (zh) | 可编程逻辑器件的功能测试方法、装置及计算机存储介质 | |
CN105279345A (zh) | 一种航天器用数字软ip核评测方法 | |
CN106295048A (zh) | 一种数字芯片功能验证方法及系统 | |
US10515169B1 (en) | System, method, and computer program product for computing formal coverage data compatible with dynamic verification | |
Stotland et al. | UVM based approaches to functional verification of communication controllers of microprocessor systems | |
US9104829B2 (en) | Method of validating timing issues in gate-level simulation | |
Zheng et al. | The methods of FPGA software verification | |
CN104811259B (zh) | 一种卫星通信频偏验证方法 | |
Mischkalla et al. | Architectural low-power design using transaction-based system modeling and simulation | |
US20090083684A1 (en) | Method for Violating the Logical Function and Timing Behavior of a Digital Circuit Decision | |
Schlebusch et al. | Transaction based design: Another Buzzword or the Solution to a Design Problem? | |
US10546083B1 (en) | System, method, and computer program product for improving coverage accuracy in formal verification | |
Lahbib et al. | A new synchronization policy between PSL checkers and SystemC designs at transaction level | |
Bakeer et al. | Analog, digital and mixed-signal design flows |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |