微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > 求助:还是UVM中的参数传递问题

求助:还是UVM中的参数传递问题

时间:10-02 整理:3721RD 点击:
各位:
最近正在用UVM搭一个验证环境,driver支持发送各种格式的图像数据(eg:1920×1080,,1280×1024..),以一整帧图像作为一个transfre。driver那边倒好说,可从transfer中直接获得图像的heigh,width等信息,然后照着发送就是了,然后到了monitor就麻烦了,没办法直接知道我正在接受的图像数据到底是个什么格式的,没办法直接从transfer中获取,那我该给动态数组定义一个什么样的大小,然后给接受到的数据打成包,发送给scoreboard呢?恩,这还只是图像大小的不同,如果图像的数据格式不同,比如说:rgb,422格式yuv,YPbPr等呢?
我觉得我光注意让driver那边支持各种格式,忘了考虑monitor这边的问题了。在目前情况下,有什么办法能让monitor适应各种格式呢?

图像格式不同,DUT是怎样知道的呢?

可以利用config这个类啊,把你需要传递的信息,比如hwidth, vheigth, frame_num, rgb_yuv....等等,组成一个dut_cfg,然后分别在driver和monitor里面get到。这样一个testcase根据需要设定一套config里面的参数即可啊,当然有些可以让他们随机。但无论如何driver和monitor拿到的肯定一样。

DUT的一部分功能就是识别各种图像格式,并把它们转化为内部统一的格式,进行后续处理。然后输出的时候又是各种格式。
头大呀。

使用config倒是考虑过,但是觉得config类一旦设定好,是否在仿真跑的中途就不能变了呀,因为有可能需要测试前面一段给的都是1080p的源,然后后面改变成720p的源,这样的话,config就不能实时变换这些东西了。
另外,我有考虑过将uvm_config_db放到sequence中,切换不同sequence之前就重新用uvm_config_db配置一下,但是首先,我不知道可不可以这样操作,其次,担心延时性,比如说,输入源从1080p转变为720p,我在开始发送720p之前改变config,这个时候对于driver那边当然没问题,因为1080p的数据已经发送完了,但是对于monitor那边,由于DUT内部的延时,它不一定已经接收完了1080p的数据,这个时候改变配置我担心会有问题。
有没有高人能帮我解决这两个疑惑呀。如果这两点都没问题的话,使用config类确实是非常方便的办法。

In your case, it is better to use virtual_sequence to control 1080_sequence and 720_sequence, also, you should use p_sequencer to ::get configurations.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top