首页> 中国专利> 用于IP核测试与验证的装置、系统及方法

用于IP核测试与验证的装置、系统及方法

摘要

本发明实施例提供一种用于IP核测试与验证的装置、系统及方法。该装置包括:数据生成与控制板卡,用于生成测试数据,以及控制核心验证板卡的IP核进行测试与验证;核心验证板卡,通过链路层与数据生成与控制板卡连接,并用于根据数据生成与控制板卡的控制指令进行对应的操作。本发明不仅提高了测试数据生成的密度、速度以及测试速度,并且还提高了测试方法的可扩展性和灵活性。

著录项

说明书

技术领域

本发明涉及集成电路技术领域,具体地涉及一种用于IP核测试与验证的装置、系统及方法。

背景技术

IP核即知识产权核,是用于专用集成电路(Application Specific IntegratedCircuit,ASIC)或现场可编程逻辑门列阵(Field Programmable Gate Array,FPGA)中的预先设计好的电路功能模块。目前,对于芯片内各模块IP核的功能进行仿真与验证是集成电路设计过程中一个重要环节。验证过程是证明设计正确的过程,验证的目的是为了保证设计实现与设计规范是一致的,而仿真是在物理实现之前进行验证工作的一种方法。目前,IP验证一般是通过仿真和用验证系统进行测试来实现的。具体过程是指在软件环境下进行软件仿真以验证IP核功能的正确性,然后写入FPGA器件中进行硬件电路的验证,测试正确则IP核验证完毕。传统验证方法只使用硬件描述语言编写测试激励,抽象层次较低,还需要便携复杂的状态机控制,灵活性差,测试过程时间长,不利于实时监测。利用上位机软件的测试方法,需要测试环境复杂,还需要开发软件驱动等相关操作,开发时间长,难以保证测试的数量和测试的密度。因此,现有技术对于IP核的测试与验证过程复杂且效率较低。

发明内容

本发明实施例的目的是提供一种用于IP核测试与验证的装置、系统及方法,用以解决现有技术对于IP核的测试与验证过程复杂且效率较低的问题。

为了实现上述目的,本发明第一方面提供一种用于IP核测试与验证的装置,包括:

数据生成与控制板卡,用于生成测试数据,以及控制核心验证板卡的IP核进行测试与验证;

核心验证板卡,通过链路层与数据生成与控制板卡连接,用于根据数据生成与控制板卡的控制指令进行对应的操作。

在本发明的实施例中,数据生成与控制板卡包括:

主控模块,用于对数据生成模块和核心验证板卡进行以下操作中的至少一者:控制、监测、调度,以及对IP核的测试结果进行统计;以及

数据生成模块,通过链路层与主控模块连接,用于生成测试数据以及将主控模块产生的控制指令发送至核心验证板卡。

在本发明的实施例中,主控模块包括:

测试核心控制子模块,用于控制IP核的测试与验证,以及统计测试与验证的结果;

数据校验子模块,用于对IP核的数据校验结果进行统计,或者配合数据生成模块对IP核的数据校验结果进行统计。

在本发明的实施例中,主控模块还包括以下中的至少一者:

压力测试子模块,用于进行基于验证方法学的压力测试;

覆盖率测试子模块,用于进行基于验证方法学的覆盖率测试;

第一测试监控子模块,用于监控主控模块中的子模块;以及

第一链路接口子模块,用于与外部的双倍速率同步动态随机存储器、数据生成模块或核心验证板卡进行数据交互。

在本发明的实施例中,数据生成模块包括以下中的至少一者:

数据生成子模块,用于生成IP核的测试与验证所需要的线性测试数据,并将线性测试数据传输至核心验证板卡;

数据加速生成子模块,用于生成IP核的测试与验证所需要的非线性数据,并将非线性数据缓存至外部的双倍速率同步动态随机存储器。

在本发明的实施例中,数据生成模块还包括以下中的至少一者:

快速数据校验子模块,用于对IP核的数据校验结果进行统计,或者配合主控模块对IP核的数据校验结果进行统计;

第二测试监控子模块,用于监控数据生成模块中的子模块;

第二链路接口子模块,用于与主控模块或核心验证板卡进行数据交互;以及

数据缓存调度子模块,用于将数据生成子模块和/或数据加速生成子模块产生的数据与双倍速率同步动态随机存储器缓存的数据进行交互。

本发明第二方面提供一种数据生成与控制板卡,包括:

本发明第二方面提供一种数据生成与控制板卡,包括:

主控模块,用于对数据生成模块和核心验证板卡进行以下操作中的至少一者:控制、监测、调度,以及对核心验证板卡的IP核的测试结果进行统计;以及

数据生成模块,通过链路层与主控模块连接,用于生成测试数据以及将主控模块产生的控制指令发送至核心验证板卡;

其中,核心验证板卡通过链路层与数据生成与控制板卡连接,并用于根据数据生成与控制板卡的控制指令进行对应的操作。

本发明第三方面提供一种用于IP核测试与验证的系统,包括:

功能层,包括上述的用于IP核测试与验证的装置;

链路层,包括链路传输总线和系统监控总线,链路传输总线与功能层连接,用于连接功能层的多个模块,系统监控总线连接功能层和决策控制层,用于传输功能层和决策控制层的交互数据;以及

决策控制层,通过系统监控总线与功能层连接,用于发送IP核的测试与验证的执行指令以及获取IP核的测试与验证的结果报告。

本发明第四方面提供一种用于IP核测试与验证的方法,应用于上述的用于IP核测试与验证的装置,该方法包括:

控制核心验证板卡进行验证;和/或

控制数据生成与控制板卡进行测试。

在本发明的实施例中,控制数据生成与控制板卡进行测试包括:

指示数据生成模块向双倍速率同步动态随机存储器加载测试数据集合;

指示数据生成模块向核心验证板卡发送握手信号;

分别向核心验证板卡发送不同类型的数据文件以触发核心验证板卡进行写模式测试和读模式测试;以及

根据写模式测试和读模式测试的数据统计覆盖率。

在本发明的实施例中,分别向核心验证板卡发送不同类型的数据文件以触发核心验证板卡进行写模式测试和读模式测试包括以下中的至少两者:

向核心验证板卡发送固定数据文件以触发核心验证板卡进行写模式测试;向核心验证板卡读取写入的固定数据文件以触发核心验证板卡进行读模式测试;校验写入的固定数据文件和读取的固定数据文件的一致性,以统计第一覆盖率;

向核心验证板卡发送线性数据文件以触发核心验证板卡进行写模式测试;向核心验证板卡读取写入的线性数据文件以触发核心验证板卡进行读模式测试;校验写入的线性数据文件和读取的线性数据文件的一致性,以统计第二覆盖率;

向核心验证板卡发送随机数据文件以触发核心验证板卡进行写模式测试;向核心验证板卡读取写入的随机数据文件以触发核心验证板卡进行读模式测试;校验写入的随机数据文件和读取的随机数据文件的一致性,以统计第三覆盖率;

根据写模式测试和读模式测试的数据统计覆盖率包括:基于第一覆盖率、第二覆盖率和第三覆盖率中的至少两者统计整体覆盖率,以得到测试结论。

本发明设计了一种用于IP核测试与验证的装置,通过数据生成与控制板卡生成测试数据,控制核心验证板卡的IP核进行测试与验证,核心验证板卡通过链路层与数据生成与控制板卡连接,并根据数据生成与控制板卡的控制指令进行对应的操作,这样,不仅提高了测试数据生成的密度、速度以及测试速度,并且还提高了测试方法的可扩展性和灵活性。

本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:

图1是本发明一实施例提供的一种用于IP核测试与验证的装置的结构示意图;

图2是本发明另一实施例提供的一种用于IP核测试与验证的装置的结构示意图;

图3是本发明又一实施例提供的一种用于IP核测试与验证的装置的结构示意图;

图4是本发明实施例提供的一种用于IP核测试与验证的系统的结构示意图;

图5是本发明实施例提供的一种控制核心验证板卡进行验证的方法的流程示意图;

图6是本发明实施例提供的一种控制数据生成板卡进行测试的方法的流程示意图。

附图标记说明

1数据生成与控制板卡;2核心验证板卡;11主控模块;12数据生成模块;111测试核心控制子模块;112压力测试子模块;113覆盖率测试子模块;114数据校验子模块;115第一测试监控子模块;116第一链路接口子模块;121数据生成子模块;122数据加速生成子模块;123快速数据校验子模块;124第二测试监控子模块;125第二链路接口子模块;126数据缓存调度子模块;21第三链路接口子模块;22第三测试监控子模块;23数据缓存子模块;24控制命令接收子模块;25写模式子模块;26读模式子模块;41功能层;42链路层;43决策控制层。

具体实施方式

以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。

需要说明,若本申请实施方式中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。

另外,若本申请实施方式中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施方式之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。

图1是本发明一实施例提供的一种用于IP核测试与验证的装置的结构示意图。如图1所示,本发明提供一种用于IP核测试与验证的装置,可以包括:

数据生成与控制板卡1,用于生成测试数据,以及控制核心验证板卡2的IP核进行测试与验证;

核心验证板卡2,通过链路层与数据生成与控制板卡1连接,用于根据数据生成与控制板卡1的控制指令进行对应的操作。

在本发明的实施例中,数据生成与控制板卡1是用来对芯片内IP核进行多方面的验证方法学的测试的板卡。一方面,数据生成与控制板卡1可以随机、有序、交错产生各种测试数据,包括典型的特征验证数据、随机测试数据、特定测试数据等;同时,数据生成与控制板卡1自带数据校验功能,利用数据生成与控制板卡作为测试的激励装置、测试验证装置,搭建整体测试环境。另一方面,数据生成与控制板卡1还可以进行基于验证方法学的IP核测试,包括但不限于压力测试、重复覆盖率测试等。为了提高测试的速度、测试效率以及测试的完备性,可以采用SoPC作为测试校验的核心控制模块。

在一个示例中,数据生成与控制板卡1可以采用子母板配合工作的形式,由主控模块和数据生成模块构成。主控模块是整个IP核测试与验证的核心控制部分,可以完成对数据生成模块及核心验证板卡2的控制、检测和/或调度的工作,同时会对测试的结果进行统计和总结,报告测试结果等。数据生成模块的核心功能是生成测试所需的各种测试数据集合,数据集合中包含了一般测试数据和特殊测试数据。对于一般测试数据,可以由数据生成模块的数据生成子模块直接生成并通过链路层发送给核心验证板卡2;而对于特殊测试数据,如高阶随机数据、非线性测试数据等,需要由数据生成模块的数据快速生成子模块产生,然后将数据缓存至外部的双倍速率同步动态随机存储器(Double Data Rate DynamicRandom Access Memory,DDR SDRAM),本发明实施例用DDR3 SDRAM为例,以备测试使用,这样可以降低测试数据产生的时间开销,提高测试效率。

在本发明的实施例中,核心验证板卡2可以根据数据生成与控制板卡1的控制指令进行对应的操作。一方面,核心验证板卡2可以用于验证IP核的基本电气性能,例如,上电后电压是否稳定、相关接口是否可以用、时钟抖动是否正常范围等。另一方面,核心验证板卡2还可以根据数据生成与控制板卡1生成的测试数据进行IP核的测试,例如,覆盖率测试、压力测试等。

本发明实施例将数据生成与控制板卡1和核心验证板卡2通过链路层连接,通过数据生成与控制板卡1生成测试数据,控制核心验证板卡2的IP核进行测试与验证,核心验证板卡2根据数据生成与控制板卡1的控制指令进行对应的操作。与现有技术中利用上位机软件测试和验证IP核的方法相比,本发明实施例不需要复杂的测试环境,不仅提高了测试数据生成的密度、速度以及测试速度,并且还提高了测试方法的可扩展性和灵活性。

图2是本发明另一实施例提供的一种用于IP核测试与验证的装置的结构示意图。如图2所示,在本发明的实施例中,数据生成与控制板卡1可以包括:

主控模块11,用于对数据生成模块12和核心验证板卡2进行以下操作中的至少一者:控制、监测、调度,以及对IP核的测试结果进行统计;以及

数据生成模块12,通过链路层与主控模块11连接,用于生成测试数据以及将主控模块11产生的控制指令发送至核心验证板卡2。

在本发明的实施例中,数据生成与控制板卡1可以采用子母板配合工作的形式,由主控模块11和数据生成模块12构成。主控模块11是整个IP核测试与验证的核心控制部分,可以完成对数据生成模块12及核心验证板卡2的控制、检测和/或调度的工作,同时会对测试的结果进行统计和总结,报告测试结果等。数据生成模块12的核心功能是生成测试所需的各种测试数据集合,数据集合中包含了一般测试数据和特殊测试数据。对于一般测试数据,可以由数据生成模块12的数据生成子模块直接生成并通过链路层发送给核心验证板卡2;而对于特殊测试数据,如高阶随机数据、非线性测试数据等,需要由数据生成模块12的数据快速生成子模块产生,然后将数据缓存至外部的DDR3 SDRAM中,以备测试使用,这样可以降低测试数据产生的时间开销,提高测试效率。

在本发明的实施例中,主控模块11和/或数据生成模块12与核心验证板卡2之间可以通过FMC(FPGA Mezzanine Card)接插件互联。FMC是一个应用范围、适应环境范围和市场领域范围都很广的通用模块,FMC连接器是FMC的一个重要组成部分,它连接由FPGA提供的引脚和FMC子板的I/O接口,高性能引脚速度可以达到几个Gb/s。在一个示例中,主控模块11和核心验证板卡2通过FMC接插件互联,可以直接通过主控模块11控制核心验证板卡2进行简单的测试,例如验证IP核的上电后电压是否稳定等。在另一示例中,主控模块11和数据生成模块12共同构建数据生成与控制板卡1,用于主控测试和生成测试。在又一个示例中,主控模块11和数据生成模块12共同构建数据生成与控制板卡1,数据生成与控制板卡1通过FMC接插件与核心验证板卡2互联进行较为复杂的IP核测试。

图3是本发明又一实施例提供的一种用于IP核测试与验证的装置的结构示意图。如图3所示,主控模块11可以包括:

测试核心控制子模块111,用于控制IP核的测试与验证,以及统计测试与验证的结果;

数据校验子模块114,用于对IP核的数据校验结果进行统计,或者配合数据生成模块12对IP核的数据校验结果进行统计。

在本发明的实施例中,主控模块11还可以包括以下中的至少一者:

压力测试子模块112,用于进行基于验证方法学的压力测试;

覆盖率测试子模块113,用于进行基于验证方法学的覆盖率测试;

第一测试监控子模块115,用于监控主控模块11中的子模块;以及

第一链路接口子模块116,用于与外部的双倍速率同步动态随机存储器、数据生成模块12或核心验证板卡2进行数据交互。

在本发明的实施例中,测试核心控制子模块111可以包括微控制单元(Microcontroller Unit;MCU)和中央直接存储器(CentralDirectMemoryAccess,CDMA),MCU是主控模块11的中央处理和核心控制单元,MCU一方面可以对IP核测试与验证装置的工作流程进行控制,另一方面还可以进行数据验证结果的解析,并且负责统计IP核的测试结果等信息。在主控模块11内,通过SoPC架构总线扩展,MCU可以完成与其他模块的数据传输,通过中断控制模块,MCU可以响应各种中断,通过控制总线,MCU可以读写子模块的寄存器,对子模块进行配置与控制,并获得模块的状态信息。CDMA是SoPC中的核心DMA控制器,协助MCU单元完成子模块间大量数据的高速传输,其数据传输受MCU单元控制,并且可以随时被MCU单元所终止。

压力测试子模块112作为整个IP核测试与验证装置预留子模块,为系统升级和扩展使用。该模块可以完成通用验证方法学(Universal Verification Methodology,UVM)的压力测试过程,在单位时间内完成数据完整性和可靠性的测试。

覆盖率测试子模块113也作为整个IP核测试与验证装置的预留子模块,为系统升级和扩展使用。该模块可以完成UVM的覆盖率测试过程,在单位时间内完成对整个IP核覆盖率完整性的测试。

数据校验子模块114是主控模块11中的一个关键子模块,可以独立完成对IP核数据校验结果的统计,也可以作为控制器配合数据生成模块12对IP核的数据校验结果进行统计。在数据校验子模块114独立使用时,可以通过主控模块11单独与核心验证板卡2进行物理连接,通过FMC接插件实现,在这种配置尝试中,主控模块11中的数据校验模块是IP核测试与验证装置中绝对的主控核心,MCU通过数据校验子模块114的反馈结果在决策控制层产生数据校验结果的统计。在数据校验子模块114配合数据生成模块12一起使用时,数据校验子模块114则作为控制器和用于结果统计。

第一测试监控子模块115是主控模块11中的关键控制子模块,可以完成对主控模块11中独立子模块的单独控制,控制方式采用自定义协议进行,可以实现对独立子模块的快速访问、控制和监控。

第一链路接口子模块116是主控模块11中的关键控制子模块,该子模块主要包括两个部分:一个是与主控模块11外的DDR3 SDRAM缓冲存储区进行数据的交互;二是与数据生成模块12或者核心验证板卡2之间的独立数据连接,连接方式同样是采用FMC实现。

除了上述子模块外,主控模块11还可以包括定时(TIMER)子模块、中断控制(INIT)子模块、串口(UART)子模块(附图未示出)。TIMER子模块负责产生系统中的数据传输、DDR3SDRAM读写、控制命令所需的多种时钟,受MCU单元控制。INIT子模块受MCU单元控制,负责调度和控制主控模块11中的内部和外部产生的多种中断请求。UART是装置的串口控制逻辑,通过中断与MCU单元进行交互,此外,UART也是IP核测试与验证装置中的核心控制链路。

需要说明的是,本发明不限于上述子模块,还可以是其他能够实现主控模块11功能的子模块。

如图3所示,数据生成模块12可以包括以下中的至少一者:

数据生成子模块121,用于生成IP核的测试与验证所需要的线性测试数据,并将线性测试数据传输至核心验证板卡2;

数据加速生成子模块122,用于生成IP核的测试与验证所需要的非线性数据,并将非线性数据缓存至外部的双倍速率同步动态随机存储器。

在本发明的实施例中,数据生成模块12还可以包括以下中的至少一者:

快速数据校验子模块123,用于对IP核的数据校验结果进行统计,或者配合主控模块11对IP核的数据校验结果进行统计;

第二测试监控子模块124,用于监控数据生成模块中的子模块;

第二链路接口子模块125,用于与主控模块或核心验证板卡进行数据交互;以及

数据缓存调度子模块126,用于将数据生成子模块121和/或数据加速生成子模块122产生的数据与双倍速率同步动态随机存储器缓存的数据进行交互。

在本发明的实施例中,数据生成子模块121是数据生成模块12中的关键控制子模块,产生IP核数据测试所需要的多种线性测试用例和测试数据(例如线性增长数据,直流数据等),产生的数据通过FMC接口传输至核心验证板卡2,数据生成子模块121的工作受控于主控模块11。

数据加速生成子模块122是数据生成模块12中的关键控制子模块,产生IP测试数据所需要的多种非线性测试用例和测试数据(例如三角函数数据,随机测试数据等),由于该类数据通过软件产生会有较大的延迟问题,因此,数据加速生成子模块122可以将非线性测试数据缓存到外部的DDR3 SDRAM中,待验证使用时通过数据缓存调度实现数据向核心验证板卡2的输出,产生的数据通过FMC接口传输至核心验证板卡2。数据加速生成子模块122也受控于主控模块11。

快速数据校验子模块123是数据生成模块12中一个关键的子模块,可以独立完成对IP核的数据校验结果的快速统计,也可以作为控制器配合主控模块11对IP核的数据校验结果进行统计。当快速数据校验子模块123配合主控该模块11一起使用时,该模块作为加速校验统计。

第二测试监控子模块124是数据生成模块12中关键控制子模块,可以完成对数据生成模块12中独立子模块的单独控制,控制方式采用自定义协议进行,这样,可以实现对独立子模块的快速访问、控制和监控。

第二链路接口子模块125是数据生成模块12中关键控制子模块,该模块由两个部分组成:一是主控模块11之间的独立数据连接;二是核心验证板卡2之间的独立数据连接,连接方式同样是采用FMC实现。

数据缓存调度子模块126负责数据生成子模块121和/或数据加速生成子模块122产生的数据与外部的DDR3 SDRAM缓冲区域数据的交互。

除了上述子模块外,数据生成模块12还可以包括主状态机(MSM)、时钟/复位模块和预留功能区(附图未示出)。MSM负责调度整个程序的运行,还可以进行中间单步调试,以及与片外RS232串口进行通信,方便用户进行单步跟踪和测试。为了便于统一管理和控制各个子模块的工作,同时也为了便于测试过程中监控各个模块的工作状态,拟采用统一的状态控制总线负责完成MSM对Slave模块的启动以及状态反馈。时钟/复位模块利用对输入时钟进行分频、倍频产生各种子模块所需频率的时钟,并将系统复位信号同步化。预留功能区为日后数据生成模块12可扩展提供必要的预留功能逻辑。

如图3所示,在本发明的实施例中,核心验证板卡2可以根据数据生成与控制板卡1的控制指令进行对应的操作。一方面,核心验证板卡2可以用于验证IP核的基本电气性能,例如,上电后电压是否稳定、相关接口是否可以用、时钟抖动是否正常范围等。另一方面,核心验证板卡2还可以根据数据生成与控制板卡1生成的测试数据进行IP核的测试,例如,覆盖率测试、压力测试等。

在本发明的实施例中,核心验证板卡2可以包括第三链路接口子模块21、第三测试监控子模块22、数据缓存子模块23、控制命令接收子模块24、写模式子模块25和读模式子模块26。

第三链路接口子模块21由两个部分组成:一是与主控模块11之间的独立数据连接;二是与数据生成模块12之间的独立数据连接,连接方式同样是采用FMC实现。

第三测试监控子模块22可以完成对核心验证板卡2中独立子模块的单独控制,控制方式采用自定义协议进行,这样,可以实现对独立子模块的快速访问、控制和监控。

数据缓存子模块23负责缓存数据生成与控制板卡1发送的数据。

本发明实施例将数据生成与控制板卡1和核心验证板卡2通过链路层连接,通过数据生成与控制板卡1生成测试数据,控制核心验证板卡2的IP核进行测试与验证,核心验证板卡2根据数据生成与控制板卡1的控制指令进行对应的操作。与现有技术中利用上位机软件测试和验证IP核的方法相比,本发明实施例不需要复杂的测试环境,不仅提高了测试数据生成的密度、速度以及测试速度,并且还提高了测试方法的可扩展性和灵活性。

本发明还提供一种数据生成与控制板卡,包括:

主控模块,用于对数据生成模块和核心验证板卡进行以下操作中的至少一者:控制、监测、调度,以及对核心验证板卡的IP核的测试结果进行统计;以及

数据生成模块,通过链路层与主控模块连接,用于生成测试数据以及将主控模块产生的控制指令发送至核心验证板卡;

其中,核心验证板卡通过链路层与数据生成与控制板卡连接,并用于根据数据生成与控制板卡的控制指令进行对应的操作。

在本发明的实施例中,数据生成与控制板卡可以采用子母板配合工作的形式,由主控模块和数据生成模块构成。主控模块是整个IP核测试与验证的核心控制部分,可以完成对数据生成模块及核心验证板卡的控制、检测和/或调度的工作,同时会对测试的结果进行统计和总结,报告测试结果等。数据生成模块的核心功能是生成测试所需的各种测试数据集合,数据集合中包含了一般测试数据和特殊测试数据。对于一般测试数据,可以由数据生成模块的数据生成子模块直接生成并通过链路层发送给核心验证板卡;而对于特殊测试数据,如高阶随机数据、非线性测试数据等,需要由数据生成模块的数据快速生成子模块产生,然后将数据缓存至外部的DDR3 SDRAM中,以备测试使用,这样可以降低测试数据产生的时间开销,提高测试效率。

图4是本发明实施例提供的一种用于IP核测试与验证的系统的结构示意图。如图4所示,本发明提供一种用于IP核测试与验证的系统,可以包括:

功能层41,包括上述的用于IP核测试与验证的装置;

链路层42,包括链路传输总线和系统监控总线,链路传输总线与功能层41连接,用于连接功能层41的多个模块,系统监控总线连接功能层41和决策控制层43,用于传输功能层41和决策控制层43的交互数据;以及

决策控制层43,通过系统监控总线与功能层41连接,用于发送IP核的测试与验证的执行指令以及获取IP核的测试与验证的结果报告。

在本发明的实施例中,用于IP核测试与验证的系统采用分层的设计思路,按照数据流的功能、数据流的传输速率、数据流的指向性等,可以将整个系统的数据划分为三个层面:功能层41、链路层42以及决策控制层43。

功能层41主要由主控模块11、数据生成模块12和核心验证板卡2组成,在功能层41中,各个功能模块完成各自的规定动作和处理任务。功能触发可以由系统自行产生,也可以由外界人工干预进行。功能触发和报告结果的产生,都由主控模块11来完成。

链路层42是IP和测试与验证系统的数据传输通道。在链路层42中,包含了两条主要的数据传输链路:链路传输总线和系统监控总线。链路传输总线负责连接各个模块与板卡之间验证数据和验证结果数据的传输使用,拟定由板件的FMC接插件形式完成。系统监控总线是主控模块11用来检测和控制数据生成模块12、核心验证板卡2以及产生报告结果的控制通道。

决策控制层43在数据通路上与系统监控总线兼容,包含了监测单元、控制单元、决策单元与报告单元。IP核测试与验证的执行和验证结果的报告均由该层完成。

本发明实施例通过设置功能层41、链路层42和决策控制层43,提高了板极测试的监控能力,将数据生成与控制板卡1中的FPGA模块以及核心验证板卡2统一映射到CPU的地址空间中,采用地址映射的方式可以灵活地对数据生成与控制板卡1和核心验证板卡2进行监测和控制,避免了采用复杂状态机带来的问题。

本发明实施例还提供一种用于IP核测试与验证的方法,应用于上述的用于IP核测试与验证的装置,该方法可以包括:

控制核心验证板卡进行验证;和/或

控制数据生成与控制板卡进行测试。

在本发明的实施例中,用于IP核测试与验证的装置,可以包括数据生成与控制板卡和核心验证板卡,数据生成与控制板卡用于生成测试数据,以及控制核心验证板卡的IP核进行测试与验证,核心验证板卡通过链路层与数据生成与控制板卡连接,并用于根据数据生成与控制板卡的控制指令进行对应的操作。

在本发明的实施例中,数据生成与控制板卡是用来对芯片内IP核进行多方面的验证方法学的测试的板卡。一方面,数据生成与控制板卡可以随机、有序、交错产生各种测试数据,包括典型的特征验证数据、随机测试数据、特定测试数据等;同时,数据生成与控制板卡自带数据校验功能,利用数据生成与控制板卡作为测试的激励装置、测试验证装置,搭建整体测试环境。另一方面,数据生成与控制板卡还可以进行基于验证方法学的IP核测试,包括但不限于压力测试、重复覆盖率测试等。为了提高测试的速度、测试效率以及测试的完备性,可以采用SoPC作为测试校验的核心控制模块。

在一个示例中,数据生成与控制板卡可以采用子母板配合工作的形式,由主控模块和数据生成模块构成。主控模块是整个IP核测试与验证的核心控制部分,可以完成对数据生成模块及核心验证板卡的控制、检测和/或调度的工作,同时会对测试的结果进行统计和总结,报告测试结果等。数据生成模块的核心功能是生成测试所需的各种测试数据集合,数据集合中包含了一般测试数据和特殊测试数据。对于一般测试数据,可以由数据生成模块的数据生成子模块直接生成并通过链路层发送给核心验证板卡;而对于特殊测试数据,如高阶随机数据、非线性测试数据等,需要由数据生成模块的数据快速生成子模块产生,然后将数据缓存至外部的DDR3 SDRAM,以备测试使用,这样可以降低测试数据产生的时间开销,提高测试效率。

在本发明的实施例中,核心验证板卡可以根据数据生成与控制板卡的控制指令进行对应的操作。一方面,核心验证板卡可以用于验证IP核的基本电气性能,例如,上电后电压是否稳定、相关接口是否可以用、时钟抖动是否正常范围等。另一方面,核心验证板卡还可以根据数据生成与控制板卡生成的测试数据进行IP核的测试,例如,覆盖率测试、压力测试等。

在本发明的实施例中,主控模块和/或数据生成模块与核心验证板卡之间可以通过FMC(FPGA Mezzanine Card)接插件互联。FMC是一个应用范围、适应环境范围和市场领域范围都很广的通用模块,FMC连接器是FMC的一个重要组成部分,它连接由FPGA提供的引脚和FMC子板的I/O接口,高性能引脚速度可以达到几个Gb/s。在一个示例中,主控模块和核心验证板卡通过FMC接插件互联,可以直接通过主控模块控制核心验证板卡进行简单的测试,例如验证IP核的上电后电压是否稳定等。在另一示例中,主控模块和数据生成模块共同构建数据生成与控制板卡,用于主控测试和生成测试。在又一个示例中,主控模块和数据生成模块共同构建数据生成与控制板卡,数据生成与控制板卡通过FMC接插件与核心验证板卡互联进行较为复杂的IP核测试。因此,本发明实施例提供的用于IP核测试与验证的方法可以包括下列几种方式:

数据生成与控制板卡控制核心验证板卡进行验证;

数据生成与控制板卡控制数据生成与控制板卡进行测试;或者

数据生成与控制板卡控制核心验证板卡进行验证以及控制数据生成与控制板卡进行测试。

本发明实施例将数据生成与控制板卡和核心验证板卡通过链路层连接,通过数据生成与控制板卡生成测试数据,控制核心验证板卡的IP核进行测试与验证,核心验证板卡根据数据生成与控制板卡的控制指令进行对应的操作。与现有技术中利用上位机软件测试和验证IP核的方法相比,本发明实施例不需要复杂的测试环境,不仅提高了测试数据生成的密度、速度以及测试速度,并且还提高了测试方法的可扩展性和灵活性。

图5是本发明实施例提供的一种控制核心验证板卡进行验证的方法的流程示意图。如图5所示,控制核心验证板卡进行验证可以包括:

步骤S51、指示核心验证板卡加载IP核的网表;

步骤S52、在核心验证板卡上电初始化成功的情况下,控制核心验证板卡验证IP核执行时序控制命令的正确性;以及

步骤S53、在IP核执行时序命令正确的情况下,控制核心验证板卡启动读写模式。

在本发明的实施例中,主控模块直接控制核心验证板卡进行验证,主控模块和核心验证板卡通过FMC接插件互联,可以直接通过主控模块控制核心验证板卡进行简单的测试。具体包括:控制核心验证板卡上电并且加载IP核网表,启动IP核的工作并验证IP核上电初始化是否成功,在IP核上电初始化成功的情况下,向下进行验证步骤,在IP核上电初始化不成功的情况下,重新启动IP核的工作。具体验证步骤包括:判断核心验证板卡验证IP核执行时序控制命令是否正确,在IP核执行时序命令正确的情况下,控制核心验证板卡启动读写模式,即进行读写访问操作以验证IP核的功能;在IP核执行时序命令不正确的情况下,重新启动IP核的工作。

在本发明的实施例中,控制核心验证板卡启动读写模式可以包括以下中的至少一者:

控制核心验证板卡进行顺序单字读写访问操作;

控制核心验证板卡进行随机单字读写访问操作;

控制核心验证板卡进行突发顺序读写访问操作;以及

控制核心验证板卡进行突发随机读写访问操作。

通过顺序单字读写访问操作、随机单字读写访问操作、突发顺序读写访问操作和突发随机读写访问操作中的至少一者验证IP核的功能。

图6是本发明实施例提供的一种控制数据生成板卡进行测试的方法的流程示意图。如图6所示,控制数据生成与控制板卡进行测试可以包括:

步骤S61、指示数据生成模块向双倍速率同步动态随机存储器加载测试数据集合;

步骤S62、指示数据生成模块向核心验证板卡发送握手信号;

步骤S63、分别向核心验证板卡发送不同类型的数据文件以触发核心验证板卡进行写模式测试和读模式测试;以及

步骤S64、根据写模式测试和读模式测试的数据统计覆盖率。

在本发明的实施例中,主控模块和数据生成模块共同构建数据生成与控制板卡,数据生成与控制板卡通过FMC接插件与核心验证板卡互联进行较为复杂的IP核测试。本发明实施例以统计覆盖率的测试为例,先对主控模块和数据生成模块分别上电,加载数据生成与控制板卡中的主控模块与数据生成模块的FPGA控制器程序。主控模块指示数据生成模块向DDR3 SDRAM加载待测试验证的数据集合,数据生成模块向核心验证板卡发送握手信号以启动核心控制板卡工作,准备开始测试。主控模块分别向核心验证板卡发送不同类型的数据文件以触发核心验证板卡进行读模式和写模式的测试,再根据读模式和写模式进行覆盖率统计。

在本发明的实施例中,步骤S63、分别向核心验证板卡发送不同类型的数据文件以触发核心验证板卡进行写模式测试和读模式测试可以包括以下中的至少两者:

向核心验证板卡发送固定数据文件以触发核心验证板卡进行写模式测试;向核心验证板卡读取写入的固定数据文件以触发核心验证板卡进行读模式测试;校验写入的固定数据文件和读取的固定数据文件的一致性,以统计第一覆盖率;

向核心验证板卡发送线性数据文件以触发核心验证板卡进行写模式测试;向核心验证板卡读取写入的线性数据文件以触发核心验证板卡进行读模式测试;校验写入的线性数据文件和读取的线性数据文件的一致性,以统计第二覆盖率;

向核心验证板卡发送随机数据文件以触发核心验证板卡进行写模式测试;向核心验证板卡读取写入的随机数据文件以触发核心验证板卡进行读模式测试;校验写入的随机数据文件和读取的随机数据文件的一致性,以统计第三覆盖率;

根据写模式测试和读模式测试的数据统计覆盖率可以包括:基于第一覆盖率、第二覆盖率和第三覆盖率中的至少两者统计整体覆盖率,以得到测试结论。

具体地,数据生成模块生成不同类型的数据,主控模块将数据发送至核心验证板卡以触发核心验证板卡进行写模式测试和读模式测试,再根据读模式测试和写模式测试的一致性统计不同类型数据对应的覆盖率。对于一般测试数据,可以由数据生成模块的数据生成子模块直接生成并通过链路层发送给核心验证板卡;而对于特殊测试数据,如高阶随机数据、非线性测试数据等,需要由数据生成模块的数据快速生成子模块产生,然后将数据缓存至外部的DDR3 SDRAM,以备测试使用,这样可以降低测试数据产生的时间开销,提高测试效率。

需要说明的是,本发明实施例所述的方法是基于用于IP核测试与验证的装置所提出的两个实施例,通过本发明的装置和系统,还可以进行其他关于IP核的测试与验证。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号