<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Module 9: SystemVerilog for Design &amp; Verification on Circuit Quest</title>
    <link>https://circuit.quest/courses/digital-design-verilog/module-09/</link>
    <description>Recent content in Module 9: SystemVerilog for Design &amp; Verification on Circuit Quest</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 18 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://circuit.quest/courses/digital-design-verilog/module-09/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>The logic Type</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-09/09-01-systemverilog-design/01-the-logic-type/</link>
      <pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-09/09-01-systemverilog-design/01-the-logic-type/</guid>
      <description>Section 4.2 called wire versus reg the most confusing part of classic Verilog. SystemVerilog&amp;rsquo;s answer was not a better explanation but a single new type that makes the distinction mostly irrelevant.</description>
    </item>
    <item>
      <title>always_ff, always_comb and always_latch</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-09/09-01-systemverilog-design/02-always-ff-comb-and-latch/</link>
      <pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-09/09-01-systemverilog-design/02-always-ff-comb-and-latch/</guid>
      <description>Plain always never told the tool what you meant to build, only what you wrote. These three blocks tell it both, and let it catch the gap at compile time instead of at synthesis time.</description>
    </item>
    <item>
      <title>typedef, struct, union and enum</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-09/09-01-systemverilog-design/03-typedef-struct-union-enum/</link>
      <pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-09/09-01-systemverilog-design/03-typedef-struct-union-enum/</guid>
      <description>Every FSM since Module 5 has used localparam to name states as bit patterns. enum names them as names, and struct groups related signals together so a bus does not have to be a loose pile of same-width wires.</description>
    </item>
    <item>
      <title>Interfaces and Modports</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-09/09-01-systemverilog-design/04-interfaces-and-modports/</link>
      <pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-09/09-01-systemverilog-design/04-interfaces-and-modports/</guid>
      <description>A ready/valid handshake is four or five signals that always travel together, in every module that uses it. An interface makes that grouping a declared thing, and a modport says which way each signal goes for each side of the connection.</description>
    </item>
    <item>
      <title>Classes and Objects for Verification</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-09/09-02-systemverilog-verification/01-classes-and-objects-for-verification/</link>
      <pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-09/09-02-systemverilog-verification/01-classes-and-objects-for-verification/</guid>
      <description>Every testbench since Module 6 has been hardware describing hardware: modules, wires, always blocks. A SystemVerilog class is something different, software describing test data, and it is why verification code stops looking like design code.</description>
    </item>
    <item>
      <title>Randomization With rand and randc</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-09/09-02-systemverilog-verification/02-randomization-with-rand-and-randc/</link>
      <pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-09/09-02-systemverilog-verification/02-randomization-with-rand-and-randc/</guid>
      <description>Directed tests since Module 6 have used hand-picked inputs to exercise specific behaviour. Randomization turns that around: let the tool generate thousands of legal inputs, and let volume find the corner cases nobody thought to write.</description>
    </item>
    <item>
      <title>Constraints and Constraint Solving</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-09/09-02-systemverilog-verification/03-constraints-and-constraint-solving/</link>
      <pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-09/09-02-systemverilog-verification/03-constraints-and-constraint-solving/</guid>
      <description>Plain rand does not know that an opcode field has only 6 legal values out of 8, or that two fields need a relationship between them. constraint blocks tell the randomization engine exactly that, and turn raw randomization into something usable.</description>
    </item>
    <item>
      <title>Toward a UVM-Ready Testbench</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-09/09-02-systemverilog-verification/04-toward-a-uvm-ready-testbench/</link>
      <pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-09/09-02-systemverilog-verification/04-toward-a-uvm-ready-testbench/</guid>
      <description>Transactions, randomization and constraints are the pieces. This article assembles them into an architecture, driver, monitor and scoreboard, the shape every UVM testbench takes, built here without UVM so the structure is plain to see.</description>
    </item>
    <item>
      <title>Immediate Assertions</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-09/09-03-assertions-sva/01-immediate-assertions-in-systemverilog/</link>
      <pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-09/09-03-assertions-sva/01-immediate-assertions-in-systemverilog/</guid>
      <description>You have been writing if-statement checks with $display and $error since Module 6. assert is the same idea, purpose-built, and it changes where a check can live: out of the testbench and into the design itself.</description>
    </item>
    <item>
      <title>Concurrent Assertions and Temporal Logic</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-09/09-03-assertions-sva/02-concurrent-assertions-and-temporal-logic/</link>
      <pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-09/09-03-assertions-sva/02-concurrent-assertions-and-temporal-logic/</guid>
      <description>An immediate assertion checks one instant. A handshake&amp;rsquo;s real rule, request implies acknowledge within N cycles, spans time. Concurrent assertions are the one tool in this course built to express that kind of multi-cycle relationship directly.</description>
    </item>
    <item>
      <title>Writing Properties and Sequences</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-09/09-03-assertions-sva/03-writing-properties-and-sequences/</link>
      <pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-09/09-03-assertions-sva/03-writing-properties-and-sequences/</guid>
      <description>The last article of Module 9: naming temporal patterns as reusable sequences and properties, so an assertion library becomes documentation a design review can read, and a checklist every future test inherits.</description>
    </item>
  </channel>
</rss>
