mcp4eda

Una colección de servidores MCP para flujos de trabajo de Automatización de Diseño Electrónico (EDA), que incluye herramientas para el cálculo de rendimiento de obleas y análisis de Verilog/SystemVerilog.

Documentación

mcp4eda - Servidores MCP para Automatización de Diseño Electrónico

Una colección completa de servidores de Protocolo de Contexto de Modelo (MCP) diseñados para mejorar los flujos de trabajo de EDA en Claude Desktop y otros clientes compatibles con MCP.

🚀 Servidores MCP Disponibles (8 en Total)

1. Servidor MCP de Yosys

Propósito: Síntesis y optimización de diseño para circuitos digitales
Ubicación: yosys-mcp/

Características:

  • Sintetizar Verilog/SystemVerilog a netlists a nivel de compuertas
  • Soporte para múltiples objetivos FPGA (Xilinx, Intel/Altera, Lattice)
  • Análisis de diseño (jerarquía, recursos, estadísticas)
  • Generación de visualización de circuitos
  • Caché inteligente para rendimiento

Herramientas:

  • yosys_synth - Síntesis con múltiples formatos de salida
  • yosys_analyze - Análisis de diseño y estadísticas
  • yosys_show - Generar diagramas visuales de circuitos

Documentación completa →

2. Servidor MCP de Verilator

Propósito: Simulación y verificación RTL de alto rendimiento
Ubicación: verilator-mcp/

Características:

  • Simulación rápida de Verilog/SystemVerilog
  • Generación automática de testbenches
  • Interfaz de depuración en lenguaje natural
  • Recopilación y análisis de cobertura
  • Soporte de generación de formas de onda

Herramientas:

  • verilator_compile - Compilar diseños a C++
  • verilator_simulate - Ejecutar simulaciones con testbench automático
  • verilator_testbenchgenerator - Creación inteligente de testbenches
  • verilator_naturallanguage - Consultas en lenguaje natural

Documentación completa →

3. Servidor MCP de Verible

Propósito: Linting, formateo y análisis de SystemVerilog/Verilog
Ubicación: verible-mcp/

Características:

  • Linting de estilo integral con corrección automática
  • Formateo de código con reglas personalizables
  • Análisis y visualización de árboles de sintaxis
  • Análisis de registros y módulos
  • Análisis de dependencias a nivel de proyecto
  • Interfaz en lenguaje natural

Herramientas:

  • verible_lint - Verificación de estilo y correcciones
  • verible_format - Formateo de código
  • verible_syntax - Análisis de AST
  • verible_analyze - Análisis de diseño
  • verible_natural_language - Consultas en lenguaje natural

Documentación completa →

4. Servidor MCP de GTKWave

Propósito: Visualización de formas de onda y automatización de análisis
Ubicación: gtkwave-mcp/

Características:

  • Visualización programática de formas de onda
  • Conversión de formatos (VCD, FST, LXT2)
  • Extracción de jerarquía de señales
  • Análisis de temporización y mediciones
  • Generación de capturas de pantalla
  • Generación de scripts TCL

Herramientas:

  • gtkwave_open - Abrir formas de onda con configuraciones
  • gtkwave_convert - Convertir entre formatos
  • gtkwave_extract_signals - Extraer jerarquías de señales
  • gtkwave_analyze_timing - Mediciones de temporización
  • gtkwave_capture_screenshot - Generar imágenes de formas de onda

Documentación completa →

5. Servidor MCP de KLayout

Propósito: Visualización, edición y análisis de layout de CI
Ubicación: klayout-mcp/

Características:

  • Soporte multi-formato (GDS, OASIS, DXF, CIF, MAG, DEF/LEF)
  • Verificación de Reglas de Diseño (DRC) con motor potente
  • Extracción y manipulación de capas
  • Conversión de formatos con escalado
  • Scripting personalizado en Python/Ruby
  • Interfaz en lenguaje natural
  • Biblioteca de recursos enriquecida

Herramientas:

  • klayout_layout_info - Analizar archivos de layout
  • klayout_convert_layout - Conversión de formatos
  • klayout_run_drc - Verificación de reglas de diseño
  • klayout_extract_layers - Extracción de capas
  • klayout_execute_script - Scripting personalizado
  • klayout_natural_language - Consultas en lenguaje natural

Documentación completa →

6. Servidor MCP de AnySilicon

Propósito: Cálculos de fabricación de semiconductores
Ubicación: anysilicon/

Características:

  • Cálculos de chips por oblea
  • Soporte para múltiples tamaños de oblea (150mm-450mm)
  • Parámetros de exclusión de borde y calles de separación
  • Integración con la calculadora web de AnySilicon
  • Soporte de estimación de rendimiento

Herramientas:

  • calculate_die_per_wafer - Calcular rendimiento de chips
  • validate_parameters - Validar parámetros de entrada
  • get_standard_wafer_sizes - Obtener estándares de obleas

Documentación completa →

7. MCP de Cadena de Suministro de Semiconductores

Propósito: Inteligencia de adquisición de núcleos IP y servicios ASIC
Ubicación: semiconductor-supply-chain-mcp/

Características:

  • Encontrar proveedores de IP por categoría y tecnología
  • Localizar servicios de diseño y fabricación ASIC
  • Estimación de precios para servicios de semiconductores
  • Comparación multi-proveedor
  • Consultas en lenguaje natural para búsquedas complejas

Herramientas:

  • find_ip_vendors - Buscar proveedores de núcleos IP
  • find_asic_services - Encontrar servicios ASIC
  • get_price_estimation - Estimar costos
  • compare_vendors - Comparar múltiples proveedores
  • natural_language_query - Interfaz en lenguaje natural

Documentación completa →

8. Servidor MCP de OpenLane

Propósito: Automatización completa del flujo RTL a GDSII
Ubicación: openlane-mcp/

Características:

  • Flujo completo de RTL a GDSII usando OpenLane
  • Ejecución basada en contenedores (Docker/Podman)
  • Control de etapas individuales (síntesis, ubicación, enrutamiento)
  • Gestión y configuración de PDK
  • Interfaz en lenguaje natural para flujos complejos

Herramientas:

  • openlane_run_flow - Flujo completo de RTL a GDSII
  • openlane_run_synthesis - Síntesis lógica
  • openlane_run_floorplan - Planificación del piso y ubicación de E/S
  • openlane_run_placement - Ubicación de celdas estándar
  • openlane_run_cts - Síntesis de árbol de reloj
  • openlane_run_routing - Enrutamiento global y detallado
  • openlane_natural_language - Interfaz en lenguaje natural

Documentación completa →

🌟 Soporte de Lenguaje Natural

Los 8 servidores MCP ahora incluyen interfaces de lenguaje natural integrales, lo que le permite interactuar con herramientas EDA usando comandos en inglés sencillo:

"Synthesize my design for Xilinx FPGA"
"Run simulation for 1 microsecond" 
"Check my Verilog for errors"
"Generate testbench for my CPU module"
"Show waveform of clock signals"
"Convert layout to OASIS format"
"Calculate dies per wafer for 10x10mm chip"
"Find DDR5 IP vendors"
"Run complete RTL to GDSII flow"

Consulte la Guía de Soporte de Lenguaje Natural para ver ejemplos y patrones completos.

📋 Requisitos Previos

  • Node.js 18+ y npm
  • Aplicación Claude Desktop
  • Herramientas EDA (según sea necesario):
    • Yosys (para síntesis)
    • Verilator (para simulación)
    • Verible (para linting)
    • GTKWave (para formas de onda)
    • KLayout (para visualización de layout)

🔧 Instalación Rápida

1. Clonar el Repositorio

git clone https://github.com/ssql2014/mcp4eda.git
cd mcp4eda

2. Instalar Todos los Servidores

# Install script for all servers
for dir in yosys-mcp verilator-mcp verible-mcp gtkwave-mcp klayout-mcp anysilicon semiconductor-supply-chain-mcp openlane-mcp; do
  echo "Installing $dir..."
  cd $dir && npm install && npm run build && cd ..
done

3. Configurar Claude Desktop

Agregue a su configuración de Claude Desktop:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json

Ejemplo de configuración para todos los servidores:

{
  "mcpServers": {
    "yosys": {
      "command": "node",
      "args": ["/path/to/mcp4eda/yosys-mcp/dist/index.js"],
      "env": {
        "YOSYS_PATH": "/opt/homebrew/bin/yosys",
        "LOG_LEVEL": "info"
      }
    },
    "verilator": {
      "command": "node",
      "args": ["/path/to/mcp4eda/verilator-mcp/dist/index.js"],
      "env": {
        "VERILATOR_PATH": "/opt/homebrew/bin/verilator",
        "LOG_LEVEL": "info"
      }
    },
    "verible": {
      "command": "node",
      "args": ["/path/to/mcp4eda/verible-mcp/dist/index.js"],
      "env": {
        "LOG_LEVEL": "info"
      }
    },
    "gtkwave": {
      "command": "node",
      "args": ["/path/to/mcp4eda/gtkwave-mcp/dist/index.js"],
      "env": {
        "GTKWAVE_PATH": "/opt/homebrew/bin/gtkwave",
        "LOG_LEVEL": "info"
      }
    },
    "klayout": {
      "command": "node",
      "args": ["/path/to/mcp4eda/klayout-mcp/dist/index.js"],
      "env": {
        "KLAYOUT_PATH": "/opt/homebrew/bin/klayout",
        "LOG_LEVEL": "info"
      }
    },
    "anysilicon": {
      "command": "node",
      "args": ["/path/to/mcp4eda/anysilicon/dist/index.js"]
    },
    "semiconductor-supply-chain": {
      "command": "node",
      "args": ["/path/to/mcp4eda/semiconductor-supply-chain-mcp/dist/index.js"]
    },
    "openlane": {
      "command": "node",
      "args": ["/path/to/mcp4eda/openlane-mcp/dist/index.js"],
      "env": {
        "CONTAINER_EXECUTABLE": "docker",
        "OPENLANE_IMAGE": "efabless/openlane:latest",
        "WORK_DIR": "/path/to/openlane-workspace",
        "LOG_LEVEL": "info"
      }
    }
  }
}

🎯 Ejemplos de Uso

Flujo Completo de RTL a Layout

User: "Analyze my Verilog design in /project/rtl"
Claude: [Uses Verible to lint and format code]

User: "Synthesize the design for Xilinx FPGA"
Claude: [Uses Yosys to synthesize and optimize]

User: "Simulate the synthesized design"
Claude: [Uses Verilator to run simulation]

User: "Show me the waveform"
Claude: [Uses GTKWave to display results]

Flujo de Diseño de CI

User: "Check DRC on my layout.gds"
Claude: [Uses KLayout to run design rules]

User: "Calculate die yield for 10x10mm chip on 300mm wafer"
Claude: [Uses AnySilicon for yield calculation]

User: "Find DDR5 PHY IP vendors"
Claude: [Uses Supply Chain MCP to search vendors]

🔍 Solución de Problemas

Ver Registros (macOS)

tail -f ~/Library/Logs/Claude/mcp-server-*.log

Problemas Comunes

  1. Servidor desconectado: Verifique la instalación de herramientas y las rutas
  2. Herramienta no encontrada: Reinicie Claude Desktop después de los cambios de configuración
  3. Errores de permisos: Asegúrese de que las herramientas tengan permisos de ejecución
  4. Errores de compilación: Verifique la versión de Node.js (requiere 18+)

Verificar Instalación

# Check all tools
which yosys verilator verible gtkwave klayout

# Test MCP servers
for server in */dist/index.js; do
  echo "Testing $server"
  timeout 2 node "$server" 2>&1 | head -n 5
done

🚧 Hoja de Ruta

Próximamente

  • Magic MCP: Integración de editor de layout
  • OpenROAD MCP: Flujo completo de RTL a GDS
  • ngspice MCP: Simulación de circuitos
  • Icarus MCP: Simulador Verilog alternativo

Características Futuras

  • Automatización de flujos de trabajo entre herramientas
  • Síntesis y simulación en la nube
  • Plantillas y asistentes de proyectos
  • Integración CI/CD para hardware

🤝 Contribuciones

¡Damos la bienvenida a las contribuciones! Por favor:

  1. Haga un fork del repositorio
  2. Cree una rama de características (git checkout -b feature/NewMCP)
  3. Implemente su servidor MCP siguiendo los patrones existentes
  4. Agregue documentación completa
  5. Envíe una solicitud de extracción

Consulte CONTRIBUTING.md para obtener pautas detalladas.

📄 Licencia

Licencia MIT: consulte los directorios de proyectos individuales para conocer las licencias específicas.

🔗 Enlaces

🌟 Historial de Estrellas

Si encuentra útiles estas herramientas, ¡por favor dé una estrella al repositorio para ayudar a otros a descubrirlo!


Construido con ❤️ para la comunidad EDA