Xilinx製品開発ツール
Vivado Design Suite
Xilinx製品のハードウェアを開発するための開発環境.
VHDLやVerilogをもちいて,論理回路の設計を行う.
Vivadoのインストール
起動しない.暫く経つと「Error when launching vivado.bat: Launcher time out」メッセージが出る.
AR# 57386 Vivado - 「Error when launching vivado.bat: Launcher time out」というエラー メッセージが表示される
いくつか原因があるが,自分の場合はMicrosoft の再配布可能ライブラリが正しく?インストールされていないこと原因だった.
AR# 53793 インストール - Vivado が起動せず、「INFO: [Common 17-81] couldn't load library "librdi_coretaks.dll": invalid argument...」というエラー メッセージが表示される
コマンドラインからVivado.batを起動したら,上記で取り上げられているメッセージが出ており,再配布可能ライブラリを再インストールしたら無事に起動できた.
注意として,Vivadoがインストールしようとする再配布可能ライブラリより新しいバージョンがすでにインストールされていると再配布可能ライブラリのインストーラがインストールしてくれないので,その場合は一度新しいバージョンの再配布可能ライブラリをアンインストールする.指定のバージョンをインストールしたいのにどうして「新しいバージョン入ってるから入れる必要ないよ」って止めてしまうのだろうか.
XSAファイルの作成
VivadoからVitsにハードウェアの情報を渡すためのファイル.
ブロックデザインの作成後,[File]→[Export]→[Export Hardware…]を選択,エクスポートするパス,xsaファイル名を指定する.
ハードウェア デザイン (XSA ファイル) の作成
Vitis
Xilinx SDKとSDSoCとSDAccelの3つの開発ツールが1つにまとまったソフトウェア開発環境
これら3つのツールは2019.2以降の更新なく,今後はVitisに統合される事になった.
Vivadoからのハードウェア情報を渡すにはxsa(ザイリンクスシェルアーカイブ)というファイルを用いる.
xsaにはハードウェア情報やメタデータが含まれる.このxsaファイルによってVivadoからVitisにハードウェアの情報を受け渡す.
Application Projectを作る際に,Platfomからハードウェア情報としてxsaファイルを選択する.すると,Application Projectと一緒にPlatform Projectが作成される.
Platform Projectをビルドすることで,ザイリンクスプラットフォーム定義ファイル(.xpfm)ファイルを生成する.
Vivado Design Suite からエクスポートした XSA のアプリケーションを作成およびビルド
Vitisにはプロジェクトが3つ存在する。
- platformプロジェクト : ハードウェアの定義がそのハードウェアを使うためのBSPが含まれる。
- Applicationプロジェクト : 開発したデバイスで動かすアプリケーションプを開発する。
- Systemプロジェクト : 1つのデバイス上で複数のアプリケーションを動かす(CPUコアが複数載っているデバイスでの使用を想定?)場合、Applicationプロジェクトが複数存在することになりそれらを1つのSystemプロジェクトにまとめる。
CPUコアを1つしか使わないうちは上記のプロジェクトはそれぞれ1つずつとなる。(1つのSystemプロジェクト内に1つのApplicationプロジェクト)
IP の世界からこんにちは (5)
Vitisのプロジェクトにて、hwの中に更新されたファイルができる。ここにものを置いても消されるので注意
Vitisでハードウェアの更新
platformプロジェクトを右クリックし「Update Hardware Specification」より、更新したいハードウェアのxsaファイルを選択する。
選択したxsaファイルはtempdsaフォルダに保存される?(要確認)
Update an Existing Vitis Platform's Hardware Specification
Vitis のエンベデッド・ソフトウェア開発フローで Vivado の回路の更新をVitis に反映する
exStickGEとMicroBlazeでDhrystoneを動かしてみた
VitisでPlatfom Projectのビルドやクリーンができない
VitisはPlatform ProjectとApplication Project(System Project)という2つのプロジェクトによって開発を行う.
Platfom Projectのビルドやクリーンが全く終わらない問題が発生した.
どうやら下記のXilinx SDKで生じたのと同様に,環境変数PATH
にmake
やsh
などのコマンドがあるとVitisがそっちを使ってしまうため.X
対策案2に書いたように,Vitisの起動時は環境変数PATH
の中身をクリーンにして起動する.
コマンドプロンプト
# Vitisのディレクトリに移動 cd C:\Xilinx\Vitis\2019.2 # PATHを消す。このpathは現在起動しているプロンプト内でのみ有効なのでWindows全体には反映されない。 set path = # それぞれのツールの設定用バッチファイルを実行 settings64.bat cd bin # Vitisを起動 vitis.bat
PoweShell
# Vitisのディレクトリに移動 cd C:\Xilinx\Vitis\2019.2 # PATHを消す。このpathは現在起動しているプロンプト内でのみ有効なのでWindows全体には反映されない。 $ENV:path="" # それぞれのツールの設定用バッチファイルを実行 settings64.bat cd bin # Vitisを起動 vitis.bat
math.hの関数が使えない
リンカのオプションで引数m
を追加しておく.
AR# 5297114.4 - SDK - sin、cos、tan 関数を含むアプリケーションをSDK の ARM コンパイラでコンパイルするとエラーになる
Cortex-A9プロッサ載せてるののデフォルトでは無効になってるのは以外.
Cortex-A9は単精度浮動小数点数までしかハードウェアのユニットが乗ってないので,基本的には半精度浮動小数点数(float)を意識してやる.そのコード,本当に倍精度必要?
GCCがデフォで倍精度なのが原因
WSL2のUbuntu20.04に環境構築
Ubuntu+GUIを使えるようにするを参照して,WSL2上のUbuntu20.04とそのGUI環境を用意しておく.
XilinxのダウンロードページからLinux用インストーラを入手する.120MBくらいのやつ
2021年3月20日時点での2019.2のインストーラは「XilinxUnified2019.211062127_Lin64.bin」
WSL2でUbuntu20.04を起動し,ターミナルを開いてセットアップしていく.必要に応じて管理者権限
chmod +x Xilinx_Unified_2019.2_1106_2127_Lin64.bin #実行権限の付与 ./Xilinx_Unified_2019.2_1106_2127_Lin64.bin
Vitis 2019.2のUbuntuの公式サポートは18.04.2 LTSまで,インストール時に警告が出るが無視してそのままインストールを続行
Ubuntu20.04にVitis2019.2をインストールしたけど,Vivadoが起動しなかった.
libncurses5パッケージをインストールしたらVivadoが起動できた.
apt install libncurses5
同様の症状の記事ををみつけた.
Install Vivado 2020 in Ubuntu20
issue : Can't launch Vivado 2019.1
Boardファイルいれて開発ボード登録するか,BSP更新する.売ってるボードの情報は基本的に全部ダウンロードされるっぽい.
まぁこれまでボード設定ファイルを手動ローカルでしかやれてなかったのもおかしな話といえばそう.
Application Projectを作ろうと思ったらmakeが入ってなってエラーになった.
WSL2でインストールしたまっさらなUbuntuなので,gccとかmakeとかプログラミングに使うソフトを全くインストールしていなかった.
buidl-essenrialをaptでインストールして,setting64.sh走らせたらVitisでmakeが認識された.
無事にPlatform,System,Application Projectが成功してBOOT.BINが生成された.
apt install build-essential
Xilinx SDK
Xilinx製品のソフトウェアを開発するための開発環境.
ZynqのPS部(Cortex-Aコアとか)のコードを書く.
SDKは今後Vitisというソフトウェアに統合された.今後はVitisがメインになる模様
Xilinx SDKでmakeしても.elfが生成されない
どうやらmake.exeが環境変数に存在するとPATHを更新してそっちを使いに行く模様。
対策案1
環境変数(PATH)には登録しない。しかし他のMakeコマンドを使うソフトもあるのでその兼ね合いは?
対策案2
起動時にPATHを読みにいくらしいので、これを無効化する。
# Xilinx SDKのディレクトリに移動 cd C:\Xilinx\SDK\2018.2 # PATHを消す。このpathは現在起動しているプロンプト内でのみ有効なのでWindows全体には反映されない。 set path = # それぞれのツールの設定用バッチファイルを実行(一応) settings64.bat cd bin # SDKを起動 xsdk.bat
Xilinx SDKでプロジェクトがビルド出来ない
AR# 43293 13.2 EDK - Make: Interrupt/Exception caught (code=0xc0000fd, addr=0x4227d3)
これは2018.2では発生したいた問題だけど、2019.1では発生していないことが分かった。 バージョンが上がったことでここは対策が打たれたのか?