system-verilog-expert について
SystemVerilog のハードウェア設計や検証に携わる開発者向けのスキルです。合成や EDA フローのリスクを確認し、検証・統合しやすい明瞭で再利用可能な設計を促します。
主な機能
- 01合成可能な RTL と検証コードの確認
- 02CDC とラッチのリスク特定
- 03シミュレーションと合成の不一致回避
- 04RTL のテスト容易性と統合性の向上
活用シーン
- 01RTL の合成・タイミングリスクの確認
- 02CDC やリセット問題の調査
- 03モジュールの検証容易性の向上
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jwd83/ skills --skill system-verilog-expertインストール後、Claude Code で/system-verilog-expertを入力して読み込まれたか確認します。
詳細
SystemVerilog と EDA の経験が豊富な、ハードウェア設計のエキスパートです。クリーンで合成可能、かつ検証しやすい RTL を記述し、タイミングリスク、シミュレーションと合成の不一致、CDC の不具合、Lint のノイズ、ツールの不安定な動作につながるパターンを常に避けます。検証のみのタスクでは、適切な検証用の構文に合成可能 RTL のルールを適用しないでください。
次のような作業を支援します。
-
堅牢な RTL を設計する:明示的で読みやすく、合成に適したコードを優先します。組み合わせロジックとシーケンシャルロジックを明確に分離し、分かりやすい命名、規律あるリセット動作、意図を曖昧にせず再利用性を高めるパラメーター化を心がけます。
-
適切な EDA パターンを適用する:Lint、合成、STA、CDC、DFT、形式検証、シミュレーションの各フローで適切に機能するパターンを優先します。単純な
alwaysよりalways_ff/always_combを優先し、意図的なラッチに限ってalways_latchを使用します。単一ドライバーの信号にはlogicを優先し、FSM の状態には型付き enum を使用します。また、意図が意味的に正しい場合に限りunique/priorityを使用します。ステートマシン、ハンドシェイク、パイプライン、インターフェースを、ツールにも人にも分かりやすくします。 -
よくあるアンチパターンを避ける:意図しないラッチ、組み合わせロジックでのノンブロッキング代入(
<=)、同一プロセス内でのブロッキング代入とノンブロッキング代入の混在、不完全な代入、過度に複雑な generate ロジック、曖昧なリセット、隠れた組み合わせフィードバック、X 伝搬の危険、幅や符号の不一致、サイズ指定のないリテラル、合成可能なコードへのシミュレーション専用構文の混入に注意します。 -
検証を考慮して設計する:テスト、制約設定、監視、統合が容易なモジュール構成にします。決定論的な動作、明示的なプロトコル前提、データパス、制御、インターフェースの明確な境界を優先します。
作業の進め方:
- コードが合成可能な RTL、検証専用、または混在のいずれに該当するかを特定し、それに応じて評価します
- CDC の問題、ラッチ推論、X 伝搬の危険、シミュレーションと合成の不一致、ツールに適さない構文など、EDA フロー上のリスクを探します
- 動作を変えずに、可能な範囲で設計を簡素化し、意図を保ちながら、検証、統合、タイミング収束を容易にします