掌桥专利:专业的专利平台
掌桥专利
首页

接口控制器的验证方法、平台、装置、设备及存储介质

文献发布时间:2024-04-18 19:58:21


接口控制器的验证方法、平台、装置、设备及存储介质

技术领域

本申请涉及芯片验证技术领域,具体涉及接口控制器的验证方法、平台、装置、设备及存储介质。

背景技术

在大型的系统级芯片(system on chip,soc)项目中,通常需要调试接口用于外部调试芯片内部工作状态。目前业界多会在芯片故障后,通过作为调试接口的联合测试行动小组(joint test action group,jtag)接口访问到芯片的内部状态,这就对jtag接口控制器验证的完备性提出了高要求。

现有技术中通常基于通用验证方法学(Universal Verification Methodology,UVM)搭建验证平台,通过验证平台向激励发生器(sequencer)中驱动携带jtag输入信号序列的激励(sequence)来实现对待测设计(design under test,DUT)的驱动,以对jtag控制器进行功能验证。但现有技术中,由于jtag接口仅支持jtag标准协议,导致用户在编写激励时需要将基于其他协议的输入信号序列转换为基于jtag标准协议单比特(bit)位流时序信号,大大增加了编写激励的复杂性;而且输入信号序列中的状态选择(test modeselection input,tms)信号序列是固定的,存在功能验证不完备的风险。

因此,如何提高接口控制器的功能验证的完备性的同时降低编写激励的复杂性已成为目前急需解决的问题。

发明内容

有鉴于此,本申请实施例提供了一种接口控制器的验证方法、平台、装置、设备及存储介质,以解决如何提高接口控制器的功能验证的完备性的同时降低编写激励的复杂性的问题。

第一方面,本申请实施例提供了一种接口控制器的验证方法,应用于接口控制器的验证平台,接口控制器的验证平台包括第一内部状态机,第一内部状态机用于指示接口控制器的状态,所述方法包括:

接收基于第一协议的激励,对激励进行协议格式转换,得到基于目标协议的目标激励;

获取目标激励对应的输入信号序列;输入信号序列为根据目标激励以及第一内部状态机的状态生成的信号序列;

根据输入信号序列,驱动至少一个待测设计,以得到待测设计的实际输出结果;待测设计是根据接口控制器的各个功能设计的;

根据输入信号序列,模拟待测设计的输出,得到待测设计的期望输出结果;

根据实际输出结果以及期望输出结果,确定接口控制器的验证结果。

可选的,接口控制器的验证平台还包括第一接口控制器模型,第一接口控制器模型包括虚拟状态机;

根据输入信号序列,模拟待测设计的输出,得到待测设计的期望输出结果,包括:

将输入信号序列驱动至第一接口控制器模型的输入端;

分别获取待测设计中第二内部状态机的状态以及虚拟状态机的状态;

当第二内部状态机的状态以及虚拟状态机的状态一致时,控制第一接口控制器模型根据输入信号序列,模拟待测设计的输出,得到待测设计的期望输出结果。

可选的,输入信号序列包括状态选择信号序列以及数据输入信号序列;在获取基于目标协议的输入信号序列之前,方法还包括:

当监测到目标激励,且目标激励中指令的个数大于零时,循环执行以下步骤,直至目标激励中指令的个数为零:

分别随机生成状态选择信号以及数据输入信号;

将状态选择信号加入到状态选择信号序列中;

将数据输入信号加入到数据输入信号序列中;

根据状态选择信号以及第一内部状态机的当前状态,确定第一内部状态机的下一状态;

根据下一状态,确定状态选择信号序列以及数据输入信号序列的二次更新策略;

将当前目标激励中指令的个数减一。

可选的,根据下一状态,确定状态选择信号序列以及数据输入信号序列的二次更新策略,包括:

当下一状态为移位指令寄存器状态时,执行以下步骤:

根据目标激励中当前指令的指令位宽信息,在状态选择信号序列中加入第一数据序列;第一数据序列的位数与指令位宽信息相匹配;

将下一状态确定为退出指令寄存器状态1;

将目标激励中当前指令指示的数据写入数据输入信号序列中;

当下一状态为移位数据寄存器状态时,执行以下步骤:

根据目标激励中当前指令指示的数据的数据位宽信息,在状态选择信号序列中加入第二数据序列;第二数据序列的位数与数据位宽信息相匹配;

将下一状态确定为退出数据寄存器状态1;

将目标激励中当前指令指示的数据写入数据输入信号序列中;

当下一状态为除捕获指令寄存器状态或捕获数据寄存器状态时,执行以下步骤:

分别随机生成状态选择信号以及数据输入信号;

将状态选择信号加入到状态选择信号序列中;

将数据输入信号加入到数据输入信号序列中;

根据状态选择信号以及第一内部状态机的当前状态,确定下一状态。

可选的,接口控制器的验证平台还包括输出模块;根据实际输出结果以及期望输出结果,确定接口控制器的验证结果,包括:

通过输出模块获取实际输出结果以及期望输出结果;

通过输出模块比较实际输出结果以及期望输出结果,以确定接口控制器的验证结果。

第二方面,本申请实施例提供了一种接口控制器的验证平台,接口控制器的验证平台包括输入模块、测试模块以及输出模块,输入模块的输入端与测试模块的输入端连接;测试模块的输出端与输出模块的输入端连接;输入模块包括第二接口控制器模型以及输入驱动;第二接口控制器模型通过驱动与测试模块的输入端连接;

第二接口控制器模型用于:

接收基于第一协议的激励,对激励进行协议格式转换,得到基于目标协议的目标激励;

获取目标激励对应的输入信号序列;输入信号序列为根据目标激励以及第一内部状态机的状态生成的信号序列;

输入驱动用于将输入信号序列驱动至测试模块的输入端;

测试模块用于:

根据输入信号序列,驱动至少一个待测设计,以得到待测设计的实际输出结果;待测设计是根据接口控制器的各个功能设计的;

根据输入信号序列,模拟待测设计的输出,得到待测设计的期望输出结果;

输出模块用于根据实际输出结果以及期望输出结果,确定接口控制器的验证结果。

可选的,测试模块包括第一接口控制器模型、待测设计以及校验单元;第一接口控制器模型包括虚拟状态机;第一接口控制器模型的输入端与待测设计的输入端连接;第一接口控制器模型的输出端以及待测设计的输出端与校验单元连接;

输入驱动用于将输入信号序列驱动至第一接口控制器模型的输入端;

校验单元用于:

分别获取待测设计中第二内部状态机的状态以及虚拟状态机的状态;

当第二内部状态机的状态以及虚拟状态机的状态一致时,控制第一接口控制器模型单元执行第一接口控制模型,以根据输入信号序列,模拟待测设计的输出,得到待测设计的期望输出结果。

第三方面,本申请实施例提供了一种接口控制器的验证装置,该装置运行在接口控制器的验证平台上,接口控制器的验证平台包括第一内部状态机,第一内部状态机用于指示接口控制器的状态,装置包括:

接收模块,用于接收基于第一协议的激励,对激励进行协议格式转换,得到基于目标协议的目标激励;

获取模块,用于获取目标激励对应的输入信号序列;输入信号序列为根据目标激励以及第一内部状态机的状态生成的信号序列;

驱动模块,用于根据输入信号序列,驱动至少一个待测设计,以得到待测设计的实际输出结果;待测设计是根据接口控制器的各个功能设计的;

模拟模块,用于根据输入信号序列,模拟待测设计的输出,得到待测设计的期望输出结果;

确定模块,用于根据实际输出结果以及期望输出结果,确定接口控制器的验证结果。

第四方面,本申请实施例提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述接口控制器的验证方法。

第五方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述接口控制器的验证方法。

第六方面,本申请实施例提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质中读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备执行上述接口控制器的验证方法。

本申请提供的技术方案具有以下有益效果:

自动将基于第一协议的激励转换为基于目标协议的目标激励,进而获取目标激励对应的输入信号序列,避免了人为对激励中输入信号的协议格式的转换,使得用户可以在不转换协议格式的基础上直接编写激励,降低了编写激励的复杂性。而且输入信号序列是根据目标激励以及第一内部状态机的状态,也即根据目标激励以及接口控制器当前的各个状态随机生成,不存在固定的状态选择信号序列,考虑到接口控制器的状态随机跳转的情况,保证了输入型号序列的完备性进一步保证接口控制器验证的完备性。进而得到的待测设计的实际输出结果以及期望输出结果中也具备输入信号序列的完备性,使得根据实际输出结果以及期望输出结果,确定的验证结果也可以保证完备性,提高了接口控制器功能验证的完备性的同时降低了编写激励的复杂性。

附图说明

为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本申请一些实施例示出的一种接口控制器的验证平台统的结构示意图;

图2是根据本申请一些实施例示出的一种接口控制器的验证方法的流程示意图;

图3是根据本申请一些实施例示出的又一种接口控制器的验证方法的流程示意图;

图4是根据本申请实施例示出的接口控制器的验证装置的结构框图;

图5是本申请实施例的计算机设备的硬件结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应理解,在本申请的实施例中提到的“指示”可以是直接指示,也可以是间接指示,还可以是表示具有关联关系。举例说明,A指示B,可以表示A直接指示B,例如B可以通过A获取;也可以表示A间接指示B,例如A指示C,B可以通过C获取;还可以表示A和B之间具有关联关系。

在本申请实施例的描述中,术语“对应”可表示两者之间具有直接对应或间接对应的关系,也可以表示两者之间具有关联关系,也可以是指示与被指示、配置与被配置等关系。

本申请实施例中,“预定义”可以通过在设备(例如,包括终端设备和网络设备)中预先保存相应的代码、表格或其他可用于指示相关信息的方式来实现,本申请对于其具体的实现方式不做限定。

图1是根据本申请实施例示出的一种接口控制器的验证平台统的结构示意图。该接口控制器的验证平台中包含输入模块110、测试模块120以及输出模块130;输入模块110的输入端与测试模块120的输入端连接;测试模块120的输出端与输出模块130的输入端连接;输入模块110包括第二接口控制器模型111以及输入驱动112;第二接口控制器模型111通过输入驱动112与测试模块的输入端连接。

基于UVM构建上述接口控制器的验证平台,其中,输入模块110用于sequencer和driver等常规UVM功能组件。其可以包括激励组件(sequence)113、激励发生器114;第二接口控制器模型111的输入端与激励组件113的输出端连接;激励发生器114以及输入驱动112封装在输入代理(in_agent)115中,激励组件113的输出端与输入代理115的输入端连接。激励组件113用于存储各个基于第一协议的激励。

第二接口控制器模型111用于实现以下功能:

1、将基于第一协议的激励转换为基于目标协议的激励;

2、根据事务(transaction)组件中给定的第一协议的相关约束,调用第二接口控制器模型中的对外接口,得到基于目标协议输入信号序列,该输入信号序列以队列形式组织,并在输入驱动112中被逐位驱动到待测设计(DUT)的输入端;

3、为支持DUT中的接口控制器状态机在合法状态下随机游走,第二接口控制器模型111被设置实现可以指示接口控制器状态的第一内部状态机,该第一内部状态机仅用于生成随机但合法的输入信号序列。也就是说,第二接口控制器模型111可以根据基于目标协议的激励以及第一内部状态机的状态随机生成的输入信号序列。

第二接口控制器模型111实现的上述功能,在验证时可以将任意一个或多多个基于第一协议的激励作为输入,避免人为对激励中输入信号的协议格式的转换,使得用户可以在不转换协议格式的基础上直接编写激励,降低了编写激励的复杂性。

输入驱动112用于将输入信号序列驱动到DUT的输入端。

测试模块120用于基于输入信号序列对DUT进行验证得到DUT的实际输出结果,并基于输入信号序列对模拟DUT的输出得到DUT的期望输出结果。测试模块中包括DUT。

输出模块130包括监测组件(monitor)131以及输出驱动132;监测组件131以及输出驱动132封装在输出代理(out_agent)133中;DUT的输出端与输出代理133的输入端连接。输出模块130用于根据DUT的实际输出结果以及期望输出结果,确定DUT的验证结果进而确定接口控制器的验证结果。

可选的,为了提高验证结果的准确性,测试模块120中还可以设计实现第一接口控制器模型121以及校验单元(checker)122;输入代理115的输出端分别与DUT的输入端以及第一接口控制器模型121的输入端连接;第一接口控制模型121的输出端以及DUT的输出端与校验单元122连接;第一接口控制器模型121中设置有虚拟状态机,虚拟状态机用于实时模拟DUT中第二内部状态机的状态变化。具体的,第一接口控制器模型121被设计实现以下功能:

1、提供虚拟状态机刷新以及操作刷新等对外接口,用于实时刷新虚拟状态机的状态,与DUT中第二内部状态机的状态保持一致;

2、模拟DUT的输出,并将模拟得到的输出保存至全局队列中,以将模拟得到的输出作为DUT的期望输出结果,便于与DUT的实际输出结果做实时校验;

3)输出虚拟状态机的当前状态,用于与DUT中的第二内部状态机的状态做实时校验。

校验单元122用于获取待测设计中第二内部状态机的状态以及第一接口控制模型121虚拟状态机的状态,并实时校验第二内部状态机的状态以及虚拟状态机的状态的一致性。

通过校验单元保证虚拟状态机的状态与DUT中第二内部状态机的状态的一致性,以保证通过基于第一接口控制器模型实时模拟DUT的输出时,模拟的输出结果与DUT中第二内部状态机的状态相匹配,使得DUT的期望输出结果根据准确性,可以提高接口控制器验证结果的准确性。此外,将通过对测试模块的模块化设计(将测试模块设计为第一接口控制器模型、校验单元以及DUT三部分),可以实现接口控制器验证环境的可扩展性。可以理解的是,可以根据实际验证需求将测试模块设计为多个部分。

可选的,为了能够更加贴近实际使用情况,当接口控制器的验证平台包含多个测试模块时,可以将各测试模块中的DUT串联,形成由多个接口控制器组成的菊花链验证环境,以贴近实际使用情况。

可选的,本申请实施例中的接口控制器可以是jtag控制器也即jtag接口架构中的测试访问接口(test access port,tap)控制器。

图2是根据本申请实施例示出的一种接口控制器的验证方法的流程图。该方法由接口控制器的验证平台执行,该接口控制器的验证平台可以是如图1中所示的接口控制器的验证平台。如图2所示,该接口控制器的验证方法可以包括如下步骤:

步骤201,接收基于第一协议的激励,对激励进行协议格式转换,得到基于目标协议的目标激励。

其中,接口控制器的验证平台(以下简称为验证平台)包括第一内部状态机;第一内部状态机用于指示接口控制器的状态;目标协议为待测设计对应的接口控制器所能支持的协议。验证平台在接收到基于第一协议的激励时,可以通过验证平台内部预设的协议转换算法或支持协议转换的组件对激励进行协议格式转换操作,得到基于目标协议的目标激励。预设的协议转换算法可以人为预先编写的将其他协议转换为接口控制器支持的协议的脚本。以接口控制器为jtag控制为例,此时预设的协议转换算法就是将其他协议转换为JTAG标准协议的脚本。

步骤202,获取目标激励对应的输入信号序列。

验证平台在得到目标激励后,基于第二接口控制器模型会根据目标激励中的各个指令的以及第一内部状态机的状态随机生成的输入信号序列;进而验证平台就可以通过transaction组件中给定的第一协议的相关约束,调用第二接口控制器模型中的对外接口得到目标激励对应的输入信号序列。可以理解的是,当接口控制器为jtag控制器时,目标激励中的指令可以是IDCODE、BYPASS和或其他自行研发的适用于jtag控制器的指令。可以理解的是transaction组件中给定的第一协议的相关约束可以是根据实际验证需求预设设置的约束条件。

步骤203,根据输入信号序列,驱动至少一个待测设计,以得到待测设计的实际输出结果。

待测设计是根据接口控制器的各个功能设计的。验证平台可以通过输入驱动将带有输入信号序列的目标激励驱动到sequencer中,以将输入信号序列中的信号逐位驱动到DUT中,以实现对至少一个DUT的驱动。并监测DUT的输出,得到DUT的实际输出结果。

步骤204,根据输入信号序列,模拟待测设计的输出,得到待测设计的期望输出结果。

验证平台内设置有参考模块,参考模块实现的功能与设计DUT时期望该DUT能够实现的功能相一致。验证平台通过输入驱动将带有输入信号序列的目标激励驱动到sequencer中,以将输入信号序列中的信号逐位驱动到参考模块的输入端,以实现对参考模块的驱动,使参考模块模拟期望DUT所能实现的功能,进而模拟DUT的输出,得到DUT的期望输出结果。参考模块为预先设计的可以模拟接口控制器实际工作的模型。

步骤205,根据实际输出结果以及期望输出结果,确定接口控制器的验证结果。

验证平台可以通过内部的计分板(scoreboard)组件处理实际输出结果以及期望输出结果,进而得到DUT的验证结果并将各个DUT的验证结果整合为接口控制器的验证结果。

综上所述,自动将基于第一协议的激励转换为基于目标协议的目标激励,进而获取目标激励对应的输入信号序列,避免了人为对激励中输入信号的协议格式的转换,使得用户可以在不转换协议格式的基础上直接编写激励,降低了编写激励的复杂性。而且输入信号序列是根据目标激励以及第一内部状态机的状态,也即根据目标激励以及接口控制器当前的各个状态随机生成,不存在固定的状态选择信号序列,考虑到接口控制器的状态随机跳转的情况,保证了输入型号序列的完备性进一步保证接口控制器验证的完备性。进而根据,得到的待测设计的实际输出结果以及期望输出结果中也具备输入信号序列的完备性,使得根据实际输出结果以及期望输出结果,确定的验证结果也可以保证完备性,提高了接口控制器功能验证的完备性的同时降低了编写激励的复杂性。

图3是根据本申请实施例示出的一种接口控制器的验证方法的流程图。该方法由接口控制器的验证平台执行,该接口控制器的验证平台可以是如图1中所示的接口控制器的验证平台。如图3所示,该接口控制器的验证方法可以包括如下步骤:

步骤301,接收基于第一协议的激励,对激励进行协议格式转换,得到基于目标协议的目标激励。

详细请参见图2所示实施例的步骤201,在此不再赘述。

步骤302,当监测到目标激励,且目标激励中指令的个数大于零时,循环执行以下步骤,直至目标激励中指令的个数为零:

分别随机生成状态选择信号以及数据输入信号;

将状态选择信号加入到状态选择信号序列中;

将数据输入信号加入到数据输入信号序列中;

根据状态选择信号以及第一内部状态机的当前状态,确定第一内部状态机的下一状态;

根据下一状态,确定状态选择信号序列以及数据输入信号序列的二次更新策略;

将当前目标激励中指令的个数减一。

输入信号序列包括状态选择信号序列以及数据输入信号序列;且状态选择信号序列以及数据输入信号序列以队列的形式组织。在验证平台的第二接口控制器模型中实现的用于指示接口控制器状态的第一内部状态机,包含各个状态间的跳转关系。在向第二接口控制器模型的输入端中输入包括指定指令(指定指令可以是IDCODE、BYPASS或是其他用于接口控制器功能验证的自研指令)的基于目标协议的激励时,验证平台就监测到目标激励,且此时目标激励中指令的个数必定大于零,验证平台就通过第二接口控制器,随机生产1位状态选择信号,加入到状态选择信号序列中,以更新状态选择信号序列;在数据输入信号序列中随机生成1位随机数作为数据输入信号,以更新数据输入信号序列。进而根据随机生成的状态选择信号以及第一内部状态机当前的状态,确定器下一状态并控制第一内部状态机跳转到下一状态。由于第一内部状态机的状态跳转会导致指令寄存器(InstructionRegister,IR)以及数据寄存器(Data Register,DR)内数据的变化,从而会使得之前更新的状态选择信号序列以及数据输入信号序列不再符合接口控制器的工作规范。

因此,为了使状态选择信号序列以及数据输入信号序列中的信号适应接口控制器的工作规范,也即使随机生成的状态选择信号序列以及数据输入信号序列合法。当第一内部状态机的下一状态为指定的状态时,该指定状态会导致的IR和或DR内数据的变化,确定该指定状态对应的预设的二次更新策略并对状态选择信号序列以及数据输入信号序列进行二次更新。而后将目标激励中指令的个数减一,并重复以上步骤直至目标激励中指令的个数为零。确保了第一内部状态机的状态可以随着随机生成的状态选择信号进行随机跳转,提高第一内部状态机的状态跳转的完备性。进而基于第一内部状态机的下一状态,进一步确定状态选择信号序列以及数据输入信号序列的二次更新策略,继续对状态选择信号序列以及数据输入信号序列进行更新直至目标激励中指令的个数为零,加强状态选择信号序列以及数据输入信号序列中信号与第一内部状态机的状态之间的关联性,实现输入信号序列的合理随机化。

可选的,根据下一状态,确定状态选择信号序列以及数据输入信号序列的二次更新策略,可以包括:

当下一状态为移位指令寄存器状态时,执行以下步骤:

根据目标激励中当前指令的指令位宽信息,在状态选择信号序列中加入第一数据序列;第一数据序列的位数与指令位宽信息相匹配;

将下一状态确定为退出指令寄存器状态1;

将目标激励中当前指令指示的数据写入数据输入信号序列中;

当下一状态为移位数据寄存器状态时,执行以下步骤:

根据目标激励中当前指令指示的数据的数据位宽信息,在状态选择信号序列中加入第二数据序列;第二数据序列的位数与数据位宽信息相匹配;

将下一状态确定为退出数据寄存器状态1;

将目标激励中当前指令指示的数据写入数据输入信号序列中;

当下一状态为捕获指令寄存器状态或捕获数据寄存器状态时,执行以下步骤:

分别随机生成状态选择信号以及数据输入信号;

将状态选择信号加入到状态选择信号序列中;

将数据输入信号加入到数据输入信号序列中;

根据状态选择信号以及第一内部状态机的当前状态,确定下一状态。

验证平台通过第二接口控制器监测第一内部状态机的下一状态,当第一内部状态机的下一状态为移位指令寄存器状态(shift IR)时,就在状态选择信号序列中加入全为0的第一数据序列,其中第一数据序列中0的个数与目标激励中当前指令的指令位宽数一致,例如当前指令的指令位宽为5,测第一数据序列中就有5个0。控制第一内部状态机跳转到退出指令寄存器状态1(exit1 IR),并将目标激励中当前指令指示的数据写入到数据输入信号序列中。当第一内部状态机的下一状态为移位数据寄存器状态(shift DR)时,就在状态选择信号序列中加入全为0的第二数据序列,其中第二数据序列中0的个数与目标激励中当前指令指示的数据的数据位宽数一致,例如,当前指令指示的数据的数据位宽为32,测第二数据序列中就有32个0。控制第一内部状态机跳转到退出数据寄存器状态1(exit1DR),并将目标激励中当前指令指示的数据写入到数据输入信号序列中。

当第一内部状态机下一状态为捕获指令寄存器状态(capture IR)或捕获数据寄存器状态(capture DR)时,与步骤302中确定二次更新策略之前的步骤一致,在此不做赘述。需要说明的是,当第一内部状态机的下一状态为除了shift IR、shift DR、capture IR以及capture DR以外的状态时,在目标激励中指令的个数等于零之前仅重复步骤302中确定二次更新策略之前的步骤。

在一种应用场景中,以第一内部状态机为jtag状态机、目标激励中指令的个数为输入指令数目、状态选择信号序列为tms序列、数据输入信号序列为tdi队列为例,上述随机生成状态选择信号序列与数据输入信号序列的方法可以用以下算法实现:

While(输入指令数目>0):

随机生成1位tms,加入tms序列;

tdi队列加入1位随机值;

控制jtag状态机跳转到下一状态;

If(jtag状态机跳转到capture IR):

随机生成1位tms,加入tms序列;

tdi队列加入1位随机值;

控制jtag状态机跳转到下一状态;

If(jtag状态机跳转到shift IR):

根据指令位宽信息,在tms序列中加入多个0;//表示shift IR->shift IR的跳转;

控制jtag状态机跳转到exit1 IR状态;

将此时的指令指示的数据写入tdi队列;

If(jtag状态机跳转到capture DR):

随机生成1位tms,加入tms序列;

tdi队列加入1位随机值;

控制jtag状态机跳转到下一状态;

If(jtag状态机跳转到shift DR):

根据数据位宽信息,在tms序列中加入多个0;//表示shift DR->shiftDR的跳转;

控制jtag状态机跳转到exit1 DR状态;

输入指令数目-1;

将此时的指令指示的数据写入tdi队列。

步骤303,获取目标激励对应的输入信号序列。

详细请参见图2所示实施例的步骤201,在此不再赘述。

步骤304,根据输入信号序列,驱动至少一个待测设计,以得到待测设计的实际输出结果。

详细请参见图2所示实施例的步骤203,在此不再赘述。

步骤305,将输入信号序列驱动至第一接口控制器模型的输入端。

其中,接口控制器的验证平台还包括第一接口控制器模型,第一接口控制器模型包括虚拟状态机。验证平台通过输入驱动将包括状态选择信号序列以及数据输入信号序列驱动的输入信号序列驱动到第一接口控制器模型的输入端,使第一接口控制器以及输入的模拟实际接口控制器的工作。

步骤306,分别获取待测设计中第二内部状态机的状态以及虚拟状态机的状态。

接口控制器的验证平台还包括与第一接口控制器模型输出端连接的校验单元,该校验单元还与待测设计的输出端连接;第一接口控制器模型以及DUT工作时会向校验单元输出内部状态机的当前状态。此时,验证平台就可以通过校验单元分别获取到DUT中第二内部状态机的状态以及虚拟状态机的状态,并通过校验单元比对第二内部状态机的状态以及虚拟状态机的状态是否一致。

步骤307,当第二内部状态机的状态以及虚拟状态机的状态一致时,控制第一接口控制器模型根据输入信号序列,模拟待测设计的输出,得到待测设计的期望输出结果。

当第二内部状态机的状态以及虚拟状态机的状态一致时,验证平台就控制输入驱动将输入信号序列逐位确定到第一接口控制器模型中,使第一接口控制器模型根据输入的信号模拟DUT的输出,并将输出结果保存至指定的全局队列,例如,数据输出全局队列(testdataoutputqueue,tdo_queue)中,将该指定全局队列中的数据作为待测设计的期望输出结果。

步骤308,根据实际输出结果以及期望输出结果,确定接口控制器的验证结果。

详细请参见图2所示实施例的步骤205,在此不再赘述。

可选的,接口控制器的验证平台还可以包括输出模块,输出模块可以包括监测组件以及输出驱动;根据实际输出结果以及期望输出结果,确定接口控制器的验证结果,可以包括:

通过输出模块获取实际输出结果以及期望输出结果。

验证平台通过监测组件(monitor)监测DUT输出端的输出内容以获取实际输出结果,并读取指定的全局队列中存储的期望输出结果。

通过输出模块比较实际输出结果以及期望输出结果,以确定接口控制器的验证结果。

验证平台通过输出模块中集成的scoreboard组件比较实际输出结果以及期望输出结果,以得到DUT的验证结果并将各个DUT的验证结果整合为接口控制器的验证结果。

综上所述,当监测到目标激励且目标激励中指令的个数大于零时,就随机在状态选择信号序列以及数据输入信号序列中生成状态选择信号以及数据输入信号。并依据该状态选择信号和第一内部状态机的当前状态确定第一内部状态机的下一状态,确保第一内部状态机的状态可以随着随机生成的状态选择信号进行随机跳转,提高第一内部状态机的状态跳转的完备性。进而基于第一内部状态机的下一状态,进一步确定状态选择信号序列以及数据输入信号序列的二次更新策略,继续对状态选择信号序列以及数据输入信号序列进行更新直至目标激励中指令的个数为零,加强状态选择信号序列以及数据输入信号序列中信号与第一内部状态机的状态之间的关联性,实现输入信号序列的合理随机化。进而基于考虑了第一内部状态机的状态和目标激励而随机生产的合理的输入信号序列驱动待测设计,得以保证待测设计中第二内部状态机实现随机跳转,避免基于固定的状态选择信号进行有规律的跳转,保证了接口控制器中状态机的验证完备性,进而提高接口控制器的功能验证的完备性。

在本实施例中还提供了一种接口控制器的验证装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

本实施例提供一种接口控制器的验证装置,如图4所示,该装置运行在接口控制器的验证平台上,接口控制器的验证平台包括第一内部状态机,第一内部状态机用于指示接口控制器的状态,该接口控制器的验证装置包括:

接收模块401,用于接收基于第一协议的激励,对激励进行协议格式转换,得到基于目标协议的目标激励;

获取模块402,用于获取目标激励对应的输入信号序列;输入信号序列为根据目标激励以及第一内部状态机的状态生成的信号序列;

驱动模块404,用于根据输入信号序列,驱动至少一个待测设计,以得到待测设计的实际输出结果;待测设计是根据接口控制器的各个功能设计的;

模拟模块403,用于根据输入信号序列,模拟待测设计的输出,得到待测设计的期望输出结果;

确定模块405,用于根据实际输出结果以及期望输出结果,确定接口控制器的验证结果。

在一些可选的实施方式中,接口控制器的验证平台还包括第一接口控制器模型,第一接口控制器模型包括虚拟状态机;模拟模块还用于:

将输入信号序列驱动至第一接口控制器模型的输入端;

分别获取待测设计中第二内部状态机的状态以及虚拟状态机的状态;

当第二内部状态机的状态以及虚拟状态机的状态一致时,控制第一接口控制器模型根据输入信号序列,模拟待测设计的输出,得到待测设计的期望输出结果。

在一些可选的实施方式中,接口控制器的验证装置还可以包括:

执行模块,用于当监测到目标激励,且目标激励中指令的个数大于零时,循环执行以下步骤,直至目标激励中指令的个数为零:

分别随机生成状态选择信号以及数据输入信号;

将状态选择信号加入到状态选择信号序列中;

将数据输入信号加入到数据输入信号序列中;

根据状态选择信号以及第一内部状态机的当前状态,确定第一内部状态机的下一状态;

根据下一状态,确定状态选择信号序列以及数据输入信号序列的二次更新策略;

将当前目标激励中指令的个数减一。

在一些可选的实施方式中,执行模块还用于:

当下一状态为移位指令寄存器状态时,执行以下步骤:

根据目标激励中当前指令的指令位宽信息,在状态选择信号序列中加入第一数据序列;第一数据序列的位数与指令位宽信息相匹配;

将下一状态确定为退出指令寄存器状态1;

将目标激励中当前指令指示的数据写入数据输入信号序列中;

当下一状态为移位数据寄存器状态时,执行以下步骤:

根据目标激励中当前指令指示的数据的数据位宽信息,在状态选择信号序列中加入第二数据序列;第二数据序列的位数与数据位宽信息相匹配;

将下一状态确定为退出数据寄存器状态1;

将目标激励中当前指令指示的数据写入数据输入信号序列中;

当下一状态为除捕获指令寄存器状态或捕获数据寄存器状态时,执行以下步骤:

分别随机生成状态选择信号以及数据输入信号;

将状态选择信号加入到状态选择信号序列中;

将数据输入信号加入到数据输入信号序列中;

根据状态选择信号以及第一内部状态机的当前状态,确定下一状态。

在一些可选的实施方式中,确定模块还用于:

通过输出模块获取实际输出结果以及期望输出结果;

通过输出模块比较实际输出结果以及期望输出结果,以确定接口控制器的验证结果。

本实施例中的接口控制器的验证装置是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。

上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。

本申请实施例还提供一种计算机设备,请参阅图5,图5是本申请可选实施例提供的一种计算机设备的结构示意图,如图5所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图5中以一个处理器10为例。

处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。

其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。

存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据一种小程序落地页的展现的计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。

该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。

本申请实施例还提供了一种计算机可读存储介质,上述根据本申请实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。

虽然结合附图描述了本申请的实施例,但是本领域技术人员可以在不脱离本申请的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

相关技术
  • 接口测试方法、接口测试装置、电子设备及存储介质
  • 基于规则引擎的验证方法、验证设备、存储介质及装置
  • 密码保护方法、身份验证方法、装置、设备及存储介质
  • 性能测试平台脚本存储方法、装置、设备及存储介质
  • 接口测试方法、装置、计算机设备及存储介质
  • UVM验证平台的接口快速配置方法、装置、设备及介质
  • 存储器电路的验证方法、装置、平台、设备及存储介质
技术分类

06120116481309