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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1497|回复: 3

[讨论] 请教一个ucli调用verilog task的问题

[复制链接]
发表于 2020-5-27 23:53:41 来自手机 | 显示全部楼层 |阅读模式

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

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

x
ucli的users guide说到,使用ucli的call命令可以调用verilog里的task。这个功能在验证初期通过总线配置寄存器时很有好处,因为可能需要尝试不同的配置,使用call的方式可以不用重新编译就能实现不同配置。但是据文档说明,call调用的task不能有延时,调用带有延时的task的时候,延执行到延时语句的时候直接返回。但是我试了一次,调用的task里有很多@(posedge clk)语句,可以执行下去。不知道有没有人用过这个命令。我在另一个环境中用又不行,会在遇到第一个消耗仿真时间的语句时直接返回。
发表于 2020-5-28 09:41:48 来自手机 | 显示全部楼层
可以的啊,比如call{$fsdbDumpfile("xxx.fsdb")}这不消耗时间,也可以调用自定义消耗时间的系统函数,都没问题,不过我调用消耗时间的自定义系统函数(不区分函数和任务)是在仿真零时刻就开始调用。在非零时刻执行调用时有时候会卡死。
 楼主| 发表于 2020-5-28 17:47:20 来自手机 | 显示全部楼层


saipolo 发表于 2020-5-28 09:41
可以的啊,比如call{$fsdbDumpfile("xxx.fsdb")}这不消耗时间,也可以调用自定义消耗时间的系统函数,都没 ...


看来大家情况还各不相同呢。我要调的task执行不在0时刻,仿真过程中任意时刻都有可能。
 楼主| 发表于 2020-5-28 23:58:00 来自手机 | 显示全部楼层
有更好的解决方式了。可以在testbench里做一个类似指令译码的操作就行,指令可以通过ucli  force.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-3-28 21:45 , Processed in 0.034085 second(s), 7 queries , Gzip On, Redis On.

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