nl2tcl mcp
MCP(模型上下文协议)服务器,将Yosys合成和iverilog仿真工具暴露给Claude Code。
概述
此MCP服务器允许Claude Code直接执行FPGA设计工作流程:
- 合成 使用Yosys为iCE40、ECP5和其他FPGA进行Verilog设计
- 模拟 使用iverilog/vvp进行试验台设计
- 验证 TCL在执行前发出安全命令
- 探索 可用设计文件
不像 nl2tcl 该MCP服务器使用Ollama进行自然语言处理,让Claude Code充当“大脑”——直接生成TCL命令并调用工具执行它们。
安装
先决条件
# Install FPGA tools (Ubuntu/Debian)
sudo apt install yosys iverilog
# Verify installation
yosys -V
iverilog -V安装MCP服务器
# Clone the repository
git clone https://github.com/collinsoik/nl2tcl-mcp.git
cd nl2tcl-mcp
# Install Python dependencies
pip install "mcp[cli]"添加到克劳德代码
# Add the MCP server to Claude Code
claude mcp add fpga-tools --transport stdio -- python /path/to/nl2tcl-mcp/server.py
# Or for project-specific installation
claude mcp add fpga-tools --transport stdio --scope project -- python /path/to/nl2tcl-mcp/server.py可用工具
Yosys工具
| 工具 | 说明 |
|---|---|
yosys_run_tcl | 在Yosys中执行任意TCL命令 |
yosys_synthesize | 综合目标FPGA(ice40、ecp5等)的设计 |
yosys_read_and_stat | 阅读设计并显示统计数据,无需综合 |
仿真工具
| 工具 | 说明 |
|---|---|
sim_compile | 使用iverilog编译Verilog文件 |
sim_run | 使用testbench编译并运行完整的模拟 |
实用工具
| 工具 | 说明 |
|---|---|
tcl_validate | 验证TCL命令的安全性 |
list_designs | 列出目录中可用的Verilog文件 |
check_tools | 检查是否安装了yosys/iverilog |
资源
| 资源 | 描述 |
|---|---|
fpga://designs | 可用设计文件列表 |
fpga://design/{name} | 读取设计文件的内容 |
fpga://tools | 已安装FPGA工具的状态 |
使用示例
一旦MCP服务器连接到Claude Code,您就可以:
综合设计
> Synthesize designs/blinky.v for iCE40 and show resource usage
Claude calls: yosys_synthesize(design_file="designs/blinky.v", target="ice40")运行模拟
> Run the testbench for my blinky design
Claude calls: sim_run(design_file="designs/blinky.v", testbench="designs/blinky_tb.v")执行自定义TCL
> Execute this Yosys TCL: read_verilog alu.v; synth; stat
Claude calls: yosys_run_tcl(tcl_commands="read_verilog alu.v; synth; stat")检查可用设计
> What Verilog files are available?
Claude calls: list_designs()项目结构
nl2tcl-mcp/
├── server.py # Main MCP server
├── utils/
│ ├── tcl_validator.py # TCL safety validation
│ ├── yosys_parser.py # Parse Yosys output
│ └── sim_parser.py # Parse simulation results
├── designs/ # Example Verilog designs
│ ├── blinky.v
│ └── blinky_tb.v
├── output/ # Generated outputs
│ ├── sim/ # Simulation VCD files
│ └── synth/ # Synthesis JSON netlists
├── pyproject.toml
└── README.md安全
服务器包括阻止危险模式的TCL验证:
- Shell命令(
exec、管道、回扣) - 文件操作(
open,file delete) - 外部脚本来源
只允许使用已知的安全Yosys命令。
相关项目
- nl2tcl -使用Ollama的TCL管道自然语言(开源LLM版本)
- Yosys -开源综合套件
- 伊卡洛斯Verilog -开源Verilog模拟器
许可证
麻省理工学院
