FPGAことはじめ

 

DIGILENTのArty A7 35TというFPGAボード.
https://japan.xilinx.com/products/boards-and-kits/arty.html
まずは、マイコンでも最初にする”Lチカ”をめざす。


VIVADOのインストール



インストーラーをDL
https://digilent.com/reference/programmable-logic/guides/installing-vivado-and-sdk?redirect=1
に詳細なインストールの例が記載されているので詳細はそちらを参照されたい。

サンプルのダウンロード

ちゃんと書籍を購入させていただいているので、
https://www.shuwasystem.co.jp/support/7980html/6326.html
からサンプルプログラムをDLする。Artyの一式をDLし、適当な場所に展開しておく。
この中で使うファイルは、blink.xdcとHDLの下にあるblink.vのファイルになる。

VIVADOの起動
VIVADOを立ち上げる
Create Projectを選択

確認画面
プロジェクト名とフォルダを指定する
プロジェクトのタイプを選択
RTLプロジェクト、Do not specity sources at this timeにチェックを入れる。 

Do not specity sources at this timeは、直訳すると”現時点ではソースを特定しない”という意味で、既存の回路記述(.vファイル)を使うのでチェックを入れない。

RTLコーディングとは、主にFPGAデバイスメーカー(Xilinx社=半導体メーカー、Intel社=半導体素子メーカー)などのFPGAを動作させるために、論理回路をハードウェア記述言語(Hardware Discription Language; HDL)で設計・記述する手法のこと
用語を少しは理解しようと調べてみた。

Boardのタブを選択して使っているボードを選ぶ。
ここで、リストにボードが現れない場合は、Refreshのボタンを押して最新のボードカタログをダウンロードすると現れるようになる。
Statusの下向きの矢印のボタンを押すとNextが反転して次に進める
最後にプロジェクトのサマリーが表示されるのでFinishを押すと下の操作画面に進む。



指定の場所にプロジェクトのフォルダが生成されるでサンプルとしてダウンロードしたblink.xdcとHDLの下にあるblink.vをプロジェクトフォルダにコピーしておく。
まずは、回路記述を読み込みたいので
Flow navigatorおPROJECT MANAGERからAdd Sources
Add or crate design sourcesにチェックを入れてNextを押す
blink.vを指定して読み込む
続いて同じよに
Add or create constraintsを選択して制約ファイルを読み込む





CPUのスレッド数上限の設定をしてよいらしいので最大の数字を選択
OKを押すと処理が始まる
終了しているかは、右上を見て

〇がくるくる回っている間は処理をしている事を示していて終わるとチェックのマークになる。

処理を確認するダイアログが表示された。一度ここではキャンセル。


いよいよUSBに接続する。コンフィルレーションといって書き込む方法を指定するためジャンパーピンの設定が必要。

https://digilent.com/reference/programmable-logic/arty-a7/reference-manual
の4の所に記載がある。USB経由のJTAGか、8ピンのJTAGポートから書き込む、それかSPI経由のフラッシュから書き込むというのができるとのこと。それを設定するのがジャンパピンJP1(MODEと)シルク印刷されているピン。これでモードの選択をするが、4.1 JTAG Configurationの所を読むとJTAGで書き込む場合は、ピンの設定によらず書き込むことができる(他の書き込み方を防止できるとも)とあるので、そのままUSBについないで、USB経由のJTAGで書き込む事ができる。

PROGRAM AND DEBUGからOpen Hardware Manager -Open Target -Autoconectと進んでFPGA評価ボートと接続する。ボードの情報が読み取られる。上の方にThere are no debug core....とメッセ時がでていおりその横のProgram deviceへ進む


Bitstream fileを指定するダイアログが開くので生成した.bitファイルを指定する
プロジェクト名.runs/impl_1の下に見つけられる。
Programを押す書き込みが行われて、動作する。
はじめてのFPGAによるLチカ。

無事にLチカできた訳だが、まったくXDCファイルの書き方や、そもそものHDLの記述なんかはまだまだ理解できていない・・・







コメント

このブログの人気の投稿

Attiny85とAQM0802A(LCD)のI2C接続

CH9329で日本語キーボード109で正しく表示する方法