首页 > 其他分享 >SV 随机化(Randomization)

SV 随机化(Randomization)

时间:2024-01-23 23:22:20浏览次数:24  
标签:验证 SV 约束 随机化 Randomization 随机 测试 randomize

  • Coverage Driver Verification
  • 可约束的随机化验证,用于测试的值可以再一定范围内进行随机,具体的范围可以进行约束,比如可以跑100次,然后查看覆盖率,可以通过覆盖率进行度量验证的进度

内容

  • 随机化的变量往往需要添加一定的约束,通过添加约束让值在一定的范围内进行随机

随机化验证策略

  • 首先先验证一些正常的testcase
  • 验证一些异常的值
  • 验证一些边界值
  • 定向测试:测试的值都是定死的,debug的时候可以使用定向测试,定向测试不能检查一些隐形的错误
  • 随机测试:测试的值都是随机的,随机化验证策略可以检测设计中的不可预期的错误和隐形的错误

随机内容有哪些


  • 容错处理,给出一定超出规定范围的值,看DUT是不是能够进行处理

SystemVerilog的随机化

  • 验证组件的基本单元都是class,所以在class中进行随机化

class Bus
  rand bit[15:0] addr;
  randc bit[31:0] data;

  constraint range1{
  addr > 1024;
  addr <16384;
  };
endclass



  • 同一个随机种子下随机数的值是一样的

随机化的约束



data inside {[1001,9999]}

随机化的约束:权重分布


随机化约束:双向约束

随机化约束:条件约束

随机化约束的结果的可能性



  • 上面的约束条件是并行执行的
  • solve y before x - 先找y的取值再找x的取值

随机化约束:foreach

![]
(/i/l/?n=24&i=blog/3077491/202401/3077491-20240123224529767-2039412941.png)

  • foreach - 对于数组中每个元素进行随机约束

随机化约束:function

随机化约束:约束保护

激活或者关闭随机变量



练习

补充知识

pre_randomize and post_randomize

  • 在调用randomize的时候同时会调用pre_randomize和post_randomize
  • 先执行pre_randomize,再指向randomize,再执行post_randomize,调用randomize函数的时候,会调用三个函数


with

std::randomize()

$urandom

$urandom_range

  • 相同种子下的随机数是一样的

标签:验证,SV,约束,随机化,Randomization,随机,测试,randomize
From: https://www.cnblogs.com/Icer-newer/p/17981471

相关文章

  • 解决SVN文件不显示绿色小钩图标问题
    1相关知识1.1SVN基础SVN是Subversion的缩写,是一个开放源代码的版本控制系统。这个系统主要管理随着时间而改变的数据,这些数据被保存在一个中央资料档案库(repository)中,就像一个普通的文件服务器,但不同的是它会记录每一次文件的变动。这个系统主要用于多个人共同开发同一个项目,实现......
  • 百度网盘(百度云)SVIP超级会员共享账号每日更新(2024.01.23)
    一、百度网盘SVIP超级会员共享账号可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答。我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免了U盘的物理载体,直接在网上就实现文件传输。百度网盘SVIP会员可以让自己百度账......
  • python用支持向量机回归(SVR)模型分析用电量预测电力消费|附代码数据
    全文链接:http://tecdat.cn/?p=23921最近我们被客户要求撰写关于支持向量机回归的研究报告,包括一些图形和统计输出。本文描述了训练支持向量回归模型的过程,该模型用于预测基于几个天气变量、一天中的某个小时、以及这一天是周末/假日/在家工作日还是普通工作日的用电量关于支持......
  • 快乐学Python,如何使用Python处理文件(csv、Excel、html)数据?
    在前面的文章中,我们了解了Python爬虫的一些内容。截止到现在,我们已经可以将需要的数据通过爬虫获取,并保存到CSV文件中。在有了数据集后,接下来我们就开始了解如何将数据集的内容加载到Python中。虽然在之前也有了解简单的读取csv数据。但是存在两个问题:只能读取csv文件,但数据分析......
  • SO-VITS-SVC使用
    https://zhuanlan.zhihu.com/p/630115251?utm_id=0https://www.bilibili.com/read/cv22206231/ python版本,3.10开个python虚拟环境python-mvenv升级pip,否则会报错用pipinstall-rrequirements.txt按照依赖打开webUI,pythonwebUI.py下载孙燕姿的模型,模型文件,.pt配......
  • SV OOP-1
    内容面向对象编程面向对象的基本概念对象没有办法直接操作,需要通过handle(指向对象的指针)进行操作面向对象的基本术语面向对象的优势类的定义实例化对象new()-产生具体对象,开辟新的内存空间句柄handle对象内存空间释放使用对象与其他语言类似通......
  • SV 数据类型-3
    联合数组在内存中分配的空间可以是不连续的联合数组方法数组的方法数组使用推荐结构体枚举类型字符串变量类型String操作符......
  • SV 数据类型-2
    动态数组数组定义的时候不用给定数组元素个数动态数组实例例1队列......
  • SV 数据类型
    systemverilog可以用于设计也可以进行验证语法规则SV新数据类型SV数据类型bit-0-255byte--127-128#快速进行sv文件仿真VCS-R-sverilogxxx.sv//使用二值逻辑产生时钟,不用给clk赋初值,初始值为0bitclk;forever#2clk=~clk;//时钟不会......
  • 50csv表格转换为json文件
     importcsvimportjson#常规csv表格转换为json文件,表头作为字典key字段。defconvert_csv_to_json(csv_file_path,json_file_path):data=[]withopen(csv_file_path,'r',encoding='utf-8-sig')ascsv_file:csv_reader=csv.DictReader(cs......