( 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
|
|