İçeriğe geç

EDA MCP

Gerçek EDA araçları, mühendis onaylı kapılarla — EDA_MCP

EDA_MCP, Model Context Protocol konuşan yerel ajanları (Claude Code, Claude Desktop, Cursor, Windsurf, Antigravity) uzak Linux kümenizdeki Cadence Virtuoso, Siemens Eldo ve Siemens Calibre’ye bağlayan açık kaynak bir kontrol düzlemidir. Şema çekiminden PDK boyutlandırmasına, Layout XL üretiminden Calibre DRC/LVS/xRC PEX’e ve Eldo son yerleşim benzetimine kadar kapalı döngü akışı ajan yürütür; her adım kanıt dosyalarıyla belgelenir ve mühendis onaylı kapılardan geçer.

Kurulum — tek satır

bash
claude mcp add eda-mcp -- python3 /absolute/path/to/EDA_MCP/server.py

Depoyu klonlayın, `pip3 install -r requirements.txt` çalıştırın ve `config/*.template` dosyalarını kendi SSH oturumlarınıza göre doldurun. Sonra:

Akış

Kapalı döngü: şemadan son yerleşime

Altı kutu, altı araç: her aşama, bir sonraki aşamanın girdisi olacak kanıtı üretir. Boş hedef yok — DRC temizlenmeden LVS, LVS eşleşmeden PEX çalışmaz.

01

Şema ve PDK boyutlama

Cadence Virtuoso — schCheck (0 0)

Ajana; W/L değerleri mikron dizgeleri olarak verilen LP/GP aygıtlarla şema kurulur, CDF callback’leri işlenir ve şema, netlist öncesinde sıfır hata sıfır uyarı kuralına tabi tutulur.

02

Layout XL üretimi

Cadence Virtuoso Layout XL — GFS, VSR

Şema–yerleşim bağlantısı kurulu bir Layout XL oturumu açılır; Generate From Source aygıtları ve Metal 1 pinleri üretir, yerleşim 5 nm imalat ızgarasına yapışır.

03

Fiziksel doğrulama (DRC)

Siemens Calibre DRC — resmi katman haritası, temiz SVRF

GDSII, resmi PDK katman haritasını ve case-korumayı içeren bir akışla yazılır (`strmout`); özel SVRF deck’i çalışır ve raporlar tamamen temiz hedefiyle düzeltilir.

04

Şema–yerleşim eşdeğerliği (LVS)

Siemens Calibre LVS — 0 uyuşmazlık hedefi

Şema veritabanından ve fiziksel GDSII’den yapısal SPICE netlistleri çıkarılıp karşılaştırılır; başarı ölçütü sıfır uyuşmazlık, sıfır kısa devre, sıfır açık devre, sıfır cihaz parametresi farkıdır.

05

Parazitik çıkarımı (PEX)

Siemens Calibre xRC — `.pex.spi` desteği

Tüm metal ve via katmanlarında parazitik R ve C ağı hesaplanır; son yerleşim simülasyonunun girdisi olan detaylı subcircuit desteği üretilir.

06

Son yerleşim simülasyonu

Siemens Eldo — AC / DC / Tran / Güç

PEX desteği ön-yerleşim şemasıyla birlikte benzetilir; kazanç, bant genişliği, faz payı, slew, güç ve gürültü ölçütleri işleme haneleriyle karşılaştırılır. Eldo, `.extract` raporunu ayrıştırır.

Mimari

Yerel ajan, SSH tüneli, uzak küme

Yerel taraftaki ajan FastMCP sunucusuyla konuşur; sunucu, kalıcı OpenSSH ControlMaster soketiyle ve akış dosya transferiyle uzak kümenin araçlarını sürer. Beş modül iki tarafta ayrı oturumlarla çalışır: workboard dosyaları yerel Git’te mirror’lar; virtuoso, açık GUI’de SKILL FIFO MCP.command’ı yazar; eldo, `.cir` deck’lerini interaktif REPL’de çalıştırır; remote_control, `/cadence/cshrc` ortamında csh subshell sağlar; report_issue, GitHub issues’de hata bildirir.

Yerel — geliştirici + AI ajan

Claude Code, Claude Desktop, Cursor, Windsurf, Antigravity

agent →

stdio · IDE plugin

mcp_config: eda-mcp

EDA_MCP — FastMCP sunucusu

server.py + 5 modül

workboardvirtuosoeldoremote_controlreport_issue
OpenSSH ControlMaster — kalıcı soket, akış transferi

Uzak Linux kümesi

Cadence Virtuoso · Siemens Eldo · Siemens Calibre · PDK

  • Cadence Virtuoso — SKILL FIFO (MCP.command)
  • Siemens Eldo — `eldo -inter` REPL
  • Siemens Calibre — DRC / LVS / xRC PEX
  • Git çalışma alanı — WorkBoard sync
  • İşlem PDK’sı (README örneği: cmos065)

Araçlar

Beş modülün yetenek matrisi

Modül adları ve eylem listeleri üst deponun README’sinden eksiksiz alınmıştır; kullanım sütunu iki dilde yazılmıştır.
ModülEylemlerNe işe yarar
workboardinitialize, add, pull, push, export, diff, status, historyÇalışma alanı eşzamanlayıcı ve sürüm denetimi: uzak Linux kümesindeki EDA dosyalarını `./workboard/<name>/` altındaki yerel Git deposunda izler; uzak dosyalar geri yazılmadan önce satır satır unified diff hesaplar.
virtuosoassisted_run, run, start_standalone, run_standalone, exit, run_terminal_commandCadence Virtuoso SKILL ve Layout XL denetimi: açık bir GUI oturumunda canlı SKILL çalıştırır (`assisted_run`) veya grafiksiz oturum kurar (`start_standalone`); Layout XL üretimini, PDK kurallarını ve `schCheck` `\(0 0\)` doğrulamasını yürütür.
eldostart_interactive, run_interactive, run_script, visualize_waveforms, run_terminal_commandSiemens Eldo SPICE benzetim motoru: toplu `.cir` çalıştırmaları, interaktif SPICE REPL akışı, `.extract` ölçüt ayrıştırma ve ön/son yerleşim PEX destekleri için dalga görselleştirme.
remote_controlrun_command, read_file, write_fileDurumlu csh alt kabuğu motoru: uçbirim komutları, Calibre DRC/LVS toplu betikleri, GDSII akışı (`strmout`) ve kalıcı ortam oturumlarında (`/cadence/cshrc`) uzak dosya incelemesi.
report_issuereport_issueÖzerk meta-harness raporlayıcı: yürütme günlükleri, ajan başlıkları ve oturum kimlikleri otomatik iliştirilmiş GitHub hata/özellik kaydı açan, ajanlar arası haber hattı.
  • 10 ms’nin altında SSH gecikmesi

    Koşullar
    Kalıcı OpenSSH ControlMaster soketleri ve akış dosya aktarımı ile el sıkışma yükünün giderilmesi; üst deponun kendi bileşeni.
    Kaynak
    EDA_MCP README — “Sub-10ms SSH Multiplexing Engine”
  • 793 parazitik öğe (347 R, 446 C)

    Koşullar
    Tek 65 nm op-amp yerleşiminden Calibre xRC çıkarımı; bu sayı örnekleme özgüsüdür, genel bir yoğunluk vaadi değildir.
    Kaynak
    EDA_MCP README — “Parasitic Extraction”
  • Tek kesintisiz oturumda uçtan uca akış

    Koşullar
    Üst deponun Issue #53 CheckPoint kilometre taşı: çok aşamalı bloğun kurulması, yerleşim, kural düzeltmesi, LVS eşleşmesi, 700+ parazitik çıkarımı ve son yerleşim doğrulaması tek oturumda tamamlandı.
    Kaynak
    EDA_MCP README — “Verified Full-Flow Baseline” (Issue #53)
  • Şema tamamlama ölçütü: schCheck \(0 0\)

    Koşullar
    Tasarımcı bağlam sözleşmesi: ajans, şemanın temiz olduğunu ancak gözlenen sıfır hata sıfır uyarı sonucuyla iddia edebilir; kanıt, ekran çıktısıdır.
    Kaynak
    EDA_MCP context/designer — “execution contract”

Koruyucular

Hızlı olan bir akış, denetlenebilir olduğu için güvenilir

EDA_MCP’nin README’si ve çift-iz spec’si, hızın yanına dört güvenlik özelliği koyar: diff’ten önce yazım, izden önce amaç, birleştirmeden önce insan, çalıştırmadan önce bekçi.

Git’e bağlı WorkBoard: push’tan önce diff

Uzak küme dosyaları yerel Git depolarında yansılanır; ajansın her geri yazması satır satır unified diff ile gözden geçirilir ve SHA-256 toplamalarıyla doğrulanır — bozulmuş bir dosya gitmiş olur, geri alma geçmişi de tam kalır.

Tasarımcı/kodcu çift-iz bağlam yönlendirici

Ajans niyetini sınıflandırır ve ancak o izin operasyonel spec’ini okur: şema, yerleşim ve benzetim niyetleri `context/designer/` altındaki kuralları; kod tabanı ve PR işleri `context/coder/` altındakileri alır. Araç yok düşünsün: şema yok, PDK yok.

Otomatik birleştirme yok

Katı NO-AUTOMERGE politikası: kodcu ajanlar asla main’e push etmez, PR açar ve durur; karar insan incelemesine bırakılır. Ajanlar arası akran inceleme, `agent-landline` haber hattıyla PR öncesi çalışır.

Komut bekçisi ve denetim günlüğü

Her kabuk komutu ve dosya yazımı çalışmadan önce bir kara listeyle, izin verilen dizin kontrolüyle ve kuru-deneme bayrağıyla sınanır; kabul edilen komutlar JSONL denetim günlüğüne yazılır.

Oturum kaydı

İLLÜSTRATİF

Bir oturum; kapıda duran bir adım

Akışı izleyin: araç çağrısı, kanıt, sonuç. Tek kapı, DRC kaydında — akış durur, sizin kararınızı bekler. Kapıyı kapanmıyorsa ajan da kapanmaz: iki seçenek de meşrudur, sahte olan hiçbiri.

Bu oturum kurgusaldır: bir EDA_MCP oturumunun izleyeni temsil eder; üst depodan gerçek bir oturum kaydı değildir.

designer@eda-uni@ciptasarim — depletion-load inverter — akış oturumu (İLLÜSTRATİF)
İLLÜSTRATİF
workboard initialize --name inverter-workspace
yansıma kuruldu — uzak dosyalar ./workboard/inverter-workspace/ altında; SHA-256 toplamaları izleniyor
virtuoso assisted_run --script tasarım_depletion_inverter.il
şema kuruldu — depletion-load inverter; NK/NP aygıtları CDF başlatıldı, W/L değerleri mikron dizgeleriyle geçildi
schCheck --cv inverter/schematic
sonuç (0 0) — sıfır hata, sıfır uyarı; şema netlist için hazır
cdl export --view schematic --file inverter.cdl
yapısal netlist dışa yazıldı — WorkBoard manifesine eklendi; deck yerel depoda yazılıp diff’le gitmiş
eldo start_interactive --deck tb_inverter.cir
REPL akışı up — .extract raporu ayrıştırıldı: ön-yerleşim ölçütler alındı
calibre -drc -hier drc.svrf
2 kural ihlali — yoğunluk kuralları; koordinatlar nm→µm dönüşüyle Virtuoso görünümünde işaretlendi

KAPI — karar gerekiyor

DRC raporu temiz değil. Ajans ne yapacak? İllüstratif oturum: iki yol da meşru — ve kapatılacak kapı gerçek mühendisin.

12/12

Demo

Depletion-load inverter — canlı yürütme

Üst deponun demo kaydı: bir ajan depletion-load inverter’ı şemalar, transistörleri boyutlandırır, CDL netlist’ini dışa yazar ve Eldo’da benzetir — Cadence Virtuoso ve Siemens Eldo oturumlarında canlı.
Üst deponun demo kaydı: bir ajan depletion-load inverter’ı şemalar, transistörleri boyutlandırır, CDL netlist’ini dışa yazar ve Eldo’da benzetir — Cadence Virtuoso ve Siemens Eldo oturumlarında canlı. Kayıt kaynağı: EDA_MCP deposu, `doc/media/demo.mp4` (MIT)

Başlarken

Gereksinimler ve istemci yapılandırması

Yerel tarafta Python 3.10+ ve OpenSSH; uzak tarafta Cadence Virtuoso, Siemens Eldo ve Siemens Calibre kurulu bir Linux küme. PDK, kümenizin lisanslı sürümünden gelir; yapılandırma şablonları kendi kümenize göre doldurulur.

Gereksinimler

  • Python 3.10+
  • OpenSSH istemcisi — yerel sistemde
  • Cadence Virtuoso, Siemens Eldo ve Calibre kurulu uzak Linux

İstemci yapılandırma parçaları

Claude Code — Uçbirim — bir kez çalıştırın

Claude Code
claude mcp add eda-mcp -- python3 /absolute/path/to/EDA_MCP/server.py

Claude Desktop — `claude_desktop_config.json` içine

Claude Desktop
{
  "mcpServers": {
    "eda-mcp": {
      "command": "python3",
      "args": [
        "/absolute/path/to/EDA_MCP/server.py"
      ]
    }
  }
}

Cursor / Windsurf — Stdio MCP sunucu kaydı

Cursor / Windsurf
Server Name : EDA_MCP
Command     : python3
Args        : /absolute/path/to/EDA_MCP/server.py

~/.ssh/config — Kalıcı soket: README’nin kendi örneği

~/.ssh/config
Host eda-uni
    HostName eda.university.edu
    User chip_designer
    ControlMaster auto
    ControlPath ~/.ssh/control-%r@%h:%p
    ControlPersist 15m

Üst proje

EDA_MCP, vs34 tarafından dağıtılan bir açık kaynak projesidir (MIT). SiliCad ekosisteminin içinde doğmuştur.

https://github.com/vs34/EDA_MCP · MIT Lisansı

Ticari markalar

Cadence, Virtuoso ve SKILL Cadence Design Systems’ın; Siemens, Eldo ve Calibre Siemens’in ticari markalarıdır. EDA_MCP bu araçlarla birlikte çalışır; hiçbir marka sahibiyle ilişki veya onay ima etmez.

PDK verileri

README’de kullanılan PDK örneği (cmos065) dökümhane malıdır ve genellikle NDA altındadır. Bu sayfada PDK dosyası, katman haritası, kural deck’i veya PDK özgü geometri gösteren yerleşim görüntüsü yayımlanmaz; çizimler jeneriktir.