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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 643|回复: 1

[求助] 如何将CPU配置的寄存器值作为SVA的表达式的一部分?

[复制链接]
发表于 2023-7-19 11:03:08 | 显示全部楼层 |阅读模式

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

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

x
各位:

       最近正在学习使用SVA。现在有个问题,比如,我要用SVA来检查某个信号(sig1)的周期是否是配置的寄存器(reg1)的值所指示的时钟周期数。那么简单的,应该是:
         $rose(sig1) |-> ##reg1 $rose(sig1);
       但是property中好像不能有非常数表达式。这个sig1的周期的check,该怎么用SVA来弄呢?
 楼主| 发表于 2023-7-20 09:49:39 | 显示全部楼层
我自己答。
sequence和property中不允许非常数的参数。网上找了一圈,多数是用本地参数在每个时钟tick自减1,等待参数为0来做这种可变参数的delay。




  1. sequence dynamic_delay(v);
  2.     int local_v;
  3.     (1, local_v=v) ##0 first_match((1, local_v=local_v-1'b1)[*0:$] ##1 local_v<=0);
  4. endsequence

  5. property my_prop;
  6.     #(posedge clk) $rose(sig1) |-> dynamic_delay(reg1) ##0 $rose(sig1);
  7. endproperty


复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

×

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

GMT+8, 2024-11-5 13:33 , Processed in 0.013660 second(s), 7 queries , Gzip On, Redis On.

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