ノンブロッキング API - 2023.2 日本語

Vitis 高位合成ユーザー ガイド (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 日本語
重要: ノンブロッキング API は、ap_fifo プロトコルを使用したインターフェイスで完全にサポートされます。ただし、AXI4-Stream (axis) インターフェイスは、ノンブロッキングの読み出しアクセスのみをサポートし、書き込みはサポートしません。

ノンブロッキングという用語は、ストリーム上にデータがない (またはデータが多すぎる) 場合でも、関数の演算やループの反復がブロックされないことを意味します。ノンブロッキング メソッドは、読み出しまたは書き込みのステータスを示すブール値を返します (問題ない場合は true、問題がある場合は false)。ただし、ノンブロッキング API を使用すると、非確定的ビヘイビアー (C シミュレーションまたは RTL/協調シミュレーションのいずれかで完全に検証できず、徹底的にテストするには RTL テストベンチが必要) が発生する可能性があります。非確定的ビヘイビアーは、空の FIFO から読み出そうとしたり、フルの FIFO に書き込もうとしたりすると発生します。

C シミュレーション中、ストリームには無限サイズが含まれます。このため、ストリームがフルの場合は C シミュレーションで検証はできません。これらのメソッドは、FIFO サイズ (デフォルト サイズの 1 か STREAM 指示子で定義された任意のサイズ) が定義された場合の RTL シミュレーション中にのみ検証できます。

重要: デザインがブロック レベルの I/I/O プロトコル ap_ctrl_none を使用するように指定されていて、デザインにブロッキング以外の動作を使用する hls::stream が含まれる場合は、C/RTL 協調シミュレーションが必ず終了するとは限りません。