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 »

How Bad is Your HDL Code? Be the First to Find out!

September 4th, 2014 by Graham Bell
builtd-it-and-the-bugs-will-come(Courtesy of Andy Glover,

It is a fact-of-life that as soon as RTL designers start writing the code for their modules, they will begin to introduce unintended errors. To eliminate these errors, designers will use a variety of tools to ensure the code is correct before hand-off. Functional errors are typically caught by a mix of static tools (auto-formal and assertion-based) and simulation. However, before designers start to uncover functional errors their code should pass RTL linting. Linting has the advantages of delivering very quick feedback on troublesome and even dangerous coding style that causes problems that can show up in simulation, but will likely take a much longer time to uncover. With the right lint tool, you can catch the “low-hanging fruit” before tackling functional errors.

As the code goes through refinement by a developer, Real Intent’s Ascent Lint is applicable at any stage of RTL maturity. Designers can be working with a mix of internally developed and external IPs with different levels of maturity and compatibility. And they can check their RTL early and often through development, confident it is ready for integration with other modules.

In order to bring this mix of IPs together under one umbrella, Real Intent recommends using a succession of Lint policy files. Each policy file is intended to achieve a significantly greater level of maturity towards achieving quality RTL using a set of Lint rules. The policies are tailored to apply across the broad spectrum of design types, but may be adjusted as needed. Design teams, after careful consideration, may skip individual steps in the flow in keeping with their priorities. Additionally, the sequence of policies is optimized to lend itself for early detection, faster debug and low noise. Here again, design teams may choose to re-order the recommendations based on their best practices.

HDL maturity is broadly classified into three stages of Initial, Mature and Handoff with an associated policy file. The three stages are defined as follows:

  1. Initial RTL – Initial RTL represents the early phase where the requirements may still be evolving. It ensures that regressions and builds failures are caught early.
  2. Mature RTL – Modeling costs, simulation-synthesis mismatches, FSM complexity, etc. are higher order aspects of freeze-ready RTL that can significantly impact the design quality. The Mature RTL checks ensure necessary conditions for downstream interoperability.
  3. Handoff RTL – At the handoff stage, the checks are geared towards compliance with industry standards or internal conventions, to allow easy integration and reuse.
RTL Lint stages

Fig. 1. Illustration of the policies associated with the Initial, Mature and Handoff stages of RTL Linting.

By fixing errors earlier in the design flow, with static verification such as Lint, significant project timeline savings can be achieved. Designers realize maximum productivity through using a staged set of policy files that address each level of code maturity. And designers can be confident that when their code is integrated into the project, they will not “look bad” to other team members, since they are delivering quality RTL for downstream simulation and implementation.

Related posts:

Tags: , , , , , , ,

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