FC2カウンター FPGAの部屋 SDSoC のプラットフォームのお勉強2
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

SDSoC のプラットフォームのお勉強2

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 プロジェクトを作って、ハードウェアのメタデータを生成してみよう。
  1. 2016年12月25日 06:12 |
  2. SDSoC
  3. | トラックバック:0
  4. | コメント:2

コメント

説明されるうちに、訂正されると思いますが、実際は少しことなります。4,5,6は、別にそのとおりでなくても、動くし、11番は何かに接続しても問題なかった。結構自由度高いですよ。 というか、2016.3だけのドキュメントでプラットフォーム作るほうが、すごい。私は古いドキュメントも併用しました。
  1. 2016/12/25(日) 06:52:37 |
  2. URL |
  3. バサロ #7lvuq8dQ
  4. [ 編集 ]

デフォルトのプラットフォームに記述が無かったので、そうなんじゃないかな?と思っていました。
とにかく、いろいろとハードウェアのプラットフォームを作ってみようと思っています。
古いドキュメントは私も参照しています。それとSDSoC のサンプルのプラットフォームも。。。
  1. 2016/12/25(日) 07:09:53 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/3672-0172f528
この記事にトラックバックする(FC2ブログユーザー)