没有合适的资源?快使用搜索试试~ 我知道了~
首页UVM1.1入门与源码深度解析:实战指南
UVM1.1入门与源码深度解析:实战指南
4星 · 超过85%的资源 需积分: 15 23 下载量 28 浏览量
更新于2024-07-18
2
收藏 4.39MB PDF 举报
《UVM1.1应用指南及源代码分析》是由张强撰写的专著,旨在深入解析和分享UVM(Universal Verification Methodology,通用验证方法学)1.1版本的相关知识。该书面向初学者,提供了一个全面且详细的UVM应用教程,不仅包括了UVM的基础使用,如章节1到9,这些内容对于验证工程师来说至关重要,可以帮助他们理解并实践测试环境的构建与管理。 书中不仅阐述了UVM的架构、设计原则和流程,还提供了实际的案例分析和源代码解读,让读者能够从实践中掌握这一关键的测试工具。作者强调,尽管自己作为作者在追求完美方面面临时间和资源限制,但仍尽力将个人在学习和应用UVM过程中的经验分享出来,希望这本书能够成为后来者学习的引导灯,哪怕书中可能存在不完美的地方,读者可以凭借自己的专业知识和批判性思维进行理解和修正。 后半部分(第10到第19章)则更加侧重于UVM的底层工作原理和深度剖析,这部分内容更适合对UVM有深入探究需求的高级用户或技术爱好者,他们会从中获得对UVM更深层次的理解,解答那些源于技术问题的疑惑。 作者鼓励读者在阅读过程中积极提出反馈,无论是疑问、建议还是发现的错误,可以通过电子邮件与作者交流,共同探讨UVM的相关话题。作者的初衷是通过这本书分享自己的学习成果,并期待能与读者一起推动UVM技术的发展。 《UVM1.1应用指南及源代码分析》是一本实用性和理论性兼具的书籍,适合不同层次的UVM学习者参考,也反映了作者对技术分享的执着和专业精神。
资源详情
资源推荐
XIV
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
XV
18.4.8. uvm_reg::do_write(三) .................................................................... 512
18.4.9. uvm_reg::do_predict ........................................................................ 514
18.4.10. uvm_reg_field::do_predict(一) ................................................ 515
18.4.11. uvm_reg::do_write(四) ............................................................ 518
18.5. uvm_reg的write操作:BACKDOOR ..................................................... 520
18.5.1. uvm_reg::do_write(五) .................................................................... 520
18.5.2. uvm_reg::backdoor_read ................................................................. 522
18.5.3. uvm_reg:: backdoor_read_func(一) ................................................. 523
18.5.4. uvm_reg::get_full_hdl_path(一) ...................................................... 523
18.5.5. uvm_reg_block::get_full_hdl_path .................................................. 526
18.5.6. uvm_reg_file::get_full_hdl_path ..................................................... 528
18.5.7. uvm_reg::get_full_hdl_path(二) ...................................................... 529
18.5.8. uvm_reg:: backdoor_read_func(二) ................................................. 530
18.5.9. uvm_reg::do_write(六) .................................................................... 532
18.6. uvm_reg的read操作 ................................................................................ 533
18.6.1. uvm_reg的read与XreadX ................................................................ 533
18.6.2. uvm_reg::do_read(一) ...................................................................... 534
18.6.3. uvm_reg_field::do_predict(二) ........................................................ 537
18.6.4. uvm_reg::do_read(二)
...................................................................... 539
18.7. register model的其它常用操作 ............................................................... 545
18.7.1. uvm_reg的poke和peek操作 ............................................................ 545
18.7.2. uvm_reg_field的write操作 .............................................................. 548
18.7.3. uvm_reg_field的poke操作 .............................................................. 558
18.7.4. uvm_mem的write与burst_write操作 .............................................. 560
18.7.5. uvm_reg的set和get操作 .................................................................. 567
18.7.6. uvm_reg的update操作 ..................................................................... 570
18.7.7. uvm_reg的mirror操作 ..................................................................... 572
19. callback机制源代码分析 ................................................................................ 577
19.1. 从uvm_register_cb宏说起 ....................................................................... 577
19.1.1. callback的实例 ................................................................................ 577
19.1.2. 类的继承关系及数据结构 .............................................................. 578
19.1.3. uvm_register_cb宏的展开 ............................................................... 582
19.1.4. m_register_pair ................................................................................ 583
19.2. callback的使用 ........................................................................................ 586
19.2.1. uvm_callbacks::add(一) ................................................................... 586
19.2.2. uvm_callbacks_base:: check_registration ........................................ 588
19.2.3. uvm_callbacks::add(二) ................................................................... 590
19.2.4. 加入适用于某一类型的callback .................................................... 593
19.2.5. uvm_do_callbacks ............................................................................ 595
19.2.6. 子类继承父类的callback ................................................................ 600
XVI
19.2.7. 子类继承父类callback的使用 ........................................................ 604
附录A:术语 .................................................................................................................. 607
附录B:函数索引 ........................................................................................................... 609
XVII
图目录
图 1-1 UVM在数字电路设计中的位置 .................................................................... 3
图 1-2 UVM对systemverilog的封装 .......................................................................... 4
图 1-3 简单验证平台 ................................................................................................ 5
图 1-4 UVM验证平台的树形结构 ............................................................................ 6
图 1-5 实际验证平台 ................................................................................................ 7
图 1-6 pack_bytes和unpack_bytes ........................................................................... 14
图 1-7 UVM验证平台中的agent ............................................................................. 18
图 1-8 加入case概念的UVM树 .............................................................................. 31
图 1-9 UVM验证平台执行流程 .............................................................................. 31
图 2-1 完整的UVM树 ............................................................................................. 35
图 2-2 UVM中常用类的继承关系 .......................................................................... 37
图 3-1 UVM中的常用phase ..................................................................................... 47
图 3-2 UVM中所有的phase ..................................................................................... 50
图 3-3 两个driver位于同一domain ......................................................................... 57
图 3-4 两个driver位于不同的domain ..................................................................... 58
图 4-1 穿梭的transaction ......................................................................................... 60
图 5-1 default sequence的设置与启动 ..................................................................... 77
图 5-2 sequencer与driver之间的通信 ...................................................................... 80
图 5-3 virtual sequence的使用 ................................................................................. 85
图 6-1 半全局变量 .................................................................................................. 93
图 7-1 monitor与scoreboard的通信 ....................................................................... 104
图 7-2 使用public成员变量实现通信 .................................................................. 105
图 7-3 put操作 ........................................................................................................ 106
图 7-4 get操作 ........................................................................................................ 106
XVIII
图 7-5 transport操作 ............................................................................................... 107
图 7-6 component在端口通信中的作用 ................................................................ 109
图 7-7 connect关系的建立 ..................................................................................... 110
图 7-8 PORT与IMP的连接 .................................................................................... 111
图 7-9 port、export与imp的连接 .......................................................................... 115
图 7-10 使用fifo连接component ........................................................................... 122
图 8-1 uvm_reg_field和uvm_reg ........................................................................... 126
图 8-2 使用register model读取寄存器的流程 ..................................................... 128
图 8-3 uvm_reg_field::configure函数的参数 ........................................................ 130
图 8-4 register model的详细工作流程(FRONTDOOR) ....................................... 133
图 8-5 register model读操作返回值的两种方式 .................................................. 135
图 8-6 层次化的register model ............................................................................. 137
图 10-1 uvm_component及uvm_root类派生图 ..................................................... 156
图 10-2 uvm_component树形结构的代码实现 ..................................................... 160
图 10-3 实例化时parent设置为null的uvm_component ....................................... 167
图 11-1 UVM仿真汇总报告 .................................................................................. 179
图 12-1 形成环路的override ................................................................................. 215
图 13-1 UVM的phase运行图 ................................................................................. 239
图 13-2 predecessor与successor ............................................................................. 250
图 14-1 句柄与实例 .............................................................................................. 319
图 15-1 uvm_sequence的继承关系 ....................................................................... 331
图 15-2 uvm_sequencer的继承关系 ...................................................................... 337
图 19-1 uvm_callbacks类的继承关系 ................................................................... 578
剩余635页未读,继续阅读
weixin_43621691
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 计算机人脸表情动画技术发展综述
- 关系数据库的关键字搜索技术综述:模型、架构与未来趋势
- 迭代自适应逆滤波在语音情感识别中的应用
- 概念知识树在旅游领域智能分析中的应用
- 构建is-a层次与OWL本体集成:理论与算法
- 基于语义元的相似度计算方法研究:改进与有效性验证
- 网格梯度多密度聚类算法:去噪与高效聚类
- 网格服务工作流动态调度算法PGSWA研究
- 突发事件连锁反应网络模型与应急预警分析
- BA网络上的病毒营销与网站推广仿真研究
- 离散HSMM故障预测模型:有效提升系统状态预测
- 煤矿安全评价:信息融合与可拓理论的应用
- 多维度Petri网工作流模型MD_WFN:统一建模与应用研究
- 面向过程追踪的知识安全描述方法
- 基于收益的软件过程资源调度优化策略
- 多核环境下基于数据流Java的Web服务器优化实现提升性能
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功