2018年3月27日火曜日

Zynqberry FPGA開発

開発環境構築からの続き

■参考サイト
ZynqBerryチュートリアル

■プロジェクトの作成
リファレンスデザインソースに生成されたvivado_create_project_guimode.cmdを実行する。いろいろとログが出力された後に下記のVivado開発環境が立ち上がる。

■IP編集
左メニューの[Flow Navigator]-[IP INTEGRATOR]-[Open Block Design]を選択する。
下記のように初期設定のブロック図が表示される。

自作IPの作成方針として理解したのは2通り。1つはAXI4対応IPとする方法、もう1つは汎用IPとして作成しAXI4-GPIOと接続する方法。
いずれにしてもAXI4と接続しないとARMのアドレス空間経由で操作できない。

①AXI4対応IP作成方法
上部メニューの[Tools]-[Create And Package New IP]を選択する。
下記ダイアログにおいて「Create a new AXI4 peripheral」を選択しNext。

Peripheral Detail画面が表示されるのでIPの名前や保存場所を指定する。

別ウィンドウでIPのサブプロジェクトが開けば成功

成功するとAXI I/Fドライバのひな型とC言語のドライバスタブが生成される。
Sourcesウィンドウの[Design Sources]-[IP名]を選択するとVHDLのコードが生成されているのがわかる。
エディタで開いて最下部に「Add user logic here」と記載されているところに自分のロジックを組み込めばOK。

②自作汎用IPの組み込み
[PROJECT MANAGER]-[Add Sources]し、ダイアログから[Add or create design sources]を選択する。





下部の[Create File]ボタンを押して作成するHDLソースファイルを指定する。
File TypeにHDLの種類(VHDL, Verilog, SystemVerilogなど)、File nameにソースファイル名を指定する。



次の画面で入出力ポートを設定すると自動でソースファイルのひな型が生成される。


■プロジェクト設定
自作IP毎のサブプロジェクト作成について
デフォルトでは編集時にサブプロジェクトを作成し、編集後に自動で削除されるようになっている。

毎回サブプロジェクトを作成、削除するのが手間であれば自動削除しないように設定できる。
左メニュー[Flow Navigator]-[PROJECT MANAGER]-[Setting]から[Project Setting]-[IP]-[Packager]を選択する。
設定画面の[Delete project after packaging]のチェックを外すと自動削除を無効にできる。

2018年3月19日月曜日

Zynqberry FPGA開発環境構築

■手順概要
  1. リファレンスデザインのダウンロード
  2. Xilinx Vivadoのインストール
  3. プロジェクトの作成

■リファレンスデザインのダウンロード
Trenz electronic Zynqberryダウンロードサイト
ここからリファレンスデザインをダウンロードする

2018/3時点で最新バージョンは2017.4
te0726-test_board-vivado_2017.4-build_06_20180216205357.zip

これを適当なフォルダに展開する。
空白を含まないフォルダパスが望ましい。

■Xilinx Vivadoのインストール
リファレンスデザインの対象バージョンが2017.4なのでVivadoも同じバージョンをダウンロード、インストールする。
バージョンが合っていないと論理合成できないことがある
またインストールするフォルダはデフォルトのC:\Xilinxが望ましい。
リファレンスデザインのプロジェクト作成batファイルがC:\Xilinxにインストールされているのを前提にしているため

■リファレンスデザインの展開
ダウンロードしたリファレンスデザインを解凍すると直下に_create_win_setup.cmdというスクリプトがある。
これをコマンドプロンプトから実行

-------------------------TE Reference Design---------------------------
--------------------------------------------------------------------
-- (c)  Go to CMD-File Generation (Manual setup)
-- (d)  Go to Documentation (Web Documentation)
-- (x)  Exit Batch (nothing is done!)
-- (0)  Create minimum setup of CMD-Files and exit Batch
-- (1)  Create maximum setup of CMD-Files and exit Batch
----
Select (ex.:'0' for min setup):

このような選択が表示されるので1を選択する。
するとプロジェクト作成に必要なスクリプト群が生成される。

■プロジェクト対象ボードの選択
生成されたスクリプト群にあるdesign_basic_setting.cmdを編集する。
(編集箇所)
@set PARTNUMBER=LAST_ID
   LAST_IDを手持ちのボードに合わせる。選択できるボードの種類はboard_filesディレクトリのTE0726_board_files.csvに記載されている。
 ここでは手元にあるte0726-03mを選択しておく。
 LAST_IDのままにしておくと自動的にte0726-03-07s-1cが選択されたことになる。

@set SWAPP=NA
 NAを作成するプロジェクト名に変える

■プロジェクトの作成
生成されたスクリプト群の中からvivado_create_project_guimode.cmdを実行する。
するとzynqberryのハード設定で初期化された状態でVivadoアプリケーションが立ち上がる。
立ち上がったらメニューのFile->Save Project Asで好きな場所に保存する。
以降はこのプロジェクトを編集して回路設計と合成を行う