没有合适的资源?快使用搜索试试~ 我知道了~
uvm-users-guide-1.0
需积分: 5 0 下载量 80 浏览量
2025-01-03
21:08:44
上传
评论
收藏 1.69MB PDF 举报
温馨提示
UVM用户指南,从事IC验证的人都知道UVM是一种验证方法学,想要学习UVM则必须要看UVM用户指南手册,英文版。
资源推荐
资源详情
资源评论
Universal Verification Methodology
(UVM) 1.0 User’s Guide
February 23, 2011
ii UVM 1.0 User’s Guide February 23, 2011
Copyright
©
2010–2011 Accellera. All rights reserved.
Copyright
©
2008–2011 Cadence Design Systems, Inc. (Cadence). All rights reserved.
Cadence Design Systems, Inc., 2655 Seely Ave., San Jose, CA 95134, USA.
Copyright
©
2008–2011 Mentor Graphics, Corp. (Mentor). All rights reserved.
Mentor Graphics, Corp., 8005 SW Boeckman Rd., Wilsonville, OR 97070, USA
Copyright
©
2006–2011 Synopsys, Inc. (Synopsys). All rights reserved.
Synopsys, Inc., 700 E. Middlefield Rd, Mountain View, CA 94043
This product is licensed under the Apache Software Foundation’s Apache License, Version 2.0,
January 2004. The full license is available at: http://www.apache.org/licenses/
.
Notices
While this guide offers a set of instructions to perform one or more specific verification tasks, it should be
supplemented by education, experience, and professional judgment. Not all aspects of this guide may be
applicable in all circumstances. The UVM 1.0 User’s Guide does not necessarily represent the standard of
care by which the adequacy of a given professional service must be judged nor should this document be
applied without consideration of a project’s unique aspects. This guide has been approved through the
Accellera consensus process and serves to increase the awareness of information and approaches in
verification methodology. This guide may have several recommendations to accomplish the same thing and
may require some judgment to determine the best course of action.
The UVM 1.0 Class Reference represents the foundation used to create the UVM 1.0 User’s Guide. This
guide is a way to apply the UVM 1.0 Class Reference, but is not the only way. Accellera believes standards
are an important ingredient to foster innovation and continues to encourage industry innovation based on its
standards.
Suggestions for improvements to the UVM 1.0 User’s Guide are welcome. They should be sent to the VIP
email reflector
vip-tc@lists.accellera.org
The current Working Group’s website address is
www.accellera.org/activities/vip
February 23, 2011 UVM 1.0 User’s Guide iii
Contents
1. Overview.............................................................................................................................................. 1
1.1 Introduction to UVM.................................................................................................................. 1
1.1.1 Coverage-Driven Verification (CDV) ........................................................................ 1
1.1.2 Testbenches and Environments .................................................................................. 1
1.2 Verification Component Overview ............................................................................................ 3
1.2.1 Data Item (Transaction) .............................................................................................. 3
1.2.2 Driver (BFM) ..............................................................................................................3
1.2.3 Sequencer .................................................................................................................... 3
1.2.4 Monitor ....................................................................................................................... 3
1.2.5 Agent ........................................................................................................................... 4
1.2.6 Environment ................................................................................................................ 4
1.3 The UVM Class Library............................................................................................................. 5
1.4 Other UVM Facilities................................................................................................................. 7
1.4.1 UVM Factory .............................................................................................................. 7
1.4.2 Transaction-Level Modeling (TLM) .......................................................................... 8
2. Transaction-Level Modeling (TLM) ................................................................................................... 9
2.1 Overview .................................................................................................................................... 9
2.2 TLM, TLM-1, and TLM-2.0 ......................................................................................................9
2.2.1 TLM-1 Implementation ............................................................................................ 10
2.2.2 TLM-2.0 Implementation ......................................................................................... 10
2.3 Basics ....................................................................................................................................... 10
2.3.1 Transactions ..............................................................................................................10
2.3.2 Transaction-Level Communication .......................................................................... 11
2.3.3 Basic TLM Communication ..................................................................................... 11
2.3.4 Communicating between Processes .......................................................................... 12
2.3.5 Blocking versus Nonblocking ................................................................................... 13
2.3.6 Connecting Transaction-Level Components ............................................................ 13
2.3.7 Peer-to-Peer connections .......................................................................................... 14
2.3.8 Port/Export Compatibility ......................................................................................... 14
2.4 Encapsulation and Hierarchy ................................................................................................... 14
2.4.1 Hierarchical Connections .......................................................................................... 14
2.4.2 Connection Types ..................................................................................................... 16
2.5 Analysis Communication ......................................................................................................... 16
2.5.1 Analysis Ports ........................................................................................................... 16
2.5.2 Analysis Exports ....................................................................................................... 17
2.6 Generic Payload ....................................................................................................................... 18
2.6.1 Attributes .................................................................................................................. 18
2.6.2 Accessors .................................................................................................................. 19
2.6.3 Extensions ................................................................................................................. 20
2.7 Core Interfaces and Ports ......................................................................................................... 21
2.8 Blocking Transport................................................................................................................... 22
2.9 Nonblocking Transport ............................................................................................................ 22
2.10 Sockets ..................................................................................................................................... 24
2.11 Time ......................................................................................................................................... 26
2.12 Use Models............................................................................................................................... 28
iv UVM 1.0 User’s Guide February 23, 2011
3. Phasing............................................................................................................................................... 31
4. Developing Reusable Verification Components................................................................................ 33
4.1 Modeling Data Items for Generation ....................................................................................... 33
4.1.1 Inheritance and Constraint Layering ......................................................................... 34
4.1.2 Defining Control Fields (“Knobs”) ........................................................................... 35
4.2 Transaction-Level Components ............................................................................................... 36
4.3 Creating the Driver................................................................................................................... 38
4.4 Creating the Sequencer............................................................................................................. 39
4.5 Connecting the Driver and Sequencer..................................................................................... 39
4.5.1 Basic Sequencer and Driver Interaction ................................................................... 40
4.5.2 Querying for the Randomized Item .......................................................................... 40
4.5.3 Fetching Consecutive Randomized Items ................................................................. 41
4.5.4 Sending Processed Data back to the Sequencer ........................................................ 41
4.5.5 Using TLM-Based Drivers ....................................................................................... 42
4.6 Creating the Monitor ................................................................................................................ 42
4.7 Instantiating Components......................................................................................................... 44
4.8 Creating the Agent ................................................................................................................... 45
4.8.1 Operating Modes ....................................................................................................... 46
4.8.2 Connecting Components ........................................................................................... 47
4.9 Creating the Environment ........................................................................................................ 47
4.9.1 The Environment Class ............................................................................................. 48
4.9.2 The UVM Configuration Mechanism ....................................................................... 48
4.10 Enabling Scenario Creation...................................................................................................... 49
4.10.1 Declaring User-Defined Sequences .......................................................................... 50
4.10.2 Generating Stimulus with Sequences and Sequence Items ...................................... 51
4.10.3 Configuring the Sequencer’s Default Sequence ....................................................... 54
4.10.4 Overriding Sequence Items and Sequences .............................................................. 55
4.11 Managing End of Test.............................................................................................................. 56
4.12 Implementing Checks and Coverage........................................................................................ 57
4.12.1 Implementing Checks and Coverage in Classes ....................................................... 57
4.12.2 Implementing Checks and Coverage in Interfaces ................................................... 59
4.12.3 Controlling Checks and Coverage ............................................................................ 59
5. Using Verification Components ........................................................................................................ 61
5.1 Using a Verification Component.............................................................................................. 61
5.2 Testbench Class........................................................................................................................ 61
5.3 Instantiating Verification Components .................................................................................... 62
5.4 Test Class ................................................................................................................................. 64
5.5 Verification Component Configuration ................................................................................... 64
5.5.1 Verification Component Configurable Parameters ................................................... 64
5.5.2 Verification Component Configuration Mechanism ................................................ 65
5.5.3 Choosing between uvm_resource_db and uvm_config_db ...................................... 66
5.5.4 Using a Configuration Class ..................................................................................... 66
5.6 Creating and Selecting a User-Defined Test ............................................................................ 67
5.6.1 Creating the Base Test .............................................................................................. 67
5.6.2 Creating Tests from a Test-Family Base Class ......................................................... 67
5.6.3 Test Selection ............................................................................................................68
5.7 Creating Meaningful Tests ....................................................................................................... 69
5.7.1 Constraining Data Items ........................................................................................... 69
5.7.2 Data Item Definitions ................................................................................................ 70
5.7.3 Creating a Test-Specific Frame ................................................................................ 70
February 23, 2011 UVM 1.0 User’s Guide v
5.8 Virtual Sequences..................................................................................................................... 71
5.8.1 Creating a Virtual Sequencer .................................................................................... 72
5.8.2 Creating a Virtual Sequence ..................................................................................... 73
5.8.3 Controlling Other Sequencers ................................................................................... 74
5.8.4 Connecting a Virtual Sequencer to Subsequencers .................................................. 74
5.9 Checking for DUT Correctness................................................................................................ 75
5.10 Scoreboards .............................................................................................................................. 75
5.10.1 Creating the Scoreboard ............................................................................................ 76
5.10.2 Adding Exports to uvm_scoreboard ......................................................................... 76
5.10.3 Requirements of the TLM Implementation .............................................................. 77
5.10.4 Defining the Action Taken ....................................................................................... 77
5.10.5 Adding the Scoreboard to the Environment ............................................................. 78
5.10.6 Summary ................................................................................................................... 78
5.11 Implementing a Coverage Model............................................................................................. 79
5.11.1 Selecting a Coverage Method ................................................................................... 79
5.11.2 Implementing a Functional Coverage Model ........................................................... 79
5.11.3 Enabling and Disabling Coverage ............................................................................ 79
6. Using the Register Layer Classes ...................................................................................................... 81
6.1 Overview .................................................................................................................................. 81
6.2 Usage Model ............................................................................................................................ 81
6.2.1 Sub-register Access ................................................................................................... 84
6.2.2 Mirroring ................................................................................................................... 85
6.2.3 Memories are not Mirrored ....................................................................................... 86
6.3 Access API ............................................................................................................................... 86
6.3.1 read / write ................................................................................................................ 86
6.3.2 peek / poke ................................................................................................................ 87
6.3.3 get / set ...................................................................................................................... 87
6.3.4 randomize .................................................................................................................. 87
6.3.5 update ........................................................................................................................ 88
6.3.6 mirror ........................................................................................................................ 88
6.3.7 Concurrent Accesses ................................................................................................. 88
6.4 Coverage Models...................................................................................................................... 89
6.4.1 Predefined Coverage Identifiers ............................................................................... 89
6.4.2 Controlling Coverage Model Construction and Sampling ....................................... 89
6.5 Constructing a Register Model................................................................................................. 90
6.5.1 Field Types ...............................................................................................................90
6.5.2 Register Types .......................................................................................................... 96
6.5.3 Register File Types ................................................................................................... 99
6.5.4 Memory Types ........................................................................................................ 101
6.5.5 Block Types ............................................................................................................ 102
6.5.6 Packaging a Register Model ................................................................................... 106
6.5.7 Maximum Data Size ............................................................................................... 106
6.6 Back-door Access................................................................................................................... 107
6.6.1 Back-door read/write vs. peek/poke ....................................................................... 107
6.6.2 Hierarchical HDL Paths .......................................................................................... 108
6.6.3 VPI-based Back-door Access ................................................................................. 109
6.6.4 User-defined Back-door Access ............................................................................. 110
6.6.5 Back-door Access for Protected Memories ............................................................ 110
6.6.6 Active Monitoring ................................................................................................... 111
6.7 Special Registers .................................................................................................................... 112
6.7.1 Pre-defined Special Registers ................................................................................. 113
6.7.2 Unmapped Registers and Memories ....................................................................... 114
剩余197页未读,继续阅读
资源评论
yongyong1126
- 粉丝: 0
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【Python】基于大型语言模型的评论回复机器人.zip
- 基于java的社区维修平台设计新版源码+数据库+说明
- matlab simulink三相四桥臂逆变器仿真模型 采用电压外环,电流内环控制策略,交流侧可以接不平衡负载,在负载不平衡的情况下依然保持输出电压对称 直流侧电压为750V,可以自己定义,交流侧为
- 基于java的网上商城购物系统设计新版源码+数据库+说明
- 【PHP】一个PHP写的telegram机器人_pgj.zip
- 【python机器人】基于Python的虚拟形象机器人_pgj.zip
- 【C++】哔哩哔哩直播万能场控机器人,弹幕姬+答谢姬+回复姬+点歌姬+各种小骚操作,目前唯一可编程机器人_pgj.zip
- 【JavaScrip】一个傻妞机器人插件库_pgj.zip
- 【java】Java课程大项目-消息中间件比赛(实现进程内消息队列)_pgj.zip
- 【Python学习】Python爬虫学习、总结、收集_pgj.zip
- 【GO】可一键部署的VercelTelegram消息推送机器人_pgj.zip
- 【C#】基于C#的消息队列服务产品中间件_pgj.zip
- 【Python】基于大型语言模型的评论回复机器人_pgj.zip
- 【Python爬虫】基于Python的淘宝千牛店铺上下架商品_pgj.zip
- 【Python】Python爬虫实战--小猪短租爬虫_pgj.zip
- Matlab Simulink 对事件触发控制进行仿真并使其最终结果达到稳定
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功