UVM1.1应用指南及源代码分析_20111211版

发布时间:2024-11-17

共享

UVM1.1应用指南及源代码分析

UVM1.1 Application Guide and Source Code Analysis

张强 著

共享

在这里,读懂UVM

共享

写这本书的难度超出了我的预料。从8月初开始写,一直到现在,4个多月的时间,从刚开始的满含激情,到现在的精疲力尽。现在写出来的东西,距离我心目中的作品差距十万八千里,有太多的地方没有讲述清楚,有太多的地方需要仔细斟酌,有太多的语句需要换一种表述方式。

做为一个完美主义者,我应该努力的把所有的不完美的地方消除。可是,世间存在完美的东西么?

作为一个工程师,必须要在理想和现实之间做出一些妥协。理想总是很美好,但是现实中的资源总是有限,一个优秀的工程师不是不惜代价的实现完美,而是在现有的资源情况下做到最好。

8月份开始写的时候,自己时间颇多,但是现在则是时间已经处于不够用的状态,已经无力再支撑自己去仔细的修改写出来的东西。

正因为如此,我停止对这本书的修改,把其对外公布。做出这个决定,我要对小学、初中、高中和大学的语文老师说一声:对不起,我给你们丢脸了;我要对那些从小到大培养我思维严谨性的数学老师、物理老师、化学老师、电路老师、编程老师等说一句:对不起,虽然我已经尽量追求严谨,但是书中依然有太多不严谨的地方;我要对广大的读者说:对不起,要阅读此书请自动开启你们的“超强纠错”功能,否则可能无法正常阅读。

写这本书,只是想把自己会的一点东西完全的落于纸上。在努力学习UVM的过程中,自己花费了很多时间和精力。我只想把学习的心得记录下来,希望能够给后来的人以启发。如果这本书能够给一个人带来一点点的帮助,那么我的努力就不算是白费。

这本书的前半部分(第1到第9章)介绍了UVM的使用,其用户群较为广泛;

共享

而后半部分(第10到第19章)则介绍UVM背后的工作原理,用户群相对稀少。通常来说,一般的用户只要看懂前半部分就可以了。但是我想,世上总有像我一样有好奇心的人,不满足知其然再不知其所以然,会有人像我一样,会因为一个技术问题而彻夜难眠,如果你是这样的人,那么恭喜,这本书的后半部分就是为你准备的。

读者在阅读过程中如果有任何意见或者建议,或者发现了任何错误,请发邮件到zhangqiang1227@http://,我非常期待有人能和我探讨关于UVM的问题。

笔者,2011.12.11于浙江图书馆

共享

简要目录

序 ......................................................................................................................................... I 简要目录 ........................................................................................................................... III 详细目录 ......................................................................................................................... VII 图目录 .......................................................................................................................... XVII

1. 初识UVM验证平台 .................................................................................................... 1

1.1. 什么是UVM ................................................................................................ 2

1.2. UVM验证平台的组成 ................................................................................ 5

1.3. 一个简单的UVM验证平台 ........................................................................ 7

2. component与object .................................................................................................... 33

2.1. UVM的树形组织结构 .............................................................................. 33

2.2. uvm_object是UVM中最最基本的类........................................................ 36

2.3. 经常用到的uvm_object和uvm_component .............................................. 38

2.4. factory机制 ................................................................................................ 40

2.5. uvm_component与uvm_object的思考 ...................................................... 43

3. phase及objection ....................................................................................................... 45

3.1. UVM中的phase ......................................................................................... 45

3.2. UVM中的objection ................................................................................... 52

3.3. 用domain来划分不同的家庭 .................................................................... 55

4. transaction及field_automation ................................................................................... 59

4.1. field_automation机制 ................................................................................ 60

4.2. transaction使用时的一些技巧 .................................................................. 67

5. sequence机制 ............................................................................................................. 73

5.1. UVM中的sequence机制 ............................................................................ 73

5.2. 写出强大的sequence ................................................................................. 79

5.3. virtual sequence的使用.............................................................................. 83

共享

6. config机制 ................................................................................................................. 91

6.1. config机制的前世今生 ............................................................................. 91

6.2. 强大的config ............................................................................................. 94

6.3. 聚合config变量 ......................................................................................... 98

7. UVM的各种port ...................................................................................................... 103

7.1. port与TLM ............................................................................................... 103

7.2. UVM中各种port的连接 .......................................................................... 110

7.3. 用port实现monitor和scoreboard的通信 ................................................. 117

8. register model的使用 .............................................................................................. 125

8.1. register model简介 ................................................................................... 125

8.2. 搭建一个简单的register model ............................................................... 129

8.3. 复杂的register model ............................................................................... 137

8.4. register model中的常用操作 ................................................................... 145

9. callback的使用 ........................................................................................................ 147

9.1. callback简介 ............................................................................................ 147

9.2. UVM中callback的使用 ........................................................................... 149

9.3. callback与sequence机制 .......................................................................... 152

10. uvm_component源代码分析 ........................................................................... 155

10.1. uvm_component ....................................................................................... 156 10.2. uvm_root .................................................................................................. 161

11. report机制源代码分析 .................................................................................... 171

11.1. `uvm_error宏的执行 ............................................................................... 171 11.2. uvm_report_server ................................................................................... 177

12. factory机制源代码分析 .................................................................................. 187

12.1. 根据字符串创建一个类的实例 .............................................................. 187 12.2. uvm_object_utils宏 .................................................................................. 189 12.3. factory机制的应用 .................................................................................. 196 12.4. uvm_component_utils宏 .......................................................................... 201 12.5. 其它用于factory注册的宏 ...................................................................... 203 12.6. override功能 ............................................................................................ 206

13. phase机制源代码分析 .................................................................................... 229

13.1. 探索phase ................................................................................................ 229 13.2. 初识uvm_domain .................................................................................... 233 13.3. 浅探uvm_phase ....................................................................................... 238 13.4. objection机制 ........................................................................................... 276 13.5. phase的高级应用 .................................................................................... 295

14. field_automation机制源代码分析 .................................................................. 307

14.1. 简单的field_automation .......................................................................... 308 14.2. 高级的field_automation机制 .................................................................. 314

15. sequence机制源代码分析 ............................................................................... 327

共享

15.1. uvm_do系列宏 ........................................................................................ 327 15.2. sequence_item的产生与发送 .................................................................. 344 15.3. sequence的常用功能 ............................................................................... 363 15.4. sequence的response ................................................................................. 368

16. config_db机制源代码分析 ............................................................................. 375

16.1. 基本的数据结构...................................................................................... 375 16.2. 资源的写入 ............................................................................................. 379 16.3. 资源的读出 ............................................................................................. 401 16.4. uvm_config_db类对resource_db机制的扩展 ......................................... 402

17. TLM1.0源代码分析 ....................................................................................... 411

17.1. TLM端口简介 ......................................................................................... 411 17.2. uvm_port_base类 ..................................................................................... 416 17.3. 常用的port的定义 ................................................................................... 431

18. register model源代码分析 ............................................................................... 443

18.1. 基本的数据结构...................................................................................... 443 18.2. 模型的建立 ............................................................................................. 452 18.3. register model的锁定 ............................................................................... 476 18.4. uvm_reg的write操作:FRONTDOOR ................................................... 490 18.5. uvm_reg的write操作:BACKDOOR ..................................................... 520 18.6. uvm_reg的read操作 ................................................................................ 533 18.7. register model的其它常用操作 ............................................................... 545

19. callback机制源代码分析 ................................................................................ 577

19.1. 从uvm_register_cb宏说起 ....................................................................... 577 19.2. callback的使用 ........................................................................................ 586 附录A:术语 .................................................................................................................. 607 附录B:函数索引 ........................................................................................................... 609

共享

共享

详细目录

序 ......................................................................................................................................... I 简要目录 ........................................................................................................................... III 详细目录 ......................................................................................................................... VII 图目录 .......................................................................................................................... XVII

1. 初识UVM验证平台 .................................................................................................... 1

1.1. 什么是UVM ................................................................................................ 2

1.1.1. UVM主要用在什么地方 .................................................................... 2

1.1.2. 何谓方法学? ...................................................................................... 4

1.2. UVM验证平台的组成 ................................................................................ 5

1.2.1. 何谓验证平台 ...................................................................................... 5

1.2.2. UVM验证平台 .................................................................................... 6

1.3. 一个简单的UVM验证平台 ........................................................................ 7

1.3.1. 类的定义与实例化 .............................................................................. 8

1.3.2. UVM验证平台中的driver(一) ....................................................... 8

1.3.3. UVM验证平台中的transaction ......................................................... 12

1.3.4. UVM验证平台中的driver(二) ..................................................... 13

1.3.5. UVM验证平台中的monitor .............................................................. 15

1.3.6. UVM验证平台中的agent .................................................................. 16

1.3.7. UVM验证平台中的reference model ................................................. 19

1.3.8. UVM验证平台中的scoreboard ......................................................... 21

1.3.9. UVM验证平台中的env..................................................................... 22

1.3.10. UVM验证平台中的sequence ............................................................ 24

1.3.11. UVM验证平台中的case ................................................................... 26

1.3.12. UVM验证平台中的top ..................................................................... 29

共享

1.3.13. UVM验证平台的启动 ...................................................................... 30

2. component与object .................................................................................................... 33

2.1. UVM的树形组织结构 .............................................................................. 33

2.1.1. uvm_component中的parent ............................................................... 34

2.1.2. UVM树的根在哪里? ...................................................................... 34

2.1.3. uvm_component的phase自动执行 .................................................... 35

2.2. uvm_object是UVM中最最基本的类........................................................ 36

2.2.1. uvm_object与uvm_component是两个对等的概念吗 ...................... 36

2.2.2. 有哪些类派生自uvm_object ............................................................. 37

2.3. 经常用到的uvm_object和uvm_component .............................................. 38

2.3.1. 常用的uvm_component ..................................................................... 38

2.3.2. 常用的uvm_object ............................................................................. 39

2.4. factory机制 ................................................................................................ 40

2.4.1. UVM认证准生证 .............................................................................. 40

2.4.2. override功能 ...................................................................................... 41

2.4.3. 根据类名创建类的实例 .................................................................... 42

2.4.4. factory的本质:重写了new函数 ...................................................... 43

2.5. uvm_component与uvm_object的思考 ...................................................... 43

3. phase及objection ....................................................................................................... 45

3.1. UVM中的phase ......................................................................................... 45

3.1.1. 为什么要分成phase........................................................................... 45

3.1.2. task phase和function phase ................................................................ 47

3.1.3. phase的自动执行 .............................................................................. 48

3.1.4. UVM中同一phase的执行顺序 ......................................................... 48

3.1.5. UVM中的动态运行(run_time) phase ............................................... 49

3.2. UVM中的objection ................................................................................... 52

3.2.1. objection是如何控制验证平台的关闭的 ......................................... 52

3.2.2. 参数phase的含义 .............................................................................. 54

3.2.3. 一般在什么地方raise_objection ....................................................... 54

3.3. 用domain来划分不同的家庭 .................................................................... 55

3.3.1. domain的例子 .................................................................................... 56

3.3.2. 多domain与单domain的区别 ............................................................ 56

4. transaction及field_automation ................................................................................... 59

4.1. field_automation机制 ................................................................................ 60

4.1.1. 为什么要使用field_automation机制 ................................................ 60

4.1.2. field_automation机制的使用 ............................................................ 62

4.1.3. field_automation机制都做了哪些事情 ............................................ 64

4.1.4. 如何排除某些字段 ............................................................................ 65

4.2. transaction使用时的一些技巧 .................................................................. 67

4.2.1. “尽量做到” .................................................................................... 67

共享

4.2.2. 在uvm_field_*宏前后使用if语句 ..................................................... 71

5. sequence机制 ............................................................................................................. 73

5.1. UVM中的sequence机制 ............................................................................ 73

5.1.1. 激励信息的产生与驱动的分离 ........................................................ 74

5.1.2. 数据流的独立 .................................................................................... 76

5.1.3. sequence的启动与执行 ..................................................................... 77

5.1.4. 通过sequence来控制验证平台的关闭 ............................................. 78

5.2. 写出强大的sequence ................................................................................. 79

5.2.1. 使用uvm_do系列宏........................................................................... 79

5.2.2. 把sequence做为uvm_do宏的参数 .................................................... 81

5.3. virtual sequence的使用.............................................................................. 83

5.3.1. 用事件做sequence之间的同步 ......................................................... 83

5.3.2. 复杂的同步:virtual sequence .......................................................... 84

5.3.3. 在sequence中慎用fork join_none ..................................................... 87

5.3.4. 在virtual sequence中控制验证平台的关闭 ...................................... 89

6. config机制 ................................................................................................................. 91

6.1. config机制的前世今生 ............................................................................. 91

6.1.1. 验证平台中要配置的众多的参数 .................................................... 91

6.1.2. config机制的本质:半个全局变量.................................................. 92

6.1.3. config机制是用来传递数据的 ......................................................... 93

6.2. 强大的config ............................................................................................. 94

6.2.1. 省略get的config ................................................................................ 94

6.2.2. 跨层次的多重set ............................................................................... 96

6.2.3. 同一层次的多重set ........................................................................... 96

6.3. 聚合config变量 ......................................................................................... 98

6.3.1. 用专门的类来组织config变量 ......................................................... 98

6.3.2. 实时的改变config值 ....................................................................... 100

6.3.3. 在sequence中设置driver要发送的包的数量 .................................. 101

7. UVM的各种port ...................................................................................................... 103

7.1. port与TLM ............................................................................................... 103

7.1.1. uvm_component之间的通信 ........................................................... 103

7.1.2. TLM级别的通信 ............................................................................. 105

7.1.3. UVM中常见的port .......................................................................... 107

7.2. UVM中各种port的连接 .......................................................................... 110

7.2.1. 使用connect建立连接关系 ............................................................. 110

7.2.2. PORT与IMP的连接......................................................................... 111

7.2.3. EXPORT与IMP的连接 ................................................................... 113

7.2.4. PORT和EXPORT的连接 ................................................................ 114

7.2.5. UVM中的analysis port和analysis export ........................................ 115

7.3. 用port实现monitor和scoreboard的通信 ................................................. 117

共享

7.3.1. UVM中port连接时的层次关系 ...................................................... 117

7.3.2. 用analysis port实现monitor和scoreboard的通信 ........................... 119

7.3.3. 有多个uvm_analysis_imp存在的情况 ............................................ 120

7.3.4. 用fifo实现monitor和scoreboard的通信 .......................................... 121

7.3.5. 用fifo还是直接用IMP ..................................................................... 123

8. register model的使用 .............................................................................................. 125

8.1. register model简介 ................................................................................... 125

8.1.1. register model的必要性 ................................................................... 125

8.1.2. register model中一些常用的概念 ................................................... 126

8.1.3. register model与UVM验证平台 ..................................................... 127

8.2. 搭建一个简单的register model ............................................................... 129

8.2.1. 只有一个寄存器的register model ................................................... 129

8.2.2. 把register model集成到验证平台中 ............................................... 133

8.3. 复杂的register model ............................................................................... 137

8.3.1. 层次化的register model ................................................................... 137

8.3.2. reg file用以区分不同的hdl路径 ..................................................... 139

8.3.3. 具有多个域的寄存器 ...................................................................... 140

8.3.4. 跨越多个地址的寄存器 .................................................................. 142

8.3.5. 在register model中加入存储器 ....................................................... 143

8.4. register model中的常用操作 ................................................................... 145

8.4.1. register model对DUT寄存器的模拟 ............................................... 145

8.4.2. 常用操作对镜像值和渴望值的影响 .............................................. 145

9. callback的使用 ........................................................................................................ 147

9.1. callback简介 ............................................................................................ 147

9.1.1. 最简单的callback函数 .................................................................... 147

9.1.2. callback:让一切丰富多彩 ............................................................ 149

9.2. UVM中callback的使用 ........................................................................... 149

9.2.1. UVM中的callback ........................................................................... 149

9.2.2. pre_tran功能的具体实现 ................................................................ 151

9.3. callback与sequence机制 .......................................................................... 152

9.3.1. callback与sequence机制有关系吗 .................................................. 152

10. uvm_component源代码分析 ........................................................................... 155

10.1. uvm_component ....................................................................................... 156

10.1.1. uvm_component的派生图 ............................................................... 156 10.1.2. 为什么要指定一个parent ................................................................ 157 10.1.3. uvm_component的树形组织结构的实现 ....................................... 158 10.2. uvm_root .................................................................................................. 161

10.2.1. uvm_root的应用 .............................................................................. 161 10.2.2. uvm_root的单实例实现 .................................................................. 161 10.2.3. 回顾uvm_component的new函数 .................................................... 165

共享

10.2.4. run_test函数 ..................................................................................... 167

11. report机制源代码分析 .................................................................................... 171

11.1. `uvm_error宏的执行 ............................................................................... 171

11.1.1. uvm_report_enabled......................................................................... 172 11.1.2. uvm_report_error函数 ..................................................................... 176 11.2. uvm_report_server ................................................................................... 177

11.2.1. 类的实例化...................................................................................... 177 11.2.2. report函数 ........................................................................................ 179 11.2.3. UVM对于信息打印的精细控制 .................................................... 185

12. factory机制源代码分析 .................................................................................. 187

12.1. 根据字符串创建一个类的实例 .............................................................. 187

12.1.1. 创建类的实例的方法 ...................................................................... 187 12.2. uvm_object_utils宏 .................................................................................. 189

12.2.1. uvm_object_utils宏展开 .................................................................. 189 12.2.2. m_uvm_object_registry_internal宏 ................................................. 190 12.2.3. uvm_object_utils_begin宏的其它部分 ........................................... 192 12.2.4. uvm_factory类 ................................................................................. 192 12.3. factory机制的应用 .................................................................................. 196

12.3.1. 根据类名创建类的一个实例 .......................................................... 196 12.3.2. factory机制下独特的实例化的方法 .............................................. 198 12.3.3. factory机制的反思 .......................................................................... 199 12.4. uvm_component_utils宏 .......................................................................... 201

12.4.1. uvm_component_utils宏的展开 ...................................................... 201 12.4.2. m_uvm_component_registry_internal ............................................. 202 12.5. 其它用于factory注册的宏 ...................................................................... 203

12.5.1. uvm_object_param_utils宏 .............................................................. 203 12.5.2. uvm_component_utils_begin宏 ....................................................... 205 12.5.3. uvm_component_param_utils宏 ...................................................... 205 12.6. override功能 ............................................................................................ 206

12.6.1. 用于override功能的数据结构 ........................................................ 207 12.6.2. set_type_overide_by_type函数 ....................................................... 208 12.6.3. 类型被override时实例的创建 ........................................................ 211 12.6.4. set_type_override_by_name ............................................................ 216 12.6.5. set_inst_override_by_type ............................................................... 218 12.6.6. 实例被override时实例的创建 ........................................................ 221 12.6.7. set_inst_override_by_name函数...................................................... 223 12.6.8. find_override_by_name函数 ........................................................... 225 12.6.9. override功能总结 ............................................................................ 228

13. phase机制源代码分析 .................................................................................... 229

13.1. 探索phase ................................................................................................ 229

共享

13.1.1. 从run_test说起 ................................................................................. 229 13.1.2. m_run_phases函数 .......................................................................... 231 13.2. 初识uvm_domain .................................................................................... 233

13.2.1. get_common_domain ....................................................................... 233 13.2.2. get_uvm_domain .............................................................................. 235 13.2.3. uvm_domain类小结......................................................................... 237 13.3. 浅探uvm_phase ....................................................................................... 238

13.3.1. uvm_phase的类型 ........................................................................... 238 13.3.2. 构造函数new ................................................................................... 239 13.3.3. uvm_build_phase ............................................................................. 242 13.3.4. add函数 ............................................................................................ 244 13.3.5. 正常情况运行的execute_phase:普通函数phase ......................... 252 13.3.6. 正常情况运行的execute_phase:task phase .................................. 265 13.3.7. 同一层次的component的build_phase的执行 ................................. 273 13.4. objection机制 ........................................................................................... 276

13.4.1. uvm_phase中的phase_done ............................................................. 276 13.4.2. raise_objection ................................................................................. 278 13.4.3. drop_objection ................................................................................. 283 13.4.4. m_forked_drop ................................................................................. 287 13.4.5. systemverilog中关于函数的调度语义 ........................................... 293 13.4.6. 可以写一点与execute_phase相关的 .............................................. 295 13.5. phase的高级应用 .................................................................................... 295

13.5.1. phase的jump .................................................................................... 295 13.5.2. domain的使用 .................................................................................. 300 13.5.3. 进程的同步...................................................................................... 302

14. field_automation机制源代码分析 .................................................................. 307

14.1. 简单的field_automation .......................................................................... 308

14.1.1. 一个简单的例子 .............................................................................. 308 14.1.2. uvm_field_utils_begin宏 ................................................................. 309 14.1.3. 操作的类型...................................................................................... 311 14.1.4. uvm_field_int宏 ............................................................................... 312 14.2. 高级的field_automation机制 .................................................................. 314

14.2.1. __m_uvm_status_container ............................................................. 314 14.2.2. compare等操作 ................................................................................ 315 14.2.3. set_*_local操作 ............................................................................... 320 14.2.4. 自动get_config功能的实现 ............................................................. 322 14.2.5. 小结 ................................................................................................. 326

15. sequence机制源代码分析 ............................................................................... 327

15.1. uvm_do系列宏 ........................................................................................ 327

15.1.1. 宏的展开.......................................................................................... 327

共享

15.1.2. uvm_create_on宏 ............................................................................. 329 15.1.3. SEQ_OR_ITEM是一个sequence_item ........................................... 333 15.1.4. SEQ_OR_ITEM是一个sequence .................................................... 334 15.2. sequence_item的产生与发送 .................................................................. 344

15.2.1. start_item.......................................................................................... 344 15.2.2. UVM的sequence的仲裁机制 .......................................................... 348 15.2.3. finish_item ....................................................................................... 358 15.3. sequence的常用功能 ............................................................................... 363

15.3.1. default_sequence的自动启动 .......................................................... 363 15.3.2. p_sequencer与m_sequencer的区别 ................................................. 366 15.4. sequence的response ................................................................................. 368

15.4.1. put_respont与get_response .............................................................. 368 15.4.2. 使用response_handler ...................................................................... 372

16. config_db机制源代码分析 ............................................................................. 375

16.1. 基本的数据结构...................................................................................... 375

16.1.1. 资源的存放形式 .............................................................................. 376 16.1.2. 资源的存放地点 .............................................................................. 377 16.2. 资源的写入 ............................................................................................. 379

16.2.1. uvm_resource_db类 ......................................................................... 379 16.2.2. uvm_resource#(T)的new函数 ......................................................... 380 16.2.3. uvm_resource#(T)的write函数 ........................................................ 382 16.2.4. uvm_resource_pool的set函数 ......................................................... 385 16.2.5. uvm_config_db的set_default函数 ................................................... 388 16.2.6. uvm_config_db的set_anonymous函数 ............................................ 389 16.2.7. uvm_config_db的set_override函数 ................................................. 390 16.2.8. uvm_config_db的set_override_type函数 ........................................ 390 16.2.9. uvm_config_db的set_override_name函数 ...................................... 391 16.2.10. uvm_config_db的write_by_name函数 .................................... 392 16.2.11. uvm_resource_db的write_by_type函数 .................................. 398 16.3. 资源的读出 ............................................................................................. 401

16.3.1. read_by_name和read_by_type函数 ................................................ 401 16.3.2. uvm_resource#(T)的read函数 ......................................................... 402 16.4. uvm_config_db类对resource_db机制的扩展 ......................................... 402

16.4.1. uvm_config_db的set函数 ................................................................ 402 16.4.2. uvm_config_db的get函数 ............................................................... 407

17. TLM1.0源代码分析 ....................................................................................... 411

17.1. TLM端口简介 ......................................................................................... 411

17.1.1. UVM中两类TLM端口 .................................................................... 411 17.1.2. uvm_tlm_if_base .............................................................................. 412 17.1.3. uvm_sqr_if_base .............................................................................. 414

共享

17.2. uvm_port_base类 ..................................................................................... 416

17.2.1. uvm_port_component_base类 ......................................................... 416 17.2.2. uvm_port_component ...................................................................... 417 17.2.3. uvm_port_base的基本定义 ............................................................. 418 17.2.4. connect函数 ..................................................................................... 422 17.2.5. resolve_bindings .............................................................................. 426 17.3. 常用的port的定义 ................................................................................... 431

17.3.1. uvm_*_imp ...................................................................................... 431 17.3.2. uvm_*_port与uvm_*_export ........................................................... 433 17.3.3. uvm_analysis_* ................................................................................ 435 17.3.4. fifo的使用 ........................................................................................ 437 17.3.5. sequencer与driver之间的连接关系 ................................................ 440

18. register model源代码分析 ............................................................................... 443

18.1. 基本的数据结构...................................................................................... 443

18.1.1. 存储数据的基本单位:uvm_reg_field .......................................... 443 18.1.2. 逻辑上比较独立的数据单位:uvm_reg ........................................ 445 18.1.3. 比较大的容器:uvm_reg_block ..................................................... 447 18.1.4. 略显单薄的uvm_reg_file ................................................................ 448 18.1.5. memory的模型uvm_mem ............................................................... 448 18.1.6. 实现FRONTDOOR操作的uvm_reg_map ...................................... 449 18.1.7. uvm_reg_item与uvm_reg_bus_op ................................................... 450 18.2. 模型的建立 ............................................................................................. 452

18.2.1. 把uvm_reg_field加入到uvm_reg中 ................................................ 452 18.2.2. 把uvm_reg加入到uvm_reg_block中 .............................................. 457 18.2.3. 把uvm_reg加入到uvm_reg_map中 ................................................ 462 18.2.4. 把uvm_mem加入到uvm_reg_block中 ............................................ 465 18.2.5. 把uvm_mem加入到uvm_reg_map中.............................................. 468 18.2.6. 把uvm_reg_file加入到uvm_reg_block中 ....................................... 470 18.2.7. 把子uvm_reg_block加入到父uvm_reg_block中 ............................ 471 18.3. register model的锁定 ............................................................................... 476

18.3.1. uvm_reg_block的lock_model函数 .................................................. 476 18.3.2. Xinit_address_mapsX函数 .............................................................. 479 18.3.3. uvm_reg_map的get_physical_addresses函数 ................................. 486 18.4. uvm_reg的write操作:FRONTDOOR ................................................... 490

18.4.1. reset操作及uvm_reg的原子操作 .................................................... 490 18.4.2. uvm_reg::write ................................................................................. 493 18.4.3. uvm_reg::do_write(一) .................................................................... 494 18.4.4. uvm_reg:: Xcheck_accessX ............................................................. 495 18.4.5. uvm_reg::do_write(二) .................................................................... 500 18.4.6. uvm_reg_map::do_write .................................................................. 503 18.4.7. uvm_reg::do_bus_write ................................................................... 507

UVM1.1应用指南及源代码分析_20111211版.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219