Aspect-Oriented Programming with the e Verification Language
A Pragmatic Guide for Testbench DevelopersBy
- David Robinson
Whatâs this AOP thing anyway, reallyâwhen you get right down to itâand can someone please explain what an aspect actually is?Aspect-Oriented Programming with the e Verification Language takes a pragmatic, example based, and fun approach to unraveling the mysteries of AOP. In this book, youâll learn how to:â¢ Use AOP to organize your code in a way that makes it easy to deal with the things you really care about in your verification environments. Forget about organizing by classes, and start organizing by functionality, layers, components, protocols, functional coverage, checking, or anything that you decide is important to youâ¢ Easily create flexible code that eases your development burden, and gives your users the power to quickly do what they need to do with your codeâ¢ Truly create a plug-and-play environment that allows you to add and remove functionality without modifying your code. Examples include how to use AOP to create pluggable debug modules, and a pluggable module that lets you check that your testbench is still working before you begin a regressionâ¢ Utilize AOP to sidestep those productivity roadblocks that seem to plague all projects at the most inconvenient of timesâ¢ Discover why âreturnâ is evil, and some other âgotchasâ with the AOP features of eAll of the methodologies, tips, and techniques described in this book have been developed and tested on real projects, with real people, real schedules and all of the associated problems that come with these. Only the ones that worked, and worked well, have made it in, so by following the advice given in this book, youâll gain access to the true power of AOP while neatly avoiding the effort of working it all out yourself.
Hardware verification engineers, especially those using the e Language.
Paperback, 264 Pages
Published: August 2007
Imprint: Morgan Kaufmann
Verification is a very hot topic these days since it consumes the largest part of all design projects (60-70%). It is also one of the fast growing segments of the EDA industry. Many customers are interested to understand more about the benefits of AOP, but there are not a lot of resources available to learn about the advantages of using AOP with the
elanguage...I really love the book. It provides very practical advice and is one of the best books written on the everification language. Mike Stellfox, Priniciple Field Verification Methodologist, Cadence Design Systems
- PrefaceIntroduction: About VerilabChapter 1 Introduction to AOP1.1 What are aspectsâpart I? 1.2 Why do I need aspects? Whatâs wrong with cross cutting concerns?1.3 Surely OOP doesnât have any problems? 1.4 Why does AOP help? 1.5 Theory vs. real lifeâwhat else is AOP good for? 1.6 What are aspectsâpart II? Chapter 2 AOP in e2.1 How do I extend a class? 2.2 How do I extend a class for multiple values of a determinant? 2.3 How do I extend a type? 2.4 How do I introduce a new non-coverage member to a class? 2.5 How do I introduce a coverage group to a class? 2.6 How do I extend a coverage group? 2.7 How do I change the behaviour of a method? 2.8 How do I limit the scope of my extensions? 2.9 Using return in method advice2.10 Controlling the order of method extension callsChapter 3 Using AOP to Organise your Code3.1 A word about style3.2 What aspects do I want to use? 3.3 Mapping aspects to filesChapter 4 Creating Flexible CodeChapter 5 Creating Pluggable Code5.1 The extendable case statement5.2 The factory patternChapter 6 Improving your Productivity6.1 Shifting the power6.2 Dealing with broken code6.3 Handling workarounds6.4 Reducing and deferring class complexity 6.5 Adding problem specific functionality6.6 Reducing the OOP induced overheadChapter 7 AOP in Action7.1 Creating a class with a selectable algorithm7.2 Creating a configuration interface for an eVC7.3 Using aspects to create a layered verification environment7.4 Creating reusable layered sequences7.5 Testing your verification environment7.6 Debugging using AOP7.7 Encapsulating tests Chapter 8 Analysing e Code8.1 The e toolkit 8.2 Finding class declarations and extensions8.3 Finding the class inheritance hierarchy8.4 Finding the determinants used by a class 8.5 Finding method declarations and extensions8.6 Finding field declarations8.7 Finding event declarations8.8 Finding enumerated type declarations and extensions8.9 How do I find where a value is added to a type? 8.10 Finding cover group declarations and extensions8.11 Finding the source of a message in the log file8.12 Finding aspectsAppendix: Useful ReadingEpilogueIndex