我想将显示器分析端口连接到记分板的导出。 监视器和SB在不同的环境中(m_env和sb_env) 问题是我不想从常见的更高层次结构连接分析端口。 我想使用完整路径将其从SB env(sb_env)连接为: uvm_test.test_env.m_env.agent.monitor.ap.connect(uvm_test.test_env.sb_env.sb.imp) 要么 uvm_test.test_env.m_env.agent.monitor.ap.connect(sb.imp)
有可能吗?
答案 0 :(得分:2)
我在合同上有义务告诉你这是一个非常糟糕的主意。在执行此操作时,您只能使记分板在该环境中,在该确切的层次结构下工作。您应该在test_env
内正确地建立联系,就像那里的那样。
如果您仍然坚持这样做,可以使用一些原型代码来帮助您入门。您需要获取测试实例:
uvm_root root = uvm_root::get();
uvm_test test_top = root.top_levels.pop_front();
您需要将test_top
强制转换为基础测试类(定义{{1}}实例的类:
test_env
现在,您可以从my_test_base test_top_cast;
if (!$cast(test_top_cast, test_top)
`uvm_fatal(...)
开始向下遍历您的层次结构。