CN117494629A - 一种外设的验证方法、外设验证时的参数配置方法及装置 - Google Patents
一种外设的验证方法、外设验证时的参数配置方法及装置 Download PDFInfo
- Publication number
- CN117494629A CN117494629A CN202311515036.9A CN202311515036A CN117494629A CN 117494629 A CN117494629 A CN 117494629A CN 202311515036 A CN202311515036 A CN 202311515036A CN 117494629 A CN117494629 A CN 117494629A
- Authority
- CN
- China
- Prior art keywords
- model
- design
- configuration
- tested
- dut
- 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.)
- Pending
Links
- 238000012795 verification Methods 0.000 title claims abstract description 219
- 238000000034 method Methods 0.000 title claims abstract description 95
- 230000002093 peripheral effect Effects 0.000 title claims abstract description 86
- 230000005540 biological transmission Effects 0.000 claims abstract description 251
- 238000013461 design Methods 0.000 claims abstract description 199
- 230000005284 excitation Effects 0.000 claims abstract description 92
- 238000004891 communication Methods 0.000 claims description 58
- 230000006870 function Effects 0.000 claims description 38
- 238000012360 testing method Methods 0.000 claims description 34
- 238000012546 transfer Methods 0.000 description 35
- 102100026964 M1-specific T cell receptor beta chain Human genes 0.000 description 19
- 239000002184 metal Substances 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/333—Design for testability [DFT], e.g. scan chain or built-in self-test [BIST]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/02—System on chip [SoC] design
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种外设的验证方法、外设验证时的参数配置方法及装置,所述方法应用于验证平台,验证平台运行待验证模型,待验证模型包括待测设计和待测设计对应的对端模型,所述方法包括:获取待测设计与对端模型之间相关联的配置参数;根据配置参数对待测设计和对端模型进行统一配置,以生成待测设计的配置序列和对端模型的配置序列;向待测设计发送待测设计的配置序列,以对待测设计进行配置;向对端模型发送对端模型的配置序列,以对对端模型进行配置;在待测设计和对端模型配置完成之后,在待测设计与对端模型之间进行数据传输,以对待验证模型进行验证。本发明能够降低激励编写难度,减少激励配置的出错概率。
Description
技术领域
本发明涉及外设验证技术领域,尤其涉及一种外设的验证方法、外设验证时的参数配置方法、装置及计算机可读存储介质。
背景技术
现有的外部设备验证方案一般都是采用定向测试,在DUT(Design Under Test,待测设计)端和Model(模型)端需要分别编写激励进行配置,在编写激励时,需要保证DUT端和Model端的配置项要匹配,不能出现配置项不匹配现象,因为配置项不匹配会导致DUT端和Model端之间的数据传输失败,进而需要消耗大量精力进行调试。
对于USB(Universal Serial Bus,通用串行总线)等需要DUT端和Model端配合,并且DUT端和Model端的配置流程基本固定的外设类验证环境,激励中需要分别对DUT端和Model端进行分开独立配置,需要配置的配置项一般不少,不仅涉及到寄存器配置,还涉及到存储空间的TRB(Transfer Request Block,传输请求块)配置,DUT端和Model端分开独立配置很容易就出现配置不匹配的情况,从而导致激励编写难度和激励配置时的出处概率较大。
发明内容
本发明实施例的目的在于,提供一种外设的验证方法、外设验证时的参数配置方法、装置及计算机可读存储介质,能够解决待测设计端和对端模型端分开独立配置,容易导致两端配置项不匹配的问题,通过对待测设计和对端模型之间相关联的配置项进行统一配置,能够避免出现两端配置项不匹配的情况,从而降低激励编写难度,减少激励配置的出错概率。
为了实现上述目的,本发明第一方面实施例提供了一种外设的验证方法,所述方法应用于验证平台,所述验证平台运行有待验证模型,所述待验证模型包括待测设计和所述待测设计对应的对端模型,所述方法包括:
获取所述待测设计与所述对端模型之间相关联的配置参数;
根据所述配置参数对所述待测设计和所述对端模型进行统一配置,以生成所述待测设计的配置序列和所述对端模型的配置序列;
向所述待测设计发送所述待测设计的配置序列,以对所述待测设计进行配置;
向所述对端模型发送所述对端模型的配置序列,以对所述对端模型进行配置;
在所述待测设计和所述对端模型配置完成之后,在所述待测设计与所述对端模型之间进行数据传输,以对所述待验证模型进行验证。
本实施例通过对待测设计和对端模型之间相关联的配置项进行统一配置,能够避免出现两端配置项不匹配的情况,从而降低激励编写难度,减少激励配置的出错概率。
在第一方面的一种可能的实现方式中,所述配置参数包括可随机约束的至少一种参数,所述获取所述待测设计与所述对端模型之间相关联的配置参数,包括:
基于随机生成器,通过随机约束函数,确定所述至少一种参数的取值。
本实施例通过设置随机生成器在随机约束函数的约束下生成配置参数,能够避免通过定向激励进行测试时导致的需要编写大量激励的问题,达到了降低编写激励的成本的效果,并且增大了测试场景能覆盖的范围,加速了覆盖率的收敛。
在第一方面的一种可能的实现方式中,所述至少一种参数包括以下参数中的一种或多种:
所述待测设计的通信端点号;
所述对端模型的通信端点号;
所述待测设计和所述对端模型之间的数据传输长度;
所述待测设计和所述对端模型之间的数据传输类型;以及
所述待测设计和所述对端模型之间的数据传输方向。
本实施例通过设置随机生成器在随机约束函数的约束下生成配置参数,达到了减少编写对应参数的激励的效果。
在第一方面的一种可能的实现方式中,所述待测设计的配置序列包括第一配置序列和第二配置序列,所述第一配置序列为基于第一编程语言描述的配置序列,所述第二配置序列为基于第二编程语言描述的配置序列,所述第一编程语言为所述待测设计的模块级验证环境所使用的编程语言,所述第二编程语言为所述待测设计的系统级验证环境所使用的编程语言。
本实施例通过将统一配置的配置序列用多种编程语言描述,在使用时分别调用不同编程语言描述的配置序列,解决了在不同验证环境下,需要分别使用不同的语言进行配置导致工作量大、环境与配置不匹配的问题。
在第一方面的一种可能的实现方式中,所述验证平台还包括第一内存和第二内存,所述第一内存用于存储所述待测设计接收到的所述对端模型传输过来的数据和所述待测设计需要向所述对端模型传输的数据,所述第二内存用于存储所述对端模型需要向所述待测设计传输的数据和所述对端模型接收到的所述待测设计传输过来的数据,所述方法还包括:
根据所述配置参数以及所述待测设计的配置序列,生成所述待测设计的传输请求块;
将所述待测设计的传输请求块存储至所述第一内存;
根据所述配置参数以及所述对端模型的配置序列,生成所述对端模型的传输请求块;
将所述对端模型的传输请求块存储至所述第二内存。
本实施例根据统一生成的配置序列统一生成待测设计的传输请求块和对端模型的传输请求块,基于统一生成的传输请求块,可以实现待测设计和对端模型之间传输数据长度一致,还可以避免配置不一致的问题。
在第一方面的一种可能的实现方式中,所述待测设计的传输请求块包括第一传输请求块和第二传输请求块,所述第一传输请求块为基于第一编程语言描述的传输请求块,所述第二传输请求块为基于第二编程语言描述的传输请求块,所述第一编程语言为所述待测设计的模块级验证环境所使用的编程语言,所述第二编程语言为所述待测设计的系统级验证环境所使用的编程语言。
本实施例通过将传输请求块用不同的编程语言描述,以在不同验证环境下使用,使得传输请求块可以同时适用于不同的验证环境,从而减少工作量,并解决了分别描述传输请求块导致的配置不匹配问题。
在第一方面的一种可能的实现方式中,所述方法还包括:
对所述第一内存中存储的数据和所述第二内存中存储的数据进行随机初始化。
本实施例通过对内存中的数据进行随机初始化,可以实现待测设计和对端模型之间传输数据的随机化,从而提高验证的准确性。
在第一方面的一种可能的实现方式中,所述第一编程语言为SV语言,所述第二编程语言为C语言。
本实施例通过限定模块级验证环境中使用SV语言,系统级验证环境中使用C语言,将对应的配置序列和传输请求块分别用不同的编程语言描述,能够减少SV语言和C语言分别编写的工作量。
为了实现上述目的,本发明第二方面实施例提供了一种外设验证时的参数配置方法,所述方法应用于验证平台,所述验证平台运行有待验证模型,所述待验证模型包括激励生成器、待测设计和所述待测设计对应的对端模型,所述激励生成器与所述待测设计和所述对端模型相连,所述待测设计与所述对端模型相连;所述激励生成器用于执行以下操作:
获取所述待测设计与所述对端模型之间相关联的配置参数;
根据所述配置参数对所述待测设计和所述对端模型进行统一配置,以生成所述待测设计的配置序列和所述对端模型的配置序列;
向所述待测设计发送所述待测设计的配置序列,以对所述待测设计进行配置;
向所述对端模型发送所述对端模型的配置序列,以对所述对端模型进行配置。
本实施例通过对待测设计和对端模型之间相关联的配置项进行统一配置,能够避免出现两端配置项不匹配的情况,从而降低激励编写难度,减少激励配置的出错概率。
在第二方面的一种可能的实现方式中,在所述待测设计和所述对端模型配置完成之后,所述待测设计用于与所述对端模型进行数据传输,以对所述待验证模型进行验证。
本实施例在对待测设计和对端模型进行统一配置之后,通过数据传输对待验证模型进行验证,能够解决外设验证时,待测设计和对端模型分开独立配置,容易导致两端配置项不匹配的问题。
在第二方面的一种可能的实现方式中,所述验证平台为所述待验证模型的模块级验证平台,所述模块级验证平台还包括第一驱动器和第二驱动器,所述激励生成器通过所述第一驱动器与所述待测设计相连,以通过所述第一驱动器向所述待测设计发送所述待测设计的配置序列,所述激励生成器通过所述第二驱动器与所述对端模型相连,以通过所述第二驱动器向所述对端模型发送所述对端模型的配置序列。
本实施例通过使用驱动器,能够将激励生成器生成的配置序列发送到对应的配置接口上,以完成待测设计的配置和对端模型的配置。
在第二方面的一种可能的实现方式中,所述验证平台为所述待验证模型的系统级验证平台,所述系统级验证平台还包括处理器核、片上网络以及驱动器,所述激励生成器通过所述处理器核和所述片上网络与所述待测设计相连,以通过所述处理器核和所述片上网络向所述待测设计发送所述待测设计的配置序列,所述激励生成器通过所述驱动器与所述对端模型相连,以通过所述驱动器向所述对端模型发送所述对端模型的配置序列。
本实施例通过使用处理器核、片上网络和驱动器,能够将激励生成器生成的配置序列发送到对应的配置接口上,以完成待测设计的配置和对端模型的配置。
在第二方面的一种可能的实现方式中,所述验证平台还包括第一存储器和第二存储器,所述激励生成器通过所述第一存储器与所述待测设计相连,所述激励生成器通过所述第二存储器与所述对端模型相连;所述激励生成器还用于执行以下操作:
根据所述配置参数以及所述待测设计的配置序列,生成所述待测设计的传输请求块;
将所述待测设计的传输请求块存储至所述第一存储器;
根据所述配置参数以及所述对端模型的配置序列,生成所述对端模型的传输请求块;
将所述对端模型的传输请求块存储至所述第二存储器。
本实施例根据统一生成的配置序列统一生成待测设计的传输请求块和对端模型的传输请求块,基于统一生成的传输请求块,可以实现待测设计和对端模型之间传输数据长度一致,还可以避免配置不一致的问题。
为了实现上述目的,本发明第三方面实施例还提供了一种外设的验证装置,包括:
存储器,用于存储程序;
处理器,用于从所述存储器中调用程序,以使所述验证装置执行上述第一方面任一项所述的外设的验证方法。
为了实现上述目的,本发明第四方面实施例还提供了一种外设验证时的参数配置装置,包括:
存储器,用于存储程序;
处理器,用于从所述存储器中调用程序,以使所述参数配置装置执行上述第二方面任一项所述的外设验证时的参数配置方法。
本发明第五方面实施例还提供了一种计算机可读存储介质,其上存储有程序,所述程序在被调用时使得计算机执行上述第一方面任一项所述的外设的验证方法。
本发明第六方面实施例还提供了一种计算机可读存储介质,其上存储有程序,所述程序在被调用时使得计算机执行上述第二方面任一项所述的外设验证时的参数配置方法。
与现有技术相比,本发明实施例提供了一种外设的验证方法、外设验证时的参数配置方法、装置及计算机可读存储介质,所述方法应用于验证平台,验证平台运行有待验证模型,待验证模型包括待测设计和待测设计对应的对端模型,所述方法包括:获取待测设计与对端模型之间相关联的配置参数;根据配置参数对待测设计和对端模型进行统一配置,以生成待测设计的配置序列和对端模型的配置序列;向待测设计发送待测设计的配置序列,以对待测设计进行配置;向对端模型发送对端模型的配置序列,以对对端模型进行配置;在待测设计和对端模型配置完成之后,在待测设计与对端模型之间进行数据传输,以对待验证模型进行验证。本发明实施例能够解决待测设计端和对端模型端分开独立配置,容易导致两端配置项不匹配的问题,通过对待测设计和对端模型之间相关联的配置项进行统一配置,能够避免出现两端配置项不匹配的情况,从而降低激励编写难度,减少激励配置的出错概率。
附图说明
图1是本发明第一方面实施例提供的一种外设的验证方法的流程图;
图2是本发明第二方面实施例提供的一种外设验证时的参数配置方法的流程图;
图3是本发明第二方面实施例提供的一种激励生成器的一个优选实施例的结构框图;
图4是本发明第二方面实施例提供的一种待验证模型的模块级验证平台的结构框图;
图5是本发明第二方面实施例提供的一种系统级验证平台的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本技术领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明第一方面实施例提供了一种外设的验证方法,参见图1所示,是本发明第一方面实施例提供的一种外设的验证方法的流程图,该验证方法应用于验证平台,验证平台运行有待验证模型,待验证模型包括待测设计和待测设计对应的对端模型,该验证方法包括步骤S101至步骤S105:
步骤S101、获取待测设计与对端模型之间相关联的配置参数;
步骤S102、根据配置参数对待测设计和对端模型进行统一配置,以生成待测设计的配置序列和对端模型的配置序列;
步骤S103、向待测设计发送待测设计的配置序列,以对待测设计进行配置;
步骤S104、向对端模型发送对端模型的配置序列,以对对端模型进行配置;
步骤S105、在待测设计和对端模型配置完成之后,在待测设计与对端模型之间进行数据传输,以对待验证模型进行验证。
需要说明的是,验证平台用于为待验证外设提供验证环境,待验证模型是用于模拟待验证外设的模型,待验证模型中的待测设计(DUT)是需要被验证的设计代码,而待验证模型中的与DUT对应的对端模型(Model)是用于配合DUT工作的模型,例如,DUT发出请求,Model响应DUT发出的请求,两者之间可以理解为主从端的关系。
示例性的,针对USB的验证,如果DUT代表USB的主控制器(host),相当于作为主端,那么Model就代表与host配合工作的USB设备(device),相当于作为从端,在host与device之间进行数据传输时,由DUT端发起两者之间的数据传输,Model端配合DUT端完成数据传输;反之,如果DUT是device,相当于作为从端,那么Model就是host,相当于作为主端,则由Model端发起两者之间的数据传输,DUT端配合Model端完成数据传输。针对PCIe的验证,如果DUT代表RC(Root Complex),那么Model就代表EP(EndPoint),反之,如果DUT是EP,那么Model就是RC。针对以太网控制器的验证,如果DUT是发送端,那么Model就是接收端,反之,如果DUT是接收端,那么Model就是发送端。也就是说,DUT和Model分别代表外设验证过程中进行数据传输的两端。
本实施例在具体实施时,首先,在验证平台中搭建待验证外设所对应的待验证模型,并获取待验证模型中的DUT与Model之间相关联的配置参数,接着,根据获得的配置参数对DUT和Model之间相关联的配置项进行统一配置,生成适用于DUT的配置序列和适用于Model的配置序列,然后,将适用于DUT的配置序列发送至DUT,以根据适用于DUT的配置序列对DUT所对应的配置项进行配置,以及,将适用于Model的配置序列发送至Model,以根据适用于Model的配置序列对Model所对应的配置项进行配置,最后,在DUT和Model均配置完成之后,在DUT与Model之间进行数据传输,例如,可以由DUT向Model发起数据传输请求,由Model响应DUT发起的数据传输请求,以对待验证模型的数据传输功能进行验证。
本发明实施例所提供的一种外设的验证方法,通过对待测设计和对端模型之间相关联的配置项进行统一配置,能够解决待测设计端和对端模型端分开独立配置,容易导致两端配置项不匹配的问题,避免出现两端配置项不匹配的情况,从而降低激励编写难度,减少激励配置的出错概率。
在其中一个可选的实施例中,配置参数包括可随机约束的至少一种参数,获取待测设计与对端模型之间相关联的配置参数的实现过程可以包括:基于随机生成器,通过随机约束函数,确定至少一种参数的取值。
具体的,结合上述实施例,在DUT与Model之间相关联的所有的配置参数中,存在至少一种可随机约束的参数,并且,可随机约束的参数的取值,是可以通过随机生成器利用随机约束函数生成的。
结合上述实施例,本实施例在具体实施时,首先,在验证平台中搭建待验证外设所对应的待验证模型,并获取待验证模型中的DUT与Model之间相关联的配置参数,其中,配置参数中包括至少一种可随机约束的参数,并且可以通过随机生成器利用随机约束函数对应生成每一种可随机约束的参数的取值;接着,根据获得的配置参数对DUT和Model之间相关联的配置项进行统一配置,生成适用于DUT的配置序列和适用于Model的配置序列;然后,将适用于DUT的配置序列发送至DUT,以根据适用于DUT的配置序列对DUT所对应的配置项进行配置,以及,将适用于Model的配置序列发送至Model,以根据适用于Model的配置序列对Model所对应的配置项进行配置;最后,在DUT和Model均配置完成之后,在DUT与Model之间进行数据传输;例如,可以由DUT向Model发起数据传输请求,由Model响应DUT发起的数据传输请求,以对待验证模型的数据传输功能进行验证。
需要说明的是,随机生成器可以随机生成任意数值,而在随机约束函数的作用下,随机生成器的产生的是带约束的随机值,例如,在规定的取值范围内产生随机值。
可以理解的,在DUT与Model之间相关联的所有的配置参数中,除了可随机约束的至少一种参数之外,其他的参数可由验证人员根据实际需要进行设置,或者,也可以采用其他方式进行设置,本发明实施例不作具体限定。
本发明实施例所提供的一种外设的验证方法,通过设置随机生成器在随机约束函数的约束下生成配置参数中的至少一种参数,能够避免通过定向激励进行测试时导致的需要编写大量激励的问题,达到了降低编写激励的成本的效果,并且增大了测试场景能覆盖的范围,加速了覆盖率的收敛。
在其中一个可选的实施例中,至少一种参数包括以下参数中的一种或多种:
待测设计的通信端点号;
对端模型的通信端点号;
待测设计和对端模型之间的数据传输长度;
待测设计和对端模型之间的数据传输类型;以及
待测设计和对端模型之间的数据传输方向。
具体的,结合上述实施例,DUT与Model之间相关联的配置参数主要包括DUT的通信端点号、Model的通信端点号、DUT与Model之间的数据传输长度、DUT与Model之间的数据传输类型以及DUT与Model之间的数据传输方向,相应的,可随机约束的参数即为这些参数中的至少一种参数。
结合上述实施例,本实施例在具体实施时,首先,在验证平台中搭建待验证外设所对应的待验证模型,并获取待验证模型中的DUT与Model之间相关联的配置参数:DUT的通信端点号、Model的通信端点号、DUT与Model之间的数据传输长度、DUT与Model之间的数据传输类型以及DUT与Model之间的数据传输方向,其中,上述这些配置参数中包括至少一种可随机约束的参数,并且可以通过随机生成器利用随机约束函数对应生成每一种可随机约束的参数的取值;接着,根据获得的配置参数对DUT和Model之间相关联的配置项进行统一配置,生成适用于DUT的配置序列和适用于Model的配置序列;然后,将适用于DUT的配置序列发送至DUT,以根据适用于DUT的配置序列对DUT所对应的配置项进行配置,以及,将适用于Model的配置序列发送至Model,以根据适用于Model的配置序列对Model所对应的配置项进行配置;最后,在DUT和Model均配置完成之后,在DUT与Model之间进行数据传输;例如,可以由DUT向Model发起数据传输请求,由Model响应DUT发起的数据传输请求,以对待验证模型的数据传输功能进行验证。
需要说明的是,数据传输长度、数据传输类型和数据传输方向是外设验证目的的一部分,数据传输长度(即数据传输大小)是指每一次传输的数据量,数据传输类型是指每一次传输的数据的类型,数据传输方向是指每一次传输的数据的流向(用于指示数据发送端和数据接收端);例如,USB支持以下4种数据传输类型:ctl、bulk、iso和int,分别对应实际使用中的不同设备,其中,U盘在数据搬移时使用的是bulk传输,音频视频则是走的iso传输,并且每种数据传输类型所支持的最大传输数据量是不一样的。
示例性的,如果为了验证DUT是否支持bulk传输,预期的数据传输类型就应该是bulk,此时数据传输大小只要小于或等于协议规定的最大传输数据量即可;如果是为了验证DUT的bulk传输是否按协议要求支持传输大小为64KB,则数据传输大小就需要设置为64KB,数据传输类型为bulk。
需要说明的是,DUT的通信端点号和Model的通信端点号可以通过随机生成器利用随机约束函数对应生成,随机生成器利用随机约束函数可以随机出一组通信端点号,这一组通信端点号即为DUT和Model之间在进行数据传输验证时的通信端点号,并且这一组通信端点号中的一个作为DUT的通信端点号,另一个作为Model的通信端点号。
示例性的,ctl传输时DUT的通信端点号和Model的通信端点必须全为0,其他3种数据传输类型则是在1到协议支持的最大端点数之间进行随机,例如,USB2.0协议最大支持16个端点,则DUT的通信端点号和Model的通信端点都为1~15间的任意值,可以相等也可以不相等。
示例性的,假设DUT可以使用端点3作为当前数据传输的端点,Model可以使用端点4作为当前数据传输的端点,那么就需要把DUT的端点3和Model的端点4配置成相同的数据传输类型,不同的数据传输方向。
本发明实施例所提供的一种外设的验证方法,通过设置随机生成器在随机约束函数的约束下生成配置参数,达到了减少编写对应参数的激励的效果。
在其中一个可选的实施例中,待测设计的配置序列包括第一配置序列和第二配置序列,第一配置序列为基于第一编程语言描述的配置序列,第二配置序列为基于第二编程语言描述的配置序列,第一编程语言为待测设计的模块级验证环境所使用的编程语言,第二编程语言为待测设计的系统级验证环境所使用的编程语言。
在其中一个可选的实施例中,第一编程语言为SV语言,第二编程语言为C语言。
具体的,结合上述实施例,Model在不同的验证环境下所使用的激励语言相同,而DUT在不同的验证环境下所使用的激励语言不同,因此,在不同的验证环境下,需要分别对应生成不同编程语言描述的DUT的配置序列,相应的,DUT的配置序列包括基于第一编程语言描述的第一配置序列和基于第二编程语言描述的第二配置序列,其中,第一编程语言为DUT的模块级验证环境所使用的编程语言,例如,第一编程语言为SV(SystemVerilog)语言,第二编程语言为DUT的系统级验证环境所使用的编程语言,例如,第二编程语言为C语言。
结合上述实施例,如果验证环境为模块级验证环境,则本实施例在具体实施时,首先,在验证平台中搭建待验证外设所对应的待验证模型,并获取待验证模型中的DUT与Model之间相关联的配置参数:DUT的通信端点号、Model的通信端点号、DUT与Model之间的数据传输长度、DUT与Model之间的数据传输类型以及DUT与Model之间的数据传输方向,其中,上述这些配置参数中包括至少一种可随机约束的参数,并且可以通过随机生成器利用随机约束函数对应生成每一种可随机约束的参数的取值;接着,根据获得的配置参数对DUT和Model之间相关联的配置项进行统一配置,生成适用于DUT的SV语言描述的第一配置序列和适用于Model的配置序列;然后,将适用于DUT的SV语言描述的第一配置序列发送至DUT,以根据SV语言描述的第一配置序列对DUT所对应的配置项进行配置,以及,将适用于Model的配置序列发送至Model,以根据适用于Model的配置序列对Model所对应的配置项进行配置;最后,在DUT和Model均配置完成之后,在DUT与Model之间进行数据传输;例如,可以由DUT向Model发起数据传输请求,由Model响应DUT发起的数据传输请求,以对待验证模型的数据传输功能进行验证。
结合上述实施例,如果验证环境为系统级验证环境,则本实施例在具体实施时,首先,在验证平台中搭建待验证外设所对应的待验证模型,并获取待验证模型中的DUT与Model之间相关联的配置参数:DUT的通信端点号、Model的通信端点号、DUT与Model之间的数据传输长度、DUT与Model之间的数据传输类型以及DUT与Model之间的数据传输方向,其中,上述这些配置参数中包括至少一种可随机约束的参数,并且可以通过随机生成器利用随机约束函数对应生成每一种可随机约束的参数的取值;接着,根据获得的配置参数对DUT和Model之间相关联的配置项进行统一配置,生成适用于DUT的C语言描述的第二配置序列和适用于Model的配置序列;然后,将适用于DUT的C语言描述的第二配置序列发送至DUT,以根据C语言描述的第二配置序列对DUT所对应的配置项进行配置,以及,将适用于Model的配置序列发送至Model,以根据适用于Model的配置序列对Model所对应的配置项进行配置;最后,在DUT和Model均配置完成之后,在DUT与Model之间进行数据传输;例如,可以由DUT向Model发起数据传输请求,由Model响应DUT发起的数据传输请求,以对待验证模型的数据传输功能进行验证。
本发明实施例所提供的一种外设的验证方法,通过将统一配置的配置序列用多种编程语言描述,在使用时分别调用不同编程语言描述的配置序列以适用于不同的验证环境,解决了在不同验证环境下,需要分别使用不同的语言进行配置导致工作量大、验证环境与配置不匹配的问题;进一步的,通过限定模块级验证环境中使用SV语言,系统级验证环境中使用C语言,能够减少SV语言和C语言分别编写的工作量。
在其中一个可选的实施例中,验证平台还包括第一内存和第二内存,第一内存用于存储待测设计接收到的对端模型传输过来的数据和待测设计需要向对端模型传输的数据,第二内存用于存储对端模型需要向待测设计传输的数据和对端模型接收到的待测设计传输过来的数据,该验证方法还包括:
根据配置参数以及待测设计的配置序列,生成待测设计的传输请求块;
将待测设计的传输请求块存储至第一内存;
根据配置参数以及对端模型的配置序列,生成对端模型的传输请求块;
将对端模型的传输请求块存储至第二内存。
具体的,结合上述实施例,验证平台还包括第一内存和第二内存,第一内存用于存储DUT的数据,主要包括DUT接收到的由Model传输过来的数据和DUT需要向Model传输的数据,第二内存用于存储Model的数据,主要包括Model需要向DUT传输的数据和Model接收到的由DUT传输过来的数据;相应的,本实施例可以根据获得的配置参数以及生成的DUT的配置序列,对应生成适用于DUT的传输请求块(transfer request block,TRB),并将适用于DUT的TRB存储至第一内存,同理,可以根据获得的配置参数以及生成的Model的配置序列,对应生成适用于Model的TRB,并将适用于Model的TRB存储至第二内存。
结合上述实施例,本实施例在具体实施时,首先,在验证平台中搭建待验证外设所对应的待验证模型,并获取待验证模型中的DUT与Model之间相关联的配置参数:DUT的通信端点号、Model的通信端点号、DUT与Model之间的数据传输长度、DUT与Model之间的数据传输类型以及DUT与Model之间的数据传输方向,其中,上述这些配置参数中包括至少一种可随机约束的参数,并且可以通过随机生成器利用随机约束函数对应生成每一种可随机约束的参数的取值;接着,根据获得的配置参数对DUT和Model之间相关联的配置项进行统一配置,生成适用于DUT的配置序列和适用于Model的配置序列,以及,根据获得的配置参数和生成的DUT的配置序列,对应生成适用于DUT的TRB,并将适用于DUT的TRB存储至第一内存,同时,根据获得的配置参数和生成的Model的配置序列,对应生成适用于Model的TRB,并将适用于Model的TRB存储至第二内存;然后,将适用于DUT的配置序列发送至DUT,以根据适用于DUT的配置序列对DUT所对应的配置项进行配置,以及,将适用于Model的配置序列发送至Model,以根据适用于Model的配置序列对Model所对应的配置项进行配置;最后,在DUT和Model均配置完成之后,利用第一内存中存储的适用于DUT的TRB以及第二内存中存储的适用于Model的TRB,在DUT与Model之间进行数据传输;例如,DUT解析第一内存中存储的TRB,获得数据传输需求,并根据获得的数据传输需求向Model发起数据传输请求,Model解析第二内存中存储的TRB,获得数据传输需求,并根据获得的数据传输需求响应DUT发起的数据传输请求,以对待验证模型的数据传输功能进行验证。
需要说明的是,TRB是USB的一种数据结构,用于软件配置传输的具体信息,例如,传输总长度、传输方向、传输的数据存放或者来源于mem的哪一段地址空间,以及本次传输完成后要不要发起中断等,USB主控制器解析从mem中获取到的TRB,并启动对应的数据传输。
进一步的,TRB和传输长度的关系是TRB中包含本次传输的长度信息,将长度信息作为输入参数生成DUT端和Model端的TRB,可以保证两端的TRB中的传输长度对应域段的值一致,通过解析两端的TRB,获得的传输长度信息也是一致的,就可以保证两端的传输长度一致。
本发明实施例所提供的一种外设的验证方法,根据统一生成的配置序列统一生成待测设计的传输请求块和对端模型的传输请求块,基于统一生成的传输请求块,可以实现待测设计和对端模型之间传输数据长度一致,还可以避免配置不一致的问题。
在其中一个可选的实施例中,待测设计的传输请求块包括第一传输请求块和第二传输请求块,第一传输请求块为基于第一编程语言描述的传输请求块,第二传输请求块为基于第二编程语言描述的传输请求块,第一编程语言为待测设计的模块级验证环境所使用的编程语言,第二编程语言为待测设计的系统级验证环境所使用的编程语言。
在其中一个可选的实施例中,第一编程语言为SV语言,第二编程语言为C语言。
具体的,结合上述实施例,Model在不同的验证环境下所使用的激励语言相同,而DUT在不同的验证环境下所使用的激励语言不同,因此,在不同的验证环境下,需要分别对应生成不同编程语言描述的DUT端的TRB,相应的,DUT端的TRB包括基于第一编程语言描述的第一TRB和基于第二编程语言描述的第二TRB,其中,第一编程语言为DUT的模块级验证环境所使用的编程语言,例如,第一编程语言为SV语言,第二编程语言为DUT的系统级验证环境所使用的编程语言,例如,第二编程语言为C语言。
结合上述实施例,如果验证环境为模块级验证环境,则本实施例在具体实施时,首先,在验证平台中搭建待验证外设所对应的待验证模型,并获取待验证模型中的DUT与Model之间相关联的配置参数:DUT的通信端点号、Model的通信端点号、DUT与Model之间的数据传输长度、DUT与Model之间的数据传输类型以及DUT与Model之间的数据传输方向,其中,上述这些配置参数中包括至少一种可随机约束的参数,并且可以通过随机生成器利用随机约束函数对应生成每一种可随机约束的参数的取值;接着,根据获得的配置参数对DUT和Model之间相关联的配置项进行统一配置,生成适用于DUT的SV语言描述的第一配置序列和适用于Model的配置序列,以及,根据获得的配置参数和生成的适用于DUT的SV语言描述的第一配置序列,对应生成适用于DUT的SV语言描述的第一TRB,并将适用于DUT的SV语言描述的第一TRB存储至第一内存,同时,根据获得的配置参数和生成的Model的配置序列,对应生成适用于Model的TRB,并将适用于Model的TRB存储至第二内存;然后,将适用于DUT的SV语言描述的第一配置序列发送至DUT,以根据SV语言描述的第一配置序列对DUT所对应的配置项进行配置,以及,将适用于Model的配置序列发送至Model,以根据适用于Model的配置序列对Model所对应的配置项进行配置;最后,在DUT和Model均配置完成之后,利用第一内存中存储的适用于DUT的SV语言描述的第一TRB以及第二内存中存储的适用于Model的TRB,在DUT与Model之间进行数据传输;例如,DUT解析第一内存中存储的SV语言描述的第一TRB,获得数据传输需求,并根据获得的数据传输需求向Model发起数据传输请求,Model解析第二内存中存储的TRB,获得数据传输需求,并根据获得的数据传输需求响应DUT发起的数据传输请求,以对待验证模型的数据传输功能进行验证。
结合上述实施例,如果验证环境为系统级验证环境,则本实施例在具体实施时,首先,在验证平台中搭建待验证外设所对应的待验证模型,并获取待验证模型中的DUT与Model之间相关联的配置参数:DUT的通信端点号、Model的通信端点号、DUT与Model之间的数据传输长度、DUT与Model之间的数据传输类型以及DUT与Model之间的数据传输方向,其中,上述这些配置参数中包括至少一种可随机约束的参数,并且可以通过随机生成器利用随机约束函数对应生成每一种可随机约束的参数的取值;接着,根据获得的配置参数对DUT和Model之间相关联的配置项进行统一配置,生成适用于DUT的C语言描述的第二配置序列和适用于Model的配置序列,以及,根据获得的配置参数和生成的适用于DUT的C语言描述的第二配置序列,对应生成适用于DUT的C语言描述的第二TRB,并将适用于DUT的C语言描述的第二TRB存储至第一内存,同时,根据获得的配置参数和生成的Model的配置序列,对应生成适用于Model的TRB,并将适用于Model的TRB存储至第二内存;然后,将适用于DUT的C语言描述的第二配置序列发送至DUT,以根据C语言描述的第二配置序列对DUT所对应的配置项进行配置,以及,将适用于Model的配置序列发送至Model,以根据适用于Model的配置序列对Model所对应的配置项进行配置;最后,在DUT和Model均配置完成之后,利用第一内存中存储的适用于DUT的C语言描述的第二TRB以及第二内存中存储的适用于Model的TRB,在DUT与Model之间进行数据传输;例如,DUT解析第一内存中存储的C语言描述的第二TRB,获得数据传输需求,并根据获得的数据传输需求向Model发起数据传输请求,Model解析第二内存中存储的TRB,获得数据传输需求,并根据获得的数据传输需求响应DUT发起的数据传输请求,以对待验证模型的数据传输功能进行验证。
本发明实施例所提供的一种外设的验证方法,通过将传输请求块用不同的编程语言描述,以在不同验证环境下使用,使得传输请求块可以同时适用于不同的验证环境,从而减少工作量,并解决了分别描述传输请求块导致的配置不匹配问题;进一步的,通过限定模块级验证环境中使用SV语言,系统级验证环境中使用C语言,能够减少SV语言和C语言分别编写的工作量。
在其中一个可选的实施例中,该验证方法还包括:
对第一内存中存储的数据和第二内存中存储的数据进行随机初始化。
具体的,结合上述实施例,本实例还可以对DUT端的第一内存中存储的数据和Model端的第二内存中存储的数据进行随机初始化,例如,可以使用随机函数进行随机,将第一内存中存储的数据随机为一个随机值,将第二内存中存储的数据随机为一个随机值,这两个随机值可用于DUT端和Model端在进行数据传输时的传输成功性的判断。
需要说明的是,对第一内存和第二内存进行随机初始化的目的,是为了用于后续传输数据成功性的判断,将数据搬移中的源数据和目的数据进行正确性比对,并且使用随机的数据比较容易判断数据传输过程中有没有传输错误。
结合上述实施例,本实施例在具体实施时,首先,在验证平台中搭建待验证外设所对应的待验证模型,并获取待验证模型中的DUT与Model之间相关联的配置参数:DUT的通信端点号、Model的通信端点号、DUT与Model之间的数据传输长度、DUT与Model之间的数据传输类型以及DUT与Model之间的数据传输方向,其中,上述这些配置参数中包括至少一种可随机约束的参数,并且可以通过随机生成器利用随机约束函数对应生成每一种可随机约束的参数的取值;然后,将DUT端的第一内存中存储的数据随机初始化为一个随机值,将Model端的第二内存中存储的数据随机初始化为一个随机值;接着,根据获得的配置参数对DUT和Model之间相关联的配置项进行统一配置,生成适用于DUT的配置序列和适用于Model的配置序列,以及,根据获得的配置参数和生成的DUT的配置序列,对应生成适用于DUT的TRB,并将适用于DUT的TRB存储至第一内存,同时,根据获得的配置参数和生成的Model的配置序列,对应生成适用于Model的TRB,并将适用于Model的TRB存储至第二内存;然后,将适用于DUT的配置序列发送至DUT,以根据适用于DUT的配置序列对DUT所对应的配置项进行配置,以及,将适用于Model的配置序列发送至Model,以根据适用于Model的配置序列对Model所对应的配置项进行配置;最后,在DUT和Model均配置完成之后,利用第一内存中存储的适用于DUT的TRB以及第二内存中存储的适用于Model的TRB,在DUT与Model之间进行数据传输,并根据第一内存对应的随机值和第二内存对应的随机值,对数据传输过程中的源数据和目的数据进行正确性比对,以判断数据传输的成功性;例如,DUT解析第一内存中存储的TRB,获得数据传输需求,并根据获得的数据传输需求向Model发起数据传输请求,Model解析第二内存中存储的TRB,获得数据传输需求,并根据获得的数据传输需求响应DUT发起的数据传输请求,在数据传输过程中,根据第一内存对应的随机值和第二内存对应的随机值,对数据传输进行正确性比对,以对待验证模型的数据传输功能进行验证。
本发明实施例所提供的一种外设的验证方法,通过对内存中的数据进行随机初始化,可以实现待测设计和对端模型之间传输数据的随机化,从而提高验证的准确性。
本发明第二方面实施例提供了一种外设验证时的参数配置方法,参见图2所示,是本发明第二方面实施例提供的一种外设验证时的参数配置方法的流程图,该参数配置方法应用于验证平台,验证平台运行有待验证模型,待验证模型包括激励生成器、待测设计和待测设计对应的对端模型,激励生成器与待测设计和对端模型相连,待测设计与对端模型相连;激励生成器用于执行以下操作:
步骤S201、获取待测设计与对端模型之间相关联的配置参数;
步骤S202、根据配置参数对待测设计和对端模型进行统一配置,以生成待测设计的配置序列和对端模型的配置序列;
步骤S203、向待测设计发送待测设计的配置序列,以对待测设计进行配置;
步骤S204、向对端模型发送对端模型的配置序列,以对对端模型进行配置。
本实施例在具体实施时,激励生成器先获取DUT与Model之间相关联的配置参数,再根据获得的配置参数对DUT和Model之间相关联的配置项进行统一配置,生成适用于DUT的配置序列和适用于Model的配置序列,并将适用于DUT的配置序列发送至DUT,以根据适用于DUT的配置序列对DUT所对应的配置项进行配置,以及,将适用于Model的配置序列发送至Model,以根据适用于Model的配置序列对Model所对应的配置项进行配置。
结合图3所示,是本发明第二方面实施例提供的一种激励生成器的一个优选实施例的结构框图,激励生成器根据获得的数据传输时的传输大小、类型等信息,结合由随机通信端点生成器随机生成的通信端点号,分别通过线路22和21传输给DUT配置器后,生成SV语言或者C语言的DUT配置信息,并通过线路26写入DUT配置序列中;在Model端,Model配置器会根据DUT配置器通过线路25传输过来的随机生成的通信端点号(也可以将随机通信端点生成器直接与Model配置器相连)以及通过线路24传输过来的传输大小、类型等信息,生成SV语言的Model配置信息,并通过线路31写入Model配置序列中;与此同时,trb生成器也会根据通过线路23获得的传输大小、类型等信息,结合通过线路32获得的DUT配置信息以及通过线路33获得的Model配置信息,生成DUT以及Model的TRB,并分别通过线路27写入DUT端的Memory0中,以及,通过线路28写入Model端的Memory1中;Mem随机初始化生成器则可以分别通过线路29对Memory0进行初始化操作、通过线路30对Memory1进行初始化操作。
本发明实施例所提供的一种外设验证时的参数配置方法,通过激励生成器对待测设计和对端模型之间相关联的配置项进行统一配置,能够解决待测设计端和对端模型端分开独立配置,容易导致两端配置项不匹配的问题,避免出现两端配置项不匹配的情况,从而降低激励编写难度,减少激励配置的出错概率。
在其中一个可选的实施例中,在待测设计和对端模型配置完成之后,待测设计用于与对端模型进行数据传输,以对待验证模型进行验证。
具体的,结合上述实施例,本实施例在具体实施时,激励生成器先获取DUT与Model之间相关联的配置参数,再根据获得的配置参数对DUT和Model之间相关联的配置项进行统一配置,生成适用于DUT的配置序列和适用于Model的配置序列,并将适用于DUT的配置序列发送至DUT,以根据适用于DUT的配置序列对DUT所对应的配置项进行配置,以及,将适用于Model的配置序列发送至Model,以根据适用于Model的配置序列对Model所对应的配置项进行配置;在DUT和Model均配置完成之后,可以在DUT与Model之间进行数据传输;例如,可以由DUT向Model发起数据传输请求,由Model响应DUT发起的数据传输请求,以对待验证模型的数据传输功能进行验证。
本发明实施例所提供的一种外设验证时的参数配置方法,在对待测设计和对端模型进行统一配置之后,通过数据传输对待验证模型进行验证,能够解决外设验证时,待测设计和对端模型分开独立配置,容易导致两端配置项不匹配的问题。
在其中一个可选的实施例中,验证平台为待验证模型的模块级验证平台,模块级验证平台还包括第一驱动器和第二驱动器,激励生成器通过第一驱动器与待测设计相连,以通过第一驱动器向待测设计发送待测设计的配置序列,激励生成器通过第二驱动器与对端模型相连,以通过第二驱动器向对端模型发送对端模型的配置序列。
具体的,结合上述实施例,在模块级验证环境下,验证平台为待验证模型的模块级验证平台,模块级验证平台还包括第一驱动器和第二驱动器,第一驱动器用于将激励生成器生成的DUT的配置序列发送至DUT,第二驱动器用于将激励生成器生成的Model的配置序列发送至Model。
结合图4所示,是本发明第二方面实施例提供的一种待验证模型的模块级验证平台的结构框图,模块级验证环境主要由5部分组成:激励生成器、DUT、DUT配置模块1、Model以及Model配置模块2,其中,DUT配置模块1中包括第一驱动器Driver0,Model配置模块2中包括第二驱动器Driver,激励生成器通过线路12与Driver0相连,Driver0通过线路13与DUT相连,激励生成器通过Driver0与DUT相连,则,Driver0将激励生成器生成的DUT的配置序列按照DUT配置接口时序依次发送到DUT的配置接口上,以完成DUT的配置;激励生成器通过线路16与Driver相连,Driver通过线路17与Model相连,激励生成器通过Driver与Model相连,则,Driver将激励生成器生成的Model的配置序列按照Model配置接口时序依次发送到Model的配置接口上,以完成Model的配置。
结合上述实施例和图4,本实施例在具体实施时,在模块级验证环境下,激励生成器先获取DUT与Model之间相关联的配置参数,再根据获得的配置参数对DUT和Model之间相关联的配置项进行统一配置,生成适用于DUT的SV语言描述的第一配置序列和适用于Model的配置序列;激励生成器将适用于DUT的SV语言描述的第一配置序列通过线路12发送至Driver0,Driver0再将适用于DUT的SV语言描述的第一配置序列通过线路12发送至DUT,以根据适用于DUT的SV语言描述的第一配置序列对DUT所对应的配置项进行配置;激励生成器将适用于Model的配置序列通过线路16发送至Driver,Driver再将适用于Model的配置序列通过线路17发送至Model,以根据适用于Model的配置序列对Model所对应的配置项进行配置;在DUT和Model均配置完成之后,可以在DUT与Model之间通过线路19进行数据传输;例如,可以由DUT向Model发起数据传输请求,由Model响应DUT发起的数据传输请求,以对待验证模型的数据传输功能进行验证。
本发明实施例所提供的一种外设验证时的参数配置方法,通过使用驱动器,能够将激励生成器生成的配置序列分别发送到对应的配置接口上,以分别完成待测设计的配置和对端模型的配置。
在其中一个可选的实施例中,验证平台为待验证模型的系统级验证平台,系统级验证平台还包括处理器核、片上网络以及驱动器,激励生成器通过处理器核和片上网络与待测设计相连,以通过处理器核和片上网络向待测设计发送待测设计的配置序列,激励生成器通过驱动器与对端模型相连,以通过驱动器向对端模型发送对端模型的配置序列。
具体的,结合上述实施例,在系统级验证环境下,验证平台为待验证模型的系统级验证平台,系统级验证平台还包括处理器核、片上网络以及驱动器,处理器核和片上网络用于将激励生成器生成的DUT的配置序列发送至DUT,驱动器用于将激励生成器生成的Model的配置序列发送至Model。
结合图5所示,是本发明第二方面实施例提供的一种系统级验证平台的结构框图,系统级验证环境主要由5部分组成:激励生成器、DUT、DUT配置模块1、Model以及Model配置模块2,其中,DUT配置模块1中包括处理器核和片上网络,Model配置模块2中包括驱动器Driver,激励生成器通过线路11与处理器核相连,处理器核通过线路12与片上网络相连,片上网络通过线路13与DUT相连,激励生成器依次通过处理器核和片上网络与DUT相连,则,处理器核通过网络将激励生成器生成的DUT的配置序列按照DUT配置接口时序依次发送到DUT的配置接口上,以完成DUT的配置;激励生成器通过线路17与Driver相连,Driver通过线路18与Model相连,激励生成器通过Driver与Model相连,则,Driver将激励生成器生成的Model的配置序列按照Model配置接口时序依次发送到Model的配置接口上,以完成Model的配置。
结合上述实施例和图5,本实施例在具体实施时,在系统级验证环境下,激励生成器先获取DUT与Model之间相关联的配置参数,再根据获得的配置参数对DUT和Model之间相关联的配置项进行统一配置,生成适用于DUT的C语言描述的第二配置序列和适用于Model的配置序列;激励生成器将适用于DUT的C语言描述的第二配置序列通过线路11发送至处理器核,处理器核再依次通过线路12、片上网络和线路13,将适用于DUT的C语言描述的第二配置序列发送至DUT,以根据适用于DUT的C语言描述的第二配置序列对DUT所对应的配置项进行配置;激励生成器将适用于Model的配置序列通过线路17发送至Driver,Driver再将适用于Model的配置序列通过线路18发送至Model,以根据适用于Model的配置序列对Model所对应的配置项进行配置;在DUT和Model均配置完成之后,可以在DUT与Model之间通过线路20进行数据传输;例如,可以由DUT向Model发起数据传输请求,由Model响应DUT发起的数据传输请求,以对待验证模型的数据传输功能进行验证。
本发明实施例所提供的一种外设验证时的参数配置方法,通过使用处理器核、片上网络和驱动器,能够将激励生成器生成的配置序列分别发送到对应的配置接口上,以分别完成待测设计的配置和对端模型的配置。
在其中一个可选的实施例中,验证平台还包括第一存储器和第二存储器,激励生成器通过第一存储器与待测设计相连,激励生成器通过第二存储器与对端模型相连;激励生成器还用于执行以下操作:
根据配置参数以及待测设计的配置序列,生成待测设计的传输请求块;
将待测设计的传输请求块存储至第一存储器;
根据配置参数以及对端模型的配置序列,生成对端模型的传输请求块;
将对端模型的传输请求块存储至第二存储器。
具体的,结合上述实施例,验证平台还包括第一存储器和第二存储器,第一存储器用于存储DUT的数据,主要包括DUT接收到的由Model传输过来的数据和DUT需要向Model传输的数据,第二存储器用于存储Model的数据,主要包括Model需要向DUT传输的数据和Model接收到的由DUT传输过来的数据;相应的,激励生成器可以根据获得的配置参数以及生成的DUT的配置序列,对应生成适用于DUT的TRB,并将适用于DUT的TRB存储至第一存储器,同理,可以根据获得的配置参数以及生成的Model的配置序列,对应生成适用于Model的TRB,并将适用于Model的TRB存储至第二存储器。
结合图4所示,模块级验证环境主要由5部分组成:激励生成器、DUT、DUT配置模块1、Model以及Model配置模块2,其中,DUT配置模块1中包括第一驱动器Driver0和第一存储器Memory0,Model配置模块2中包括第二驱动器Driver和第二存储器Memory1;激励生成器通过线路12与Driver0相连,Driver0通过线路13与DUT相连,激励生成器通过Driver0与DUT相连,则,Driver0将激励生成器生成的DUT的配置序列按照DUT配置接口时序依次发送到DUT的配置接口上,以完成DUT的配置;激励生成器通过线路11与Memory0相连,Memory0通过线路14与DUT相连,激励生成器通过Memory0与DUT相连,则,激励生成器可以将DUT的TRB写入到Memory0中,Memory0用于存储DUT的TRB以及需要搬移到Model或者从Model中搬过来的数据;激励生成器通过线路16与Driver相连,Driver通过线路17与Model相连,激励生成器通过Driver与Model相连,则,Driver将激励生成器生成的Model的配置序列按照Model配置接口时序依次发送到Model的配置接口上,以完成Model的配置;激励生成器通过线路15与Memory1相连,Memory1通过线路18与Model相连,激励生成器通过Memory1与Model相连,则,激励生成器可以将Model的TRB写入到Memory1中,Memory1用于存储Model的TRB以及需要搬移到DUT或者从DUT中搬过来的数据。
结合上述实施例和图4,本实施例在具体实施时,在模块级验证环境下,激励生成器先获取DUT与Model之间相关联的配置参数,再根据获得的配置参数对DUT和Model之间相关联的配置项进行统一配置,生成适用于DUT的SV语言描述的第一配置序列和适用于Model的配置序列,以及,根据获得的配置参数和生成的适用于DUT的SV语言描述的第一配置序列,对应生成适用于DUT的SV语言描述的第一TRB,并将适用于DUT的SV语言描述的第一TRB通过线路11存储至Memory0,同时,根据获得的配置参数和生成的Model的配置序列,对应生成适用于Model的TRB,并将适用于Model的TRB通过线路15存储至Memory1;激励生成器将适用于DUT的SV语言描述的第一配置序列通过线路12发送至Driver0,Driver0再将适用于DUT的SV语言描述的第一配置序列通过线路12发送至DUT,以根据适用于DUT的SV语言描述的第一配置序列对DUT所对应的配置项进行配置;激励生成器将适用于Model的配置序列通过线路16发送至Driver,Driver再将适用于Model的配置序列通过线路17发送至Model,以根据适用于Model的配置序列对Model所对应的配置项进行配置;在DUT和Model均配置完成之后,可以利用Memory0中存储的适用于DUT的SV语言描述的第一TRB以及Memory1中存储的适用于Model的TRB,在DUT与Model之间通过线路19进行数据传输;例如,DUT解析Memory0中存储的SV语言描述的第一TRB,获得数据传输需求,并根据获得的数据传输需求通过线路19向Model发起数据传输请求,Model解析Memory1中存储的TRB,获得数据传输需求,并根据获得的数据传输需求响应DUT发起的数据传输请求,以对待验证模型的数据传输功能进行验证。
结合图5所示,系统级验证环境主要由5部分组成:激励生成器、DUT、DUT配置模块1、Model以及Model配置模块2,其中,DUT配置模块1中包括处理器核、片上网络和第一存储器Memory0,Model配置模块2中包括驱动器Driver和第二存储器Memory1;激励生成器通过线路11与处理器核相连,处理器核通过线路12与片上网络相连,片上网络通过线路13与DUT相连,激励生成器依次通过处理器核和片上网络与DUT相连,则,处理器核通过网络将激励生成器生成的DUT的配置序列按照DUT配置接口时序依次发送到DUT的配置接口上,以完成DUT的配置;片上网络还通过线路14与Memory0相连,Memory0与DUT之间可以借助片上网络通过线路15相连,则,激励生成器可以通过处理器核和网络,将DUT的TRB写入到Memory0中,Memory0用于存储DUT的TRB以及需要搬移到Model或者从Model中搬过来的数据;激励生成器通过线路17与Driver相连,Driver通过线路18与Model相连,激励生成器通过Driver与Model相连,则,Driver将激励生成器生成的Model的配置序列按照Model配置接口时序依次发送到Model的配置接口上,以完成Model的配置;激励生成器通过线路16与Memory1相连,Memory1通过线路19与Model相连,激励生成器通过Memory1与Model相连,则,激励生成器可以将Model的TRB写入到Memory1中,Memory1用于存储Model的TRB以及需要搬移到DUT或者从DUT中搬过来的数据。
结合上述实施例和图5,本实施例在具体实施时,在系统级验证环境下,激励生成器先获取DUT与Model之间相关联的配置参数,再根据获得的配置参数对DUT和Model之间相关联的配置项进行统一配置,生成适用于DUT的C语言描述的第二配置序列和适用于Model的配置序列,以及,根据获得的配置参数和生成的适用于DUT的C语言描述的第二配置序列,对应生成适用于DUT的C语言描述的第二TRB,并将适用于DUT的C语言描述的第二TRB依次通过线路11、处理器核、线路12、片上网络、线路14存储至Memory0,同时,根据获得的配置参数和生成的Model的配置序列,对应生成适用于Model的TRB,并将适用于Model的TRB通过线路16存储至Memory1;激励生成器将适用于DUT的C语言描述的第二配置序列依次通过线路11、处理器核、线路12、片上网络和线路13,将适用于DUT的C语言描述的第二配置序列发送至DUT,以根据适用于DUT的C语言描述的第二配置序列对DUT所对应的配置项进行配置;激励生成器将适用于Model的配置序列通过线路17发送至Driver,Driver再将适用于Model的配置序列通过线路18发送至Model,以根据适用于Model的配置序列对Model所对应的配置项进行配置;在DUT和Model均配置完成之后,可以利用Memory0中存储的适用于DUT的C语言描述的第二TRB以及Memory1中存储的适用于Model的TRB,在DUT与Model之间通过线路20进行数据传输;例如,DUT解析Memory0中存储的C语言描述的第二TRB,获得数据传输需求,并根据获得的数据传输需求通过线路20向Model发起数据传输请求,Model解析Memory1中存储的TRB,获得数据传输需求,并根据获得的数据传输需求响应DUT发起的数据传输请求,以对待验证模型的数据传输功能进行验证。
本发明实施例所提供的一种外设验证时的参数配置方法,根据统一生成的配置序列统一生成待测设计的传输请求块和对端模型的传输请求块,基于统一生成的传输请求块,可以实现待测设计和对端模型之间传输数据长度一致,还可以避免配置不一致的问题。
需要说明的是,结合图4和图5所示,验证环境中的DUT端和Model端都有各自的配置模块,在DUT端和Model端的配置模块之外,还有一个激励生成器,验证环境通过激励生成器统筹控制DUT端和Model端的激励以及存储器中的数据,同时,激励生成器还可以对验证环境中DUT端的Memory0和Model端的Memory1进行初始化操作。
可以理解的,本发明实施例的使用场景主要为使用IP对接(指DUT端和Model端都使用同一个IP实现,只是两端IP配置的角色不一样)的通用外设的部件级和裸机系统级验证,其中,图4所示的验证框图适用于基于UVM(Universal Verification Methodology,通用验证方法学)的模块级验证环境,图5所示的验证框图适用于带有处理器核的裸机系统级验证环境,不同的验证环境的区别就在于激励生成器生成的配置序列以及TRB的编程语言使用上,无论是模块级验证环境,还是裸机系统级验证环境,本发明实施例通过合理生成DUT端和Model端的配置序列,贴合DUT端和Model端的耦合要求,能够减少验证环境调试难度,加速验证覆盖率收敛。
结合上述所有实施例及图3和图4,下面以USB验证为例,通过一个具体实施例来描述本方案的模块级验证的实施过程,包括:
S10、验证人员根据验证目的,输入预期激励的传输大小和传输类型,例如,发起1个传输类型为iso,传输大小为10KB的传输;
S11、激励生成器的随机通信端点生成器随机出一组通信端点号,指明本次验证过程中,DUT端的DUT使用的通信端点号以及用于与DUT通信的Model的通信端点号;
S12、Mem随机初始化生成器初始化DUT端的Memory0以及Model端的Memory1为随机值;
S13、DUT配置器根据S10获得的传输大小和传输类型、S11获得的DUT的通信端点号和Model的通信端点号,结合DUT配置器中设定的寄存器配置组合,选定DUT的通信端点号对应的寄存器组进行配置(与具体DUT的寄存器实现有关,比如端点M,有一组寄存器,用于配置这个端点M的类型、与这个端点M通信的端点号等信息),生成DUT配置寄存器序列(包含DUT端的配置信息),并通过脚本转化成SV语言的DUT的配置序列;
S14、Model配置器根据S10获得的传输大小和传输类型、S11获得的Model的通信端点号,结合Model配置器中设定的寄存器配置组合,选定Model的通信端点号对应的寄存器组进行配置(与具体Model的寄存器实现有关,比如端点N,有一组寄存器,用于配置这个端点N的类型、与这个端点N通信的端点号等信息),生成Model配置寄存器序列(包含Model端的配置信息),并通过脚本转化成SV语言的Model的配置序列;
S15、trb生成器根据S10获得的传输大小和传输类型,结合USB的TRB结构,以及DUT配置器生成的DUT端的TRB存放地址,相应生成DUT端的TRB列表存放到虚拟seq中,直接写到DUT端的Memory0中的TRB存放地址对应处;
S16、trb生成器根据S10获得的传输大小和传输类型,结合USB的TRB结构,以及Model配置器生成的Model端的TRB存放地址,相应生成Model端的TRB列表存放到虚拟seq中,直接写到Model端的Memory1中的TRB存放地址对应处;
S17、激励运行时,由S13生成的DUT的配置序列通过UVM验证中的DUT端的Driver0顺序传输给DUT;由S14生成的Model的配置序列通过UVM验证中的Model端的Driver顺序传输给Model;其中,若是激励未运行,时钟不会跳变,接口信号不会跳变,进一步的,激励未运行时UVM平台会报错;
S18、DUT端的Driver0将激励生成器生成的DUT的配置序列驱动给DUT,DUT开始运转,根据配置信息从Memory0中获取TRB并解析,TRB中会指定需要从哪个地址搬移多大的数据,DUT解析TRB后就会获得这些信息,并开始进行数据搬移;其中,在获取TRB时,可以发起一个dma读,去访问Memory0中存放TRB的地址,读回来的数据即为TRB;在解析TRB时,可以根据TRB的格式,来获取TRB中所包含的有效信息;
S19、Model端的Driver将激励生成器生成的Model的配置序列驱动给Model,Model开始运转,根据配置信息从Memory1中获取TRB并解析,响应DUT端发起的数据搬移请求;其中,在获取TRB时,可以发起一个dma读,去访问Memory1中存放TRB的地址,读回来的数据即为TRB;在解析TRB时,可以根据TRB的格式,来获取TRB中所包含的有效信息。
需要说明的是,在S15和S16中,TRB的结构是固定的,用一个脚本将需要的信息都填充到对应的域段即可,例如,将传输大小填到TRB的传输大小域段;
DUT端的TRB存放地址是存储在寄存器中的,这些寄存器在S13的寄存器配置组合内,对应的就是Memory0内的地址,生成方式可以随机也可以指定,只要在Memory0的地址范围内就行,本发明实施例不作具体限定;
同理,Model端的TRB存放地址是存储在寄存器中的,这些寄存器在S14的寄存器配置组合内,对应的就是Memory1内的地址,生成方式可以随机也可以指定,只要在Memory1的地址范围内就行,本发明实施例不作具体限定;
TRB列表就是多个TRB的组合,由于每个传输类型都有传输大小的限制,对于一些传输请求,需要把请求拆分成多个传输进行,也就需要多个TRB;在实际进行数据搬移之外,还涉及到读取设备信息、分配设备地址等等操作,这也是通过传输实现的,都需要对应的TRB;以上这些TRB都是TRB列表的一部分;
虚拟seq是UVM中的一个概念,主要用于管控DUT端和Model端的seq,在虚拟seq中,可以指向到DUT端的接口,也可以指向到Model端的接口,将TRB列表存放在虚拟seq中就不需要再额外调用一次,若是不放在虚拟seq中,则需要先单独写一个seq用于存放TRB列表,再在虚拟seq中调用这个存放TRB列表的seq。
结合上述所有实施例及图3和图5,下面以USB验证为例,通过一个具体实施例来描述本方案的裸机系统级验证的实施过程,包括:
S20、验证人员根据验证目的,输入预期激励的传输大小和传输类型,例如,发起1个传输类型为iso,传输大小为10KB的传输;
S21、激励生成器的随机通信端点生成器随机出一组通信端点号,指明本次验证过程中,DUT端使用的通信端点号以及用于与DUT通信的Model的通信端点号;
S22、Mem随机初始化生成器初始化DUT端的Memory0以及Model端的Memory1为随机值;
S23、DUT配置器根据S20获得的传输大小和传输类型、S21获得的DUT的通信端点号和Model的通信端点号,结合DUT配置器中设定的寄存器配置组合,选定DUT的通信端点号对应的寄存器组进行配置,生成DUT配置寄存器序列,并通过脚本转化成C语言的DUT端的裸机系统级激励,即,C语言的DUT的配置序列(由于DUT端已经带上了真正的处理器核和网络,模拟真实的芯片流程,而不是从接口灌激励,因此,需要转换成C语言);
S24、Model配置器根据S20获得的传输大小和传输类型、S21获得的Model的通信端点号,结合Model配置器中设定的寄存器配置组合,选定Model的通信端点号对应的寄存器组进行配置,生成Model配置寄存器序列,并转化成SV语言的Model的配置序列(由于Model端还是基于UVM平台,直接从接口上灌激励,因此,不需要转换成C语言);
S25、trb生成器根据S20获得的传输大小和传输类型,结合USB的TRB结构,以及DUT配置器生成的DUT端的TRB存放地址,相应生成DUT端的TRB列表(由于裸机系统级是在模拟真实的芯片运转流程,DUT端的行为已经不受虚拟seq管控,因此,不需要将TRB列表存放到虚拟seq中),并转换成C语言的TRB序列,写到DUT端的裸机系统级激励中;
S26、trb生成器根据S20获得的传输大小和传输类型,结合USB的TRB结构,以及Model配置器生成的Model端的TRB存放地址,生成Model端的TRB列表存放到虚拟seq中,直接写到Model端Memory1中的TRB存放地址对应处;
S27、激励运行时,S23生成的DUT的配置序列通过DUT端的处理器核和网络顺序传输给DUT;S24生成的Model的配置序列通过UVM验证中Model端的Driver顺序传输给Model;
S28、DUT开始运转,根据配置信息从Memory0中获取TRB并解析,开始进行数据搬移;
S29、Model端的Driver将激励生成器生成的Model的配置序列驱动给Model,Model开始运转,根据配置信息从Memory0中获取TRB并解析,响应DUT端发起的数据搬移请求。
结合上述所有实施例,本方案中只有一个激励生成器,在激励生成器内部根据一定规则生成DUT端和Model端的激励,完成对DUT和Model的联合配置,确保DUT端和Model端对于传输大小、类型等的配置一致,并且还可以做到通信端点的随机测试;进一步的,通过trb生成器,可以同时对DUT端和Model端进行TRB生成,保证了两端传输长度的一致,避免了配置不一致导致的传输失败问题的出现;进一步的,通过mem随机初始化生成器,可以对验证环境中DUT端的Memory0和Model端的Memory1进行随机初始化,可以做到传输数据的随机。
可以理解的,本方案不需要针对DUT和Model进行所有通信端点号、buf类型等的一一配置和覆盖,只需要打开这些变量的随机开关,多次重复执行同一个testcase,就能触碰到这些变量的不同取值覆盖,并且通过对验证环境中DUT端的Memory0和Model端的Memory1的随机初始化,可以提供搬移数据的随机化测试。
其中,以USB为例,buf类型是指USB的主控制器中用于缓存数据的buf的方向,以及单buf还是双buf等,以方向为IN(DUT是HOST,数据从Model端搬到DUT端)的传输为例,若是单buf,则需要等buf中的数据全部搬走(搬到DUT端所在系统的存储中)后才能发起下一次传输,若是双buf,则可以在一个buf填满后继续进行第二次传输(传输的新数据存放在另一个buf中),在进行第二次传输的过程中,搬移填满的这一个buf中的数据到对应的存储中。
本发明第三方面实施例还提供了一种外设的验证装置,包括:
存储器,用于存储程序;
处理器,用于从存储器中调用程序,以使验证装置执行上述第一方面任一实施例所述的外设的验证方法。
本发明第四方面实施例还提供了一种外设验证时的参数配置装置,包括:
存储器,用于存储程序;
处理器,用于从存储器中调用程序,以使参数配置装置执行上述第二方面任一实施例所述的外设验证时的参数配置方法。
需要说明的是,存储器中存储的程序可以被分割成一个或多个模块/单元(如计算机程序1、计算机程序2、……),一个或者多个模块/单元被存储在存储器中,并由处理器执行,以完成本发明;一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述程序在装置中的执行过程。
存储器主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需的应用程序等,数据存储区可存储相关数据等,此外,存储器可以是高速随机存取存储器,还可以是非易失性存储器,例如插接式硬盘、智能存储卡(Smart MediaCard,SMC)、安全数字(Secure Digital,SD)卡和闪存卡(Flash Card)等,或者,存储器也可以是其他易失性固态存储器件。
需要说明的是,处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,通用处理器可以是微处理器,或者,处理器也可以是任何常规的处理器,处理器是装置的控制中心,利用各种接口和线路连接装置的各个部分。
可以理解的,上述验证装置和参数配置装置可以包括,但不仅限于处理器、存储器,上述内容仅仅是上述验证装置和参数配置装置的结构示例,并不构成对上述验证装置和参数配置装置的结构限定。
本发明第五方面实施例还提供了一种计算机可读存储介质,其上存储有程序,程序在被调用时使得计算机执行上述第一方面任一实施例所述的外设的验证方法。
本发明第六方面实施例还提供了一种计算机可读存储介质,其上存储有程序,程序在被调用时使得计算机执行上述第二方面任一实施例所述的外设验证时的参数配置方法。
需要说明的是,上述计算机可读存储介质可以是前述实施例的装置的内部存储单元,例如硬盘或内存。上述计算机可读存储介质也可以是前述实施例的装置的外部存储设备,例如配备的插接式硬盘,智能存储卡,安全数字卡,闪存卡等。进一步地,上述计算机可读存储介质还可以既包括上述装置的内部存储单元也包括外部存储设备。上述计算机可读存储介质用于存储上述程序以及上述装置所需的其他程序和数据。上述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分流程,可通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程,而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可存储程序代码的介质。
综上,本发明实施例所提供的一种外设的验证方法、外设验证时的参数配置方法、装置及计算机可读存储介质,能够解决以下技术问题:
(1)本发明实施例可以解决DUT端和模型端分开独立配置,容易导致两端配置项不匹配的问题。为了解决这一技术问题,本发明实施例通过在验证环境中对DUT端和Model端的配置流程进行固化提取,使用激励生成器生成对应配置项的配置序列,对DUT端和Model端相关联的配置项进行统一配置,能够避免出现DUT端和Model端配置项不匹配的情况,从而降低激励编写难度,减少激励配置出错概率。
(2)现有技术对于外设都是进行定向配置,不同端点、不同传输类型都只能通过增加定向激励来进行测试,无法做到配置项的随机测试,并且增加覆盖验证场景必须要重新编写对应测试场景的激励,导致验证收敛慢、成本高,本发明实施例可以解决这类外设验证激励都为定向激励,没有随机,要进行功能点覆盖需要编写多个激励的问题。为了解决这一技术问题,本发明实施例在验证环境中调用激励生成器生成激励时,对于可以约束随机的配置部分,使用随机约束函数,产生一定范围内的随机,并根据随机结果对DUT端和Model端的不同配置寄存器进行关联配置,再将配置序列传递给对应端的激励,通过在验证环境中引入了随机激励,能够避免通过定向激励进行测试时导致的需要编写大量激励的问题,达到了降低编写激励的成本的效果,并且增大了测试场景能覆盖的范围,加速了覆盖率的收敛。
(3)在进行裸机系统级验证时,因为部件级验证环境是从总线接口上发送激励,而裸机系统级验证环境需要从处理器核发送激励,并且两个验证环境所使用的激励语言不一致,系统级验证不能复用模块级验证时的激励,需要重新对DUT端和Model端的配置项进行配置,费事费力且容易出现DUT端和Model端的配置项不匹配的情况,并且在当前技术下,裸机系统级进行数据传输的随机验证,即使借助于第三方工具的激励生成,对于DUT端的配置项的随机也是毫无办法,本发明实施例可以解决将激励从模块级迁移到系统级时,系统级又需要用新的语言对DUT端激励进行配置,导致工作量大、容易出现配置不匹配的现象,并且难以做到数据随机的问题。为了解决这一技术问题,本发明实施例通过在激励生成器中增加生成C语言配置序列的代码,使用不同的函数将TRB和配置项写入到不同的地方,在裸机系统级的验证环境中调用激励生成器生成C语言的内容即可,既避免了从SV语言到C语言的转换,减少了验证人员的工作量,也避免了转换过程的各种因素导致的DUT端和Model端的配置项不匹配的现象出现,从而降低调试难度,还可以在裸机系统级验证环境中加入配置通路和数据通路的随机测试场景。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (17)
1.一种外设的验证方法,其特征在于,所述方法应用于验证平台,所述验证平台运行有待验证模型,所述待验证模型包括待测设计和所述待测设计对应的对端模型,所述方法包括:
获取所述待测设计与所述对端模型之间相关联的配置参数;
根据所述配置参数对所述待测设计和所述对端模型进行统一配置,以生成所述待测设计的配置序列和所述对端模型的配置序列;
向所述待测设计发送所述待测设计的配置序列,以对所述待测设计进行配置;
向所述对端模型发送所述对端模型的配置序列,以对所述对端模型进行配置;
在所述待测设计和所述对端模型配置完成之后,在所述待测设计与所述对端模型之间进行数据传输,以对所述待验证模型进行验证。
2.如权利要求1所述的外设的验证方法,其特征在于,所述配置参数包括可随机约束的至少一种参数,所述获取所述待测设计与所述对端模型之间相关联的配置参数,包括:
基于随机生成器,通过随机约束函数,确定所述至少一种参数的取值。
3.如权利要求2所述的外设的验证方法,其特征在于,所述至少一种参数包括以下参数中的一种或多种:
所述待测设计的通信端点号;
所述对端模型的通信端点号;
所述待测设计和所述对端模型之间的数据传输长度;
所述待测设计和所述对端模型之间的数据传输类型;以及
所述待测设计和所述对端模型之间的数据传输方向。
4.如权利要求1所述的外设的验证方法,其特征在于,所述待测设计的配置序列包括第一配置序列和第二配置序列,所述第一配置序列为基于第一编程语言描述的配置序列,所述第二配置序列为基于第二编程语言描述的配置序列,所述第一编程语言为所述待测设计的模块级验证环境所使用的编程语言,所述第二编程语言为所述待测设计的系统级验证环境所使用的编程语言。
5.如权利要求1所述的外设的验证方法,其特征在于,所述验证平台还包括第一内存和第二内存,所述第一内存用于存储所述待测设计接收到的所述对端模型传输过来的数据和所述待测设计需要向所述对端模型传输的数据,所述第二内存用于存储所述对端模型需要向所述待测设计传输的数据和所述对端模型接收到的所述待测设计传输过来的数据,所述方法还包括:
根据所述配置参数以及所述待测设计的配置序列,生成所述待测设计的传输请求块;
将所述待测设计的传输请求块存储至所述第一内存;
根据所述配置参数以及所述对端模型的配置序列,生成所述对端模型的传输请求块;
将所述对端模型的传输请求块存储至所述第二内存。
6.如权利要求5所述的外设的验证方法,其特征在于,所述待测设计的传输请求块包括第一传输请求块和第二传输请求块,所述第一传输请求块为基于第一编程语言描述的传输请求块,所述第二传输请求块为基于第二编程语言描述的传输请求块,所述第一编程语言为所述待测设计的模块级验证环境所使用的编程语言,所述第二编程语言为所述待测设计的系统级验证环境所使用的编程语言。
7.如权利要求5所述的外设的验证方法,其特征在于,所述方法还包括:
对所述第一内存中存储的数据和所述第二内存中存储的数据进行随机初始化。
8.如权利要求4或6所述的外设的验证方法,其特征在于,所述第一编程语言为SV语言,所述第二编程语言为C语言。
9.一种外设验证时的参数配置方法,其特征在于,所述方法应用于验证平台,所述验证平台运行有待验证模型,所述待验证模型包括激励生成器、待测设计和所述待测设计对应的对端模型,所述激励生成器与所述待测设计和所述对端模型相连,所述待测设计与所述对端模型相连;所述激励生成器用于执行以下操作:
获取所述待测设计与所述对端模型之间相关联的配置参数;
根据所述配置参数对所述待测设计和所述对端模型进行统一配置,以生成所述待测设计的配置序列和所述对端模型的配置序列;
向所述待测设计发送所述待测设计的配置序列,以对所述待测设计进行配置;
向所述对端模型发送所述对端模型的配置序列,以对所述对端模型进行配置。
10.如权利要求9所述的外设验证时的参数配置方法,其特征在于,在所述待测设计和所述对端模型配置完成之后,所述待测设计用于与所述对端模型进行数据传输,以对所述待验证模型进行验证。
11.如权利要求9所述的外设验证时的参数配置方法,其特征在于,所述验证平台为所述待验证模型的模块级验证平台,所述模块级验证平台还包括第一驱动器和第二驱动器,所述激励生成器通过所述第一驱动器与所述待测设计相连,以通过所述第一驱动器向所述待测设计发送所述待测设计的配置序列,所述激励生成器通过所述第二驱动器与所述对端模型相连,以通过所述第二驱动器向所述对端模型发送所述对端模型的配置序列。
12.如权利要求9所述的外设验证时的参数配置方法,其特征在于,所述验证平台为所述待验证模型的系统级验证平台,所述系统级验证平台还包括处理器核、片上网络以及驱动器,所述激励生成器通过所述处理器核和所述片上网络与所述待测设计相连,以通过所述处理器核和所述片上网络向所述待测设计发送所述待测设计的配置序列,所述激励生成器通过所述驱动器与所述对端模型相连,以通过所述驱动器向所述对端模型发送所述对端模型的配置序列。
13.如权利要求9所述的外设验证时的参数配置方法,其特征在于,所述验证平台还包括第一存储器和第二存储器,所述激励生成器通过所述第一存储器与所述待测设计相连,所述激励生成器通过所述第二存储器与所述对端模型相连;所述激励生成器还用于执行以下操作:
根据所述配置参数以及所述待测设计的配置序列,生成所述待测设计的传输请求块;
将所述待测设计的传输请求块存储至所述第一存储器;
根据所述配置参数以及所述对端模型的配置序列,生成所述对端模型的传输请求块;
将所述对端模型的传输请求块存储至所述第二存储器。
14.一种外设的验证装置,其特征在于,包括:
存储器,用于存储程序;
处理器,用于从所述存储器中调用程序,以使所述验证装置执行如权利要求1~8中任一项所述的外设的验证方法。
15.一种外设验证时的参数配置装置,其特征在于,包括:
存储器,用于存储程序;
处理器,用于从所述存储器中调用程序,以使所述参数配置装置执行如权利要求9~13中任一项所述的外设验证时的参数配置方法。
16.一种计算机可读存储介质,其特征在于,其上存储有程序,所述程序在被调用时使得计算机执行如权利要求1~8中任一项所述的外设的验证方法。
17.一种计算机可读存储介质,其特征在于,其上存储有程序,所述程序在被调用时使得计算机执行如权利要求9~13中任一项所述的外设验证时的参数配置方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311515036.9A CN117494629A (zh) | 2023-11-14 | 2023-11-14 | 一种外设的验证方法、外设验证时的参数配置方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311515036.9A CN117494629A (zh) | 2023-11-14 | 2023-11-14 | 一种外设的验证方法、外设验证时的参数配置方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117494629A true CN117494629A (zh) | 2024-02-02 |
Family
ID=89667257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311515036.9A Pending CN117494629A (zh) | 2023-11-14 | 2023-11-14 | 一种外设的验证方法、外设验证时的参数配置方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117494629A (zh) |
-
2023
- 2023-11-14 CN CN202311515036.9A patent/CN117494629A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107704346B (zh) | Soc芯片调试方法及调试系统 | |
CN112286746B (zh) | 针对axi从设备接口的通用验证平台及方法 | |
CN116028292B (zh) | 用于远程直接内存访问仿真验证的仿真验证系统及方法 | |
CN109783340B (zh) | SoC的测试代码烧写方法、IP测试方法及装置 | |
CN113270137B (zh) | 一种基于fpga嵌入式软核的ddr2测试方法 | |
CN114444422A (zh) | 芯片验证系统、方法及存储介质 | |
CN113364747B (zh) | 调试方法、装置、系统及数据集生成方法、装置 | |
WO2014000299A1 (zh) | 串口重定向处理方法、设备和系统 | |
CN113326670A (zh) | 原型验证系统、方法、处理单元、及设备 | |
CN110968004B (zh) | 一种基于FPGA原型验证开发板的Cable测试系统 | |
CN117494629A (zh) | 一种外设的验证方法、外设验证时的参数配置方法及装置 | |
CN116306479A (zh) | 基于uvm的以太网phy通用验证平台及验证方法 | |
CN107885674B (zh) | 蓝牙设备模拟器及其工作方法、蓝牙设备作业系统 | |
CN113535578B (zh) | 一种cts测试方法、装置及测试设备 | |
CN112363975B (zh) | 组态软件与fpga的交互方法及交互系统 | |
CN111770074B (zh) | 数据通路测试报文生成装置与方法 | |
CN111371799B (zh) | Mctp控制器收发数据的控制方法、装置及设备 | |
CN111722858A (zh) | 在线升级方法及终端设备 | |
CN117194135A (zh) | 通用异步收发传输器的验证方法、系统及计算机设备 | |
CN112257381B (zh) | 一种AXI Crossbar设计电路验证方法和系统 | |
CN117112447B (zh) | 一种数据传输方法、装置、电子设备及可读存储介质 | |
CN112987690B (zh) | 一种espi控制器验证系统及方法 | |
CN114444423B (zh) | 基于验证平台的数据处理方法、系统及电子设备 | |
CN117131821B (zh) | 芯片验证方法、装置、电子设备及存储介质 | |
CN117376229B (zh) | 基于嵌入式设备的ftp文件系统软件交叉调试方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |