FC2カウンター FPGAの部屋 2019年11月
FC2ブログ

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

FPGAの部屋

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

Xilinx Runtime (XRT)

Vitis には、Xilinx Runtime (XRT) がある。
Xilinx Runtime (XRT) の資料は、Xilinx Runtime (XRT) Architecture に詳しく載っている。

Xilinx Runtime (XRT) Architecture によると、XRTは下図のLinux PCIe Driver や Linux MPSoC Driver の中に含まれるらしい? (Xilinx Runtime (XRT) Architectureから図を引用)
XRT_1_191113.png

Linux PCIe Driver がAlveo 対応のドライバで、Linux MPSoC Driver がZynq UltraScale+ MPSoC 対応のドライバのようだ。

更に、Platform Overview では、PCIe Based Platforms と Zynq Ultrascale+ MPSoC Based Embedded Platforms に分かれている。
PCIe Based Platforms の図を引用する。
XRT_2_191113.png

PCIe Based Platforms では、U200、U250、U280、U50、AWS F1、Advantech VEGA-4000/4002 に対応するようだ。

Zynq Ultrascale+ MPSoC Based Embedded Platforms の図を引用する。
XRT_3_191113.png

MPSoCベースのプラットフォームは、PetaLinuxベーススタックでサポートされているそうだ。RT Linuxカーネルドライバーzoclの役割をPlatform Overview のGoogle 翻訳結果から引用する。

CMAバッファー管理とキャッシュ管理
SVMプラットフォーム用のSMMUプログラミング
クライアントプロセスに代わって標準化された計算ユニット実行管理
パーシャルリコンフィギュレーションをサポートするプラットフォーム用のxclbinダウンロード
DMA-BUFを介したバッファーのインポートとエクスポート
計算ユニット完了のための割り込み処理


また、Xilinx の GitHub にも、Xilinx/XRT があって、そこからダウンロードし、ビルドすることができるようだ。

改めて、”Vitis Unified Software Development Platform Documentation”を読んでみると、今回やってきた Vitis 2019.2 の組み込みプロセッサ プラットフォームの開発でXRT の対応が無いことに気がついた。
Vitis Unified Software Development Platform Documentation”の”Embedded Processor Platform Development”の”Creating the Software Component”の ”Using PetaLinux for Generating Linux Output Products”の 6. と 7. には XRT サポートの項目がある。
Vitis 2019.2 の組み込みプロセッサ プラットフォームの開発をやってみる2(ソフトウェア・コンポーネントの作成1)"では、そのXRT サポートの設定を行っていなかったので、やり直してみよう。
  1. 2019年11月13日 04:52 |
  2. Vitis
  3. | トラックバック:0
  4. | コメント:0

Vitis 2019.2 の組み込みプロセッサ プラットフォームの開発をやってみる4(プラットフォームの作成)

Vitis 2019.2 の組み込みプロセッサ プラットフォームの開発をやってみる3(ソフトウェア・コンポーネントの作成2)”の続き。

前回はソフトウェア・コンポーネントの作成で sysroot を作成して、linux.bif を作成した。今回は、プラットフォームを作成してみよう。

今回、参考にするのは、”Vitis Unified Software Development Platform Documentation”の”
Embedded Processor Platform Development”の”Creating the Platform”だ。

ultra96v2_min_pkg/pfm ディレクトリに移動して、その下の wksp1 をワークスペースに指定して、Vitis GUI を立ち上げた。
cd ultra96v2_min_pkg/pfm
vitis -workspace wksp1

Vitis_Platform_46_191110.png

Vitis_Platform_47_191110.png

Create Platform Project をクリックした。
New Platform Project ダイアログが立ち上がった。
Project name に ultra96v2_min と入力した。
Vitis_Platform_48_191110.png

Platform Project では、Create from hardware specification のラジオボタンがクリックされていることを確認した。
Vitis_Platform_49_191110.png

Platform Project Specification では、”Vitis 2019.2 の組み込みプロセッサ プラットフォームの開発をやってみる1(ハードウェア・コンポーネントの作成)”で作成した。 xsa ファイルをXSA file に指定した。
/home/masaaki/HDL/Ultra96/Vitis_platform/2019.2/Ultra96V2_Platform1/Ultra96V2_Platform1_wrapper.xsa
Vitis_Platform_50_191110.png

Platform Project が作成された。Linux のドメインを追加する。
psu_cotexa51_0 を右クリックし、右クリックメニューから Add Domain を選択した。
Vitis_Platform_51_191110.png

Name に linux_domain と入力した。
OS から linux を選択した。
Bif File は、”Vitis 2019.2 の組み込みプロセッサ プラットフォームの開発をやってみる3(ソフトウェア・コンポーネントの作成2)”で作成した linux.bif を指定した。
Boot Component Directory と Linux Image Directory には、ultra96v2_min_pkg/pfm/boot ディレクトリを指定した。
Vitis_Platform_52_191110.png

Sysroot Directory に ultra96v2_min_pkg/pfm/sysroots/aarch64-xilinx-linux/ ディレクトリを指定した。
下の図にはビルド・アイコンに丸が付いているが、間違いでもう1つやらなければならない設定がある。
Vitis_Platform_53_191110.png

左のペインの standalone on psu_cortexa53_0 の Board Support Package を選択して、右のペインのModify BSP Settings... ボタンをクリックした。
Vitis_Platform_54_191111.png

Overview の standalone をクリックして、stdin と stdout を psu_uart_1 に変更した。
Vitis_Platform_55_191111.png

これで、トンカチ・アイコンをクリックして、ビルドを開始した。
ビルドが終了して、成功したようだ。
Vitis_Platform_56_191111.png
  1. 2019年11月11日 04:48 |
  2. Vitis
  3. | トラックバック:0
  4. | コメント:0

いわい将門ハーフマラソンに出ました

昨日はいわい将門ハーフマラソンの 10 km 部門に出場しました。
bandou_half_1_191111.jpg

私としては新記録の 55 分 52 秒で走れました。嬉しいです。
bandou_half_2_191111.jpg

昨日の走りのガーミンでのデータです。
bandou_half_3_191111.png

bandou_half_4_191111.png

ほぼイーブンペースです。

bandou_half_5_191111.png

スタート時の渋滞で 6 分/km かかりましたが、その他は 5 分 30 秒 / km 程度のペースです。
最後は割と急な下り坂もあり、5 分 7 秒 / km でした。
最後の坂では十数人抜きました。気持ちよかった。。。ゴールまで若者と競っていたのですが、最後に追い抜きました。
  1. 2019年11月11日 04:09 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

「ジョーカー」(映画)を見てきました

今日は坂東ハーフマラソンの後で、「ジョーカー」(映画)を見てきました。
なんというか話題作なんでしょうが、私は余り好きじゃないですね。
  1. 2019年11月10日 22:02 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

Vitis 2019.2 の組み込みプロセッサ プラットフォームの開発をやってみる3(ソフトウェア・コンポーネントの作成2)

Vitis 2019.2 の組み込みプロセッサ プラットフォームの開発をやってみる2(ソフトウェア・コンポーネントの作成1)”の続き。

前回は、”Creating the Software Component”を参照しながら、PetaLinux 2019.2 を使用して、Vitis 2019.2 のソフトウェア・コンポーネントを作成していったが、petalinux-build までとなった。今回は sysroot を作成して、linux.bif を作成する。

今回も、”Creating the Software Component”を参照しながらやっていく。

ターゲットLinuxシステム用のsysrootセルフインストーラーを作成する。
cd images/linux
petalinux-build --sdk

結構ビルドに時間がかかったが、 sdk.sh ができた。 181.5 MB あって大きい。
Vitis_Platform_35_191109.png

現在のカレント・ディレクトリ上に ultra96v2_min_pkg ディレクトリとその下に pfm ディレクトリを作成した。更に、 pfm ディレクトリの下に boot ディレクトリと wksp1 ディレクトリを作成した。
Vitis_Platform_37_191109.png

sdk.shセルフインストーラーを使用して、sysrootを出力およびインストールする。
./sdk.sh

Enter target directory for SDK を聞かれたので、/media/masaaki/Ubuntu_Disk/tools/Xilinx/PetaLinux/PetaL_Proj/2019.2/Ultra96V2_Platform1/images/linux/ultra96v2_min_pkg/pfm を入力した。

その後、Proceed [Y/n]? と聞かれたので、Y を入力した。
Vitis_Platform_38_191109.png

Vitis_Platform_39_191109.png

ultra96v2_min_pkg/pfm/sysroot ディレクトリの下に、aarch64-xilinx-linux ディレクトリと x86_64-petalinux-linux ができた。
pfm ディレクトリの下に、environment-setup-aarch64-xilinx-linux , site-config-aarch64-xilinx-linux , version-aarch64-xilinx-linux ファイルができた。
Vitis_Platform_40_191109.png

aarch64-xilinx-linux ディレクトリの内容を示す。これは、まさに root file system のようだ。
Vitis_Platform_44_191110.png

x86_64-petalinux-linux ディレクトリを見てみよう。
Vitis_Platform_45_191110.png

最後に linux.bif を作成する。
エディタに”Creating the Software Component”の linux.bif の内容をコピー&ペーストした。
Vitis_Platform_41_191109.png

/* linux */
 the_ROM_image:
 {
  [fsbl_config] a53_x64
  [bootloader] <zynqmp_fsbl.elf>
  [pmufw_image] <pmufw.elf>
  [destination_device=pl] <bitstream>
  [destination_cpu=a53-0, exception_level=el-3, trustzone] <bl31.elf>
  [destination_cpu=a53-0, exception_level=el-2] <u-boot.elf>
 }


ultra96v2_min_pkg ディレクトリ上に linux.bif としてセーブした。
Vitis_Platform_42_191109.png

(2019/11/11 : 追記)
ultra96V2_min_pkg/pfm/boot ディレクトリには、Ultra96V2_Platform1/image/linux にビルドされたファイルの中から bl31.elf, image_ub, pmufw.elf, u-boot.elf, zynqmp_fsbl.elf をコピーした。
Vitis_Platform_43_191110.png


  1. 2019年11月10日 05:10 |
  2. Vitis
  3. | トラックバック:0
  4. | コメント:0

Vitis 2019.2 の組み込みプロセッサ プラットフォームの開発をやってみる2(ソフトウェア・コンポーネントの作成1)

Vitis 2019.2 の組み込みプロセッサ プラットフォームの開発をやってみる1(ハードウェア・コンポーネントの作成)”の続き。

前回は、Vivado 2019.2 の組み込みプロセッサ プラットフォームを作ってみようということで、SDx 2019.1 用に作ったハードウェア・プラットフォーム用のVivado 2019.2 のプロジェクトをVivado 2019.2 にアップグレードして、XSA ファイルを生成した。今回は、”Vitis Unified Software Development Platform Documentation”の”
Embedded Processor Platform Development”の”Creating the Software Component”を参照しながら、Vitis 2019.2 のソフトウェア・コンポーネントを作成していこう。

最初にキーを押すのを間違えて、ソフトウェア・コンポーネントの作成中にUbuntu 18.04 を再起動してしまったので、ログが消えてしまった。。。orz
よって、コマンドの貼り付けるログはほとんど無い。

最初に、PetaLinux のUltra96V2_Platform1 プロジェクトを作成しよう。
petalinux-create --type project --template zynqMP --name Ultra96V2_Platform1
Vitis_Platform_16_191107.png

xsa ファイルを指定して petalinux-config を行う。
cd Ultra96V2_Platform1
petalinux-config --get-hw-description=~/HDL/Ultra96/Vitis_platform/2019.2/Ultra96V2_Platform1/

設定画面が開く。

Image Packaging Configuration -> Root filesystem type で EXT (SD/eMMC/QSPI/SATA/USB) を選択した。
Vitis_Platform_17_191107.png

Yocto Settings -> Enable Debug Tweaks を有効にする (Spaceキーを押す)
Vitis_Platform_18_191107.png

Subsystem AUTO Hardware Settings -> Serial Settings -> Primary stdin/stdout を psu_uart_1 に変更する。
Vitis_Platform_19_191107.png

設定をセーブして、設定画面を終了した。
Vitis_Platform_21_191107.png

エラーが出なかった。PetaLinux 2019.2 から Python 3.6 対応になったようだ。
Vitis_Platform_22_191107.png

カーネルの petalinux-config を行って、設定をしていく。
petalinux-config -c kernel

端末の別タブに設定画面が表示された。
設定を行う。
Device Drivers -> Generic Driver Options -> Size in MB(1024)に変更した。
Vitis_Platform_23_191107.png

Device Drivers -> Staging drivers (ON) はすでにON されていた。

Device Drivers -> Staging drivers -> Xilinx APF Accelerator driver (ON) した。
Vitis_Platform_24_191107.png

Device Drivers -> Staging drivers -> Xilinx APF Accelerator driver -> Xilinx APF DMA engines support (ON)
Vitis_Platform_25_191107.png

CPU Power Management -> CPU idle -> CPU idle PM support (OFF)
Vitis_Platform_26_191107.png

CPU Power Management -> CPU Frequency scaling -> CPU Frequency scaling (OFF)
Vitis_Platform_27_191107.png

設定をセーブして、設定画面を終了した。
Vitis_Platform_28_191107.png

Root FS を設定する。
petalinux-config -c rootfs

Filesystem Packages -> misc -> gcc-runtime -> libstdc++ (ON)
Vitis_Platform_29_191107.png

設定をセーブして、Exit した。
Vitis_Platform_30_191107.png

Ultra96V2_Platform1/project-spec/meta-user/recipes-bsp/device-tree/files ディレクトリの system-user.dtsi を編集した。
Vitis_Platform_31_191107.png

Vitis_Platform_32_191107.png

/include/ "system-conf.dtsi"
/ {
    xlnk {
    compatible = "xlnx,xlnk-1.0";
    };    
};

&sdhci0 {
    disable-wp;
};


プロジェクトをビルドする。
petalinux-build
Vitis_Platform_33_191107.png
  1. 2019年11月09日 06:52 |
  2. Vitis
  3. | トラックバック:0
  4. | コメント:0

Vitis 2019.2 の組み込みプロセッサ プラットフォームの開発をやってみる1(ハードウェア・コンポーネントの作成)

今回は、Vitis 2019.2 のマニュアルの”Vitis Application Acceleration Development Flow Documentation”の”Embedded Processor Platform Development”をやってみようと思う。ただし、チュートリアルはZCU102 用なので、Ultra96-V2 用に変換してみようと思う。具体的には、PetaLinux 部分は、”SDx 2019.1 のUltra96-V2 用プラットフォームを作る1(DSA ファイルを作成)”からのシリーズのブログ記事を参考にしようと思う。

最初に、”Vitis Embedded Platforms”から Figure: Vitis Embedded Software Development Flow を引用する。
Vitis_Platform_34_191108.png

さて、”Creating the Hardware Component”を参考にしながら、”SDx 2019.1 のUltra96-V2 用プラットフォームを作る1(DSA ファイルを作成)”を参考にしてやっていく。

~/HDL/Ultra96/Vitis_Platform/2019.2/ ディレクトリを作成して、そこに、”SDx 2019.1 のUltra96-V2 用プラットフォームを作る1(DSA ファイルを作成)”で生成した Vivado 2019.1 のプロジェクト・ディレクトリをコピーした。
これをVivado 2019.2 でアップグレードする。
Vitis_Platform_2_191102.png

Vivado 2019.2 で、~/HDL/Ultra96/Vitis_Platform/2019.2/Ultra96V2_Platform1 のプロジェクトを開いた。
Older Project Version ダイアログが開いた。Automatically upgrade to the current version のラジオボタンがクリックされているままで、OK ボタンをクリックした。
Vitis_Platform_3_191102.png

Project Upgraded ダイアログが表示された。Report IP Status ボタンをクリックした。
Vitis_Platform_4_191102.png

IP Status ウインドウが表示された。Upgarede Selected ボタンをクリックして、IP を更新した。
Vitis_Platform_5_191102.png

Upgrade IP ダイアログが表示された。OKボタンをクリックした。
Vitis_Platform_6_191102.png

Upgrade IP ダイアログが表示された。OKボタンをクリックした。
Vitis_Platform_7_191102.png

Generate Output Products ダイアログが表示された。Generate ボタンをクリックした。
Vitis_Platform_8_191102.png

Generate Output Products ダイアログが表示された。OKボタンをクリックした。
Vitis_Platform_9_191102.png

Vivado 2019.2 用に変換された。
Vitis_Platform_10_191102.png

このVivado プロジェクトでは、以下のブログに記した作業がされている。
SDx のUltra96-V2 用プラットフォームを作る2(ブロックデザインの作成)
SDx のUltra96-V2 用プラットフォームを作る2(Platform Hardware Interfacesの宣言)
SDx のUltra96-V2 用プラットフォームを作る3(ビットストリームの生成)
SDx のUltra96-V2 用プラットフォームを作る4(DSA ファイルの生成)

これらの作業は”Creating the Hardware Component”とほとんど同じ作業をしている。ただし、DSA ファイルを出力するのではなく、XSA ファイルを出力する。

Creating the Hardware Component”を参考にTCL コンソールを使用してプロジェクトのプロパティを設定した。
Vitis_Platform_11_191102.png

set_property platform.design_intent.embedded true [current_project]
set_property platform.design_intent.server_managed false [current_project]
set_property platform.design_intent.external_host false [current_project]
set_property platform.design_intent.datacenter false [current_project]
set_property platform.default_output_type "sd_card" [current_project]


Vitis_Platform_12_191102.png

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

Vivado のFile メニューからExport -> Export Hardware... を選択した。

Export Hardware ダイアログ表示された。
Include bitstream にチェックを入れて、OKボタンをクリックした。
overwrite を警告するダイアログが出るが、OK ボタンをクリックした。
Vitis_Platform_14_191105.png

Ultra96V2_Platform1_wrapper.xsa ファイルが出力された。
Vitis_Platform_15_191105.png
  1. 2019年11月08日 05:30 |
  2. Vitis
  3. | トラックバック:0
  4. | コメント:0

Vitis HLS 2019.2 でチュートリアルをやってみた

@Venginner さんのツィートでXilinx/HLS-Tiny-Tutorials を知った。てっきりVivado HLS 2019.2 のチュートリアルかと思ったら、そこに、なんと、コマンドとして、vitis_hls -f run_hls.tcl が書いてあった。え〜〜〜、Vitis HLS というツールがあるか。。。と気がついたのでやってみた。

まずは、Xilinx/HLS-Tiny-Tutorials を git clone しよう。
git clone https://github.com/Xilinx/HLS-Tiny-Tutorials.git
cd HLS-Tiny-Tutorials/

Vitis_HLS_1_191106.png

HLS-Tiny-Tutorials ディレクトリの下に行くと、いろいろなチュートリアルがあった。
Vitis_HLS_2_191106.png

その内のalgorithm_2D_convolution_linebuffer ディレクトリに入って、チュートリアルをやってみよう。
cd algorithm_2D_convolution_linebuffer/
vitis_hls -f run_hls.tcl

Vitis_HLS_3_191106.png

proj_2D_convolution_linebuffer ディレクトリが生成されていた。その中はVivado HLS のプロジェクト・ディレクトリとそっくりだ。
ただ、vivado_hls.app の代わりに hls.app ファイルがあった。
Vitis_HLS_4_191106.png

vitis_hls &
で Vitis HLS 2019.2 を立ち上げた。
Vitis_HLS_5_191106.png

Vitis HLS 2019.2 が立ち上がった。
Vitis_HLS_6_191106.png

Open Project をクリックした。
先ほど作成されたproj_2D_convolution_linebuffer ディレクトリを指定した。
Vitis_HLS_7_191106.png

proj_2D_convolution_linebuffer プロジェクトがロードされた。
Vitis_HLS_8_191106.png

C コードの合成は行われているので、結果を示す。
GUI がVivado HLS と少し変わっている。インスタンスが前に表示され、そこをクリックするとレポートが表示される。
レポートの (absolute) の値には時間の単位 ( ns ) が表示されている。
Vitis_HLS_9_191106.png

Analysis 画面を表示した。これもVivado HLS とあまり変わりは無い気がするが、Schedule Viewer しか無くなってしまったのだろうか?
Vitis_HLS_10_191106.png

次に、C/RTL 協調シミュレーションを行った。Vivado HLS 同様のアイコンをクリックして行うことができた。
Vitis_HLS_11_191106.png

Vivado HLS 同様のOpen Wave Viewer アイコンをクリックすると、Vivado 2019.2 が立ち上がって、同様に波形を表示できる。
Vitis_HLS_14_191107.png

Export RTL をやってみよう。
Vivado synthesis, place and route にチェックを入れてOK ボタンをクリックした。
Vitis_HLS_12_191106.png

結果を示す。
Vitis_HLS_13_191106.png

solution1/impl/ip ディレクトリを見た。
Vitis_HLS_15_191107.png

最後に、vitis_hls -f run_hls.tcl のログを貼っておく。

masaaki@masaaki-H110M4-M01:~/Vitis_Work/HLS-Tiny-Tutorials/algorithm_2D_convolution_linebuffer$ vitis_hls -f run_hls.tcl

****** Vitis HLS - High-Level Synthesis from C, C++ and OpenCL v2019.2 (64-bit)
  **** SW Build 2700185 on Thu Oct 24 18:45:48 MDT 2019
  **** IP Build 2699827 on Thu Oct 24 21:16:38 MDT 2019
    ** Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.

source /media/masaaki/Ubuntu_Disk/tools/Xilinx/Vitis/2019.2/scripts/vitis_hls/hls.tcl -notrace
INFO: [HLS 200-10] Running '/media/masaaki/Ubuntu_Disk/tools/Xilinx/Vitis/2019.2/bin/unwrapped/lnx64.o/vitis_hls'
INFO: [HLS 200-10] For user 'masaaki' on host 'masaaki-H110M4-M01' (Linux_x86_64 version 4.15.0-66-generic) on Wed Nov 06 20:29:46 JST 2019
INFO: [HLS 200-10] On os Ubuntu 18.04.3 LTS
INFO: [HLS 200-10] In directory '/home/masaaki/Vitis_Work/HLS-Tiny-Tutorials/algorithm_2D_convolution_linebuffer'
WARNING: [HLS 200-40] Environment variable 'C_INCLUDE_PATH' is set to :/usr/local/cuda/include.
Sourcing Tcl script 'run_hls.tcl'
INFO: [HLS 200-10] Creating and opening project '/home/masaaki/Vitis_Work/HLS-Tiny-Tutorials/algorithm_2D_convolution_linebuffer/proj_2D_convolution_with_linebuffer'.
INFO: [HLS 200-10] Adding design file 'convolution.cpp' to the project
INFO: [HLS 200-10] Adding test bench file 'convolution_test.cpp' to the project
INFO: [HLS 200-10] Creating and opening solution '/home/masaaki/Vitis_Work/HLS-Tiny-Tutorials/algorithm_2D_convolution_linebuffer/proj_2D_convolution_with_linebuffer/solution1'.
INFO: [HLS 200-10] Cleaning up the solution database.
INFO: [HLS 200-10] Setting target device to 'xcvu9p-flga2104-2-i'
INFO: [SYN 201-201] Setting up clock 'default' with a period of 6.66ns.
INFO: [SIM 211-2] *************** CSIM start ***************
INFO: [SIM 211-4] CSIM will launch GCC as the compiler.
   Compiling ../../../../convolution_test.cpp in debug mode
   Compiling ../../../../convolution.cpp in debug mode
   Generating csim.exe

*** TEST PASSED ***
INFO: [SIM 211-1] CSim done with 0 errors.
INFO: [SIM 211-3] *************** CSIM finish ***************
INFO: [HLS 200-10] Analyzing design file 'convolution.cpp' ... 
WARNING: [HLS 207-1553] '#pragma HLS RESOURCE core=axi' is obsoleted and replaced by '#pragma HLS INTERFACE axi': convolution.cpp:211:9
WARNING: [HLS 207-1553] '#pragma HLS RESOURCE core=axi' is obsoleted and replaced by '#pragma HLS INTERFACE axi': convolution.cpp:213:9
WARNING: [HLS 207-1553] '#pragma HLS RESOURCE core=axi' is obsoleted and replaced by '#pragma HLS INTERFACE axi': convolution.cpp:214:9
WARNING: [HLS 207-1553] '#pragma HLS RESOURCE core=axi' is obsoleted and replaced by '#pragma HLS INTERFACE axi': convolution.cpp:215:9
WARNING: [HLS 207-1553] '#pragma HLS RESOURCE core=axi' is obsoleted and replaced by '#pragma HLS INTERFACE axi': convolution.cpp:216:9
WARNING: [HLS 207-1534] 'region' in '#pragma HLS Inline' is deprecated, and it will be removed in future release: convolution.cpp:218:26
WARNING: [HLS 207-1590] Ignore interface attribute or pragma which is not used in top function: convolution.cpp:210:9
WARNING: [HLS 207-1590] Ignore interface attribute or pragma which is not used in top function: convolution.cpp:210:9
WARNING: [HLS 207-1590] Ignore interface attribute or pragma which is not used in top function: convolution.cpp:212:9
WARNING: [HLS 207-1590] Ignore interface attribute or pragma which is not used in top function: convolution.cpp:212:9
WARNING: [HLS 207-1590] Ignore interface attribute or pragma which is not used in top function: convolution.cpp:212:9
WARNING: [HLS 207-1590] Ignore interface attribute or pragma which is not used in top function: convolution.cpp:210:9
WARNING: [HLS 207-1539] extra token before pragma subject is ignored: convolution.cpp:234:33
WARNING: [HLS 207-1539] extra token before pragma subject is ignored: convolution.cpp:235:33
WARNING: [HLS 207-1534] 'region' in '#pragma HLS Inline' is deprecated, and it will be removed in future release: convolution.cpp:238:26
INFO: [HLS 200-777] Using interface defaults for 'Vivado' target.
INFO: [HLS 214-131] Inlining function 'hls::stream<unsigned int, 0>::read(unsigned int&)' into 'hls::stream<unsigned int, 0>::read()' (/media/masaaki/Ubuntu_Disk/tools/Xilinx/Vitis/2019.2/common/technology/autopilot/hls_stream_39.h:97:9)
INFO: [HLS 214-131] Inlining function 'hls::stream<unsigned int, 0>::write(unsigned int const&)' into 'hls::stream<unsigned int, 0>::operator<<(unsigned int const&)' (/media/masaaki/Ubuntu_Disk/tools/Xilinx/Vitis/2019.2/common/technology/autopilot/hls_stream_39.h:76:9)
INFO: [HLS 214-131] Inlining function 'hls::stream<unsigned int, 0>::stream(char const*)' into 'void convolution_strm<unsigned int, 11>(int, int, hls::stream<unsigned int, 0>&, hls::stream<unsigned int, 0>&, unsigned int const*, unsigned int const*)' (convolution.cpp:121:20)
INFO: [HLS 214-131] Inlining function 'hls::stream<unsigned int, 0>::operator<<(unsigned int const&)' into 'void convolution_strm<unsigned int, 11>(int, int, hls::stream<unsigned int, 0>&, hls::stream<unsigned int, 0>&, unsigned int const*, unsigned int const*)' (convolution.cpp:201:17)
INFO: [HLS 214-131] Inlining function 'hls::stream<unsigned int, 0>::read()' into 'void convolution_strm<unsigned int, 11>(int, int, hls::stream<unsigned int, 0>&, hls::stream<unsigned int, 0>&, unsigned int const*, unsigned int const*)' (convolution.cpp:183:36)
INFO: [HLS 214-131] Inlining function 'hls::stream<unsigned int, 0>::operator<<(unsigned int const&)' into 'void convolution_strm<unsigned int, 11>(int, int, hls::stream<unsigned int, 0>&, hls::stream<unsigned int, 0>&, unsigned int const*, unsigned int const*)' (convolution.cpp:170:23)
INFO: [HLS 214-131] Inlining function 'hls::stream<unsigned int, 0>::read()' into 'void convolution_strm<unsigned int, 11>(int, int, hls::stream<unsigned int, 0>&, hls::stream<unsigned int, 0>&, unsigned int const*, unsigned int const*)' (convolution.cpp:160:19)
INFO: [HLS 214-131] Inlining function 'hls::stream<unsigned int, 0>::operator<<(unsigned int const&)' into 'void convolution_strm<unsigned int, 11>(int, int, hls::stream<unsigned int, 0>&, hls::stream<unsigned int, 0>&, unsigned int const*, unsigned int const*)' (convolution.cpp:150:23)
INFO: [HLS 214-131] Inlining function 'hls::stream<unsigned int, 0>::read()' into 'void convolution_strm<unsigned int, 11>(int, int, hls::stream<unsigned int, 0>&, hls::stream<unsigned int, 0>&, unsigned int const*, unsigned int const*)' (convolution.cpp:142:17)
INFO: [HLS 214-131] Inlining function 'hls::stream<unsigned int, 0>::stream(char const*)' into 'void convolution_strm<unsigned int, 11>(int, int, hls::stream<unsigned int, 0>&, hls::stream<unsigned int, 0>&, unsigned int const*, unsigned int const*)' (convolution.cpp:126:20)
INFO: [HLS 214-131] Inlining function 'void convolution_strm<unsigned int, 11>(int, int, hls::stream<unsigned int, 0>&, hls::stream<unsigned int, 0>&, unsigned int const*, unsigned int const*)' into 'filter11x11_strm(int, int, hls::stream<unsigned int, 0>&, hls::stream<unsigned int, 0>&)' (convolution.cpp:244:5)
INFO: [HLS 200-111] Finished Linking Time (s): cpu = 00:00:07 ; elapsed = 00:00:14 . Memory (MB): peak = 933.215 ; gain = 523.031 ; free physical = 853 ; free virtual = 26461
INFO: [HLS 200-111] Finished Checking Pragmas Time (s): cpu = 00:00:07 ; elapsed = 00:00:14 . Memory (MB): peak = 933.215 ; gain = 523.031 ; free physical = 853 ; free virtual = 26461
INFO: [HLS 200-10] Starting code transformations ...
INFO: [HLS 200-111] Finished Standard Transforms Time (s): cpu = 00:00:07 ; elapsed = 00:00:14 . Memory (MB): peak = 933.215 ; gain = 523.031 ; free physical = 842 ; free virtual = 26462
INFO: [HLS 200-10] Checking synthesizability ...
INFO: [HLS 200-111] Finished Checking Synthesizability Time (s): cpu = 00:00:07 ; elapsed = 00:00:14 . Memory (MB): peak = 933.215 ; gain = 523.031 ; free physical = 841 ; free virtual = 26461
INFO: [XFORM 203-502] Unrolling all sub-loops inside loop 'HConvW' (convolution.cpp:140) in function 'filter11x11_strm' for pipelining.
INFO: [XFORM 203-502] Unrolling all sub-loops inside loop 'VConvW' (convolution.cpp:157) in function 'filter11x11_strm' for pipelining.
INFO: [HLS 200-489] Unrolling loop 'HConv' (convolution.cpp:145) in function 'filter11x11_strm' completely with a factor of 11.
INFO: [HLS 200-489] Unrolling loop 'VConv' (convolution.cpp:163) in function 'filter11x11_strm' completely with a factor of 11.
INFO: [XFORM 203-102] Partitioning array 'hwin' (convolution.cpp:120) automatically.
INFO: [XFORM 203-101] Partitioning array 'linebuf' in dimension 1 completely.
INFO: [XFORM 203-721] Changing loop 'Loop_HConvH_proc' (convolution.cpp:139) to a process function for dataflow in function 'filter11x11_strm'.
INFO: [XFORM 203-721] Changing loop 'Loop_VConvH_proc' (convolution.cpp:156) to a process function for dataflow in function 'filter11x11_strm'.
INFO: [XFORM 203-721] Changing loop 'Loop_Border_proc' (convolution.cpp:177) to a process function for dataflow in function 'filter11x11_strm'.
WARNING: [HLS 200-805] An internal stream 'hconv.i1' with default size can result in deadlock. Please consider resizing the stream using the directive 'set_directive_stream' or the 'HLS stream' pragma.
WARNING: [HLS 200-805] An internal stream 'vconv.i2' with default size can result in deadlock. Please consider resizing the stream using the directive 'set_directive_stream' or the 'HLS stream' pragma.
WARNING: [HLS 200-786] Detected dataflow-on-top in function  'filter11x11_strm'  with default interface mode 'ap_ctrl_hs'. Overlapped execution of successive kernel calls will not happen unless interface mode 'ap_ctrl_chain' is used (or 'ap_ctrl_none' for a purely data-driven design).
INFO: [XFORM 203-712] Applying dataflow to function 'filter11x11_strm', detected/extracted 5 process function(s): 
     'filter11x11_strm.entry6'
     'Block_.split163_proc'
     'Loop_HConvH_proc5'
     'Loop_VConvH_proc'
     'Loop_Border_proc'.
INFO: [XFORM 203-401] Performing if-conversion on hyperblock from (convolution.cpp:177:35) to (convolution.cpp:176:9) in function 'Loop_Border_proc'... converting 4 basic blocks.
INFO: [XFORM 203-11] Balancing expressions in function 'Loop_VConvH_proc' (convolution.cpp:92:16)...12 expression(s) balanced.
INFO: [XFORM 203-11] Balancing expressions in function 'Loop_HConvH_proc5' (convolution.cpp:92:16)...12 expression(s) balanced.
INFO: [HLS 200-111] Finished Pre-synthesis Time (s): cpu = 00:00:07 ; elapsed = 00:00:14 . Memory (MB): peak = 933.215 ; gain = 523.031 ; free physical = 823 ; free virtual = 26443
INFO: [XFORM 203-541] Flattening a loop nest 'VConvH' (convolution.cpp:156:20) in function 'Loop_VConvH_proc'.
INFO: [XFORM 203-541] Flattening a loop nest 'HConvH' (convolution.cpp:139:20) in function 'Loop_HConvH_proc5'.
INFO: [XFORM 203-541] Flattening a loop nest 'Border' (convolution.cpp:177:35) in function 'Loop_Border_proc'.
WARNING: [ANALYSIS 214-52] Found false inter dependency for variable 'linebuf.7'.
WARNING: [ANALYSIS 214-52] Found false inter dependency for variable 'linebuf.9'.
WARNING: [ANALYSIS 214-52] Found false inter dependency for variable 'linebuf.2'.
WARNING: [ANALYSIS 214-52] Found false inter dependency for variable 'linebuf.4'.
WARNING: [ANALYSIS 214-52] Found false inter dependency for variable 'linebuf.1'.
WARNING: [ANALYSIS 214-52] Found false inter dependency for variable 'linebuf.3'.
WARNING: [ANALYSIS 214-52] Found false inter dependency for variable 'linebuf.0'.
WARNING: [ANALYSIS 214-52] Found false inter dependency for variable 'linebuf.8'.
WARNING: [ANALYSIS 214-52] Found false inter dependency for variable 'linebuf.6'.
WARNING: [ANALYSIS 214-52] Found false inter dependency for variable 'linebuf.5'.
INFO: [HLS 200-472] Inferring partial write operation for 'linebuf.0' (convolution.cpp:167:41)
INFO: [HLS 200-472] Inferring partial write operation for 'borderbuf' (convolution.cpp:184:34)
INFO: [HLS 200-111] Finished Architecture Synthesis Time (s): cpu = 00:00:08 ; elapsed = 00:00:15 . Memory (MB): peak = 933.215 ; gain = 523.031 ; free physical = 782 ; free virtual = 26403
INFO: [HLS 200-10] Starting hardware synthesis ...
INFO: [HLS 200-10] Synthesizing 'filter11x11_strm' ...
WARNING: [SYN 201-103] Legalizing function name 'filter11x11_strm.entry6' to 'filter11x11_strm_entry6'.
WARNING: [SYN 201-103] Legalizing function name 'Block_.split163_proc' to 'Block_split163_proc'.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-42] -- Implementing module 'filter11x11_strm_entry6' 
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [SCHED 204-11] Starting scheduling ...
INFO: [SCHED 204-11] Finished scheduling.
INFO: [HLS 200-111]  Elapsed time: 14.79 seconds; current allocated memory: 176.923 MB.
INFO: [BIND 205-100] Starting micro-architecture generation ...
INFO: [BIND 205-101] Performing variable lifetime analysis.
INFO: [BIND 205-101] Exploring resource sharing.
INFO: [BIND 205-101] Binding ...
INFO: [BIND 205-100] Finished micro-architecture generation.
INFO: [HLS 200-111]  Elapsed time: 0.01 seconds; current allocated memory: 177.009 MB.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-42] -- Implementing module 'Block_split163_proc' 
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [SCHED 204-11] Starting scheduling ...
INFO: [SCHED 204-11] Finished scheduling.
INFO: [HLS 200-111]  Elapsed time: 0.01 seconds; current allocated memory: 177.080 MB.
INFO: [BIND 205-100] Starting micro-architecture generation ...
INFO: [BIND 205-101] Performing variable lifetime analysis.
INFO: [BIND 205-101] Exploring resource sharing.
INFO: [BIND 205-101] Binding ...
INFO: [BIND 205-100] Finished micro-architecture generation.
INFO: [HLS 200-111]  Elapsed time: 0 seconds; current allocated memory: 177.165 MB.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-42] -- Implementing module 'Loop_HConvH_proc5' 
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [SCHED 204-11] Starting scheduling ...
INFO: [SCHED 204-61] Pipelining loop 'HConvH_HConvW'.
INFO: [SCHED 204-61] Pipelining result : Target II = 1, Final II = 1, Depth = 2.
INFO: [SCHED 204-11] Finished scheduling.
INFO: [HLS 200-111]  Elapsed time: 0.07 seconds; current allocated memory: 177.457 MB.
INFO: [BIND 205-100] Starting micro-architecture generation ...
INFO: [BIND 205-101] Performing variable lifetime analysis.
INFO: [BIND 205-101] Exploring resource sharing.
INFO: [BIND 205-101] Binding ...
INFO: [BIND 205-100] Finished micro-architecture generation.
INFO: [HLS 200-111]  Elapsed time: 0.09 seconds; current allocated memory: 177.785 MB.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-42] -- Implementing module 'Loop_VConvH_proc' 
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [SCHED 204-11] Starting scheduling ...
INFO: [SCHED 204-61] Pipelining loop 'VConvH_VConvW'.
INFO: [SCHED 204-61] Pipelining result : Target II = 1, Final II = 1, Depth = 3.
INFO: [SCHED 204-11] Finished scheduling.
INFO: [HLS 200-111]  Elapsed time: 0.1 seconds; current allocated memory: 178.117 MB.
INFO: [BIND 205-100] Starting micro-architecture generation ...
INFO: [BIND 205-101] Performing variable lifetime analysis.
INFO: [BIND 205-101] Exploring resource sharing.
INFO: [BIND 205-101] Binding ...
INFO: [BIND 205-100] Finished micro-architecture generation.
INFO: [HLS 200-111]  Elapsed time: 0.06 seconds; current allocated memory: 178.599 MB.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-42] -- Implementing module 'Loop_Border_proc' 
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [SCHED 204-11] Starting scheduling ...
INFO: [SCHED 204-61] Pipelining loop 'Border_L'.
INFO: [SCHED 204-61] Pipelining result : Target II = 1, Final II = 1, Depth = 5.
INFO: [SCHED 204-11] Finished scheduling.
INFO: [HLS 200-111]  Elapsed time: 0.1 seconds; current allocated memory: 178.915 MB.
INFO: [BIND 205-100] Starting micro-architecture generation ...
INFO: [BIND 205-101] Performing variable lifetime analysis.
INFO: [BIND 205-101] Exploring resource sharing.
INFO: [BIND 205-101] Binding ...
INFO: [BIND 205-100] Finished micro-architecture generation.
INFO: [HLS 200-111]  Elapsed time: 0.04 seconds; current allocated memory: 179.320 MB.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-42] -- Implementing module 'filter11x11_strm' 
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [SCHED 204-11] Starting scheduling ...
INFO: [SCHED 204-11] Finished scheduling.
INFO: [HLS 200-111]  Elapsed time: 0.07 seconds; current allocated memory: 179.495 MB.
INFO: [BIND 205-100] Starting micro-architecture generation ...
INFO: [BIND 205-101] Performing variable lifetime analysis.
INFO: [BIND 205-101] Exploring resource sharing.
INFO: [BIND 205-101] Binding ...
INFO: [BIND 205-100] Finished micro-architecture generation.
INFO: [HLS 200-111]  Elapsed time: 0.18 seconds; current allocated memory: 179.938 MB.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-10] -- Generating RTL for module 'filter11x11_strm_entry6' 
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [RTGEN 206-100] Finished creating RTL model for 'filter11x11_strm_entry6'.
INFO: [HLS 200-111]  Elapsed time: 0.13 seconds; current allocated memory: 180.216 MB.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-10] -- Generating RTL for module 'Block_split163_proc' 
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_add_32ns_32s_32_1_1': 1 instance(s).
INFO: [RTGEN 206-100] Finished creating RTL model for 'Block_split163_proc'.
INFO: [HLS 200-111]  Elapsed time: 0.02 seconds; current allocated memory: 180.672 MB.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-10] -- Generating RTL for module 'Loop_HConvH_proc5' 
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_add_11ns_11ns_11_1_1': 1 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_add_32ns_32ns_32_1_1': 2 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_add_64ns_64ns_64_1_1': 1 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_mul_10ns_32s_32_1_1': 4 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_mul_11ns_32s_32_1_1': 3 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_mul_32ns_32ns_64_1_1': 1 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_mul_8ns_32s_32_1_1': 2 instance(s).
INFO: [RTGEN 206-100] Finished creating RTL model for 'Loop_HConvH_proc5'.
INFO: [HLS 200-111]  Elapsed time: 0.04 seconds; current allocated memory: 181.565 MB.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-10] -- Generating RTL for module 'Loop_VConvH_proc' 
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_add_11ns_11ns_11_1_1': 2 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_add_32ns_32ns_32_1_1': 2 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_add_64ns_64ns_64_1_1': 1 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_mul_10ns_32s_32_1_1': 4 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_mul_11ns_32s_32_1_1': 3 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_mul_32ns_32ns_64_1_1': 1 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_mul_8ns_32s_32_1_1': 2 instance(s).
INFO: [RTGEN 206-100] Finished creating RTL model for 'Loop_VConvH_proc'.
INFO: [HLS 200-111]  Elapsed time: 0.17 seconds; current allocated memory: 183.909 MB.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-10] -- Generating RTL for module 'Loop_Border_proc' 
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_add_11ns_11ns_11_1_1': 2 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_add_11ns_11s_11_1_1': 1 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_add_32ns_32s_32_1_1': 3 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_add_64ns_64ns_64_1_1': 1 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_mul_32ns_32ns_64_1_1': 1 instance(s).
INFO: [RTGEN 206-100] Finished creating RTL model for 'Loop_Border_proc'.
INFO: [HLS 200-111]  Elapsed time: 0.23 seconds; current allocated memory: 186.334 MB.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-10] -- Generating RTL for module 'filter11x11_strm' 
INFO: [HLS 200-10] ----------------------------------------------------------------
WARNING: [RTGEN 206-101] Design contains AXI ports. Reset is fixed to synchronous and active low.
INFO: [RTGEN 206-500] Setting interface mode on port 'filter11x11_strm/width' to 'ap_none'.
INFO: [RTGEN 206-500] Setting interface mode on port 'filter11x11_strm/height' to 'ap_none'.
INFO: [RTGEN 206-500] Setting interface mode on port 'filter11x11_strm/src_V' to 'axis' (register, both mode).
INFO: [RTGEN 206-500] Setting interface mode on port 'filter11x11_strm/dst_V' to 'axis' (register, both mode).
INFO: [RTGEN 206-500] Setting interface mode on function 'filter11x11_strm' to 'ap_ctrl_hs'.
INFO: [RTGEN 206-100] Finished creating RTL model for 'filter11x11_strm'.
INFO: [HLS 200-111]  Elapsed time: 0.19 seconds; current allocated memory: 188.429 MB.
INFO: [RTMG 210-282] Generating pipelined core: 'filter11x11_strm_filter11x11_strm_mul_32ns_32ns_64_1_1_Multiplier_0'
INFO: [RTMG 210-282] Generating pipelined core: 'filter11x11_strm_filter11x11_strm_mul_8ns_32s_32_1_1_Multiplier_1'
INFO: [RTMG 210-282] Generating pipelined core: 'filter11x11_strm_filter11x11_strm_mul_10ns_32s_32_1_1_Multiplier_2'
INFO: [RTMG 210-282] Generating pipelined core: 'filter11x11_strm_filter11x11_strm_mul_11ns_32s_32_1_1_Multiplier_3'
INFO: [RTMG 210-278] Implementing memory 'filter11x11_strm_Loop_VConvH_proc_linebuf_0_ram (RAM)' using block RAMs with power-on initialization.
INFO: [RTMG 210-278] Implementing memory 'filter11x11_strm_Loop_VConvH_proc_linebuf_1_ram (RAM)' using block RAMs with power-on initialization.
INFO: [RTMG 210-278] Implementing memory 'filter11x11_strm_Loop_Border_proc_borderbuf_ram (RAM)' using block RAMs.
INFO: [RTMG 210-285] Implementing FIFO 'width_c_U(filter11x11_strm_fifo_w32_d2_A)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'width_c176_U(filter11x11_strm_fifo_w32_d2_A)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'height_c_U(filter11x11_strm_fifo_w32_d2_A)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'height_c177_U(filter11x11_strm_fifo_w32_d2_A)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'width_c178_U(filter11x11_strm_fifo_w32_d3_A)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'height_c179_U(filter11x11_strm_fifo_w32_d2_A)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'vconv_xlim_loc_c_U(filter11x11_strm_fifo_w32_d2_A)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'hconv_i1_U(filter11x11_strm_fifo_w32_d2_A)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'vconv_i2_U(filter11x11_strm_fifo_w32_d2_A)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'height_c180_U(filter11x11_strm_fifo_w32_d2_A)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'vconv_xlim_loc_c181_U(filter11x11_strm_fifo_w32_d2_A)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'start_for_Block_split163_proc_U0_U(filter11x11_strm_start_for_Block_split163_proc_U0)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'start_for_Loop_Border_proc_U0_U(filter11x11_strm_start_for_Loop_Border_proc_U0)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'start_for_Loop_VConvH_proc_U0_U(filter11x11_strm_start_for_Loop_VConvH_proc_U0)' using Shift Registers.
INFO: [HLS 200-111] Finished generating all RTL models Time (s): cpu = 00:00:10 ; elapsed = 00:00:18 . Memory (MB): peak = 933.215 ; gain = 523.031 ; free physical = 749 ; free virtual = 26381
INFO: [VHDL 208-304] Generating VHDL RTL for filter11x11_strm with prefix filter11x11_strm_.
INFO: [VLOG 209-307] Generating Verilog RTL for filter11x11_strm with prefix filter11x11_strm_.
INFO: [HLS 200-790] **** Loop Constraint Status: All loop constraints were satisfied.
INFO: [HLS 200-789] **** Estimated Fmax: 215.89 MHz
INFO: [HLS 200-112] Total elapsed time: 18.13 seconds; peak allocated memory: 188.429 MB.
INFO: [Common 17-206] Exiting vitis_hls at Wed Nov  6 20:30:04 2019...

  1. 2019年11月07日 05:21 |
  2. Vitis HLS
  3. | トラックバック:0
  4. | コメント:0

Vivado 2019.2 のプロジェクトを作り Vitis でソフトウェア開発4

Vivado 2019.2 のプロジェクトを作り Vitis でソフトウェア開発3”の続き。

前回は、Vivado のブロックデザインで、LED にGPIO を付けたはずなので、LED の点滅させてみよう、ということで、LED_test アプリケーション・プロジェクトと作成し、動作させてみようとしたらVivado で作った回路のミスが発覚した。今回は、そのミスを修正して、もう一度、アプリケーションを動作させてみよう。

Vivado 2019.2 のブロックデザインで、LED の代わりにボタンスイッチを付けてしまったのが発覚したので、ボタンスイッチへのポートとAXI_GPIO を削除した。
Vivado2019_2_37_191104.png

Board ウインドウでZybo Z7−10 −> GPIO −> 4 LEDs を右クリックし、右クリックメニューから Connect Board Component... を選択する。
Vivado2019_2_38_191104.png

Connect Board Component ダイアログが表示された。AXI GPIO -> GPIO を選択して、OK ボタンをクリックする。
Vivado2019_2_39_191104.png

AXI GPIO と led_4bits ポートが追加された。Run Connection Automation をクリックする。
Vivado2019_2_40_191104.png

Run Connection Automation ダイアログが表示された。そのまま OK ボタンをクリックする。
Vivado2019_2_41_191104.png

配線が終了した。
Vivado2019_2_42_191104.png

Address Editor 画面を示す。
Vivado2019_2_43_191104.png

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

File メニューから Export -> Export Hardware... を選択する。
Export Hardware ダイアログが表示された。OK ボタンをクリックする。
Vivado2019_2_45_191104.png

Vitis 2019.2 に戻って、小林さんに教えていただいた Update Hardware Specification を試してみよう。
gpio_test_platform を右クリックし、右クリックメニューから Update Hardware Specification を選択する。
Vivado2019_2_46_191104.png

Update Hardware Specification ダイアログが表示された。そのまま OK ボタンをクリックする。
Vivado2019_2_47_191104.png

Update Hardware Specification ダイアログが表示されて、アップデートが成功したということだ。
Vivado2019_2_48_191105.png

ビルド・アイコンをクリックして、ビルドを行った。
Vivado2019_2_50_191105.png

ビルド終了したが、gpio_test_platform アイコンは正常の状態に戻らない?
Vivado2019_2_51_191105.png

LED_test_system も再ビルドを行った。
Vivado2019_2_52_191105.png

Platform Invalid になってしまった。
Vivado2019_2_53_191105.png

結局、すべてのプロジェクトを削除して、プラットフォーム・プロジェクトやアプリケーション・プロジェクトを再度作成した。

なお、プラットフォーム・プロジェクトを作成後、アプリケーション・プロジェクトを作成する時のプラットフォームを選択するダイアログで、gpio_test_platform プラットフォームが表示に無かった。
その場合は、ダイアログの + アイコンをクリックして、gpio_test_platform プラットフォームを追加する。
Vivado2019_2_54_191105.png

gpio_test_platform プラットフォーム・ディレクトリを選択すると、ダイアログのプラットフォームを表示する部分に表示された。
Vivado2019_2_55_191105.png

その後、ZYBO Z7-10 でアプリケーションの動作テストを行ったところ、正常に動作した。LED も 2 進表示で点滅した。
Vivado2019_2_56_191105.png

LED_test.c を貼っておく。

// LED_test.c
// 2019/11/04 by marsee
//

#include <stdint.h>
#include <unistd.h>

#include "xparameters.h"

int main(){
    volatile uint32_t *axi_gpio_data = (uint32_t *)XPAR_AXI_GPIO_0_BASEADDR;
    volatile uint32_t *axi_gpio_tri = (uint32_t *)(XPAR_AXI_GPIO_0_BASEADDR+4);
    int i, j;

    *axi_gpio_tri = 0; // Set All Output

    for(j=0; j<5; j++){
        for(i=0; i<16; i++){
            *axi_gpio_data = i;
            printf("j = %d, i = %d\n",j, i);
            usleep(500000); // 0.5sec sleep
        }
    }

    return(0);
}

  1. 2019年11月06日 05:32 |
  2. Vitis
  3. | トラックバック:0
  4. | コメント:0

Vivado 2019.2 のプロジェクトを作り Vitis でソフトウェア開発3

Vivado 2019.2 のプロジェクトを作り Vitis でソフトウェア開発2”の続き。

前回は、Vitis でHello World アプリケーション・プロジェクトを作成して動作を確認できた。今回は、Vivado のブロックデザインで、LED にGPIO を付けたはずなので、LED の点滅させてみよう。

Vitis のFile メニューからNew -> Application Project ... を選択する。

New Application Project の Create a New Application Project ダイアログが表示される。
Project name を LED_test と入力する。
Vivado2019_2_27_191104.png

Platform では、gpio_test_platform を選択する。
Vivado2019_2_28_191104.png

Domain はデフォルトとする。
Vivado2019_2_29_191104.png

Templates では Empty Application を選択し、Finish ボタンをクリックする。
Vivado2019_2_30_191104.png

LED_test_system の下にLED_test が生成された。
LED_test の下の src ディレクトリを展開して、右クリックし、右クリックメニューから New -> File を選択する。
Vivado2019_2_31_191104.png

New File ダイアログが表示された。
Fiel name に LED_tert.c と入力し、Finish ボタンをクリックする。
Vivado2019_2_32_191104.png

LED_test.c ファイルができたので、ソースコードを入力した。
Vivado2019_2_33_191104.png

トンカチ・アイコンをクリックして、ビルドを行った。
Vivado2019_2_34_191104.png

ビットストリームをダウンロードしよう。
Xilinx メニューからProgram FPGA を選択する。

Program FPGA ダイアログが表示される。
Program ボタンをクリックする。
Vivado2019_2_35_191104.png

Assistant ウインドウのDebug に緑チェックマークが付いていることを確認して、右クリックし、右クリックメニューからRun -> Launch on Hardware (Single Application Debug) を選択したが、LED が点灯しない。。。
何度やってもだめだ。。。

Vivado のブロックデザインをよく見ると、axi_gpio からつながっているのは btns_4bits だった。。。orz
led_4bits と間違えてしまったようだ。
Vivado2019_2_36_191104.png
  1. 2019年11月05日 05:34 |
  2. Vitis
  3. | トラックバック:0
  4. | コメント:0

Vivado 2019.2 のプロジェクトを作り Vitis でソフトウェア開発2

Vivado 2019.2 のプロジェクトを作り Vitis でソフトウェア開発1”の続き。

前回は、Vivado 2019.2 が11月1日にリリースされたが、このバージョンからSDK が無くなった。それじゃ、どうやって、ZYNQ とかでソフトウェアを開発するのか?といったらVitis を使用することになる。そのVitis を使ってソフトウェア開発する手順を確認してみよう。ということで、ZYBO Z7-10 を使用したaxi_gpio を使用して4 LED を制御する簡単な回路をVivado 2019.2 で作成し、Vitis 2019.2 でプラットフォーム・プロジェクトを生成してビルドした。今回は、Vitis でHello World アプリケーション・プロジェクトを作成して動作を確認してみよう。

Vitis のFile メニューからNew -> Application Project ... を選択する。
Vivado2019_2_15_191103.png

New Application Project の Create a New Application Project ダイアログが表示される。
Project name を Hello_World と入力する。
Vivado2019_2_16_191103.png

Platform では、前回作成した gpio_test_platform を選択する。
Vivado2019_2_17_191103.png

Domain はデフォルトとした。

Templates では Hello World を選択し、Finish ボタンをクリックする。
Vivado2019_2_18_191103.png

これでアプリケーション・プロジェクトが生成されたので、ビルドを行う。
トンカチ・アイコンをクリックするとビルドされる。
Vivado2019_2_19_191103.png

ビルドが終了し、Hello_World.elf ファイルが生成された。
Vivado2019_2_20_191103.png

gtkterm を起動する。
Configuration -> Port でPort に後のUSB 番号を指定する。Baud Rate に 115200 を指定する。
Vivado2019_2_21_191103.png

ビットストリームをダウンロードしよう。
Xilinx メニューからProgram FPGA を選択する。
Vivado2019_2_22_191103.png

Program FPGA ダイアログが表示される。
Program ボタンをクリックする。
Vivado2019_2_23_191103.png

Assistant ウインドウのDebug に緑チェックマークが付いていることを確認して、右クリックし、右クリックメニューからRun -> Launch on Hardware (Single Application Debug) を選択する。
Vivado2019_2_24_191103.png

起動後の様子を示す。
Vivado2019_2_25_191103.png

gtkterm を見ると、Hello World が表示されている。
Vivado2019_2_26_191103.png
  1. 2019年11月04日 04:23 |
  2. Vitis
  3. | トラックバック:0
  4. | コメント:0

Vivado 2019.2 のプロジェクトを作り Vitis でソフトウェア開発1

Vivado 2019.2 が11月1日にリリースされたが、このバージョンからSDK が無くなった。それじゃ、どうやって、ZYNQ とかでソフトウェアを開発するのか?といったらVitis を使用することになる。そのVitis を使ってソフトウェア開発する手順を確認してみよう。

なお、Vitis 2019.2 のやり方については、”Vitis Unified Software Development Platform Documentation"を参照している。

まずは、Vivado 2019.2 にDigilent 社のFPGA ボードのボード・ファイルをインストールする。(ボード・ファイルのインストール方法は”ZYBO Z7-20 のボードファイルをVivado 2017.2 にインストールする”を参照のこと)
Vivado 2019.2 で ZYBO Z7-10 を使用した gpio_test プロジェクトを作成した。

IP Integrator を使用してブロックデザインを作成した。作成したブロックデザインを示す。すでにラッパーファイルを作成してある。
Vivado2019_2_1_191103.png

Vivado2019_2_2_191103.png

axi_gpio を使用して、4ビットのLED に表示するだけのシンプルな回路だ。
この回路を論理合成、インプリメンテーション、ビットストリームの生成を行った。結果を示す。なお、クロック周波数は 50 MHz となっている。
Vivado2019_2_3_191103.png

File メニューからExport -> Export Hardware を選択して、ハードウェアをエクスポートする。
Vivado2019_2_4_191103.png

Include bitstream のチェックボックスにチェックを入れて、OK ボタンをクリックする。
Vivado2019_2_5_191103.png

gpio_test_wrapper.xsa がエクスポートされている。
Vivado2019_2_6_191103.png

Tools メニューのLaunch Vitis を選択して、Vitis 2019.2 を起動する。
Vivado2019_2_7_191103.png

Vitis のWorkSpace を聞いてくるので、Vivado のプロジェクトのディレクトリを指定した。
Vivado2019_2_8_191103.png

Vitis 2019.2 が起動した。
Vivado2019_2_9_191103.png

まずはプラットフォームを生成する。
Vitis で Create Platform Project を選択する。
すると、Create platform project ダイアログが表示された。
Project name に gpio_test_platform と入力して、Next > ボタンをクリックした。
Vivado2019_2_10_191103.png

Platform Project はXSA を指定するので、そのままNext > ボタンをクリックする。
Vivado2019_2_12_191103.png

gpio_test_wrapper.xsa ファイルを指定して、Finish ボタンをクリックする。
Vivado2019_2_12_191103.png

プラットフォーム・プロジェクトが生成された。
トンカチ アイコンをクリックして、Debug コンフィギュレーションでビルドする。
Vivado2019_2_13_191103.png

ビルドが成功した。
  1. 2019年11月03日 09:26 |
  2. Vitis
  3. | トラックバック:0
  4. | コメント:0

SDx 2019.1 のUltra96-V2 用プラットフォームを作る6(SDx 2)

SDx 2019.1 のUltra96-V2 用プラットフォームを作る5(SDx 1)”の続き。

前回は、SDx を立ち上げてプラットフォーム・プロジェクトを生成し、ビルドして成功した。今回は、生成されたsd_card ディレクトリにファイルをMicroSD カードに書いて動作をチェックする。

SDx の Assistant ウインドウの sdx_app1 のDebug の下に SD Card Image ができていた。右クリックし、右クリックメニューからOpen -> Open in File Browser を選択すると、nautilus が開いて、SD Card Image のファイルが表示された。
SDx2019_1_platform_65_191102.png

sd_card ディレクトリのファイルをMicroSD カードの第1パーティションに書いて、Ultra96-V2 の電源をON し、gtkterm の出力を見たところアプリケーションが起動して結果が表示された。
SDx2019_1_platform_66_191102.png

次に、PetaLinux 環境でのSDx のアプリケーションを試す。
SDx のUltra96-V2 用プラットフォームを作る11(LinuxのSDx アプリケーション・プロジェクトを作成)”の通りに sdx_app1_linux アプリケーション・プロジェクトを作成して、ビルドを行って成功した。
SDx2019_1_platform_67_191102.png

Assistant ウインドウの sdx_app1_linux のDebug の下に SD Card Image ができていた。右クリックし、右クリックメニューからOpen -> Open in File Browser を選択すると、nautilus が開いて、SD Card Image のファイルが表示された。
それらのファイルをMicro SD カードの第1パーティション(FAT32 フォーマット)にコピーした。
SDx2019_1_platform_68_191102.png

Micro SD カードの第2パーティションには、rootfs.tar.gz を展開する。
まずは、Micro SD カードの第2パーティションのファイルをすべて削除した。
cd /media/masaaki/rootfs/
sudo rm -r *
sync


rootfs.tar.gz をMicro SD カードの第2パーティションに展開した。
cd /media/masaaki/Ubuntu_Disk/tools/Xilinx/PetaLinux/PetaL_Proj/2019.1/Ultra96V2_Platform1/images/linux/
sudo tar fxz rootfs.tar.gz -C /media/masaaki/rootfs/
sync

SDx2019_1_platform_69_191102.png

ファイルがコピーされた。
SDx2019_1_platform_70_191102.png

Micro SD カードをUltra96-V2 に挿入して電源ON すると、PetaLinux 2019.1 が立ち上がった。
SDx2019_1_platform_71_191102.png

Micro SD カードの第1パーティションは、/run/media/mmcblk0p1/ ディレクトリにマウントされていた。そこに cd した。
cd /run/media/mmcblk0p1/

SDx アプリケーション・プロジェクトの実行ファイルを実行した。
./sdx_app1_linux.elf
すると、libsds_lib.so がオープンできないというエラーになった。これは、2018.3 のときと同じだ。

./sdx_app1_linux.elf: error while loading shared libraries: libsds_lib.so: cannot open shared object file: No such file or directory


SDx2019_1_platform_72_191102.png

libsds_lib.so をMicro SD カードの第1パーティションにコピーして、Ultra96-V2 に挿入して電源ON。
libsds_lib.so を /lib にコピーした。
cd /run/media/mmcblk0p1/
cp libsds_lib.so /lib

再度、SDx アプリケーション・プロジェクトの実行ファイルを実行した。
./sdx_app1_linux.elf
途中から、どこかに行って帰ってこない。やはり、2018.3 のときと同じだ。

root@Ultra96V2_Platform1:/run/media/mmcblk0p1# ./sdx_app1_linux.elf 
[   39.417553] xlnk_eng_probe ...
[   39.420621] uio name xilinx-xlnk-eng.0
[   39.424396] xilinx-xlnk-eng xilinx-xlnk-eng.0: physical base : 0xa0000000
[   39.431181] xilinx-xlnk-eng xilinx-xlnk-eng.0: register range : 0x10000
[   39.437789] xilinx-xlnk-eng xilinx-xlnk-eng.0: base remapped to: 0xffffff800ca10000
[   39.445602] xilinx-xlnk-eng xilinx-xlnk-eng.0: xilinx-xlnk-eng uio registered



最後にPetaLinux 2019.1 に起動メッセージを貼っておく。

Xilinx Zynq MP First Stage Boot Loader 
Release 2019.1   Oct 25 2019  -  19:37:23
NOTICE:  ATF running on XCZU3EG/silicon v4/RTL5.1 at 0xfffea000
NOTICE:  BL31: Secure code at 0x0
NOTICE:  BL31: Non secure code at 0x8000000
NOTICE:  BL31: v2.0(release):xilinx-v2018.3-720-g80d1c790
NOTICE:  BL31: Built : 19:37:05, Oct 25 2019
PMUFW:  v1.1


U-Boot 2019.01 (Oct 25 2019 - 19:36:32 +0000)

Board: Xilinx ZynqMP
DRAM:  2 GiB
usb dr_mode not found
usb dr_mode not found
EL Level:   EL2
Chip ID:    zu3eg
MMC:   mmc@ff160000: 0, mmc@ff170000: 1
Loading Environment from FAT... *** Warning - bad CRC, using default environment

In:    serial@ff010000
Out:   serial@ff010000
Err:   serial@ff010000
Board: Xilinx ZynqMP
Bootmode: SD_MODE
Reset reason:   EXTERNAL 
U-BOOT for Ultra96V2_Platform1

Hit any key to stop autoboot:  0 
Device: mmc@ff160000
Manufacturer ID: 74
OEM: 4a60
Name: USD   
Bus Speed: 50000000
Mode : SD High Speed (50MHz)
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 7.5 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes
18114644 bytes read in 1294 ms (13.3 MiB/s)
## Loading kernel from FIT Image at 10000000 ...
   Using 'conf@system-top.dtb' configuration
   Trying 'kernel@1' kernel subimage
     Description:  Linux kernel
     Type:         Kernel Image
     Compression:  uncompressed
     Data Start:   0x10000104
     Data Size:    18082304 Bytes = 17.2 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x00080000
     Entry Point:  0x00080000
     Hash algo:    sha1
     Hash value:   617dc56366cbe452dc0d885fdf95b6b2b02c9cc3
   Verifying Hash Integrity ... sha1+ OK
## Loading fdt from FIT Image at 10000000 ...
   Using 'conf@system-top.dtb' configuration
   Trying 'fdt@system-top.dtb' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x1113ec08
     Data Size:    30421 Bytes = 29.7 KiB
     Architecture: AArch64
     Hash algo:    sha1
     Hash value:   1451d63dc05df23a47fb8619d525e564a5ee7bc5
   Verifying Hash Integrity ... sha1+ OK
   Booting using the fdt blob at 0x1113ec08
   Loading Kernel Image ... OK
   Loading Device Tree to 0000000007ff5000, end 0000000007fff6d4 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 4.19.0-xilinx-v2019.1 (oe-user@oe-host) (gcc version 8.2.0 (GCC)) #1 SMP Fri Oct 25 19:26:41 UTC 2019
[    0.000000] Machine model: xlnx,zynqmp
[    0.000000] earlycon: cdns0 at MMIO 0x00000000ff010000 (options '115200n8')
[    0.000000] bootconsole [cdns0] enabled
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 1024 MiB at 0x000000003fc00000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.1
[    0.000000] random: get_random_bytes called from start_kernel+0x94/0x3f8 with crng_init=0
[    0.000000] percpu: Embedded 22 pages/cpu @(____ptrval____) s52568 r8192 d29352 u90112
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: enabling workaround for ARM erratum 845719
[    0.000000] Speculative Store Bypass Disable mitigation not required
[    0.000000] CPU features: detected: Kernel page table isolation (KPTI)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 516867
[    0.000000] Kernel command line: earlycon console=ttyPS0,115200 clk_ignore_unused root=/dev/mmcblk0p2 rw rootwait
[    0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.000000] Memory: 997044K/2096128K available (10748K kernel code, 634K rwdata, 5408K rodata, 832K init, 509K bss, 50508K reserved, 1048576K cma-reserved)
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GIC: Adjusting CPU interface base to 0x00000000f902f000
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] arch_timer: cp15 timer(s) running at 100.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x171024e7e0, max_idle_ns: 440795205315 ns
[    0.000004] sched_clock: 56 bits at 100MHz, resolution 10ns, wraps every 4398046511100ns
[    0.008329] Console: colour dummy device 80x25
[    0.012482] Calibrating delay loop (skipped), value calculated using timer frequency.. 200.00 BogoMIPS (lpj=400000)
[    0.022839] pid_max: default: 32768 minimum: 301
[    0.027548] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
[    0.034093] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes)
[    0.042085] ASID allocator initialised with 32768 entries
[    0.046597] rcu: Hierarchical SRCU implementation.
[    0.051584] EFI services will not be available.
[    0.055933] smp: Bringing up secondary CPUs ...
[    0.060614] Detected VIPT I-cache on CPU1
[    0.060653] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.061001] Detected VIPT I-cache on CPU2
[    0.061021] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.061335] Detected VIPT I-cache on CPU3
[    0.061355] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.061400] smp: Brought up 1 node, 4 CPUs
[    0.095756] SMP: Total of 4 processors activated.
[    0.100430] CPU features: detected: 32-bit EL0 Support
[    0.108148] CPU: All CPU(s) started at EL2
[    0.109610] alternatives: patching kernel code
[    0.115342] devtmpfs: initialized
[    0.120903] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.126999] futex hash table entries: 1024 (order: 4, 65536 bytes)
[    0.158338] xor: measuring software checksum speed
[    0.197360]    8regs     :  2375.000 MB/sec
[    0.237387]    8regs_prefetch:  2052.000 MB/sec
[    0.277416]    32regs    :  2725.000 MB/sec
[    0.317448]    32regs_prefetch:  2309.000 MB/sec
[    0.317479] xor: using function: 32regs (2725.000 MB/sec)
[    0.321800] pinctrl core: initialized pinctrl subsystem
[    0.327841] NET: Registered protocol family 16
[    0.331768] audit: initializing netlink subsys (disabled)
[    0.336862] audit: type=2000 audit(0.284:1): state=initialized audit_enabled=0 res=1
[    0.344455] vdso: 2 pages (1 code @ (____ptrval____), 1 data @ (____ptrval____))
[    0.344463] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.359472] DMA: preallocated 256 KiB pool for atomic allocations
[    0.380195] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.447232] raid6: int64x1  gen()   445 MB/s
[    0.515188] raid6: int64x1  xor()   453 MB/s
[    0.583323] raid6: int64x2  gen()   681 MB/s
[    0.651291] raid6: int64x2  xor()   600 MB/s
[    0.719364] raid6: int64x4  gen()   981 MB/s
[    0.787361] raid6: int64x4  xor()   737 MB/s
[    0.855420] raid6: int64x8  gen()  1163 MB/s
[    0.923463] raid6: int64x8  xor()   759 MB/s
[    0.991569] raid6: neonx1   gen()   736 MB/s
[    1.059546] raid6: neonx1   xor()   880 MB/s
[    1.127588] raid6: neonx2   gen()  1127 MB/s
[    1.195658] raid6: neonx2   xor()  1174 MB/s
[    1.263695] raid6: neonx4   gen()  1482 MB/s
[    1.331742] raid6: neonx4   xor()  1418 MB/s
[    1.399786] raid6: neonx8   gen()  1540 MB/s
[    1.467816] raid6: neonx8   xor()  1459 MB/s
[    1.467846] raid6: using algorithm neonx8 gen() 1540 MB/s
[    1.471807] raid6: .... xor() 1459 MB/s, rmw enabled
[    1.476738] raid6: using neon recovery algorithm
[    1.482300] SCSI subsystem initialized
[    1.485282] usbcore: registered new interface driver usbfs
[    1.490526] usbcore: registered new interface driver hub
[    1.495807] usbcore: registered new device driver usb
[    1.500864] media: Linux media interface: v0.10
[    1.505308] videodev: Linux video capture interface: v2.00
[    1.510759] pps_core: LinuxPPS API ver. 1 registered
[    1.515663] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    1.524757] PTP clock support registered
[    1.528658] EDAC MC: Ver: 3.0.0
[    1.532266] zynqmp-ipi-mbox mailbox@ff990400: Probed ZynqMP IPI Mailbox driver.
[    1.539374] FPGA manager framework
[    1.542585] Advanced Linux Sound Architecture Driver Initialized.
[    1.548806] Bluetooth: Core ver 2.22
[    1.552013] NET: Registered protocol family 31
[    1.556405] Bluetooth: HCI device and connection manager initialized
[    1.562723] Bluetooth: HCI socket layer initialized
[    1.567565] Bluetooth: L2CAP socket layer initialized
[    1.572601] Bluetooth: SCO socket layer initialized
[    1.577901] clocksource: Switched to clocksource arch_sys_counter
[    1.583741] VFS: Disk quotas dquot_6.6.0
[    1.587424] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    1.599633] NET: Registered protocol family 2
[    1.600103] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes)
[    1.606426] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
[    1.613600] TCP bind hash table entries: 16384 (order: 6, 262144 bytes)
[    1.620414] TCP: Hash tables configured (established 16384 bind 16384)
[    1.626654] UDP hash table entries: 1024 (order: 3, 32768 bytes)
[    1.632564] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes)
[    1.639068] NET: Registered protocol family 1
[    1.643538] RPC: Registered named UNIX socket transport module.
[    1.649139] RPC: Registered udp transport module.
[    1.653815] RPC: Registered tcp transport module.
[    1.658477] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.665787] hw perfevents: no interrupt-affinity property for /pmu, guessing.
[    1.672141] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available
[    1.680699] Initialise system trusted keyrings
[    1.684157] workingset: timestamp_bits=62 max_order=19 bucket_order=0
[    1.691298] NFS: Registering the id_resolver key type
[    1.695514] Key type id_resolver registered
[    1.699650] Key type id_legacy registered
[    1.703636] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    1.710305] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    2.798226] NET: Registered protocol family 38
[    2.857391] Key type asymmetric registered
[    2.857422] Asymmetric key parser 'x509' registered
[    2.860742] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[    2.868056] io scheduler noop registered
[    2.871942] io scheduler deadline registered
[    2.876205] io scheduler cfq registered (default)
[    2.880853] io scheduler mq-deadline registered
[    2.885349] io scheduler kyber registered
[    2.920834] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    2.925295] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    2.933097] brd: module loaded
[    2.938205] loop: module loaded
[    2.939275] mtdoops: mtd device (mtddev=name/number) must be supplied
[    2.943776] libphy: Fixed MDIO Bus: probed
[    2.947600] tun: Universal TUN/TAP device driver, 1.6
[    2.951393] CAN device driver interface
[    2.956083] usbcore: registered new interface driver asix
[    2.960428] usbcore: registered new interface driver ax88179_178a
[    2.966460] usbcore: registered new interface driver cdc_ether
[    2.972254] usbcore: registered new interface driver net1080
[    2.977881] usbcore: registered new interface driver cdc_subset
[    2.983758] usbcore: registered new interface driver zaurus
[    2.989303] usbcore: registered new interface driver cdc_ncm
[    2.995504] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    3.001381] ehci-pci: EHCI PCI platform driver
[    3.006106] usbcore: registered new interface driver uas
[    3.011103] usbcore: registered new interface driver usb-storage
[    3.017684] rtc_zynqmp ffa60000.rtc: rtc core: registered ffa60000.rtc as rtc0
[    3.024280] i2c /dev entries driver
[    3.029330] usbcore: registered new interface driver uvcvideo
[    3.033385] USB Video Class driver (1.1.1)
[    3.038084] Bluetooth: HCI UART driver ver 2.3
[    3.041858] Bluetooth: HCI UART protocol H4 registered
[    3.046968] Bluetooth: HCI UART protocol BCSP registered
[    3.052266] Bluetooth: HCI UART protocol LL registered
[    3.057347] Bluetooth: HCI UART protocol ATH3K registered
[    3.062727] Bluetooth: HCI UART protocol Three-wire (H5) registered
[    3.068982] Bluetooth: HCI UART protocol Intel registered
[    3.074318] Bluetooth: HCI UART protocol QCA registered
[    3.079526] usbcore: registered new interface driver bcm203x
[    3.085143] usbcore: registered new interface driver bpa10x
[    3.090678] usbcore: registered new interface driver bfusb
[    3.096125] usbcore: registered new interface driver btusb
[    3.101546] Bluetooth: Generic Bluetooth SDIO driver ver 0.1
[    3.107226] usbcore: registered new interface driver ath3k
[    3.112765] EDAC MC: ECC not enabled
[    3.116310] EDAC DEVICE0: Giving out device to module edac controller cache_err: DEV edac (POLLED)
[    3.125261] EDAC DEVICE1: Giving out device to module zynqmp-ocm-edac controller zynqmp_ocm: DEV ff960000.memory-controller (INTERRUPT)
[    3.137472] sdhci: Secure Digital Host Controller Interface driver
[    3.143326] sdhci: Copyright(c) Pierre Ossman
[    3.147649] sdhci-pltfm: SDHCI platform and OF driver helper
[    3.153624] ledtrig-cpu: registered to indicate activity on CPUs
[    3.159291] zynqmp_firmware_probe Platform Management API v1.1
[    3.165040] zynqmp_firmware_probe Trustzone version v1.0
[    3.193125] zynqmp_clk_mux_get_parent() getparent failed for clock: lpd_wdt, ret = -22
[    3.195888] alg: No test for xilinx-zynqmp-aes (zynqmp-aes)
[    3.200946] zynqmp_aes zynqmp_aes: AES Successfully Registered
[    3.200946] 
[    3.208475] alg: No test for xilinx-keccak-384 (zynqmp-keccak-384)
[    3.214597] alg: No test for xilinx-zynqmp-rsa (zynqmp-rsa)
[    3.220336] usbcore: registered new interface driver usbhid
[    3.225495] usbhid: USB HID core driver
[    3.229462] xlnk xlnk: Major 243
[    3.232622] xlnk xlnk: xlnk driver loaded
[    3.236480] xlnk xlnk: xlnk_pdev is not null
[    3.243188] fpga_manager fpga0: Xilinx ZynqMP FPGA Manager registered
[    3.247536] usbcore: registered new interface driver snd-usb-audio
[    3.254243] pktgen: Packet Generator for packet performance testing. Version: 2.75
[    3.261241] Initializing XFRM netlink socket
[    3.265126] NET: Registered protocol family 10
[    3.269895] Segment Routing with IPv6
[    3.273175] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    3.279358] NET: Registered protocol family 17
[    3.283375] NET: Registered protocol family 15
[    3.287789] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    3.300718] can: controller area network core (rev 20170425 abi 9)
[    3.306841] NET: Registered protocol family 29
[    3.311216] can: raw protocol (rev 20170425)
[    3.315452] can: broadcast manager protocol (rev 20170425 t)
[    3.321077] can: netlink gateway (rev 20170425) max_hops=1
[    3.326894] Bluetooth: RFCOMM TTY layer initialized
[    3.331377] Bluetooth: RFCOMM socket layer initialized
[    3.336490] Bluetooth: RFCOMM ver 1.11
[    3.340196] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    3.345468] Bluetooth: BNEP filters: protocol multicast
[    3.350661] Bluetooth: BNEP socket layer initialized
[    3.355588] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    3.361473] Bluetooth: HIDP socket layer initialized
[    3.366552] 9pnet: Installing 9P2000 support
[    3.370665] Key type dns_resolver registered
[    3.375401] registered taskstats version 1
[    3.378950] Loading compiled-in X.509 certificates
[    3.384104] Btrfs loaded, crc32c=crc32c-generic
[    3.395800] ff000000.serial: ttyPS1 at MMIO 0xff000000 (irq = 40, base_baud = 6249999) is a xuartps
�    3.399783] f�&�SӦ��i��k׋��+W/�*LW�Y�X��edff010000 (irq = 41, base_baud = 6249999) is a xuartps
[    3.413742] console [ttyPS0] enabled
[    3.417333] bootconsole [cdns0] disabled
[    3.417333] bootconsole [cdns0] disabled
[    3.425499] of-fpga-region fpga-full: FPGA Region probed
[    3.435005] xilinx-dpdma fd4c0000.dma: Xilinx DPDMA engine is probed
[    3.441623] xilinx-zynqmp-dma fd500000.dma: ZynqMP DMA driver Probe success
[    3.448748] xilinx-zynqmp-dma fd510000.dma: ZynqMP DMA driver Probe success
[    3.455864] xilinx-zynqmp-dma fd520000.dma: ZynqMP DMA driver Probe success
[    3.462972] xilinx-zynqmp-dma fd530000.dma: ZynqMP DMA driver Probe success
[    3.470086] xilinx-zynqmp-dma fd540000.dma: ZynqMP DMA driver Probe success
[    3.477203] xilinx-zynqmp-dma fd550000.dma: ZynqMP DMA driver Probe success
[    3.484324] xilinx-zynqmp-dma fd560000.dma: ZynqMP DMA driver Probe success
[    3.491437] xilinx-zynqmp-dma fd570000.dma: ZynqMP DMA driver Probe success
[    3.498634] xilinx-zynqmp-dma ffa80000.dma: ZynqMP DMA driver Probe success
[    3.505750] xilinx-zynqmp-dma ffa90000.dma: ZynqMP DMA driver Probe success
[    3.512869] xilinx-zynqmp-dma ffaa0000.dma: ZynqMP DMA driver Probe success
[    3.519983] xilinx-zynqmp-dma ffab0000.dma: ZynqMP DMA driver Probe success
[    3.527099] xilinx-zynqmp-dma ffac0000.dma: ZynqMP DMA driver Probe success
[    3.534216] xilinx-zynqmp-dma ffad0000.dma: ZynqMP DMA driver Probe success
[    3.541329] xilinx-zynqmp-dma ffae0000.dma: ZynqMP DMA driver Probe success
[    3.548451] xilinx-zynqmp-dma ffaf0000.dma: ZynqMP DMA driver Probe success
[    3.555817] xilinx-psgtr fd400000.zynqmp_phy: Lane:1 type:8 protocol:4 pll_locked:yes
[    3.566093] xilinx-dp-snd-codec fd4a0000.zynqmp-display:zynqmp_dp_snd_codec0: Xilinx DisplayPort Sound Codec probed
[    3.576833] xilinx-dp-snd-pcm zynqmp_dp_snd_pcm0: Xilinx DisplayPort Sound PCM probed
[    3.584893] xilinx-dp-snd-pcm zynqmp_dp_snd_pcm1: Xilinx DisplayPort Sound PCM probed
[    3.593772] xilinx-dp-snd-card fd4a0000.zynqmp-display:zynqmp_dp_snd_card: xilinx-dp-snd-codec-dai <-> xilinx-dp-snd-codec-dai mapping ok
[    3.606234] xilinx-dp-snd-card fd4a0000.zynqmp-display:zynqmp_dp_snd_card: xilinx-dp-snd-codec-dai <-> xilinx-dp-snd-codec-dai mapping ok
[    3.619004] xilinx-dp-snd-card fd4a0000.zynqmp-display:zynqmp_dp_snd_card: Xilinx DisplayPort Sound Card probed
[    3.629227] OF: graph: no port node found in /amba/zynqmp-display@fd4a0000
[    3.636307] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    3.642918] [drm] No driver support for vblank timestamp query.
[    3.648912] xlnx-drm xlnx-drm.0: bound fd4a0000.zynqmp-display (ops 0xffffff8008bbf5e0)
[    4.733887] [drm] Cannot find any crtc or sizes
[    4.738697] [drm] Initialized xlnx 1.0.0 20130509 for fd4a0000.zynqmp-display on minor 0
[    4.746800] zynqmp-display fd4a0000.zynqmp-display: ZynqMP DisplayPort Subsystem driver probed
[    4.756817] xilinx-axipmon ffa00000.perf-monitor: Probed Xilinx APM
[    4.763368] xilinx-axipmon fd0b0000.perf-monitor: Probed Xilinx APM
[    4.769883] xilinx-axipmon fd490000.perf-monitor: Probed Xilinx APM
[    4.776388] xilinx-axipmon ffa10000.perf-monitor: Probed Xilinx APM
[    4.782905] dwc3-of-simple ff9d0000.usb0: dwc3_simple_set_phydata: Can't find usb3-phy
[    4.791249] dwc3 fe200000.dwc3: Failed to get clk 'ref': -2
[    4.797546] dwc3-of-simple ff9e0000.usb1: dwc3_simple_set_phydata: Can't find usb3-phy
[    4.805867] dwc3 fe300000.dwc3: Failed to get clk 'ref': -2
[    4.812649] cdns-i2c ff030000.i2c: 400 kHz mmio ff030000 irq 30
[    4.818952] cdns-wdt fd4d0000.watchdog: Xilinx Watchdog Timer at (____ptrval____) with timeout 60s
[    4.828154] cdns-wdt ff150000.watchdog: Xilinx Watchdog Timer at (____ptrval____) with timeout 10s
[    4.837817] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    4.843318] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
[    4.852304] xhci-hcd xhci-hcd.0.auto: hcc params 0x0238f625 hci version 0x100 quirks 0x0000000202010010
[    4.861722] xhci-hcd xhci-hcd.0.auto: irq 50, io mem 0xfe300000
[    4.867902] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
[    4.876166] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    4.883386] usb usb1: Product: xHCI Host Controller
[    4.888261] usb usb1: Manufacturer: Linux 4.19.0-xilinx-v2019.1 xhci-hcd
[    4.894953] usb usb1: SerialNumber: xhci-hcd.0.auto
[    4.900225] hub 1-0:1.0: USB hub found
[    4.904000] hub 1-0:1.0: 1 port detected
[    4.908128] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    4.913619] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
[    4.921283] xhci-hcd xhci-hcd.0.auto: Host supports USB 3.0  SuperSpeed
[    4.927911] mmc0: SDHCI controller on ff160000.mmc [ff160000.mmc] using ADMA 64-bit
[    4.935739] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    4.944622] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 4.19
[    4.952880] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    4.960097] usb usb2: Product: xHCI Host Controller
[    4.964966] usb usb2: Manufacturer: Linux 4.19.0-xilinx-v2019.1 xhci-hcd
[    4.971657] usb usb2: SerialNumber: xhci-hcd.0.auto
[    4.976826] hub 2-0:1.0: USB hub found
[    4.980594] hub 2-0:1.0: 1 port detected
[    5.015864] mmc1: SDHCI controller on ff170000.mmc [ff170000.mmc] using ADMA 64-bit
[    5.026361] mmc0: new high speed SDHC card at address 59b4
[    5.032525] mmcblk0: mmc0:59b4 USD   7.51 GiB 
[    5.040402] rtc_zynqmp ffa60000.rtc: setting system clock to 1970-01-01 00:00:08 UTC (8)
[    5.048496] of_cfs_init
[    5.050958] of_cfs_init: OK
[    5.053880] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    5.062622]  mmcblk0: p1 p2
[    5.079746] mmc1: new high speed SDIO card at address 0001
[    5.193537] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    5.200065] clk: Not disabling unused clocks
[    5.204333] ALSA device list:
[    5.207293]   #0: DisplayPort monitor
[    5.211341] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    5.219947] cfg80211: failed to load regulatory.db
[    5.241886] usb 1-1: new high-speed USB device number 2 using xhci-hcd
[    5.305810] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    5.313919] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    5.320667] devtmpfs: mounted
[    5.323922] Freeing unused kernel memory: 832K
[    5.328405] Run /sbin/init as init process
[    5.394378] usb 1-1: New USB device found, idVendor=0424, idProduct=2744, bcdDevice= 2.05
[    5.402551] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    5.409685] usb 1-1: Product: USB2744
[    5.413348] usb 1-1: Manufacturer: Microchip Tech
INIT: version 2.88 booting
[    5.472153] hub 1-1:1.0: USB hub found
[    5.475951] hub 1-1:1.0: 4 ports detected
[    5.497252] random: fast init done
Starting udev
[    5.773006] udevd[1787]: starting version 3.2.5
[    5.784925] random: udevd: uninitialized urandom read (16 bytes read)
[    5.792313] random: udevd: uninitialized urandom read (16 bytes read)
[    5.799678] random: udevd: uninitialized urandom read (16 bytes read)
[    5.821890] usb 1-1.4: new high-speed USB device number 3 using xhci-hcd
[    5.836892] udevd[1788]: starting eudev-3.2.5
[    5.841911] [drm] Cannot find any crtc or sizes
[    5.926850] usb 1-1.4: New USB device found, idVendor=0424, idProduct=2740, bcdDevice= 2.00
[    5.935253] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    5.942587] usb 1-1.4: Product: Hub Controller
[    5.947040] usb 1-1.4: Manufacturer: Microchip Tech
[    6.391079] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[    6.433779] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
Tue Oct 29 09:06:00 UTC 2019
[    7.538612] urandom_read: 4 callbacks suppressed
[    7.538619] random: dd: uninitialized urandom read (512 bytes read)
Configuring packages on first boot....
 (This may take several minutes. Please do not power off the machine.)
Running postinst /etc/rpm-postinsts/100-sysvinit-inittab...
update-rc.d: /etc/init.d/run-postinsts exists during rc.d purge (continuing)
 Removing any system startup links for run-postinsts ...
  /etc/rcS.d/S99run-postinsts
INIT: Entering runlevel: 5
Configuring network interfaces... Cannot find device "eth0"
Starting Dropbear SSH server: [    7.843872] random: dropbearkey: uninitialized urandom read (32 bytes read)
[    7.853271] random: dropbearkey: uninitialized urandom read (32 bytes read)
Generating 2048 bit rsa key, this may take a while...
Public key portion is:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOI8wj8a6wf7zlg6r5HdDA+z2+FS5KUACaws8skcUWLkM1yVLfnLwvGgYwUaC+Z18s6MZrdSzbitO9GfJD4v6HLRGeifmG7+hA5QnQwmJoHxjBEH9KW7xF6mDpor/eNxld3+uWiX1UJAiVsUQKd3sMJSzPmQtpUDj4iJYxd8SEEbG3QKb3opD9xqoOSqIqWmQgIyi06sW9U9+vkFLF3IuzA+EYOpGt3g9BnJopA4pv8tBVd2p0O0GaOyDthGsdHaA2F3D8kgaCoidycq6Oim9F+grW3fiSZCn9JNAijZ7bt8NE7yCIoEN4S4eQMAzjOkV0FGFxc6Vl2Y6kRCUBZvq9 root@Ultra96V2_Platform1
Fingerprint: sha1!! b6:b3:5e:42:a5:d3:4e:c0:46:b4:bf:05:07:70:2f:24:1e:94:83:82
dropbear.
Starting internet superserver: inetd.
Starting syslogd/klogd: done
Starting tcf-agent: OK

/bin/autologin: line 1: -e: command not found
root@Ultra96V2_Platform1:~# 

  1. 2019年11月02日 15:03 |
  2. SDSoC
  3. | トラックバック:0
  4. | コメント:0

Vitis 2019.2 をインストールした

今日、Vitis 2019.2 が出ていたのでインストールした。

最初に、「Vitis コア開発キット - 2019.2 」の約30GB をダウンロードしてしまった。しかし、「Vivado Design Suite - HLx Edition - 2019.2 Full Product Installation」の「ザイリンクス統合インストーラ 2019.2」をダウンロードすれば、Vitis をインストールすることができた。

Ubuntu 18.04 なので、「ザイリンクス統合インストーラ 2019.2: Linux 用自己解凍型ウェブ インストーラ ザイリンクス統合インストーラ 2019.2: Linux 用自己解凍型ウェブ インストーラ」をダウンロードして、インストールした。

ダウンロードしたファイルは、「Xilinx_Unified_2019.2_1024_1831_Lin64.bin」だった。
このファイルに、
chmod +x Xilinx_Unified_2019.2_1024_1831_Lin64.bin
で実行パーミッションを追加した。

./Xilinx_Unified_2019.2_1024_1831_Lin64.bin
でインストーラーを起動した。

Welcome 画面が表示された。
Vitis_2019_2_1_191101.png

Xilinx 社のWeb サイトの ID とパスワードを入力した。
Vitis_2019_2_2_191101.png

ライセンスを承認した。
Vitis_2019_2_3_191101.png

Vitis のラジオボタンをクリックして、選択した。
Vitis_2019_2_4_191101.png

インストールする項目を選択した。デフォルト値。
Vitis_2019_2_5_191101.png

インストール・ディレクトリなどを選択した。ここでは、sudo していないので、権限が無くて赤くなっているが、実際には、自分のID の権限があるところにインストールした。
Vitis_2019_2_6_191101.png

Vitis の環境を読み込む。
source /media/masaaki/Ubuntu_Disk/tools/Xilinx/Vitis/2019.2/settings64.sh

Vitis を起動した。
vitis
Vitis_2019_2_7_191101.png

Vitis 2019.2 が起動して、Workspace を聞いてくるので指定した。
Vitis_2019_2_8_191101.png

Vitis 2019.2 のIDE が起動した。
Vitis_2019_2_9_191101.png

vivado や vivado_hls, xsdk もそのコマンドで起動する。

なお、IDE が起動しない場合は、java をインストールすれば良いようだ。
@aster_ism さんのツィートを貼っておく。


ひでみさんのVivado が起動しないという原因は違うそうだ。その原因についてはひでみさんのツィートを参照ください。

なお、ひでみさんのツィートによると、Vitis をインストールする時にデバイスを選んでインストールすると、Vivado 2019.2 にIPI 使用時に”[IP_Flow 19-2373] Cannot identify default part.”と言われて合成できないそうです。

必要なディスクの容量を書いておく。
Vitis ディレクトリ 28.8 GB
Vivado 2019.2 38.0 GB
.xinstall のVivado_2019.2 ディレクトリ 405.9 MB

@miyox さんのツィートから転載させて頂きます。

rootでインストールしたvitisさん,起動するときに呼び出す Vitis/2019.2/tps/lnx64/jre9.0.4/bin/java の実行パーミッション(とreadパーミッション)がothersに対して空いてなかった.bin以下と,lib以下のパーミッションあけたら起動した.

  1. 2019年11月01日 21:18 |
  2. Vitis
  3. | トラックバック:0
  4. | コメント:0

Ultra96-V2 の高速、低速コネクタ用PMOD 拡張基板10(部品を実装)

Ultra96-V2 の高速、低速コネクタ用PMOD 拡張基板9(フットプリントを確認)”の続き。

前回は、Ultra96 の高速コネクタに勘合する TE5179031-2 が届いたのでフットプリントを確かめた。今回は、基板に部品を実装した。

Ultra96-V2 の高速、低速コネクタ用PMOD 拡張基板にすべての部品を実装した。
Ultra96V2_HL_exp_board_36_191101.jpg

Ultra96V2_HL_exp_board_37_191101.jpg

裏面
Ultra96V2_HL_exp_board_38_191101.jpg

Ultra96V2_HL_exp_board_39_191101.jpg

Ultra96-V2 と連結した。
Ultra96V2_HL_exp_board_42_191101.jpg

Ultra96V2_HL_exp_board_43_191101.jpg

1.2 V と 3.3 V の電圧も出ている。良さそうなのだが、1つ問題がある。
電源プラグと干渉して、低速コネクタが全て挿入されていない。。。orz
Ultra96V2_HL_exp_board_40_191101.jpg

反対側。
Ultra96V2_HL_exp_board_41_191101.jpg

秋月電子の 2 mm ピッチヘッダのポスト長は 4 mm だが、ポスト長が 7 mm の 2 mm ヘッダを購入してあるので、それに交換してみよう。ただし、2列を買うところが 1 列買ってしまったので、実装はきちんとやりたい。
2 列の ポスト長が 7 mm のヘッダはこの辺にある。「10Pcs Per Lot Gold Plated 2mm 2.0mm Pitch 2x40 Pin Double Male Long Header Strip L= 12mm」ただし、自分で買ってないので、分からない。
  1. 2019年11月01日 04:46 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0