Skip to content

Submission - CABAgent: A Comprehensive Layout-Aware Analog Benchmark Generation Framework Driven by Self-Evolving LLM Agents for Analog Circuit Design Automation#183

Open
HUJH511 wants to merge 25 commits into
sscs-ose:mainfrom
HUJH511:main
Open

Submission - CABAgent: A Comprehensive Layout-Aware Analog Benchmark Generation Framework Driven by Self-Evolving LLM Agents for Analog Circuit Design Automation#183
HUJH511 wants to merge 25 commits into
sscs-ose:mainfrom
HUJH511:main

Conversation

@HUJH511

@HUJH511 HUJH511 commented Apr 15, 2026

Copy link
Copy Markdown
Contributor

Dear All,

This submission includes our work on CABAgent, a training-free self-evolving LLM-agent framework for analog IC design automation and benchmark generation. CABAgent translates natural-language circuit descriptions into PDK-compatible SPICE netlists, and further expands validated designs into physically verified, layout-aware benchmark packages through pre-layout simulation, automatic layout generation, DRC/LVS verification, parasitic extraction, and post-layout evaluation. As with our previous submissions, we have organized the materials clearly to improve readability and reproducibility, and we include the required folders together with documentation to support review and rerunning of the workflow.

This work reflects our effort to explore how agentic AI can support physically grounded analog design automation. We would greatly appreciate any feedback, comments, or questions that can help us further improve the framework and its presentation. Working on this project has been both exciting and rewarding, and we are thankful for the opportunity to participate in this challenge.

Thank you.

Best regards,
Jinhai Hu and the Team behind CABAgent

HUJH511 and others added 25 commits March 11, 2026 18:32
Add the AnalogAgent agentic circuit design system to src/analogagent/:

- main_run.py: entry point with SKY130 testbench builder, enhanced
  netlist checker (9 static checks), and ngspice simulation runner
- agents.py: CodeGenerator + DesignOptimizer (OpenAI-compatible API)
- curator.py: ExperienceCurator with Self-Evolving Memory (SEM)
- playbook.py: Playbook management for cross-task knowledge transfer
- prompt_template.md: unified SKY130 prompt with generic guidelines
- retrieval_prompt.md: RAG-style topology selector
- sky130_stub.lib: Level-1 MOSFET stub for ngspice DC validation
- execution_error.md / simulation_error.md: error feedback templates
- problem_set.tsv: task definitions (5T OTA + Telescopic OTA)

Tested: both OTA tasks pass with Gemini 2.5 Flash, generating correct
SKY130 subcircuit netlists with proper bias references via SEM learning.
- Add src/analogagent/__init__.py: clean generate_netlist() API
  that encapsulates LLM generation, static checking, ngspice
  validation, SEM learning, and iterative retry loop
- Add src/analogagent/postprocess.py: device renaming (XM1-XMn)
  and netlist/param file splitting for CABGen compatibility
- Update CABAgent.ipynb: insert AnalogAgent generation cells
  (Step 1) before CABGen pipeline (Step 2), showing runtime output

Flow: natural language → AnalogAgent → ckt_netlist.spice → CABGen pipeline
- main_run.py: move argparse into _parse_args(), only called in CLI mode
- main_run.py, agents.py, curator.py: use try/except for relative imports
  so modules work both as standalone scripts and as package imports
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants