Intelligent analog circuit design automation using Graph Neural Networks, Bayesian Optimization, and Multi-Agent Architecture
Circuit AI is a cutting-edge Electronic Design Automation (EDA) system that automates analog circuit design through machine learning. It combines Graph Neural Networks (GNN) for fast performance prediction with Bayesian Optimization for intelligent parameter tuning, achieving 3-5x speedup over traditional methods while maintaining high accuracy.
Transform natural language circuit specifications into optimized, production-ready designs using state-of-the-art AI techniques. Circuit AI bridges the gap between circuit design intent and implementation through intelligent automation.
- Natural Language Processing - Parse circuit specifications from plain English using transformer-based models
- Multi-Agent Architecture - Coordinated AI agents for specification parsing, topology selection, and parameter optimization
- Smart Topology Selection - Automatically choose optimal circuit architectures based on requirements
- Graph Neural Networks (GNN) - Fast circuit performance prediction using PyTorch Geometric (
src/circuit_ai/ml/gnn_predictor.py) - Bayesian Optimization - Intelligent parameter tuning with BoTorch and GPyTorch (
src/circuit_ai/core/optimization/optimize.py) - Hybrid GNN+BO - Combined approach achieving 3-5x speedup over pure BO (
src/circuit_ai/ml/hybrid_optimizer.py) - Transfer Learning - Pre-trained models for faster convergence
- SPICE Integration - Industry-standard circuit simulation with PySpice (
src/circuit_ai/core/simulation/spice.py) - Monte Carlo Analysis - Statistical validation with uncertainty quantification
- PDK Support - Process Design Kit integration for real fabrication parameters (
src/circuit_ai/core/simulation/pdk_loader.py)
- FastAPI Backend - High-performance REST API with automatic documentation (
src/circuit_ai/api/main.py) - React 19 Frontend - Modern, responsive UI with real-time updates (
frontend/) - Canva App UI Kit - Professional design system for consistent UX
- Real-time Monitoring - Live optimization progress tracking
- Modular Design - Clean separation of concerns for easy maintenance
- Extensible Framework - Plugin architecture for custom topologies and objectives
- Comprehensive Testing - Full test suite with >85% coverage (
tests/) - Docker Support - Containerized deployment for reproducibility
# Clone the repository
git clone https://github.com/RudraMantri123/Circuit_AI_Design.git
cd Circuit_AI_Design
# Automated setup (creates venv, installs dependencies)
./scripts/setup.sh
# Activate virtual environment
source venv/bin/activate # On Linux/macOS
# or
.\venv\Scripts\activate # On Windows
# Start the full application
./scripts/start_dev.shThen open your browser and navigate to:
- Frontend: http://localhost:5173
- API Docs: http://localhost:8000/docs
- API ReDoc: http://localhost:8000/redoc
Layer 1: Presentation Layer
- React Frontend (Port 5173)
- Component: User Interface
- Technology: React 19 + TypeScript + Canva UI Kit
- Input: Natural language circuit specifications
- Output: Visual design results, performance metrics, SPICE netlists
- Files:
frontend/src/App.tsx
Layer 2: API Gateway
- FastAPI Backend (Port 8000)
- Component: REST API Server
- Technology: FastAPI + Pydantic + Uvicorn
- Endpoints:
/parse,/design,/optimize,/simulate - Files:
src/circuit_ai/api/main.py
Layer 3: Multi-Agent Intelligence Layer
-
Agent 1: Specification Parser
- Input: Natural language text ("60dB gain, 1mW power, 1MHz bandwidth")
- Process: NLP using Transformers
- Output: Structured parameters (gain_db=60, power_uw=1000, bandwidth_mhz=1)
- Files:
src/circuit_ai/core/agents/parse.py
-
Agent 2: Topology Selector
- Input: Parsed specifications
- Process: Rule-based + AI topology matching
- Output: Circuit architecture (two-stage op-amp, folded cascode, etc.)
- Files:
src/circuit_ai/core/agents/topology.py
-
Agent 3: Multi-Agent Orchestrator
- Process: Coordinates all agents using LangChain
- Output: Complete design workflow
- Files:
src/circuit_ai/core/agents/multi.py
Layer 4: Machine Learning Engine
-
Component A: Graph Neural Network
- Input: Circuit topology (transistors, connections)
- Process 1: Convert circuit to graph (nodes=transistors, edges=connections)
- Process 2: Apply GCN + GAT layers
- Output: Predicted performance (gain, power, bandwidth)
- Speed: Evaluates 1000s of designs per second
- Files:
src/circuit_ai/ml/gnn_predictor.py,src/circuit_ai/ml/circuit_graph.py
-
Component B: Bayesian Optimizer
- Input: Design space parameters (transistor widths, lengths)
- Process 1: Build Gaussian Process model (GPyTorch)
- Process 2: Use acquisition function to select next design point
- Output: Optimized transistor sizes
- Technology: BoTorch + GPyTorch
- Files:
src/circuit_ai/core/optimization/optimize.py
-
Component C: Hybrid Optimizer
- Process: GNN for fast screening → BO for fine-tuning
- Result: 3-5x speedup vs pure Bayesian optimization
- Files:
src/circuit_ai/ml/hybrid_optimizer.py
Layer 5: Simulation & Validation
-
SPICE Simulator
- Input: SPICE netlist with transistor sizes
- Process: AC analysis, DC analysis, transient analysis
- Output: Accurate performance metrics
- Technology: PySpice + NgSpice
- Files:
src/circuit_ai/core/simulation/spice.py
-
Monte Carlo Engine
- Process: Run 50-100 simulations with process variations
- Output: Statistical validation (mean, std deviation)
- Purpose: Ensure design robustness
-
PDK Loader
- Input: Process Design Kit files (.lib)
- Output: Real fabrication parameters
- Files:
src/circuit_ai/core/simulation/pdk_loader.py
STEP 1: User Input
↓
User enters: "60dB gain, 1mW power, 1MHz bandwidth, 0.18um CMOS"
↓
STEP 2: Parse Specification
↓
NLP Parser extracts: {gain: 60, power: 1000, bandwidth: 1, tech: "0.18um"}
↓
STEP 3: Select Topology
↓
Topology Agent selects: "Two-Stage Op-Amp"
↓
STEP 4: Convert to Graph
↓
Circuit Graph: Nodes=[M1, M2, M3, M4, M5], Edges=[(M1,M3), (M2,M3), ...]
↓
STEP 5: GNN Prediction (Fast Screening)
↓
GNN evaluates 1000 candidate designs → Top 10 designs
↓
STEP 6: Bayesian Optimization (Fine-Tuning)
↓
BO runs 10 iterations → Optimal transistor sizes
↓
STEP 7: SPICE Verification
↓
PySpice simulates final design → Actual performance
↓
STEP 8: Monte Carlo Validation
↓
50 simulations with variations → Robustness confirmed
↓
STEP 9: Return Results
↓
Frontend displays: Performance metrics, netlist, plots
- Frontend ↔ Backend: REST API calls (JSON over HTTP)
- Backend ↔ Agents: Function calls (Python)
- Agents ↔ ML Engine: Data pipelines (PyTorch tensors)
- ML Engine ↔ Simulator: File I/O (SPICE netlists)
- All Components ↔ Database: File storage (JSON, .sp files)
Circuit AI uses a modular architecture:
- Agents - Parse specifications and select topologies
- ML Models - GNN for fast performance prediction
- Optimizer - Bayesian optimization for parameter tuning
- Simulator - SPICE-based circuit verification
- API - FastAPI backend for web access
- Frontend - React UI for user interaction
See docs/ARCHITECTURE.md for details.
- Optimization Speed: 5.2s per circuit (10 iterations)
- GNN Speedup: 3-5x vs pure Bayesian optimization
- Success Rate: 100% on benchmark circuits
- Compliance Rate: 85%+ spec matching
| Technology | Version | Purpose | Reference |
|---|---|---|---|
| PyTorch | 2.0+ | Deep learning framework for GNN models | requirements.txt:5 |
| PyTorch Geometric | 2.3+ | Graph neural network layers and operations | src/circuit_ai/ml/gnn_predictor.py:8 |
| BoTorch | 0.8+ | Bayesian optimization framework | src/circuit_ai/core/optimization/optimize.py:18 |
| GPyTorch | 1.9+ | Gaussian Process models for BO | requirements.txt:28 |
| Transformers | 4.20+ | NLP models for spec parsing | src/circuit_ai/core/agents/parse.py |
| LangChain | 0.1+ | LLM orchestration and agents | src/circuit_ai/core/agents/multi.py |
| Technology | Version | Purpose | Reference |
|---|---|---|---|
| PySpice | 1.5+ | Python interface to ngspice simulator | src/circuit_ai/core/simulation/spice.py:15 |
| NgSpice | - | Industry-standard SPICE simulator | External dependency |
| NetworkX | 3.1+ | Graph analysis and circuit topology | src/circuit_ai/ml/circuit_graph.py |
| Technology | Version | Purpose | Reference |
|---|---|---|---|
| NumPy | 1.24+ | Numerical computing foundation | requirements.txt:15 |
| SciPy | 1.10+ | Scientific algorithms and optimization | requirements.txt:16 |
| Pandas | 2.0+ | Data manipulation and analysis | requirements.txt:17 |
| Technology | Version | Purpose | Reference |
|---|---|---|---|
| FastAPI | 0.100+ | Modern async web framework | src/circuit_ai/api/main.py:4 |
| Pydantic | 2.0+ | Data validation and serialization | src/circuit_ai/api/main.py:7 |
| Uvicorn | - | ASGI server for FastAPI | Used for serving |
Check data/examples/ for sample circuits:
- Low-power op-amp
- High-gain precision amplifier
- Ultra-low-power design
MIT License - see LICENSE for details.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: f20220209@pilani.bits-pilani.ac.in
Built with: