资料介绍
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
APPENDIX A Coding Guidelines 371
File Structure 372
Filenames 375
Style Guidelines . . 376
Table of Contents
xii Writing Testbenches using SystemVerilog
Comments 376
Layout . . 378
Structure 380
Debugging 383
Naming Guidelines 384
Capitalization 384
Identifiers 386
Constants 389
Portability Guidelines . 391
APPENDIX B Glossary 397
Index 401
- Efficient packet classification using TCAM
- 单片机C51中interrupt和using应该如何使用详细方法说明
- Writing Testbenches using SystemVerilog_Janick Bergeron 0次下载
- Writing Efficient Testbenches 0次下载
- PLD Programming Using VHDL 0次下载
- Using the Agilent U2300A Serie
- E1 2.048 Mb/s Interface Pod
- Coefficient RAM Access Mechani
- Using Allegro PCB SI to Analyz 0次下载
- Using Wavelet Eigenvalues as t
- 编写高效的测试设计testbenches
- Writing testbenches using Syst 0次下载
- Writing Testbench 0次下载
- Using the Timer Interrupt Syst
- Writing Testbenches -functiona
- 关于AI遗传算法的详解 8.3w次阅读
- USB23年发展史,多了什么变化? 8.2w次阅读
- 分析总结网优的过去及现状、未来发展趋势 2928次阅读
- 5G时代到来,各个国家的2G/3G也将开始“退休” 752次阅读
- 宽禁带器件和仿真环境介绍 1457次阅读
- 在贴片加工厂中有哪些安全防护需要了解 1306次阅读
- 复合放大器实现高精度的高输出驱动能力 获得最佳的性能 1600次阅读
- 用降压型稳压器或线性稳压器电源时值来会为负载供电 984次阅读
- 锂电池并联充电时保护板均衡原理 3w次阅读
- 更小更智能的电机控制器推进HEV/EV市场 1105次阅读
- C51单片机interrupt和using的使用 6911次阅读
- 基于C51中断过程及interrupt和using的使用 3212次阅读
- Google编程风格指南(二) 2504次阅读
- Unity远程加载到本地,本地并加载到游戏中 2188次阅读
- Date功能:ISE中如何在未综合实现的前提下打开ChipScope ? 1360次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1490次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 92次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 10次下载 | 免费
- 6基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
- 7蓝牙设备在嵌入式领域的广泛应用
- 0.63 MB | 3次下载 | 免费
- 89天练会电子电路识图
- 5.91 MB | 3次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537791次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233045次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多