sdsoc と vivado

Post on 16-Apr-2017

439 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

Xilinx 非推奨(たぶん )

SDSoC でコンパイルする

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

Explorer で見てみる

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

Vivado で見てみる

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

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

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

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

Block Diagram( 回路図 ) を見る

ここをクリック

Block Diagram 出現

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

整形された、、、はず

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

SDSoC が差し込んだ Data Mover

PDF に落とすこともできる

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

詳しく見てみる

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

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

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

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

Zynq を拡大

ACP (AXI)GP0 (AXI)

DDR

Zynq と PL の接続

UG585 から抜粋HP(AXI)

DDR

ACP(AXI)GP(AXI)

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 がデフォルト

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

ダブルクリック

IP コアの設定

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

FIFO の深さが見れた

440!!

AP_CTRL も見る

+ マークをクリック

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

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

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

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

デバッグマークの確認

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

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

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

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

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

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

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

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

実装の前に

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

合成

Run Synthesis をクリック

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

Set Up Debug を選択

Set Up Debug をクリック

ACP の信号線を Data にする

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

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

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

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

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

Unassigned Debug Nets が空になっている

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

実装

Run Implementation をクリック

Open Implemented Design で確認

Generate Bitstream で先に進めてもよい

Desgin Run の結果

21分もかかっている。

Design Timing Summary

Generate Bitstream

Generate Bitstream をクリック

BitStream が出来たら SDSoC に戻る

Launch on Hardware(SDSoC Debgger) を選択

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

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

Vivado に戻って HW に接続

Program Device を選択

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

Program を選択

デバッグ画面になる

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

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

キャプチャーの準備開始

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

Waiting for Trigger の状態になる

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

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

信号線をキャプチャ

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

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

おしまい

top related