Foster / Krolnik / Lacey | Assertion-Based Design | E-Book | www.sack.de
E-Book

E-Book, Englisch, 406 Seiten

Foster / Krolnik / Lacey Assertion-Based Design


2. Auflage 2004
ISBN: 978-1-4020-8028-9
Verlag: Springer
Format: PDF
Kopierschutz: 1 - PDF Watermark

E-Book, Englisch, 406 Seiten

ISBN: 978-1-4020-8028-9
Verlag: Springer
Format: PDF
Kopierschutz: 1 - PDF Watermark



Chapter 3 Specifying RTL Properties 61 3. 1 Definitions and concepts 62 62 3. 1. 1 Property 3. 1. 2 Events 65 3. 2 Property classification 65 Safety versus liveness 66 3. 2. 1 3. 2. 2 Constraint versus assertion 67 3. 2. 3 Declarative versus procedural 67 3. 3 RTL assertion specification techniques 68 RTL invariant assertions 69 3. 3. 1 3. 3. 2 Declaring properties with PSL 72 RTL cycle related assertions 73 3. 3. 3 3. 3. 4 PSL and default clock declaration 74 3. 3. 5 Specifying sequences 75 3. 3. 6 Specifying eventualities 80 3. 3. 7 PSL built-in functions 82 3. 4Pragma-based assertions 82 3. 5 SystemVerilog assertions 84 3. 5. 1 Immediate assertions 84 3. 5. 2Concurrent assertions 86 3. 5. 3 System functions 95 3. 6 PCI property specification example 96 3. 6. 1 PCI overview 96 3. 7 Summary 102 Chapter 4 PLI-Based Assertions 103 4. 1 Procedural assertions 104 4. 1. 1 A simple PLI assertion 105 4. 1. 2 Assertions within a simulation time slot 108 4. 1. 3 Assertions across simulation time slots 111 4. 1. 4 False firing across multiple time slots 116 4. 2 PLI-based assertion library 118 4. 2. 1 Assert quiescent state 119 4. 3 Summary 123 Chapter 5 Functional Coverage 125 5. 1 Verification approaches 126 5. 2 Understanding coverage 127 5. 2. 1 Controllability versus observability 128 5. 2.

Foster / Krolnik / Lacey Assertion-Based Design jetzt bestellen!

Weitere Infos & Material


1;TABLE OF CONTENTS;6
2;PREFACE;15
2.1;Book organization;17
2.2;New in Second Edition;20
2.3;Acknowledgements;20
3;1 INTRODUCTION;22
3.1;1.1 Property checking;22
3.2;1.2 Verification techniques;23
3.3;1.3 What is an assertion?;24
3.3.1;1.3.1 A historical perspective;25
3.3.2;1.3.2 Do assertions really work?;27
3.3.3;1.3.3 What are the benefits of assertions?;28
3.3.4;1.3.4 Why are assertions not used?;32
3.4;1.4 Phases of the design process;35
3.4.1;1.4.1 Ensuring requirements are satisfied;37
3.4.2;1.4.2 Techniques for ensuring consistency;39
3.4.3;1.4.3 Roles and ownership;40
3.5;1.5 Summary;41
4;2 ASSERTION METHODOLOGY;42
4.1;2.1 Design methodology;42
4.1.1;2.1.1 Project planning;43
4.1.2;2.1.2 Design requirements;48
4.1.3;2.1.3 Design documents;49
4.1.4;2.1.4 Design reviews;50
4.1.5;2.1.5 Design validation;51
4.2;2.2 Assertion methodology for new designs;51
4.2.1;2.2.1 Key learnings;52
4.2.2;2.2.2 Best practices;54
4.2.3;2.2.3 Assertion density;58
4.2.4;2.2.4 Process for adding assertions;60
4.2.5;2.2.5 When not to add assertions;60
4.3;2.3 Assertion methodology for existing designs;61
4.4;2.4 Assertions and simulation;63
4.5;2.5 Assertions and formal verification;65
4.5.1;2.5.1 Formal verification framework;65
4.5.2;2.5.2 Formal methodology;69
4.5.3;2.5.3 ECC example;74
4.5.4;2.5.4 Gradual exhaustive formal verification;77
4.6;2.6 Summary;80
5;3 SPECIFYING RTL PROPERTIES;81
5.1;3.1 Definitions and concepts;82
5.1.1;3.1.1 Property;82
5.1.2;3.1.2 Events;85
5.2;3.2 Property classification;85
5.2.1;3.2.1 Safety versus liveness;86
5.2.2;3.2.2 Constraint versus assertion;87
5.2.3;3.2.3 Declarative versus procedural;87
5.3;3.3 RTL assertion specification techniques;88
5.3.1;3.3.1 RTL invariant assertions;89
5.3.2;3.3.2 Declaring properties with PSL;92
5.3.3;3.3.3 RTL cycle related assertions;93
5.3.4;3.3.4 PSL and default clock declaration;94
5.3.5;3.3.5 Specifying sequences;95
5.3.6;3.3.6 Specifying eventualities;100
5.3.7;3.3.7 PSL built- in functions;102
5.4;3.4 Pragma- based assertions;102
5.5;3.5 SystemVerilog assertions;104
5.5.1;3.5.1 Immediate assertions;104
5.5.2;3.5.2 Concurrent assertions;106
5.5.3;3.5.3 System functions;115
5.6;3.6 PCI property specification example;116
5.6.1;3.6.1 PCI overview;116
5.7;3.7 Summary;122
6;4 PLI-BASED ASSERTIONS;123
6.1;4.1 Procedural assertions;124
6.1.1;4.1.1 A simple PLI assertion;125
6.1.2;4.1.2 Assertions within a simulation time slot;128
6.1.3;4.1.3 Assertions across simulation time slots;131
6.1.4;4.1.4 False firing across multiple time slots;136
6.2;4.2 PLI-based assertion library;138
6.2.1;4.2.1 Assert quiescent state;139
6.3;4.3 Summary;143
7;5 FUNCTIONAL COVERAGE;144
7.1;5.1 Verification approaches;145
7.2;5.2 Understanding coverage;146
7.2.1;5.2.1 Controllability versus observability;147
7.2.2;5.2.2 Types of traditional coverage metrics;147
7.2.3;5.2.3 What is functional coverage?;149
7.2.4;5.2.4 Building functional coverage models;151
7.2.5;5.2.5 Sources of functional coverage;152
7.3;5.3 Does functional coverage really work?;153
7.3.1;5.3.1 Benefits of functional coverage;154
7.3.2;5.3.2 Success stories;154
7.3.3;5.3.3 Why is functional coverage not used;155
7.4;5.4 Functional coverage methodology;156
7.4.1;5.4.1 Steps to functional coverage;157
7.4.2;5.4.2 Correct coverage density;158
7.4.3;5.4.3 Incorrect coverage density;160
7.4.4;5.4.4 Coverage analysis;161
7.4.5;5.4.5 Coverage best practices;164
7.4.6;5.4.6 Coverage-driven test generation;168
7.5;5.5 Specifying functional coverage;169
7.5.1;5.5.1 Embedded in the RTL;169
7.5.2;5.5.2 Functional coverage libraries;170
7.5.3;5.5.3 Assertion- based methods;171
7.5.4;5.5.4 Post processing;173
7.5.5;5.5.5 PLI logging and reporting;173
7.5.6;5.5.6 Simulation control;174
7.6;5.6 Functional coverage examples;175
7.7;5.7 AHB example;177
7.8;5.8 Summary;179
8;6 ASSERTION PATTERNS;180
8.1;6.1 Introduction to patterns;180
8.1.1;6.1.1 What are assertion patterns?;181
8.1.2;6.1.2 Elements of an assertion pattern;182
8.2;6.2 Signal patterns;183
8.2.1;6.2.1 X detection pattern;183
8.2.2;6.2.2 Valid range pattern;186
8.2.3;6.2.3 One- hot pattern;188
8.2.4;6.2.4 Gray-code pattern;191
8.3;6.3 Set patterns;192
8.3.1;6.3.1 Valid opcode pattern;192
8.3.2;6.3.2 Valid signal combination pattern;194
8.3.3;6.3.3 Invalid signal combination pattern;196
8.4;6.4 Conditional patterns;198
8.4.1;6.4.1 Conditional expression pattern;198
8.4.2;6.4.2 Sequence implication pattern;200
8.5;6.5 Past and future event patterns;204
8.5.1;6.5.1 Past event pattern;204
8.5.2;6.5.2 Future event pattern;206
8.6;6.6 Window patterns;208
8.6.1;6.6.1 Time-bounded window patterns;208
8.6.2;6.6.2 Event-bounded window patterns;211
8.7;6.7 Sequence patterns;213
8.7.1;6.7.1 Forbidden sequence patterns;213
8.7.2;6.7.2 Buffered data validity pattern;214
8.7.3;6.7.3 Tagged transaction pattern;215
8.7.4;6.7.4 Pipelined protocol pattern;218
8.8;6.8 Applying patterns to a real example;221
8.8.1;6.8.1 Intra-interface assertions;223
8.8.2;6.8.2 Inter-interface assertions;227
8.9;6.9 Summary;229
9;7 ASSERTION COOKBOOK;230
9.1;7.1 Queue-FIFO;232
9.1.1;7.1.1 Assertions;233
9.1.2;7.1.2 FIFO functional coverage;237
9.2;7.2 Fixed depth pipeline register;238
9.2.1;7.2.1 Assertions;239
9.2.2;7.2.2 Functional coverage;241
9.3;7.3 Stack-LIFO;241
9.3.1;7.3.1 Assertion;242
9.3.2;7.3.2 Functional coverage;243
9.4;7.4 Caches - direct mapped;244
9.4.1;7.4.1 Assertions;246
9.4.2;7.4.2 Functional coverage;248
9.5;7.5 Cache - set associative;250
9.5.1;7.5.1 Assertion;252
9.5.2;7.5.2 Functional coverage;253
9.6;7.6 FSM;255
9.6.1;7.6.1 Assertions;256
9.6.2;7.6.2 Functional coverage;258
9.7;7.7 Counters;259
9.7.1;7.7.1 Assertions;260
9.7.2;7.7.2 Functional coverage;261
9.8;7.8 Multiplexers;263
9.8.1;7.8.1 Encoded multiplexer;263
9.8.2;7.8.2 Decoded one-hot multiplexer;264
9.8.3;7.8.3 Priority multiplexer;265
9.8.4;7.8.4 Complex multiplexer;267
9.9;7.9 Encoder;268
9.10;7.10 Priority encoder;270
9.10.1;7.10.1 Functional coverage;270
9.11;7.11 Simple single request protocol;271
9.11.1;7.11.1 Assertions;271
9.11.2;7.11.2 Functional Coverage;272
9.12;7.12 In-order multiple request protocol;273
9.12.1;7.12.1 Functional Coverage;273
9.13;7.13 Out-of-order request protocol;276
9.13.1;7.13.1 Functional coverage;277
9.14;7.14 Memories;278
9.14.1;7.14.1 Assertions;279
9.15;7.15 Arbiter;281
9.15.1;7.15.1 Assertions;282
9.15.2;7.15.2 Functional coverage;284
9.16;7.16 Summary;285
10;8 SPECIFYING CORRECT BEHAVIOR;286
10.1;8.1 Natural language interpretation;286
10.1.1;8.1.1 Temporal ambiguity;287
10.1.2;8.1.2 Active ambiguity;290
10.1.3;8.1.3 Boundary ambiguity;292
10.1.4;8.1.5 Implicit assumption;295
10.1.5;8.1.6 Partial specification;296
10.2;8.2 Property specification guidelines;297
10.2.1;8.2.1 Sequence ambiguity;299
10.2.2;8.2.2 Syntax ambiguity;299
10.3;8.3 Clarity in higher- level specification;300
10.3.1;8.3.1 Implementation assertions;302
10.3.2;8.3.2 Higher-level requirements;304
10.3.3;8.3.3 Modeling high-level requirements;306
10.4;8.4 Summary;307
11;A OPENVERIFICATION LIBRARY;309
11.1;A. 1 OVL methodology advantages;309
11.2;A. 2 OVL standard definition;310
11.2.1;A. 2.1 OVL runtime macro controls;311
11.2.2;A. 2.2 Customizing OVL messages;312
11.3;A. 3 Firing OVL monitors;314
11.4;A. 4 Using OVL assertion monitors;315
11.5;A. 5 Checking invariant properties;316
11.5.1;A. 5.1 assert_always;316
11.5.2;A. 5.2 assert_never;318
11.5.3;A. 5.3 assert_ zero_ one_ hot;320
11.5.4;A.5.4 assert_range;321
11.5.5;A.6 Checking cycle relationships;323
11.5.5.1;A.6.1 assert_next;323
11.5.5.2;A.6.2 assert frame;325
11.5.5.3;A.6.3 assert_cycle_sequence;327
11.5.6;A.7 Checking event bounded windows;329
11.5.6.1;A.7.1 assert_win_change;329
11.5.6.2;A.7.2 assert_win_unchange;331
11.5.7;A.8 Checking time bounded;332
11.5.7.1;A.8.1 assert_change;333
11.5.7.2;A.8.2 assert_unchange;334
11.5.8;A.9 Checking state transitions;336
11.5.8.1;A.9.1 assert_no_transition;336
11.5.8.2;A.9.2 assert_transition;337
12;B PSL PROPERTY SPECIFICATIONLANGUAGE;339
12.1;B.1 Introduction to PSL;339
12.2;B.2 Operators and keywords;340
12.3;B. 3 PSL Boolean layer;341
12.4;B. 4 PSL Temporal Layer;342
12.4.1;B.4.1 SERE;342
12.4.2;B.4.2 Sequence;343
12.4.3;B.4.3 Braced SERE;343
12.4.4;B.4.4 SERE concatenation (;) operator;343
12.4.5;B.4.5 Consecutive repetition ([* ]) operator;343
12.4.6;B.4.6 Nonconsecutive repetition ([= ]) operator;345
12.4.7;B.4.9 Sequence non-length-matching (&) operator;347
12.4.8;B.4.10 Sequence length-matching (&&) operator;347
12.4.9;B.4.11 Sequence or (|) operator;347
12.4.10;B.4.12 until* sequence operators;348
12.4.11;B.4.13 within sequence operators;348
12.4.12;B.4.14 next operator;348
12.4.13;B.4.15 eventually! operator;349
12.4.14;B.4.16 before* operators;349
12.5;B.5 PSL properties;352
12.5.1;B.5.1 Property declaration;352
12.5.2;B.5.2 Named properties;352
12.5.3;B.5.3 Property clocking;352
12.5.4;B.5.4 forall property replication;353
12.6;B.6 The verification layer;354
12.6.1;B.6.1 assert directive;354
12.6.2;B.6.2 assume directive;354
12.6.3;B.6.3 cover directive;354
12.7;B.7 The modeling layer;355
12.7.1;B.7.1 prev();355
12.7.2;B.7.2 next();355
12.7.3;B.7.3 stable();356
12.7.4;B.7.4 rose();356
12.7.5;B.7.5 fell();357
12.7.6;B.7.6 isunknown();357
12.7.7;B.7.7 countones();357
12.7.8;B.7.8 onehot(), onehot0();358
12.8;B. 8 BNF;358
13;C SYSTEMVERILOG ASSERTIONS;370
13.1;C.1 . Introduction to SystemVerilog;370
13.2;C.2 Operator and keywords;370
13.3;C.3 Sequence and property operations;372
13.3.1;C.3.1 Temporal delay;373
13.3.2;C.3.2 Consecutive repetition;374
13.3.3;C.3.3 Goto repetition;374
13.3.4;C.3.4 Nonconsecutive repetition;375
13.3.5;C.3.5 Sequence and Property AND;376
13.3.6;C.3.6 Sequence intersection;377
13.3.7;C.3.7 Sequence and Property OR;377
13.3.8;C.3.8 Boolean until (throughout);378
13.3.9;C.3.9 Within sequence;379
13.3.10;C.3.10 Ended;379
13.3.11;C.3.11 Matched;380
13.3.12;C.3.12 First match;380
13.3.13;C.3.13 Property Implication;381
13.3.14;C.3.14 Conditional property selection;382
13.4;C.4 Property declarations;383
13.4.1;C.4.1 Sequence composition;385
13.5;C.5 Assert, Assume and Cover statements.;386
13.6;C.6 Dynamic data within sequences;387
13.7;C.7 System Functions;388
13.7.1;C.7.1 New operators;389
13.8;C.8 SystemTasks;390
13.9;C.9 BNF;391
13.9.1;C.9.1 Use of Assertions BNF:;392
13.9.2;C.9.2 Assertion statements;392
13.9.3;C.9.3 Property and sequence declarations;393
13.9.4;C.9.4 Property construction;394
13.9.5;C.9.5 Sequence construction;395
14;BIBLIOGRAPHY;396
15;Index;401



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.