一种测试信号产生方法及装置与流程

文档序号:14295913阅读:203来源:国知局

本发明涉及soc测试技术领域,尤其涉及一种测试信号产生方法及装置。



背景技术:

在工程设计中引入系统芯片(soc,systemonchip)可以简化设计,增加系统稳定性,降低产品成本。然而随着soc规模增大,设计成本和测试成本与日俱增,soc的可测试性成为设计工作中非常重要的内容,它为缩短产品上市周期,及时定位发现问题提供有力支撑。为了满足soc的可测试性,必须在soc原型设计中增加可以产生测试信号的单元,即测试信号产生模块(tsg,testsignalgenerator)。

传统的tsg通过两种方式产生测试信号,公式法或存储法。其中:

公式法通过配置的初始值和生成多项式产生伪随机序列,通过对伪随机序列的处理来产生测试信号。这种方法产生的测试信号十分有限,信号源只能按照既定的配置产生,信号之间具有相关性。不能根据用户需求产生灵活的测试数据。

存储法即将用户定义的测试数据存储在硬件存贮资源中,循环读出其中的数据产生测试数据源。然而为保证测试的完整性,测试信号的长度一般至少需要两个数据帧长的周期,这种方法需要耗费大量的存储资源,这些存储资源也不能被其他功能单元复用,对soc的存储,面积,功耗等带来巨大成本。



技术实现要素:

为解决上述技术问题,本发明实施例提供了一种测试信号产生方法及装置。

本发明实施例提供的测试信号产生方法,包括:

在寄存器中为测试数据配置第一组数据信息和第二组数据信息;

依据所述第一组数据信息,从内存中读取相应的测试数据并存入缓存中;依据所述第二组数据信息,从所述缓存中读取相应的测试数据并对所述测试数据进行输出。

本发明实施例中,所述在寄存器中为测试数据配置第一组数据信息和第二组数据信息,包括:

在寄存器中为测试数据配置如下第一组数据信息:数据首地址、数据长度;

在寄存器中为测试数据配置如下第二组数据信息:帧头延时量和帧头周期。

本发明实施例中,所述在寄存器中为测试数据配置第一组数据信息和第二组数据信息,包括:

对总线信息进行解析,得到第一组数据信息和第二组数据信息;

将所述第一组数据信息和所述第二组数据信息配置在寄存器中。

本发明实施例中,所述从内存中读取相应的测试数据并存入缓存中,包括:

判断缓存空间是否已存满;

当所述缓存空间未存满时,从内存中读取测试数据并存入缓存中。

本发明实施例中,所述依据所述第二组数据信息,从所述缓存中读取相应的测试数据并对所述测试数据进行输出,包括:

依据所述帧头延时量和帧头周期时,确定同步信息;基于所述同步信息,从所述缓存中读取相应的测试数据并对所述测试数据进行输出。

本发明实施例中,所述依据所述第一组数据信息,从内存中读取相应的测试数据并存入缓存中,包括:

将数据读地址设置为寄存器中配置的所述数据首地址;

检测缓存空间是否已存满;

当所述缓存空间未存满时,向内存发送针对当前数据读地址的读请求;

如果当前数据读地址是数据末尾地址,则将当前数据读地址设置为寄存器配置的所述数据首地址,作为下一次的数据读地址;如果当前数据读地址不是数据末尾地址,则将当前数据读地址加1后作为下一次的数据读地址;

检测所述内存是否返回针对当前数据读地址的读响应,当所述内存返回针对当前数据读地址的读响应时,将读响应携带的测试数据存入缓存中。

本发明实施例中,所述缓存由乒乓寄存器组成;

相应地,所述将读响应携带的测试数据存入缓存中,包括:

采用乒乓操作的方式将每次读响应携带的测试数据存入所述乒乓寄存器中。

本发明实施例提供的测试信号产生装置,包括:

配置单元,用于在寄存器中为测试数据配置第一组数据信息和第二组数据信息;

缓存写控制单元,用于依据所述第一组数据信息,从内存中读取相应的测试数据并存入缓存中;

缓存读控制单元,用于依据所述第二组数据信息,从所述缓存中读取相应的测试数据并对所述测试数据进行输出。

本发明实施例中,所述配置单元,具体用于在寄存器中为测试数据配置如下第一组数据信息:数据首地址、数据长度;在寄存器中为测试数据配置如下第二组数据信息:帧头延时量和帧头周期。

本发明实施例中,所述配置单元,具体用于对总线信息进行解析,得到第一组数据信息和第二组数据信息;将所述第一组数据信息和所述第二组数据信息配置在寄存器中。

本发明实施例中,所述缓存写控制单元,还用于判断缓存空间是否已存满;当所述缓存空间未存满时,从内存中读取测试数据并存入缓存中。

本发明实施例中,所述缓存读控制单元,具体用于依据所述帧头延时量和帧头周期时,确定同步信息;基于所述同步信息,从所述缓存中读取相应的测试数据并对所述测试数据进行输出。

本发明实施例中,所述缓存写控制单元,具体用于将数据读地址设置为寄存器中配置的所述数据首地址;检测缓存空间是否已存满;当所述缓存空间未存满时,向内存发送针对当前数据读地址的读请求;如果当前数据读地址是数据末尾地址,则将当前数据读地址设置为寄存器配置的所述数据首地址,作为下一次的数据读地址;如果当前数据读地址不是数据末尾地址,则将当前数据读地址加1后作为下一次的数据读地址;检测所述内存是否返回针对当前数据读地址的读响应,当所述内存返回针对当前数据读地址的读响应时,将读响应携带的测试数据存入缓存中。

本发明实施例中,所述缓存由乒乓寄存器组成;

相应地,所述缓存写控制单元,具体用于采用乒乓操作的方式将每次读响应携带的测试数据存入所述乒乓寄存器中。

本发明实施例的技术方案中,在寄存器中为测试数据配置第一组数据信息和第二组数据信息;依据所述第一组数据信息,从内存中读取相应的测试数据并存入缓存中;依据所述第二组数据信息,从所述缓存中读取相应的测试数据并对所述测试数据进行输出。上述方案中,测试数据存储在tsg外部的内存中,用户可以对测试数据进行灵活配置,针对tsg产生测试信号的灵活性和tsg的存储资源这一问题,本发明实施例所提出的基于软硬件交互的测试信号产生方法既节省了硬件存储资源,也可以根据用户需求灵活配置测试数据。

附图说明

附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。

图1为本发明实施例的测试信号产生方法的流程示意图;

图2为本发明实施例的基于软硬件交互的soc测试数据产生框图;

图3为本发明实施例的将内存中的数据写入缓存的流程示意图;

图4为本发明实施例的测试信号产生装置的结构组成示意图一;

图5为本发明实施例的测试信号产生装置的结构示意图二。

具体实施方式

为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明实施例。

本发明实施例的主要目的是提供一种soc系统设计中产生测试信号的方法及装置。本发明实施例的方法通过软硬件交互的方式,使硬件模块能够实时高效的读取外部存储模块(也即内存)的测试数据,节约了硬件存储资源的同时允许用户可以灵活配置测试数据,包括数据功率、波形、长度等。解决了soc设计中传统tsg测试数据灵活配置和消耗硬件存储资源的问题。

图1为本发明实施例的测试信号产生方法的流程示意图,如图1所示,本示例中的测试信号产生方法应用于测试信号产生装置中,所述测试信号产生方法包括以下步骤:

步骤101:在寄存器中为测试数据配置第一组数据信息和第二组数据信息。

本发明实施例中,测试信号产生装置开放寄存器、缓存空间、以及所述缓存空间的读写控制单元。此外,本发明实施例所指的内存位于测试信号产生装置以外,用户可以通过软件的方式在内存中灵活配置测试数据,包括:数据功率、波形、长度等。测试信号产生装置只需要从内存中依据配置信息进行测试数据的读取与输出即可。

本发明实施例中,所述在寄存器中为测试数据配置第一组数据信息和第二组数据信息,包括:

在寄存器中为测试数据配置如下第一组数据信息:数据首地址、数据长度;

在寄存器中为测试数据配置如下第二组数据信息:帧头延时量和帧头周期。

本发明实施例中,所述在寄存器中为测试数据配置第一组数据信息和第二组数据信息,包括:

对总线信息进行解析,得到第一组数据信息和第二组数据信息;

将所述第一组数据信息和所述第二组数据信息配置在寄存器中。

步骤102:依据所述第一组数据信息,从内存中读取相应的测试数据并存入缓存中;依据所述第二组数据信息,从所述缓存中读取相应的测试数据并对所述测试数据进行输出。

本发明实施例中,所述从内存中读取相应的测试数据并存入缓存中,包括:

判断缓存空间是否已存满;

当所述缓存空间未存满时,从内存中读取测试数据并存入缓存中。

本发明实施例中,所述依据所述第二组数据信息,从所述缓存中读取相应的测试数据并对所述测试数据进行输出,包括:

依据所述帧头延时量和帧头周期时,确定同步信息;基于所述同步信息,从所述缓存中读取相应的测试数据并对所述测试数据进行输出。

本发明实施例中,所述依据所述第一组数据信息,从内存中读取相应的测试数据并存入缓存中,包括:

将数据读地址设置为寄存器中配置的所述数据首地址;

检测缓存空间是否已存满;

当所述缓存空间未存满时,向内存发送针对当前数据读地址的读请求;

如果当前数据读地址是数据末尾地址,则将当前数据读地址设置为寄存器配置的所述数据首地址,作为下一次的数据读地址;如果当前数据读地址不是数据末尾地址,则将当前数据读地址加1后作为下一次的数据读地址;

检测所述内存是否返回针对当前数据读地址的读响应,当所述内存返回针对当前数据读地址的读响应时,将读响应携带的测试数据存入缓存中。

上述方案中,所述缓存由乒乓寄存器组成;

相应地,所述将读响应携带的测试数据存入缓存中,包括:

采用乒乓操作的方式将每次读响应携带的测试数据存入所述乒乓寄存器中。

下面结合tsg应用场景对本发明实施例的测试信号产生方法做进一步详细描述。

参照图2,图2为本发明实施例的基于软硬件交互的soc测试数据产生框图,如图2所示,总线右侧为tsg硬件架构,总线右侧为tsg硬件架构的外部内存以及相应的软件。本发明实施例对tsg硬件架构作了如下改进:

1)在tsg硬件架构中:开放缓存空间和缓存空间的读写控制单元,用以将从内存中读取的测试数据写入缓存和从缓存中读出。

2)在tsg硬件架构中:开放描述测试数据信息(也即第一组数据信息和第二组数据信息)的寄存器堆,第一组数据信息包括数据首地址(addr)、数据长度(len);第二组数据信息包括:帧头延时量(fr_dly)、帧头周期(fr_cyc),通过软件为tsg配置寄存器。

3)在tsg硬件架构中:开放同步控制接口,以接收寄存器堆内的数据帧头来同步tsg开始向后级硬件结构输出测试数据。如果没有外部的帧头驱动信息,可以在tsg结构中开放产生帧头的单元。

基于图2所示的框架结构,本发明实施例的测试信号产生方法包括以下步骤:

步骤1:软件通过总线将用户配置的测试数据写入内存空间;

步骤2:软件通过总线给tsg配置寄存器,并使能tsg;

步骤3:tsg从内存中读取测试数据作为测试数据源输出给后级模块。

上述方案中步骤1具体表述为:

步骤1.1:用户通过软件配置寄存器及寄存器地址;

步骤1.2:软件通过总线将寄存器按地址写入硬件;

步骤1.3:硬件通过寄存器地址解析寄存器中的配置信息。

上述方案中步骤3包含两个并行的操作流程:

流程3.1:tsg使能后判断缓存是否已存满,未存满则从内存空间读取测试数据,存入缓存;

流程3.2:tsg检测到同步驱动信息后,从缓存中读取测试数据,按照后级模块的时序要求输出。

上述方案中,步骤3中的流程3.1和流程3.2是同时操作的。参照图3,步骤3所述的流程3.1中,读取内存空间的数据写入缓存具体包括:

步骤3.1.1:数据读地址置为寄存器配置的数据首地址;

步骤3.1.2:检测缓存是否存满,若未存满,执行步骤3.1.3,否则执行步骤3.1.2。

步骤3.1.3:判断当前数据读地址是否为数据末尾地址,若否,则执行步骤3.1.4,若是,则执行步骤3.1.5。

步骤3.1.4:向内存发起当前数据读地址的读请求,将当前数据度地址+1。

步骤3.1.5:向内存发起当前数据读地址的读请求,将当前数据读地址变更为寄存器配置的数据首地址。

步骤3.1.6:检测内存是否返回测试数据,若未返回,执行步骤3.1.6,否则执行步骤3.1.7。

步骤3.1.7:将测试数据写入缓存空间,执行步骤3.1.2。

从上述方案可以看出,采用本发明实施例的测试信号产生方法,与传统的soc测试信号产生模块相比,至少具有以下有益效果:

1、用户可以灵活配置测试数据,包括测试数据的数字波形,数据长度。

2、相比传统公式法生成数据的tsg,本方案支持用户灵活配置数据源,因此在数据校验是支持多种校验方式,提高了数据校验的灵活性。

3、相比传统存储法生成数据的tsg,保证数据灵活可配的同事,节省了相应数据源大小的硬件存储空间,节约了soc设计资源。

4、本发明所述的产生测试信号的方法,不局限于soc设计,在其他通信系统,数字ic设计中可广泛应用。

图4为本发明实施例的测试信号产生装置的结构组成示意图一,如图4所示,所述装置包括:

配置单元41,用于在寄存器中为测试数据配置第一组数据信息和第二组数据信息;

缓存写控制单元42,用于依据所述第一组数据信息,从内存中读取相应的测试数据并存入缓存中;

缓存读控制单元43,用于依据所述第二组数据信息,从所述缓存中读取相应的测试数据并对所述测试数据进行输出。

本发明实施例中,所述配置单元41,具体用于在寄存器中为测试数据配置如下第一组数据信息:数据首地址、数据长度;在寄存器中为测试数据配置如下第二组数据信息:帧头延时量和帧头周期。

本发明实施例中,所述配置单元41,具体用于对总线信息进行解析,得到第一组数据信息和第二组数据信息;将所述第一组数据信息和所述第二组数据信息配置在寄存器中。

本发明实施例中,所述缓存写控制单元42,还用于判断缓存空间是否已存满;当所述缓存空间未存满时,从内存中读取测试数据并存入缓存中。

本发明实施例中,所述缓存读控制单元43,具体用于依据所述帧头延时量和帧头周期时,确定同步信息;基于所述同步信息,从所述缓存中读取相应的测试数据并对所述测试数据进行输出。

本发明实施例中,所述缓存写控制单元42,具体用于将数据读地址设置为寄存器中配置的所述数据首地址;检测缓存空间是否已存满;当所述缓存空间未存满时,向内存发送针对当前数据读地址的读请求;如果当前数据读地址是数据末尾地址,则将当前数据读地址设置为寄存器配置的所述数据首地址,作为下一次的数据读地址;如果当前数据读地址不是数据末尾地址,则将当前数据读地址加1后作为下一次的数据读地址;检测所述内存是否返回针对当前数据读地址的读响应,当所述内存返回针对当前数据读地址的读响应时,将读响应携带的测试数据存入缓存中。

本发明实施例中,所述缓存由乒乓寄存器组成;

相应地,所述缓存写控制单元42,具体用于采用乒乓操作的方式将每次读响应携带的测试数据存入所述乒乓寄存器中。

本领域技术人员应当理解,图4所示的测试信号产生装置中的各单元的实现功能可参照前述测试信号产生方法的相关描述而理解。图4所示的测试信号产生装置中的各单元的功能可通过运行于处理器上的程序而实现,也可通过具体的逻辑电路而实现。

图5为本发明实施例的测试信号产生装置的结构示意图二,如图5所示,所述装置包括:apb模块,wr_ctrl模块,rd_ctrl模块和由乒乓寄存器组成的缓存模块。基于此结构,本发明实施例的测试信号产生方法包括以下步骤:

步骤1:软件将测试数据写入内存。

步骤2:apb模块通过解析总线信息对tsg进行寄存器配置,配置的寄存器包括数据首地址、数据长度、帧头延时量和帧头周期。

步骤3:tsg从内存中读取测试数据输出给后级硬件模块。

其中,步骤3包含两个并行操作流程:

流程3.1:tsg使能后判断缓存是否存满,未存满则从内存空间读取测试数据,存入缓存;

流程3.2:tsg检测到同步信息后,从缓存中读取测试数据。

上述方案中,步骤3中的流程3.1和流程3.2是同时操作的。步骤3所述的流程3.1中,读取内存空间的数据写入缓存具体包括:

步骤3.1.1:数据读地址置为寄存器配置的数据首地址;

步骤3.1.2:检测ping_reg寄存器是否存满,若未存满,执行步骤3.1.3,否则执行步骤3.1.7。

步骤3.1.3:向内存发起当前数据读地址的读请求。

步骤3.1.4:若当前数据读地址是数据末尾地址,则将数据度地址变更为寄存器配置的数据首地址,否则将数据读地址+1。

步骤3.1.5:检测内存是否返回测试数据,若未返回,执行步骤3.1.5,否则执行步骤3.1.6。

步骤3.1.6:将测试数据写入ping_reg寄存器,执行步骤3.1.7。

步骤3.1.7:检测pang_reg寄存器是否存满,若未存满,执行步骤3.1.8,否则执行步骤3.1.7。

步骤3.1.8:向内存发起当前数据读地址的读请求。

步骤3.1.9:若当前数据读地址是数据末尾地址,则将数据读地址变更为寄存器配置的数据首地址,否则将数据读地址+1。

步骤3.1.10:检测内存是否返回测试数据,若未返回,执行步骤3.1.10,否则执行步骤3.1.2。

上述方案中步骤3所述的流程3.2,读取缓存空间的数据输出给后级模块具体包括:

步骤3.2.1:检测是否有数据帧头(作为同步信息)到来,如果同步信息到来,执行步骤3.2.2,否则执行步骤3.2.1。

步骤3.2.2:判断ping_reg是否为空,如果非空,读取ping_reg寄存器中的数据输出给后模块,否则执行步骤3.2.3。

步骤3.2.3:判断pang_reg是否为空,如果非空,读取pang_reg寄存器中的数据输出给后级模块,否则执行步骤3.2.2。

本范实施例的上述方案,在soc系统测试中提供了一种产生测试数据的方法及装置。这种基于软硬件交互的方法有效节约了硬件存储资源,同时可以允许用户对测试数据灵活配置。

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

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1