The race between predictions vs. achievement of Moore’s law
has had multi-fold impact on the semiconductor industry. Reuse has come to the
rescue both from the design and verification viewpoint to help teams
achieve added functionality on a given die size. This phenomenon lead to the
proliferation of IP & VIP market. Standardization of interfaces further enables this move by shifting the product differentiation towards
architecture and limited proprietary blocks. To enable continued returns and
cater to different application segments, the IP needs to be highly configurable.
Verifying such flexible IP is a challenge; integrating it for a given
application and ensuring that it works, further complicates the problem. Given
that verification already claims majority of the design cycle efforts, it is
important to optimize on the resources, be it tool licenses, simulation
platform or engineer’s bandwidth. A focused attempt is required so as to
ensure that every effort converges towards the end application i.e. the context
in which the design would be used irrespective of the flexibility that the
silicon offers. This refers to the subject Context Aware Verification (CAV)!
Verification space has been experiencing substantial
momentum on multiple fronts so as to fill the arsenal of the verification
engineer with all sorts of tactics required for the challenges coming our way. While
these developments are happening independent of each other, they seem to
converge towards enabling CAV. Let’s take a quick look at some of these
techniques –
Traditionally, test plan used to answer what is to be
verified until constrained random entered the scene where how to verify, what to
verify and when are we done needs to be addressed by the verification plan. Today
verification planner tools enable us to develop executable verification plan
with the flexibility to tag the features based on engineer who owns it or based
on milestones or based on priorities and above all based on any other custom
definition. This customization is useful to club features with reference to a
particular context or configuration in which the IP can operate. With this
information, the end user of the IP can channelize his efforts in a particular
direction rather than wandering everywhere thereby realizing CAV in the larger scheme of things.
Apart from coverage goals that get defined as part of the
vplan, there is a need of a subset of tests that would achieve these goals
faster. What this means is that the test definition needs to be -
- Scalable at
different levels (IP, sub system & SoC)
- Portable across platforms (constrained
random for block level, directed tests for SoC verification & validation)
- Provide a possibility of tagging the tests w.r.t. a given configuration viz
a set of valid paths that the design would traverse in the context of a given application.
Graph based verification is a potential solution to all of this.
There is a need to standardize the efforts and to enable discussions in
this direction Accellera has initiated Portable Stimulus Proposed Working Group.
Once there is a consensus on the stimuli representation, selection of a subset
of tests targeting a given configuration would further boost CAV.
With design size marching north, the simulation platform falls
short in achieving verification closure in a given time. A variety of emulation
(HW acceleration or prototyping) platforms provide an excellent option to speed
up this process based on the design requirements. While the verification teams
benefit from the simulation acceleration, these boxes also help in early
software development and validation. The shift left approach in the industry is
enabling basic bring up of OS and even simulating real time apps on these
platforms much before the silicon is back. Ability to run the end software on
the RTL brings further focus and is an important step towards achieving CAV.
Once all these technologies reach maturity a combined solution would bring in the required focus in the context of the end application.
As Chris Anderson said – “In the world of infinite choice, context – not content – is
king!”
Our designs with myriad configurations are no different. It
is the context that would bring in convergence faster making those products that
follow this flow as king!
Also check - PROOF of NO BUG... OR ...NO PROOF of BUG
Thanks for the writing. I like this.
ReplyDelete