Graham is VP of Marketing at Real Intent. He has over 20 years experience in the design automation industry. He has founded startups, brought Nassda to an IPO and previously was Sales and Marketing Director at Internet Business Systems, a web portal company. Graham has a Bachelor of Computer … More »
Thoughts on RTL Lint and a Poem
May 21st, 2012 by Graham Bell
The following blog entry was written by Jim Foley, R&D Director at Real Intent
Lately I’ve been thinking a lot about RTL lint. This might be helpful to you, because if you’re tasked with solving multi-corner timing closure or characterizing activity for realistic power estimates, you know you don’t have much time left to think about lint. Nor should you have to. Granted, there are very many things that lint can check for – more about this in a bit — and there are as many different opinions about what constructs, conventions, and potential problems ought to be checked for and at which stage in the design process as there are individual design engineers. I tend to put high value on lint rules that report on constructs that are legal but have suspicious modeling, that in Ascent Lint we categorize as “dubious”. There’s also a lot of value to checking coding conventions to make code clear and readable – by whatever criteria meets that objective for you or your design group, as well as catching things that may simulate fine but may cost you time and trouble downstream in the design flow.
So what makes a good lint tool? For starters, it’s got to check for the issues you care about, as well as problems that might not have occurred to you and that you don’t want to have to puzzle through in a system-level simulation or synthesis run. You should be able configure rules and options in a way that is easy and intuitive. The linter should tell you exactly what it found in a format that is clearly worded, concise, and correct. Importantly, it should give you a fast result. Verification of deep sub-micron design for today’s systems is complicated, and there’s no reason that lint should add more complication to your life by reporting inaccurate or ambiguous warnings or giving you the information you needed ten minutes ago six hours from now.
Returning to the topic of what stuff lint can check for, and looking to take advantage of unexploited opportunities in design automation poetic verse, I’ve penned an
Ode to Lint
Vector range in wrong direction;
Names escaped, too long, too short;
Implicit nets are undeclared;
Add of unsigned with a signed;
Statements where code never goes;
If expression tests subtraction;
I will be at the June DAC show in San Francisco. Stop by the Real Intent booth to say hi, discuss how you use Lint and enter our drawing for cool tech-gadgets like a SlingBox PRO-HD or Kindle Fire. See you then. – Jim Foley.