多路帧随机数据验证处理方法及装置的制造方法_3

文档序号:9564521阅读:来源:国知局
括:
[0080]所述scoreboard组件接收所述检测数据信息和所述期望数据信息;
[0081 ] 比较所述检测数据信息和所述期望数据信息;
[0082]输出比较的结果。
[0083]本实施例中上述步骤S10为:搭建通用验证平台,预设transact1n组件、sequence 组件、sequencer 组件、driver 组件、monitor 组件、scoreboard 组件、reference—model组件及各组件的派生关系。
[0084]具体地,上述各组件需要进行封装,例如,上述通用验证平台还预设有i_agent组件、o_agent组件和env组件;其中i_agent组件负责封装sequence组件、sequencer组件和driver组件,连接里面这些被封装的组件,并在组件之间连接起FIF0,把数据传递给reference_model组件;o_agent组件负责封装monitor组件,连接monitor组件并把来自monitor里面的数据传递给socreboard组件;env组件:把前述的所有组件都封装成一个整体的环境,该环境就相当于这些组件的顶层。
[0085]具体地,上述reference_model组件与待验证模块的功能一致,可对多路巾贞随机数据进行加载,并输出相应的期望数据信息,然后将该期望数据信息发送给scoreboard组件;该scoreboard组件负责收取monitor检测到的检测数据信息和reference_model传送来的期望数据信息,并实现自动比较功能。若比较成功,则提示自动对比成功,否则提示对比失败。
[0086]本发明还提供一种多路帧随机数据验证处理装置,参照图4,在一实施例中,本发明提供的多路帧随机数据验证处理装置包括:
[0087]平台搭建模块110,用于搭建通用验证平台,预设transact1n组件120、sequence组件 130、sequencer 组件 140、driver 组件 150、monitor 组件 160、scoreboard 组件 170及各组件的派生关系;
[0088]本实施例中,上述通用验证平台可以采用UVM验证方法学搭建的一个通用验证平台,在该验证平台当中预设多个组件,并设置各个组件之间的派生关系。具体地,预设的组件类型可根据实际需要进行设置,例如在本实施例中,可预设transact1n组件120、sequence 组件 130、sequencer 组件 140、driver 组件 150、monitor 组件 160 和 scoreboard组件170。
[0089]所述transact1n组件120,用于获取目标验证数据包中每一数据包的包结构信息,并将每一数据包的包结构信息以预置参数类型打包发送至sequence组件130 ;
[0090]在预设各组件及组件的派生关系后;由transact1n组件120获取用户设置的对验证数据包中每一数据包的包结构信息,具体地,该包结构信息包括:包头、静荷、负载、开销字节位及数据包的约束条件,并将每一数据包的包结构信息以transact1n参数类型发送给sequence组件130。
[0091]所述sequence组件130,用于根据所述每一数据包的包结构信息生成随机数,且每一数据包对应的所有随机数形成帧数据;
[0092]具体地,可通过控制EDA (Electronic Design Automat1n)工具的仿真时间的需要,获取与每一数据包相匹配数量的随机数,将每一数据包对应的所有随机数打包形成帧数据,并将该巾贞数据发送给sequencer组件140。
[0093]所述sequencer组件140,用于接收所述帧数据,并通过预置的TLM端口发送所述中贞数据至所述driver组件150 ;
[0094]在sequencer 组件 140 和 driver 组件 150 之间,会有 TLM (transact1n levelmodeling)端口来进行不断的数据传送和接受。sequencer组件140实时接收sequence产生的帧数据,并负责把帧数据传递给driver组件150。
[0095]所述driver组件150,用于在每接收到所述sequencer组件140发送的一巾贞数据时,将接收到的当前帧数据进行随机数抓取处理,得到多路随机数据;并将所述多路随机数据一一对应赋值给预置临时变量后,将所述预置临时变量赋值到被调用任务的赋值语句中,以将所述预置临时变量加载至待验证模块;
[0096]具体地,在定义的main_phase 任务中从 TLM (transact1n level modeling)端口不断地接收来自sequencer组件140传输的帧数据,UVM中有三种类型的端口,可以使用这些端口来设置。然后将接收到的帧数据通过参数传递到一个独立的驱动任务,从而将数据加载至待验证模块(DUT)中。
[0097]所述monitor组件160,用于检测所述待验证模块输出的检测数据信息;
[0098]上述monitor组件160负责监测待验证模块输出的检测数据信息,并将检测的检测数据信息输出至scoreboard组件170。
[0099]所述scoreboard组件170,用于对所述monitor组件160检测获得的所述检测数据信息进行验证处理。
[0100]上述scoreboard组件170接收monitor组件160传输的检测数据信息,并将该检测数据信息进行相应的验证处理,得到验证结果,并输出显示给用户。
[0101]本发明实施例通过transact1n组件120获取目标验证数据包中每一数据包的包结构信息,并将每一数据包的包结构信息以预置参数类型打包发送至sequence组件130 ;由述sequence组件130根据所述每一数据包的包结构信息生成随机数,且每一数据包对应的所有随机数形成巾贞数据;并通过driver组件150在每接收到所述sequencer组件140发送的一帧数据时,将接收到的当前帧数据进行随机数抓取处理,得到多路随机数据;并将所述多路随机数据一一对应赋值给预置临时变量后,将所述预置临时变量赋值到被调用任务的赋值语句中,以将所述预置临时变量加载至待验证模块;最后由scoreboard组件170对所述monitor组件160检测获得的所述检测数据信息进行验证处理,从而完成多路帧数据验证处理。相对于现有技术在设计验证平台中实现多路帧随机数的产生时,大多会一个一个地重复定义transact1n结构,通过不断地包裹来实现多路巾贞随机数据的产生,再在验证平台中加载给不同的帧数据信号。本发明提供的多路帧随机数据验证处理装置简化了验证平台加载受约束的随机激励,减少了验证平台中调用UVM库时的不确定性,提高了系统运行的稳定性。
[0102]进一步地,基于上述实施例,本实施例中,上述driver组件150具体用于,在每接收到所述sequence组件130发送的一帧数据时,将接收到的当前帧数据打包至预置的数组内;在所述数组内提取数据,得到多路随机数据;将所述多路随机数据一一对应赋值给预置临时变量,并打包形成多路帧随机数据;启动加载任务将所述多路帧随机数据加载至所述待验证模块的输入端。
[0103]具体地,在定义的main_phase 任务中从 TLM (transact1n level modeling)端口不断地接收来自sequencer组件140传输的帧数据,UVM中有三种类型的端口,可以使用这些端口来设置。然后将接收到的帧数据通过参数传递到一个独立的驱动任务,为了方便处理帧里面的数据,本发明实施例中把接收到的帧数据打包到一个数组中,把数据字段打包成byte为单位的数据流,形成多路帧随机数据,之后,调用函数再把数据一个个地灌输给待验证模块。例如,在driver组件150的驱动巾贞数据任务里添加一个for循环,并通过在每一帧的数组里面随机地提取随机数据,实现数据的再次随机组合来二次产生多路随机数据。在再次随机组合完毕后,定义若干临时变量和相等数量的调用任务。在数组数据提取形成的多路随机数据一一赋值给对应的临时变量后,可以把这些临时变量赋值到被调用任务的赋值语句中;然后把临时变量的数据加载给DUT的pins,从而实现多路帧随机数据的加载。
[0104]进一步地,基于上述实施例,本实施例中,上述driver组件150还用于根据所述多路帧随机数据中的帧头或帧尾统计所述多路帧随机数据的路数。
[0105]本实施例中,在加载临时变量的时候,比如帧头或者帧尾数据信号,可以设置一个判断条件,判断第一个数据是否为32位的f6f6f628,若是,则每一帧数据的循环时把计数信号自动加1,从而实现对多路帧随机数据的路数统计。在统计完成后,还可将统计的结果进行输出显示,供用户查看。<
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1