【验证小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 约束,那么此约束会基于行中其他列的值在特定的列中对值进行限制。
987 0
|
3月前
|
SQL 数据管理 数据库
|
6月前
|
关系型数据库 MySQL
【MySQL进阶之路 | 基础篇】约束之CHECK约束与DEFAULT约束
【MySQL进阶之路 | 基础篇】约束之CHECK约束与DEFAULT约束
|
存储 搜索推荐 开发工具
怎么去约束代码的统一性
当你着手的项目随着协同人员的越来越多,始终会面临着一个问题,那就是代码的统一性,俗话说,千人千面,放在代码里,也是百家争鸣,毕竟每个人都有自己的思想,也有着自己书写代码的风格,如何让一个项目,朝着一个统一的风格前去,这个是很难的,难的不是规范的制定,而是规范的落实。
|
6月前
|
SQL Oracle 关系型数据库
SQL FOREIGN KEY 约束- 保障表之间关系完整性的关键规则
SQL FOREIGN KEY 约束用于防止破坏表之间关系的操作。FOREIGN KEY 是一张表中的字段(或字段集合),它引用另一张表中的主键。具有外键的表称为子表,具有主键的表称为被引用表或父表。
119 0
SQL FOREIGN KEY 约束- 保障表之间关系完整性的关键规则
|
弹性计算 API 索引
使用启动约束收敛用户权限
服务目录支持通过启动约束收敛用户的资源创建权限,实现只能通过服务目录创建资源的效果,达到统一管理的目的。
256 0
使用启动约束收敛用户权限
|
关系型数据库 MySQL 数据库
MySQL约束-默认约束(default)、零填充约束(zerofill)
MySQL约束-默认约束(default)、零填充约束(zerofill)
330 0
MySQL约束-默认约束(default)、零填充约束(zerofill)
|
资源调度 芯片
SAP QM 主检验特性主数据关键字段解释
SAP QM 主检验特性主数据关键字段解释
SAP QM 主检验特性主数据关键字段解释
|
SQL Oracle 关系型数据库
数据库必知词汇:默认约束(DEFAULT)
DEFAULT 约束用来指定某列的默认值。如果没有规定其他的值,那么会将默认值添加到所有的新记录。
1161 0
|
程序员
Attribute(特性),怎么用才更好? —— 字段编号被误解了
  上一篇里(Attribute(特性),怎么用才更好? ),有人说,“坚决杜绝magic number ”,这个magic number指的就是字段编号吧,其实您误解了。   一提到字段编号,可能有些人的第一反应就是这样的用法:     Person1.2000020,或者Person1[2000020],或者ds[2000020]。
903 0