Agent skill

Logic Synthesis

by hdl-tools in hdl-tools/digital-chip-design-agents

Logic synthesis from RTL to gate-level netlist — SDC constraint validation, compile and optimisation strategy, netlist quality check, and LEC equivalence verification.

MITAuto-check: notes

Install Logic Synthesis

skills CLI
$ npx skills add hdl-tools/digital-chip-design-agents --skill logic-synthesis -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install hdl-tools/digital-chip-design-agents logic-synthesis --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/hdl-tools/digital-chip-design-agents.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/synthesis/skills/logic-synthesis .claude/skills/logic-synthesis && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
logic-synthesis
GitHub stars
213
Token cost
~2.7k tokens
SKILL.md length
1,221 words
Files
1
Skills in repo
17
Repo updated
First seen
Licence
MIT

At a glance

Logic synthesis from RTL to gate-level netlist — SDC constraint validation, compile and optimisation strategy, netlist quality check, and LEC equivalence verification.

  • Works in 2 steps: memory/synthesis/knowledge.md — known… → memory/synthesis/run_state.md — current…
  • Synthesising RTL for ASIC
  • SKILL.md covers Invocation, Pre-run Context, Purpose and Supported EDA Tools, plus 6 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Logic Synthesis is an agent skill from hdl-tools/digital-chip-design-agents. Logic synthesis from RTL to gate-level netlist — SDC constraint validation, compile and optimisation strategy, netlist quality check, and LEC equivalence verification. Use when synthesising RTL for ASIC, setting up timing constraints, optimising for timing/area/power, or verifying a post-synthesis netlist.

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Digital HDL Design Full-stack Agents. The licence is MIT.

When your agent uses it

  • Synthesising RTL for ASIC
  • Setting up timing constraints
  • Optimising for timing/area/power
  • Verifying a post-synthesis netlist

Example prompts

  • “/logic-synthesis”

Requirements

  • Pre-approved tools (allowed-tools): Read, Write, Bash

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. memory/synthesis/knowledge.md — known failure patterns, successful tool flags, PDK/tool quirks.
  2. memory/synthesis/run_state.md — current run identity (run_id, design_name, tool,

What it can do on your machine

Read from SKILL.md and the folder at commit 38736b1. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Bash

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Logic Synthesis loads about 2.7k tokens when it runs. Until then it costs about 81 tokens; SKILL.md has 1,221 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~81
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Write, Bash

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from hdl-tools/digital-chip-design-agents at commit 38736b1, republished under its MIT licence (© hdl-tools). 1,221 words, ~2,695 tokens.

Download SKILL.mdSave it as .claude/skills/logic-synthesis/SKILL.md (or your agent's skills folder).
name
logic-synthesis
description
Logic synthesis from RTL to gate-level netlist — SDC constraint validation, compile and optimisation strategy, netlist quality check, and LEC equivalence verification. Use when synthesising RTL for ASIC, setting up timing constraints, optimising for timing/area/power, or verifying a post-synthesis netlist.
allowed-tools
Read, Write, Bash
version
1.0.0
author
chuanseng-ng
license
MIT

Skill: Logic Synthesis

Invocation

  • If invoked by a user presenting a synthesis task: immediately spawn the digital-chip-design-agents:synthesis-orchestrator agent and pass the full user request and any available context. Do not execute stages directly.
  • If invoked by the synthesis-orchestrator mid-flow: do not spawn a new agent. Treat this file as read-only — return the requested stage rules, sign-off criteria, or loop-back guidance to the calling orchestrator.

Spawning the orchestrator from within an active orchestrator run causes recursive delegation and must never happen.

Pre-run Context

Before executing or advising on any stage, read the following files if they exist:

  1. memory/synthesis/knowledge.md — known failure patterns, successful tool flags, PDK/tool quirks. Incorporate its guidance into every stage decision. If absent, proceed without it.
  2. memory/synthesis/run_state.md — current run identity (run_id, design_name, tool, last_stage). Use this to resume correctly after interruption. If absent, a new run is starting; the orchestrator will create this file before the first stage.

This pre-run read applies whether this skill is loaded by a user or called by the orchestrator mid-flow. It ensures the fix database is consulted before any diagnosis step.

Purpose

Produce a timing-clean, area-efficient, LEC-verified gate-level netlist from RTL. Covers constraint setup, synthesis compilation strategy, and quality checks before PD handoff.


Supported EDA Tools

Open-Source
  • Yosys (yosys) — open-source synthesis suite; runs as a sequential pass pipeline (see sequential flow note below)
  • Surelog (surelog) — SystemVerilog front-end for Yosys
  • ABC — logic optimisation and technology mapping (invoked automatically by Yosys)
Proprietary
  • Synopsys Design Compiler (dc_shell, dialect synopsys) — industry-standard logic synthesis
  • Cadence Genus (genus, dialect cadence) — RTL-to-netlist with concurrent optimisation
  • Synopsys Fusion Compiler (fc_shell, dialect synopsys) — combined synthesis and physical guidance
Sequential Flow Log Review (Yosys)

Yosys runs its synthesis script (yosys -c synth.ys or yosys -p "synth_*") as a sequential pass pipeline. Each pass (read_verilog → synth → opt → techmap → abc → write_verilog) executes in order; errors or warnings in early passes propagate forward.

After a Yosys run the agent must:

  1. Read the Yosys log (stdout or redirected yosys.log) for:
    • Warning: / Error: lines per pass
    • Final statistics block: number of cells, wires, and logic depth
    • Unmapped cells (search for $-prefixed cell names in the output netlist)
  2. Verify that the output netlist (synth_netlist.v) exists and is non-empty
  3. Parse report_area / report_timing output if ABC timing mode (abc -constr) was used

When used inside OpenROAD Flow Scripts (ORFS) or LibreLane, the Yosys log appears at: logs/<platform>/<design>/1_1_yosys.log


Stage: constraint_setup

Domain Rules
  1. create_clock: all primary clocks with period, waveform, source pin, name
  2. create_generated_clock: all derived/divided clocks with correct source
  3. set_clock_uncertainty: setup = skew + jitter — use design_state.constraints.timing.clk_uncertainty_ps if set; otherwise 200–500 ps pre-CTS (default: see constraints.timing.clk_uncertainty_ps, schema default null → use 200–500 ps rule-of-thumb)
  4. set_input_delay / set_output_delay: all primary IOs constrained
  5. set_false_path: multi-clock crossings, test modes, async resets
  6. set_multicycle_path: both setup (-setup N) and hold (-hold 1) must be set
  7. set_dont_touch: IPs, memory macros, hand-crafted cells
  8. set_max_fanout: from design_state.constraints.timing.fanout_max (default: 32)
  9. set_max_transition: per technology DRC rule
  10. Operating conditions: explicitly set (never rely on tool defaults)
Common SDC Mistakes
MistakeConsequence
Missing generated clockPath unconstrained — may miss timing
MCP without hold correctionHold violations introduced
False path too broadReal timing issues masked
No operating conditions setWrong library corner used
QoR Metrics to Evaluate
  • All clocks defined (verify with report_clocks)
  • All IOs constrained (verify with report_port -verbose)
  • No unconstrained paths (report_timing -unconstrained)
Output Required
  • Validated SDC file
  • Clock summary
  • Constraint QA report

Stage: compile_explore

Domain Rules
  1. Run at worst-case timing corner (SS, low voltage, high temperature)
  2. Compile explore: faster run to find best logic structure
  3. Try multiple architectures: retiming on/off, datapath options
  4. Identify critical paths for human review before final compile
  5. Check area estimate vs microarch estimate
Optimisation Strategy by Priority
PriorityApproach
Timingcompile_ultra, path_group weighting, retiming
AreaHigh area_effort, resource sharing
PowerClock gating insertion, power-aware compile
Balancedcompile_ultra -no_autoungroup + incremental
Output Required
  • Exploration report (timing, area, power summary)
  • Critical path list for architect review
  • Recommended compile strategy for final compile

Stage: compile_final

Domain Rules
  1. Run multi-scenario if available (setup + hold simultaneously)
  2. Enable clock gating synthesis for sequential power reduction
  3. Preserve hierarchy for blocks with existing placement intent
  4. Ungroup small modules for better cross-boundary optimisation
  5. Review critical paths manually — restructure RTL if path cannot close
  6. Run incremental compile after initial compile to address remaining violations
Show full SKILL.md (503 more words)Show less
QoR Metrics to Evaluate
  • WNS: ≥ design_state.constraints.timing.wns_ns_target at worst-case corner for sign-off (default: 0)
  • TNS: = design_state.constraints.timing.tns_ns_target for clean sign-off (default: 0)
  • Area: within design_state.constraints.area.area_um2 budget
  • Power: within design_state.constraints.power.power_mw budget
  • No unmapped cells
Output Required
  • Gate-level netlist (.v)
  • Timing report (setup and hold, all path groups)
  • Area report
  • Power report
  • Synthesis run log

Stage: netlist_qc

Checks Required
  1. No black boxes (undefined modules) in netlist. A black box is an input-set defect, not a compile result: if it resolves to first-party RTL, that file is missing from the synthesis source list (sv2v and yosys black-box it without an error); otherwise a library, macro or IP view is missing. Either way re-running the compile cannot fix it — name the module, the file or view, and the list, and escalate as input_setup
  2. No combinational loops (report_loop)
  3. Scan chains intact (if DFT-enabled compile)
  4. Power/ground connections correct (tie cells, well ties)
  5. Formal equivalence check (RTL vs netlist): PASS required
LEC Requirements
  • Golden: RTL (post-lint, post-CDC-clean)
  • Revised: gate-level netlist
  • Result: all points EQUIVALENT
  • Any UNMATCHED point: must be resolved before PD
QoR Metrics to Evaluate
  • LEC: 100% EQUIVALENT
  • No black boxes
  • No combinational loops
  • Scan chain integrity: verified
Output Required
  • LEC report (pass/fail)
  • Netlist QC checklist
  • Final gate netlist (ready for PD)
  • Back-annotated SDC for PD

Stage: synthesis_signoff

Sign-off Checklist
  • WNS ≥ design_state.constraints.timing.wns_ns_target at all required corners (default: 0)
  • TNS = design_state.constraints.timing.tns_ns_target (default: 0)
  • Area within design_state.constraints.area.area_um2 budget
  • Power within design_state.constraints.power.power_mw budget
  • LEC: EQUIVALENT
  • No black boxes
  • No combinational loops
  • Scan chains verified (if DFT)
Output Required
  • PD handoff package: netlist, SDC, timing reports, area/power reports

Constraint Validation

See plugins/meta/skills/pipeline-orchestration/SKILL.md §Constraints Schema for the authoritative schema and stage-entry validation rule.

Required at entry (constraint_setup) — hard-fail if missing:

  • constraints.clock.clk_mhz — target clock frequency (drives SDC create_clock)
  • constraints.area.area_um2 — area budget
  • constraints.power.power_mw — power budget

Optional (schema defaults apply when absent):

  • constraints.timing.wns_ns_target (default: 0) — WNS sign-off threshold
  • constraints.timing.tns_ns_target (default: 0) — TNS sign-off threshold
  • constraints.timing.fanout_max (default: 32) — set_max_fanout value
  • constraints.timing.clk_uncertainty_ps (default: null → use 200–500 ps rule-of-thumb)

Memory

Write on stage completion

After each stage completes (regardless of whether an orchestrator session is active), upsert one JSON record in memory/synthesis/experiences.jsonl keyed by run_id. Implement the upsert by rewriting the file: read all existing lines, filter out any record(s) with the same run_id, append the updated record, write the full content back atomically (replace the file). Every record must include a top-level "run_id" field with format synthesis_<YYYYMMDD>_<HHMMSS> (set once at flow start; reuse on each stage update). Set signoff_achieved: false until the final sign-off stage completes.

Run state (write before first stage, update after each stage)

Write memory/synthesis/run_state.md as the first action before launching any tool:

markdown
run_id:      synthesis_<YYYYMMDD>_<HHMMSS>
design_name: <design>
tool:        <primary tool>
start_time:  <ISO-8601>
last_stage:  <first stage name>

Update last_stage after each stage completes. This file lets wakeup-loop prompts and resumed sessions identify the correct run without relying on in-memory state. Create the file and parent directories if they do not exist.

Optional: claude-mem index

If mcp__plugin_ecc_memory__add_observations is available in this session, emit each applied fix as an observation to entity chip-design-synthesis-fixes after writing to experiences.jsonl. Skip silently if the tool is absent — JSONL is the canonical record.

© hdl-tools, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in plugins/synthesis/skills/logic-synthesis of hdl-tools/digital-chip-design-agents.

Open the folder on GitHubat commit 38736b1

Compare with similar skills

Logic Synthesis next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Logic Synthesis compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Logic Synthesis this skillhdl-tools/digital-chip-design-agents213—~2.7kAutomated safety check: NotesMIT
Gate Testsvercel/next.js143k—~2.7kAutomated safety check: PassMIT
Logical Propertiesthedaviddias/Front-End-Checklist74k—~526Automated safety check: PassMIT
Gateplugin87/ux-ui-agent-skills1.6k—~532Automated safety check: PassMIT
Brain Ingest Gategarrytan/gbrain31k—~3.9kAutomated safety check: PassMIT
Writing Kea LogicsPostHog/posthog40k—~2.3kAutomated safety check: PassCustom licence

Similar skills

  • Gate Tests

    vercel/next.js

    Official

    How to use the @gate / @force-gate test directives instead of it.skip or fake-green skip patterns.

    143k GitHub stars~2.7k tokensUpdated today
    Auto-check passed
  • Logical Properties

    thedaviddias/Front-End-Checklist

    A skill your agent uses when reviewing stylesheets, component styles, and responsive behavior related to Use CSS logical properties for i18n and RTL support.

    74k GitHub stars~526 tokensUpdated 2 days ago
    Frontend & DesignAuto-check passed
  • Gate

    plugin87/ux-ui-agent-skills

    Run the one-command quality gate and report the real N/N result.

    1.6k GitHub stars~532 tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Brain Ingest Gate

    garrytan/gbrain

    Pre-write quality gate for content entering the brain. An agent skill from garrytan/gbrain.

    31k GitHub stars~3.9k tokensUpdated today
    Testing & QAAuto-check passed
  • Writing Kea Logics

    PostHog/posthog

    Official

    Guide for writing or reviewing PostHog kea logic files (Logic.ts / Logic.tsx).

    40k GitHub stars~2.3k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Delivery Gate

    affaan-m/ECC

    Stop hook that blocks Claude from finishing until quality checks pass.

    276k GitHub stars~1.3k tokensUpdated 4 days ago
    Auto-check passed

More from hdl-tools/digital-chip-design-agents

All 17 skills in this repo
  • Architecture

    hdl-tools/digital-chip-design-agents

    Microarchitecture exploration, PPA estimation, risk assessment, and architecture sign-off for digital chip design.

    213 GitHub stars~3.7k tokensUpdated 5 days ago
    Auto-check: notes
  • Compiler Toolchain

    hdl-tools/digital-chip-design-agents

    Compiler toolchain development for custom processor ISAs — LLVM/GCC backend, assembler, linker scripts, runtime libraries, and regression validation.

    213 GitHub stars~2.8k tokensUpdated 5 days ago
    Auto-check: notes
  • Dft

    hdl-tools/digital-chip-design-agents

    Design for Test — scan architecture planning, scan insertion, ATPG pattern generation, MBIST for embedded memories, and JTAG boundary scan.

    213 GitHub stars~3.3k tokensUpdated 5 days ago
    Auto-check: notes
  • Embedded Firmware

    hdl-tools/digital-chip-design-agents

    Embedded firmware and device drivers — BSP development, peripheral driver implementation (UART, SPI, I2C, GPIO, DMA, Timer), RTOS integration (FreeRTOS, Zephyr), and system validation.

    213 GitHub stars~2.6k tokensUpdated 5 days ago
    Auto-check: notes
  • Formal Verification

    hdl-tools/digital-chip-design-agents

    Formal property verification (FPV) and logical equivalence checking (LEC).

    213 GitHub stars~3.4k tokensUpdated 5 days ago
    Auto-check: notes
  • Fpga Emulation

    hdl-tools/digital-chip-design-agents

    FPGA prototyping — ASIC-to-FPGA RTL adaptation, multi-FPGA partitioning, synthesis and timing closure on FPGA, hardware bring-up, and software validation on the prototype.

    213 GitHub stars~3.4k tokensUpdated 5 days ago
    Auto-check: notes

Questions about Logic Synthesis

What does Logic Synthesis do?

Logic synthesis from RTL to gate-level netlist — SDC constraint validation, compile and optimisation strategy, netlist quality check, and LEC equivalence verification. Logic Synthesis is an agent skill from hdl-tools/digital-chip-design-agents. Logic synthesis from RTL to gate-level netlist — SDC constraint validation, compile and optimisation strategy, netlist quality check, and LEC equivalence verification.

When should I use Logic Synthesis?

Logic Synthesis fits situations like: synthesising RTL for ASIC; setting up timing constraints; optimising for timing/area/power; verifying a post-synthesis netlist.

How do I install Logic Synthesis in Claude Code?

Run `npx skills add hdl-tools/digital-chip-design-agents --skill logic-synthesis -a claude-code`. Or copy the skill folder (plugins/synthesis/skills/logic-synthesis in hdl-tools/digital-chip-design-agents) into .claude/skills/logic-synthesis in your project. Claude Code loads it when a task matches its description.

How do I install Logic Synthesis in Codex?

Run `npx skills add hdl-tools/digital-chip-design-agents --skill logic-synthesis -a codex`. Or copy the skill folder (plugins/synthesis/skills/logic-synthesis in hdl-tools/digital-chip-design-agents) into .agents/skills/logic-synthesis in your project. Codex loads it when a task matches its description.

Can I use Logic Synthesis in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hdl-tools/digital-chip-design-agents --skill logic-synthesis -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/logic-synthesis, .gemini/skills/logic-synthesis, .github/skills/logic-synthesis and .opencode/skills/logic-synthesis in your project.

What does Logic Synthesis need to run?

SKILL.md names no scripts, command-line tools or credentials: Logic Synthesis is instructions for the agent only. Its frontmatter pre-approves these tools: Read, Write, Bash.

Does Logic Synthesis access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Logic Synthesis safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Logic Synthesis use?

Logic Synthesis is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Logic Synthesis use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Logic Synthesis?

Skills that share tags, products or a category with Logic Synthesis: Gate Tests (vercel/next.js, 143k stars), Logical Properties (thedaviddias/Front-End-Checklist, 74k stars), Gate (plugin87/ux-ui-agent-skills, 1.6k stars) and Brain Ingest Gate (garrytan/gbrain, 31k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Logic Synthesis?

hdl-tools (a GitHub organization) maintains it in hdl-tools/digital-chip-design-agents, which has 213 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on October 3, 2026.

Source: hdl-tools/digital-chip-design-agents on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.