WO2015131697A1 - 多路帧随机数据验证处理方法及装置 - Google Patents

多路帧随机数据验证处理方法及装置 Download PDF

Info

Publication number
WO2015131697A1
WO2015131697A1 PCT/CN2015/071340 CN2015071340W WO2015131697A1 WO 2015131697 A1 WO2015131697 A1 WO 2015131697A1 CN 2015071340 W CN2015071340 W CN 2015071340W WO 2015131697 A1 WO2015131697 A1 WO 2015131697A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
component
frame
random
preset
Prior art date
Application number
PCT/CN2015/071340
Other languages
English (en)
French (fr)
Inventor
李军
宋晓鹏
钟长龙
Original Assignee
中兴通讯股份有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Publication of WO2015131697A1 publication Critical patent/WO2015131697A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring

Definitions

  • the boot load task loads the multiplex frame random data to the input of the module to be verified.
  • the method further includes:
  • the method further includes:
  • the reference_model component acquires the random data of the multiplex frame; and performs data processing on the random data of the multiplex frame according to the same function of the module to be verified to obtain desired data information;
  • the sequencer component is configured to receive the frame data, and send the frame data to the driver component through a preset TLM port;
  • TLM transaction level modeling
  • the universal verification platform further includes an i_agent component, an o_agent component, and an env component; wherein the i_agent component is responsible for encapsulating the sequence component, the sequencer component, and the driver component, and connecting the encapsulated components therein. And connect the FIFO between the components, pass the data to the reference_model component; the o_agent component is responsible for encapsulating the monitor component, connecting the monitor component and passing the data from the monitor to the socreboard component; the env component: encapsulating all the aforementioned components into A holistic environment that is equivalent to the top level of these components.
  • the universal verification platform may adopt a universal verification platform built by the UVM verification method, in which multiple components are preset, and a derivative relationship between the components is set.
  • the preset component type may be set according to actual needs.
  • the transaction component 120, the sequence component 130, the sequencer component 140, the driver component 150, the monitor component 160, and the scoreboard component 170 may be preset.
  • the transaction component 120 After presetting the derivation relationship of each component and component, the transaction component 120 obtains the packet structure information set by the user for each data packet in the verification data packet.
  • the packet structure information includes: a packet header, a static load, a load, and The overhead byte and the constraint of the data packet, and the packet structure information of each data packet is sent to the sequence component 130 in the transaction parameter type.

Abstract

一种多路帧随机数据验证处理方法及装置,所述方法包括搭建通用验证平台;transaction组件获取目标验证数据包中每一数据包的包结构信息;sequence组件根据每一数据包的包结构信息生成随机数,所有随机数形成帧数据;sequencer组件发送帧数据至driver组件;driver组件将接收到的当前帧数据进行随机数抓取处理,得到多路随机数据;并将多路随机数据一一对应地赋值给预置临时变量后,将预置临时变量赋值到被调用任务的赋值语句中;monitor组件检测待验证模块输出的检测数据信息;scoreboard组件对monitor组件检测获得的检测数据信息进行验证处理。

Description

多路帧随机数据验证处理方法及装置 技术领域
本发明涉及通讯技术领域,尤其涉及多路帧随机数据验证处理方法及装置。
背景技术
在ASIC芯片设计和FPGA设计中,一般会先按照需求制定设计说明书。逻辑工程师们再按照设计说明书把这些具体的需求翻译成verilog代码。在翻译成verilog代码的过程中,会由于各种原因导致verilog代码存在功能性的错误。在这种情况之下,通过逻辑验证来定位并改正设计中的错误成为了保证设计功能正确的一种必要手段。在传统验证方式不断发展的背景下,OVM(Open Verification Methodology)、VMM(Verification Methodology Manual)、UVM(Universal Verification Methodology)验证方法学的出现极大地提升了验证效率。UVM(通用验证方法学,Universal Verification Methodology),是基于OVM(Open Verification Methodology)发展而来的新一代验证方法学。传统的验证手段对验证模块激励的添加会存在诸多的不便,特别是在对激励的约束上,而UVM却能很好地完成这个任务。UVM在system verilog的基础上,定义了一些在验证平台中经常使用到的基类、宏、和块语句。这些库文件可以通过接口直接调用,方便对待验证模块DUT(Design Under Test)的验证时定位错误。
随着光通信网络的演化和验证技术的发展,以及FPGA的库文件与EDA工具编译的兼容性,ASIC芯片验证和FPGA逻辑验证趋向于统一。在这种前提下,光通信网络的硬件逻辑验证时激励所需要的多个多路帧数据及计数方式在验证平台中变得很重要。一般的情况下,在设计验证平台中实现多路帧随机数的产生时,大多会一个一个地重复定义transaction结构,通过不断地包裹来实现多路帧随机数据的产生,再在验证平台中加载给不同的帧数据信号。其缺陷在于,验证平台加载受约束的随机激励复杂,导致验证平台中调用UVM库时的不确定性,使得系统运行的稳定性较差。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明实施例提供一种多路帧随机数据验证处理方法及装置,以简化验证平台加载受约束的随机激励,减少验证平台中调用UVM库时的不确定性,提高系统运行的稳定性。
为解决上述技术问题,本发明实施例提供的一种多路帧随机数据验证处理方法,包括以下步骤:
搭建通用验证平台,预设transaction组件、sequence组件、sequencer组件、driver组件、monitor组件、scoreboard组件及每个组件的派生关系;
所述transaction组件获取目标验证数据包中每一数据包的包结构信息,并将所述每一数据包的包结构信息以预置参数类型打包发送至所述sequence组件;
所述sequence组件根据所述每一数据包的包结构信息生成随机数,且所有所述每一数据包对应的随机数形成帧数据;
所述sequencer组件接收所述帧数据,并通过预置的TLM端口发送所述帧数据至所述driver组件;
所述driver组件在每接收到所述sequencer组件发送的一帧数据时,将接收到的当前帧数据进行随机数抓取处理,得到多路随机数据;并将所述多路随机数据一一对应地赋值给预置临时变量后,将所述预置临时变量赋值到被调用任务的赋值语句中,以将所述预置临时变量加载至待验证模块;
所述monitor组件检测所述待验证模块输出的检测数据信息;
所述scoreboard组件对所述monitor组件获得的所述检测数据信息进行验证处理。
可选地,所述driver组件在每接收到所述sequencer组件发送的一帧数据时,将接收到的当前帧数据进行随机数抓取处理,得到多路随机数据;并将所述多路随机数据一一对应地赋值给预置临时变量后,将所述预置临时变量赋值到被调用任务的赋值语句中,以将所述预置临时变量加载至待验证模块 的步骤包括:
所述driver组件在每接收到所述sequence组件发送的一帧数据时,将接收到的当前帧数据打包至预置的数组内;
在所述数组内提取数据,得到多路随机数据;
将所述多路随机数据一一对应地赋值给预置临时变量,并打包形成多路帧随机数据;
启动加载任务将所述多路帧随机数据加载至所述待验证模块的输入端。
可选地,所述启动加载任务将所述多路帧随机数据加载至所述待验证模块的输入端之后还包括:
所述driver组件根据所述多路帧随机数据中的帧头或帧尾统计所述多路帧随机数据的路数。
可选地,所述搭建通用验证平台,预设transaction组件、sequence组件、sequencer组件、driver组件、monitor组件、scoreboard组件及每个组件的派生关系的步骤还包括预设reference_model组件;
所述scoreboard组件对所述monitor组件获得的所述检测数据信息进行验证处理的步骤之前还包括:
所述reference_model组件获取所述多路帧随机数据;并按照所述待验证模块相同的功能对所述多路帧随机数据进行数据处理后得到期望数据信息;
所述scoreboard组件对所述monitor组件获得的所述检测数据信息进行验证处理的步骤包括:
所述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(Electronic Design Automation)工具的仿真时间的需要,获取与每一数据包相匹配数量的随机数,将所有所述每一数据包对 应的随机数打包形成帧数据,并将该帧数据发送给sequencer组件。
步骤S40,所述sequencer组件接收所述帧数据,并通过预置的TLM端口发送所述帧数据至driver组件;
在sequencer组件和driver组件之间,会有TLM(transaction level modeling)端口来进行不断的数据传送和接受。sequencer组件实时接收sequence产生的帧数据,并负责把帧数据传递给driver组件。
步骤S50,所述driver组件在每接收到所述sequencer组件发送的一帧数据时,将接收到的当前帧数据进行随机数抓取处理,得到多路随机数据;并将所述多路随机数据一一对应赋值给预置临时变量后,将所述预置临时变量赋值到被调用任务的赋值语句中,以将所述预置临时变量加载至待验证模块;
具体地,在定义的main_phase任务中从TLM(transaction level modeling)端口不断地接收来自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(transaction level modeling)端口不断地接收来自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(Electronic Design Automation)工具的仿真时间的需要,获取与每一数据包相匹配数量的随机数,将每一数据包对应的所有随机数打包形成帧数据,并将该帧数据发送给sequencer组件140。
所述sequencer组件140,适用于接收所述帧数据,并通过预置的TLM端口发送所述帧数据至所述driver组件150;
在sequencer组件140和driver组件150之间,会有TLM(transaction level modeling)端口来进行不断的数据传送和接受。sequencer组件140实时接收sequence产生的帧数据,并负责把帧数据传递给driver组件150。
所述driver组件150,适用于在每接收到所述sequencer组件140发送的一帧数据时,将接收到的当前帧数据进行随机数抓取处理,得到多路随机数据;并将所述多路随机数据一一对应赋值给预置临时变量后,将所述预置临时变量赋值到被调用任务的赋值语句中,以将所述预置临时变量加载至待验证模块;
具体地,在定义的main_phase任务中从TLM(transaction level modeling)端口不断地接收来自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(transaction level modeling)端口不断地接收来自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传送来的期望数据信息,并实现自动比较功能。若比较成功,则提示自动对比成功,若比较不成功,则提示对比失败。
本领域普通技术人员可以理解上述实施例的全部或部分步骤可以使用计 算机程序流程来实现,所述计算机程序可以存储于一计算机可读存储介质中,所述计算机程序在相应的硬件平台上(如系统、设备、装置、器件等)执行,在执行时,包括方法实施例的步骤之一或其组合。
可选地,上述实施例的全部或部分步骤也可以使用集成电路来实现,这些步骤可以被分别制作成一个个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
上述实施例中的各装置/功能模块/功能单元可以采用通用的计算装置来实现,它们可以集中在单个的计算装置上,也可以分布在多个计算装置所组成的网络上。
上述实施例中的各装置/功能模块/功能单元以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。上述提到的计算机可读取存储介质可以是只读存储器,磁盘或光盘等。
任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求所述的保护范围为准。
工业实用性
本发明实施例公开了一种多路帧随机数据验证处理方法,可以简化验证平台加载受约束的随机激励,减少验证平台中调用UVM库时的不确定性,提高系统运行的稳定性。

Claims (12)

  1. 一种多路帧随机数据验证处理方法,包括以下步骤:
    搭建通用验证平台,预设transaction组件、sequence组件、sequencer组件、driver组件、monitor组件、scoreboard组件及每个组件的派生关系;
    所述transaction组件获取目标验证数据包中每一数据包的包结构信息,并将所述每一数据包的包结构信息以预置参数类型打包发送至所述sequence组件;
    所述sequence组件根据所述每一数据包的包结构信息生成随机数,且所有所述每一数据包对应的随机数形成帧数据;
    所述sequencer组件接收所述帧数据,并通过预置的TLM端口发送所述帧数据至所述driver组件;
    所述driver组件在每接收到所述sequencer组件发送的一帧数据时,将接收到的当前帧数据进行随机数抓取处理,得到多路随机数据;并将所述多路随机数据一一对应地赋值给预置临时变量后,将所述预置临时变量赋值到被调用任务的赋值语句中,以将所述预置临时变量加载至待验证模块;
    所述monitor组件检测所述待验证模块输出的检测数据信息;
    所述scoreboard组件对所述monitor组件获得的所述检测数据信息进行验证处理。
  2. 如权利要求1所述的方法,其中,所述driver组件在每接收到所述sequencer组件发送的一帧数据时,将接收到的当前帧数据进行随机数抓取处理,得到多路随机数据;并将所述多路随机数据一一对应地赋值给预置临时变量后,将所述预置临时变量赋值到被调用任务的赋值语句中,以将所述预置临时变量加载至待验证模块的步骤,包括:
    所述driver组件在每接收到所述sequence组件发送的一帧数据时,将接收到的当前帧数据打包至预置的数组内;
    在所述数组内提取数据,得到多路随机数据;
    将所述多路随机数据一一对应地赋值给预置临时变量,并打包形成多路帧随机数据;
    启动加载任务将所述多路帧随机数据加载至所述待验证模块的输入端。
  3. 如权利要求2所述的方法,其中,所述启动加载任务将所述多路帧随机数据加载至所述待验证模块的输入端之后还包括:
    所述driver组件根据所述多路帧随机数据中的帧头或帧尾统计所述多路帧随机数据的路数。
  4. 如权利要求2所述的方法,其中,所述搭建通用验证平台,预设transaction组件、sequence组件、sequencer组件、driver组件、monitor组件、scoreboard组件及每个组件的派生关系的步骤,还包括预设reference_model组件;
    所述scoreboard组件对所述monitor组件获得的所述检测数据信息进行验证处理的步骤之前还包括:
    所述reference_model组件获取所述多路帧随机数据;并按照所述待验证模块相同的功能对所述多路帧随机数据进行数据处理后得到期望数据信息;
    所述scoreboard组件对所述monitor组件获得的所述检测数据信息进行验证处理的步骤,包括:
    所述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任一项所述的装置,其中,所述包结构信息包括包头、静荷、负载、开销字节位及数据包的约束条件。
  11. 一种计算机程序,包括程序指令,当该程序指令被多路帧随机数据验证处理设备执行时,使得该设备可实施权利要求1-5任一项的方法。
  12. 一种载有权利要求11所述计算机程序的载体。
PCT/CN2015/071340 2014-07-29 2015-01-22 多路帧随机数据验证处理方法及装置 WO2015131697A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201410366799.6 2014-07-29
CN201410366799.6A CN105320593B (zh) 2014-07-29 2014-07-29 多路帧随机数据验证处理方法及装置

Publications (1)

Publication Number Publication Date
WO2015131697A1 true WO2015131697A1 (zh) 2015-09-11

Family

ID=54054545

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/071340 WO2015131697A1 (zh) 2014-07-29 2015-01-22 多路帧随机数据验证处理方法及装置

Country Status (2)

Country Link
CN (1) CN105320593B (zh)
WO (1) WO2015131697A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109726476A (zh) * 2018-12-29 2019-05-07 杭州迪普科技股份有限公司 基于uvm验证平台的验证方法和装置
CN113157269A (zh) * 2021-06-10 2021-07-23 上海齐感电子信息科技有限公司 验证系统及其验证方法
CN113609037A (zh) * 2021-06-30 2021-11-05 山东云海国创云计算装备产业创新中心有限公司 一种基于uvm的gpio模块验证的方法、装置、设备及可读介质
CN117034817A (zh) * 2023-10-10 2023-11-10 沐曦集成电路(上海)有限公司 自动随机生成验证数据包的方法、电子设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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)
US20130318486A1 (en) * 2012-05-23 2013-11-28 Lawrence SASAKI Method and system for generating verification environments
CN103530216A (zh) * 2013-10-12 2014-01-22 江苏华丽网络工程有限公司 一种基于uvm验证方法学的pcie验证方法
CN103530211A (zh) * 2013-10-12 2014-01-22 江苏华丽网络工程有限公司 一种基于uvm平台的pcie回环自检测的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7443845B2 (en) * 2002-12-06 2008-10-28 Cisco Technology, Inc. Apparatus and method for a lightweight, reliable, packet-based transport protocol
CN102752587B (zh) * 2011-04-22 2015-08-05 安凯(广州)微电子技术有限公司 一种视频解码模块的验证方法及系统
CN103729259B (zh) * 2012-10-12 2017-02-01 安凯(广州)微电子技术有限公司 一种AHB总线读写burst相互打断的验证方法及装置
CN103020395B (zh) * 2012-12-31 2015-08-05 上海高清数字科技产业有限公司 解复用接口模块的验证方法及验证系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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)
US20130318486A1 (en) * 2012-05-23 2013-11-28 Lawrence SASAKI Method and system for generating verification environments
CN103530216A (zh) * 2013-10-12 2014-01-22 江苏华丽网络工程有限公司 一种基于uvm验证方法学的pcie验证方法
CN103530211A (zh) * 2013-10-12 2014-01-22 江苏华丽网络工程有限公司 一种基于uvm平台的pcie回环自检测的方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109726476A (zh) * 2018-12-29 2019-05-07 杭州迪普科技股份有限公司 基于uvm验证平台的验证方法和装置
CN113157269A (zh) * 2021-06-10 2021-07-23 上海齐感电子信息科技有限公司 验证系统及其验证方法
CN113157269B (zh) * 2021-06-10 2023-11-17 上海齐感电子信息科技有限公司 验证系统及其验证方法
CN113609037A (zh) * 2021-06-30 2021-11-05 山东云海国创云计算装备产业创新中心有限公司 一种基于uvm的gpio模块验证的方法、装置、设备及可读介质
CN113609037B (zh) * 2021-06-30 2024-04-16 山东云海国创云计算装备产业创新中心有限公司 一种基于uvm的gpio模块验证的方法、装置、设备及可读介质
CN117034817A (zh) * 2023-10-10 2023-11-10 沐曦集成电路(上海)有限公司 自动随机生成验证数据包的方法、电子设备和介质
CN117034817B (zh) * 2023-10-10 2023-12-22 沐曦集成电路(上海)有限公司 自动随机生成验证数据包的方法、电子设备和介质

Also Published As

Publication number Publication date
CN105320593A (zh) 2016-02-10
CN105320593B (zh) 2019-04-16

Similar Documents

Publication Publication Date Title
US10082538B2 (en) Testbench builder, system, device and method
KR101297513B1 (ko) 범용 프로토콜 엔진
CN109491905A (zh) 前端测试方法、装置及电子设备
TWI401914B (zh) 測試裝置與測試方法
CN107122304B (zh) 一种jtag远程调试方法
WO2015131697A1 (zh) 多路帧随机数据验证处理方法及装置
TWI731898B (zh) 串列輸入輸出(i/o)功能測試器
CN106445800A (zh) 一种芯片验证的方法和装置
CN104657555A (zh) 一种基于uvm验证方法学的toe的验证方法及平台
WO2016015511A1 (zh) 一种网管测试事件的数据包模拟方法、装置及计算机存储介质
CN113157269B (zh) 验证系统及其验证方法
CN111064449A (zh) 一种基于uvm平台的数字降采样滤波器的验证平台及方法
CN105827476A (zh) 高速PING实现方法和Ping测试方法
US20140157215A1 (en) System and method of emulating multiple custom prototype boards
US8543368B1 (en) Method and system for testing
CN111124790B (zh) 一种可重用仿真接口模型的生成系统
CN110968004B (zh) 一种基于FPGA原型验证开发板的Cable测试系统
CN107222332A (zh) 测试方法、装置、系统及机器可读存储介质
CN115526142A (zh) 以太网降速方法、系统、介质及fpga验证平台
TWI787854B (zh) 使用觸發產生件之自動化測試設備、方法及電腦程式
Dhar et al. Coverage driven verification of I2C protocol using System Verilog
US20170248655A1 (en) Microcontroller and method for testing a microcontroller
CN107426054B (zh) 一种基于qpi协议链路层验证系统及其验证方法
CN117193706A (zh) 数据传输模块、片上信息输出装置及方法、芯片
CN116796671A (zh) 总线装置、设计方法、电子设备和计算机可读存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15758746

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15758746

Country of ref document: EP

Kind code of ref document: A1