sdsoc と vivado

49
SDSoC 開開開開 Vivado 開開開開 開開開開開開開開 Xilinx 非非 ( 非非非 )

Upload: ryos36

Post on 16-Apr-2017

439 views

Category:

Software


1 download

TRANSCRIPT

Page 1: SDSoC と Vivado

SDSoC 開発時の Vivado の使い方有限会社シンビー

Xilinx 非推奨(たぶん )

Page 2: SDSoC と Vivado

SDSoC でコンパイルする

SDDebug/_sds/p0/ipi/というディレクトリができる。SDSoC では詳細を見ることが出来ない。

Page 3: SDSoC と Vivado

Explorer で見てみる

Vivado の プロジェクトファイルがある。適切な Vivado のバージョンで起動

Page 4: SDSoC と Vivado

Vivado で見てみる

Page 5: SDSoC と Vivado

Synthesis/Implementation は終了しているはず

Complete: 上の段が Synthesis : 下の段がImplementattion

Elapsed が実行時間 :Synthesis 2.25 min :Implementattion は 9.25 min

タイミングがミートしていないとこの辺でエラー ( 赤文字 ) になる

Page 6: SDSoC と Vivado

Block Diagram( 回路図 ) を見る

ここをクリック

Page 7: SDSoC と Vivado

Block Diagram 出現

このボタンで各ブロックを自動整形

Page 8: SDSoC と Vivado

整形された、、、はず

SDSoC が自動生成した I/F部の IP コアSDSoC が Vivado HLS を利用して高位合成した IP コア

SDSoC が差し込んだ Data Mover

Page 9: SDSoC と Vivado

PDF に落とすこともできる

マウス右クリックでメニューが出現

Page 10: SDSoC と Vivado

詳しく見てみる

FIFO が見える 外部メモリへの I/F関数の I/F

関数のコントロール用I/F

Page 11: SDSoC と Vivado

Zynq の何につながっているか?

ACP のためのAXI Interconnect というスイッチングバスの IP コア

Page 12: SDSoC と Vivado

Zynq を拡大

ACP (AXI)GP0 (AXI)

DDR

Page 13: SDSoC と Vivado

Zynq と PL の接続

UG585 から抜粋HP(AXI)

DDR

ACP(AXI)GP(AXI)

Page 14: SDSoC と Vivado

Zynq の AXI の種類• ACP – L2 キャッシュを使った高速アクセス行列計算などに利用• HP – 64 bit 対応の高速バス画像データのやり取りなどに利用• GP – 汎用汎用レジスタインタフェースなどに利用

ビット幅

数ACP 64 1 AXI3.0(?) 64 ビットキ ャ ッシュコ ヒ ーレントマス ターポー トHP 32 /64 4 AXI3.0 高性能 / 広帯域マスター (High Performance) ポー トGP 32 4(Mx2, Sx2) AXI3.0 汎用( General) ポート大半のケースでは HP を使えばいいはず。

SDSoC はなぜか行列計算にスポットを当てているので、 ACP がデフォルト

Page 15: SDSoC と Vivado

IP コアをダブルクリックでさらに詳細な設定を見ることが出来る

ダブルクリック

Page 16: SDSoC と Vivado

IP コアの設定

クリックで OARG のタブに切り替え

Page 17: SDSoC と Vivado

FIFO の深さが見れた

440!!

Page 18: SDSoC と Vivado

AP_CTRL も見る

+ マークをクリック

Page 19: SDSoC と Vivado

I/F でまとめられていた信号線を見ることが出来る• ap_start – 開始• ap_done – 終了• ap_idle – アイドル• ap_ready – 準備

この辺を ChipScope でみればいいに違いない。もう一度 + をクリックして閉じておく

Page 20: SDSoC と Vivado

Mark Debug してみる信号線を左クリックで選択した後、右クリックでメニューを出すそして、 Mark Debug を選択

これにより信号線の属性がデバッグ用に記録される。

Page 21: SDSoC と Vivado

デバッグマークの確認

それっぽいデバッグマークがつく

Page 22: SDSoC と Vivado

Mark Debug の意味と注意点• 合成後に信号線のキャプチャーが出来る• 注意点– 合成には時間がかかる– コツをつかまないと実装で失敗する– 合成に成功していてもうまくキャプチャ出来ない時もある

Page 23: SDSoC と Vivado

どの信号を見るか?• AP_CTRL• ACP の信号線– AXI バスはセンシティブなので工夫が必要。うまくいくと取れることもある。

• FIFO や BRAM のポート– どうやらセンシティブらしい。失敗を繰り返している。実績ゼロ。

• DDR の信号線– あぶないからやっていない。– 取れても、 CPU も使うので雑音が多すぎるだろう

Page 24: SDSoC と Vivado

合成~デバッグまでの流れ• Debug Mark をつける• 合成 (Synthesis) をする• Setup Debug で ila を xdc に追加する• 実装 (Implementation) をする• Open Hardware Manager で実機と接続• ビットファイルのダウンロード• Vivado の GUI を使った信号線のデバッグ

Page 25: SDSoC と Vivado

どの信号を見るか?その2

今回は折角なので ACP もデバッグマークを付ける

Page 26: SDSoC と Vivado

実装の前に

Hierachy のタブを選択。 constrs_1 に制約のための xdc ファイルがないことを確認

Page 27: SDSoC と Vivado

合成

Run Synthesis をクリック

Page 28: SDSoC と Vivado

合成終了 → 実装に行かずに Design をみる

Page 29: SDSoC と Vivado

Set Up Debug を選択

Set Up Debug をクリック

Page 30: SDSoC と Vivado

ACP の信号線を Data にする

この作業は必須ではありません。 Data にすれば、 AXI のバスを観測するだけになり、なるべく乱さないようになるということを期待しています。

Page 31: SDSoC と Vivado

ILA Core Options はサンプル数を 4096 に

ここを 4096 にする。あとはデフォルトのまま。

Capture Control は特定の条件の時だけ Capture することが出来る機能。ここをチェックしなくても Trigger 契機に Full になるまで Capture する通常の機能は使える。Advanced Trigger をチェックすると Trigger 条件に複雑な構文を使えるようになる。

Page 32: SDSoC と Vivado

この作業 (Setup Debug)+ 実装の Save により xdc が生成されるxdc が追加されている

Unassigned Debug Nets が空になっている

ACP は Data に、 AP_CTRL は Data and Trigger に設定されている

Page 33: SDSoC と Vivado

実装

Run Implementation をクリック

Page 34: SDSoC と Vivado

Open Implemented Design で確認

Generate Bitstream で先に進めてもよい

Page 35: SDSoC と Vivado

Desgin Run の結果

21分もかかっている。

Page 36: SDSoC と Vivado

Design Timing Summary

Page 37: SDSoC と Vivado

Generate Bitstream

Generate Bitstream をクリック

Page 38: SDSoC と Vivado

BitStream が出来たら SDSoC に戻る

Launch on Hardware(SDSoC Debgger) を選択

Page 39: SDSoC と Vivado

ビットストリームがダウンロードされ

Page 40: SDSoC と Vivado

デバッグ パースペクティブで main で止まる

Page 41: SDSoC と Vivado

Vivado に戻って HW に接続

Program Device を選択

Page 42: SDSoC と Vivado

いままでうまくいっていれば Debug probes file にファイル名が埋めっている

Program を選択

Page 43: SDSoC と Vivado

デバッグ画面になる

Page 44: SDSoC と Vivado

トリガーを掛け Compare Usage を 1に

1 を選択。これにより AP が関数のスタート時にキャプチャを始められる。

Page 45: SDSoC と Vivado

キャプチャーの準備開始

トリガーをきっかけにキャプチャーする。

Page 46: SDSoC と Vivado

Waiting for Trigger の状態になる

Page 47: SDSoC と Vivado

SDSoC に戻りアプリケーションの実行

Resume で止まっているアプリケーションを再開

Page 48: SDSoC と Vivado

信号線をキャプチャ

キャプチャが停止し、Idle 状態になる

結果として信号線の動きをキャプチャ

Page 49: SDSoC と Vivado

おしまい