AR# 54934

LogiCORE IP AXI Video Direct Memory Access (VDMA) - スロットル、フレーム サイズ エラー (SOF)、予期しない TKEEP 動作が見られる

説明

デザインで AXI VDMA を使用していますが、次の動作のうち 1 つまたは複数が見られます。

  • S2MM 側にスロットルがある
  • MM2S_TKEEP 信号にゼロが含まれている (1 つまたは複数のバイトがヌル バイトになっている)
  • S2MM_DMASR にフレーム サイズ エラーが発生している (DMAIntErr、EOLEarlyErr、SOFLateErr、Err_Irq)

なぜスロットルがあるのですか。なぜエラーが発生しているのですか。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) を参照してください。

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

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

AR# 54934
日付 05/28/2019
ステータス アクティブ
種類 一般
IP