(1)uvm_config_db是从uvm_resource_db派生而来的,它对uvm_resource_db的一些功能进行了扩展,这种扩展主要体现在对资源的写入和读取上. (1.1) 在资源的写入操作上,它重载了uvm_resource_db的set函数; (1.2) 在资源的读取操作上,它新建了一个称为get的函数; (2) uvm_resource_db虽然也是一种用来共享数据的类...
uvm_config_db和uvm_resource_db都是参数化的类,用于配置验证组件中不同类型的参数。 相比于uvm_resource_db,uvm_config_db增加了层次关系。 对于最后配置的参数值,uvm_resource_db是“last write wins”, uvm_config_db是“parent wins” 9、什么是factory automation? factory是一种在验证环境中实例化组件或生...
这个是uvm_resource_db::set和uvm_config_db::set在UVM中的定义:uvm_resource_db::set uvm_config_db::set 从这两个函数的定义中我们就能发现,uvm_resource_db相交于uvm_config_db并不需要一个uvm_oject类型的参数,取而代之的是一个string类型的参数。从这里就能看出,uvm_config_db对于参数的约束要更大一些。
uvm_resource_db采取的是“last write wins”即对同一个配置,最后的写入有效;而uvm_config_db采取的是“parent wins”,它会首先按照层次采取最顶层的配置优先。 uvm_resource_db给人带来的困惑是,如果高层次和低层次都对同一个配置变量进行了写入,那么在build阶段,由于是采取top-down的执行顺序,低层次的配置写入...
uvm_resource_db与uvm_config_db 都可操作全局资源池,但是前者用于全局配置后者用于对comp配置。 不看最后一行的read_by_type dump所有的uvm_resource_db操作可以用uvm_resources.dump_get_records()函数 uvm_resources.find_unused_resources查询没有使用的资源。
config_db.svh文件。类uvm_config_db扩展了uvm_resource_db。定义了一个静态的uvm_pool,其中包含字符串和uvm_resource的数组。还定义了一个静态局部变量,它是一个uvm_queue类型,用于存储m_uvm_waiter。通过uvm_config_db类,实现str type config sim nbsp stat pool provides basic功能。
大家使用uvm_config_db::set()和uvm_config_db::get()时,要牢记set()的参数inst_name是支持正则匹配的,而get()的参数inst_name是不支持正则匹配的也就是get()的参数inst_name里就算包含*/?/+等特殊字符,也是会当作普通字符而已,而不会被处理成正则匹配里的元字符。
综上,uvm_config_db::set()和uvm_resource_db::set()是没有任何继承继承关系的。 从user的角度来讲,uvm_config_db::set/get是经常用到的。 第一个参数是uvm_component,所以一定要特别留心在sequence中参数设定的时候,这里不能是this,必须要是一个uvm_component的类型。
答案在于uvm_config_db内部的m_rsc数组。这是一个由string作为键,uvm_resource#(T)作为值的静态键值对数组,以uvm_component为索引。这意味着,m_rsc数组实际上是一个以uvm_component为键,联合数组为值的结构,其中联合数组内部包含了key(string类型)和value(uvm_resource#(T)类型)。接下来,我们...