• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Functional Verification
  3. verification metrics on IMC

Stats

  • Locked Locked
  • Replies 8
  • Subscribers 66
  • Views 7953
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

verification metrics on IMC

Nir Z
Nir Z over 1 year ago

Hi,

I'm using IMC tool and I'm trying to understand what is the difference between Types and Instances in the added figure. The figure is an html output of IMC tool.

Some time I see the same modules both in Types and in Instances and some times they are different, resulting different coverage result.

Thanks,

Nir

  • Cancel
  • tpylant
    tpylant over 1 year ago

    T are unique modules and instances are the instantiations. Instance coverage will list all the instances in the hierarchy whereas Types coverage sums all the coverage of a mudule everywhere it is used.

    Tim

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Nir Z
    Nir Z over 1 year ago in reply to tpylant

    Thank you for the respawns.

    Can you expand more about unique modules - what do you mean when you say it?

    For me they still look the same.

    Thanks very much,

    Nir

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • tpylant
    tpylant over 1 year ago in reply to Nir Z

    If you have a NAND2 module instantiated 100 times, the Type will show the overall coverage for NAND2 and Inst will show coverage for each instance of the NAND2. If your coverage is the same, you probably only have one instance of each module.

    Tim

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Nir Z
    Nir Z over 1 year ago in reply to tpylant

    If this is true, the overall coverage of Types should always be always greater than the Instances, but looking at the rapid adoption kit of Cadence I see the following result where Types has smaller coverage than instances.

    1. What am I missing?

    2. Why do the overall coverage is an average of those two and not only Types coverage value?

    Thank you for the answers,

    Nir

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • tpylant
    tpylant over 1 year ago in reply to Nir Z

    If the module is flat, that would be true. But if the module has hierarchy, then the type coverage will only show for the module. The inst coverage rolls up the coverage for the hierarchy.

    For the example you showed, dkm_test module has 61% coverage. That is just coverage for that specific module.

    The dkm_test instance has 50% coverage which is coverage for (itself + dkm_i + dkm_cov_inst) / # of instances or something like that -- I don't recall the exact calculation.

    Tim

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • StephenH
    StephenH over 1 year ago in reply to tpylant

    As Tim says, the "average" grades are taking the grade numers from the immediate child nodes and averaging them. So is dkm_i had an average grade of 0, and dkm_cov_inst had an average grade of 50%, the average grade for dkm_test would be 25% = (0% + 50%)/2.
    The "overall covered" grade is a simple ratio of the hit bin count / the total bin count for that instance. Both counts are a sum of all the child counts. 

    This is why the grades aren't directly comparable between the types and instances views.

    Note also that there may be bins excluded by the user in either the types view or in a single instance, this can again skew the numbers and make it impossible to directly compare the results with just a screenshot.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Nir Z
    Nir Z over 1 year ago in reply to StephenH

    Thank you for replaying,

    I can see the difference between Types and Instances, but looking at it from verification perspective, I'm trying to understand why we calculate the average of Types and Instances, instead of just looking at Types / Instances as our coverage score.

    Wouldn't it slightly disturb our result? Should we just choose the way we want to look at our coverage rather than calculating the average?

    Thanks for answering.

    Nir

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • StephenH
    StephenH over 1 year ago in reply to Nir Z

    I don't really understand your concern. Coverage is quite subjective anyway, and different teams choose different approaches to determine what coverage is important for their project. Nobody would just look at the top-level number in IMC and use that on its own as a sign-off metric.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information