一个component(如my_driver)内通过get_full_name()函数可以得到此component的路径
config_db机制用于在uvm验证平台间传递参数。它们通常都是成对出现的。set函数是寄信,而get函数是收信。如下设置当前名字为pre_num=100寄信给drive
uvm_config_db#(int)::set(this, env.i_agt.drv, pre_num, 100);
其中第一个和第二个参数联合起来组成目标路径,与此路径符合的目标才能收信。第一个参数必须是一个uvm_component实例的指针,第二个参数是相对此实例的路径。第三个参数表示一个记号,用以说明这个值是传给目标中的哪个成员的,第四个参数是要设置的值。set函数的第一个参数为null时,在这种情况下,uvm会自动把第一个参数替换为uvm_ root::get()。
假如把this替换为了this.env,第二个参数是my_driver相对于env的路径
uvm_config_db#(int)::set(this.env, i_agt.drv, pre_num_max, 100);
在driver中的build_phase使用如下方式收信
uvm_config_db#(int)::get(this, , pre_num, pre_num);
get函数中的第一个参数和第二个参数联合起来组成路径。第一个参数也必须是一个uvm_component实例的指针,第二个参数是相对此实例的路径。一般的,如果第一个参数被设置为this,那么第二个参数可以是一个空的字符串。第三个参数就是set函数中的第三个参数,这两个参数必须严格匹配,第四个参数则是要设置的
set与get函数一般都是成对出现,但是在某些情况下,是可以只有set而没有get语句,即省略get语句。
只要使用uvm_field_int注册,并且在build_phase中调用super.build_phase(),就可以省略在build_phase中的如下get语句
uvm_config_db#(int)::get(this, , pre_num, pre_num);
关键是build_phase中的super.build_phase语句,当执行到driver的super.build_ phase时,会自动执行get语句。
英特尔锐炫Arc A580 8GB显卡发售:24核384EU,179美元起
智能分拣各显神通,进出时效不断提升
波束成形的类型及其在RF PCB中的用途
Type-C转HDMI线到底好在哪里
现场总线模块传输数据的工作原理解析
探讨一下UVM的config机制
荣耀9最新消息:余承东昨晚反思自省,小米6今日首卖,华为荣耀9致命狙击!
无畏“闪存门”!华为旗舰狂卖5百万,销量有望破千万!
参与3/11贸泽大咖说在线直播,一同探索IoT与Matter热搜焦点
无线充电技术植入 电动汽车也能“隔空”充电了!
中国为何会成为全球最大半导体装备市场?
人工智能产业不断成熟 边缘AI芯片的主赛道在哪
不同的AIoT需求 Flash该如何应对
位移传感器的应用领域都有哪些
控制系统典型应用车型 —— 停车机器人
地表更强Trailhawk实力自成一级 底气十足还送自动驾驶包
一文介绍5G NR定位
高精度高效率的LED恒流控制ICSM7522P相比较亚成微质量更好
基于CherryUSB调试dwc2 usb host笔记
什么是MPU?MPU在哪些方面保护内存安全?