Skip to content
DenseChip
Learn
PracticeCode labInterview

DenseChip

Navigate

Menu

LearnPracticeCode labInterview

Tools

All toolsSV editorCode repoResume
DenseChip

Practice, courses, and chip-design tools in one focused workspace.

LearnPracticeCode labInterviewToolsLearning paths

© 2026 DenseChip

AboutContactPrivacyTerms
Skip to lesson

Course contents

  • RTL Foundations36
  • Combinational Design25
  • Sequential Design27
  • FSM & Control27
  • Timing & Clocking39
  • Reset & CDC34
  • Memory & Buses57
  • Advanced RTL28
    • Parameterization and Generate Hub
    • Top-Level Integration Hub
    • Synthesis Intent Hub
    • Style and Static Checks Hub
      • Style conventions that reduce review friction
      • Lint, RDC, and waiver policy
      • Waiver rules that scale
    • Assertions in RTL Hub
    • Formal Verification Basics Hub
    • Reusable SystemVerilog for RTL
  • Senior & Interview76
  • Glossary and Notation
Loading lesson

‹Advanced RTL
  1. Topics
  2. RTL Design
  3. Advanced RTL
  4. Style and Static Checks Hub

Part 8 · Advanced · Advanced

Style and Static Checks Hub

Naming, process, and lint discipline for review-ready RTL, with waivers kept rare and narrow.

  • 3topics
  • 3lessons

Topics in this section

  1. 1Style conventions that reduce review friction1 lesson
  2. 2Lint, RDC, and waiver policy1 lesson
  3. 3Waiver rules that scale1 lesson
On this page

    Production RTL is read more often than it is written. Stable naming, one process per state group, clean lint results, and narrow waivers keep reviews short.

    Flow from writing RTL through lint and RDC to fixing findings, waiving narrowly, and signing off.
    Findings are fixed at the cause; only intentional, reviewed exceptions become waivers.

    Lessons in this topic

    3 lessons, about 13 min

    1. 1Style conventions that reduce review frictionYou can apply the suffix convention, keep one always_ff per clock and reset domain, and write decode with a default for every output.4 min
    2. 2Lint, RDC, and waiver policyYou can separate what lint and RDC each check, fix a finding in the RTL first, and decide when an isolation scheme is needed for a reset crossing.6 min
    3. 3Waiver rules that scaleYou can write a waiver with all five fields, scope it to one site, and review a waiver change with the same care as new logic.3 min
    Check yourself A lint run reports thirty findings the day before a deadline. What is the disciplined response?

    Fix each root cause first, in the RTL. A waiver is only for behavior that is intentional and reviewed, with an owner and an expiry.

    Interview

    Expect to walk through one lint finding end to end: what the rule checks, why the code trips it, and whether the fix belongs in the RTL or in a waiver.

    Revision sheet

    The whole topic on one page, taken from each lesson's Remember box. Read it before an interview, or print it.

    Style conventions that reduce review friction

    • Direction, polarity and role live in the suffix: req_i, grant_o, rst_ni, state_q, state_d.

    • Use one always_ff per clock and reset domain.

    • In the always_comb block, give every output a default before the case so no input combination leaves one unassigned.

    Rule of thumb: one process says what happens next, the other says when it is stored.

    Lint, RDC, and waiver policy

    • Lint reads the RTL as written; RDC also reads clock and reset intent.

    • A source reset can change data under a live receiver. Coordinate resets, isolate before reset, or synchronise a single-bit level.

    • Fix first, then waive. A waiver without the fix hides the next instance.

    Rule of thumb: a reset-release synchroniser alone is not RDC signoff.

    Waiver rules that scale

    • A waiver records an intentional exception; a missing field means the entry is a guess.

    • Waive the site, never the rule: scope to the instance or signal, one entry per site.

    • A rising waiver count per rule means the style is drifting.

    Rule of thumb: refuse a waiver when the RTL fix is cheap, the scope is wider than the site, or no expiry is given.

    Practise it

    • Mini project: a reusable FIFO IP with package, interface, assertions and a formal check

    • Practice question: Debugging metastability from asynchronous reset deassertion

    • Interview: run a mock interview on this topic

    How this was checked

    The benches here are finite digital checks, not lint/RDC or physical signoff results. Executed with Icarus Verilog 13.0 (2026-10-16): each prints PASS.

    PreviousNext: Style conventions that reduce review friction

    Up next

    Up nextStyle conventions that reduce review friction

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Parameterization and Generate Hub
    • Top-Level Integration Hub
    • Synthesis Intent Hub