( DAC 01 Item 17 ) --------------------------------------------- [ 7/31/01 ]

Subject: The Intel Case Study & Harry Foster's Assertion Checkers Hell

HARRY'S WARNING:  On the technology level, this year DAC was the Year Of
The Assertion Checkers.  There were boatloads of new and not-so-new
verification companies all singing the praises of designers writing
assertion checks in the source code of their chips.  Even Intel presented
a much cited case study for the verification of its 1.5 million lines of
RTL code for its Pentium 4 and how they debugged it using 1 million
assertion checkers.  Harry Foster of HP, at one of the DAC panels gave a
dire warning, though, about how each & every rinky dink little EDA company
is promoting its own proprietary set of assertions pecular to only that
company's product lines.  It's going to be ugly, he warns.  I agree.


    "Intel Case Study
     ----------------
     * The Pentium 4 has 1.5 M lines of RTL code.
     * They quoted an industry average of approximately 1 bug for every
       200 lines of code.  Before silicon, Intel found 8000 bugs
       (1 bug/187 lines), and after Silicon, they found another 100 bugs.
     * They found 400 of the bugs via model checking, and 20 of the 400
       would have never been found via simulation.
     * Intel's compute farm ran 24/7 to give them 6 B cycles/week, but it
       only amounted to less than 2 minutes of run time on a 1 GHz Pentium.
     * He cited the following as key to their flow: verification plans,
       directed random testing with coverage feedback to direct additional
       testing, and 1 M assertion checkers.

     I asked him about the designers' roles, and he said the designers only
     did very basic testing with no real requirements.  He said they ran
     into problems near the "code turn-in" milestone because designers
     started turning in untested code, creating too much burden for the
     verification team.  They had to turn the code back to the designers
     to do basic testing even though it slipped a milestone."

          - [ An Anon Engineer ]


    "Harry Foster of HP, a participant on the Accellera/Intrinsix panel,
     expressed concern that we were now going to have N different
     assertion languages for N different tools. I fear that he is probably
     correct.  There were more assertion language related tools and
     presentations than I ever anticipated.  VERA had assertions.  The
     Verplex presentation talked about assertions and tying them into
     formal verification.  Verisity talked about assertions.  Superlog
     showed their assertions.  Even Harry Foster gave a presentation about
     the open OVL assertions available for free down-load at:
     www.verificationlibrary.com.  0-in has assertions.  And there was a
     panel hosted by Accellera and Intrinsix on verification where much of
     the discussion revolved about assertion languages.

     I think there will be verification language wars for the next few years
     until a few winners emerge.  This is going to make the Verilog/VHDL
     language wars look like a skirmish!"

          - Cliff Cummings of Sunburst Designs


    "Event Monitors and Assertion Checkers
     -------------------------------------

     This category aims to answer the question "Is the RTL functionally
     correct?"

     Harry Foster of Hewlett-Packard, co-author with Lionel Bening of
     "Principles of Verifiable RTL", spoke at Verplex's demo suite.

     Here are the key learnings from Harry's talk:

        1. Create assertions on block boundaries during RTL code
           development.
        2. Focus on getting assertions into the code and not on the
           technology for proving the assertions.
        3. Start finding defects using these assertions.
        4. Ask EDA vendors to support the Accellera assertion
           language extensions. 

     Make support for the Accellera assertion language a requirement of tool
     purchase.  This enables users to develop confidence with assertions in
     a known tool, such as a Verilog RTL simulation.  This enables users to
     leverage exactly the same assertion from simulation to other tools,
     without being tied to a proprietary language.

     Harry described a large ASIC where Hewlett-Packard found 85% of the
     defects using Open Verification Library Assertions.  They used the Open
     Verification Library (OVL) to create 3000 assertions to verify a 10
     million gate design.  They found 85% of the bugs by OVL assertions.

     OVL assertions added between the engineer's sub blocks create a
     "verifiable contract".  These OVL assertions check for illegal events
     (state transitions, queue under and overflow conditions, one_hot
     violation, et cetera).  The OVL assertion violations are quickly
     isolated during simulation.  HP also puts OVL assertions inside
     sub-blocks, but it's critical to have assertions between interfaces
     of sub-blocks. 

     Interested in the Accellera assertion language?  Check out
     http://www.accellera.org for the Assertions sub-committee of the
     Verilog++ committee.  There should be a new web-page for this soon.
     Verplex has donated the Open Verification Language to Accellera.
     (See http://www.verificationlib.org/gui/content_12a.html  )

     So, where do the tool vendors stand on OVL and the Accellera assertion
     language?  Verplex's Black Tie and Real Intent's Verix are working
     with Accellera to support the Accellera Assertion language extensions.
     Averant's Solidify is less supportive of a standard and prefers to
     stick with its proprietary language.  @HDL does not support OVL, but
     says they're working on an automatic translation of OVL into their
     proprietary language."

          - Carina Chiang of Agilent


    "It seems this DAC was the year of the checker.  In solving the 70%
     effort snafu that the typical verification team is facing, the EDA
     people are saying, "Add some checkers".  We've got static checkers,
     formal checkers, checkers that run and fire during simulation:

     - Checkers alone will not cut it.  The verification bottleneck is a
       much more broad problem.  It takes a combo of new tools, new
       language, and more importantly methodology paradigm shift to even
       begin to remove the bottleneck.  So far the Random-based approach
       with a Vera/e/Superlog/Verilog/VHDL is the best bang for the buck.

     - Are these checkers worth it? Basically if they catch a bug, then
       they are.

     - Fundamental flaw: Most of these checkers are meant to be placed by
       RTLer's.  This is very problematic.  First RTLer's chronically hate
       doing verification, so getting them to learn and use this checker
       stuff is not likely to happen.  Second, this flys in the face of the
       Second Set Of Eyes verification principle.  I can make my RTL do
       2+2=5 and then put a checker in that checks that 2+2=5.  What I need
       is a second set of eyes to read the spec and put in a check for 2+2=4
       and then catch the bug.  Basically these checkers are only good in
       verifying assumptions by the designer.  Additional checks/properties
       will need to be added by the verification engineer to verify intent.

     - Language,Language,Language: Each of these checker tools has its own
       language.  It is typically Verilog-ish, or C-ish.  It hides in
       comments or gets converted into real code.  It is easy to learn, so
       they say.  This begs the question, why not just write the checkers
       in e or Vera, or even an HDL for that matter?

     - Checkers all cost too much.  When will EDA learn that non-mainstream
       tools should not be $50k a pop?  I can't live without a simulator or
       a synthesis tool.  I can live without a checker tool.  If just one of
       these checker companies could flood the market with a inexpensive
       tool, then maybe its little format and language would 'win', become a
       standard, and then we would all be in checker paradise (OVL is free
       since it is Verilog).

     I bet Checkers will become like formal verification.  Large companies
     will be able to afford to buy the tools and have a team that runs them.
     Experts at systematically checking code for wayward bugs will develop,
     but the average RTL and Verifcation engineer, will not end up using
     them."

          - Peet James, Qualis Design


 Sign up for the DeepChip newsletter.
Email
 Read what EDA tool users really think.


Feedback About Wiretaps ESNUGs SIGN UP! Downloads Trip Reports Advertise

"Relax. This is a discussion. Anything said here is just one engineer's opinion. Email in your dissenting letter and it'll be published, too."
This Web Site Is Modified Every 2-3 Days
Copyright 1991-2024 John Cooley.  All Rights Reserved.
| Contact John Cooley | Webmaster | Legal | Feedback Form |

   !!!     "It's not a BUG,
  /o o\  /  it's a FEATURE!"
 (  >  )
  \ - / 
  _] [_     (jcooley 1991)