( DAC'20 Item 06b ) ----------------------------------------------- [12/02/21]

Subject: MENT SolidoChar ML cuts std lib creation time 90% is Best 2020 #6b

SOLIDO'S ML FORMULA (YEAR 3): This is the 3rd report where the std library
designers barked up a storm about Solido's ML-based characterization tools.
The library characterization users yarped about:

SolidoChar Generator -- uses existing libs + target corners to generate new
libraries.  It does both standard cells and memories.

   "... it cut our std cell library creation time by 90%.  I used SolidoChar
    to characterize a std cell Liberty file with over 1,000 cells in 58 min.
    while using 30 LSF clusters.  SiliconSmart or Liberate would have taken
    us at least 2 to 3 days with the same 30 LSF clusters."

SolidoChar Analytics -- analyzes Liberty files to spot the characterization
errors and trends in provider/custom-built/generated libraries.

   "Analytics is kind of a powerful tool to perform analysis on Liberty files.
    It does a lot:  

        - Library comparisons 
        - Library trends 
        - Liberty format QA (quality assurance) 
        - Libraries LVF moment"

SolidoChar Transformer -- lets you manipulate your libs in creative ways.
Stuff like copy, margin, merge, resize, transform, trim are its commands.

   "We use Transformer for quick Liberty file editing.  It lets us: 

        - copy data between different Liberty files
        - add margin to existing Liberty files
        - merge different Liberty files
        - resize index tables in Liberty files
        - customize transformations on Liberty files
        - remove parts of Liberty files"

TIME, OUTLIERS, GUI: Beyond tech details, there were a number of user
quotes about how they liked how SolidoChar sped up their characterization
overall; or that it found outliers; or had a killer GUI...
     
   "SolidoChar Generator can then use these inputs to output the target PVT
    libs rapidly.  It saves us around 12X the time (and man-hours) when we
    generate the target corners with it compared to a traditional library 
    characterization approach."

   "We love its outlier detection/prediction."

   "SolidoChar Analytics has a good GUI that lets us pinpoint/zoom
    into the most basic element of an issue."

And one user even added how -- in one area -- SolidoChar Analytics had
bested Cadence Liberate.

   "I have used both Siemens SolidoChar Analytics and Cadence Liberate to
    do library comparisons.  ... for the same attribute with different
    index tables, Liberate cannot figure out if the data is matched or
    not for the different libraries; but SolidoChar can."

        ----    ----    ----    ----    ----    ----    ----
        ----    ----    ----    ----    ----    ----    ----
        ----    ----    ----    ----    ----    ----    ----

      QUESTION ASKED:

        Q: "What were the 3 or 4 most INTERESTING specific EDA tools
            you've seen in 2020?  WHY did they interest you?"

        ----    ----    ----    ----    ----    ----    ----

SIEMENS SOLIDOCHAR GENERATOR


    Siemens SolidoChar Generator -

    We estimate it cut our std cell library creation time by 90%.  

    - I used SolidoChar to characterize a std cell Liberty file with
      over 1,000 cells in 58 minutes while using 30 LSF clusters. 

    - Characterizing the same Liberty files Synopsys SiliconSmart or
      Cadence Liberate would have taken us at least 2 to 3 days with
      the same 30 LSF clusters.

    SolidoChar eliminated the massive hardware resource & runtime "suck"
    the conventional characterizers need.  Far fewer SPICE runs needed
    with it!

    This opens a new world for us.

    In terms of accuracy:

        - delay and power

            - These are the most difficult, and SolidoChar handles these 
              well -- especially when generating linear attributes in
              Liberty files, e.g. delay and power.

        - LVF modeling for statistical variations
 
            - SolidoChar works well for the NLDM/NLPM arcs.  

    WARNING: with new characterization formats that are not linear, e.g.,
    Liberty Variation Format (LVF), SolidoChar still needs work.  This
    new format is a critical offering from foundries especially in new
    process nodes like 5nm.

    So, for 5 nm, we work with our Solido AE to verify the results.  We run
    samples for 10% of the Liberty files using Liberate and compare the
    SolidoChar results for potential problems on the generated Liberty file.  

    We use Cadence Liberate for our characterization and use the Liberty 
    file output as input to Solido.  It is critical for us to determine how
    many Liberty files we need to provide for Solido to give an acceptable
    accuracy output -- with machine learning, more samples improve the 
    accuracy.

    This works, and adds about 10% time overhead for each deliverable.
    (So SolidoChar saves 90%, but we need to add back 10% to check it.)

    Even at 80% reduction, we like the time savings.  Especially important
    with strict delivery deadlines.  

        ----    ----    ----    ----    ----    ----    ----

    We use SolidoChar Generator for library characterization, because its
    interpolation performance is excellent.  

    - For interpolation, we feed the Solido tool two or more libraries,
      plus a range of PVTs to *cover* our target PVT as input.  If we want
      a 0.8v lib, the tool will need voltage libs -- one below 0.8v and
      one over 0.8v, respectively (like 0.6v and 0.9v in our case.)

    - For extrapolation, we input libraries with PVTs that *uncover* our 
      PVT.  If we want a 1.1v lib but have 0.6 and 0.9v libs in hand, the
      SolidoChar will generate a 1.1v lib through extrapolation.  

    SolidoChar Generator can then use these inputs to output the target PVT
    libs rapidly.  It saves us around 12X the time (and man-hours) when we
    generate the target corners with it compared to a traditional library 
    characterization approach.  For *interpolation*, relative differences
    of its generated libs compared with the libs created by traditional way
    are within 0.5%.  For *extrapolation*, it loses 10%+ accuracy.

        ----    ----    ----    ----    ----    ----    ----
        ----    ----    ----    ----    ----    ----    ----
        ----    ----    ----    ----    ----    ----    ----
SIEMENS SOLIDOCHAR ANALYTICS


    Solido SolidoChar Analytics is kind of a powerful tool to perform 
    analysis on Liberty files.  It does a lot:  

        - Library comparisons 
        - Library trends 
        - Liberty format QA (quality assurance) 
        - Libraries LVF moment 

    All we need to do is put in our libraries for analysis and click some 
    buttons through the GUI.  The results show then up in text or figure 
    format.  Normally, I use SolidoChar Analytics to figure out the 
    differences between libraries with the same PVT corners (but that were
    created by different methods or platforms.)  In the future, I plan to 
    also apply it to an automation flow for our overall Library QA.

    Its GUI to easily finds unusual points in the figures.  

    Library Comparisons

    For library comparison, I input the same PVT libraries but use one
    that were created by different methods (such as Cadence Liberate vs.
    SolidoChar Generate).  I then plot the delta between the two libraries
    on a graph to determine whether the customized library data is 
    acceptable.  

    I can also set a tolerance line on the graph so that the points located
    outside the line are easily spotted and then analyze these undesired 
    points efficiently.

        ----    ----    ----    ----    ----    ----    ----

    Siemens SolidoChar Analytics vs. Cadence Liberate

    I have used both Siemens SolidoChar Analytics and Cadence Liberate to do
    library comparisons.  

        - When using Cadence Liberate, I've noticed that for libraries 
          with different index tables, Liberate is unable to accurately 
          output the differences.  

        - The Siemens SolidoChar Analytics comparison result is much more 
          accurate and reliable -- since SolidoChar will automatically 
          match the different index tables by interpolation.  

    In other words, for the same attribute with different index tables, 
    Liberate cannot figure out if the data is matched or not for the 
    different libraries; but SolidoChar can.

    Library Trends

    For Library Trend Analysis, I input some reference libraries (like 0.6v,
    0.8v, 0.9v) and customized libraries (0.7v), then plot the attribute 
    data (such as constraint, delay, capacitance...) of the 4 libraries in
    the same graph to see if the customized library fit the trend of the 
    reference libraries.  

    Machine Learning 

    My view of Solido applying Machine Learning to this field is that it is 
    reliable, timesaving, and resource-saving.  SolidoChar ML accelerates
    standard cell library characterization procedure and the automation
    benefits engineers.  It's also easier to use than traditional methods, 
    as we do not have to set-up lots of parameters which are sensitive to 
    the results (there can be 100s of parameters).

    I recommend SolidoChar Analytics to all engineers doing standard cell
    library characterization like me.  It is useful and user friendly.
    The latest version can handle advanced processes.  

        ----    ----    ----    ----    ----    ----    ----

    I'm new to machine learning but am beginning to see how the Solido
    tools use ML to train and build itself with more data content;
    SolidoChar Analytics does fast and reliable generation/validation
    of library models for standard cells, custom, and memory cells
    using ML under the hood.

    Solido fits well into our characterization environment and evaluates
    .lib models generated by Synopsys SiliconSmart.  The coherency and 
    integration with SiliconSmart have been phenomenal.

    In terms of speed, it beats many of the tools that I have evaluated.

    SolidoChar Analytics has a good GUI that lets us pinpoint/zoom into
    the most basic element of an issue.  It makes a designer's job much
    easier, as it gives both the overall picture of the library, along
    with a view down to the smallest design element.  Yes!

    SolidoChar Analytics is one of the best tools I have evaluated.

    I would definitely recommend it.

        ----    ----    ----    ----    ----    ----    ----

    SolidoChar Analytics is a great tool with a good UI.  We use it to:

        - verify new Liberty files generated by SolidoChar Generator
        - verify Liberty files we generated with other characterizers
        - verify Liberty files from vendors  

    The tool combines functionality from multiple tools into one platform. 
    For example, we can create plots for analysis purpose with Liberty
    files data in Solido *without* exporting the data to Excel.

    I also like how it's open and that we can write our own scripts.  For 
    example, when we want to add more checks, rather than write a ton of 
    complex scripts, we only need to create a few short ones.

        ----    ----    ----    ----    ----    ----    ----

    We've been using Mentor SolidoChar for more than 2 years now.  

    We knew about Solido for high sigma simulations on SPICE simulation side
    earlier, but it took me a while to accept it, as it was hard to convince
    me that I could use black box to generate the Liberty files.  Even now, 
    we still run tests to confirm it whenever we use it for a new process 
    node, or when Mentor-Solido adds new tool features.  

    In our experience, SolidoChar is all our IP engineers ever needs.  It's
    an all-rounder for generating/processing/verification.

        ----    ----    ----    ----    ----    ----    ----

    Mentor SolidoChar Analytics is a good value for library analytics
    and validation.

    We give SolidoChar our library's .lib files and then the tool uses its 
    own rules and proprietary algorithms.  Below are a couple of its 
    features that I like:

        - Its outputs are easily digestible to the user.  It has PDF 
          text-based reports and strong graphical visualizations.  For 
          example, we get a surface level view of the result, and can 
          then drill down for more granular detail.

        - For a given rule and specification, it has a good 
          classification of severities for ease of user review.  

    SolidoChar does well with Liberty data.  And it handles scenarios
    that we might not have thought of if we did it manually.  

    We love its outlier detection/prediction.  But it's still up to
    the user's expert judgment to determine which ones require focus.

    I recommend that anyone who wants to validate their library data get 
    the tool.  I'm not claiming it covers 100%, but it gives you outliers, 
    a good set of rules, and shows you how your Liberty data works against
    those rules.

        ----    ----    ----    ----    ----    ----    ----
        ----    ----    ----    ----    ----    ----    ----
        ----    ----    ----    ----    ----    ----    ----
SIEMENS SOLIDOCHAR TRANSFORMER


    We use the SolidoChar Generator "Transformer" for quick Liberty file
    editing.  It lets us: 

        - copy data between different Liberty files
        - add margin to existing Liberty files
        - merge different Liberty files
        - resize index tables in Liberty files
        - customize transformations on Liberty files
        - remove parts of Liberty files

    If we have fragmented data to apply to one Liberty file to complete it,
    we don't have to recharacterize another Liberty file -- we can just use
    Transformer to get the structure we want.

    To do the transformations, we input the Liberty files to be transformed,
    along with the configuration files and parameter settings.

        - For my application, to perform enough constraint margins on 
          LVF files, the SolidoChar Generator multiplies the constraint
          data in a LUT with a matrix (the data on each index multiplies
          a factor whose value is different according to the index of the
          data), and then adds another matrix (data on each index add a 
          constant whose value is various according to the index of the
          data).

        - All I do is provide a csv file to specify the attribute, 
          timing type, which index is demanded to be transformed, and the
          tool applies a formula to the data.

    Transformer has other features -- engineers can understand how to use 
    them by just following the manual (SolidoChar -h).

    Since the Liberty files include millions of data, it would be hard to
    ensure the reliability by trying to do this with an internal script.

    Margining -- this adds or removes margin to .libs.  It is very useful 
    since the liberty format is complicated and Transformer could do this 
    easily by just one command line.  Adding margin on constraint data is 
    quite necessary in terms of LVF libraries, especially for advanced 
    process like 12nm, 7nm or lower.

    Splitting -- slices out cells, arcs, tables, etc.  from .lib files.
    I used it once; it saved time, but it could also be done by scripting.

    Parser --  all I need to do to modify through different process is to 
    just modify the regular expression part.  It is well-supported by the
    Siemens/Solido AE.

    I am a big fan of SolidoChar Generator.  We have used it for years to
    support different internal project teams and their feedback has been
    positive.  A freshman engineer could use it immediately on a project
    if the parser is ready and numerous parameters are not required.

    We're interested in how more machine learning will enhance SolidoChar.

        ----    ----    ----    ----    ----    ----    ----

    SolidoChar Generate has a "Transform" feature.  It lets us modify our
    library's Liberty files, such as adding margins, or trimming files.  

    "Transform" is a tremendous time savings especially where Liberty
    post-processing is required -- before we used to need a lot of time
    to do this for our 2 GB Liberty files.  

    As an example, if we want to merge two cells from two different Liberty
    files:

        - In the past, we would change these by hand.  It took us a lot
          of time, as we would have to open both files, and copy them and
          paste them in.

        - With "Transform", it's only one command, and we don't have to
          open the Liberty files to change them.  (To do it, we write the
          scripts/customizations to get what we need -- with some help
          from our Solido AE and it's done.  Reuse the script again and
          again.)

    Once we understand it, the same setup can also literally be reused in
    across different process and IP to perform the same operation.

        ----    ----    ----    ----    ----    ----    ----

Related Articles

    Solido's 3-piggies of ML characterization tools is Best of 2019 #6b
    User buzz on Siemens/Solido machine learning is #1 for Best of 2018
    Amit on Solido machine learning, lib characterization, and Siri
    Amit added 263 engineers on Library Characterization this year!
    Solido ML, BDA Ravi, Tom Beckley SSS makes #2 for Best of 2017

Join    Index    Next->Item







   
 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)