芯片验证学习随记1-随机约束,线程与UVM组件
分享常见写法,以便工作查询使用。
·
分享常见写法,以便工作查询使用
TreeExplorer
声明随机变量的类

权重分布

集合成员和inside

条件约束

打开或关闭约束
选择不同约束组合

内嵌约束
soft : 软约束: 当内外部约束不满足时, 软约束优先级更低

随机数函数
- randomize() -> pre_ 和post

- 简单的随机化

约束数组中的元素

产生唯一元素值的数组

随机化句柄数组
Randstuff没有随机化

随机序列
UVM有更好用的方法

随机控制

fork三种语句块

等待所有衍生线程

停止单个线程
停止等待!

停止多个线程

线程间通信 event

多个event -> callback

semaphore 操作
多个线程申请使用公共资源,比如申请总线资源

get -> put
线程互斥:

等待资源:

mailbox 信箱
线程之间传递信息 类似于queue


简单go

复杂 go:

线程同步的需求
- event同步

- semaphore同步

- mailbox同步

UVM类库地图

Phase机制

层次关系

创建测试平台 !!


DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)