博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVM:7.7.3 寄存器模型的随机化与update
阅读量:4219 次
发布时间:2019-05-26

本文共 721 字,大约阅读时间需要 2 分钟。

1.再向uvm_reg 加入uvm_reg_field时,将加入的uvm_reg_field 定义为rand 类型:

2.再将uvm_reg 加入uvm_reg_block时,同样定义为rand:

3.可以判断对register_model 来说,支持randomize操作。可以在uvm_reg_block,uvm_reg,uvm_reg_field级别调用:

4.要使某个field 随机化,只定义为rand 类型是不够的。在每个reg_field 加入uvm_reg时,调用其configure 函数:

第八个参数绝对是否随机化。但即使为1,也不一定随机化。当一个field没有写时,此参数设置无效。

5.只有此参数为RW、WRC、WRS、WO、W1、WO1 才有效。

6.要避免一个field 被随机化,以下3种方式中任选其一:

1)uvm_reg 中定义此field时,不要设置为rand 类型。

2)调用此field 的configure是,第八个设置为0

3)field 类型设置为RO、RC、RS、WC、WS、W1C、W1S、W1T、W0C、W0S、W0T、W1SRC、W1CRS、W0SRC、W0CRS、WSRC、WCRS、WOC、WOS 中的一种。

第一种方式也适用于关闭某个uvm_reg 或某个uvm_reg_block 的randomize 功能。

7,可以为他们定义constraint:

要设置到value这一层。

8.randomize 会更新寄存器模型中的预期值:

与set 函数类似。可以在randomize 完成后调用update任务,将随机化后的参数更新到DUT中。适用于在仿真开始时随机化并配置参数。

你可能感兴趣的文章
CSS之浮动(二)
查看>>
AtomicInteger源码解析
查看>>
CopyOnWriteArraySet源码学习
查看>>
Openfiler 配置 NFS 示例
查看>>
Oracle 11.2.0.1 RAC GRID 无法启动 : Oracle High Availability Services startup failed
查看>>
Oracle 18c 单实例安装手册 详细截图版
查看>>
Oracle Linux 6.1 + Oracle 11.2.0.1 RAC + RAW 安装文档
查看>>
Oracle 11g 新特性 -- Online Patching (Hot Patching 热补丁)说明
查看>>
Oracle 11g 新特性 -- ASM 增强 说明
查看>>
Oracle 11g 新特性 -- Database Replay (重演) 说明
查看>>
Oracle 11g 新特性 -- 自动诊断资料档案库(ADR) 说明
查看>>
Oracle 11g 新特性 -- RMAN Data Recovery Advisor(DRA) 说明
查看>>
CSDN博客之星 投票说明
查看>>
Oracle wallet 配置 说明
查看>>
Oracle smon_scn_time 表 说明
查看>>
VBox fdisk 不显示 添加的硬盘 解决方法
查看>>
Secure CRT 自动记录日志 配置 小记
查看>>
RMAN RAC 到 单实例 duplicate 自动分配通道 触发 ORA-19505 错误
查看>>
mysql 随机分页的优化
查看>>
DB2快速创建测试库
查看>>