3連休なので、FPGAのことをやることにした。
最後にFPGA関連で更新したのがは、PetaLinuxをPC-Linuxでビルドする話の最終回で、ちょうど1ヶ月前(2017/09/09)だった。
あれからVivadoなども起動せずにいたのだが、今日Xilinx Information Centerを起動すると、SDx 2017.2が出ていた。
リリース日が09/05になっているから、単に私が見逃していただけのようだ。
Xilinxのすごいところは、リリースノート(pdf)なんかも日本語版を用意するところだ。
過去の分から作りやすいだけなのかもしれないが、いやいや、すごいもんですよ。
さて、いまSDxをインストールしているのだが、これにはVivado 2017.2も含んでいる。
使ったこと無いけど、Vivado HLSも含んでいる。
リリースノートからすると、XSDKに入っているのと同じARMのToolchainを含んでいるそうだ。
だから、XSDKでできることがSDxでもできるのであれば、SDxだけあればよいはずだ。
SDxがインストールできるのは、Zybo購入時にSDSoCのライセンスを購入しているからだ。
つまり、WebPACKではないので、WebTalkをオフにすることができる。
まあ、仕事で使っているわけでも無いし、変な動作をしないなら気にしないのだけどね。
あとは、私がこれらを使いこなせるかどうかなのだが・・・まだ全然ダメだ。
まずは、LED以外のチュートリアルを動かして遊んでみよう。
SDxでインストールされたVivadoを起動すると、ウィンドウの名前は「Vivado 2017.2_sdx」という名前になっていた。
微妙に違いがあるのかもしれん。
Vivado 2017.2で使ったことのあるプロジェクトがRecentとして出てきたので、そこら辺は共通なのか。
ただ、IPのリビジョンが微妙に上がっていたようで、そこはUpgradeした(プロジェクトをVivado 2017.1で作ったままだったかもしれない)。
Upgradeしたあとは、Bitstreamを作り直す。
プログレスを示すくるくるが出てくるようになった。
できれば、右下に出てくるか、最小化しないようにできるとありがたいのだが、まあぜいたくは言うまい。
いまRunning synth_designが実行されているようなのだが、とても長い。。。
そんなにPCの性能は悪くないと思うのだが、うたた寝しても良いくらいの時間はかかっているだろう。
ようやく終わって、Exportしなおして、Launch SDKすると、SDxが起動した。
以前、XSDKで作っていたプロジェクトが表示されている。
ということは、SDxがインストールされていれば、VivadoとXSDKは個別にインストールしなくてよいということになるな。
ついでに、SDxのチュートリアルをやっておこう。
SDxのリリースノートから、ug1028-sdsoc-intro-tutorial.pdfというSDSoC環境チュートリアルがたどれたのだ。
チュートリアルをやりたいというよりは、SDxでZyboを使ったデバッグができるのかを試したかったので「6.デバッグ」だけにする。
説明はZC702ボードになっているが、Zynq-7000デバイスであればよいらしい。
Zyboはそうなので、動くのだろう。
スタンドアロンアプリケーションをダウンロードして実行するところまで行えるそうだ。
ボードの設定は、SDカードがどうのこうの書かれているが、microUSBで電源とUARTを確保し、起動モードはJTAGにした。
以前System Debugをした感じからすると、他のモードでも動くんじゃないかと思うが、演習に関係するところだけ確認させたいのでそうしているようだ。
次は、スタンドアロンプロジェクトの作成。
書いてあるとおりにやっていくだけだ。
最後に「Build Project」するのだが、これが重くて長い。。。
15分以上やっているが、まだ25%だ。
結局、26分くらいかかりました。
すごいスペックというわけではないけど、けっこうよいスペックじゃないかと思うのだが、どうだろうか。
ウイルス対策ソフトがDefenderなので、そこで時間かかったりするのかもしれん。
デバッグは、Eclipseでデバッグするときの要領でよいが、選択するのは「Launch on Hardware(SDSoC Debugger)」だ。
似たような項目がたくさんあるので、赤文字のところを気にしておこう。
選択すると、パースペクティブを変更するか聞いてくるので、Debugに切り替える。
そうすると、mainで止まった状態が表示される。
ZyboのUARTというかシリアルポートというか、それをターミナルにつないでおく。
私はTeraTermにした。
ブレークポイントで止まった状態なので、再開アイコンをクリックする。
そうすると、ターミナルに何か出てきて、SDxの方は_exitで停止した。
ブレークポイント一覧を見ると、mainと_exitに設定されていたので、これでよいようだ。
Testing 1024 iterations of 32x32 inting point mmultadd...
Average number of CPU cycles running mmultadd in software: 1145442
Average number of CPU cycles running mmultadd in hardware: 19192
Speed up: 59.6833
TEST PASSED
何をやったのかはわからんが、行列演算で使いそうな計算をPL側に持っていったことで高速化したとか、そんな感じではなかろうか。
まったくVivadoに触ってないし、FPGA Programなんかもやっていないから、うまいこと使いこなせると私のようなソフト屋さんには便利そうだ。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。