EDA Tools MCP Server
EDA 도구 MCP 서버
Claude Desktop 및 Cursor IDE와 같은 AI 어시스턴트를 위한 전자 설계 자동화(EDA) 도구 통합을 제공하는 포괄적인 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이 서버를 통해 AI는 통합 인터페이스를 통해 Verilog 합성, 시뮬레이션, ASIC 설계 흐름 및 파형 분석을 수행할 수 있습니다.
데모
https://github.com/user-attachments/assets/65d8027e-7366-49b5-8f11-0430c1d1d3d6
Verilog 합성, 시뮬레이션 및 ASIC 설계 흐름을 보여주는 EDA MCP 서버 데모
기능
Verilog 합성: 다양한 FPGA 타겟(generic, ice40, xilinx)에 대해 Yosys를 사용하여 Verilog 코드 합성
Verilog 시뮬레이션: 자동화된 테스트벤치 실행과 함께 Icarus Verilog를 사용하여 설계 시뮬레이션
파형 보기: VCD 파일 시각화 및 신호 분석을 위해 GTKWave 실행
ASIC 설계 흐름: Docker 통합을 사용하여 OpenLane을 통한 완전한 RTL-to-GDSII 흐름
레이아웃 보기: 물리적 설계 검사를 위해 KLayout에서 GDSII 파일 열기
보고서 분석: PPA 지표 및 설계 품질 평가를 위해 OpenLane 보고서 읽기 및 분석
사전 요구 사항
이 MCP 서버를 사용하기 전에 다음 EDA 도구를 설치해야 합니다:
1. Yosys (Verilog 합성)
macOS (Homebrew):
brew install yosysUbuntu/Debian:
sudo apt-get update
sudo apt-get install yosys소스에서 빌드:
# 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대안 - OSS CAD Suite (권장): 다음에서 전체 툴체인 다운로드: https://github.com/YosysHQ/oss-cad-suite-build/releases
2. Icarus Verilog (시뮬레이션)
macOS (Homebrew):
brew install icarus-verilogUbuntu/Debian:
sudo apt-get install iverilogWindows: 다음에서 설치 프로그램 다운로드: https://bleyer.org/icarus/
3. GTKWave (파형 뷰어)
직접 다운로드 (권장):
Windows: SourceForge에서 다운로드
macOS: SourceForge에서 다운로드하거나 Homebrew 사용:
brew install --cask gtkwaveLinux: SourceForge에서 다운로드하거나 패키지 관리자 사용:
sudo apt-get install gtkwave
대안 설치 방법:
# 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 install4. Docker Desktop (OpenLane 권장)
직접 다운로드:
Windows: Windows용 Docker Desktop 다운로드
macOS: Mac용 Docker Desktop 다운로드 또는
brew install --cask dockerLinux: Linux용 Docker Desktop 다운로드
설치:
공식 웹사이트에서 Docker Desktop을 다운로드하여 설치합니다.
Docker Desktop을 실행하고 정상 작동하는지 확인합니다.
설치 확인:
docker run hello-world
참고: Docker Desktop은 Docker Engine, Docker CLI 및 Docker Compose를 하나의 패키지로 포함합니다.
5. OpenLane (ASIC 설계 흐름)
간편 설치 방법 (권장):
# Install OpenLane via pip
pip install openlane
# Pull the Docker image
docker pull efabless/openlane:latest
# Verify installation
docker run hello-world사용 예시:
# 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주요 이점:
--dockerized플래그는 Docker를 통해 모든 도구 종속성을 자동으로 처리합니다.
6. KLayout (레이아웃 뷰어)
직접 다운로드 (권장):
Windows: Windows용 KLayout 다운로드
macOS: macOS용 KLayout 다운로드 또는
brew install --cask klayoutLinux: Linux용 KLayout 다운로드 또는
sudo apt install klayout
대안 설치:
# macOS (Homebrew)
brew install --cask klayout
# Ubuntu/Debian
sudo apt install klayout설치
1. MCP 서버 복제 및 빌드
git clone https://github.com/NellyW8/mcp-EDA
cd mcp-EDA
npm install
npm run build
npx tsc 2. 프로젝트 구조
mcp-EDA/
├── src/
│ └── index.ts # Main server code
├── build/
│ └── index.js # Compiled JavaScript
├── package.json
├── tsconfig.json
└── README.md구성
Docker Desktop MCP 통합
이 방법은 가장 쉬운 설정을 위해 Docker Desktop의 내장 MCP 확장을 사용합니다.
사전 요구 사항
Docker Desktop 4.39.0 이상 설치 및 실행 중
Claude Desktop 설치됨
설정 단계
Docker Desktop 확장 설치:
Docker Desktop 실행
왼쪽 메뉴에서 "Extensions"로 이동
"AI Tools" 또는 "Docker MCP Toolkit" 검색
"Labs: AI Tools for Devs" 확장 설치
Docker MCP 연결 구성:
설치된 "Labs: AI Tools for Devs" 확장 열기
오른쪽 상단의 톱니바퀴 아이콘 클릭
"MCP Clients" 탭 선택
"Claude Desktop" 또는 "Cursor IDE"에 대해 "Connect" 클릭
이 작업은 Claude Desktop과 Cursor IDE를 자동으로 구성합니다:
{ "mcpServers": { "MCP_DOCKER": { "command": "docker", "args": [ "run", "-i", "--rm", "alpine/socat", "STDIO", "TCP:host.docker.internal:8811" ] } } }
Cursor IDE 설정
EDA MCP 서버 추가:
Claude Desktop 구성 파일 찾기, 설정 > 개발자 > 구성 편집:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
기존 구성에 EDA 서버 추가:
{ "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" } } } }Claude Desktop 재시작 후 설정 > 개발자에서 두 서버가 실행 중인지 확인합니다.
Cursor IDE 설정
Cursor 설정 열기:
Ctrl + Shift + P(Windows/Linux) 또는Cmd + Shift + P(macOS) 누르기"Cursor Settings" 검색
사이드바에서 "MCP"로 이동
MCP 서버 추가: "Add new MCP server"를 클릭하고 구성합니다:
{ "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" } } } }MCP 도구 활성화:
Cursor 설정 → MCP로 이동
"eda-mcp" 서버 활성화
서버 상태가 "Connected"로 변경되는 것을 확인해야 합니다.
사용 예시
1. Verilog 합성
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
endmodule2. Verilog 시뮬레이션
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 one3. ASIC 설계 흐름
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완료 후 얻는 결과물:
runs/RUN_*/final/gds/design.gds- 최종 GDSII 레이아웃runs/RUN_*/openlane.log- 전체 실행 로그runs/RUN_*/reports/- 타이밍, 면적, 전력 분석 보고서모든 중간 결과물 (DEF 파일, 넷리스트 등)
4. 파형 분석
Ask Claude: "View the waveforms from the simulation with project ID: abc123"문제 해결
일반적인 문제
MCP 서버가 감지되지 않음:
구성의 절대 경로 확인
Node.js가 설치되어 있고 액세스 가능한지 확인
구성 변경 후 Claude Desktop/Cursor 재시작
Docker 권한 오류:
sudo groupadd docker sudo usermod -aG docker $USER sudo reboot도구를 찾을 수 없음 오류:
도구 설치 확인:
yosys --version,iverilog -V,gtkwave --versionMCP 구성에서 PATH 환경 변수 확인
macOS의 경우 Homebrew 경로가 포함되어 있는지 확인:
/opt/homebrew/bin
OpenLane 시간 초과:
서버는 OpenLane 흐름에 대해 10분 시간 제한이 있습니다.
복잡한 설계의 경우 단순화하거나 여러 번 반복 실행하는 것을 고려하십시오.
GTKWave/KLayout GUI 문제:
macOS: GTKWave/KLayout은 보안 및 개인정보 보호 설정에서 수동 승인이 필요할 수 있습니다.
Linux: 원격 시스템을 사용하는 경우 X11 포워딩이 작동하는지 확인하십시오.
Windows: GUI 애플리케이션이 명령줄에서 실행될 수 있는지 확인하십시오.
디버깅
MCP 서버 로그 확인:
Claude Desktop:
~/Library/Logs/Claude/mcp*.log(macOS)Cursor: MCP 설정 패널에서 오류 메시지 확인
도구 수동 테스트:
yosys -help iverilog -help docker run hello-world gtkwave --version klayout -vNode.js 환경 확인:
node --version npm --version
지원
문제 및 질문:
위의 문제 해결 섹션 확인
MCP 서버 로그 검토
개별 도구 수동 테스트
자세한 오류 메시지 및 환경 정보를 포함하여 이슈 제기
참고: 이 MCP 서버는 EDA 도구의 로컬 설치가 필요합니다. 이 서버는 AI 어시스턴트와 로컬 EDA 툴체인 간의 가교 역할을 하여 자연어 상호 작용을 통해 정교한 하드웨어 설계 워크플로우를 가능하게 합니다.
인용
@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},
}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