一种基于参数化ip测试用例集合的芯片自动化验证方法

文档序号:6628046阅读:449来源:国知局
一种基于参数化ip 测试用例集合的芯片自动化验证方法
【专利摘要】本发明公开了一种基于参数化IP测试用例集合的芯片自动化验证方法,采用传统验证方法加入IP测试用例的测试激励来实现,步骤如下:设计构成芯片的每个IP的测试用例集合;对构成芯片的每个IP的参数进行配置;根据IP在芯片设计时的参数定义配置相应的测试用例集合;基于配置后的测试用例集合对芯片中每个IP进行测试,以验证设计的正确性。本发明实现简单并且大幅减少了针对同一IP重新编写测试用例的开销,提升了基于IP构建的芯片验证的效率。
【专利说明】一种基于参数化IP测试用例集合的芯片自动化验证方法

【技术领域】
[0001] 本发明涉及基于IP构建的芯片的自动化验证技术,特别适用于基于IP构建的大 规模集成电路的功能验证。

【背景技术】
[0002] 随着集成电路工艺的进步,在单一芯片上集成的晶体管数目越来越多,集成电路 规模的增大使得设计和验证变得十分复杂,为了提升芯片设计的效率,降低设计和验证的 时间成本,基于成熟度高的IP进行设计和开发成为超大规模集成电路设计的一种主流方 式。
[0003] 针对这类基于IP的芯片设计,由于不同的设计会对IP有不同的使用方式,从而会 选取不同的配置参数,在验证时都是根据芯片程序针对不同的芯片构建不同的测试用例, 从而导致不同的设计会有不同的验证用例以保证与IP的配置参数一致,从而即使是相同 的IP,在不同的项目中使用也会带来很大的测试用例编写时间和验证时间开销。随着半导 体工艺的进步,芯片的复杂度进一步提升,会在单一芯片上大量使用成熟的IP,从而使得这 种验证时间也随之上升,传统的编写测试用例的方法很难满足大量IP使用时的验证需求。


【发明内容】

[0004] 本发明的技术解决问题是:克服现有技术的不足,提供一种基于参数化IP测试用 例集合的芯片自动化验证方法,该方法提升了基于IP的复杂设计的验证效率及IP复用时 的验证效率,减少了版本管理和IP参数配置更改的时间开销。
[0005] 本发明的技术解决方案是:一种基于参数化IP测试用例集合的芯片自动化验证 方法,所述芯片由多个IP构成,其特征在于步骤如下:
[0006] 步骤一、为构成芯片的每个IP设计测试用例集合,所述每个IP的测试用例集合覆 盖对应IP的所有测试功能,且其中每个测试用例的输入输出均以对应IP的参数表示;
[0007] 步骤二、对构成芯片的每个IP的参数进行配置;
[0008] 步骤三、利用步骤二中每个IP的参数配置值为对应IP的测试用例集合中的相应 参数赋值;
[0009] 步骤四、利用每个IP的测试用例集合对芯片中对应的IP进行测试,直到完成芯片 中所有IP的测试;如果所有的测试用例均通过则证明该设计符合需求,如果存在未能通过 的测试用例,则定位对应的IP进行问题分析。
[0010] 所述芯片中每个IP的输入输出接口均能通过外部测试环境访问。
[0011] 本发明相比现有技术具有如下优点:
[0012] (1)传统芯片的自动化验证方法首先构建芯片程序,通过分析芯片程序针对不同 的芯片构建不同的测试用例;本发明构建针对IP的参数化测试用例,使得设计与验证共用 相同参数,利用统一的IP参数进行配置,实现整个基于IP的设计和验证的全自动化。
[0013] (2)本发明的方法使得一旦某个IP的参数化测试用例集合被构建后,后续其他应 用该IP实现设计的产品均可以使用该测试用例,而不需要再去分析代码编写测试用例,仅 需要将其他设计中的参数带入即可。从而基于参数化测试用例实现多个设计中相同IP的 测试用例的复用和单一复杂设计中多个不同参数配置的IP的验证的复用,实现了测试的 自动化,提升了验证效率,节省了验证时间。
[0014] (3)本发明易于维护和升级,当部分IP参数更动时,仅需重新配置一下测试用例 即可进行验证,降低更动造成的时间开销。
[0015] (4)本发明利用每一个IP的测试用例集合对对应的IP进行测试,从而在发现问题 时能够快速定位到具体IP,极大缩短了后续分析和改进设计的时间。

【专利附图】

【附图说明】
[0016] 图1为本发明基于参数化IP测试用例集合的芯片自动化验证方法流程示意图。

【具体实施方式】
[0017] 下面结合附图和具体芯片验证实施案例对本发明作进一步详细的描述:
[0018] 如图1所示为本发明基于参数化IP测试用例集合的芯片自动化验证方法流程示 意图,具体步骤如下:
[0019] (一)对每个IP设计测试用例,测试用例的输入输出都以该IP的参数表示,覆盖 该IP所有功能的测试用例构成该IP的可配置测试用例集合TIP ;
[0020] (二)根据实际的设计需求,对组成芯片的所有IP的可配置的参数进行配置,如 IP中使用的FIFO大小等,配置完成后,在设计中进行例化,将其参数赋值,如VHDL语言中使 用generic map语句的方式进行例化。
[0021] 基于配置完成的IP进行整体的代码设计,将IP的接口通过总线或其它连接方式 与其他模块连接在一起构成整个设计,如VHDL中使用的port map语句可用于各模块的端 口的例化,并通过接口信号将各个子模块构成一个系统。
[0022] (三)根据步骤(二)的配置参数对每一个IP的可配置测试用例集合TIP进行配 置,如某IP使用的FIFO大小是64字节,则期对应的测试用例集合中的FIFO也会被配置为 64字节,从而使得可以进行诸如64字节的FIFO装满数据后的测试。
[0023] (四)使用SystemVerilog语言中的接口将某IP的可配置测试用例集合TIP的激 励输入到芯片中该IP的端口上(通过直接给端口赋值或通过总线方式将测试激励输入到 对应的IP上),将该IP的输出与TIP中相应的正确结果进行比对,从而得到对该IP端口的 测试结果。
[0024] 依次类推,完成芯片中所有IP的测试。如果所有的测试用例均可以通过则证明该 设计的功能符合设计需求,如果存在未能通过的测试用例,则可以通过分析设计代码来定 位问题。
[0025] 本发明中的芯片是基于IP构建的,且该设计不改动IP内部的代码,保证IP部分 的完整性。其中包含相应的IP对应的输入输出接口,且该部分接口可以由外部测试环境 访问。
[0026] IP测试用例集合应当可通过外部参数定义进行配置的,且覆盖IP可以配置的各 种参数,从而适用于IP的任何参数配置的验证。
[0027] IP测试用例集合需覆盖IP的各种功能测试,使得该测试用例集合满足其IP功能 覆盖率100%的要求。
[0028] IP测试用例集合应同时含有测试激励的产生与输出结果比对两部分内容,以保证 对测试结果的自动化比对。
[0029] 下面列举一个具体的实施例:
[0030] 通用多路异步串口(UART)芯片的验证流程:芯片功能为实现多路异步串口的并 行通信,其中的每路异步串口均选用成熟度高的IP来实现,通过配置每个串口(即IP)的 参数构建整个多路异步串口的RTL代码,然后,根据这些参数配置相应的IP测试用例集合, 基于生成的测试用例构建仿真验证平台,依次对每路串口进行仿真验证,从而实现对多路 异步串口芯片的验证。
[0031] 具体操作流程如下:
[0032] 步骤(一)、为每路异步串口设计测试用例集合,测试用例集合中的输入输出均以 每路异步串口的参数表示。
[0033] 步骤(二)、根据实际需求配置相应的各路异步串口(即IP)的参数,本实例中配 置的参数为每个异步串口的接收FIFO和发送FIFO的大小和每路异步串口的寄存器地址分 配空间,前者的大小以字节为单位,可以配置为16字节、32字节、64字节、128字节和256字 节五种大小,后者的地址分配可以选取地址线的高几位进行分配,如16个串口则选取高4 位即可以满足对不同的异步串口访问时地址的区分。
[0034] 根据配置的参数构建整个多路异步串口的RTL代码,如以收发FIFO字节均为32 字节为例,例化该IP部分的代码如下所示:
[0035] uart0_uut: miniuart generic map ( RFIFO => 32,
[0036] TFIFO => 32 ) port map ( elk => F_CLK );
[0037] 步骤(三)、根据整个多路异步串口的RTL代码以及配置的参数为IP测试用例集 合中各相应的参数赋值。RTL代码中的IP配置参数和可配置IP测试集配置的参数完全一 致。
[0038] 以某路异步串口的TIP为例,对其中的参数进行配置,本例中采用宏定义的方式, 在Makefile中定义相应的变量来配置TIP中的参数,如下所示:
[0039] TIP中的部分可配置语句编写如下:
[0040] for (l=0;l<('TFIFO);l++) begin cpu_uart.read_data(3'b000,0,8); cpu_uart.check_rdata(l); end
[0041] 在Makefile进行编译时,定义参数的方式如下:
[0042] make TFIF0 = 32
[0043] 通过上述操作来实现对可配置测试用例集合的参数进行赋值。
[0044] 步骤(四)、采用SystemVerilog语言将读写寄存器封装为函数,增加一个经过验 证的异步串口通信模块,被测的多路串口与该陪测串口收发数据后利用这些函数读取相应 的数据寄存器中的数值判断串口通信的收发功能是否正确。
[0045] 具体地,对UART测试用例集合每个串口 TIP中的各个测试向量进行测试,本例中 对各种波特率、各种字节格式下的串口收发数据进行测试,并对FIFO清空和装满情况下的 异常情况也进行测试,以覆盖该串口的所有功能项。
[0046] 使用VCS编译仿真软件进行验证,将不同的UART模块的仿真结果输出为不同的 log文件,仿真验证遍历每个UART模块。
[0047] 统计各种测试的结果,并对功能覆盖率进行分析,本例的实际仿真验证表明,所有 测试用例均通过测试,其功能覆盖率达到100%,语句覆盖率达到100%,条件覆盖率达到 98 %以上,满足设计应用对该芯片验证的需求。
[0048] 以上所述,仅为本发明最佳的【具体实施方式】,但本发明的保护范围并不局限于此, 任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换, 都应涵盖在本发明的保护范围之内。
[0049] 本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。
【权利要求】
1. 一种基于参数化IP测试用例集合的芯片自动化验证方法,所述芯片由多个IP构成, 其特征在于步骤如下 : 步骤一、为构成芯片的每个IP设计测试用例集合,所述每个IP的测试用例集合覆盖对 应IP的所有测试功能,且其中每个测试用例的输入输出均以对应IP的参数表示; 步骤二、对构成芯片的每个IP的参数进行配置; 步骤三、利用步骤二中每个IP的参数配置值为对应IP的测试用例集合中的相应参数 赋值; 步骤四、利用每个IP的测试用例集合对芯片中对应的IP进行测试,直到完成芯片中所 有IP的测试;如果所有的测试用例均通过则证明该设计符合需求,如果存在未能通过的测 试用例,则定位对应的IP进行问题分析。
2. 根据权利要求1所述的一种基于参数化IP测试用例集合的芯片自动化验证方法,其 特征在于:所述芯片中每个IP的输入输出接口均能通过外部测试环境访问。
【文档编号】G06F11/36GK104268078SQ201410492013
【公开日】2015年1月7日 申请日期:2014年9月23日 优先权日:2014年9月23日
【发明者】夏冰冰, 孙强, 刘波, 吴一帆, 杨桦 申请人:北京控制工程研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1