mcp4eda

Uma coleção de servidores MCP para fluxos de trabalho de Automação de Projeto Eletrônico (EDA), incluindo ferramentas para cálculo de rendimento de die e análise de Verilog/SystemVerilog.

Documentação

mcp4eda - Servidores MCP para Automação de Design Eletrônico

Uma coleção abrangente de servidores Model Context Protocol (MCP) projetados para aprimorar fluxos de trabalho de EDA no Claude Desktop e outros clientes compatíveis com MCP.

🚀 Servidores MCP Disponíveis (8 no total)

1. Servidor MCP Yosys

Finalidade: Síntese e otimização de design para circuitos digitais
Localização: yosys-mcp/

Recursos:

  • Sintetizar Verilog/SystemVerilog para netlists em nível de portas
  • Suporte a múltiplos alvos FPGA (Xilinx, Intel/Altera, Lattice)
  • Análise de design (hierarquia, recursos, estatísticas)
  • Geração de visualização de circuitos
  • Cache inteligente para desempenho

Ferramentas:

  • yosys_synth - Síntese com múltiplos formatos de saída
  • yosys_analyze - Análise de design e estatísticas
  • yosys_show - Gerar diagramas visuais de circuitos

Documentação completa →

2. Servidor MCP Verilator

Finalidade: Simulação e verificação RTL de alto desempenho
Localização: verilator-mcp/

Recursos:

  • Simulação rápida de Verilog/SystemVerilog
  • Geração automática de testbenches
  • Interface de depuração em linguagem natural
  • Coleta e análise de cobertura
  • Suporte à geração de formas de onda

Ferramentas:

  • verilator_compile - Compilar designs para C++
  • verilator_simulate - Executar simulações com testbench automático
  • verilator_testbenchgenerator - Criação inteligente de testbenches
  • verilator_naturallanguage - Consultas em linguagem natural

Documentação completa →

3. Servidor MCP Verible

Finalidade: Linting, formatação e análise de SystemVerilog/Verilog
Localização: verible-mcp/

Recursos:

  • Linting abrangente de estilo com correção automática
  • Formatação de código com regras personalizáveis
  • Análise e visualização de árvore sintática
  • Análise de registradores e módulos
  • Análise de dependências em nível de projeto
  • Interface em linguagem natural

Ferramentas:

  • verible_lint - Verificação e correções de estilo
  • verible_format - Formatação de código
  • verible_syntax - Análise de AST
  • verible_analyze - Análise de design
  • verible_natural_language - Consultas em linguagem natural

Documentação completa →

4. Servidor MCP GTKWave

Finalidade: Visualização de formas de onda e automação de análise
Localização: gtkwave-mcp/

Recursos:

  • Visualização programática de formas de onda
  • Conversão de formatos (VCD, FST, LXT2)
  • Extração de hierarquia de sinais
  • Análise de temporização e medições
  • Geração de capturas de tela
  • Geração de scripts TCL

Ferramentas:

  • gtkwave_open - Abrir formas de onda com configurações
  • gtkwave_convert - Converter entre formatos
  • gtkwave_extract_signals - Extrair hierarquias de sinais
  • gtkwave_analyze_timing - Medições de temporização
  • gtkwave_capture_screenshot - Gerar imagens de formas de onda

Documentação completa →

5. Servidor MCP KLayout

Finalidade: Visualização, edição e análise de layout de CI
Localização: klayout-mcp/

Recursos:

  • Suporte a múltiplos formatos (GDS, OASIS, DXF, CIF, MAG, DEF/LEF)
  • Verificação de Regras de Design (DRC) com motor poderoso
  • Extração e manipulação de camadas
  • Conversão de formatos com dimensionamento
  • Scripts personalizados em Python/Ruby
  • Interface em linguagem natural
  • Biblioteca rica de recursos

Ferramentas:

  • klayout_layout_info - Analisar arquivos de layout
  • klayout_convert_layout - Conversão de formatos
  • klayout_run_drc - Verificação de regras de design
  • klayout_extract_layers - Extração de camadas
  • klayout_execute_script - Scripts personalizados
  • klayout_natural_language - Consultas em linguagem natural

Documentação completa →

6. Servidor MCP AnySilicon

Finalidade: Cálculos de fabricação de semicondutores
Localização: anysilicon/

Recursos:

  • Cálculos de dies por wafer
  • Suporte a múltiplos tamanhos de wafer (150mm-450mm)
  • Parâmetros de exclusão de borda e linhas de scribe
  • Integração com a calculadora web da AnySilicon
  • Suporte à estimativa de rendimento

Ferramentas:

  • calculate_die_per_wafer - Calcular rendimento de dies
  • validate_parameters - Validar parâmetros de entrada
  • get_standard_wafer_sizes - Obter padrões de wafer

Documentação completa →

7. MCP de Cadeia de Suprimentos de Semicondutores

Finalidade: Inteligência de aquisição de núcleos IP e serviços ASIC
Localização: semiconductor-supply-chain-mcp/

Recursos:

  • Encontrar fornecedores de IP por categoria e tecnologia
  • Localizar serviços de design e fabricação ASIC
  • Estimativa de preços para serviços de semicondutores
  • Comparação entre múltiplos fornecedores
  • Consultas em linguagem natural para buscas complexas

Ferramentas:

  • find_ip_vendors - Pesquisar fornecedores de núcleos IP
  • find_asic_services - Encontrar serviços ASIC
  • get_price_estimation - Estimar custos
  • compare_vendors - Comparar múltiplos fornecedores
  • natural_language_query - Interface em linguagem natural

Documentação completa →

8. Servidor MCP OpenLane

Finalidade: Automação completa do fluxo RTL para GDSII
Localização: openlane-mcp/

Recursos:

  • Fluxo completo de RTL para GDSII usando OpenLane
  • Execução baseada em contêineres (Docker/Podman)
  • Controle individual de etapas (síntese, posicionamento, roteamento)
  • Gerenciamento e configuração de PDK
  • Interface em linguagem natural para fluxos complexos

Ferramentas:

  • openlane_run_flow - Fluxo completo de RTL para GDSII
  • openlane_run_synthesis - Síntese lógica
  • openlane_run_floorplan - Planejamento do piso e posicionamento de I/O
  • openlane_run_placement - Posicionamento de células padrão
  • openlane_run_cts - Síntese da árvore de clock
  • openlane_run_routing - Roteamento global e detalhado
  • openlane_natural_language - Interface em linguagem natural

Documentação completa →

🌟 Suporte a Linguagem Natural

Todos os 8 servidores MCP agora incluem interfaces abrangentes em linguagem natural, permitindo que você interaja com ferramentas EDA usando comandos simples em inglês:

"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 o Guia de Suporte a Linguagem Natural para exemplos e padrões abrangentes.

📋 Pré-requisitos

  • Node.js 18+ e npm
  • Aplicativo Claude Desktop
  • Ferramentas EDA (conforme necessário):
    • Yosys (para síntese)
    • Verilator (para simulação)
    • Verible (para linting)
    • GTKWave (para formas de onda)
    • KLayout (para visualização de layout)

🔧 Instalação Rápida

1. Clonar o Repositório

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

2. Instalar Todos os 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 o Claude Desktop

Adicione à configuração do seu 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

Exemplo de configuração para todos os 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"
      }
    }
  }
}

🎯 Exemplos de Uso

Fluxo Completo de RTL para 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]

Fluxo de Design 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]

🔍 Solução de Problemas

Visualizar Logs (macOS)

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

Problemas Comuns

  1. Servidor desconectado: Verifique a instalação das ferramentas e os caminhos
  2. Ferramenta não encontrada: Reinicie o Claude Desktop após alterações na configuração
  3. Erros de permissão: Garanta que as ferramentas tenham permissões de execução
  4. Falhas de compilação: Verifique a versão do Node.js (requer 18+)

Verificar Instalação

# 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

🚧 Roteiro

Em Breve

  • Magic MCP: Integração com editor de layout
  • OpenROAD MCP: Fluxo completo de RTL para GDS
  • ngspice MCP: Simulação de circuitos
  • Icarus MCP: Simulador Verilog alternativo

Recursos Futuros

  • Automação de fluxos de trabalho entre ferramentas
  • Síntese e simulação em nuvem
  • Modelos e assistentes de projeto
  • Integração CI/CD para hardware

🤝 Contribuindo

Aceitamos contribuições! Por favor:

  1. Faça um fork do repositório
  2. Crie um branch de recurso (git checkout -b feature/NewMCP)
  3. Implemente seu servidor MCP seguindo os padrões existentes
  4. Adicione documentação abrangente
  5. Envie um pull request

Consulte CONTRIBUTING.md para diretrizes detalhadas.

📄 Licença

Licença MIT - consulte os diretórios individuais dos projetos para licenças específicas.

🔗 Links

🌟 Histórico de Estrelas

Se você achar estas ferramentas úteis, por favor, dê uma estrela no repositório para ajudar outras pessoas a descobri-lo!


Feito com ❤️ para a comunidade EDA