fpga について
fpgaは、VivadoとSystemVerilogを使うFPGA設計者向けの開発スキルです。モジュール設計、タイミングとリソースの最適化、電力管理、シミュレーション、デバッグを扱います。
主な機能
- 01モジュール型ハードウェア設計
- 02クロックドメイン間の同期技術
- 03タイミング制約とクロージャ
- 04ロジックとリソースの最適化
- 05電力最適化
- 06シミュレーションと信号デバッグ
活用シーン
- 01再利用可能なFPGAモジュールの構成
- 02タイミング違反の調査
- 03リソース使用量や電力の削減
- 04テストベンチとILAによる設計検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mindrally/ skills --skill fpgaインストール後、Claude Code で/fpgaを入力して読み込まれたか確認します。
詳細
FPGA 開発
Vivado、SystemVerilog、ハードウェア設計の最適化に精通した FPGA 開発のエキスパートです。
モジュール設計とコード構成
- 読みやすさとテストのしやすさを高めるため、設計を小さく再利用可能なモジュールに分割します
- 最上位の設計モジュールから始め、段階的にサブモジュールへ分割します
- 明確なインターフェースを実現するため、SystemVerilog のインターフェースブロックを使用します
- モジュール間で一貫した命名規則を維持します
同期設計の原則
- タイミング解析を簡素化するため、単一のクロックドメインを優先します
- 予測可能な動作を確保するため、非同期リセットより同期リセットを優先します
- 合成時のタイミングハザードを避けます
- 複数のクロックが必要な場合は、適切なクロックドメインクロッシング(CDC)技術を使用します
タイミング収束と制約
- XDC ファイルを使用して、早い段階でタイミング制約を設定します
- 静的タイミング解析レポートを定期的に確認します
- Vivado のタイミングレポートを使用して、クリティカルなタイミングパスを特定します
- パイプライン段の追加やロジックの最適化によって、違反に対処します
- 適切な場合は、マルチサイクルパス制約を使用します
リソース使用量と最適化
- 効率的な SystemVerilog によって、LUT、フリップフロップ、ブロック RAM を最適化します
- Vivado の組み込み IP コア(AXI インターフェース、DSP ブロック、メモリコントローラー)を活用します
- 設計の優先事項に応じて、適切な合成ストラテジーを選択します
- RAM 推論には
reg []を使用し、レジスターの使用量を最小限に抑えます - 要件に応じて、面積と速度の最適化のバランスを取ります
電力の最適化
- クロックゲーティングを実装して、ダイナミック電力消費を削減します
- Vivado の電力を考慮した合成を使用します
- 低電力アプリケーション向けに電力制約を設定します
- クリティカルでないパスのスイッチング動作を最小限に抑えます
デバッグとシミュレーション
- 典型的なユースケースとエッジケースを網羅する、詳細な自己検証型テストベンチを作成します
- 検証には SystemVerilog アサーションを使用します
- ビヘイビアルシミュレーションと合成後シミュレーションを実行します
- リアルタイムの信号デバッグには、Integrated Logic Analyzer(ILA)を使用します
- プロトコル違反を検出するため、アサーションベースの検証を実装します
高度な技術
クロックドメインクロッシング
- CDC を安全に処理するため、シンクロナイザーまたは FIFO を使用します
- 適切なハンドシェイクプロトコルを実装します
AXI プロトコルへの準拠
- 適切な読み取り/書き込みチャネル管理とハンドシェイクを確保します
- 適切なバーストサイズを設定して、高スループット向けに最適化します
DMA の統合
- 最大スループットを実現するバースト転送を設定します
- バッファーを効率的に管理します
レイテンシの削減
- 最適化したパイプライン段を適切に実装します
- レイテンシとスループットの要件のバランスを取ります
コメント
Markdown 対応