デザインで AXI VDMA を使用していますが、次の動作のうち 1 つまたは複数が見られます。
なぜスロットルがあるのですか。なぜエラーが発生しているのですか。tkeep の動作がおかしいのはなぜですか。s2mm_tkeep を同じに駆動する必要がありますか。
問題に対処するには、コアをコンフィギュレーションするときに [Allow Unaligned Transfers] をオンにして DRE (Data Realignment Engine) をイネーブルにする方法が考えられます。
この動作は何らかのアライメント エラーが原因で発生する可能性があり、おそらく tdata 幅、hsize、ストライドの設定に問題があるものと思われます。
製品ガイドによれば、C_INCLUDE_S2MM_DRE = 0 のとき、開始アドレスを C_M_AXI_S2MM_DATA_WIDTH バイトの倍数にアラインする必要があります。
また、水平方向のサイズおよびストライドを C_M_AXI_S2MM_DATA_WIDTH バイトの偶数の倍数に指定する必要があります。
DRE をイネーブルにすると、こうした制限事項が適用されなくなり、コアは自動的にリアライメントを実行するため (余分なロジックが使用されるためエリア使用率は増大)、ユーザーはアラインされていない値を使用できるようになります。
注記: DRE は、AXI Stream のデータ幅が 64 ビット以下の場合にのみサポートされます。
このようなアライメント エラーが予期せずに発生するのは、フレーム サイズをスケーリングするアプリケーションです。
アプリケーションで適宜サイズ調整されたフレームをメモリに転送する必要がある場合、AXI VDMA の水平方向サイズを補正のためランタイム時に調整する必要があるため、アライメント エラーが発生する可能性が高くなります。
つまり、多くのケースで水平方向サイズが C_M_AXI_S2MM_DATA_WIDTH の偶数の倍数にならなくなる場合があります。
このため、Video Scaler コアと併用する場合は AXI VDMA で DRE をイネーブルにすることを推奨します。
注記:上記の動作がその他の問題を示している可能性もあります。
LogiCORE IP AXI Video Direct Memory Access Release のリリース ノートおよび既知の問題のリストは、(Xilinx Answer 54448) を参照してください。
Answer Number | アンサータイトル | 問題の発生したバージョン | 修正バージョン |
---|---|---|---|
47654 | AXI Video Direct Memory Access (VDMA) - リリース ノートおよび既知の問題 | N/A | N/A |
54448 | LogiCORE IP AXI Video Direct Memory Access - Vivado 2013.1 およびそれ以降のツール バージョンのリリース ノートおよび既知の問題 | N/A | N/A |
AR# 54934 | |
---|---|
日付 | 05/28/2019 |
ステータス | アクティブ |
種類 | 一般 |
IP |