Skip to main content
Glama
kfy123bot

EDA Tools MCP Server

by kfy123bot

EDA Tools MCP Server

Implementierung des Papers: MCP4EDA: LLM-Powered Model Context Protocol RTL-to-GDSII Automation with Backend Aware Synthesis Optimization

Ein umfassender Model Context Protocol (MCP)-Server, der die Integration von Electronic Design Automation (EDA)-Tools für KI-Assistenten wie Claude Desktop und Cursor IDE bereitstellt. Dieser Server ermöglicht es der KI, Verilog-Synthese, Simulation, ASIC-Design-Flows und Wellenformanalysen über eine einheitliche Schnittstelle durchzuführen.

Demo

https://github.com/user-attachments/assets/65d8027e-7366-49b5-8f11-0430c1d1d3d6

EDA MCP Server-Demonstration mit Verilog-Synthese, Simulation und ASIC-Design-Flow

Funktionen

  • Verilog-Synthese: Synthetisieren von Verilog-Code mit Yosys für verschiedene FPGA-Ziele (generic, ice40, xilinx)

  • Verilog-Simulation: Simulation von Designs mit Icarus Verilog mit automatisierter Testbench-Ausführung

  • Wellenform-Anzeige: Starten von GTKWave zur VCD-Dateivisualisierung und Signalanalyse

  • ASIC-Design-Flow: Vollständiger RTL-to-GDSII-Flow mit OpenLane unter Verwendung von Docker-Integration

  • Layout-Anzeige: Öffnen von GDSII-Dateien in KLayout zur physischen Design-Inspektion

  • Berichtsanalyse: Lesen und Analysieren von OpenLane-Berichten für PPA-Metriken und Qualitätsbewertung des Designs

Voraussetzungen

Bevor Sie diesen MCP-Server verwenden, müssen Sie die folgenden EDA-Tools installieren:

1. Yosys (Verilog-Synthese)

macOS (Homebrew):

brew install yosys

Ubuntu/Debian:

sudo apt-get update
sudo apt-get install yosys

Aus dem Quellcode:

# Install prerequisites
sudo apt-get install build-essential clang bison flex \
    libreadline-dev gawk tcl-dev libffi-dev git \
    graphviz xdot pkg-config python3 libboost-system-dev \
    libboost-python-dev libboost-filesystem-dev zlib1g-dev

# Clone and build
git clone https://github.com/YosysHQ/yosys.git
cd yosys
make -j$(nproc)
sudo make install

Alternative - OSS CAD Suite (Empfohlen): Laden Sie die vollständige Toolchain herunter von: https://github.com/YosysHQ/oss-cad-suite-build/releases

2. Icarus Verilog (Simulation)

macOS (Homebrew):

brew install icarus-verilog

Ubuntu/Debian:

sudo apt-get install iverilog

Windows: Laden Sie den Installer herunter von: https://bleyer.org/icarus/

3. GTKWave (Wellenform-Viewer)

Direkte Downloads (Empfohlen):

  • Windows: Download von SourceForge

  • macOS: Download von SourceForge oder verwenden Sie Homebrew: brew install --cask gtkwave

  • Linux: Download von SourceForge oder verwenden Sie den Paketmanager: sudo apt-get install gtkwave

Alternative Installationsmethoden:

# macOS (Homebrew)
brew install --cask gtkwave

# Ubuntu/Debian
sudo apt-get install gtkwave

# Build from source (all platforms)
git clone https://github.com/gtkwave/gtkwave.git
cd gtkwave
meson setup build && cd build && meson install

4. Docker Desktop (Empfohlen für OpenLane)

Direkte Downloads:

Installation:

  1. Laden Sie Docker Desktop von der offiziellen Website herunter und installieren Sie es

  2. Starten Sie Docker Desktop und stellen Sie sicher, dass es läuft

  3. Überprüfen Sie die Installation: docker run hello-world

Hinweis: Docker Desktop enthält Docker Engine, Docker CLI und Docker Compose in einem Paket.

5. OpenLane (ASIC-Design-Flow)

Einfache Installationsmethode (Empfohlen):

# Install OpenLane via pip
pip install openlane

# Pull the Docker image
docker pull efabless/openlane:latest

# Verify installation
docker run hello-world

Anwendungsbeispiel:

# Create project directory
mkdir -p ~/openlane-projects/my-design
cd ~/openlane-projects/my-design

# Create Verilog file (counter example)
cat > counter.v << 'EOF'
module counter (
    input wire clk,
    input wire rst,
    output reg [7:0] count
);
    always @(posedge clk or posedge rst) begin
        if (rst)
            count <= 8'b0;
        else
            count <= count + 1;
    end
endmodule
EOF

# Create configuration file
cat > config.json << 'EOF'
{
    "DESIGN_NAME": "counter",
    "VERILOG_FILES": ["counter.v"],
    "CLOCK_PORT": "clk",
    "CLOCK_PERIOD": 10.0
}
EOF

# Run the RTL-to-GDSII flow
python3 -m openlane --dockerized config.json

Hauptvorteile:

  • Das --dockerized-Flag handhabt alle Tool-Abhängigkeiten automatisch über Docker

6. KLayout (Layout-Viewer)

Direkte Downloads (Empfohlen):

Alternative Installation:

# macOS (Homebrew)
brew install --cask klayout

# Ubuntu/Debian
sudo apt install klayout

Installation

1. Klonen und Erstellen des MCP-Servers

git clone https://github.com/NellyW8/mcp-EDA
cd mcp-EDA
npm install
npm run build
npx tsc   

2. Projektstruktur

mcp-EDA/
├── src/
│   └── index.ts          # Main server code
├── build/
│   └── index.js          # Compiled JavaScript
├── package.json
├── tsconfig.json
└── README.md

Konfiguration

Docker Desktop MCP-Integration

Diese Methode verwendet die integrierte MCP-Erweiterung von Docker Desktop für die einfachste Einrichtung.

Voraussetzungen

  • Docker Desktop 4.39.0+ installiert und laufend

  • Claude Desktop installiert

Einrichtungsschritte

  1. Docker Desktop-Erweiterung installieren:

    • Starten Sie Docker Desktop

    • Gehen Sie im linken Menü auf "Extensions"

    • Suchen Sie nach "AI Tools" oder "Docker MCP Toolkit"

    • Installieren Sie die Erweiterung "Labs: AI Tools for Devs"

  2. Docker MCP-Verbindung konfigurieren:

    • Öffnen Sie die installierte Erweiterung "Labs: AI Tools for Devs"

    • Klicken Sie auf das Zahnradsymbol in der oberen rechten Ecke

    • Wählen Sie den Tab "MCP Clients"

    • Klicken Sie auf "Connect" für "Claude Desktop" oder "Cursor IDE"

    Dies konfiguriert Claude Desktop und Cursor IDE automatisch mit:

    {
      "mcpServers": {
        "MCP_DOCKER": {
          "command": "docker",
          "args": [
            "run",
            "-i",
            "--rm",
            "alpine/socat",
            "STDIO",
            "TCP:host.docker.internal:8811"
          ]
        }
      }
    }

Cursor IDE-Einrichtung

  1. Fügen Sie Ihren EDA MCP-Server hinzu:

    • Suchen Sie Ihre Claude Desktop-Konfigurationsdatei, Einstellungen > Entwickler > Konfiguration bearbeiten:

      • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

      • Windows: %APPDATA%\Claude\claude_desktop_config.json

    • Fügen Sie Ihren EDA-Server zur bestehenden Konfiguration hinzu:

    {
      "mcpServers": {
        "MCP_DOCKER": {
          "command": "docker",
          "args": [
            "run",
            "-i",
            "--rm",
            "alpine/socat",
            "STDIO",
            "TCP:host.docker.internal:8811"
          ]
        },
        "eda-mcp": {
          "command": "node",
          "args": [
            "/absolute/path/to/your/eda-mcp-server/build/index.js"
          ],
          "env": {
            "PATH": "/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin",
            "HOME": "/your/home/directory"
          }
        }
      }
    }
  2. Starten Sie Claude Desktop neu und überprüfen Sie in Einstellungen > Entwickler, ob beide Server laufen.

Cursor IDE-Einrichtung

  1. Cursor-Einstellungen öffnen:

    • Drücken Sie Strg + Umschalt + P (Windows/Linux) oder Cmd + Umschalt + P (macOS)

    • Suchen Sie nach "Cursor Settings"

    • Navigieren Sie in der Seitenleiste zu "MCP"

  2. MCP-Server hinzufügen: Klicken Sie auf "Add new MCP server" und konfigurieren Sie:

     {
      "mcpServers": {
        "MCP_DOCKER": {
          "command": "docker",
          "args": [
            "run",
            "-i",
            "--rm",
            "alpine/socat",
            "STDIO",
            "TCP:host.docker.internal:8811"
          ]
        },
        "eda-mcp": {
          "command": "node",
          "args": [
            "/absolute/path/to/your/eda-mcp-server/build/index.js"
          ],
          "env": {
            "PATH": "/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin",
            "HOME": "/your/home/directory"
          }
        }
      }
    }
  3. MCP-Tools aktivieren:

    • Gehen Sie zu Cursor-Einstellungen → MCP

    • Aktivieren Sie den "eda-mcp"-Server

    • Der Serverstatus sollte sich auf "Connected" ändern

Anwendungsbeispiele

1. Verilog-Synthese

Ask Claude: "Can you synthesize this counter module for an ice40 FPGA?"

module counter(
    input clk,
    input rst,
    output [7:0] count
);
    reg [7:0] count_reg;
    assign count = count_reg;
    
    always @(posedge clk or posedge rst) begin
        if (rst)
            count_reg <= 8'b0;
        else
            count_reg <= count_reg + 1;
    end
endmodule

2. Verilog-Simulation

Ask Claude: "Please simulate this adder with a testbench"

// Design
module adder(
    input [3:0] a,
    input [3:0] b,
    output [4:0] sum
);
    assign sum = a + b;
endmodule

// Testbench will be generated automatically or you can provide one

3. ASIC-Design-Flow

Ask Claude: "Run the complete ASIC flow for this design with a 10ns clock period"

module simple_cpu(
    input clk,
    input rst,
    input [7:0] data_in,
    output [7:0] data_out
);
    // Your RTL design here
endmodule

Was Sie nach Abschluss erhalten:

  • runs/RUN_*/final/gds/design.gds - Finales GDSII-Layout

  • runs/RUN_*/openlane.log - Vollständiges Ausführungsprotokoll

  • runs/RUN_*/reports/ - Berichte zur Timing-, Flächen- und Leistungsanalyse

  • Alle Zwischenergebnisse (DEF-Dateien, Netzlisten, etc.)

4. Wellenformanalyse

Ask Claude: "View the waveforms from the simulation with project ID: abc123"

Fehlerbehebung

Häufige Probleme

  1. MCP-Server nicht erkannt:

    • Überprüfen Sie den absoluten Pfad in der Konfiguration

    • Stellen Sie sicher, dass Node.js installiert und zugänglich ist

    • Starten Sie Claude Desktop/Cursor nach Konfigurationsänderungen neu

  2. Docker-Berechtigungsfehler:

    sudo groupadd docker
    sudo usermod -aG docker $USER
    sudo reboot
  3. Fehler "Tool nicht gefunden":

    • Überprüfen Sie, ob die Tools installiert sind: yosys --version, iverilog -V, gtkwave --version

    • Überprüfen Sie die PATH-Umgebungsvariable in der MCP-Konfiguration

    • Stellen Sie unter macOS sicher, dass Homebrew-Pfade enthalten sind: /opt/homebrew/bin

  4. OpenLane-Zeitüberschreitung:

    • Der Server hat eine 10-minütige Zeitüberschreitung für OpenLane-Flows

    • Erwägen Sie bei komplexen Designs eine Vereinfachung oder die Durchführung mehrerer Iterationen

  5. GTKWave/KLayout GUI-Probleme:

    • Unter macOS: GTKWave/KLayout erfordern möglicherweise eine manuelle Genehmigung in den Sicherheits- & Datenschutzeinstellungen

    • Unter Linux: Stellen Sie sicher, dass X11-Weiterleitung funktioniert, wenn Sie Remote-Systeme verwenden

    • Unter Windows: Stellen Sie sicher, dass GUI-Anwendungen über die Befehlszeile gestartet werden können

Debugging

  1. MCP-Server-Protokolle prüfen:

    • Claude Desktop: ~/Library/Logs/Claude/mcp*.log (macOS)

    • Cursor: Überprüfen Sie das MCP-Einstellungsfenster auf Fehlermeldungen

  2. Tools manuell testen:

yosys -help
iverilog -help
docker run hello-world
gtkwave --version
klayout -v
  1. Node.js-Umgebung überprüfen:

node --version
npm --version

Support

Bei Problemen und Fragen:

  • Überprüfen Sie den Abschnitt zur Fehlerbehebung oben

  • Überprüfen Sie die MCP-Server-Protokolle

  • Testen Sie einzelne Tools manuell

  • Eröffnen Sie ein Issue mit detaillierten Fehlermeldungen und Umgebungsinformationen


Hinweis: Dieser MCP-Server erfordert die lokale Installation von EDA-Tools. Der Server fungiert als Brücke zwischen KI-Assistenten und Ihrer lokalen EDA-Toolchain und ermöglicht anspruchsvolle Hardware-Design-Workflows durch Interaktion in natürlicher Sprache.

Zitieren

@misc{wang2025mcp4edallmpoweredmodelcontext,
      title={MCP4EDA: LLM-Powered Model Context Protocol RTL-to-GDSII Automation with Backend Aware Synthesis Optimization}, 
      author={Yiting Wang and Wanghao Ye and Yexiao He and Yiran Chen and Gang Qu and Ang Li},
      year={2025},
      eprint={2507.19570},
      archivePrefix={arXiv},
      primaryClass={cs.AR},
      url={https://arxiv.org/abs/2507.19570}, 
}
Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - A tier

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kfy123bot/mcp4eda-kfy'

If you have feedback or need assistance with the MCP directory API, please join our Discord server