FC2カウンター FPGAの部屋
FC2ブログ

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

FPGAの部屋

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

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
»