在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5387|回复: 15

[资料] SystemVerilog

[复制链接]
发表于 2010-10-30 00:32:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 lionard 于 2010-11-28 13:39 编辑

See the link:
http://bbs.eetop.cn/viewthread.php?tid=273140

link.rar

117 Bytes, 下载次数: 113 , 下载积分: 资产 -2 信元, 下载支出 2 信元

头像被屏蔽
发表于 2010-10-30 13:03:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2010-10-30 22:33:27 | 显示全部楼层
内容提纲是啥????
发表于 2010-10-30 22:35:50 | 显示全部楼层
TABLE OF CONTENTS
About the Cover xiii
Preface xv
Why This Book Is Important . . . . . . . . . . . . . . . . . . . xvi
What This Book Is About . . . . . . . . . . . . . . . . . . . . . xvi
What Prior Knowledge You Should Have . . . . . . . . xviii
Reading Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviii
Why SystemVerilog? . . . . . . . . . . . . . . . . . . . . . . . . . xix
VHDL and Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . .xix
Hardware Verification Languages . . . . . . . . . . . . . . . . xx
Code Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
For More Information . . . . . . . . . . . . . . . . . . . . . . . xxii
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . xxii
CHAPTER 1 What is Verification? 1
What is a Testbench? . . . . . . . . . . . . . . . . . . . . . . . . . . 1
The Importance of Verification . . . . . . . . . . . . . . . . . . 2
Reconvergence Model . . . . . . . . . . . . . . . . . . . . . . . . . 4
The Human Factor . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Automation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Poka-Yoke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Table of Contents
vi Writing Testbenches using SystemVerilog
Redundancy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
What Is Being Verified? . . . . . . . . . . . . . . . . . . . . . . . 7
Equivalence Checking . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Property Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Functional Verification . . . . . . . . . . . . . . . . . . . . . . . . . 10
Functional Verification Approaches . . . . . . . . . . . . . .11
Black-Box Verification . . . . . . . . . . . . . . . . . . . . . . . . . 11
White-Box Verification . . . . . . . . . . . . . . . . . . . . . . . . . 13
Grey-Box Verification . . . . . . . . . . . . . . . . . . . . . . . . . 14
Testing Versus Verification . . . . . . . . . . . . . . . . . . . . 15
Scan-Based Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Design for Verification . . . . . . . . . . . . . . . . . . . . . . . . . 17
Design and Verification Reuse . . . . . . . . . . . . . . . . . 18
Reuse Is About Trust . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Verification for Reuse . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Verification Reuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
The Cost of Verification . . . . . . . . . . . . . . . . . . . . . . 20
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
CHAPTER 2 Verification Technologies 23
Linting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
The Limitations of Linting Technology . . . . . . . . . . . . . 25
Linting SystemVerilog Source Code . . . . . . . . . . . . . . . 27
Code Reviews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Stimulus and Response . . . . . . . . . . . . . . . . . . . . . . . . . 30
Event-Driven Simulation . . . . . . . . . . . . . . . . . . . . . . . 31
Cycle-Based Simulation . . . . . . . . . . . . . . . . . . . . . . . . 33
Co-Simulators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Verification Intellectual Property . . . . . . . . . . . . . . . . 38
Waveform Viewers . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Code Coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Statement Coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Path Coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Expression Coverage . . . . . . . . . . . . . . . . . . . . . . . . . . 45
FSM Coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
What Does 100 Percent Code Coverage Mean? . . . . . 48
Functional Coverage . . . . . . . . . . . . . . . . . . . . . . . . . 49
Writing Testbenches using SystemVerilog vii
Coverage Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Cross Coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Transition Coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
What Does 100 Percent Functional Coverage Mean? . 54
Verification Language Technologies . . . . . . . . . . . . . 55
Assertions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Simulated Assertions . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Formal Assertion Proving . . . . . . . . . . . . . . . . . . . . . . 59
Revision Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
The Software Engineering Experience . . . . . . . . . . . . . 62
Configuration Management . . . . . . . . . . . . . . . . . . . . . 63
Working with Releases . . . . . . . . . . . . . . . . . . . . . . . . . 65
Issue Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
What Is an Issue? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
The Grapevine System . . . . . . . . . . . . . . . . . . . . . . . . . 68
The Post-It System . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
The Procedural System . . . . . . . . . . . . . . . . . . . . . . . . . 69
Computerized System . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Code-Related Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Quality-Related Metrics . . . . . . . . . . . . . . . . . . . . . . . . 73
Interpreting Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
CHAPTER 3 The Verification Plan 77
The Role of the Verification Plan . . . . . . . . . . . . . . . 78
Specifying the Verification . . . . . . . . . . . . . . . . . . . . . . 78
Defining First-Time Success . . . . . . . . . . . . . . . . . . . . . 79
Levels of Verification . . . . . . . . . . . . . . . . . . . . . . . . 80
Unit-Level Verification . . . . . . . . . . . . . . . . . . . . . . . . . 81
Block and Core Verification . . . . . . . . . . . . . . . . . . . . . 82
ASIC and FPGA Verification . . . . . . . . . . . . . . . . . . . . 84
System-Level Verification . . . . . . . . . . . . . . . . . . . . . . . 84
Board-Level Verification . . . . . . . . . . . . . . . . . . . . . . . . 85
Verification Strategies . . . . . . . . . . . . . . . . . . . . 86
Verifying the Response . . . . . . . . . . . . . . . . . . . . . . . . . 86
From Specification to Features . . . . . . . . . . . . . . . . . 87
Block-Level Features . . . . . . . . . . . . . . . . . . . . . . . . . . 90
System-Level Features . . . . . . . . . . . . . . . . . . . . . . . . . 91
Table of Contents
viii Writing Testbenches using SystemVerilog
Error Types to Look For . . . . . . . . . . . . . . . . . . . . . . . . 91
Prioritize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Design for Verification . . . . . . . . . . . . . . . . . . . . . . . . . 93
Directed Testbenches Approach . . . . . . . . . . . . . . . . 96
Group into Testcases . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
From Testcases to Testbenches . . . . . . . . . . . . . . . . . . . 98
Verifying Testbenches . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Measuring Progress . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Coverage-Driven Random-Based Approach . . . . . . 101
Measuring Progress . . . . . . . . . . . . . . . . . . . . . . . . . . 101
From Features to Functional Coverage . . . . . . . . . . . 103
From Features to Testbench . . . . . . . . . . . . . . . . . . . . 105
From Features to Generators . . . . . . . . . . . . . . . . . . . 107
Directed Testcases . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111
CHAPTER 4 High-Level Modeling 113
High-Level versus RTL Thinking . . . . . . . . . . . . . . .113
Contrasting the Approaches . . . . . . . . . . . . . . . . . . . . 115
You Gotta Have Style! . . . . . . . . . . . . . . . . . . . . . . . .117
A Question of Discipline . . . . . . . . . . . . . . . . . . . . . . . 117
Optimize the Right Thing . . . . . . . . . . . . . . . . . . . . . . 118
Good Comments Improve Maintainability . . . . . . . . . 121
Structure of High-Level Code . . . . . . . . . . . . . . . . . 122
Encapsulation Hides Implementation Details . . . . . . 122
Encapsulating Useful Subprograms . . . . . . . . . . . . . . 125
Encapsulating Bus-Functional Models . . . . . . . . . . . . 127
Data Abstraction . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
2-state Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Struct, Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Union . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Associative Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
From High-Level to Physical-Level . . . . . . . . . . . . . . 146
Object-Oriented Programming . . . . . . . . . . . . . . . . 147
Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Writing Testbenches using SystemVerilog ix
Polymorphism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
The Parallel Simulation Engine . . . . . . . . . . . . . . . . 159
Connectivity, Time and Concurrency . . . . . . . . . . . . . 160
The Problems with Concurrency . . . . . . . . . . . . . . . . . 160
Emulating Parallelism on a Sequential Processor . . . 162
The Simulation Cycle . . . . . . . . . . . . . . . . . . . . . . . . . 163
Parallel vs. Sequential . . . . . . . . . . . . . . . . . . . . . . . . 169
Fork/Join Statement . . . . . . . . . . . . . . . . . . . . . . . . . . 170
The Difference Between Driving and Assigning . . . . . 173
Race Conditions . . . . . . . . . . . . . . . . . . . . . . . . 176
Read/Write Race Conditions . . . . . . . . . . . . . . . . . . . . 177
Write/Write Race Conditions . . . . . . . . . . . . . . . . . . . 180
Initialization Races . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Guidelines for Avoiding Race Conditions . . . . . . . . . . 183
Semaphores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Portability Issues . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Events from Overwritten Scheduled Values . . . . . . . . 186
Disabled Scheduled Values . . . . . . . . . . . . . . . . . . . . . 187
Output Arguments on Disabled Tasks . . . . . . . . . . . . . 188
Non-Re-Entrant Tasks . . . . . . . . . . . . . . . . . . . . . . . . . 188
Static vs. Automatic Variables . . . . . . . . . . . . . . . . . . 193
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
CHAPTER 5 Stimulus and Response 197
Reference Signals . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Time Resolution Issues . . . . . . . . . . . . . . . . . . . . . . . . 199
Aligning Signals in Delta-Time . . . . . . . . . . . . . . . . . . 201
Clock Multipliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Asynchronous Reference Signals . . . . . . . . . . . . . . . . 205
Random Generation of Reference Signal Parameters 206
Applying Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Simple Stimulus . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Applying Synchronous Data Values . . . . . . . . . . . . . . 212
Abstracting Waveform Generation . . . . . . . . . . . . . . . 214
Simple Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Visual Inspection of Response . . . . . . . . . . . . . . . . . . . 217
Producing Simulation Results . . . . . . . . . . . . . . . . . . . 217
Minimizing Sampling . . . . . . . . . . . . . . . . . . . . . . . . . 219
Visual Inspection of Waveforms . . . . . . . . . . . . . . . . . 220
Table of Contents
x Writing Testbenches using SystemVerilog
Self-Checking Testbenches . . . . . . . . . . . . . . . . . . . . . 221
Input and Output Vectors . . . . . . . . . . . . . . . . . . . . . . 221
Golden Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Self-Checking Operations . . . . . . . . . . . . . . . . . . . . . . 224
Complex Stimulus . . . . . . . . . . . . . . . . . . . . . . . . . 227
Feedback Between Stimulus and Design . . . . . . . . . . 228
Recovering from Deadlocks . . . . . . . . . . . . . . . . . . . . 228
Asynchronous Interfaces . . . . . . . . . . . . . . . . . . . . . . . 231
Bus-Functional Models . . . . . . . . . . . . . . . . . . . . . . 234
CPU Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
From Bus-Functional Tasks to Bus-Functional Model 236
Physical Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Configurable Bus-Functional Models . . . . . . . . . . . . 243
Response Monitors . . . . . . . . . . . . . . . . . . . . . . . . . 246
Autonomous Monitors . . . . . . . . . . . . . . . . . . . . . . . . . 249
Slave Generators . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Multiple Possible Transactions . . . . . . . . . . . . . . . . . . 255
Transaction-Level Interface . . . . . . . . . . . . . . . . . . . 258
Procedural Interface vs Dataflow Interface . . . . . . . . 259
What is a Transaction? . . . . . . . . . . . . . . . . . . . . . . . . 263
Blocking Transactions . . . . . . . . . . . . . . . . . . . . . . . . 265
Nonblocking Transactions . . . . . . . . . . . . . . . . . . . . . 265
Split Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
CHAPTER 6 Architecting Testbenches 279
Verification Harness . . . . . . . . . . . . . . . . . . . . . . . . 280
Design Configuration . . . . . . . . . . . . . . . . . . . . . . . 284
Abstracting Design Configuration . . . . . . . . . . . . . . . 285
Configuring the Design . . . . . . . . . . . . . . . . . . . . . . . . 288
Random Design Configuration . . . . . . . . . . . . . . . . . . 290
Self-Checking Testbenches . . . . . . . . . . . . . . . . . . . 292
Hard Coded Response . . . . . . . . . . . . . . . . . . . . . . . . 294
Data Tagging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Reference Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Transfer Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Scoreboarding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Integration with the Transaction Layer . . . . . . . . . . . 302
Writing Testbenches using SystemVerilog xi
Directed Stimulus . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Random Stimulus . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Atomic Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Adding Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Constraining Sequences . . . . . . . . . . . . . . . . . . . . . . . 316
Defining Random Scenarios . . . . . . . . . . . . . . . . . . . . 320
Defining Procedural Scenarios . . . . . . . . . . . . . . . . . 322
System-Level Verification Harnesses . . . . . . . . . . . 327
Layered Bus-Functional Models . . . . . . . . . . . . . . . . . 328
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
CHAPTER 7 Simulation Management 333
Transaction-Level Models . . . . . . . . . . . . . . . . . . . . 333
Transaction-Level versus Synthesizable Models . . . . 334
Example of Transaction-Level Modeling . . . . . . . . . . 335
Characteristics of a Transaction-Level Model . . . . . . 337
Modeling Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Writing Good Transaction-Level Models . . . . . . . . . . 342
Transaction-Level Models Are Faster . . . . . . . . . . . . 347
The Cost of Transaction-Level Models . . . . . . . . . . . . 348
The Benefits of Transaction-Level Models . . . . . . . . . 349
Demonstrating Equivalence . . . . . . . . . . . . . . . . . . . . 351
Pass or Fail? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
Managing Simulations . . . . . . . . . . . . . . . . . . . . . . . 355
Configuration Management . . . . . . . . . . . . . . . . . . . . 355
Avoiding Recompilation or SDF Re-Annotation . . . . . 358
Output File Management . . . . . . . . . . . . . . . . . . . . . . 361
Seed Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
Regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Running Regressions . . . . . . . . . . . . . . . . . . . . . . . . . . 366
Regression Management . . . . . . . . . . . . . . . . . . . . . . . 367
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
发表于 2011-4-28 13:39:12 | 显示全部楼层
又是英文的?
发表于 2014-9-11 23:48:36 | 显示全部楼层
Avanced uvm

Advanced OVM (& UVM).pdf

2.23 MB, 下载次数: 113 , 下载积分: 资产 -2 信元, 下载支出 2 信元

发表于 2014-11-18 20:21:28 | 显示全部楼层
回复 1# lionard


   好
发表于 2015-5-3 17:17:02 | 显示全部楼层
多谢楼主分享
发表于 2015-8-22 15:12:31 | 显示全部楼层
thank yo
发表于 2017-8-17 15:55:26 | 显示全部楼层
Thanks for share
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-19 04:26 , Processed in 0.026468 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表