Open side-bar Menu
 Real Talk
Graham Bell
Graham Bell
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;
Race conditions need attention;
V’log source with wrong extension;
Too long process block.

Names escaped, too long, too short;
Assignment to an input port;
Improper ways to use a ‘fork';
Logic driving clock.

Implicit nets are undeclared;
Multiplies that ought be shared;
Don’t allow tristates in there!
Constant driving port.

Add of unsigned with a signed;
Port connections undefined;
Macros being redefined;
Input output short.

Statements where code never goes;
Stuff that makes my sims too slow;
Outputs should begin with ‘O’!
Flag that ASIC cell.

If expression tests subtraction;
Invert-op bitwise extension;
Names that cause SV collisions;
Inconsistent indentation;
Insufficient commentation;
Coding needing condemnation!
ASCII 7 (bell).


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.

Related posts:

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

S2C: FPGA Base prototyping- Download white paper

Internet Business Systems © 2016 Internet Business Systems, Inc.
595 Millich Dr., Suite 216, Campbell, CA 95008
+1 (408)-337-6870 — Contact Us, or visit our other sites:
TechJobsCafe - Technical Jobs and Resumes EDACafe - Electronic Design Automation GISCafe - Geographical Information Services  MCADCafe - Mechanical Design and Engineering ShareCG - Share Computer Graphic (CG) Animation, 3D Art and 3D Models
  Privacy Policy