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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[原创] 请教constraint

[复制链接]
发表于 2015-9-23 11:04:31 | 显示全部楼层 |阅读模式

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

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

x
class ctrl_seq_cfg extends ctrl_seq_base;


rand bit [13:0]                    data0;

rand bit [13:0]                    data1;


constraint c_data0  { data0  <= 14'd4096; data0  >= -14'd4096;}

constraint c_data1  { data1  <= 14'd4096; data1  >= -14'd4096;}

请教,定义位宽为14bit的数据rand bit,是不是就不能限制 data0  >= -14'd4096;
如何解决这个问题呢?应该如何定义?
发表于 2015-9-23 13:10:45 | 显示全部楼层
定义成int 型
 楼主| 发表于 2015-9-23 13:34:39 | 显示全部楼层
回复 2# 南宫恨


   信号是14bit的,我可以定义
rand int [13:0]                    data0; ?不对吧。

  应该如何处理呢?
 楼主| 发表于 2015-9-23 13:44:18 | 显示全部楼层
回复 2# 南宫恨


   接口的信号只能是14bit,我必须定义int,然后用的时候,截取低14bit?
发表于 2015-9-23 14:56:56 | 显示全部楼层
回复 4# atlandis

是的,用的时候截取,其实不用做多余的工作,用的时候直接赋值就可以了,
发表于 2015-9-23 14:59:01 | 显示全部楼层
回复 4# atlandis


    你要是用uvm的话,直接定义成rand bit [13:0],然后注册的时候用`uvm_field_int注册就可以了
发表于 2015-9-23 15:01:49 | 显示全部楼层
回复 4# atlandis


    单纯sv的话就写成rand int ,用的时候截取就对了,毕竟截取是按照无符号数截取,就是说每个bit值不会动,原封不动赋值过去,这样你看到的该是正还是正,该是负数还是负数
 楼主| 发表于 2015-9-23 16:52:48 | 显示全部楼层
回复 7# 南宫恨


   非常感谢,我已经用另一种方法实现了

constraint c_data0  { (data0 [13:12]==2'b00) | (data0 [13:12]==2'b11 ) ; }

constraint c_data1  { (data1 [13:12]==2'b00) | (data1 [13:12]==2'b11 ) ; }
发表于 2015-9-23 17:10:13 | 显示全部楼层
回复 8# atlandis


这样是可以的,但是这种方法更类似rtl设计而不是验证
发表于 2015-9-24 12:06:18 | 显示全部楼层
keyide
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-4 10:45 , Processed in 0.029518 second(s), 6 queries , Gzip On, Redis On.

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