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
    • Digital Logic for RTL Engineers
    • Number Systems for RTL Engineers
    • Verilog Fundamentals
    • Verilog Operators and Types
    • SystemVerilog for RTL
    • Simulation and Testbenches
  • Combinational Design25
  • Sequential Design27
  • FSM & Control27
  • Timing & Clocking39
  • Reset & CDC34
  • Memory & Buses57
  • Advanced RTL28
  • Senior & Interview76
  • Glossary and Notation
Loading lesson

‹RTL Design
  1. Topics
  2. RTL Design
  3. RTL Foundations

Part 1 · Foundations · Beginner

RTL Foundations

Digital logic, number systems, Verilog and SystemVerilog, and testbenches: the groundwork for combinational and sequential design.

  • 6topics
  • 36lessons
On this page

    Foundations cover logic algebra, number representation, Verilog and SystemVerilog, and self-checking testbenches. Later combinational and sequential design assumes all four; no prior hardware experience is assumed beyond reading code and thinking in binary.

    Learning path from digital logic through number systems, Verilog, operators, SystemVerilog and simulation.
    Suggested order. Each topic builds on the one before it.

    The six topics

    Topic

    Lessons

    After it you can…

    Study time

    Digital logic

    6

    Simplify equations, apply De Morgan, and judge the cost of logic.

    2–3 h

    Number systems

    6

    Work with two's complement, signedness, extension and overflow flags.

    3 h

    Verilog fundamentals

    6

    Write modules, the two process templates, and use = / <= correctly.

    3 h

    Operators and types

    6

    Control widths, slices, concatenation, reductions, shifts and parameters.

    3 h

    SystemVerilog for RTL

    6

    Use logic, always_ff/always_comb, enums and interfaces.

    2–3 h

    Simulation and testbenches

    6

    Build self-checking tests and define when a block is done.

    3 h

    Study time covers reading each lesson and running its examples. The section's hands-on project takes extra hours on top.

    Unfamiliar term or naming suffix? The Glossary and notation page defines each in one line and links to the lesson that teaches it.

    End-of-section checkpoint

    New readers can skip this checkpoint until they finish the six topics. Returning readers can use it to choose what to revisit; these are outcomes, not entry requirements.

    Check yourself After completing Foundations: What is 8'hF0 as signed and unsigned? Why does $signed(a) + b sometimes give the wrong answer? What does always_comb check that always @(*) does not?

    8'hF0 is 240 unsigned and −16 signed. If b is unsigned, the whole expression is unsigned, so $signed(a) is treated as unsigned and zero-extended: its sign is lost. always_comb infers its sensitivity (including reads inside called functions), runs once at time 0, forbids other processes from writing its variables, and lets tools flag an inferred latch. If any of them is shaky, revisit Representation drives behavior, Sign and zero extension and always_ff and always_comb.

    Interview

    Interviewers use these topics as filters: simplify a Boolean expression, explain blocking vs non-blocking, size an adder and detect overflow. Fluency here is what lets the harder design questions in later sections go smoothly.

    How this was checked

    Runnable examples. Authors compile complete examples with node scripts/tools/check-rtl-snippets.mjs rtl/foundations and execute self-checking benches with node scripts/tools/run-rtl-testbenches.mjs rtl/foundations. These are separate author checks, not part of every build. Partial snippets and deliberately broken examples are marked and skipped. You can reproduce a printed PASS line with iverilog -g2012.

    Check-yourself questions. Each lesson ends with check-yourself questions; attempting them before reading the explanation measures understanding.

    Scratch testbench. A tiny tb module for trying expressions and printing results demonstrates the language rules faster than reading about them.

    Related topics

    • Next: Combinational design

    • Back to the course overview

    PreviousNext: Digital Logic for RTL Engineers

    Up next

    Up nextDigital Logic for RTL Engineers

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Combinational Design
    • Sequential Design
    • FSM & Control