立命館大学 大学院 講義資料   (C) by T.IZUMI @ Ritsumeikan U, Sep 2016 - 無断複製・再配布を禁ず


プログラマブルロジックとプロセッサの連携


ターゲットボードとFPGA

開発環境

実行環境

演習用ファイル


0. 概要


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

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

1-2. 画面の確認

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


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

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

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

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

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

2-5. GPIO の設定

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

2-7. システム生成


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


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

ソフトウェア開発のためにプロセッサシステムの情報をエクスポートする。

5. ソフトウェア開発プロジェクトの設定(SDK)

Xilinx SDK 上でのソフトウェア開発環境をセットアップする。

SDK の起動

プロジェクトの生成


6. ソフトウェアの動作確認(Hello World)(SDK)

ZYBO と PC の接続

ZYBOシリアルコンソールのUART接続

FPGAの書き込み

コンパイル

実行


7. PSとPLの連携動作確認(SDK)

7-1. ソースコードの登録

7-2. コンパイルと実行(SDK)


8. 不揮発メモリからの起動(SDK)

上記では、開発用PCから直接JTAG経由でFPGAに書き込んだ(下図(1)の方法)。 頻繁に書き換える開発途中や 状態を設定・観測するデバッグ中はこの方法が便利である。 しかし、最終的には開発用PCに接続せず、機器が単独で起動しなければならない。 ここでは、 micro SD card から起動する方法(下図(3)の方法)と ボード上の QSPI flash memory から起動する方法(下図(2)の方法)を 実行する。

起動ファイルの作成(SDK)

まず、起動のためのファイルを作成する。SDK上で作業する。

micro SD card からの起動

QSPI flash memoryからの起動


99. その他

Verilog デバグ〜埋もれたタイプミスを見つける

Verilog では、信号を宣言せずに使用してもよい。 なので、タイプミスをしてもエラーにならない。 そのようなバグを見つけるためには、 Messages から次の Warning を検索して確認するとよい。

Verilog デバグ〜埋もれたタイプミスを見つける〜その2

Verilog では、信号を宣言せずに使用してもよい。 なので、タイプミスをしてもエラーにならない。 Verilog code中に `default_nettype none を明示するとエラーにしてくれる。 ただしinput, output, inout の信号もすべて wire, regの宣言をしなければならない。 ライブラリやIPのコードでエラーが出ると逆に困るので 自コード終了時に `default_nettype wire と改めて宣言する。

Zynq のクロックについて

クロック信号やリセット信号をPS側から供給する場合、 PSが動作していないとPLも動作しない。 いったんプログラムを起動する(Run As, Hardware)とPLも動作する。

Zynq の実機での再実行について

実行中のプログラムが残っている(直前のmain()が終了していない)と 再実行がうまくいかないようだ。まず終了させてから次の作業に入ること。 再実行うまくいかないとき、経験的に成功率の高い対処方法は…

Zynq の実機デバッグ時の実行

PL側に回路をコンフィグしただけではデバッグモジュール(ILA)が認識されない。 PS側でソフトウェアを実行すると認識される。

ZYBO のボード定義ファイル

古いボード定義ファイルは消すこと。 Vivado インストールディレクトリの data/boards/board_parts/zynq/zybo 以下。

Windows の COM ポート番号について

Windows は接続したことのあるデバイスを覚えていて、 COM ポート番号を使いまわす。 そのため、新しいデバイスを接続するたびにポート番号が増えていく。 ツールによっては COM ポートの番号が一桁でなければ正常動作しないものがある。 番号を振り直すには、不使用ポートを削除して接続し直す。

COMポートが認識できない

いちど削除して、ドライバをインストールしなおすと認識することがあるかもしれなくもない…。

SDK インストール状況の確認と追加インストール


泉 知論立命館大学 理工学部 電子情報工学科     その他の講義&演習資料はこちら