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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2914|回复: 7

[求助] assertion 变量时间的延迟,怎么coding

[复制链接]
发表于 2017-11-23 14:59:30 | 显示全部楼层 |阅读模式

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

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

x
比如说a信号上升后一段时间T后b信号拉升。
$rose(a) |-> ##T $rose(b)

但是T这个量,在RTL中是可配的寄存器。如果直接写##T的话,由于是变量AST语法会报错。
请问怎么写比较方便呢。
 楼主| 发表于 2017-11-24 08:59:23 | 显示全部楼层
为什么一问到技术类的问题就木有人回答呢 - -
发表于 2017-11-24 11:05:19 | 显示全部楼层
我觉得断言自己都不知道应该多久之后检查,那怎么检查呢?所以这个地方就应该是支持常量的吧
发表于 2017-11-24 17:43:35 | 显示全部楼层
使用interface  将寄存器值通过interface传到sva的module
T做成一个interface变量
 楼主| 发表于 2017-11-27 14:39:46 | 显示全部楼层
回复 4# e_epsh


   确定可以吗?我感觉通过interface,系统应该还是认为是一个变量吧。
这个信号本身是rtl里面的变量,和其他信号一样,我是通过bind连接过来的,作为assertion module的input信号
发表于 2017-11-27 15:51:06 | 显示全部楼层
回复 5# VPN_chip_design

没看清楚
    -> ##a   
在SVA里面这个a只能是常量
你这个功能应该做成
$rose(a_pos_delay_reg_value) |-> $rose(b_pos )
发表于 2017-11-27 17:15:27 | 显示全部楼层
1.写一个clk 计数器 clk_counter
2.rose a 记录当前周期数t1
3. first match 找到rose b记录当前周期数t2
4. 比较t2- t1与T是否相等
也可以比较绝对时间,看您的需求了
($rose(a),t1 = clk_counter) |-> first_match (##[0:`MAX] ($rose(b), t2 = clk_counter)) ##0((t2-t1) == T)
 楼主| 发表于 2017-11-29 13:13:36 | 显示全部楼层
回复 7# zxm92


   嗯,感觉靠谱
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-4-25 17:53 , Processed in 0.034441 second(s), 6 queries , Gzip On, Redis On.

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