( DAC'19 Item 3b ) ------------------------------------------------ [02/20/20]
Subject: Ascent Lint less noisy vs. SNPS Spyglass makes Best of 2019 #3b
SAME SPEED, LESS NOISY: Although this year's users comments didn't cite SNPS
Spyglass very much, Real Intent Ascent Lint got kudos for being less noisy
when compared to "the other linter" (which everyone *knows* is Spyglass.)
"Ascent Lint's performance is faster than another commercial tool
I've used."
"We use Ascent Lint for our linting because during our eval, it had
a lower noise level than the other linter we compared it with."
"Real Intent's standard RTL linting rules are well-designed to
highlight issues, while minimizing the noise-level. We can turn
off/customize our rule set or do waivers."
And the best linting quote this year was:
"It's important to lint your System Verilog code. If you are not
careful, System Verilog will let you shoot yourself in the foot."
STRUCTURAL LINTING ROLLS ON: Static RTL linting sign-off is still going
strong, even while formal linting comes out of hibernation. (DAC'19 #3d)
---- ---- ---- ---- ---- ---- ----
---- ---- ---- ---- ---- ---- ----
---- ---- ---- ---- ---- ---- ----
QUESTION ASKED:
Q: "What were the 3 or 4 most INTERESTING specific EDA tools
you've seen this year? WHY did they interest you?"
---- ---- ---- ---- ---- ---- ----
We use Real Intent Lint as part of a customized flow.
- We run Ascent Lint prior to our simulations -- and we run it
many times.
- We also use it for final RTL linting sign-off step
I would recommend it to others.
---- ---- ---- ---- ---- ---- ----
Real Intent Ascent Lint
It's very important to lint your System Verilog code. If you are not
careful, SysVerilog will let you shoot yourself in the foot, more so
than the more structured VHDL.
We use Ascent Lint for our linting because during our eval:
- It had a lower noise level than our prior tool.
- Real Intent's support was better.
RTL Linting Sign-Off Methodology
Ascent Lint is part of our sign-off. Before anything is released or
merged, we want to know it will be a working design without any open
issues.
We run Ascent Lint early and often.
1. Start early
We start by running Ascent Lint with our design framework
and our modules, before we run simulation.
The benefit of running early is that it can identify issues
that would take much longer to work their way up through
simulation, where you would have to do lots of back tracing
to find and narrow down to what you connected it improperly.
It's even useful to run Ascent Lint early on small modules
that are part of a larger function and will not be
independently simulated. However, it's always a judgment
call as to the size of the module/block that you run it on.
2. Often -- part of "continuous integration"
It's part of our continuous integration sign-off process.
The trigger to run Ascent Lint is whenever we have a code
change
a. We do a lint run before any merge request.
b. We also do a lint run at the top level afterward. If
your code change is internal, you may be okay without
this. However, if you change the ports, but forget to
change what instantiates it, you will have a mismatch.
If you already have continuous integration for your SV
simulation, just insert running Ascent lint before simulation.
3. Final RTL linting Sign-off
We run our final RTL linting sign-off at a minimum before
we run Vivado synthesis.
Linting Rules
Ascent Lint can pick up syntax errors, such as whether you meant to
assign 1-bit number to 10-bit number.
Real Intent's standard RTL linting rules are well-crafted to highlight
issues, while minimizing the noise-level. We can turn off/customize
our rule set or do waivers.
- We usually use the default rule set, but may filter out
one or two rules.
- i.e., it's a better coding practice to have a certain
comment-to-code ratio, but you can turn it off.
We don't see stupid duplication of warnings/errors in Real Intent's
reports. If we do see a problem that shows in multiple spots it's
because they are related, e.g. the left and right sides of a mismatch.
Either one may be wrong, so you can fix one, or fix the other, though
you can always create new problems when you do so.
Real Intent also supports the DO-254 safety spec for safety critical
designs. We haven't had too many of those designs in our group, but
when we do, having the DO-254 rules built-in is beneficial.
Performance
Ascent Lint runs verify fast on full designs which makes it painless
to run early and often
Ascent Lint Runtime
- 3K LUT under 1 min
- 80K LUT under 2 min
Real Intent typically completes a run for us in under 3 minutes.
Conclusion
Using Ascent Lint with System Verilog is very, very important. If you
wait too long, it can overwhelm you, so run it early and often -- also
learn better practices so you don't repeat.
Real Intent's support continues to be great. They are responsive,
helpful, and do a good job of trouble shooting. We still occasionally
come up with a new way and they'll have an update for us within a few
days.
---- ---- ---- ---- ---- ---- ----
Real Intent Ascent Lint's performance is faster than another commercial
tools I've used.
We use Real Intent Ascent Lint as a routine checker, to help find RTL
bugs following each submitted RTL change.
We have an existing internal flow for Ascent Lint, which doesn't require
any action from the designer. However, I also ran Ascent in a
stand-alone (native) way, since our internal flow does not support VHDL,
while Ascent Lint does.
I did the ramp-up with some help from CAD, and it was quick -- it only
took about 1 day. Real Intent provides a policy file as part of the
installation. The policy defines a recommended set of 'high value'
rules, which enabled me to get results quickly.
Ascent/Lint/lib/policies/VerilogVHDLStdDefault.policy
Room for improvement: debug/documentation -- I'd like to have schematics
available for any rule which involves signal(s).
I'd recommend it. It's a good performance tool for linting.
---- ---- ---- ---- ---- ---- ----
We use Real Intent Ascent Lint for code quality checks.
We use the tool's standard checks and add our company's own policy
checks based on our code quality standards.
---- ---- ---- ---- ---- ---- ----
Ascent Lint has good functionality, is easy to ramp up, and easy to
debug.
The rule policy exploration is intuitive, and the GUI is user friendly.
It's a default rule set is helpful for ramping up a basic flow.
- The rules can be configured, such as if you disagree with their
default severity level -- which I sometimes do.
- You can turn off irrelevant rules and configure it up front,
so you don't flag issues that are not of interest.
Ascent Lint's noise level is mostly better than other tools I've run.
(Some issues can trigger multiple warnings/errors.) It does a good
job in combining multiple violations in the charts.
It's policy and criteria views are good, but the custom views are less
intuitive -- this where I'd like to see Real Intent make improvements.
I'd recommend Ascent Lint. Its biggest strengths are its simplicity and
run time -- it does the job.
---- ---- ---- ---- ---- ---- ----
We use Ascent Lint. Much better than SpyGlass.
---- ---- ---- ---- ---- ---- ----
Related Articles
Real Intent Meridian CDC & Verix CDC tools take Best of 2019 #3a
Ascent Lint less noisy vs. SNPS Spyglass makes Best of 2019 #3b
Real Intent Meridian RDC has 20X less noise gets Best of 2019 #3c
Real Intent's AutoFormal *formal* linting makes Best of 2019 #3d
Join
Index
Next->Item
|
|