Vivado FPGA 開発スキル集(FPGA-Agent-skills)

Tool

概要

本リポジトリは「Vivado FPGA Development Skills」をテーマに、AMD(Xilinx)Vivado 2025.2 を想定した FPGA 開発フロー(RTL → 合成 → 約束(constraints)→ 実装 → 時間解析 → プログラミング/デバッグ)を公式ユーザーガイド(UG)に準拠して分解し、7つの Skill に整理した教材的リポジトリです。各 Skill は合成戦略、約束の定義、実装(placement/route)の最適化、時序解析の読み方、ILA/VIO 等を用いたデバッグ、TCL による自動化という実務で必要な項目をカバーします。Verilog を主言語に、Vivado 固有の属性(RAM_STYLE、USE_DSP、SHREG など)や OOC(Out-of-context)合成・増分合成の扱い、RTL Lint による設計品質チェックを含む点が特徴です。

GitHub

リポジトリの統計情報

  • スター数: 6
  • フォーク数: 1
  • ウォッチャー数: 6
  • コミット数: 3
  • ファイル数: 9
  • メインの言語: Verilog

主な特徴

  • Vivado の公式 UG(例:UG901/UG903 等)に基づいた実務的ノウハウを 7 つの Skill に分割して解説。
  • 合成(synth)・約束(constraints)・実装(impl)・時序解析(analysis)・デバッグ(debug)といった全工程をカバー。
  • RAM_STYLE、USE_DSP、SHREG 等の属性設定や FSM エンコーディング、OOC/Incremental 合成など、性能・リソース推論に関する具体的指針を提示。
  • シミュレーションと TCL 自動化をワークフロー全体に贯通させる設計思想を採用。

技術的なポイント

本リポジトリの注目点は「公式ドキュメントに基づき、Vivado の挙動とトレードオフを実務視点で整理している」点です。特に合成(vivado-synth)に関しては、合成戦略(area vs. speed)、PBlock による論理の領域制限、属性による推論制御(RAM_STYLE で Block RAM と LUTRAM の選択、USE_DSP で乗算器の割当制御、SHREG 属性でFF をロジックシフトレジスタに変換させる挙動の制御)を明示しています。これにより、同一の RTL でもリソース利用やクロック周波数に大きな差が出る理由を理解しやすくしています。

約束(vivado-constraints)では XDC(Xilinx Design Constraints)ファイルの書き方とその意味、IOSTANDARD/LOC/IBUF/OBUF 設定、クロック定義(create_clock)、タイミング例外(set_false_path、set_multicycle_path)やクロックグループ間の isolation を使った意図的なタイミング緩和などを取り扱います。これらはタイミング解析(vivado-analysis)と密接に関連し、誤った約束は過剰なスラック不足や不必要な最適化抑制を招くため、正しい解釈が重要です。

実装(vivado-impl)段階では配置制約(PBlocks、BEL/LOC)やヒント(keep、dont_touch)、物理合成の影響、OOC(Out-Of-Context)合成や増分合成を使った回帰時間短縮の実践的手法に触れています。時序解析では report_timing の読み解き方、パス毎の遅延源分解(logic/route/clock)やクロック・ツリーの影響評価、STA(Static Timing Analysis)の前提条件とクロック制約の整合性チェックが解説対象です。

デバッグ面では Vivado の ILA/VIO 等を用いたインアクリア観測、波形取得手法、bitstream 生成時の checkpoints 管理、そして TCL を使ったフローの自動化(スクリプトによる合成/実装/レポート収集)についても実例を通じて説明しています。RTL Linting やコードスタイル改善の観点も含め、単にツール操作を追うだけでなく「なぜその設定が必要か」を重視している点が実務者にとって有益です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • LICENSE: file
  • README.md: file
  • vivado-analysis: dir
  • vivado-constraints: dir
  • vivado-debug: dir

…他 4 ファイル

各ディレクトリは対応する Skill(synth / constraints / impl / analysis / debug 等)に対応するサンプルや TCL、XDC、簡易 Verilog モジュールが格納されている想定です。トップレベル README は 7 つの Skill を一覧化しており、それぞれに UG ドキュメントの参照と実践的なチェックポイント(例:属性選定、増分合成の適用タイミング、タイミング例外の使用基準)をまとめています。

まとめ

Vivado の公式知見を実務的に整理した学習リポジトリ。設計→合成→実装→解析→デバッグの流れを学びたい FPGA エンジニアに有用。

リポジトリ情報:

READMEの抜粋:

Vivado FPGA Development Skills

7 个 skill 覆盖 AMD Vivado 2025.2 FPGA 开发全流程(RTL → Bitstream),基于官方 UG 文档构建。

FPGA 开发流程对应

RTL设计 ──→ 综合 ──→ 约束 ──→ 实现 ──→ 时序分析 ──→ 编程调试
             synth   constraints  impl    analysis     debug

仿真验证(贯穿全流程)sim
TCL自动化(贯穿全流程)tcl

Skill 一览

Skill文档来源定位核心内容
vivado-synthUG901综合决策综合策略/指令选择、属性配置(RAM_STYLE/USE_DSP/SHREG等)、资源推断控制、FSM编码、OOC综合、增量综合、RTL Linting
vivado-constraintsUG903