01 はじめに
前提
- Linux x86_64
- podman (推奨) または docker
- Vivado 2025.2 がホストにインストール済み — 既定の
mountモードの場合 - ライセンス (浮動 / ノードロックいずれか)
ホストに Vivado をインストールしない場合は、
03 イメージ構築 の image モードを参照する。
1. 取り込む
サブモジュールとして取り込む場合 (推奨。バージョンが commit で固定される):
git submodule add https://github.com/sabas0ba/vivado-container-suite.git tools/vvd
git config --local submodule.recurse true
ln -s tools/vvd/bin/vvd vvd
単体で clone する場合:
git clone https://github.com/sabas0ba/vivado-container-suite.git ~/src/vvd
export PATH="$HOME/src/vvd/bin:$PATH" # ~/.bashrc などに追記
2. イメージを構築する
vvd build
Ubuntu 24.04 の固定スナップショットから、Vivado の実行に必要な共有ライブラリ一式を 含むイメージを構築する。サイズは約 1.5 GB、初回の所要時間は 2〜5 分である。Vivado 本体は含まれず、実行時にホストから read-only で mount される。
3. 環境を確認する
vvd doctor
ホスト、コンテナエンジン、イメージ、Vivado の所在、ライセンス、ディスプレイ、JTAG、
ピン留めを一括で検査する。FAIL の項目には対処方法が併記される。
vvd doctor --deep # コンテナを起動し、内部の状態も検査する
4. プロジェクトを設定する
プロジェクトのルートに vvd.conf を配置する。vvd はカレントディレクトリから
親を遡って vvd.conf を探索するため、サブディレクトリからでも実行できる。
VVD_PART=xc7a35ticsg324-1L
VVD_TOP=blinky
VVD_SOURCES=rtl/*.v
VVD_CONSTRAINTS=constr/*.xdc
VVD_SIM_TOP=tb_blinky
VVD_SIM_SOURCES=sim/*.v
ライセンスサーバのアドレスや Vivado のインストール先といったマシン固有の値は、
vvd.local.conf (.gitignore 済み) または環境変数で指定する。
# vvd.local.conf
VVD_LICENSE=2100@license.example.com
VVD_XILINX_ROOT=/opt/Xilinx
全キーの一覧は 02 設定 にある。
5. 動かす
vvd sim # シミュレーション。ライセンス不要のため最初の確認に適する
vvd synth # 合成
vvd impl # 配置配線 (必要に応じて合成も実行する)
vvd bitstream # ビットストリーム生成
vvd flow # 上記 3 段階を 1 回の Vivado 起動で実行
vvd program # JTAG 書き込み
生成物は build/ 以下に出力される。
build/
├── post_synth.dcp 合成後チェックポイント
├── post_route.dcp 配置配線後チェックポイント
├── blinky.bit ビットストリーム
├── reports/ 利用率・タイミング・DRC・電力
├── logs/ Vivado のログ
└── sim/ 波形 (.wdb) と xsim の作業ディレクトリ
6. 対話的に使う
vvd tcl # Vivado Tcl コンソール
vvd gui # Vivado IDE
vvd gui build/post_route.dcp # チェックポイントを開く
vvd shell # Vivado を PATH に追加した bash
サンプル
同梱の examples/blinky はそのまま実行できる。
vvd -C examples/blinky sim
vvd -C examples/blinky flow