Verilog MCP Server について
Verilog MCP Server は Claude Code を使うハードウェア設計者向けの Verilog/SystemVerilog 開発ツールです。テストベンチや UVM のひな型生成と、ヒューリスティックな RTL lint を行います。
主な機能
- 01テストベンチのひな型を生成
- 02ヒューリスティックな RTL lint
- 03UVM 検証環境を生成
- 04クロックとリセットのポートを検出
- 05ラッチや幅の一般的なリスクを報告
活用シーン
- 01モジュール宣言からテストベンチを作成
- 02シミュレーション前に RTL の一般的な問題を確認
- 03UVM 検証環境を構築
MCP 対応
この MCP サーバーは、テストベンチ生成、RTL lint、UVM 環境生成の 3 つのツールを Claude Code に提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Verilog MCP サーバー

Claude Code 向けの AI 搭載 Verilog / SystemVerilog 開発ツールです。テストベンチの生成、RTL コードのリント、UVM 検証環境のひな形作成を、すべてエディター内で行えます。
ステータス: v0.3.0 — 3 つのツールを Claude Code でエンドツーエンド検証済みです。
理由
チップ設計の EDA ツールは数十年前から使われています。AI 支援によるハードウェア開発は、まだ開拓されていない分野です。この MCP サーバーは、Verilog / SystemVerilog のコード生成とリントを Claude Code に直接提供するため、次のことができます。
- モジュール宣言からテストベンチのボイラープレートを数秒で生成できます
- シミュレーション前に、よくある RTL のバグ(リセットの欠落、ラッチの推論、default のない case)を検出できます
- 適切なクロッキングブロック、シーケンサー、スコアボードを備えた完全な UVM 検証環境のひな形を作成できます
ツール
| ツール | 説明 |
|---|---|
generate_testbench | モジュール定義から Verilog テストベンチのスケルトンを生成します |
check_lint | 静的リントチェック:リセットの欠落、case-default、ラッチのリスク、幅の不一致 |
generate_uvm_env | 10 個のコンポーネントからなる UVM 検証環境を生成します |
generate_testbench
入力:Verilog モジュール。出力:クロック生成、リセットシーケンス、DUT インスタンス化、$dumpfile / $dumpvars、カスタムテスト刺激用の TODO プレースホルダーを含む完全なテストベンチです。
- クロックポートとリセットポートを自動検出します
- アクティブローのリセット(
rst_n接尾辞)に対応します - 新しいスタイル(
input clk, input rst_n)と古いスタイル(input clk, rst_n)の両方のポート宣言に対応します - デフォルトのクロックは 100MHz(周期 10ns)です
check_lint
4 種類のチェックを行います。
- リセットのないシーケンシャル always ブロック — 警告
- default のない case/casez/casex — 問題(ラッチ/X 状態)
- 組み合わせ always ブロック内の不完全な if 代入 — 警告(ラッチ推論のリスク)
- 幅の不一致に関するヒューリスティック — 情報
generate_uvm_env
// ===== FILE: filename.sv ===== マーカーで区切られた 10 個の UVM コンポーネントファイルを生成します。
interface → transaction → sequence → driver → monitor → agent → scoreboard → environment → test → top
- 適切な
drv_cb(出力のみのクロッキングブロック)とmon_cb(入力のみ)の設計 - monitor から scoreboard への通信に
uvm_analysis_portを使用します - アクティブ/パッシブのエージェントモードに対応します
- scoreboard と制約に TODO プレースホルダーを含みます
インストール
# 1. Clone
git clone https://github.com/kaiwenyu147369/verilog-mcp-server.git
cd verilog-mcp-server
# 2. Create virtual environment
python -m venv venv
# 3. Activate & install
# Windows:
venv\Scripts\activate
# macOS / Linux:
source venv/bin/activate
pip install mcp
Claude Code での使用方法
ワークスペースの .mcp.json に追加します。
{
"mcpServers": {
"verilog-mcp-server": {
"command": "C:\\path\\to\\venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\verilog-mcp-server\\server.py"]
}
}
}
次に、Claude Code の設定(~/.claude/settings.json)に追加します。
{
"enableAllProjectMcpServers": true,
"enabledMcpjsonServers": ["verilog-mcp-server"]
}
VSCode を再起動すると、ツールが Claude Code に表示されます。
クイックテスト
# Activate venv first, then:
python test_uvm.py
python test_v2.py
技術スタック
- Python MCP SDK 1.27.1 —
@server.list_tools()+@server.call_tool()(2 デコレーター API) - stdio JSON-RPC — Claude Code は stdin/stdout 経由で通信します
- 正規表現ベースの解析 — SystemVerilog コンパイラーへの依存はありません
既知の制限事項
- ポートパーサーは完全な SystemVerilog トークナイザーではなく、正規表現を使用しています。複雑なパラメーター化ポート内の深くネストされた括弧は、正しく解析できない場合があります
- UVM Scoreboard の比較ロジックは TODO プレースホルダーです
- リントチェックはヒューリスティックであり、完全なエラボレーションや型システムは備えていません
- ポート解析では interface / struct / modport をサポートしていません
ロードマップ
- v0.4.0 — 4 つ目のツール(
generate_assertionsまたはanalyze_waveform) - ポートパーサーをシンプルなトークナイザーにアップグレード
- リントルールの追加(ブロッキング/ノンブロッキング代入チェック、符号付き/符号なしの警告)
- UVM Scoreboard の自動比較ロジック
- マルチファイルプロジェクトのサポート
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。