FC2カウンター FPGAの部屋 2016年12月25日
FC2ブログ

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

FPGAの部屋

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

「ローグ・ワン/スター・ウォーズ・ストーリー」と「海賊と呼ばれた男」を見てきました

12月23日に「ローグ・ワン/スター・ウォーズ・ストーリー」を見てきました。面白かったです。ダースベイダー懐かしい。最後には…も出てきましたよ。

今日は、奥さんと「海賊と呼ばれた男」を見てきました。岡田准一さんの演技が凄かったですね。見てよかったです。最後のエピソードは原作にはなかったですね。
  1. 2016年12月25日 20:32 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

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