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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 2439|回复: 3

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

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

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

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

×
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, 2025-9-13 22:50 , Processed in 0.016365 second(s), 3 queries , Gzip On, Redis On.

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