CN105320593A - 多路帧随机数据验证处理方法及装置 - Google Patents
多路帧随机数据验证处理方法及装置 Download PDFInfo
- Publication number
- CN105320593A CN105320593A CN201410366799.6A CN201410366799A CN105320593A CN 105320593 A CN105320593 A CN 105320593A CN 201410366799 A CN201410366799 A CN 201410366799A CN 105320593 A CN105320593 A CN 105320593A
- Authority
- CN
- China
- Prior art keywords
- assembly
- data
- frame
- multichannel
- random data
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Time-Division Multiplex Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种多路帧随机数据验证处理方法包括搭建通用验证平台;transaction组件获取目标验证数据包中每一数据包的包结构信息;sequence组件根据每一数据包的包结构信息生成随机数,形成帧数据;sequencer组件发送帧数据至driver组件;driver组件将接收到的当前帧数据进行随机数抓取处理,得到多路随机数据;并将多路随机数据一一对应赋值给预置临时变量后,将预置临时变量赋值到被调用任务的赋值语句中;monitor组件检测待验证模块输出的检测数据信息;scoreboard组件对monitor组件检测获得的检测数据信息进行验证处理。本发明还公开了一种多路帧随机数据验证处理装置。
Description
技术领域
本发明涉及通讯技术领域,尤其涉及多路帧随机数据验证处理方法及装置。
背景技术
在ASIC芯片设计和FPGA设计中,一般会先按照需求制定设计说明书。逻辑工程师们再按照设计说明书把这些具体的需求翻译成verilog代码。在翻译成verilog代码的过程中,会由于各种原因导致写的verilog代码存在功能性的错误。在这种情况之下,通过逻辑验证来定位并改正设计中的错误成为了保证设计功能正确的一种必要手段。在传统验证方式不断发展的背景下,OVM(OpenVerificationMethodology)、VMM(VerificationMethodologyManual)、UVM(UniversalVerificationMethodology)验证方法学的出现极大地提升了验证效率。UVM(通用验证方法学,UniversalVerificationMethodology),是基于OVM(OpenVerificationMethodology)发展而来的新一代验证方法学。传统的验证手段对验证模块激励的添加会存在诸多的不便,特别是在对激励的约束上,而UVM却能很好地完成这个任务。UVM在systemverilog的基础上,定义了一些在验证平台中经常使用到的基类、宏、和块语句。这些库文件可以通过接口直接调用,方便对待验证模块DUT(DesignUnderTest)的验证时定位错误。
随着光通信网络的演化和验证技术的发展,以及FPGA的库文件与EDA工具编译的兼容性,ASIC芯片验证和FPGA逻辑验证趋向于统一。在这种前提下,光通信网络的硬件逻辑验证时激励所需要的多个多路帧数据及计数方式在验证平台中变得很重要。一般的情况下,在设计验证平台中实现多路帧随机数的产生时,大多会一个一个地重复定义transaction结构,通过不断地包裹来实现多路帧随机数据的产生,再在验证平台中加载给不同的帧数据信号。其缺陷在于,验证平台加载受约束的随机激励复杂,导致验证平台中调用UVM库时的不确定性,使得系统运行的稳定性较差。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于简化验证平台加载受约束的随机激励,减少验证平台中调用UVM库时的不确定性,提高系统运行的稳定性。
为实现上述目的,本发明提供的一种多路帧随机数据验证处理方法包括以下步骤:
A、搭建通用验证平台,预设transaction组件、sequence组件、sequencer组件、driver组件、monitor组件、scoreboard组件及各组件的派生关系;
B、所述transaction组件获取目标验证数据包中每一数据包的包结构信息,并将每一数据包的包结构信息以预置参数类型打包发送至sequence组件;
C、所述sequence组件根据所述每一数据包的包结构信息生成随机数,且每一数据包对应的所有随机数形成帧数据;
D、所述sequencer组件接收所述帧数据,并通过预置的TLM端口发送所述帧数据至所述driver组件;
E、所述driver组件在每接收到所述sequencer组件发送的一帧数据时,将接收到的当前帧数据进行随机数抓取处理,得到多路随机数据;并将所述多路随机数据一一对应赋值给预置临时变量后,将所述预置临时变量赋值到被调用任务的赋值语句中,以将所述预置临时变量加载至待验证模块;
F、所述monitor组件检测所述待验证模块输出的检测数据信息;
G、所述scoreboard组件对所述monitor组件检测获得的所述检测数据信息进行验证处理。
优选地,所述步骤E包括:
所述driver组件在每接收到所述sequence组件发送的一帧数据时,将接收到的当前帧数据打包至预置的数组内;
在所述数组内提取数据,得到多路随机数据;
将所述多路随机数据一一对应赋值给预置临时变量,并打包形成多路帧随机数据;
启动加载任务将所述多路帧随机数据加载至所述待验证模块的输入端。
优选地,所述启动加载任务将所述多路帧随机数据加载至所述待验证模块的输入端之后还包括:
所述driver组件根据所述多路帧随机数据中的帧头或帧尾统计所述多路帧随机数据的路数。
优选地,所述步骤A还包括预设reference_model组件;
所述步骤G之前还包括:
所述reference_model组件获取所述多路帧随机数据;并按照所述待验证模块相同的功能对所述多路帧随机数据进行数据处理后得到期望数据信息;
所述步骤G包括:
所述scoreboard组件接收所述检测数据信息和所述期望数据信息;
比较所述检测数据信息和所述期望数据信息;
输出比较的结果。
优选地,所述包结构信息包括包头、静荷、负载、开销字节位及数据包的约束条件。
此外,为实现上述目的,本发明还提供一种多路帧随机数据验证处理装置包括:
平台搭建模块,用于搭建通用验证平台,预设transaction组件、sequence组件、sequencer组件、driver组件、monitor组件、scoreboard组件及各组件的派生关系;
所述transaction组件,用于获取目标验证数据包中每一数据包的包结构信息,并将每一数据包的包结构信息以预置参数类型打包发送至sequence组件;
所述sequence组件,用于根据所述每一数据包的包结构信息生成随机数,且每一数据包对应的所有随机数形成帧数据;
所述sequencer组件,用于接收所述帧数据,并通过预置的TLM端口发送所述帧数据至所述driver组件;
所述driver组件,用于在每接收到所述sequencer组件发送的一帧数据时,将接收到的当前帧数据进行随机数抓取处理,得到多路随机数据;并将所述多路随机数据一一对应赋值给预置临时变量后,将所述预置临时变量赋值到被调用任务的赋值语句中,以将所述预置临时变量加载至待验证模块;
所述monitor组件,用于检测所述待验证模块输出的检测数据信息;
所述scoreboard组件,用于对所述monitor组件检测获得的所述检测数据信息进行验证处理。
优选地,所述driver组件具体用于,在每接收到所述sequence组件发送的一帧数据时,将接收到的当前帧数据打包至预置的数组内;在所述数组内提取数据,得到多路随机数据;将所述多路随机数据一一对应赋值给预置临时变量,并打包形成多路帧随机数据;启动加载任务将所述多路帧随机数据加载至所述待验证模块的输入端。
优选地,所述driver组件还用于根据所述多路帧随机数据中的帧头或帧尾统计所述多路帧随机数据的路数。
优选地,所述平台搭建模块还用于预设reference_model组件;
所述reference_model组件,用于获取所述多路帧随机数据;并按照所述待验证模块相同的功能对所述多路帧随机数据进行数据处理后得到期望数据信息;
所述scoreboard组件具体用于,接收所述检测数据信息和所述期望数据信息;比较所述检测数据信息和所述期望数据信息;输出比较的结果。
优选地,所述包结构信息包括包头、静荷、负载、开销字节位及数据包的约束条件。
本发明实施例通过transaction组件获取目标验证数据包中每一数据包的包结构信息,并将每一数据包的包结构信息以预置参数类型打包发送至sequence组件;由述sequence组件根据所述每一数据包的包结构信息生成随机数,且每一数据包对应的所有随机数形成帧数据;并通过driver组件在每接收到所述sequencer组件发送的一帧数据时,将接收到的当前帧数据进行随机数抓取处理,得到多路随机数据;并将所述多路随机数据一一对应赋值给预置临时变量后,将所述预置临时变量赋值到被调用任务的赋值语句中,以将所述预置临时变量加载至待验证模块;最后由scoreboard组件对所述monitor组件检测获得的所述检测数据信息进行验证处理,从而完成多路帧数据验证处理。相对于现有技术在设计验证平台中实现多路帧随机数的产生时,大多会一个一个地重复定义transaction结构,通过不断地包裹来实现多路帧随机数据的产生,再在验证平台中加载给不同的帧数据信号。本发明提供的多路帧随机数据验证处理方法简化了验证平台加载受约束的随机激励,减少了验证平台中调用UVM库时的不确定性,提高了系统运行的稳定性。
附图说明
图1为本发明多路帧随机数据验证处理方法一实施例的流程示意图;
图2为本发明多路帧随机数据验证处理方法中driver组件进行数据处理一实施例的细化流程示意图;
图3为本发明多路帧随机数据验证处理方法中driver组件进行数据处理另一实施例的细化流程示意图;
图4为本发明多路帧随机数据验证处理装置一实施例的功能模块示意图;
图5为本发明多路帧随机数据验证处理装置另一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种多路帧随机数据验证处理方法,参照图1,在一实施例中,该多路帧随机数据验证处理方法包括:
步骤S10,搭建通用验证平台,预设transaction组件、sequence组件、sequencer组件、driver组件、monitor组件、scoreboard组件及各组件的派生关系;
本实施例中,上述通用验证平台可以采用UVM验证方法学搭建的一个通用验证平台,在该验证平台当中预设多个组件,并设置各个组件之间的派生关系。具体地,预设的组件类型可根据实际需要进行设置,例如在本实施例中,可预设transaction组件、sequence组件、sequencer组件、driver组件、monitor组件和scoreboard组件。
步骤S20,所述transaction组件获取目标验证数据包中每一数据包的包结构信息,并将每一数据包的包结构信息以预置参数类型打包发送至sequence组件;
在预设各组件及组件的派生关系后;由transaction组件获取用户设置的对验证数据包中每一数据包的包结构信息,具体地,该包结构信息包括:包头、静荷、负载、开销字节位及数据包的约束条件,并将每一数据包的包结构信息以transaction参数类型发送给sequence组件。
步骤S30,所述sequence组件根据所述每一数据包的包结构信息生成随机数,且每一数据包对应的所有随机数形成帧数据;
具体地,可通过控制EDA(ElectronicDesignAutomation)工具的仿真时间的需要,获取与每一数据包相匹配数量的随机数,将每一数据包对应的所有随机数打包形成帧数据,并将该帧数据发送给sequencer组件。
步骤S40,所述sequencer组件接收所述帧数据,并通过预置的TLM端口发送所述帧数据至driver组件;
在sequencer组件和driver组件之间,会有TLM(transactionlevelmodeling)端口来进行不断的数据传送和接受。sequencer组件实时接收sequence产生的帧数据,并负责把帧数据传递给driver组件。
步骤S50,所述driver组件在每接收到所述sequencer组件发送的一帧数据时,将接收到的当前帧数据进行随机数抓取处理,得到多路随机数据;并将所述多路随机数据一一对应赋值给预置临时变量后,将所述预置临时变量赋值到被调用任务的赋值语句中,以将所述预置临时变量加载至待验证模块;
具体地,在定义的main_phase任务中从TLM(transactionlevelmodeling)端口不断地接收来自sequencer组件传输的帧数据,UVM中有三种类型的端口,可以使用这些端口来设置。然后将接收到的帧数据通过参数传递到一个独立的驱动任务,从而将数据加载至待验证模块(DUT)中。
步骤S60,所述monitor组件检测所述待验证模块输出的检测数据信息;
上述monitor组件负责监测待验证模块输出的检测数据信息,并将检测的检测数据信息输出至scoreboard组件。
步骤S70,所述scoreboard组件对所述monitor组件检测获得的所述检测数据信息进行验证处理。
上述scoreboard组件接收monitor组件传输的检测数据信息,并将该检测数据信息进行相应的验证处理,得到验证结果,并输出显示给用户。
本发明实施例通过transaction组件获取目标验证数据包中每一数据包的包结构信息,并将每一数据包的包结构信息以预置参数类型打包发送至sequence组件;由述sequence组件根据所述每一数据包的包结构信息生成随机数,且每一数据包对应的所有随机数形成帧数据;并通过driver组件在每接收到所述sequencer组件发送的一帧数据时,将接收到的当前帧数据进行随机数抓取处理,得到多路随机数据;并将所述多路随机数据一一对应赋值给预置临时变量后,将所述预置临时变量赋值到被调用任务的赋值语句中,以将所述预置临时变量加载至待验证模块;最后由scoreboard组件对所述monitor组件检测获得的所述检测数据信息进行验证处理,从而完成多路帧数据验证处理。相对于现有技术在设计验证平台中实现多路帧随机数的产生时,大多会一个一个地重复定义transaction结构,通过不断地包裹来实现多路帧随机数据的产生,再在验证平台中加载给不同的帧数据信号。本发明提供的多路帧随机数据验证处理方法简化了验证平台加载受约束的随机激励,减少了验证平台中调用UVM库时的不确定性,提高了系统运行的稳定性。
进一步地,参照图2,基于上述实施例,本实施例中,上述步骤S50包括:
步骤S51,所述driver组件在每接收到所述sequence组件发送的一帧数据时,将接收到的当前帧数据打包至预置的数组内;
步骤S52,在所述数组内提取数据,得到多路随机数据;
步骤S53,将所述多路随机数据一一对应赋值给预置临时变量,并打包形成多路帧随机数据;
步骤S54,启动加载任务将所述多路帧随机数据加载至所述待验证模块的输入端。
具体地,在定义的main_phase任务中从TLM(transactionlevelmodeling)端口不断地接收来自sequencer组件传输的帧数据,UVM中有三种类型的端口,可以使用这些端口来设置。然后将接收到的帧数据通过参数传递到一个独立的驱动任务,为了方便处理帧里面的数据,本发明实施例中把接收到的帧数据打包到一个数组中,把数据字段打包成byte为单位的数据流,形成多路帧随机数据,之后,调用函数再把数据一个个地灌输给待验证模块。例如,在driver组件的驱动帧数据任务里添加一个for循环,并通过在每一帧的数组里面随机地提取随机数据,实现数据的再次随机组合来二次产生多路随机数据。在再次随机组合完毕后,定义若干临时变量和相等数量的调用任务。在数组数据提取形成的多路随机数据一一赋值给对应的临时变量后,可以把这些临时变量赋值到被调用任务的赋值语句中;然后把临时变量的数据加载给DUT的pins,从而实现多路帧随机数据的加载。
进一步地,参照图3,基于上述实施例,本实施例中,上述步骤S34之后还包括:
步骤S55,所述driver组件根据所述多路帧随机数据中的帧头或帧尾统计所述多路帧随机数据的路数。
本实施例中,在加载临时变量的时候,比如帧头或者帧尾数据信号,可以设置一个判断条件,判断第一个数据是否为32位的f6f6f628,若是,则每一帧数据的循环时把计数信号自动加1,从而实现对多路帧随机数据的路数统计。在统计完成后,还可将统计的结果进行输出显示,供用户查看。
进一步地,基于上述实施例,本实施例中,上述步骤S10还包括预设reference_model组件;
所述步骤S70之前还包括:
所述reference_model组件获取所述多路帧随机数据;并按照所述待验证模块相同的功能对所述多路帧随机数据进行数据处理后得到期望数据信息;
所述步骤70包括:
所述scoreboard组件接收所述检测数据信息和所述期望数据信息;
比较所述检测数据信息和所述期望数据信息;
输出比较的结果。
本实施例中上述步骤S10为:搭建通用验证平台,预设transaction组件、sequence组件、sequencer组件、driver组件、monitor组件、scoreboard组件、reference_model组件及各组件的派生关系。
具体地,上述各组件需要进行封装,例如,上述通用验证平台还预设有i_agent组件、o_agent组件和env组件;其中i_agent组件负责封装sequence组件、sequencer组件和driver组件,连接里面这些被封装的组件,并在组件之间连接起FIFO,把数据传递给reference_model组件;o_agent组件负责封装monitor组件,连接monitor组件并把来自monitor里面的数据传递给socreboard组件;env组件:把前述的所有组件都封装成一个整体的环境,该环境就相当于这些组件的顶层。
具体地,上述reference_model组件与待验证模块的功能一致,可对多路帧随机数据进行加载,并输出相应的期望数据信息,然后将该期望数据信息发送给scoreboard组件;该scoreboard组件负责收取monitor检测到的检测数据信息和reference_model传送来的期望数据信息,并实现自动比较功能。若比较成功,则提示自动对比成功,否则提示对比失败。
本发明还提供一种多路帧随机数据验证处理装置,参照图4,在一实施例中,本发明提供的多路帧随机数据验证处理装置包括:
平台搭建模块110,用于搭建通用验证平台,预设transaction组件120、sequence组件130、sequencer组件140、driver组件150、monitor组件160、scoreboard组件170及各组件的派生关系;
本实施例中,上述通用验证平台可以采用UVM验证方法学搭建的一个通用验证平台,在该验证平台当中预设多个组件,并设置各个组件之间的派生关系。具体地,预设的组件类型可根据实际需要进行设置,例如在本实施例中,可预设transaction组件120、sequence组件130、sequencer组件140、driver组件150、monitor组件160和scoreboard组件170。
所述transaction组件120,用于获取目标验证数据包中每一数据包的包结构信息,并将每一数据包的包结构信息以预置参数类型打包发送至sequence组件130;
在预设各组件及组件的派生关系后;由transaction组件120获取用户设置的对验证数据包中每一数据包的包结构信息,具体地,该包结构信息包括:包头、静荷、负载、开销字节位及数据包的约束条件,并将每一数据包的包结构信息以transaction参数类型发送给sequence组件130。
所述sequence组件130,用于根据所述每一数据包的包结构信息生成随机数,且每一数据包对应的所有随机数形成帧数据;
具体地,可通过控制EDA(ElectronicDesignAutomation)工具的仿真时间的需要,获取与每一数据包相匹配数量的随机数,将每一数据包对应的所有随机数打包形成帧数据,并将该帧数据发送给sequencer组件140。
所述sequencer组件140,用于接收所述帧数据,并通过预置的TLM端口发送所述帧数据至所述driver组件150;
在sequencer组件140和driver组件150之间,会有TLM(transactionlevelmodeling)端口来进行不断的数据传送和接受。sequencer组件140实时接收sequence产生的帧数据,并负责把帧数据传递给driver组件150。
所述driver组件150,用于在每接收到所述sequencer组件140发送的一帧数据时,将接收到的当前帧数据进行随机数抓取处理,得到多路随机数据;并将所述多路随机数据一一对应赋值给预置临时变量后,将所述预置临时变量赋值到被调用任务的赋值语句中,以将所述预置临时变量加载至待验证模块;
具体地,在定义的main_phase任务中从TLM(transactionlevelmodeling)端口不断地接收来自sequencer组件140传输的帧数据,UVM中有三种类型的端口,可以使用这些端口来设置。然后将接收到的帧数据通过参数传递到一个独立的驱动任务,从而将数据加载至待验证模块(DUT)中。
所述monitor组件160,用于检测所述待验证模块输出的检测数据信息;
上述monitor组件160负责监测待验证模块输出的检测数据信息,并将检测的检测数据信息输出至scoreboard组件170。
所述scoreboard组件170,用于对所述monitor组件160检测获得的所述检测数据信息进行验证处理。
上述scoreboard组件170接收monitor组件160传输的检测数据信息,并将该检测数据信息进行相应的验证处理,得到验证结果,并输出显示给用户。
本发明实施例通过transaction组件120获取目标验证数据包中每一数据包的包结构信息,并将每一数据包的包结构信息以预置参数类型打包发送至sequence组件130;由述sequence组件130根据所述每一数据包的包结构信息生成随机数,且每一数据包对应的所有随机数形成帧数据;并通过driver组件150在每接收到所述sequencer组件140发送的一帧数据时,将接收到的当前帧数据进行随机数抓取处理,得到多路随机数据;并将所述多路随机数据一一对应赋值给预置临时变量后,将所述预置临时变量赋值到被调用任务的赋值语句中,以将所述预置临时变量加载至待验证模块;最后由scoreboard组件170对所述monitor组件160检测获得的所述检测数据信息进行验证处理,从而完成多路帧数据验证处理。相对于现有技术在设计验证平台中实现多路帧随机数的产生时,大多会一个一个地重复定义transaction结构,通过不断地包裹来实现多路帧随机数据的产生,再在验证平台中加载给不同的帧数据信号。本发明提供的多路帧随机数据验证处理装置简化了验证平台加载受约束的随机激励,减少了验证平台中调用UVM库时的不确定性,提高了系统运行的稳定性。
进一步地,基于上述实施例,本实施例中,上述driver组件150具体用于,在每接收到所述sequence组件130发送的一帧数据时,将接收到的当前帧数据打包至预置的数组内;在所述数组内提取数据,得到多路随机数据;将所述多路随机数据一一对应赋值给预置临时变量,并打包形成多路帧随机数据;启动加载任务将所述多路帧随机数据加载至所述待验证模块的输入端。
具体地,在定义的main_phase任务中从TLM(transactionlevelmodeling)端口不断地接收来自sequencer组件140传输的帧数据,UVM中有三种类型的端口,可以使用这些端口来设置。然后将接收到的帧数据通过参数传递到一个独立的驱动任务,为了方便处理帧里面的数据,本发明实施例中把接收到的帧数据打包到一个数组中,把数据字段打包成byte为单位的数据流,形成多路帧随机数据,之后,调用函数再把数据一个个地灌输给待验证模块。例如,在driver组件150的驱动帧数据任务里添加一个for循环,并通过在每一帧的数组里面随机地提取随机数据,实现数据的再次随机组合来二次产生多路随机数据。在再次随机组合完毕后,定义若干临时变量和相等数量的调用任务。在数组数据提取形成的多路随机数据一一赋值给对应的临时变量后,可以把这些临时变量赋值到被调用任务的赋值语句中;然后把临时变量的数据加载给DUT的pins,从而实现多路帧随机数据的加载。
进一步地,基于上述实施例,本实施例中,上述driver组件150还用于根据所述多路帧随机数据中的帧头或帧尾统计所述多路帧随机数据的路数。
本实施例中,在加载临时变量的时候,比如帧头或者帧尾数据信号,可以设置一个判断条件,判断第一个数据是否为32位的f6f6f628,若是,则每一帧数据的循环时把计数信号自动加1,从而实现对多路帧随机数据的路数统计。在统计完成后,还可将统计的结果进行输出显示,供用户查看。
进一步地,参照图5,基于上述实施例,本实施例中,上述平台搭建模块110还用于预设reference_model组件180;
所述reference_model组件180,用于获取所述多路帧随机数据;并按照所述待验证模块相同的功能对所述多路帧随机数据进行数据处理后得到期望数据信息;
所述scoreboard组件170具体用于,接收所述检测数据信息和所述期望数据信息;比较所述检测数据信息和所述期望数据信息;输出比较的结果。
本实施例中上述平台搭建模块110具体用于,搭建通用验证平台,预设transaction组件120、sequence组件130、sequencer组件140、driver组件150、monitor组件160、scoreboard组件170、reference_model组件180及各组件的派生关系。
具体地,上述各组件需要进行封装,例如,上述通用验证平台还预设有i_agent组件、o_agent组件和env组件;其中i_agent组件负责封装sequence组件130、sequencer组件140和driver组件150,连接里面这些被封装的组件,并在组件之间连接起FIFO,把数据传递给reference_model组件180;o_agent组件负责封装monitor组件160,连接monitor组件160并把来自monitor里面的数据传递给socreboard组件;env组件:把前述的所有组件都封装成一个整体的环境,该环境就相当于这些组件的顶层。
具体地,上述reference_model组件180与待验证模块的功能一致,可对多路帧随机数据进行加载,并输出相应的期望数据信息,然后将该期望数据信息发送给scoreboard组件170;该scoreboard组件170负责收取monitor检测到的检测数据信息和reference_model传送来的期望数据信息,并实现自动比较功能。若比较成功,则提示自动对比成功,否则提示对比失败。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种多路帧随机数据验证处理方法,其特征在于,所述多路帧随机数据验证处理方法包括以下步骤:
A、搭建通用验证平台,预设transaction组件、sequence组件、sequencer组件、driver组件、monitor组件、scoreboard组件及各组件的派生关系;
B、所述transaction组件获取目标验证数据包中每一数据包的包结构信息,并将每一数据包的包结构信息以预置参数类型打包发送至sequence组件;
C、所述sequence组件根据所述每一数据包的包结构信息生成随机数,且每一数据包对应的所有随机数形成帧数据;
D、所述sequencer组件接收所述帧数据,并通过预置的TLM端口发送所述帧数据至所述driver组件;
E、所述driver组件在每接收到所述sequencer组件发送的一帧数据时,将接收到的当前帧数据进行随机数抓取处理,得到多路随机数据;并将所述多路随机数据一一对应赋值给预置临时变量后,将所述预置临时变量赋值到被调用任务的赋值语句中,以将所述预置临时变量加载至待验证模块;
F、所述monitor组件检测所述待验证模块输出的检测数据信息;
G、所述scoreboard组件对所述monitor组件检测获得的所述检测数据信息进行验证处理。
2.如权利要求1所述的多路帧随机数据验证处理方法,其特征在于,所述步骤E包括:
所述driver组件在每接收到所述sequence组件发送的一帧数据时,将接收到的当前帧数据打包至预置的数组内;
在所述数组内提取数据,得到多路随机数据;
将所述多路随机数据一一对应赋值给预置临时变量,并打包形成多路帧随机数据;
启动加载任务将所述多路帧随机数据加载至所述待验证模块的输入端。
3.如权利要求2所述的多路帧随机数据验证处理方法,其特征在于,所述启动加载任务将所述多路帧随机数据加载至所述待验证模块的输入端之后还包括:
所述driver组件根据所述多路帧随机数据中的帧头或帧尾统计所述多路帧随机数据的路数。
4.如权利要求2所述的多路帧随机数据验证处理方法,其特征在于,所述步骤A还包括预设reference_model组件;
所述步骤G之前还包括:
所述reference_model组件获取所述多路帧随机数据;并按照所述待验证模块相同的功能对所述多路帧随机数据进行数据处理后得到期望数据信息;
所述步骤G包括:
所述scoreboard组件接收所述检测数据信息和所述期望数据信息;
比较所述检测数据信息和所述期望数据信息;
输出比较的结果。
5.如权利要求1至4任一项所述的多路帧随机数据验证处理方法,其特征在于,所述包结构信息包括包头、静荷、负载、开销字节位及数据包的约束条件。
6.一种多路帧随机数据验证处理装置,其特征在于,所述多路帧随机数据验证处理装置包括:
平台搭建模块,用于搭建通用验证平台,预设transaction组件、sequence组件、sequencer组件、driver组件、monitor组件、scoreboard组件及各组件的派生关系;
所述transaction组件,用于获取目标验证数据包中每一数据包的包结构信息,并将每一数据包的包结构信息以预置参数类型打包发送至sequence组件;
所述sequence组件,用于根据所述每一数据包的包结构信息生成随机数,且每一数据包对应的所有随机数形成帧数据;
所述sequencer组件,用于接收所述帧数据,并通过预置的TLM端口发送所述帧数据至所述driver组件;
所述driver组件,用于在每接收到所述sequencer组件发送的一帧数据时,将接收到的当前帧数据进行随机数抓取处理,得到多路随机数据;并将所述多路随机数据一一对应赋值给预置临时变量后,将所述预置临时变量赋值到被调用任务的赋值语句中,以将所述预置临时变量加载至待验证模块;
所述monitor组件,用于检测所述待验证模块输出的检测数据信息;
所述scoreboard组件,用于对所述monitor组件检测获得的所述检测数据信息进行验证处理。
7.如权利要求6所述的多路帧随机数据验证处理装置,其特征在于,所述driver组件具体用于,在每接收到所述sequence组件发送的一帧数据时,将接收到的当前帧数据打包至预置的数组内;在所述数组内提取数据,得到多路随机数据;将所述多路随机数据一一对应赋值给预置临时变量,并打包形成多路帧随机数据;启动加载任务将所述多路帧随机数据加载至所述待验证模块的输入端。
8.如权利要求7所述的多路帧随机数据验证处理装置,其特征在于,所述driver组件还用于根据所述多路帧随机数据中的帧头或帧尾统计所述多路帧随机数据的路数。
9.如权利要求7所述的多路帧随机数据验证处理装置,其特征在于,所述平台搭建模块还用于预设reference_model组件;
所述reference_model组件,用于获取所述多路帧随机数据;并按照所述待验证模块相同的功能对所述多路帧随机数据进行数据处理后得到期望数据信息;
所述scoreboard组件具体用于,接收所述检测数据信息和所述期望数据信息;比较所述检测数据信息和所述期望数据信息;输出比较的结果。
10.如权利要求6至9任一项所述的多路帧随机数据验证处理装置,其特征在于,所述包结构信息包括包头、静荷、负载、开销字节位及数据包的约束条件。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410366799.6A CN105320593B (zh) | 2014-07-29 | 2014-07-29 | 多路帧随机数据验证处理方法及装置 |
PCT/CN2015/071340 WO2015131697A1 (zh) | 2014-07-29 | 2015-01-22 | 多路帧随机数据验证处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410366799.6A CN105320593B (zh) | 2014-07-29 | 2014-07-29 | 多路帧随机数据验证处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105320593A true CN105320593A (zh) | 2016-02-10 |
CN105320593B CN105320593B (zh) | 2019-04-16 |
Family
ID=54054545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410366799.6A Active CN105320593B (zh) | 2014-07-29 | 2014-07-29 | 多路帧随机数据验证处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105320593B (zh) |
WO (1) | WO2015131697A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109726476B (zh) * | 2018-12-29 | 2023-03-24 | 杭州迪普科技股份有限公司 | 基于uvm验证平台的验证方法和装置 |
CN113157269B (zh) * | 2021-06-10 | 2023-11-17 | 上海齐感电子信息科技有限公司 | 验证系统及其验证方法 |
CN113609037B (zh) * | 2021-06-30 | 2024-04-16 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于uvm的gpio模块验证的方法、装置、设备及可读介质 |
CN117034817B (zh) * | 2023-10-10 | 2023-12-22 | 沐曦集成电路(上海)有限公司 | 自动随机生成验证数据包的方法、电子设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1729675A (zh) * | 2002-12-06 | 2006-02-01 | 思科技术公司 | 用于实现轻量级、可靠的、基于分组的传输协议的装置 |
CN102752587A (zh) * | 2011-04-22 | 2012-10-24 | 安凯(广州)微电子技术有限公司 | 一种视频解码模块的验证方法及系统 |
CN103020395A (zh) * | 2012-12-31 | 2013-04-03 | 上海高清数字科技产业有限公司 | 解复用接口模块的验证方法及验证系统 |
US20130198706A1 (en) * | 2012-01-31 | 2013-08-01 | Taiwan Semiconductor Manufacturing Co., Ltd. | Format conversion from value change dump (vcd) to universal verification methodology (uvm) |
CN103729259A (zh) * | 2012-10-12 | 2014-04-16 | 安凯(广州)微电子技术有限公司 | 一种AHB总线读写burst相互打断的验证方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130318486A1 (en) * | 2012-05-23 | 2013-11-28 | Lawrence SASAKI | Method and system for generating verification environments |
CN103530216B (zh) * | 2013-10-12 | 2016-09-14 | 丁贤根 | 一种基于uvm验证方法学的pcie验证系统 |
CN103530211B (zh) * | 2013-10-12 | 2017-10-03 | 丁贤根 | 一种基于uvm平台的pcie回环自检测的方法 |
-
2014
- 2014-07-29 CN CN201410366799.6A patent/CN105320593B/zh active Active
-
2015
- 2015-01-22 WO PCT/CN2015/071340 patent/WO2015131697A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1729675A (zh) * | 2002-12-06 | 2006-02-01 | 思科技术公司 | 用于实现轻量级、可靠的、基于分组的传输协议的装置 |
CN102752587A (zh) * | 2011-04-22 | 2012-10-24 | 安凯(广州)微电子技术有限公司 | 一种视频解码模块的验证方法及系统 |
US20130198706A1 (en) * | 2012-01-31 | 2013-08-01 | Taiwan Semiconductor Manufacturing Co., Ltd. | Format conversion from value change dump (vcd) to universal verification methodology (uvm) |
CN103729259A (zh) * | 2012-10-12 | 2014-04-16 | 安凯(广州)微电子技术有限公司 | 一种AHB总线读写burst相互打断的验证方法及装置 |
CN103020395A (zh) * | 2012-12-31 | 2013-04-03 | 上海高清数字科技产业有限公司 | 解复用接口模块的验证方法及验证系统 |
Non-Patent Citations (1)
Title |
---|
JUAN FRANCESCONI ET AL: "UVM Based Testbench Architecture for Unit Verification", 《2014 ARGENTINE SCHOOL OF MICRO-NANOELECTRONICS, TECHNOLOGY AND APPLICATIONS》 * |
Also Published As
Publication number | Publication date |
---|---|
WO2015131697A1 (zh) | 2015-09-11 |
CN105320593B (zh) | 2019-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101093521B (zh) | 一种fpga仿真装置及其方法 | |
CN104933368B (zh) | 一种网络安全漏洞的检测方法及装置 | |
CN105320593A (zh) | 多路帧随机数据验证处理方法及装置 | |
CN106445800A (zh) | 一种芯片验证的方法和装置 | |
CN104038605A (zh) | 电话pos支付终端交易测试的方法 | |
CN106326749B (zh) | 文件修复方法及装置 | |
CN106293625A (zh) | 一种配置寄存器的方法和装置 | |
CN103106378A (zh) | 一种新型15693标签芯片验证平台 | |
CN113157269B (zh) | 验证系统及其验证方法 | |
CN108132876A (zh) | 一种基于注入方式的嵌入式软件目标码单元测试方法 | |
CN112367680A (zh) | 基于智能电表的外部通信测试方法、装置和计算机设备 | |
CN103378994A (zh) | 一种通信设备的测试方法及终端 | |
CN108958225A (zh) | 核电厂安全级dcs平台集成测试装置 | |
CN102707710A (zh) | 汽车电子控制单元诊断功能验证方法及系统 | |
CN104699524A (zh) | 一种静态编译动态仿真的soc芯片验证系统及验证方法 | |
CN105262644A (zh) | 一种基于协议配置的通用测试系统及测试方法 | |
CN109995548B (zh) | 设备管理方法、系统和数据传输方法、系统及终端设备 | |
CN111124790B (zh) | 一种可重用仿真接口模型的生成系统 | |
CN104330685A (zh) | 一种查线方法及查线装置 | |
CN110022178B (zh) | 一种WiFi模块的检测电路及检测方法 | |
CN111190786A (zh) | 基于uvm的测试构架、测试平台及测试方法 | |
CN103076524A (zh) | 一种辐射效应测试方法、装置及系统 | |
CN113438226B (zh) | 基于混合传输协议的报文生成、解析方法、设备及系统 | |
CN102768351A (zh) | 一种电表前装功能检测的方法、系统及智能工装设备 | |
CN107231278B (zh) | Can节点的测试方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |