Verilog and SystemVerilog Gotchas [electronic resource] : 101 Common Coding Errors and How to Avoid Them / by Stuart Sutherland, Don Mills.Material type: TextLanguage: English Publisher: Boston, MA : Springer US, 2007Description: XXII, 218 p. online resourceContent type: text Media type: computer Carrier type: online resourceISBN: 9780387717159Subject(s): Engineering | Computer hardware | Computer aided design | Computer engineering | Systems engineering | Engineering | Circuits and Systems | Computer-Aided Engineering (CAD, CAE) and Design | Computer Hardware | Electrical EngineeringAdditional physical formats: Printed edition:: No titleDDC classification: 621.3815 LOC classification: TK7888.4Online resources: Click here to access online
Introduction, What Is A Gotcha? -- Declaration and Literal Number Gotchas -- RTL Modeling Gotchas -- Operator Gotchas -- General Programming Gotchas -- Object Oriented and Multi-Threaded Programming Gotchas -- Randomization, Coverage and Assertion Gotchas -- Tool Compatibility Gotchas.
In programming, “Gotcha” is a well known term. A gotcha is a language feature, which, if misused, causes unexpected - and, in hardware design, potentially disastrous - behavior. The purpose of this book is to enable engineers to write better Verilog/SystemVerilog design and verification code, and to deliver digital designs to market more quickly. This book shows over 100 common coding mistakes that can be made with the Verilog and SystemVerilog languages. Each example explains in detail the symptoms of the error, the languages rules that cover the error, and the correct coding style to avoid the error. The book helps digital design and verification engineers to recognize these common coding mistakes, and know how to avoid them. Many of these errors are very subtle, and can potentially cost hours or days of lost engineering time trying to find and debug the errors. This book is unique because while there are many books that teach the language, and a few that try to teach coding style, no other book addresses how to recognize and avoid coding errors with these languages.