如果不希望组中的任何两个成员在随机化后具有相同的值,需要使用“unique”constraint。“unique”是一个关键词,使用“unique”将生成受约束的 rand 变量的唯一值。它不仅适用于静态数组,在关联数组,动态数组,队列中都可以使用。

Unique Constraint

看一个例子:

class distClass;rand bit [1:0] data1, data2, data3, data4;rand bit [1:0] addr1, addr2, addr3, addr4;constraint distr   {  unique {data1, data2, data3, data4}; }//'unique' randomconstraint distr1  {  {addr1, addr2, addr3, addr4}; }//non-unique random
endclass
module top;distClass dc = new ();initial beginfor (int i = 0; i < 5; i++) begindc.randomize();$display ("data1=%0d data2=%0d data3=%0d data4=%0d",dc.
data1, dc.data2, dc.data3, dc.data4);$display ("addr1=%0d addr2=%0d addr3=%0d addr4=%0d",dc.
addr1, dc.addr2, dc.addr3, dc.addr4);$display("\n");endend
endmodule

模拟结果:

Compiler version S-2021.09; Runtime version S-2021.09; Aug 20 09:33 2022
data1=3 data2=1 data3=0 data4=2
addr1=3 addr2=2 addr3=3 addr4=1

data1=2 data2=1 data3=0 data4=3
addr1=1 addr2=1 addr3=0 addr4=1

data1=0 data2=2 data3=3 data4=1
addr1=2 addr2=2 addr3=0 addr4=1

data1=0 data2=1 data3=2 data4=3
addr1=3 addr2=1 addr3=3 addr4=2

data1=2 data2=1 data3=3 data4=0
addr1=3 addr2=1 addr3=3 addr4=2

V C S S i m u l a t i o n R e p o r t

data1 到 data4 是随机的,但不会在集合中有重复值出现。但是 addr1 到 addr4 似乎常规随机化,可能会有重复值出现。

队列,动态数组,和关联数组的例子:

class aClass;rand bit [1:0] addr [ ] = {1,2,3,4}; //dynamic arrayrand bit [7:0] St [string] = '{"Peter":26, "Paul":24};//associative arrayrand bit [7:0] dq2[$] = { 3, 2, 7, 1 }; //queueconstraint addrC {unique {addr};}constraint strC {unique {St};}constraint dq2C {unique {dq2};}endclassmodule tb;initial beginaClass aC = new ( );for (int i = 0; i < 4; i++) beginaC.randomize();$display ("addr=%p St=%p dq2=%p", aC.addr, aC.St, aC.dq2);endendendmodule

仿真结果:

Compiler version S-2021.09; Runtime version S-2021.09; Aug 20 09:38 2022
addr='{'h3, 'h1, 'h0, 'h2} St='{"Paul":'h97, "Peter":'heb} dq2='{'hc3, 'hbc, 'h5a, 'h5f}
addr='{'h2, 'h1, 'h0, 'h3} St='{"Paul":'h37, "Peter":'h7} dq2='{'h80, 'ha5, 'h49, 'hec}
addr='{'h0, 'h2, 'h3, 'h1} St='{"Paul":'h91, "Peter":'h44} dq2='{'h10, 'h14, 'he3, 'hff}
addr='{'h0, 'h1, 'h2, 'h3} St='{"Paul":'h2f, "Peter":'hbb} dq2='{'h41, 'ha6, 'h56, 'h49}
V C S S i m u l a t i o n R e p o r t

Unique Constraint相关推荐

  1. Oracle之唯一性约束(UNIQUE Constraint)使用方法具体解释

    Oracle | PL/SQL唯一索引(Unique Constraint)使用方法 1 目标 用演示样例演示怎样创建.删除.禁用和使用唯一性约束. 2 什么是唯一性约束? 唯一性约束指表中一个字段或 ...

  2. sqlite3:unique constraint failed xxx Frame.No

    最近在写一个项目发现第一次写入正常,第二次到执行execDML时就崩溃了. 因为是对sqliteC++版的封装,仔细一看代码也没问题 随着断点调试发现出错行在execDML 于是就进入源码看一下 最终 ...

  3. sqlite3, IntegrityError: UNIQUE constraint failed when inserting a value

    sqlite报错: sqlite3.IntegrityError: UNIQUE constraint failed: IMAGESTATUE.ID 解决方案: Change INSERT to IN ...

  4. ORA-00001: unique constraint (...) violated解决方案

    ORA-00001: unique constraint (...) violated 的解决方案 今天往Oracle数据库里插入数据一条记录的时候,报错了, 控制台抛出异常:违反唯一性约定, 我以为 ...

  5. 【Oracle】插入数据时出现“ ORA-00001: unique constraint”

    背景: 后台服务测试过程中,发现往oracle数据库表中插数据出现一个错误 unique constraint,如下: ### Error updating database. Cause: java ...

  6. SQLIntegrityConstraintViolationException: ORA-00001: unique constraint及sequence调整初始值

    场景 新增数据时提示: nested exception is java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique ...

  7. Statspack ORA-00001 unique constraint violated错误的解决

    在做几个数据库的statspack时,某个数据库总是报错: ORA-00001: unique constraint (PERFSTAT.STATS$SQL_SUMMARY_PK) violated ...

  8. 数据库插入数据报错Unknown error finalizing or resetting statement (19: UNIQUE constraint failed:xxx.xxx)

    PRIMARY Key: 唯一标识数据库表中的各行/记录. NOT NULL: 确保某列不能有 NULL 值 UNIQUE: 确保某列中的所有值是不同的. 当插入相同的值时会报错: Unknown e ...

  9. Oracle之唯一性约束(UNIQUE Constraint)用法详解

    Oracle | PL/SQL唯一索引(Unique Constraint)用法 1 目标 用示例演示如何创建.删除.禁用和使用唯一性约束. 2 什么是唯一性约束? 唯一性约束指表中一个字段或者多个字 ...

  10. android 数据库 unique,UNIQUE constraint failed: sqlite database : android

    可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 由 问题: I am trying to insert values in table. But th ...

最新文章

  1. springfox-swagger-ui 在二级目录下的路径问题
  2. 如何手动完成一次APK打包?----APK编译全过程
  3. 汤涛院士:科技强,必须应用数学强
  4. linux软件抗干扰,解决asterisk下使用misdn时被SELinux干扰导致权限不足的问题
  5. 【ABAP系列】SAP ABAP 从FTP服务器读取文件到本地
  6. EmEditor 常用功能
  7. 想用数据库“读写分离”,请先明白“读写分离”解决什么问题
  8. SVN工具添加忽略上传文件和取消忽略文件
  9. 简约前端工程师简历PPT模板
  10. 基于python处理问卷数据并进行卡方分析全流程
  11. 自带作弊功能的老虎机--一样会让你输光,呵呵
  12. UTC时间与北京时间和纽约的时间
  13. 织梦dede列表分页样式
  14. 一个IO控制很多个LED,这个技能你get到了吗
  15. 7-4 房产税费计算2022(分数 12)
  16. SQL like子查询
  17. 程序员遇到有远见的丈母娘
  18. 名爵5显示服务器异常,名爵5危险警告灯异常闪烁
  19. ice java例子,ICE java 范例
  20. python安装第三方包遇到的一些问题

热门文章

  1. ProxmoxVE 6.4-13 (PVE) 硬件直通-核显/网卡/硬盘
  2. 最小路径覆盖(最小路径覆盖)
  3. sso与cookie登录那些事儿
  4. .Net core上传图片
  5. 微信视频号视频可以下载吗?视频下载器安装使用教程
  6. 笔试 - 深信服 - 大数据开发工程师
  7. n个重复数字求和问题 python
  8. Flex布局设置内容强制不换行无效的解决方法
  9. 关于FFT频谱泄露问题
  10. ValueError: The least populated class in y has only 1 member, which is too few. The minimum number o