AR# 44786

AutoESL - 内部 AP_STREAM の共有について

説明

複数のファイルで ap_stream を定義しようとしましたが、AutoESL で警告メッセージは表示されませんでした。 

しかし、出力された RTL が間違っていました (デザインのすべてのパーツが 1 つのファイルにあったときはテストベンチをパスしましたが、このときはパスしませんでした)。

内部 ap_stream は下位ファンクションの出力に対し ap_vld インターフェイスに、下位ファンクションの入力に対し ap_none インターフェイスに変換されていますが、ap_fifo になると思っていました。

何が起きているのでしょうか。

ソリューション

内部 AP_STREAM のソース ファイル間での共有はサポートされていません。

AP_STREAM はそれぞれ異なるファイルで定義されているファンクションで使用できます。 

しかし、AP_STREAM がデザイン インターフェイスにない場合は、これは、スタティックの修飾子を使用して内部専用として定義されています。 

このスタティックな修飾子の定義によって、このストリームは定義されているソース ファイルに対して、このストリームはプライベートになります。

この結果、ストリームへのアクセスを必要とするファンクションはすべて、同じファイルで定義する必要があります。 

 

また、AutoESL 2011.4.2 およびそれ以前のバージョンでは、FIFO としてインプリメントするには、内部 (スタティック) AP_STREAM をすべて最上位ソース ファイルで定義する必要もあります。

内部 AP_STREAM を使用するファンクションがすべて同じソース ファイルで定義されていたとしても、このファイルに最上位ファンクションを含める必要があります。

この問題は 2012.1 リリースの AutoESL で修正されています。

基本メモリのサイズ指定には内部ストリームの AP_STREAM_SIZE() マクロの使用を推奨します。

アンサー レコード リファレンス

マスター アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
47431 ザイリンクス Vivado HLS ソリューション センター - デザイン アシスタント N/A N/A
AR# 44786
日付 10/21/2014
ステータス アクティブ
種類 ソリューション センター
ツール 詳細 概略