In the past few years, commercial verification IP (VIP) has been selected for use in an ever greater percentage of verification environments. While VIP has the capability to save considerable time and engineering resources, there are several decisions you need to make in order to optimize the value received. For example, should you buy VIP or build your own, what should you consider in selecting VIP, and how can you make best use of it once you have it?
To get some answers to these questions I talked to Pete Heller, senior product line manager for VIP at Cadence. Perhaps the first question to answer is, "what does VIP do?" From a Cadence perspective, it's critical that VIP provide more than a simple bus functional model, and it must do more than just generate protocol specific stimulus. Cadence's perspective is that VIP must also be easy to configure (especially if you're not a protocol expert), and must be available for the newest, most in demand protocols at - or even before - the time when the spec becomes available.
The VIP should have been exercised across a range of user implementations to ensure quality, and must provide protocol compliance checking and functional coverage metrics. VIP also needs to be reusable between projects, so it must support multiple simulators, languages and methodologies. Finally, the VIP must enable verification at all the levels of abstraction from block level to subsystem to full chip (SoC) to avoid re-creation of verification environments at different points in the project life cycle.
Fig. 1 - Cadence VIP and Memory Models for a wide range of protocols and applications
Buy or Build Your Own?
Go back in time a decade or so, and you'd find that most verification teams were building their own VIP. But over the years standard protocols became increasingly complex (think USB 3.0 or PCI Express 3.0), and the build-your-own approach became less and less feasible. It can now take 6 to 12 months to develop VIP for an advanced protocol, Pete said, and it requires a tremendous amount of protocol expertise to do so.
"Today, PCI Express 3 and USB 3.0 are each thousand page specs," he noted. "It's not realistic or sensible for a development team to use its own resources to create VIP to verify a standard protocol that adds literally no differentiation to their end product." Add to that the fact that new protocols and new derivatives are being introduced faster than ever (about 20 new protocols in 2011 alone!), and the task of keeping abreast with newest protocol developments becomes even more daunting.
There are other considerations as well. In particular, will your VIP have the right functionality? If you build your own VIP, will it be reusable between projects and simulators? Will it be easy to use? Who will support it when something goes wrong? Will it offer full protocol compliance? Will it work with formal verification and/or acceleration platform? Will it use a verification plan and track coverage metrics? Of course, if your company uses a proprietary protocol, then your only choice for that protocol is to build your own VIP, but for standard protocols, the choice is now much more commonly to buy versus make.
How to Select Commercial VIP
If you decide to buy VIP, there will typically be a choice of suppliers. Pete suggests asking these questions when selecting a commercial VIP product:
- Does the vendor offer Verification IP or Memory Models for all of the protocols you need, when you need them?
- How mature is the VIP you're considering? How many designs has it verified?
- How easy is it to configure the VIP?
- Is there a compliance test suite available "out of the box"?
- Does the VIP support all simulators, languages and methodologies?
- What are your verification needs? Do you need the VIP for simulation only, or do you also want to run it on an accelerator or use it for formal block-level verification?
- What metrics are you going to use to determine when verification is completed, and will the VIP measure and report those metrics for you?
- Is the vendor aware of, and actively participating in, the development of the protocol standard or new versions thereof?
- If you use an ARM protocol, does the vendor have a close working relationship with ARM?
- How is the VIP verified? (At Cadence, this is done with design IP, assertions, and regression testing, in close partnership with protocol standards bodies or with providers such as ARM).
Finally, can you "test drive" the VIP before buying? (With Cadence VIP, you can do so through Xuropa Online Labs. You can run an evaluation using the Incisive Enterprise simulator. The software runs on Xuropa servers, and there is nothing to purchase, license, install, download, or upload.)
Making Best Use of Purchased VIP
To use VIP effectively, Pete said, you need to be familiar with the VIP - and you should have at least some knowledge of the protocol you're verifying. "To a large degree, the VIP will do the heavy lifting by removing most of the need to know the spec details, but you should still have at least a basic understanding of it," he said. Cadence's GUI based "configurator" helps the user to get underway quickly by leading them through the often bewildering configuration options, step-by-step via a hierarchy of pull-down choices and recommendations.
Fig. 2 - VIP and Memory Model "Configurator" GUI
Beyond that, it's important to define your verification goals, establish a strategy, and have a plan for achieving it. To this end Cadence VIPs provide a simulator independent test suite and functional coverage that is tallied up against an executable verification plan (vPlan). The vPlan enables you to set your goals and then measure coverage metrics to track your progress.
"The vPlan is like a GPS that tells you where to go, and the test suite provides stimulus - that is, the ‘fuel' - that drives the engine to get you there," Pete said. "The vPlan provides both the roadmap and then the confirmation that you've actually driven down all the roads you need to travel." The ability of the vPlan to sort through a huge amount of coverage data, and present it in an easily understandable way, is an extremely valuable addition to Cadence's VIP.
Fig. 3 - Mapping from the ARM AXI spec (left) to Cadence vPlan (right)
Finally, VIP isn't only about simulation. You might choose to use assertion-based VIP (offered by Cadence for bus-based protocols) to support block-level formal verification, or to use acceleratable VIP (AVIP) in order to handle large designs or to work at a systems level. Cadence accelerated VIP is based on the Accellera SCE-MI standard and supports a variety of use modes and languages. It enables verification with and without a testbench and supports key verification languages like SystemVerilog and e. In the near future, it will also support TLM level interactions with virtual prototypes to enable software development.
Cadence VIP Catalog
The Cadence VIP Catalog includes over 30 complex protocols and over 15,000 memory devices, exercised across thousands of designs - all with a consistent user interface and configuration GUI. The simulation VIP runs on Cadence, Synopsys, and Mentor Graphics simulators. Cadence's VIP Catalog provides support for simulation, acceleration, and formal verification; and supports multiple verification languages including SystemVerilog and e, and multiple methodologies including UVM and VMM. The Catalog is located here.