FC2カウンター FPGAの部屋 AXI VDMAのお勉強4(AXI VDMA General Operations 1)
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

AXI VDMAのお勉強4(AXI VDMA General Operations 1)

最初の記事は、”AXI VDMAのお勉強
前の記事は、”AXI VDMAのお勉強3(Scatter Gather Mode)

AXI VDMA General Operations(93ページ)
AXI VDMA Frame Boundary
・フレーム境界はモードによって様々。

・external fsync mode の場合は、チャネルの同期入力、mm2s_fsync と s2mm_fsync でフレーム境界が決まる。
・AXI VDMAが同期出力の mm2s_fsync_out か s2mm_fsync_out をアサートした後で、フレームの画像データ転送が始まる
・同期入力から同期出力までは、パイプラインの遅延があるそうだ。

・free run mode (C_USE_FSYNC = 0) では、内部で同期信号を生成している。
・フレーム境界で、同期出力の mm2s_fsync_out か s2mm_fsync_out をアサートする。

・S2MMチャネルの場合は、予定のデータを受信した時にハングアップするのを避けるため s_axis_s2mm_tready をアサートし続ける。これは、C_USE_FSYNC=1,3 and C_FLUSH_ON_FSYNC=1,3の場合だ。
・それは、適切なエラービットをセットするそうだ。エラービットのテーブルは、Table 3‐12: MM2S Errors、Table 3‐13: S2MM Errors(112ページ)を参照。

・画像のパラメータをアップデートしたときは、同期出力の mm2s_fsync_out か s2mm_fsync_outと一緒に、mm2s_prmtr_updateまたはs2mm_prmtr_updateをアサートする。

推奨:S2MMのデットロックのシナリオは、TUSER(0)をSOFとして使用していた時、ストリーミング・マスタが、s2mm_prmtr_updateがアサートするのを待って、s_axis_s2mm_tvalidをドライブする時だ。AXI VDMA は、TUSER(0)がアサートされ、s2mm_prmtr_updateをドライブするのを想定しているからだ。ストリーミング・マスタは、データ転送する際に s2mm_prmtr_update に依存しないようにする。


AXI VDMA Video Transfer
・データはシステムメモリからストリームまたは現在操作対象のフレームと垂直サイズ、水平サイズ、ストライドの開始アドレスで定義されているシステムメモリにストリームで転送される。
・下の図に、システムメモリに記憶された一般的なビデオ画像を示す。画像メモリの一部分を表示している。
・Horizontal Sizeのバイト数分のVertical Sizeのラインが、システムメモリのビデオ・フレームのスタート・アドレスの番地から転送される。
Study_of_VDMA_2_130517.png

Free Run Mode (C_USE_FSYNC = 0)
・free run mode (C_USE_FSYNC = 0)では、ビデオデータは可能な限り速く転送される。
・フレームの境界を示すのが、mm2s_fsync_outとs2mm_fsync_out。
・スタートアップ時に、各チャネルのDMACR.RSを1にし、ビデオのパラメータを設定した後で、最初の同期信号(mm2s_fsync_out か s2mm_fsync_out)をアサートする。(AXI VDMAが)
・最初の同期信号(mm2s_fsync_out か s2mm_fsync_out)をアサートすると最初のフレームが始まる。
・MM2Sチャネルでは、mm2s_fsync_outをアサート後に、ビデオデータがDMA転送される。
・S2MMチャネルでは、s2mm_fsync_outの後で、フレームのビデオデータをAXI VDMAにDMA転送する。

Frame Sync Mode (C_USE_FSYNC = 1,2,3)
・フレーム同期モードでは、MM2Sチャネルは mm2s_fsync、S2MMチャネルでは s2mm_fsync の外部同期信号にビデオデータが同期する。
・axi_vdmaチャネルは、関連するチャネルフレーム同期入力、mm2s_fsyncまたはs2mm_fsyncの立ち下がりエッジで各フレームを開始する。
・MM2Sチャネルの場合、データはmm2s_fsyncのアサート後にマスターAXI4-Streamのポートに出力される。外部のビデオ用IPは、次の mm2s_fsync まで、その出力されたデータをすべて受け取る必要がある。
・S2MMチャネルの場合、データはs2mm_fsyncのアサート後にスレーブAXI4-Streamのポートで受け取られる。
(注)FSYNCの異なるソースのためにS2MM_DMACR (S2MM DMA Control Register – Offset 30h) (C_INCLUDE_SG = 1/0)を参照のこと。

概要じゃなくて訳を書いてしまうとまずいので、Genlockなども要約したのだが、自重しようと思う。
  1. 2013年05月20日 05:14 |
  2. IP
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/2469-fbc9dff2
この記事にトラックバックする(FC2ブログユーザー)