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

  • Getting Started with AI for VLSI Engineers5
    • Useful AI Tasks: Start Small and Checkable
    • Assistants, Models, Tools, and Your Responsibility
    • Your First RTL Explanation
    • Improve the Answer and Check It Independently
    • Choose a Tool for the Task
  • Just Enough AI: Models and Context15
  • Prompting13
  • Trust and Verification14
  • Using AI for Engineering Work17
  • Engineering Walkthroughs7
  • Practical Foundations for AI Workflows4
  • Engineering Data5
  • Retrieval-Augmented Generation6
  • Agents and Tool Use18
  • Agent Design8
  • MCP and Skills6
  • Multi-Agent Design6
  • Practical Capstone6
  • Tokens, Cost and Latency12
  • Agentic Workflows for Chip Teams18
  • Interview and Judgment10
  • AI Skills: Full Course Index
  • Working with AI Glossary
  • Working with AI Cheatsheet
Loading lesson

‹Getting Started with AI for VLSI Engineers
  1. Topics
  2. AI Skills for VLSI Engineers
  3. Getting Started with AI for VLSI Engineers
  4. Your First RTL Explanation

Getting Started · Beginner

Your First RTL Explanation

Explain a complete synthetic four-bit counter and reject a frequency claim unsupported by its source.

On this page

    Problem and complete synthetic input

    Your first task is to explain a small block to a colleague who can read basic RTL but has never used an AI assistant. The entire design is below. It has no hidden helper modules or parameters. Read it once yourself before requesting an explanation; this gives you a reference against which to assess the response. The module and all responses in this lesson are synthetic teaching material. No model call, compile, or simulation is reported.

    first_counter.sv
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    module first_counter (
      input  logic       clk,
      input  logic       rst_n,
      input  logic       en,
      output logic [3:0] count
    );
      always_ff @(posedge clk) begin
        if (!rst_n)
          count <= 4'd0;
        else if (en)
          count <= count + 4'd1;
      end
    endmodule

    Port

    Direction and width

    Meaning in this example

    clk

    Input, one bit

    State updates on its rising edge.

    rst_n

    Input, one bit

    Active-low synchronous reset, sampled on that edge.

    en

    Input, one bit

    Enable increment when reset is inactive.

    count

    Output, four bits

    Stored unsigned count, values zero through fifteen.

    Request and assess an explanation

    plaintext
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Synthetic prompt:
    Explain first_counter to a beginner in at most 180 words. Cover every port,
    reset timing and priority, enable, hold, and overflow. Use only the source.
    Separate supported behavior from unknown implementation properties.
    Do not edit code or claim any tool execution.
    
    Synthetic response with one deliberately unsupported claim:
    The block stores a four-bit count. At each rising clock edge, low rst_n
    resets count to zero, taking priority over en. Otherwise en increments it;
    with en low, it holds. Fifteen increments to zero. It operates at 1 GHz.

    Most of that response follows the source. The sensitivity list contains only the rising edge of clk, so this is a synchronous reset. The name rst_n tells you polarity by convention, but the event control and branch together determine the behavior. Asserting reset between clock edges does not update count immediately in this RTL. When reset and enable are both active at the sampled edge, the first branch assigns zero and the increment branch is skipped.

    With reset inactive and enable low, there is no assignment in this clocked process, so the stored count holds. This describes a register retaining state, not a combinational latch. The four-bit destination retains the four-bit increment result: fifteen plus one wraps to zero. Before a reset or another defined initialization, the source does not promise a known initial count. For this beginner trace, assume known zero-or-one inputs and initialize by sampling reset low.

    Worked hand-derived trace

    Rising edge

    rst_n

    en

    Count after the scheduled update

    1

    0

    1

    0: reset wins

    2

    1

    1

    1: increment

    3

    1

    0

    1: hold

    4

    0

    0

    0: reset again

    This table is a hand-derived expectation, not a simulator log. Nonblocking assignments schedule the new value; the column describes the value after that update, rather than a testbench read racing at the clock event. The 1 GHz claim has no corresponding source evidence. A frequency judgment needs an implementation, libraries and operating conditions, clock constraints, and timing analysis. Four bits of RTL alone cannot supply those facts.

    Exercise, expected answer, and limits

    Check yourself Starting from a known count of fifteen, rst_n=1 and en=1 at the next rising edge: what is the next count? If rst_n then falls between edges, does count immediately change? Remove the unsupported sentence from the synthetic response.

    The increment wraps to zero. A falling rst_n between edges does not immediately update this synchronous process; reset is sampled at the next rising edge. Replace the frequency sentence with 'Maximum operating frequency is unknown from the supplied RTL.'

    Keep the interface and corrected explanation together in your exit artifact. Functional reasoning here does not assess reset distribution, metastability, or timing closure. For language semantics, use Accellera's IEEE standards access page, IEEE 1800-2023 SystemVerilog; consult the 2023 standard's event-control, nonblocking-assignment, and expression-sizing rules rather than relying on the assistant's paraphrase.

    Related topics

    • Next: improve and check

    • Up: getting started

    Previous

    3 / 173

    Next: Improve the Answer and Check It Independently

    Up next

    Up nextImprove the Answer and Check It Independently

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Useful AI Tasks: Start Small and Checkable
    • Choose a Tool for the Task