Linting as a technology has been around for decades. Historically, teams used linting for syntactic checks (to verify whether keywords, object names, etc., are placed accurately in the code) or semantic checks (to determine if references made in the code are valid). Back then, the fundamental goal was to help customers fix strenuous portability challenges and the most basic of checks were considered advanced. For context, porting RTL from one SoC to another SoC requires well-constructed, modular RTL code that is intuitive, easy to understand, and doesn’t require additional maintenance.
However, as time-to-market windows shrunk over the years, the design community has been determined to find new ways to enhance productivity and verify errors systematically. Linting became one such way to eliminate complex errors early, gaining wide popularity as an effective technology, especially in the simulation synthesis or place-and-route stages of the design cycle.
According to a survey by Rollbar, developers are overwhelmed with having to work with error monitoring tools that don’t do what they’re supposed to, allowing errors to fall through the cracks that are then pointed out publicly by users or customers. Over 40% of developers identify fixing bugs and errors as their biggest pain point. In short, the larger the chip size or complexity, the more the problems.
Keeping up with industry trends and market changes, Synopsys has played an active role in integrating advanced algorithms and analysis techniques to provide designers with detailed information and insights about their designs. As time progressed, we started adding more complex checks targeted at handling simulation synthesis complexities to align all errors with what designers detected using the core of our Synopsys Design Compiler® comprehensive RTL synthesis solution. This move offered designers real-time notifications on problems that they would likely face later in the synthesis stage, optimizing the team’s productivity and converging toward a “clean,” signoff-ready code.