【验证小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 约束,那么此约束会基于行中其他列的值在特定的列中对值进行限制。
852 0
|
5月前
|
SQL Oracle 关系型数据库
SQL FOREIGN KEY 约束- 保障表之间关系完整性的关键规则
SQL FOREIGN KEY 约束用于防止破坏表之间关系的操作。FOREIGN KEY 是一张表中的字段(或字段集合),它引用另一张表中的主键。具有外键的表称为子表,具有主键的表称为被引用表或父表。
89 0
SQL FOREIGN KEY 约束- 保障表之间关系完整性的关键规则
|
12月前
|
SQL Oracle 关系型数据库
gt-checksum 1.2.1发布,新增表结构校验及修复等超实用特性
gt-checksum 1.2.1发布,新增表结构校验及修复等超实用特性
SAP QM初阶-执行事务代码QP02维护检验计划的时候不能为检验特性指派取样策略
SAP QM初阶-执行事务代码QP02维护检验计划的时候不能为检验特性指派取样策略
SAP QM初阶-执行事务代码QP02维护检验计划的时候不能为检验特性指派取样策略
|
资源调度 芯片
SAP QM 主检验特性主数据关键字段解释
SAP QM 主检验特性主数据关键字段解释
SAP QM 主检验特性主数据关键字段解释
|
SQL 测试技术 数据库
关于Int自增字段和GUID字段的性能测试。只有测试,没有分析,呵呵
最近有两篇关于GUID和Int自增的文章,我是一直使用Int自增的,不习惯使用GUID,感觉GUID很麻烦,用着不方便,性能也比不上Int自增。但是同时我也知道,二者在性能上孰优孰劣,只是感觉和猜测,并没有做测试!我是只相信测试,不相信分析、推断的。
868 0
|
数据库 SQL
查看数据库表的数据量和SIZE大小的脚本修正
原文:查看数据库表的数据量和SIZE大小的脚本修正 在使用桦仔的分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)的脚本时,遇到下面一些错误 这个是因为这些表的Schema是Maint,而不是默认的dbo,造成下面这段SQL在执行EXEC sp_spaceus...
810 0
|
SQL 索引
深入解析:Row Movement 的原理和性能影响与关联
ROW MOVEMENT特性最初是在8i时引入的,其目的是提高分区表的灵活性——允许更新Partition Key。这一特性默认是关闭,只是在使用到一些特殊功能时会要求打开。除了之前提到的更新Partition Key,还有2个要求打开的ROW MOVEMENT的功能就是flushback table和Shrink Segment。
3810 0