constarint约束失败

定义了一个队列

rand bit len_q[$];

//对队列深度进行约束
constraint queue_size_range {
    len_q.size() == repeat_times;
}

 然后遍历,队列的内容,对队列中的每个元素进行约束

constraint len_dist{
    foreach(len_q[i]) {
        len_q[i] == 2;//约束每个元素的值都等于2
    }
}

但是编译的时候会报错

Solver failed when solving following set of constraints

rand bit[30:0] len_q.size();// rand_mode = ON
rand bit[0:0] fv_temp_67;

constraint queue_size_range
{
    (len_q.size() == repeat_times);
}

constraint len_range
{
    len_q.size() -> (fv_temp_67 == 2);
}

报的错误很奇怪,首先我定义的len_q不是32bit的,是1bit,然后rand bit[0:0] fv_temp_67不知道是什么

看原代码可以看出,约束失败的问题是我定义了1bit的len_q,但是在赋值的时候,却赋值为2,超过了表示范围,所以len_q的定义应该是多Bit,rand bit[18:0] len_q[$];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值