【验证小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);

打印:



相关文章
|
SQL Oracle 关系型数据库
数据库必知词汇:检查约束(CHECK)
CHECK 约束用于限制列中的值的范围,限制范围取决于<Sql表达式>。如果对单个列定义 CHECK 约束,那么该列只允许特定的值。如果对一个表定义 CHECK 约束,那么此约束会基于行中其他列的值在特定的列中对值进行限制。
906 0
|
2月前
|
存储 关系型数据库 MySQL
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
|
2月前
|
SQL 分布式计算 算法
当两个表进行Join操作时,如果它们的数据不符合MapJoin规范,您可以尝试以下优化方案
当两个表进行Join操作时,如果它们的数据不符合MapJoin规范,您可以尝试以下优化方案
53 4
|
存储 搜索推荐 开发工具
怎么去约束代码的统一性
当你着手的项目随着协同人员的越来越多,始终会面临着一个问题,那就是代码的统一性,俗话说,千人千面,放在代码里,也是百家争鸣,毕竟每个人都有自己的思想,也有着自己书写代码的风格,如何让一个项目,朝着一个统一的风格前去,这个是很难的,难的不是规范的制定,而是规范的落实。
|
2月前
|
SQL Oracle 关系型数据库
SQL FOREIGN KEY 约束- 保障表之间关系完整性的关键规则
SQL FOREIGN KEY 约束用于防止破坏表之间关系的操作。FOREIGN KEY 是一张表中的字段(或字段集合),它引用另一张表中的主键。具有外键的表称为子表,具有主键的表称为被引用表或父表。
96 0
SQL FOREIGN KEY 约束- 保障表之间关系完整性的关键规则
|
SQL 关系型数据库 MySQL
Semi-join使用条件,派生表优化 (3)—mysql基于规则优化(四十六)
Semi-join使用条件,派生表优化 (3)—mysql基于规则优化(四十六)
|
资源调度 芯片
SAP QM 主检验特性主数据关键字段解释
SAP QM 主检验特性主数据关键字段解释
SAP QM 主检验特性主数据关键字段解释
|
SQL 索引
深入解析:Row Movement 的原理和性能影响与关联
ROW MOVEMENT特性最初是在8i时引入的,其目的是提高分区表的灵活性——允许更新Partition Key。这一特性默认是关闭,只是在使用到一些特殊功能时会要求打开。除了之前提到的更新Partition Key,还有2个要求打开的ROW MOVEMENT的功能就是flushback table和Shrink Segment。
3825 0