<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Module 8: RTL Coding for Quality &amp; Synthesis on Circuit Quest</title>
    <link>https://circuit.quest/courses/digital-design-verilog/module-08/</link>
    <description>Recent content in Module 8: RTL Coding for Quality &amp; Synthesis on Circuit Quest</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 04 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://circuit.quest/courses/digital-design-verilog/module-08/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Naming Conventions and File Organization</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-08/08-01-coding-guidelines/01-naming-conventions-and-file-organization/</link>
      <pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-08/08-01-coding-guidelines/01-naming-conventions-and-file-organization/</guid>
      <description>None of this changes what the RTL does. All of it changes how fast someone else, including you in six months, can trust it. The naming and file conventions real design teams enforce, and the reasons behind each.</description>
    </item>
    <item>
      <title>Reset Strategy Consistency</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-08/08-01-coding-guidelines/02-reset-strategy-consistency/</link>
      <pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-08/08-01-coding-guidelines/02-reset-strategy-consistency/</guid>
      <description>Naming inconsistency costs review time. Reset inconsistency can cost silicon. Why every module in a project needs to agree on reset polarity, reset type and reset domain boundaries, and what happens when they do not.</description>
    </item>
    <item>
      <title>The Sim/Synth Mismatch Checklist</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-08/08-01-coding-guidelines/03-avoiding-sim-synth-mismatches/</link>
      <pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-08/08-01-coding-guidelines/03-avoiding-sim-synth-mismatches/</guid>
      <description>You have met every cause of sim/synth mismatch already, scattered across five modules. This article is the checklist: all of them in one place, and the single coding discipline that prevents every one.</description>
    </item>
    <item>
      <title>What Synthesis Does With Your RTL</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-08/08-02-synthesis-aware-coding/01-what-synthesis-does-with-your-rtl/</link>
      <pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-08/08-02-synthesis-aware-coding/01-what-synthesis-does-with-your-rtl/</guid>
      <description>You have known since Module 5 that if-else builds priority and case builds parallel decode. This article goes one level down, into what the synthesis tool does with those structures once you have written them.</description>
    </item>
    <item>
      <title>Resource Sharing</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-08/08-02-synthesis-aware-coding/02-resource-sharing-area-vs-timing/</link>
      <pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-08/08-02-synthesis-aware-coding/02-resource-sharing-area-vs-timing/</guid>
      <description>Write two additions in mutually exclusive branches of an if-else and a synthesis tool may quietly build only one adder, shared between them. When that happens, why it is usually a win, and the one case where you need to stop it.</description>
    </item>
    <item>
      <title>Guiding Synthesis Without Fighting It</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-08/08-02-synthesis-aware-coding/03-guiding-the-tool-without-fighting-it/</link>
      <pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-08/08-02-synthesis-aware-coding/03-guiding-the-tool-without-fighting-it/</guid>
      <description>The two previous articles showed what synthesis does with your RTL. This one is about the discipline that follows: describe intent clearly, constrain honestly, and stop trying to out-think the optimiser at the line level.</description>
    </item>
    <item>
      <title>Setup, Hold and the Critical Path</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-08/08-03-timing-and-sta/01-setup-hold-and-the-critical-path/</link>
      <pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-08/08-03-timing-and-sta/01-setup-hold-and-the-critical-path/</guid>
      <description>You met setup and hold for a single flip-flop in Module 3. Static timing analysis is the same check applied automatically to every path in a design with millions of flip-flops, without running a single simulation vector.</description>
    </item>
    <item>
      <title>Writing Basic SDC Constraints</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-08/08-03-timing-and-sta/02-writing-basic-sdc-constraints/</link>
      <pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-08/08-03-timing-and-sta/02-writing-basic-sdc-constraints/</guid>
      <description>A synthesis tool has no idea what clock frequency you are targeting unless you tell it, in a standard file format called SDC. The three constraints that appear in nearly every project, and what happens when they are wrong.</description>
    </item>
    <item>
      <title>How Synthesis Optimizes for Timing</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-08/08-03-timing-and-sta/03-how-synthesis-optimizes-for-timing/</link>
      <pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-08/08-03-timing-and-sta/03-how-synthesis-optimizes-for-timing/</guid>
      <description>Section 8.2 said resource sharing trades area for timing. This article shows the mechanism under every one of those trades: the levers a synthesis tool pulls once an SDC constraint tells it a path is tight.</description>
    </item>
    <item>
      <title>Reading a Timing Report</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-08/08-03-timing-and-sta/04-reading-a-timing-report/</link>
      <pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-08/08-03-timing-and-sta/04-reading-a-timing-report/</guid>
      <description>Everything in Section 8.3 has been building to this: opening a real timing report and knowing which line to look at, what it says, and where in the RTL the fix belongs.</description>
    </item>
    <item>
      <title>X-Propagation in Practice</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-08/08-04-common-bugs-and-debugging/01-x-propagation-in-practice/</link>
      <pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-08/08-04-common-bugs-and-debugging/01-x-propagation-in-practice/</guid>
      <description>You met X-propagation briefly in Module 6. Now it gets the full treatment: where X comes from, how it spreads, and the technique for chasing an X back to the register it started at.</description>
    </item>
    <item>
      <title>Finding a Latch That Got Into Your Design</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-08/08-04-common-bugs-and-debugging/02-unintended-latch-inference-revisited/</link>
      <pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-08/08-04-common-bugs-and-debugging/02-unintended-latch-inference-revisited/</guid>
      <description>You know why an incomplete always block infers a latch; Section 5.2 covered the mechanism. This article is the practical side: how to find one that has already made it into a real design, before it becomes a lab bug.</description>
    </item>
    <item>
      <title>Reset Domain Problems</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-08/08-04-common-bugs-and-debugging/03-reset-domain-problems/</link>
      <pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-08/08-04-common-bugs-and-debugging/03-reset-domain-problems/</guid>
      <description>Two modules, each correct, each verified on its own. Wire them together and the design fails at power-up. Reset domain bugs are why, and they are nearly invisible until integration.</description>
    </item>
    <item>
      <title>Multi-Driver Conflicts</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-08/08-04-common-bugs-and-debugging/04-multi-driver-conflicts/</link>
      <pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-08/08-04-common-bugs-and-debugging/04-multi-driver-conflicts/</guid>
      <description>A signal with two drivers is not ambiguous in simulation; the simulator has a precise rule for it. That precision is what makes the bug easy to miss: it can look like a correct value for a long time before it does not.</description>
    </item>
    <item>
      <title>A Systematic Debugging Method</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-08/08-04-common-bugs-and-debugging/05-a-systematic-debugging-methodology/</link>
      <pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-08/08-04-common-bugs-and-debugging/05-a-systematic-debugging-methodology/</guid>
      <description>Every technique in Section 8.4, and most of Module 6, belongs in one converging method. A repeatable sequence that turns &amp;rsquo;the testbench says FAIL&amp;rsquo; into a confirmed root cause, applied to a worked example.</description>
    </item>
  </channel>
</rss>
