【验证小bai】soft constraint按域约束与整体约束的差异

简介: 【验证小bai】soft constraint按域约束与整体约束的差异

提问:

rand bit[31:0] value;
constraint value_con{
    foreach(value[i]) soft value[i] == 1;   
}
constraint value_con{
    soft value == '1;   
}

这两种soft constraint有没有区别?


回答:


第一种方式是对每一比特进行软约束,第二种方式是增提软约束,当软约束生效时二者没有区别。但是当其中某一比特的与硬约束冲突时,比如在case中bit0约束为0,那么此时:


对于第一种foreach软约束方式,除去bit0外其他比特仍能保持约束为1;


对于第二种整体软约束方式,整体的软约束都失效了,因此其他比特相当于没有约束直接整体随机了;


实验:

class tv0;
    rand bit[31:0] value;
    constraint value_con{
        foreach(value[i]) soft value[i] == 1;   
    }
endclass
class tv1;
    rand bit[31:0] value;
    constraint value_con{
        soft value == '1;   
    }
endclass
case:
    tv0 t0 = new();
    tv1 t1 = new();
    t0.randomize with {value[0] == 0;};
    t1.randomize with {value[0] == 0;};
    $display("'h%0h", t0.value);
    $display("'h%0h", t1.value);

打印:



相关文章
|
7月前
|
关系型数据库 MySQL
【MySQL进阶之路 | 基础篇】约束之CHECK约束与DEFAULT约束
【MySQL进阶之路 | 基础篇】约束之CHECK约束与DEFAULT约束
|
存储 搜索推荐 开发工具
怎么去约束代码的统一性
当你着手的项目随着协同人员的越来越多,始终会面临着一个问题,那就是代码的统一性,俗话说,千人千面,放在代码里,也是百家争鸣,毕竟每个人都有自己的思想,也有着自己书写代码的风格,如何让一个项目,朝着一个统一的风格前去,这个是很难的,难的不是规范的制定,而是规范的落实。
|
7月前
|
SQL Oracle 关系型数据库
SQL FOREIGN KEY 约束- 保障表之间关系完整性的关键规则
SQL FOREIGN KEY 约束用于防止破坏表之间关系的操作。FOREIGN KEY 是一张表中的字段(或字段集合),它引用另一张表中的主键。具有外键的表称为子表,具有主键的表称为被引用表或父表。
124 0
SQL FOREIGN KEY 约束- 保障表之间关系完整性的关键规则
|
SQL 关系型数据库 MySQL
MySQL约束的概念及分类
MySQL约束的概念及分类
86 0
|
弹性计算 API 索引
使用启动约束收敛用户权限
服务目录支持通过启动约束收敛用户的资源创建权限,实现只能通过服务目录创建资源的效果,达到统一管理的目的。
263 0
使用启动约束收敛用户权限
|
存储 SQL 关系型数据库
MySQL基础-约束
上面我们介绍了数据库中常见的约束,以及约束涉及到的关键字,那这些约束我们到底如何在创建表-修改表的时候来指定呢,接下来我们就通过一个案例,来演示一下。
107 0
|
资源调度 芯片
SAP QM 主检验特性主数据关键字段解释
SAP QM 主检验特性主数据关键字段解释
SAP QM 主检验特性主数据关键字段解释
|
SQL 索引
深入解析:Row Movement 的原理和性能影响与关联
ROW MOVEMENT特性最初是在8i时引入的,其目的是提高分区表的灵活性——允许更新Partition Key。这一特性默认是关闭,只是在使用到一些特殊功能时会要求打开。除了之前提到的更新Partition Key,还有2个要求打开的ROW MOVEMENT的功能就是flushback table和Shrink Segment。
3873 0