一、uvm_config_db简介 uvm_config_db的全称是configuration database,它是建立在 uvm_resource_db 之上的便利层,resource database储存的是与scope字符串相关联的name-value对(如下图所示) 。uvm_config_db可以将scope字符串与组件层次结构中的完整层次结构名称相关联,这样就可以通过组件层次来更加方便地访问数...
简单说就是字符串的正则匹配,在UVM内部是通过uvm_glob_to_re()和uvm_re_match()这两个函数来实现的,它们是在uvm_config_db背后默默工作的功臣。 在TB调用uvm_config_db::set()的时候,set函数会将参数cntxt和inst_name拼接起来后,调用用uvm_glob_to_re()转换格式,再存到uvm_resource类里的scope字符串变量...
uvm_config_db#(virtual my_if)::set(null,"uvm_test_top.env.i_agt.drv","vif", input_vif); uvm_config_db#(virtual my_if)::set(uvm_root::get(),"uvm_test_top.env.i_agt.drv","vif", input_vif); set及get函数中第三个参数可以与get函数中第四个参数不一样。 umv_config_db#(int)...
uvm_config_db的全称是configuration database,它是建立在 uvm_resource_db 之上的便利层,resource database储存的是与scope字符串相关联的name-value对(如下图所示) 。 uvm_config_db可以将scope字符串与组件层次结构中的完整层次结构名称相关联,这样就可以通过组件层次来更加方便地访问数据库的条目(储存的信息)。
uvm_config_db在UVM验证环境中的应用 如何在有效的使用uvm_config_db来搭建我们的uvm验证环境对于许多验证团队来说仍然是一个挑战,一些验证团队完全避免使用它,这样就不能够有效利用它带来的好处,另一些验证团队却过多的使用它,这让他们的验证环境变得不稳定,本篇论文,我们讨论如何简单有效平衡的在我们的验证环境中使...
uvm_config_db在UVM验证环境中的应用 2017-05-10 01:11 −... 那些城市那些花 0 7013 4.小白学uvm验证 - UVM通信 2019-10-29 09:08 − 一个基本的 uvm 验证环境结构如下图所示,包含两个 agent,其中 in_agent 用于驱动 DUT ,同时将驱动数据同时传递给 reference model, out_agent 用于按照协...
config_db机制用于在UVM验证平台间传递参数。他们通常是成对出现的。set函数时寄信,get函数是收信。 如在某个测试用例的build_phase中可以使用如下方式寄信: uvm_config_db#(int)::set(this, "env.i_agt.drv" "pre_num", 100); 其中第一个参数和第二个参数联合起来组成目标路径,与此路径符合的目标才能收...
对于uvm_config_db来说,在调用get()函数检索数据库的时候,get()函数传递的{cntxt,”.”, inst_name}会作为uvm_re_match()的str的实参,set()函数设置的{cntxt,”.”, inst_name}在经过uvm_glob_to_re()处理后作为uvm_re_match()的实参,这也就是为什么set()参数的inst_name支持正则格式,而get()参数...
void'(uvm_config_db#(int)::get(uvm_root::get(),"uvm_test_top.env.i_agt.drv", "pre_num", drv_pre_num)); 这两种方式都可以正确地得到设置的pre_num的值。 非直线的获取可以在某些情况下避免config_db::set的冗余。上面的例子在reference model中获取driver的pre_num的值,如果 ...
uvm_test_top.env.i_agt.sqr.case0_sequence 这个路径是由两个部分组成,此sequence的sequencer的路径,即实例化此sequence时传递的名字。 在sequence中get参数 //my_case0.sv functionvoidmy_case0::build_phase(uvm_phase phase); ... uvm_config_db#(int)::set(this,"env.i_agt.sqr.*","count",9)...