”
SDSoC のプラットフォームのお勉強1”の続き。
前回はプラットフォームの構成ファイルや構成フォルダを見てきた。今回は、ハードウェア・プラットフォームの作り方を見ていこう。
”
SDSoC Environment Platform Development Guide UG1146 (v2016.3) November 30, 2016” を参照しながら見ていこう。
”
SDSoC Environment Platform Development Guide UG1146 (v2016.3) November 30, 2016” の18ページのChapter 3 Hardware Platform Creation のHardware Requirements を引用する。
1.Vivado を使用してハードウェア・システムをビルドして検証する。
2.SDSoC Vivado TCL APIs を使用してTcl スクリプトを生成する。
3.Vivado Tcl コンソールでTcl スクリプトを起動するとハードウェア・プラットフォームのメタデータXMLファイル(.hpfm)が生成される。メタデータにはプラットフォームのクロック、AXI と AXI4-Stream バス・インターフェース、割り込みやその他のハードウェア情報が書かれる。
その次に注意点が書かれている。
1.Vivado のプロジェクト名はハードウェア・プラットフォームの名前と一致させる必要があるようだ。
2.使用するIPはVivado に標準で含まれているIP以外はローカルにVivado プロジェクトに置いておく必要がある。外部のIP参照はダメだそうだ。
3.ブロックデザイン内にPS を含めないとだめだそうだ。
4.SDSoC のハードウェア・ポート・インターフェース、つまり、配線しないでIPからむき出しままのIPのポートはAXI、AXI4-Stream、クロック、割り込みのどれかだそうだ。カスタムバスは自動的にSDSoC で使われることはないので、ブロックデザイン内で完結しておく必要があるようだ。
5.PSで少なくとも1つはAXI マスタ・ポート(GPポート)かAXI マスタ・ポートに接続されているAXI Interconnect IPを作る必要があるそうだ。これらは、SDSoC コンパイラでデータ・ムーバ、アクセラレータIPのソフトウェア制御に使用されるそうだ。
でもZYBOのデフォルト・プラットフォームを見てもAXI マスタポートもAXI Interconnect も無いのはなぜなんだろうか?
ZYBOのデフォルト・プラットフォームはPS から4つのクロックを出力していて、それらに接続されている4つのproc_sys_reset とPS のIRQ_F2P に接続されたConcat だけしかない。
6.少なくとも1つのAXI スレーブ・ポート(HPポート)を作っておく必要があるようだ。それは、SDSoC コンパイラでデータ・ムーバやアクセラレータ IP からのDDR のアクセスに使用される。
これもZYBOのデフォルト・プラットフォームにはない。
7.AXIポートをSDSoC環境と内部ロジックで共有する場合は、AXI Interconnect をつけて、SDSoCのためにポートを開けつつ、若い番号のポートをプラットフォームで使う必要があるそうだ。
8.AXI インターフェースはSDSoC環境によって1つのデータ・モーション・クロックに接続されるそうだ。よくわからないがクロックをつないでくれるということかな?
注記で、アクセラレータIPはプラットフォームとは異なるクロックで動作することがあるようだ。
9.AXI4-Streamインターフェースには、TLAST と TKEEP が必要だそうだ。でもsample にあるzybo_axis_io をみてもどちらも定義されていないけど、大丈夫なのだろうか?
10.各クロックには、個別に Processor System Rest IP を付ける必要があるそうだ。これはデフォルト・プラットフォームでも付いている。
11.割り込み入力は、PS のIRQ_F2P にConcat をつけて、ポートをそのままにしておくそうだ。IRQ_F2P は1ビットで 0 にしておくそうだ。
大体、ハードウェア・プラットフォームの作り方が分かったので、適当にVivado プロジェクトを作って、ハードウェアのメタデータを生成してみよう。
- 2016年12月25日 06:12 |
- SDSoC
-
| トラックバック:0
-
| コメント:2
説明されるうちに、訂正されると思いますが、実際は少しことなります。4,5,6は、別にそのとおりでなくても、動くし、11番は何かに接続しても問題なかった。結構自由度高いですよ。 というか、2016.3だけのドキュメントでプラットフォーム作るほうが、すごい。私は古いドキュメントも併用しました。
- 2016/12/25(日) 06:52:37 |
- URL |
- バサロ #7lvuq8dQ
- [ 編集 ]
デフォルトのプラットフォームに記述が無かったので、そうなんじゃないかな?と思っていました。
とにかく、いろいろとハードウェアのプラットフォームを作ってみようと思っています。
古いドキュメントは私も参照しています。それとSDSoC のサンプルのプラットフォームも。。。
- 2016/12/25(日) 07:09:53 |
- URL |
- marsee #f1oWVgn2
- [ 編集 ]