微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > UVM中全局变量

UVM中全局变量

时间:10-02 整理:3721RD 点击:
UVM中怎么定义全局变量?如case中要用monitor中的变量数据,monitor中有要用case中的变量数据,怎么办?

来人啊

全局变量声明放在组件定义外部即可;张强书中192页有介绍,可以看看
例如
event send_over;
class seq0 extends uvm_sequence #(my_transaction);
virtual task body();
begin
..............
end
-> send_over;
endtask
endclass
class seq1 extends uvm_sequence #(my_transaction);
virtual task body();
@send_over;
begin
...............
end
endtask
endclass

执行过程中需要等待seq0例化的模块执行完毕后才可以执行seq1;

有几种选择:1. 使用uvm_config_db,在变量的定义处set,在使用处get;
2. 定义一个单例类;
2. 使用全局变量,如将该变量定义在package内,任何class外。

遇到同样的 问题,e的好处 就体现出来了 ,可以 任意使用

test case可以通过绝对路径访问monitor。如果有变量被组件共享,应该这些变量封装到class里面,每个组件都例化该class,在test里面指向同一个object。直接使用全局变量是一个很不好的习惯,尤其是需要复用的时候。

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

网站地图

Top