uvm_set/get_config_string

本文介绍了UVM配置数据库(config_db)的使用方法及其灵活性,包括如何通过命令行参数设置不同类型的配置项,如整数、字符串等。此外,还探讨了如何利用随机配置技术实现环境参数的动态设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • set/get_config_string和set/get_config_object。它们分别对应uvm_config_db#(string) ::set/get和uvm_config_db#(uvm_object) ::set/get
  • config_db比set/get_config强大的地方在于,它设置的参数类型并不局限于以上三种。常见的枚举类型、virtual interface、bit类型、队列等都可以成为config_db设置的数据类型
  • UVM提供命令行参数来对它们进行设置
<sim command> +uvm_set_config_int=<comp>,<field>,<value>
<sim command> +uvm_set_config_string=<comp>,<field>,<value>

<sim command> +uvm_set_config_int="uvm_test_top.env.i_agt.drv,pre_num,'h8"

// 在设置int型参数时,可以在其前加上如下的前缀:'b、'o、'd、'h,分别表示二进制、八进制、十进制和十六进制的数据。如果不加任何前缀,则默认为十进制。
//这种选项都需要以逗号分隔的三个参数:组件名,字段名和值。在零时刻,静态uvm_root顶层组件解析上述选项的所有实例,并填充配置数据库。

我们的配置数据库随机层对仿真中命令行随机配置也是开放的,对环境本身不要求有SystemVerilog 随机约束。所有的配置参数都可以从命令行随机化获得,例如:

>simcmd+uvm_set_config_string='*.bus_env,num_actors,inside[1:3]' 或者:

> simcmd +bus_env.num_actors='dist{1:=15,2:=50,3:=35}'

利用这种技术,唯一需要改变源代码就是改变uvm_config_db去访问我们自己的便利层类接口config_rand_db。环境里的API和使用的模型不需要改动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值