Step 2 of 9 — Claude for VLSI Series

Setup & Initial Settings

Get Claude configured the right way for chip design work — from account creation to system prompts that turn Claude into your personal VLSI assistant.

claude.ai Projects System Prompts File Upload API Access Pro vs Free
CREATE claude.ai account Free or Pro CREATE a Project for VLSI work ADD System Prompt role + standards UPLOAD Design Files .v .sv .sdc .tcl START Asking Claude Design-aware AI 5-minute setup → Claude becomes design-context-aware

01 Free vs Pro vs API — Which Plan?

Claude has three access modes. For VLSI engineers, the right choice depends on whether you're learning, doing daily work, or building automated tooling.

FREE TIER
$0/mo
  • Claude Sonnet access
  • ~20–30 messages/day
  • Projects (limited)
  • File upload (limited)
  • Great for exploration
API ACCESS
Pay/token
  • Programmatic access
  • Automate RTL reviews
  • CI/CD integration
  • Custom tools/scripts
  • ~$3–15 per 1M tokens
Pro Tip for VLSI Engineers

Start with Claude Pro ($20/mo). The Projects feature alone is worth it — you can upload your entire RTL source tree once and have every conversation be context-aware. A single "review my FSM" session can replace hours of manual code inspection.

02 Account Creation — Step by Step

1

Go to claude.ai

Open your browser and navigate to claude.ai. Click "Sign Up" to create a new account using your email address or Google/GitHub login.

2

Verify your email

Anthropic sends a verification email. Click the link to activate your account. This takes under 1 minute.

3

Upgrade to Pro (optional but recommended)

Click on your avatar → "Upgrade to Pro." The $20/mo plan unlocks Projects, higher rate limits, and Opus access — all critical for serious VLSI work.

4

Create your first Project

In the left sidebar, click "Projects" → "+ New Project." Name it something like "My VLSI Work" or "SoC RTL Design." This will be your persistent workspace.

5

Set up your System Prompt

Inside the Project, click "Edit project" → fill in the "Project instructions" box. This is your system prompt — it tells Claude your role, standards, and expectations. (See Section 4 below for exact templates.)

6

Upload your design files

Click the paperclip icon in any chat inside your project to attach files. Upload your .v, .sv, .sdc, .tcl, or timing reports. Claude will reference these in every conversation within the project.

03 The Projects Feature — Your Design Context Engine

Projects are the single most powerful feature of Claude for engineering work. They solve the biggest problem with AI assistants: having to re-explain your project every session.

📁

Persistent File Context

Upload your RTL files once. Claude references them in every conversation — no copy-pasting code each session.

💬

Shared Conversation History

All chats inside a project share context. Decisions made in one conversation are visible in the next.

⚙️

Permanent System Prompt

Your role, coding standards, and tool preferences are always in effect — Claude never forgets your context.

🗂️

Multiple Projects

Create separate projects for RTL, DV, STA, PD work — each with its own files and system prompt tuned for that domain.

Recommended Project Structure for VLSI Teams

Project NameUpload FilesSystem Prompt Focus
RTL Design.v, .sv, block-level specs (PDF)RTL coding standards, synthesis targets
Verificationtestbench .sv, coverage reports, SVA specsUVM methodology, assertion library style
Timing Analysis.sdc, timing reports, .rpt filesCorner definitions, OCV settings, tool version
Physical DesignTcl scripts, DRC/LVS reports, floorplan notesTechnology node, target PPA, Innovus/ICC2 version

04 System Prompts — Tell Claude Who You Are

The system prompt is injected before every conversation. It's your chance to give Claude a permanent identity and context for your work. A good system prompt reduces prompt length by 50% and dramatically improves answer quality.

Template: RTL Design Engineer

system-prompt
You are an expert RTL design engineer assistant specializing in digital chip design.

# My Role
I am an RTL Design Engineer working on a RISC-V SoC targeted at TSMC 7nm.
Tool flow: Synopsys DC for synthesis, VCS for simulation, Spyglass for lint.

# Coding Standards
- Always use non-blocking assignments (<=) in clocked always blocks
- Use 2-space indentation
- Prefix: flop outputs with _q, combinational signals with no prefix
- Always include full_case/parallel_case where appropriate
- Modules: snake_case naming
- Ports: always list in order: clk, rst_n, inputs, outputs

# Output Format
- When writing Verilog/SystemVerilog, always include module header comments
- Highlight any potential synthesis issues or lint warnings inline
- For timing paths, always show: startpoint → endpoint → slack

# What I Need
Synthesizable RTL only unless I explicitly ask for simulation-only constructs.
Flag any constructs that may cause issues with DC synthesis.

Template: DV / Verification Engineer

system-prompt
You are an expert verification engineer specializing in SystemVerilog and UVM.

# My Role
I work on functional verification for a PCIe 5.0 controller ASIC.
Tools: VCS + Verdi, Cadence IMC for coverage, SpyGlass for CDC/lint.

# Methodology
- UVM 1.2 for all testbenches
- SVA for protocol checking and coverage
- Constrained random + directed tests
- Target: 100% toggle, statement, branch coverage

# Code Style
- Always use `uvm_do_with for randomization with constraints
- macros: `uvm_info, `uvm_error, `uvm_fatal (no $display)
- Use clocking blocks and virtual interfaces in all drivers/monitors

# Output Preferences
When writing testbench code, include the UVM phase (build/connect/run) in comments.
Point out any coverage holes or assertion gaps in my code.

Template: STA / Timing Engineer

system-prompt
You are an expert STA and timing closure engineer.

# My Role
I work on timing sign-off for a 5GHz mobile SoC, TSMC N5 process.
Tools: Synopsys PrimeTime 2024.03, StarRC for parasitic extraction.

# Context
- Multiple clock domains: core_clk (1GHz), fast_clk (2GHz), slow_clk (100MHz)
- OCV derating: setup 5%, hold 5% for local; CPPR enabled
- Target corners: SS/0.72V/125C (setup), FF/1.08V/-40C (hold)

# What I Need
When I paste timing reports, help me:
1. Identify the worst violating path type (reg-to-reg, input-to-reg, reg-to-output)
2. Suggest RTL/SDC/physical fixes in priority order
3. Calculate required Fmax from the slack value I provide
Important — No Confidential IP

Never upload actual proprietary RTL, unreleased product specs, or customer NDAs to claude.ai. Use sanitized/anonymized snippets or generic representative code. If your company has an enterprise LLM policy, follow it. For full privacy, run Claude API on-premises or use Anthropic's enterprise data privacy agreements.

05 File Uploads — What to Share and How

Claude can read and reason about files you attach to a conversation or Project. This turns Claude from a generic chatbot into a design-specific expert that knows your actual code.

File TypeWhat to UploadWhat Claude Can Do
.v / .svRTL modules, interfaces, packagesReview, lint, optimize, debug, explain logic
.sdcTiming constraints fileValidate constraint coverage, find missing paths, explain commands
.tclSynthesis/PD scriptsDebug, optimize, add error handling, explain commands
.rpt / .txtTiming reports, lint reports, coverage reportsParse violations, prioritize fixes, explain root cause
.pdfProtocol specs, datasheets (ARM AMBA, PCIe, etc.)Extract relevant sections, map spec to RTL requirements
.csvCoverage data, timing tablesAnalyze trends, find gaps, generate summaries
.pyCocotb tests, helper scriptsDebug, add assertions, improve coverage

Best Practice: What NOT to Upload

Avoid Uploading

• Full production RTL of unreleased products
• Files with hardcoded passwords or API keys
• Customer NDAs or confidential specs
• Files with PII or security credentials

Safe to Upload

• Sanitized/anonymized RTL snippets
• Open-source IP (AXI, RISC-V cores)
• Generic timing reports with product names removed
• Public protocol specs (IEEE, ARM AMBA)

06 claude.ai vs API — When to Use Which

Featureclaude.ai (Web)Anthropic API
Interactive Q&ABestPossible
Code review in browserYesNo UI
Batch processing RTL filesManualAutomate
CI/CD integrationNot possibleYes
Projects / system promptsBuilt-inDIY via API
Cost controlFlat feePay per use
Custom workflow automationNoFull control
Data privacy controlAnthropic policyEnterprise options

07 API Quick Start for Automation

If you want to automate things — auto-review every RTL commit, batch-analyze timing reports, or build a Slack bot that answers design questions — the API is the way to go.

Install the SDK

bash
pip install anthropic

Simple RTL Review Script

python
import anthropic

client = anthropic.Anthropic(api_key="your-api-key-here")

with open("my_module.v", "r") as f:
    rtl_code = f.read()

message = client.messages.create(
    model="claude-opus-4-7",
    max_tokens=2048,
    system="""You are an expert RTL design engineer.
Review Verilog/SystemVerilog code and report:
1. Latch inference risks
2. Non-blocking assignment violations
3. Reset completeness
4. Clock domain crossing issues
Format as a numbered list with file:line references.""",
    messages=[
        {
            "role": "user",
            "content": f"Review this RTL module:\n\n```verilog\n{rtl_code}\n```"
        }
    ]
)

print(message.content[0].text)

Batch Timing Report Analyzer

python
import anthropic, glob, os

client = anthropic.Anthropic(api_key="your-api-key-here")

SYSTEM = """You are a senior STA engineer.
When given a PrimeTime timing report, extract:
- Top 5 worst setup violating paths
- Root cause (long combinational path / high fanout / incorrect SDC)
- Recommended fix (RTL change / SDC fix / buffer insertion)
Return as JSON array."""

reports = glob.glob("timing_reports/*.rpt")

for rpt_path in reports:
    with open(rpt_path) as f:
        content = f.read()[:8000]  # Trim to context budget

    response = client.messages.create(
        model="claude-opus-4-7",
        max_tokens=1024,
        system=SYSTEM,
        messages=[{"role":"user","content":f"Report: {os.path.basename(rpt_path)}\n\n{content}"}]
    )
    print(f"\n=== {rpt_path} ===")
    print(response.content[0].text)

08 Extended Thinking — For Hard Problems

Claude has an "Extended Thinking" mode (available in Pro and via API) that lets the model reason step-by-step before answering. This is exceptionally useful for complex VLSI problems.

When to Enable Thinking

• Debugging a multi-cycle timing path you can't resolve
• Designing a complex FSM with many edge cases
• Analyzing CDC violations with multiple async clocks
• Reviewing a 1000-line RTL module for correctness

How to Enable (claude.ai)

Click the brain/sparkle icon next to the message input box before sending. Claude will show its reasoning steps before giving the final answer. Available on Pro plan with Opus model.

How to Enable (API)

Set thinking={"type":"enabled","budget_tokens":10000} in your API call. Budget tokens control how much reasoning Claude does before answering.

VLSI Use Case — Extended Thinking

When you have a seemingly non-functional RTL module and can't find the bug, use Extended Thinking: "Here's my module, it's failing simulation on this input vector. Think step-by-step through the logic flow and find the bug." Claude will trace through the logic like a methodical debugger.

09 Your VLSI Claude Setup Checklist

Account created at claude.ai

Sign up with email or Google/GitHub. Verify your email address.

2

Upgraded to Pro (or API key obtained)

Pro unlocks Projects, higher limits, Opus, and Extended Thinking. API key available at console.anthropic.com.

3

Created a VLSI Project

Left sidebar → Projects → New Project. Create one per domain (RTL, DV, STA, PD) for best results.

4

Written your system prompt

Project → Edit → Project Instructions. Use one of the templates from Section 4 as a starting point, tailored to your exact role and tech stack.

5

Uploaded reference files

Added relevant .v/.sv/.sdc/.tcl files to the project so Claude has context. Sanitized to remove any proprietary IP.

6

Tested with a sample query

Run a test prompt: "Review the uploaded RTL module for any latch inference or reset issues." Verify Claude references your files and coding standards.

FAQ Common Setup Questions

Is Claude free to use? +

Claude offers a free tier at claude.ai with limited message quota. Claude Pro ($20/month) gives priority access and higher limits. For API access (building tools, scripts, automations) you pay per token. For most VLSI engineers, the free tier or Pro is sufficient.

What is a Claude Project and why should I use it? +

Projects are persistent workspaces where you can upload your design files (RTL, SDC, constraints) and set a system prompt that persists across all conversations. Claude "knows" your project context without you re-explaining it every session. Ideal for ongoing chip design work.

What files can I upload to Claude? +

Claude accepts .v, .sv, .sdc, .tcl, .txt, .csv, .pdf, .py, .json, and most text files. You can upload RTL files, timing reports, lint reports, and even PDF datasheets. Max file size is typically 30MB per file.

Should I use claude.ai or the API for VLSI work? +

Use claude.ai for interactive design reviews, Q&A, and learning. Use the API when you want to automate tasks — like a script that reads all timing violations and asks Claude to suggest fixes, or a CI pipeline that auto-reviews RTL diffs.

How do I write a good system prompt for VLSI? +

Specify your role (RTL/DV/STA/PD), target technology (TSMC 5nm, GF 12nm), tool ecosystem (Synopsys/Cadence/Mentor), coding standards (always use non-blocking assignments, 2-space indent), and output format preferences. The more specific, the more Claude tailors responses to your exact workflow.