Dedicated verification teams are well established in the digital world, but not in analog/mixed-signal design. Has the time come for separate analog verification teams? I've been following an ongoing debate on this topic in a couple of LinkedIn groups, a debate that followed my recent blog posting about a mixed-signal verification panel at the Cadence booth at the Design Automation Conference.
In the panel, engineers from Qualcomm, NXP, and LSI talked about their progress in bringing digital approaches such as the Universal Verification Methodology (UVM), assertions, executable verification plans, and metric-driven verification into mixed-signal verification. They also talked about the need for separate analog verification teams, along with a corresponding skill set focused on verification.
Argument FOR Separate Verification Teams
A primary driver for separate analog verification teams is increasing IP and chip complexity, and the realization that many chip respins are due to problems across the analog/digital interface. No longer can the same designer who draws the schematics, or does the custom layout, perform all of the verification tasks. Advanced verification requires a specialized skill set that includes coding in a verification language, coverage, assertions, and a methodology such as UVM. Why force good circuit designers to go through all that?
Further, much analog IP these days contains digital control logic and is really mixed-signal, suggesting that someone who understands digital verification techniques should look at it. Finally, if you're doing any kind of complicated technical work, it's important to have someone else check your work.
Argument AGAINST Separate Verification Teams
Some design managers are concerned about having a separation between analog design and verification teams. The analog designers may be unmotivated to create testable designs, since somebody else will be doing the testing. They will then throw designs "over the wall" to verification "experts" who never step inside the lab and may not have much familiarity with the designs. Communication between different groups is always a challenge, and iterating between groups wastes time.
Meeting in the Middle
Some of the comments in the ongoing debate give qualified support to the notion of separate teams. One point of view is that separate teams are appropriate at the IP integration level, but that analog designers should still test their own blocks. Another viewpoint is that existing digital teams can expand to handle mixed-signal verification (but not a final signoff for analog blocks). One suggestion was to rotate analog designers in and out of verification tasks.
I think the question about separate analog verification teams depends a number of factors, including the size of the company, the scale and complexity of the designs, whether it's "pure" analog or mixed-signal, the availability of verification expertise, and the tools and methodologies that are in place. A UVM-MS methodology, which I blogged about previously, may help make separate teams more compelling. Dedicated teams can also make use of analog behavioral modeling and/or real number modeling, both available today from Cadence.
Even in the digital world, there are questions about how much verification should be done by designers and how much by separate verification teams. Rising complexity is now pushing that question into the analog/mixed-signal world. It will be interesting to see how IC design companies respond.
I agree that the against argument is weak. I also would challenge the design community to begin embracing separate verification engineers for analog block level design. The biggest challenge will likely be the availability of people with the right skills to do this. Is there really a good reason not to do this for analog block design?
Hi, I think this argument 'against' is very weak, also to some degree testability is part of a good design - why should a good designer make a bad design, it would be a blame. I believe, most designers make a good job in design & verification, and in analog both are closely related, and iterative. So the thinking is 'My blocks are fine, why waste extra-time for doing verification again by someonelse?'. Maybe even with crude non-estabilished 'non-analog' techniques executed by buggy tools.
Close before tape-out the back-end is in critical path. Doing design & verification together has also the advantage to directly check alternative solutions. There would be little time for this with split teams.
The best would be always to have something that work: starting from architecture, topdown-models & well-known blocks, doing refinements and understanding everything more and more. No matter how you call it.