(C) by T.IZUMI, Sep.2025 - 無断複製・再配布を禁ず。リンクは歓迎。
Ver. 2025.11.05.a


組込みシステム開発トレーニング課題

Xilinx Zynq による周辺回路とプログラムの連携 Vitis 2025.1版

学習項目

前提とする学習項目

ターゲットボード

ボードの見分け方: 表面にZ7と書いていないのが旧ZYBO。 発光ダイオードLD4,LD5とコネクタJ14が搭載されているのが Z7-20。 発光ダイオードLD4だけでLD5とコネクタJ14が搭載されていないのが Z7-10。 リビジョン記号(Rev.)は裏面バーコードシールの傍に記載。

開発環境

Vitis IDE が2025にかなりリニューアルされ、 2024以前と2025以降では様子がかなり異なる。 2024以前は こちら または こちら を参照ください。

その他の使用ツール

演習用ファイル

発展

この課題終了後には次の課題を推奨する。


0. 概要

この演習では Zynq の Programmable Logic (PL) と Processing System (PS) を memory mapped I/O 経由で連携させる。 PS側に接続されたボタン(MIO50,51)の操作でPL側に接続されたLED(LD0~3)を変化させ、 またPL側に接続されたボタン(BTN0~3)の操作でPL側に接続されたLED(MIO7)を変化させる。 このPS⇔PLの情報の伝達を実機で動作確認する。

そのために、まずハードウェア設計ツール Vivado で Zynq 内全体のシステム構成を設計し、 Programmable Logic 上の回路を記述・コンパイルする。 次にソフトウェア開発ツール Vitis IDE でソフトウェアプログラムを記述・コンパイルする。 最後に設計した回路構成およびプログラムをZynqに転送して実行し、動作を確認する。 全体の流れは次のようなものである。


以下、特に指定の無い項目は規定値(デフォルト、最初から入っている値)を設定する。

1-1. プロジェクトの生成(Vivado)

1-1-1. プロジェクト生成

1-1-2. 画面の確認

1-1-3. ソースファイルの登録


1-2. Vivado IP Integrator によるシステム構築 (Vivado)

1-2-1. Block Design の生成と登録

1-2-2. Zynq PS(ARM) の配置と設定

1-2-3. 基本モジュールの配置

1-2-4. プロセッサのクロック、リセットを出力

1-2-5. GPIO の設定

ポイント: このブロックデザインを組み込む Verilog 記述と入出力信号名を一致させる。 Zybo_top.vZynq_PS のインスタンス化の部分を確認すること。

1-2-6. アドレス空間の設定

1-2-7. システム生成


1-3. ロジックのコンパイル (Vivado)


1-4. 動作確認 (Vivado)

このサンプルは部分的にハードウェアのみで(ソフトウェア実行なしでも)動作する。 この段階でハードウェア部分の動作を確認する。

1-4-1. ボードの接続

1-4-2. 回路の書き込み

1-4-3. 実行

1-4-4. 理解のために


1-5. プロセッサシステム情報のエクスポート (Vivado)

ソフトウェア開発には、その前提となるプロセッサシステム(プロセッサ、 インターフェースや周辺のハードウェア)の情報が必要である。 ソフトウェア開発ツールのためにそれら設定情報をエクスポートする。


2-1. ソフトウェア開発プロジェクトの設定 (Vitis IDE)

Vitis IDE 上のソフトウェア開発環境をセットアップする。

2-1-1. Vitis IDE の起動

2-1-2. 作業フォルダの設定

2-1-3. ハードウェア環境の生成


2-2. ソフトウェアの動作確認(Hello World) (Vitis IDE)

2-2-1. サンプル アプリケーション環境の生成

2-2-2. プログラムのビルド

2-2-3. ZYBO と PC の接続

2-2-4. ZYBOシリアルコンソールのUART接続

2-2-5. 実行

2-2-6. 理解のために


2-3. PSとPLの連携動作確認 (Vitis IDE)

2-3-1. アプリケーション環境の生成

2-3-2. ソースコードの登録

2-3-3. プログラムのビルド

2-3-4. 実行