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

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

FPGAの部屋

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

Vivado 2023.1 で Pmod_OLEDrgb プロジェクトを作成し Pmod OLEDrgb を動作させる4

Vivado 2023.1 で Pmod_OLEDrgb プロジェクトを作成し Pmod OLEDrgb を動作させる3”の続き。

Getting the PmodOLEDrgb to Work on Zybo”を参考にして、Vivado 2023.2 で ZYBO Z7-20 用の Pmod_OLEDrgb プロジェクトを作成し、Pmod OLEDrgb を動作させてみたいということで、前回は、Vitis 2023.1 で Run Configuration を作成し、Run したところ、Pmod OLEDrgb に画像が表示できた。今回は、BMP ファイルから画像をC 言語の配列に変換する Python ソフトウェアを使用して、BMP ファイルを配列に変換し、Pmod OLEDrgb に表示した。

BMP ファイルから C 言語の配列に変換する Python ソフトウェアが tom21091/Bmp-to-byte-array-script/bitmaptoarray.py だ。
Pmod_OLEDrgb_95_240512.png

bitmaptoarray.py をダウンロードした。

test2.bmp を用意した。画像のサイズは 800 x 600 ピクセルだ。
test2.bmp を Pinta で読み込んだ。
Pmod_OLEDrgb_87_240512.jpg

Pinta で 96 x 64 ピクセルに変換し、セーブした。
Pmod_OLEDrgb_88_240512.jpg

HDL/2023.1/ZYBO_Z7-20/Pmod_OLEDrgb ディレクトリに bitmaptoarray.py と test2.bmp が入っている。
Pmod_OLEDrgb_89_240512.png

Terminal で HDL/2023.1/ZYBO_Z7-20/Pmod_OLEDrgb ディレクトリで bitmaptoarray.py を実行した。
python3 bitmaptoarray.py
Pmod_OLEDrgb_90_240512.png

test2array.c ファイルが生成された。
12288 個の配列を持つ test2 配列が記述されていた。
Pmod_OLEDrgb_91_240512.png

Vitis 2023.1 の PmodOLEDrgb アプリケーション・プロジェクトの bitmap.h に tommy 配列がある。
Pmod_OLEDrgb_92_240512.png

tommy 配列を消去して、代わりに test2 配列を書いた。
Pmod_OLEDrgb_93_240512.png

更に main.c の DemoRun() の 84 行目の OLEDrgb_DrawBitmap() の最後の引数を tommy から test2 に書き換えた。
Pmod_OLEDrgb_94_240512.png

Explorer で PmodOLEDrgb_system をクリックし、ビルド・ボタンをクリックしてビルドした。ビルドは成功だ。

Vitis 2023.1 の Explorer の PmodOLEDrgb_system を右クリックし、右クリックメニューから Run As -> Run Configurations... を選択すると、SystemDebugger PmodOLEDrgb system コンフィギュレーションが表示された。
Pmod_OLEDrgb_96_240512.png

ZYBO Z7-20 を Ubuntu 22.04 のパソコンに USB ケーブルで接続し、電源スイッチを ON にした。

Run ボタンをクリックした。

Pmod OLEDrgb に test2.bmp の画像が表示された。
Pmod_OLEDrgb_97_240512.jpg
  1. 2024年05月12日 08:28 |
  2. ZYBO Z7
  3. | トラックバック:0
  4. | コメント:0

Vivado 2023.1 で Pmod_OLEDrgb プロジェクトを作成し Pmod OLEDrgb を動作させる3

Vivado 2023.1 で Pmod_OLEDrgb プロジェクトを作成し Pmod OLEDrgb を動作させる2”の続き。

Getting the PmodOLEDrgb to Work on Zybo”を参考にして、Vivado 2023.2 で ZYBO Z7-20 用の Pmod_OLEDrgb プロジェクトを作成し、Pmod OLEDrgb を動作させてみたいということで、前回は、Vitis 2023.1 を立ち上げて、アプリケーション・プロジェクトを新規作成し、ソースコードをインポートして、ビルドを行って成功した。今回は、Vitis 2023.1 で Run Configuration を作成し、Run したところ、Pmod OLEDrgb に画像が表示できた。

Vitis 2023.1 の Explorer の PmodOLEDrgb_system を右クリックし、右クリックメニューから Run As -> Run Configurations... を選択した。
Pmod_OLEDrgb_82_240511.png

Run Configurations ダイアログが表示された。
System Projcet Debug を右クリックし、右クリックメニューから New Configuration を選択した。
Pmod_OLEDrgb_83_240511.png

SystemDebugger PmodOLEDrgb system が生成された。
Pmod_OLEDrgb_84_240511.png

Target Setup タブをクリックして開いた。
Use FSBL flow for initialization のチェックが外れていて、ps7_init.tcl が実行されるようだ。

ZYBO Z7-20 を Ubuntu 22.04 のパソコンに USB ケーブルで接続し、電源スイッチを ON にした。

Run ボタンをクリックした。
Pmod_OLEDrgb_85_240511.png

すると、FPGA をコンフィギュレーションして、DONE ランプが一旦点灯するが、すぐに消えてしまった。
試行錯誤したのだが、原因は、ZYBO Z7-20 の電源を USB から取得していたことだったようだ。
5V のスイッチング・レギュレータ電源を ZYBO Z7-20 に接続して、そこから電源を取るようにしたら Pmod OLEDrgb に正常に表示できた。
Pmod_OLEDrgb_86_240511.jpg

どうやら Pmod OLEDrgb はかなり電力を消費するようだ。
Pmod OLEDrgb Reference Manual によると消費電流は White Screen Current Consumption (All pixels set to white at maximum brightness) で 75.5 mA だそうだ。結構、電流が流れるので、USB だと持たなかったのだろう?
  1. 2024年05月11日 04:16 |
  2. ZYBO Z7
  3. | トラックバック:0
  4. | コメント:0

Vivado 2023.1 で Pmod_OLEDrgb プロジェクトを作成し Pmod OLEDrgb を動作させる2

Vivado 2023.1 で Pmod_OLEDrgb プロジェクトを作成し Pmod OLEDrgb を動作させる1”の続き。

Getting the PmodOLEDrgb to Work on Zybo”を参考にして、Vivado 2023.2 で ZYBO Z7-20 用の Pmod_OLEDrgb プロジェクトを作成し、Pmod OLEDrgb を動作させてみたいということで、前回は、Vitis のバージョンを変えてやってみようということで、Vivado 2023.1 を使用して、もう一度、Pmod_OLEDrgb プロジェクトを作成し、ブロック・デザインを新規作成して、回路を完成し、論理合成、インプリメンテーション、ビットストリームの生成を行った。更に XSA ファイルを生成した。今回は、Vitis 2023.1 を立ち上げて、アプリケーション・プロジェクトを新規作成し、ソースコードをインポートして、ビルドを行って成功した。

Vivado 2023.1 の Tools メニューから Launch Vitis IDE を選択して、Vitis 2023.1 を起動した。

Vitis IDE Launcher ダイアログが表示された。
Workspace の Brows... ボタンをクリックし、HDL/2023.1/ZYBO_Z7-20/Pmod_OLEDrgb に vitis_work ディレクトリを作成して、指定した。
Launch ボタンをクリックした。
Pmod_OLEDrgb_69_240510.png

Vitis IDE が起動した。
Create Application Project をクリックした。
Pmod_OLEDrgb_70_240510.png

New Application Project ダイアログが表示された。
Create a New Application Project 画面
Next > ボタンをクリックした。
Pmod_OLEDrgb_71_240510.png

Platform 画面
Create a new platform from hardware (XSA) タブをクリックした。
XSA File の Brows... ボタンをクリックして、/media/masaaki/Ubuntu_Disk/HDL/2023.1/ZYBO_Z7-20/Pmod_OLEDrgb/Pmod_OLED_wrapper.xsa を選択した。
Next > ボタンをクリックした。
Pmod_OLEDrgb_72_240510.png

Application Project Details 画面
Application project name に pmdoOLEDrgb を入力した。
Next > ボタンをクリックした。
Pmod_OLEDrgb_73_240510.png

Domain 画面
デフォルトのまま、Next > ボタンをクリックした。
Pmod_OLEDrgb_74_240510.png

Templates 画面
Empty Application (C) を選択した。
Finish ボタンをクリックした。
Pmod_OLEDrgb_75_240510.png

Pmod_OLDE_wrapper プラットフォームと PmdoOLEDrgb アプリケーション・プロジェクトが作成された。
Pmod_OLEDrgb_76_240510.png

PmodOLEDrgb_system -> PmodOLEDrgb -> src を右クリックし右クリックメニューから Import Sources... を選択した。
Pmod_OLEDrgb_77_240510.png

From Directory の Brows... ボタンをクリックして、/media/masaaki/Ubuntu_Disk/HDL/vivado-library-master/ip/Pmods/pmodOLEDrgb_v1_0/drivers/PmodOLEDrgb_v1_0/examples ディレクトリの bitmap.h と main.c のチェックボックスをチェックした。
Finish ボタンをクリックした。
Pmod_OLEDrgb_78_240510.png

bitmap.h と main.c が Vitis 2023.1 の PmodOLEDrgb_system -> PmodOLEDrgb -> src ディレクトリに入った。

もう 1 つのディレクトリからファイルをインポートする。
modOLEDrgb_system -> PmodOLEDrgb -> src を右クリックし右クリックメニューから Import Sources... を選択した。

From Directory の Brows... ボタンをクリックして、/media/masaaki/Ubuntu_Disk/HDL/vivado-library-master/ip/Pmods/pmodOLEDrgb_v1_0/drivers/PmodOLEDrgb_v1_0/src ディレクトリの Makefile 以外のファイルのチェックボックスをチェックした。
Finish ボタンをクリックした。
Pmod_OLEDrgb_79_240510.png

これで、pmodOLEDrgb_v1_0/drivers/PmodOLEDrgb_v1_0/src ディレクトリのファイルも Vitis 2023.1 の PmodOLEDrgb_system -> PmodOLEDrgb -> src ディレクトリに入った。

Explorer で PmodOLEDrgb_system をクリックし、ビルド・ボタンをクリックした。
Pmod_OLEDrgb_80_240510.png

ビルドが始まり、終了した。成功だ。ソースコードを修正しなくても正常終了した。やはり、Vivado 2023.2 は結構変更されているようだ。
Pmod_OLEDrgb_81_240510.png
  1. 2024年05月10日 09:34 |
  2. ZYBO Z7
  3. | トラックバック:0
  4. | コメント:0

Vivado 2023.1 で Pmod_OLEDrgb プロジェクトを作成し Pmod OLEDrgb を動作させる1

Vivado 2023.2 で Pmod_OLEDrgb プロジェクトを作成し Pmod OLEDrgb を動作させる6”の続き。
(追記)Vivado 2023.2 では題名に合わないので、改題しました。

Getting the PmodOLEDrgb to Work on Zybo”を参考にして、Vivado 2023.2 で ZYBO Z7-20 用の Pmod_OLEDrgb プロジェクトを作成し、Pmod OLEDrgb を動作させてみたいということで、前回は、ビルドが成功したので、アプリケーション・ソフトウェアを Run したが、エラーが出てしまった。今回は、Vitis のバージョンを変えてやってみようということで、Vivado 2023.1 を使用して、もう一度、Pmod_OLEDrgb プロジェクトを作成し、ブロック・デザインを新規作成して、回路を完成し、論理合成、インプリメンテーション、ビットストリームの生成を行った。更に XSA ファイルを生成した。

Vitis 2023.2 では、その前のバージョンからでは、大幅な変更があったので、Vitis 2023.1 でやってみることにした。
Vivado 2023.2 で作成した XSA ファイルで、Vitis 2023.1 でアプリケーション・プロジェクトを作成して、Run しようとしたらバージョンが違うと言われてしまったので、Vivado 2023.1 でビットストリームの作成からやり直すことにした。

Vivado 2023.2 で手順を書いているので、その通りやっていった。
Vivado 2023.2 で Pmod_OLEDrgb プロジェクトを作成し Pmod OLEDrgb を動作させる1”で Vivado 2023.1 で Pmod_OLEDrgb プロジェクトを作成し、vivado-library-master の IP をリポジトリに追加した。

Vivado 2023.2 で Pmod_OLEDrgb プロジェクトを作成し Pmod OLEDrgb を動作させる2”で、Pmod_OLED ブロック・デザインを作成し、回路を完成させた。

Vivado 2023.2 で Pmod_OLEDrgb プロジェクトを作成し Pmod OLEDrgb を動作させる3”で、HDL Wrapper ファイルを作成し、論理合成、インプリメンテーション、ビットストリームの生成を行い、XSA ファイルを生成した。

Vivado 2023.1 で作成した Pmod_OLEDrgb プロジェクトを示す。Pmod_OLED ブロック・デザインを作成し、HDL Wrapper ファイルを生成したところだ。
Pmod_OLEDrgb_66_240509.png

論理合成、インプリメンテーション、ビットストリームの生成を行って成功した。
Project Summary を示す。
Pmod_OLEDrgb_67_240509.png

XSA ファイルを作成した。
Pmod_OLEDrgb_68_240509.png
  1. 2024年05月09日 05:06 |
  2. ZYBO Z7
  3. | トラックバック:0
  4. | コメント:0

Vivado 2023.2 で Pmod_OLEDrgb プロジェクトを作成し Pmod OLEDrgb を動作させる6

Vivado 2023.2 で Pmod_OLEDrgb プロジェクトを作成し Pmod OLEDrgb を動作させる5”の続き。

Getting the PmodOLEDrgb to Work on Zybo”を参考にして、Vivado 2023.2 で ZYBO Z7-20 用の Pmod_OLEDrgb プロジェクトを作成し、Pmod OLEDrgb を動作させてみたいということで、前回は、アプリケーション・プロジェクトの PmodOLEDrgb を作成して、ソースコードをインポートし、ビルドを行って成功した。今回は、ビルドが成功したので、アプリケーション・ソフトウェアを Run したが、エラーが出てしまった。

Vitis 2023.2 の FLOW ウインドウから Run を選択して、アプリケーション・ソフトウェアを起動した。
Pmod_OLEDrgb_62_240507.png

エラーで停止した。
Pmod_OLEDrgb_64_240508.png

エラー内容は

04:51:47 ERROR : invalid command name "ps7_init"
04:51:47 ERROR : Failed to initialize the hardware invalid command name "ps7_init"

だった。

Run Configuration で Board Initialization を TCL から FSBL に変更してみた。
もう一度、Run を選択して、アプリケーション・ソフトウェアを起動した。
やはりエラーだった。
Pmod_OLEDrgb_65_240508.png

エラー内容は

04:49:12 ERROR : timeout: target has not halted
04:49:12 ERROR : [Ljava.lang.StackTraceElement;@ce95525
04:49:12 ERROR : Failed to initialize the hardware Failed to detect FSBL exit status using symbol: FsblHandoffJtagExit Retry by changing the symbol or set environment variable VITIS_FSBL_EXIT_TIMEOUT to change the wait timeout


  1. 2024年05月08日 04:55 |
  2. ZYBO Z7
  3. | トラックバック:0
  4. | コメント:0

Vivado 2023.2 で Pmod_OLEDrgb プロジェクトを作成し Pmod OLEDrgb を動作させる5

Vivado 2023.2 で Pmod_OLEDrgb プロジェクトを作成し Pmod OLEDrgb を動作させる4”の続き。

Getting the PmodOLEDrgb to Work on Zybo”を参考にして、Vivado 2023.2 で ZYBO Z7-20 用の Pmod_OLEDrgb プロジェクトを作成し、Pmod OLEDrgb を動作させてみたいということで、前回は、Vitis を起動し、Embedded Development の Platform Component の PmodOLEDrgb_pf を作成し、ビルドした。ビルドは成功した。今回は、アプリケーション・プロジェクトの PmodOLEDrgb を作成して、ソースコードをインポートし、ビルドを行って成功した。

アプリケーション・プロジェクトを作成する。
Vitis 2023.2 で Embedded Development の Create Embedded Application をクリックする。
Pmod_OLEDrgb_50_240505.png

Create Embedded Application ダイアログが開いた。
Name and Location 画面
Component name に PmodOLEDrgb と入力した。
Componet location に /media/masaaki/Ubuntu_Disk/HDL/2023.2/ZYBO_Z7_20/Pmod_OLEDrgb/vitis_work を指定した。
Next ボタンをクリックした。
Pmod_OLEDrgb_51_240505.png

Select Platform 画面
PmodOLEDrgb_pf を指定した。
Next ボタンをクリックした。
Pmod_OLEDrgb_52_240505.png

Select Domain 画面
OS は standalnoe に指定されている。
Next ボタンをクリックした。
Pmod_OLEDrgb_53_240505.png

Summary 画面
Finish ボタンをクリックした。
Pmod_OLEDrgb_54_240505.png

PmodOLEDrgb アプリケーション・プロジェクトが生成された。
ソースコードをインポートする。
PmodOLEDrgb を展開し Source -> src を右クリックし、右クリックメニューから Import -> FIles... を選択した。
Pmod_OLEDrgb_55_240505.png

Files... ダイアログが開いた。
vivado-library-master/ip/Pmods/pmodOLEDrgb_v1_0/drivers/PmodOLEDrgb_v1_0/examples/bitmap.h を選択した。
Open ボタンをクリックした。
Pmod_OLEDrgb_56_240505.png

同様に main.c もインポートした。

Vitis 2023.2 の FLOW ウインドウで PmodOLEDrgb のビルドを行ったが、エラーなった。
PmodeOLEDrgb.h などが無いようだ。
Pmod_OLEDrgb_57_240505.png

vivado-library-master/ip/Pmods/pmodOLEDrgb_v1_0/drivers/PmodOLEDrgb_v1_0/src ディレクトリのファイルをすべてインポートした。ここに PmodeOLEDrgb.h もある。
これでもう一度ビルドしたが、エラーだった。
xparameters.h に通常定義されている定義の名前が違っているというエラーだった。
xparameters.h に定義されている名前に変更した。
Pmod_OLEDrgb_58_240505.png

これでビルドしたところ成功した。
Pmod_OLEDrgb_59_240505.png
  1. 2024年05月06日 09:32 |
  2. ZYBO Z7
  3. | トラックバック:0
  4. | コメント:0

Vivado 2023.2 で Pmod_OLEDrgb プロジェクトを作成し Pmod OLEDrgb を動作させる4

Vivado 2023.2 で Pmod_OLEDrgb プロジェクトを作成し Pmod OLEDrgb を動作させる3”の続き。

Getting the PmodOLEDrgb to Work on Zybo”を参考にして、Vivado 2023.2 で ZYBO Z7-20 用の Pmod_OLEDrgb プロジェクトを作成し、Pmod OLEDrgb を動作させてみたいということで、前回は、HDL Wrapper ファイルを作成し、論理合成、インプリメンテーション、ビットストリームの生成を行った。更に XSA ファイルを生成した。今回は、Vitis を起動し、Embedded Development の Platform Component の Pmod_OLEDrgb_pf を作成し、ビルドした。ビルドは成功した。

Vivado 2023.2 から Tools メニューから Launch Vitis IDE を選択して、Vitis 2023.2 を起動した。
Vitis 2023.2 が起動した。
Open Workspace をクリックして、ワークスペースを指定する。
Pmod_OLEDrgb_60_240505.png

Open Folder ダイアログが開いた。
HDL/2023.2/ZYBO_Z7_20/Pmod_OLEDrgb ディレクトリに vitis_work ディレクトリを新規作成し、vitis_work をクリックして、Open ボタンをクリックした。
Pmod_OLEDrgb_61_240505.png

プラットフォームを作成する。
Embedded Development の Create Platform Component をクリックした。
Pmod_OLEDrgb_41_240505.png

Create Platform Component ダイアログが開いた。
Name and Location 画面
Component name に PmodOLEDrgb_pf と入力した。
Component location に Browse ボタンをクリックし、/media/masaaki/Ubuntu_Disk/HDL/2023.2/ZYBO_Z7_20/Pmod_OLEDrgb/vitis_work を指定した。
Next ボタンをクリックした。
Pmod_OLEDrgb_42_240505.png

Flow 画面
Hardware Design (XSA) の Browse ボタンをクリックした。
Pmod_OLEDrgb_43_240505.png

Select Hardware Design (XSA) ダイアログが開いた。
/media/masaaki/Ubuntu_Disk/HDL/2023.2/ZYBO_Z7_20/Pmod_OLEDrgb/Pmod_OLED_wrapper.xsa を選択した。
Open ボタンをクリックした。
Pmod_OLEDrgb_44_240505.png

Hardware Design (XSA) に /media/masaaki/Ubuntu_Disk/HDL/2023.2/ZYBO_Z7_20/Pmod_OLEDrgb/Pmod_OLED_wrapper.xsa が入った。
Next ボタンをクリックした。
Pmod_OLEDrgb_45_240505.png

OS and Processor 画面
Operating System が standalone 、Processor が ps7_cortexa9_0 であることを確認して、Next ボタンをクリックした。
Pmod_OLEDrgb_46_240505.png

Summary 画面
Finish ボタンをクリックした。
Pmod_OLEDrgb_47_240505.png

PmodOLEDrgb_pf プラットフォームが作成された。
FLOW ウインドウから Build をクリックした。
Pmod_OLEDrgb_48_240505.png

ビルドが成功した。
Pmod_OLEDrgb_49_240505.png
  1. 2024年05月05日 04:43 |
  2. ZYBO Z7
  3. | トラックバック:0
  4. | コメント:0
»