| TABLE OF CONTENTS | 6 |
|---|
| PREFACE | 15 |
|---|
| Book organization | 17 |
| New in Second Edition | 20 |
| Acknowledgements | 20 |
| 1 INTRODUCTION | 22 |
|---|
| 1.1 Property checking | 22 |
| 1.2 Verification techniques | 23 |
| 1.3 What is an assertion? | 24 |
| 1.3.1 A historical perspective | 25 |
| 1.3.2 Do assertions really work? | 27 |
| 1.3.3 What are the benefits of assertions? | 28 |
| 1.3.4 Why are assertions not used? | 32 |
| 1.4 Phases of the design process | 35 |
| 1.4.1 Ensuring requirements are satisfied | 37 |
| 1.4.2 Techniques for ensuring consistency | 39 |
| 1.4.3 Roles and ownership | 40 |
| 1.5 Summary | 41 |
| 2 ASSERTION METHODOLOGY | 42 |
|---|
| 2.1 Design methodology | 42 |
| 2.1.1 Project planning | 43 |
| 2.1.2 Design requirements | 48 |
| 2.1.3 Design documents | 49 |
| 2.1.4 Design reviews | 50 |
| 2.1.5 Design validation | 51 |
| 2.2 Assertion methodology for new designs | 51 |
| 2.2.1 Key learnings | 52 |
| 2.2.2 Best practices | 54 |
| 2.2.3 Assertion density | 58 |
| 2.2.4 Process for adding assertions | 60 |
| 2.2.5 When not to add assertions | 60 |
| 2.3 Assertion methodology for existing designs | 61 |
| 2.4 Assertions and simulation | 63 |
| 2.5 Assertions and formal verification | 65 |
| 2.5.1 Formal verification framework | 65 |
| 2.5.2 Formal methodology | 69 |
| 2.5.3 ECC example | 74 |
<