インテルのみ表示可能 — GUID: mcs1496429998674
Ixiasoft
3.3. ポインター・エイリアシングの回避
可能な場合は常に、制限型修飾子をポインター型に追加します。制限型修飾子ポインターを使用することにより、不要なメモリー依存関係が、非競合読み出し動作と書き込み動作との間に インテル®HLSコンパイラー プロ・エディションによって作成されるのを防ぎます。
制限型修飾子は __restrict です。
ループでの各イタレーションによるデータの読み出しが、1つの配列から行われる場合について検討します。この場合、各イタレーションよるデータの書き込みは、同じ物理メモリー内の別の配列に対して行われます。制限型修飾子をこのポインター引数に追加しない場合、コンパイラーでは、2つの配列が重複していると仮定します。そうすると、コンパイラーでは、メモリーアクセスの元の順序を両方の配列に対して維持する必要があります。その結果、ループの最適化が不十分になったり、メモリーアクセスを含むループのパイプライン処理が失敗したりします。
詳しくは、次の場所にあるパラメーター・エイリアシング・チュートリアルを参照してください。
<quartus_installdir>/hls/examples/tutorials/best_practices/parameter_aliasing