UVM验证之config_db机制

set与get函数参数介绍

config_db机制用于UVM验证平台之间的参数传递。set函数为寄信,get函数为收信,它们通常成对出现。比如:在某个用例的build_phase中使用如下方式寄信:

uvm_config_db#(int)::set(this,"env.agt.driver","para",10);

set函数中,第一个参数和第二个参数组成目标路径,与此目标路径相同的目标才会成功收信。第一个参数必须是一个uvm_component实例的指针,第二个参数是相对此实例的路径。第三个参数表示一个记号,用于说明该值传给目标中的哪个成员,第四个参数是要设置的值。
在目标路径driver中的build_phase使用如下方式收信:

uvm_config_db#(int)::get(this,"","para",para_value);

get函数中,第一个参数和第二个参数组成路径。第一个参数必须是一个uvm_component实例的指针,第二个参数是相对此实例的路径。通常,如果第一个参数设置为this,第二个参数可以是一个空的字符串。第三个参数为set函数中的第三个参数,这两个参数必须完全相同,第四个参数是要设置的变量。
set和get函数执行之后,para_value的值变为10。
需要特别注意的是:在寄信和收信时,寄信必须在收信之前完成,否则将会收信失败。换言之,可以只有set函数,但是当有get函数时必须有set函数,且必须在get函数之前执行完成。