在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2842|回复: 10

[求助] UVM 中关于force 用法

[复制链接]
发表于 2023-9-7 22:30:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 Gavin-35 于 2023-9-8 20:11 编辑

如下,想让clk_[ i ]_status force 为 0,不想一个个写,于是大概想法是这样写的

for (int i = 1;i<20;i++)begin

force $sformatf("hdl_top.U_DUT.u_clk_%0d_status", i ) = 1'b0;
end

结果运行到 force $sformatf 这句就报语法错误,是force 后不能接$sformatf这种字符串处理函数原
发表于 2023-9-28 14:21:47 | 显示全部楼层


Gavin-35 发表于 2023-9-27 22:43
改成这种uvm_hdl_force("hdl_top.U_DUT.u_clk_X_status", 1'b0),可循环好像还是不行 (X:0,1,2,....19) ...


这个可以配合sformatf用的
发表于 2023-9-8 09:17:26 | 显示全部楼层
这个是verilog的force,可以试试uvm_hdl_force
发表于 2023-9-8 09:29:39 | 显示全部楼层
$sformatf()函数的返回值是string类型,force一个string?force只能是一个hierarchy的信号。真要用这种方式,就要提升一下姿势水平了,让string的返回值和hierarchy的信号发生关系,使用PLI/VPI来做。当然现在更方便了,用uvm_hdl_force,底层要做的事库已经帮你做了。
发表于 2023-9-8 17:51:41 | 显示全部楼层
用宏定义也可以实现传入层次路径尚"_X_"之间的X这个数值的。
发表于 2023-9-10 20:44:17 | 显示全部楼层
可以使用宏定义
发表于 2023-9-19 12:04:42 | 显示全部楼层
不过uvm_hdl_force只支持Verilog RTL。如果是VHDL,我只会调用simulator提供的系统函数。
各位,对VHDL的signal,有什么好的force的方法吗?
 楼主| 发表于 2023-9-27 22:39:21 | 显示全部楼层


gaurson 发表于 2023-9-8 17:51
用宏定义也可以实现传入层次路径尚"_X_"之间的X这个数值的。


宏定义确实可以,和uvm_hdl_force ,但一个问题是 _X_这种宏定义不能传入循环变量,还是实现不了循环呀
 楼主| 发表于 2023-9-27 22:43:22 | 显示全部楼层
改成这种uvm_hdl_force("hdl_top.U_DUT.u_clk_X_status", 1'b0),可循环好像还是不行 (X:0,1,2,....19)
发表于 2023-10-7 17:32:39 | 显示全部楼层
你把循环的完整代码放上来。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-27 07:42 , Processed in 0.021397 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表