FC2カウンター FPGAの部屋 2020年08月
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

ACRi ルームの Alveo U50 を使ってみた2(Vitis Ai の実行)

ACRi ルームの Alveo U50 を使ってみた1(Vector Addition の実行)”の続き。

前回は、ACRi ルームの Alveo U50 を使ってみるということで、Vitis 2019.2 を使用して、Vector Addition サンプルを作って、ビルドし、実行できた。今回は、前回の続きで Vitis AI をやってみよう。

なお、”ACRi ルームの使い方デモ”を参照している。

もうすでに、XRT と Vitis の環境は設定を行ったので、Vitis AI の環境を設定する。
source /opt/vitis_ai/setup.sh

/opt/vitis_ai/workspace/Vitis-AI-Library/overview/samples/multitask/ ディレクトリに行って、test_video_multitask を起動した。
cd /opt/vitis_ai/workspace/Vitis-AI-Library/overview/samples/multitask/
./build.sh
./test_video_multitask multi_task ../../demo/segs_and_roadline_detect/lane_640_480.avi -t 8

すると、別ウインドウが開いて、車の認識のデモ?が実行された。
ACRi_U50_11_200808.png

元のビデオは、車からの走行シーンを撮影した動画のようだ。
ACRi_U50_58_200811.png

/opt/vitis_ai/workspace/Vitis-AI-Library/overview/samples/multitask/ ディレクトリのファイルを示す。
ACRi_U50_56_200811.png

readme を見て、test_jpeg_multitask を試してみた。
./test_jpeg_multitask multi_task sample_multitask.jpg
ACRi_U50_59_200811.png

ログを貼っておく。

(base) u_marsee101@as004:/opt/vitis_ai/workspace/Vitis-AI-Library/overview/sames/multitask$ ./test_jpeg_multitask multi_task sample_multitask.jpg
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0811 04:19:41.812407 16728 process_result.hpp:57] 2 0.333344 0.499921 0.122619 0.234968 93.5763
I0811 04:19:41.812588 16728 process_result.hpp:57] 2 0.274168 0.559145 0.0788227 0.0899649 -108.435
I0811 04:19:41.812613 16728 process_result.hpp:57] 2 0.688132 0.557123 0.161432 0.18072 129.289
I0811 04:19:41.812646 16728 process_result.hpp:57] 2 0 0.511859 0.078728 0.224802 0
I0811 04:19:41.812669 16728 process_result.hpp:57] 2 0.208173 0.572655 0.0530752 0.061687 -123.69
I0811 04:19:41.812696 16728 process_result.hpp:57] 2 0.45969 0.583376 0.0239042 0.0345972 106.39
I0811 04:19:41.812719 16728 process_result.hpp:57] 2 0.152777 0.570406 0.0236073 0.0197128 -123.69
I0811 04:19:41.812738 16728 process_result.hpp:57] 2 0.647809 0.56265 0.0722189 0.0700647 77.4712
I0811 04:19:41.812759 16728 process_result.hpp:57] 2 0.511904 0.57834 0.0385703 0.0527384 116.565
I0811 04:19:41.812779 16728 process_result.hpp:57] 2 0.797958 0.329459 0.193313 0.649231 135
I0811 04:19:41.812809 16728 process_result.hpp:57] 6 0.469489 0.513496 0.0103455 0.0113734 -93.3665


sample_multitask_result.jpg が生成された。
ACRi_U50_61_200811.png

/opt/vitis_ai/workspace/Vitis-AI-Library/overview/samples ディレクトリを示す。
ACRi_U50_57_200811.png

たくさんサンプルがあるようだ。

追加で Yolo3 をやってみた。
yolov3 ディレクトリに入った。
sh build.sh でビルドした。
./test_jpeg_yolov3 yolov3_adas_pruned_0_9 sample_yolov3.jpg を実行した。
ACRi_U50_62_200811.png

ログを貼っておく。

(base) u_marsee101@as004:/opt/vitis_ai/workspace/Vitis-AI-Library/overview/samples/yolov3$ ./test_jpeg_yolov3 yolov3_adas_pruned_0_9 sample_yolov3.jpg
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0811 04:37:56.257900 18617 process_result.hpp:46] RESULT: 0 -1.49536 132.509 121.505 226.451 0.96233
I0811 04:37:56.258023 18617 process_result.hpp:46] RESULT: 0 111.502 139.693187.502 179.079 0.943011
I0811 04:37:56.258064 18617 process_result.hpp:46] RESULT: 0 397.368 131.843512 231.843 0.850293
I0811 04:37:56.258088 18617 process_result.hpp:46] RESULT: 0 352.674 144.348413.023 165.955 0.843594
I0811 04:37:56.258114 18617 process_result.hpp:46] RESULT: 0 337.352 144.322362.9 159.324 0.807779
I0811 04:37:56.258139 18617 process_result.hpp:46] RESULT: 0 150.182 139.843194.335 161.45 0.320707
I0811 04:37:56.258165 18617 process_result.hpp:46] RESULT: 1 191.029 134.979205.76 159.021 0.348052



sample_yolov3_result.jpg が生成された。
ACRi_U50_63_200811.png

ACRi_U50_64_200811.png

もう 1 つ追加で、openpose をやってみた。
ACRi_U50_65_200811.jpg

segmentation のサンプルを追加する。
ACRi_U50_66_200811.jpg
  1. 2020年08月11日 04:29 |
  2. Alveo
  3. | トラックバック:0
  4. | コメント:0

Genesys ZU: Zynq UltraScale+ MPSoC Development Board が届いた

Genesys ZU: Zynq UltraScale+ MPSoC Development Board がAvnet Japan 社から届いた。基板を貸してもらえるということで基板を借りられたので、いろいろと試してみたい。

$1,149 、日本円で約 12 万円位の高額ボードで自分では買えないが、いろいろと試してみるつもりだ。

搭載されているZynq UltraScale+ MPSoC は XCZU3EG-SFVC784-1-E で Ultra96-V2 のとピン数は違うが同じ型番で、少し物足りなさは残る。

ストレージは mSATA スロットがあるのが良いな。SSD が搭載できる。
2 x Pcam Dual-Lane も良いな。ステレオカメラがやれそうだ。
4 個の PMOD があるのも良いな。Ultra96-V2 に拡張ボード付けなくても秋月電子カメラと Pmod VGA が接続できる。

大きなボードなので、置き場所に困るが、なんとしよう。。。

Genesys ZU の箱。
genesys_zu_1_200810.jpg

基板の表
genesys_zu_2_200810.jpg

基板の裏
genesys_zu_3_200810.jpg

大きい。

とりあえずは、Adam Taylor さんの”Genesys ZU Vitis Accleration Platform”と”High Performance Imaging”をやって見る予定だ。
  1. 2020年08月10日 05:09 |
  2. Genesys_ZU
  3. | トラックバック:0
  4. | コメント:0

ACRi ルームの Alveo U50 を使ってみた1(Vector Addition の実行)

ACRi ルームの Alveo U50 を使ってみた。

ACRi ルームの解説は、”ACRiルーム紹介ウェビナー”のイベント資料を参照のこと。使用するには申請が必要だ。

申請すると 2 つ ID とパスワードが送られてくる。 1 つはWeb へのログイン用、もう 1 つは ACRi ルームのマシンへのログイン用だ。これが分からなくて、マシンのログインに Web のログイン用のパスワードを使用していた。ツィッターでアドバイスしてもらって、ようやく分かった。ありがとうございました。

さて、Web で予約した Alveo U50 が搭載されている as004 に Tera Term でログインしてみよう。
Tera Term を立ち上げて gw.acri.c.titech.ac.jp に接続する。
ACRi_U50_20_200809.png

SSH認証を行う。
ACRi_U50_21_200809.png

ACRi に接続できたが、fserv4 に接続できていて、 as004 じゃなかった。
ACRi_U50_22_200809.png

リモートデスクトップ接続する。
Tera Term の設定メニューから SSH 転送を選択した。
ACRi_U50_23_200809.png

SSH ポート転送で追加ボタンをクリックする。
ACRi_U50_25_200809.png

ローカルのポートに 13389 、リモート側ホストに Alveo U50 の as004 、ポートに 3389 を設定した。この辺りは”ACRi ルームの FPGA 利用環境の予約・使用方法”を参照した。
ACRi_U50_26_200809.png

ACRi_U50_27_200809.png

リモートデスクトップ接続を立ち上げて、コンピューターに localhost:13389 を入力した。
ACRi_U50_28_200809.png

リモートデスクトップ接続が立ち上がった。password に ACRi ルームのマシンへのログイン用パスワードを入力した。これはコピペが効かなかったので、自分で入力した。
ACRi_U50_29_200809.png

これで、as004 に入れた。
ACRi_U50_30_200809.png

Activities をクリックして、ファイル・ブラウザとターミナルを起動した。
ACRi_U50_2_200808.png

Terminal で XRT を起動して、xbmgmt scan で U50 が刺さっているか?を確認した。
source /opt/xilinx/xrt/setup.sh
xbmgmt scan

ACRi_U50_31_200809.png

U50 は刺さっている。大丈夫そうだ。

Vitis 2019.2 の環境を設定して、Vitis を起動した。
source /tools/Xilinx/Vitis/2019.2/settings64.sh
vitis

ACRi_U50_3_200808.png

U50 のアクセラレーション・プラットフォームを指定して、examples の Vector Addition (vadd)アクセラレーション・アプリケーションを作成した。
ACRi_U50_4_200808.png

Hardware を Build し、成功した。
ACRi_U50_5_200808.png

Run Configuration を作成した。
ACRi_U50_9_200808.png

Run したらエラーだった。

[Console output redirected to file:/home/u_marsee101/Vitis_Work/U50/2019.2/vadd/Hardware/vadd-Default.launch.log]
/home/u_marsee101/Vitis_Work/U50/2019.2/vadd/Hardware/vadd: /tools/Xilinx/Vitis/2019.2/lib/lnx64.o/Default/libstdc++.so.6: version `CXXABI_1.3.11' not found (required by /opt/xilinx/xrt/lib/libxilinxopencl.so.2)
/home/u_marsee101/Vitis_Work/U50/2019.2/vadd/Hardware/vadd: /tools/Xilinx/Vitis/2019.2/lib/lnx64.o/Default/libstdc++.so.6: version `CXXABI_1.3.11' not found (required by /opt/xilinx/xrt/lib/libxrt++.so.2)
/home/u_marsee101/Vitis_Work/U50/2019.2/vadd/Hardware/vadd: /tools/Xilinx/Vitis/2019.2/lib/lnx64.o/Default/libstdc++.so.6: version `CXXABI_1.3.11' not found (required by /opt/xilinx/xrt/lib/libxrt_coreutil.so.2)


ACRi_U50_10_200808.png

ググると、”AR# 72130 「/libstdc++.so.6: version `CXXABI_1.3.11' not found」というエラー メッセージが表示される”がヒットした。

[Run Configurations] ウィンドウで [Environment] タブに移動し、テーブルに設定されている LD_LIBRARY_PATH 変数を削除します。

だそうだ。早速やってみよう。
ACRi_U50_32_200809.png

Remove ボタンをクリックする。

Apply ボタンをクリックし、 Run ボタンをクリックする。
ACRi_U50_33_200809.png

TEST PASSED 出た。。。成功した。
ACRi_U50_34_200809.png
  1. 2020年08月09日 09:23 |
  2. Alveo
  3. | トラックバック:0
  4. | コメント:0

Ultra96-V2 の高速、低速コネクタ用PMOD 拡張基板に Pmod VGA を接続する8(基板を改版した)

Ultra96-V2 の高速、低速コネクタ用PMOD 拡張基板に Pmod VGA を接続する7(信号が出なかった)”の続き。

高速、低速コネクタ用PMOD 拡張基板のPMOD に接続する Pmod VGA を使用するためのディスプレイ・コントローラを作成して、高速、低速コネクタ用PMOD 拡張基板のPMOD のテストをしている。前回は、高速コネクタのピン配置が左右逆で信号が出ていなかった。今回は、基板を改版して正しい位置に修正した。

まずは、高速コネクタの基板のフットプリントを左右(上下)逆にした。これが一番手っ取り早いと思ったからだ。
Ultra96expb_PMOD_VGA_78_200808.png

次に、PMOD-E を削除した。それに合わせて PMOD-F の接続信号も入れ替えた。
Ultra96expb_PMOD_VGA_77_200808.png

オートルーターにかけて、自分で電源周りだけ修正した配線パターン。
Ultra96expb_PMOD_VGA_79_200808.png

GND ベタを乗せた表面。
Ultra96expb_PMOD_VGA_80_200808.png

GND ベタを乗せた裏面。
Ultra96expb_PMOD_VGA_81_200808.png

裏表面。
Ultra96expb_PMOD_VGA_82_200808.png

高速コネクタは上下入れ替わっている。
Ultra96expb_PMOD_VGA_83_200808.png

今日、FusionPCB に発注した。楽しみだ。
  1. 2020年08月08日 21:33 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

Ultra96-V2 の高速、低速コネクタ用PMOD 拡張基板に Pmod VGA を接続する7(信号が出なかった)

Ultra96-V2 の高速、低速コネクタ用PMOD 拡張基板に Pmod VGA を接続する6(Vivado Analyzerでビデオ信号を確認)”の続き。

高速、低速コネクタ用PMOD 拡張基板のPMOD に接続する Pmod VGA を使用するためのディスプレイ・コントローラを作成して、高速、低速コネクタ用PMOD 拡張基板のPMOD のテストをしている。前回は、ビデオ信号が出ているかどうか?をVivado Analyzer で見たところ出力されていた。今回は、オシロスコープで信号が出ているか?を確認ししたところ信号は出力されていなかった。

久々にオシロスコープを引っ張り出して、HS(水平同期信号)(PMOD-D の 7番ピン)を見たが、 +3.3V に張り付いていて、信号が出ていなかった。

高速コネクタのパターンをよく見てみると、コネクタの信号配置が左右逆だった。orz

まずは、Pmod VGA の HS の Ultra96-V2 での信号名は CSI1_D1_P だった。
Ultra96expb_PMOD_VGA_200_200730.png

高速コネクタの CSI1_D1_P は切り欠きの無い方に出力されている。Ultra96-V2 の回路図から引用する。
Ultra96expb_PMOD_VGA_75_200807.png

基板の図面での CSI1_D1_P は高速コネクタの上側に来ている。
Ultra96expb_PMOD_VGA_76_200807.png

写真で見ると、高速コネクタの上側は切り欠きのある方だった。
Ultra96expb_PMOD_VGA_74_200807.jpg

ということで、高速コネクタの左右が入れ替わっているので、基板は作り直しとなった。
  1. 2020年08月07日 04:23 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

Vitis のエンベデッド・ソフトウェア開発フローで Vivado の回路の更新をVitis に反映する

Vitis のエンベデッド・ソフトウェア開発フロー、つまり、Vivado で作成したハードウェアのアプリケーション・ソフトウェアを作成して、実行する時に、Vivado で作成した XSA ファイルを使用して、Vitis でプラットフォームを作り、そこからアプリケーション・ソフトウェアを作成する。一旦、それらのファイルを作成した後で、Vivado で回路を変更したら、Vitis に Vivado の変更を反映する必要がある。その方法を探っていこう。
前回、Vivado Analyzer を入れたビットファイルを Vitis に反映できなかったので、その方法を探っていきたいと言うのが動機だ。

使用する Vivado と Vitis のバージョンは 2019.2 とする。

Vivado 2019.2 のブロックデザインを変更して、論理合成、インプリメンテーション、ビットストリームの生成を行った。ビットファイルと XSA ファイルが今日の日時に変更されている。
Ultra96expb_PMOD_VGA_61_200806.png

Ultra96expb_PMOD_VGA_62_200806.png

起動済みの Vitis 2019.2 を見ると何も変わっていない。
Ultra96expb_PMOD_VGA_63_200806.png

Vitis のプラットフォーム・ディレクトリの hw ディレクトリ内のビットファイルと XSA ファイルも日時が変更されていない。
Ultra96expb_PMOD_VGA_64_200806.png

Vitis で Explorer 上の display_cont_platform を右クリックし、右クリックメニューから Update Hardware Specification を選択する。
Ultra96expb_PMOD_VGA_65_200806.png

Update Hardware Specification ダイアログが表示された。
XSA ファイルを確認して、OK ボタンをクリックする。
Ultra96expb_PMOD_VGA_66_200806.png

Update Hardware Specification が成功した。
Ultra96expb_PMOD_VGA_67_200806.png

ビットファイルと XSA ファイルが更新されている。
Ultra96expb_PMOD_VGA_69_200806.png

Vitis で Explorer 上の display_cont_platform のビルドが必要との表示が出ているので、ビルドを行った。トンカチマークをクリック。
Ultra96expb_PMOD_VGA_68_200806.png

display_cont_platform のビルドが成功した。
Ultra96expb_PMOD_VGA_70_200806.png

まだ、display_cont アプリケーション・プロジェクトのビットファイルは古いままだ。
Ultra96expb_PMOD_VGA_71_200806.png

Vitis で Explorer 上の display_cont_system を右クリックし、右クリックメニューから Clean Project を選択した。プロジェクトをクリーンした。
その後、Vitis で Explorer 上の display_cont_system を右クリックし、右クリックメニューから Build Project を選択した。プロジェクトをビルドした。
そうすると、ビットファイルも更新された。
Ultra96expb_PMOD_VGA_73_200806.png

これで、Vitis でアプリケーションを起動して、Vivado で Viado Analyzer が起動できるようになった。 Vivado の回路の更新が Vitis に反映されるようになった。
  1. 2020年08月06日 04:30 |
  2. Vitis
  3. | トラックバック:0
  4. | コメント:0

Ultra96-V2 の高速、低速コネクタ用PMOD 拡張基板に Pmod VGA を接続する6(Vivado Analyzerでビデオ信号を確認)

Ultra96-V2 の高速、低速コネクタ用PMOD 拡張基板に Pmod VGA を接続する5(Vitis 2019.2 だったら動いた)”の続き。

高速、低速コネクタ用PMOD 拡張基板のPMOD に接続する Pmod VGA を使用するためのディスプレイ・コントローラを作成して、高速、低速コネクタ用PMOD 拡張基板のPMOD のテストをしようとしている。 バージョン 2020.1 でやってみたところ、Vitis 2020.1 でプロセッサが起動しないようだった。前回は、 Vivado HLS 2019.2, Vivad 2019.2, Vitis 2019.2 で実行したが、VGA 画面は表示されなかったものの、Hello World は表示することができた。今回は、ビデオ信号が出ているかどうか?をVivado Analyzer で見てみよう。

まずは、Vivado 2019.2 でブロックデザインのビデオ信号ラインに Debug を設定して、自動配線した。
Ultra96expb_PMOD_VGA_57_200805.png

system_ila_0 が挿入された。
ブロックデザインをセーブしてから、論理合成、インプリメンテーション、ビットストリームの生成を行った。
結果を示す。タイミングも 40 MHz だから当たり前だが、メットしている。
Ultra96expb_PMOD_VGA_58_200805.png

Vitis 2019.2 で Hello World を動作させてから(そうでないとPS からクロックが出ない)、Open Hardware Manager を起動して、Vivado Analyzer で波形を確認した。
Ultra96expb_PMOD_VGA_59_200805.png

どの信号も良さそうだ。 vsyncx だけ見えないので、立ち上がりでトリガかけると、変化が見えた。
Ultra96expb_PMOD_VGA_60_200805.png

信号波形に問題は無いようだ。オシロスコープで波形を見てみよう。
  1. 2020年08月05日 20:54 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

Ultra96-V2 の高速、低速コネクタ用PMOD 拡張基板に Pmod VGA を接続する5(Vitis 2019.2 だったら動いた)

”Ultra96-V2 の高速、低速コネクタ用PMOD 拡張基板に Pmod VGA を接続する4(Vitis 2020.1 で実機確認も動作せず)”の続き。

高速、低速コネクタ用PMOD 拡張基板のPMOD に接続する Pmod VGA を使用するためのディスプレイ・コントローラを作成して、高速、低速コネクタ用PMOD 拡張基板のPMOD のテストをしようとしている。しかし、前回は、Vivado 2020.1 から Vitis 2020.1 を立ち上げて、プラットフォームを作成、ビルドして、アプリケーション・ソフトウェアを作成、ビルドしてから実機確認したが、Hello World も出なかった。今回は同様の作業を Vivado HLS 2019.2, Vivad 2019.2, Vitis 2019.2 で実行したが、VGA 画面は表示されなかったものの、Hello World は表示することができた。

Ultra96-V2 の高速、低速コネクタ用PMOD 拡張基板に Pmod VGA を接続する2(Vitis HLS 2020.1 でディスプレイ・コントローラを作成)”と同様に Vivado HLS 2019.2 で display_cont_sub IP を作成した。
Ultra96expb_PMOD_VGA_52_200804.png

Vivado 2019.2 で exbhl_display_cont_192 プロジェクトを作って、ブロックデザインを生成した。
Ultra96expb_PMOD_VGA_54_200804.png

Ultra96expb_PMOD_VGA_53_200804.png

Vitis 2019.2 でプラットフォームとアプリケーション・プロジェクトを作成して、Hello World アプリを起動した。
Ultra96expb_PMOD_VGA_55_200804.png

2 回実行したが、 2 回とも Hello World が表示されている。
Ultra96expb_PMOD_VGA_56_200804.png

ただし、Vivado 2019.2 のブロックデザインで Zynq MPSoC の IRQ は除いてある。Vivado 2020.1 で同様に IRQ を除いて、もう一度やってみたが、やはり実行できなかった。
とりあえず、 2019.2 でやったほうが良さそうだ。

結果を書くのを忘れたが VGA 信号が出力されていなかったので、デバックする。
  1. 2020年08月04日 05:16 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

Ultra96-V2 の高速、低速コネクタ用PMOD 拡張基板に Pmod VGA を接続する4(Vitis 2020.1 で実機確認も動作せず)

Ultra96-V2 の高速、低速コネクタ用PMOD 拡張基板に Pmod VGA を接続する3(Vivado 2020.1 でディスプレイ・コントローラを作成)”の続き。

前回は、高速、低速コネクタ用PMOD 拡張基板のPMOD に接続する Pmod VGA を使用するためのディスプレイ・コントローラを Vitis HLS 2020.1 で作成したディスプレイ・コントローラ IP を Vivado 2020.1 で実装し成功した。今回は、Vivado 2020.1 から Vitis 2020.1 を立ち上げて、プラットフォームを作成、ビルドして、アプリケーション・ソフトウェアを作成、ビルドしてから実機確認する。

Tools メニューから Launch Vitis IDE を選択して、Vitis 2020.1 を立ち上げる。
Select a directory as workspace ダイアログが表示される。Workspace をBrows... ボタンで選択して、 Launch ボタンをクリックする。
Ultra96expb_PMOD_VGA_36_200730.png

Vitis 2020.1 が立ち上げる。
File メニューから New -> Platform Project... を選択する。

Create new platform project ダイアログが表示された。 Next > ボタンをクリックする。
Ultra96expb_PMOD_VGA_37_200803.png

Plagform で XSA File を Brows... ボタンをクリックして、exbhl_displaty_cont_wrapper.xsa を選択した。
Ultra96expb_PMOD_VGA_38_200803.png

display_cont_platform が生成された。
stdin, stdout のポートをシリアル 0 からシリアル 1 に変更する。
Borad Support Package を選択して、Modify BSP Settings... ボタンをクリックした。
Ultra96expb_PMOD_VGA_39_200803.png

stdin, stdout を psu_uart_1 に変更した。
Ultra96expb_PMOD_VGA_40_200803.png

ビルド・ボタンをクリックして、ビルドし成功した。
Ultra96expb_PMOD_VGA_41_200803.png

次にアプリケーション・プロジェクトを生成する。
File メニューから New -> Application Project... を選択した。

Create a New Application Project ダイアログが表示された。
Ultra96expb_PMOD_VGA_42_200803.png

Platform では、先ほど作成した display_cont_platform を選択した。
Ultra96expb_PMOD_VGA_43_200803.png

Application Project Details では、Application project name に dispaly_cont と入力した。
Ultra96expb_PMOD_VGA_44_200803.png

Domain はそのままとした。
Ultra96expb_PMOD_VGA_45_200803.png

Template では、 Hello World を選択した。
Ultra96expb_PMOD_VGA_46_200803.png

アプリケーション・プロジェクトが作成された。
下の Assistant ウインドウで display_cont を選択し、ビルド・ボタンをクリックしてビルドを行う。
Ultra96expb_PMOD_VGA_47_200803.png

ビルドが成功した。実機で動作させてみよう。
Ultra96-V2 の電源をON した。USB ケーブルをパソコンに接続済み。
Explorer ウインドウで display_cont を選択して、Run ボタンをクリックする。
Ultra96expb_PMOD_VGA_48_200803.png

Run As ダイアログが表示された。
Launch on Hardware (Single Application Debug) を選択して、OK ボタンをクリックする。
Ultra96expb_PMOD_VGA_49_200803.png

Ultra96-V2 のビットファイルをコンフィグしていたが、Warning ダイアログが表示されあt.
Ultra96expb_PMOD_VGA_50_200803.png

失敗してしまった。
Ultra96expb_PMOD_VGA_51_200803.png

プロセッサが起動していないようだ。
  1. 2020年08月03日 05:10 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

フェースシールドを作りました

今度の月曜日に近所のお葬式があって、受付を頼まれました。受付は大勢の人とやり取りするので、コロナ感染の危険が高いですよね。
葬儀屋に電話したら、透明仕切りは無いということで、フェースシールドを購入しようとしたのですが、購入できませんでした。
そこで材料を買ってきて、自分で作りました。
材料です。

フェースシールド材料
コクヨ ソフトカードケース<軟質タイプ>
クケ-3063N 2枚取り
マジックテープ、オスメス各15cm ホチキス止め
隙間テープ 幅3cm x 高さ2cmx長さ 33cm


作り方
1. ソフトカードケースの端を切って、2枚に分けます。
2. その 1 枚を横長に使い、上から 5 cm のところに隙間テープの上を合わせて張ります。横の中央になるように貼ってください。
3. マジックテープのメスをソフトカードケースの端の隙間テープが貼ってある延長線上にホチキスで止めます。
4. マジックテープのオスをソフトカードケースの端の隙間テープが貼ってある延長線上にホチキスで止めます。その際にメスとくっつくようにメスとは反対面をホチキスで止めてください。

完成したフェースシールドです。5分かからないでできます。
Face_shield_1_200802.jpg

装着例です。下が長ければ、ハサミで切りましょう。
Face_shield_2_200802.jpg
  1. 2020年08月02日 17:29 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

Ultra96-V2 の高速、低速コネクタ用PMOD 拡張基板に Pmod VGA を接続する3(Vivado 2020.1 でディスプレイ・コントローラを作成)

Ultra96-V2 の高速、低速コネクタ用PMOD 拡張基板に Pmod VGA を接続する2(Vitis HLS 2020.1 でディスプレイ・コントローラを作成)”の続き。

前回は、高速、低速コネクタ用PMOD 拡張基板のPMOD に接続する Pmod VGA を使用するためのディスプレイ・コントローラを Vitis HLS 2020.1 を使用して作成した。今回は、Vitis HLS 2020.1 で作成したディスプレイ・コントローラ IP を Vivado 2020.1 で実装する。

Vivado 2020.1 で exbhl_display_cont プロジェクトを作成した。ボード・ファイルは Ultra96-V2 用を使用した。
Ultra96expb_PMOD_VGA_19_200730.png

前回、 Vivado の exbhl_display_cont プロジェクトに display_cont_201 ディレクトリを作成して、Vivado HLS で作成した display_cont_sub IP の ZIP ファイルを展開した。
Ultra96expb_PMOD_VGA_20_200730.png

Ultra96expb_PMOD_VGA_21_200730.png

display_cont_sub IP をIP Catalog に登録した。
Ultra96expb_PMOD_VGA_22_200730.png

exbhl_display_cont ブロックデザインを作成した。
zynq_ultra_ps_e_0 をAdd IP した。
Ultra96expb_PMOD_VGA_23_200730.png

zynq_ultra_ps_e_0 を設定する。
PS-PL Configuration で AXI HPM0 FPD , AXI HPM1 FPD のチェックを外した。
Ultra96expb_PMOD_VGA_24_200730.png

Clocking Wizard を Add IP した。 Clocking Wizard の clk_out1 を 40 MHz に設定した。
Ultra96expb_PMOD_VGA_25_200730.png

display_cont_sub IP を Add IP して、Slice を Add IP して 8 ビット信号の上 4 ビットを取り出して出力する。
Ultra96expb_PMOD_VGA_28_200730.png

ブロックデザインができあがった。
Ultra96expb_PMOD_VGA_27_200730.png

制約ファイル exbhl_display_cont.xdc を作成した。
Ultra96expb_PMOD_VGA_29_200730.png

exbhl_display_cont.xdc を示す。

set_property IOSTANDARD LVCMOS12 [get_ports {blue[3]}]
set_property IOSTANDARD LVCMOS12 [get_ports {blue[2]}]
set_property IOSTANDARD LVCMOS12 [get_ports {blue[1]}]
set_property IOSTANDARD LVCMOS12 [get_ports {blue[0]}]
set_property PACKAGE_PIN M4 [get_ports {blue[3]}]
set_property PACKAGE_PIN M5 [get_ports {blue[2]}]
set_property PACKAGE_PIN M1 [get_ports {blue[1]}]
set_property PACKAGE_PIN M2 [get_ports {blue[0]}]
set_property IOSTANDARD LVCMOS12 [get_ports {red[3]}]
set_property IOSTANDARD LVCMOS12 [get_ports {red[2]}]
set_property IOSTANDARD LVCMOS12 [get_ports {red[1]}]
set_property IOSTANDARD LVCMOS12 [get_ports {red[0]}]
set_property PACKAGE_PIN N4 [get_ports {red[3]}]
set_property PACKAGE_PIN N5 [get_ports {red[2]}]
set_property PACKAGE_PIN P1 [get_ports {red[1]}]
set_property PACKAGE_PIN N2 [get_ports {red[0]}]
set_property IOSTANDARD LVCMOS12 [get_ports {green[3]}]
set_property IOSTANDARD LVCMOS12 [get_ports {green[2]}]
set_property IOSTANDARD LVCMOS12 [get_ports {green[1]}]
set_property IOSTANDARD LVCMOS12 [get_ports {green[0]}]
set_property PACKAGE_PIN R3 [get_ports {green[3]}]
set_property PACKAGE_PIN P3 [get_ports {green[2]}]
set_property PACKAGE_PIN L1 [get_ports {green[1]}]
set_property PACKAGE_PIN L2 [get_ports {green[0]}]
set_property IOSTANDARD LVCMOS12 [get_ports {hsyncx[0]}]
set_property PACKAGE_PIN U2 [get_ports {hsyncx[0]}]
set_property IOSTANDARD LVCMOS12 [get_ports {vsyncx[0]}]
set_property PACKAGE_PIN U1 [get_ports {vsyncx[0]}]


論理合成、インプリメンテーション、ビットストリームの生成を行った。結果を示す。
Ultra96expb_PMOD_VGA_30_200730.png

ハードウェアをエクスポートする。
File メニューから Export -> Export Hardware... を選択する。
Export Hardware Platform ダイアログが表示された。
Platform Type は Fixed
Ultra96expb_PMOD_VGA_31_200730.png

Output は Pre-synthesis
Ultra96expb_PMOD_VGA_32_200730.png

Files もデフォルト
Ultra96expb_PMOD_VGA_33_200730.png

Finish ボタンをクリック
Ultra96expb_PMOD_VGA_34_200730.png

exbhl_display_cont_wrapper.xsa が生成された。
Vitis_work ディレクトリを新規作成した。
Ultra96expb_PMOD_VGA_35_200730.png
  1. 2020年08月01日 06:46 |
  2. Vitis
  3. | トラックバック:0
  4. | コメント:0