<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Module 4: Introduction to Verilog HDL on Circuit Quest</title>
    <link>https://circuit.quest/courses/digital-design-verilog/module-04/</link>
    <description>Recent content in Module 4: Introduction to Verilog HDL on Circuit Quest</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 01 Mar 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://circuit.quest/courses/digital-design-verilog/module-04/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>From Schematics to Code</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-01-why-hdl/01-the-hardware-description-revolution/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-01-why-hdl/01-the-hardware-description-revolution/</guid>
      <description>Why hand-drawn design stopped scaling, what a hardware description language actually buys you, and where Verilog came from.</description>
    </item>
    <item>
      <title>Simulation and Synthesis</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-01-why-hdl/02-simulation-vs-synthesis/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-01-why-hdl/02-simulation-vs-synthesis/</guid>
      <description>The same Verilog file is read by a simulator and a synthesiser with different rules. The RTL subset is what both agree on, and a design file must stay inside it.</description>
    </item>
    <item>
      <title>From RTL to Silicon</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-01-why-hdl/03-the-design-and-verification-flow/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-01-why-hdl/03-the-design-and-verification-flow/</guid>
      <description>The ten steps between a specification and a finished chip, what each one costs when it finds a bug, and which of them this course covers.</description>
    </item>
    <item>
      <title>Verilog, VHDL and SystemVerilog</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-01-why-hdl/04-verilog-vs-vhdl-vs-systemverilog/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-01-why-hdl/04-verilog-vs-vhdl-vs-systemverilog/</guid>
      <description>The three languages you will meet, the same flip-flop written in each, and why this course teaches Verilog-2001.</description>
    </item>
    <item>
      <title>Thinking in Hardware</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-01-why-hdl/05-thinking-in-hardware/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-01-why-hdl/05-thinking-in-hardware/</guid>
      <description>Five habits from software that produce broken Verilog, and the picture to replace them with: every line is a piece of a circuit.</description>
    </item>
    <item>
      <title>Modules and Ports</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-02-verilog-basics/01-modules-and-ports/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-02-verilog-basics/01-modules-and-ports/</guid>
      <description>The module is the unit of every Verilog design. Its declaration, its port directions, the ANSI style the course uses, and the older style you will meet in other people&amp;rsquo;s code.</description>
    </item>
    <item>
      <title>wire and reg</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-02-verilog-basics/02-wire-and-reg-data-types/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-02-verilog-basics/02-wire-and-reg-data-types/</guid>
      <description>reg does not mean register. What the two keywords actually mean, the one rule that decides which to use, and what really determines whether you get a flip-flop.</description>
    </item>
    <item>
      <title>Vectors and Arrays</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-02-verilog-basics/03-vectors-and-arrays/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-02-verilog-basics/03-vectors-and-arrays/</guid>
      <description>Multi-bit signals: declaring vectors, selecting bits and fields, concatenating and replicating, and modelling memories as arrays.</description>
    </item>
    <item>
      <title>Parameters</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-02-verilog-basics/04-parameters-and-localparams/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-02-verilog-basics/04-parameters-and-localparams/</guid>
      <description>Write a module once and instantiate it at any width: parameters, localparams for internal constants, and $clog2 for derived widths.</description>
    </item>
    <item>
      <title>Number Literals</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-02-verilog-basics/05-number-literals/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-02-verilog-basics/05-number-literals/</guid>
      <description>How to write a constant so that its width is what you meant, why unsized literals cause silent bugs, and what x and z are for.</description>
    </item>
    <item>
      <title>Compiler Directives</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-02-verilog-basics/06-compiler-directives/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-02-verilog-basics/06-compiler-directives/</guid>
      <description>timescale, define and ifdef, include, and default_nettype none, the two-line directive that catches misspelt signal names at compile time.</description>
    </item>
    <item>
      <title>Style and Conventions</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-02-verilog-basics/07-verilog-style-and-conventions/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-02-verilog-basics/07-verilog-style-and-conventions/</guid>
      <description>Naming, reset conventions, one register per always block, layout and comments: the RTL style rules that exist because each one prevents a particular bug.</description>
    </item>
    <item>
      <title>Arithmetic Operators</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-03-operators/01-arithmetic-operators/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-03-operators/01-arithmetic-operators/</guid>
      <description>Add, subtract, multiply, and what each one costs in gates; the width rules that decide whether a carry is kept or lost; why division stays out of RTL; and signed arithmetic.</description>
    </item>
    <item>
      <title>Relational and Logical Operators</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-03-operators/02-relational-and-logical-operators/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-03-operators/02-relational-and-logical-operators/</guid>
      <description>Comparisons and the comparators they build, the case-equality operators that only exist in simulation, and why a &amp;amp;&amp;amp; b and a &amp;amp; b are different circuits.</description>
    </item>
    <item>
      <title>Bitwise and Reduction Operators</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-03-operators/03-bitwise-and-reduction-operators/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-03-operators/03-bitwise-and-reduction-operators/</guid>
      <description>Bitwise operators for masking, setting, clearing and toggling; reduction operators for zero detection, all-ones and parity; and the gates behind each.</description>
    </item>
    <item>
      <title>Shift and Concatenation Operators</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-03-operators/04-shift-and-concatenation-operators/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-03-operators/04-shift-and-concatenation-operators/</guid>
      <description>Logical and arithmetic shifts, the barrel shifter a variable shift becomes, and concatenation and replication for packing, unpacking and sign extension.</description>
    </item>
    <item>
      <title>The Conditional Operator</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-03-operators/05-conditional-operator/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-03-operators/05-conditional-operator/</guid>
      <description>sel ? a : b is a 2-to-1 multiplexer. Conditions, chains that become priority logic, and when to stop chaining and write a case statement.</description>
    </item>
    <item>
      <title>Precedence and Width</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-03-operators/06-operator-precedence-and-pitfalls/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-03-operators/06-operator-precedence-and-pitfalls/</guid>
      <description>The precedence table, the four traps in it that produce silent bugs, the width rules for expressions that are not plain assignments, and the habit that avoids all of it.</description>
    </item>
    <item>
      <title>Gate Primitives</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-04-structural-modeling/01-gate-primitives/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-04-structural-modeling/01-gate-primitives/</guid>
      <description>The built-in gates, output first and inputs after; buffers and tri-state drivers; an SR latch and a full adder built from them; and why you will read them far more often than write them.</description>
    </item>
    <item>
      <title>Module Instantiation</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-04-structural-modeling/02-module-instantiation/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-04-structural-modeling/02-module-instantiation/</guid>
      <description>Placing a verified module inside another: the syntax, named against positional connection, parameters at instantiation, literals on ports, and what to do with ports you do not use.</description>
    </item>
    <item>
      <title>Port Connections in Detail</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-04-structural-modeling/03-port-connection-styles/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-04-structural-modeling/03-port-connection-styles/</guid>
      <description>What happens when a signal and a port differ in width, how to spread a bus across instances with part-selects, tying ports off, and the one-driver rule.</description>
    </item>
    <item>
      <title>Hierarchy and Generate</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-04-structural-modeling/04-hierarchical-design/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-04-structural-modeling/04-hierarchical-design/</guid>
      <description>Why designs are trees of modules, a 4-bit adder from four full adders, the same adder at any width with a generate loop, and hierarchical names for probing inside instances.</description>
    </item>
    <item>
      <title>A 4-bit ALU from the Gates Up</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-04-structural-modeling/05-structural-modeling-worked-example/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-04-structural-modeling/05-structural-modeling-worked-example/</guid>
      <description>Half adder, full adder, adder-subtractor, logic unit and ALU, each built from the one below, with a testbench and a trace of one addition through every level.</description>
    </item>
    <item>
      <title>Continuous Assignments</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-05-dataflow-modeling/01-continuous-assignments/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-05-dataflow-modeling/01-continuous-assignments/</guid>
      <description>The assign statement: a piece of logic that always exists, evaluated in parallel with every other, driving one wire. Its rules, and when to use it over an always block.</description>
    </item>
    <item>
      <title>Dataflow in Practice</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-05-dataflow-modeling/02-dataflow-operators-in-practice/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-05-dataflow-modeling/02-dataflow-operators-in-practice/</guid>
      <description>The common circuits of RTL as assign statements, from gates and reductions through comparators, muxes and shifters, to a parameterised ALU with flags.</description>
    </item>
    <item>
      <title>Muxes, Encoders and Decoders</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-05-dataflow-modeling/03-conditional-dataflow/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-05-dataflow-modeling/03-conditional-dataflow/</guid>
      <description>The three selection blocks of section 1.5 in dataflow style, and a BCD to seven-segment decoder with a self-checking testbench.</description>
    </item>
    <item>
      <title>A Parameterised Comparator, Start to Finish</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-05-dataflow-modeling/04-dataflow-modeling-worked-example/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-05-dataflow-modeling/04-dataflow-modeling-worked-example/</guid>
      <description>Specification, architecture, RTL, a directed testbench with tasks, a random testbench with a reference model, waveforms, and what synthesis produces, for an N-bit signed-or-unsigned comparator.</description>
    </item>
    <item>
      <title>Structural, Dataflow or Behavioural</title>
      <link>https://circuit.quest/courses/digital-design-verilog/module-04/04-05-dataflow-modeling/05-choosing-your-modeling-style/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://circuit.quest/courses/digital-design-verilog/module-04/04-05-dataflow-modeling/05-choosing-your-modeling-style/</guid>
      <description>When to instantiate, when to assign, and when an always block is the only option; how the three coexist in one module; and a look back over Module 4.</description>
    </item>
  </channel>
</rss>
