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

  • How to Use This Course
  • Reading Paths
  • Quick Start: Your First Green Build
  • Part 1: How Chips Get Made6
  • Part 2: Your Workstation5
  • Part 3: Specify and Architect3
  • Part 4: The Design Loop6
    • Compile, Elaborate, Simulate, Synthesize, Lint
    • First Simulation
    • Waveforms with GTKWave
    • Lint with Verilator
    • First Synthesis Check
    • Simulation Code vs Synthesizable Code
  • Part 5: The Verification Ladder6
  • Part 6: Automation and Reproducibility5
  • Part 7: Hand-Off to the Back-End3
  • Part 8: When Things Go Wrong3
  • Part 9: Project and Next Steps3
  • Reference4
Loading lesson

‹Start Here: RTL and Verification
  1. Topics
  2. Start Here: RTL and Verification
  3. Part 4: The Design Loop

Part 4 · The Design Loop · All levels

Part 4: The Design Loop

How do I know my RTL actually works? Run compile, simulate, view and lint on a small design and explain what each stage checks.

  • 6topics
  • 6lessons
On this page

    Part 4 answers: How do I know my RTL actually works?

    The design loop is simulate, look, lint and a first synthesis check, repeated until the design and its testbench agree. This part runs that loop on mini_controller: compile and elaborate, simulate, read the waveform in GTKWave, lint with Verilator and ask Yosys what the code really infers.

    Along the way it draws the line every RTL engineer must see: simulation-only code versus code that synthesizes into hardware.

    After this part you can

    • Run compile, simulate, view and lint on a small design and explain what each stage checks.

    • Read a waveform and point to the cycle where behavior diverges from intent.

    • Tell simulation-only code apart from synthesizable code and fix the mix-ups.

    Lessons

    #

    Lesson

    Level

    Status

    4.1

    Compile, Elaborate, Simulate, Synthesize, Lint

    W · Working

    ready

    4.2

    First Simulation

    W · Working

    ready

    4.3

    Waveforms with GTKWave

    W · Working

    ready

    4.4

    Lint with Verilator

    W · Working

    ready

    4.5

    First Synthesis Check

    W · Working

    ready

    4.6

    Simulation Code vs Synthesizable Code

    W · Working

    ready

    Every lesson in this part is ready. Work through them in order: each one sets up the problem the next one solves.

    Where other courses go deeper

    This course stays on the front-end start-up path and links out instead of repeating. These lessons build on or continue what this part teaches.

    • RTL: Simulation Testbenches

    • RTL: Coding Lint

    • Synthesis: Flow Overview

    Related topics

    • Course hub

    • Previous: Part 3 · Specify and Architect

    • Next: Part 5 · The Verification Ladder

    PreviousNext: Compile, Elaborate, Simulate, Synthesize, Lint

    Up next

    Up nextCompile, Elaborate, Simulate, Synthesize, Lint

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • How to Use This Course
    • Reading Paths
    • Quick Start: Your First Green Build