AN-796 アプリケーション・ノート マルチチップ・アプリケーションにおけるADV202の使用方法 著者:Christine Bako はじめに HDTVアプリケーション(1080i)において、2個のADV202で 本書では、HDTV、1080iモードにおいて2個のADV202を接続 する方法を説明します。 処理を行うためには、以下の条件が必要です。 最大入力データレート:それぞれの ADV202 ( ADV202150)に対して65MSPS。 インターフェース:VDATAバス(非圧縮ビデオ・データの 60 フ ィ ー ル ド / 秒 の SMPTE274M 1080i ビ デ オ は 、 合 計 1.485Gbpsのデータレートに変換されます。 10ビット・データでは、これは約124Mバイト/秒のアクティ ブ・ビデオの入力データレートに変換されます。VDATAイン ターフェースを使用する場合、ADV202への入力データレート は、不可逆モードで65MSPS、可逆モードで32MSPSが上限で す。このため、 1080i 用の入力データレートを処理するには、 少なくとも2個のADV202が必要です。 HDTVモードで2個のADV202を使用する場合、YとCbCrは別 のバス上にあることが必要です。ADV202_1では1080i輝度信 号データを処理し、ADV202_2では色差データを処理します。 このモードのアプリケーションで2つの出力の同期をとるには、 2つのデータ・ストリームがEAV/SAVコードを含む必要があり ます。デコードでは、マスタ/スレーブまたはスレーブ/ス レーブでの設定が可能です(図1と図2を参照)。エンコードで は、ADV202は常にスレーブです。 入出力用) 圧縮モード:不可逆 1080iロスレスなどの高性能が必要な場合は、3個以上の ADV202の使用を推奨します。本書で説明する原理は、3個以 上のADV202を使用するアプリケーションにも適用されます。 本書は、ADV202のビデオ出力が、エンコーダやシリアライザ などの受信デバイスの色差/輝度信号データ入力( P.2 「推奨 インターフェース」を参照)の同期を必要とするデバイスに直 結されるアプリケーションに適用されます。ADV202のビデオ 出力がバッファやFPGAに送信される場合は、同期は重要では ありません。 REV. 0 アナログ・デバイセズ株式会社 本 社/ 〒105-6891 東京都港区海岸1-16-1 ニューピア竹芝サウスタワービル 電話03(5402)8200 大阪営業所/ 〒532-0003 大阪府大阪市淀川区宮原3-5-36 新大阪MTビル2号 電話06(6350)6868 ―1― AN-796 推奨インターフェース デコード・マスタ/スレーブ設定 32ビット・ ホストCPU DATA[31:0] ADDR[3:0] ADV202_1 MASTER 10ビット SD/HD ビデオ・ エンコーダ HDATA[31:0] 74.25MHz OSC ADDR[3:0] CS CS RD RD WR WE ACK ACK IRQ IRQ VCLK CLKIN 1080i ビデオ出力 MCLK VDATA[11:2] DREQ DREQ DACK DACK G I/O ADV730xA SCOMM[5] Y Y FIELD VSYNC HSYNC CbCr Y[9:0] C[9:0] ADV202_2 SLAVE HDATA[31:0] ADDR[3:0] CS CS RD RD WR WE ACK ACK IRQ IRQ VCLK MCLK HSYNC VSYNC FIELD DREQ DREQ DACK DACK CbCr VDATA[11:2] SCOMM[5] 図1. デコード・マスタ/スレーブ時のADV202マルチチップ・アプリケーション デコード・スレーブ/スレーブ設定 32ビット・ ホストCPU DATA[31:0] ADDR[3:0] ADV202_1 SLAVE 10ビット SD/HD ビデオ・ エンコーダ HDATA[31:0] 74.25MHz OSC ADDR[3:0] CS CS RD RD WR WE ACK ACK IRQ IRQ VCLK CLKIN 1080i ビデオ出力 MCLK VDATA[11:2] DREQ DREQ DACK DACK G I/O ADV730xA SCOMM[5] Y Y FIELD VSYNC HSYNC Y[9:0] C[9:0] ADV202_2 SLAVE HDATA[31:0] ADDR[3:0] CS CS RD RD WR WE ACK ACK IRQ IRQ DREQ DREQ DACK DACK VCLK MCLK HSYNC マスタ 同期信号 VSYNC FIELD VDATA[11:2] CbCr SCOMM[5] 図2. デコード・スレーブ/スレーブ時のADV202マルチチップ・アプリケーション ―2― REV. 0 AN-796 エンコード設定 32ビット・ ホストCPU DATA[31:0] ADDR[3:0] ADV202_1 SLAVE HDATA[31:0] ADDR[3:0] CS CS RD RD WR WE ACK ACK IRQ IRQ 74.25MHz VCLK LLC MCLK VDATA[11:2] DREQ DREQ DACK DACK G I/O 10ビットHD YCbCr 4:2:2ソース SCOMM[5] Y FIELD VSYNC HSYNC Y Y[9:0] C[9:0] ADV202_2 SLAVE HDATA[31:0] ADDR[3:0] CS CS RD RD WR WE ACK ACK IRQ IRQ DREQ DACK DREQ VCLK MCLK HSYNC VSYNC FIELD VDATA[11:2] CbCr DACK SCOMM[5] 図3. エンコード時のADV202マルチチップ・アプリケーション HDATAバスでの転送速度 HDATAバスを通じて最高のデータレートを達成するには、 バースト転送設定で外部DMA DREQ/DACKモードを使用しま す。 ターフェースなど)のデータ・スループット・レートは、これ らの最大データレートに対応することが重要です。 ビデオ入力 ― エンコード・モード YCbCrデータは4:2:2フォーマットで、EAV/SAVタイミング・ 32ビット・データに対する最大転送速度 コードを伴うことが必要です。 1080iアプリケーションでは、74.25MHzのVCLKを必要とします。 ADV202のデータシートによれば、最大バースト周波数は 0.35×JCLKとすることが推奨されており、これは約50MHzにな るため、JCLKは少なくとも2×VCLKであることが必要です。 これは、読出し/書込みパルスの最大周波数です。 次に、32ビットのバスが2つのADV202で共有されている場合 に、 32 ビットのホスト・インターフェースを使用して 2 つの ADV202をマルチチップ同期モードで設定する方法の概要を示 します。 詳細については、最新のADV202データシートおよびテクニカ ル・ノート『ADV202入門 プログラミング・ガイド』を参照し てください。 圧縮データが格納されるCODE FIFOの大きさは、256個以上の 32ビット・ワードのサイズに設定します。32ビット幅のデータ では、アクセスの最大数は256に制限されます。16ビット幅の データでは、512に制限されます。 ADV202_1の設定 1. PLL_HIレジスタに0x0008hを書き込み、PLL_LOレジス タに0x0084を書き込みます(VCLK=74.25MHz)。 したがって、HDATAバスでの32ビット・データに対する最大 スループット・レートは、次のとおりです。 2. PLL安定のため、20µs待ちます。 4バイト×50MHz=200Mバイト/秒 3. BOOTレジスタに0x008Aを書き込みます。このブート・ バースト長を128 アクセスと仮定すると、CODE FIFO が圧縮 フィールドの最終部分に対して 128 ワードを含まない場合は、 フィールドがバースト境界で終了するように、 FIFO はゼロで 埋められます。 HDATA バスでの16 ビット・データに対する最大転送速度は、 次のとおりです。 モードは、デバイスにファームウェアをロードする必要の あるアプリケーションに使用します。 4. BUSMODEに0x000Aを書き込みます。これにより、ホス ト制御データ幅が32ビットに、DMAデータ幅が32ビット に設定されます。 5. MMODE に 0x000A を書き込みます。これにより、間接 データ・アクセス幅と間接アドレス・ステップ・サイズは 2バイト×50MHz=100Mバイト/秒 32ビットに設定されます。 バースト長を256 アクセスと仮定すると、CODE FIFO が圧縮 フィールドの最終部分に対して 256 ワードを含まない場合は、 フィールドがバースト境界で終了するように、 FIFO はゼロで 埋められます。アプリケーションで使用するインターフェース (圧縮データを PC システムに転送/格納するための PCI イン REV. 0 ―3― 6. IADDRに0x00050000を書き込んで、プログラム・メモリ の開始位置を設定します。 7. IDATAにファームウェアのすべての32ビット値を書き込 んで、メモリにプログラムをロードします。 AN-796 8. BOOTレジスタに0x008Dを書き込んで、リブートを開始 ADV202_2の設定 します。これによりプログラム実行が開始されます。 1. PLL_HIレジスタに0x0008hを書き込み、PLL_LOレジス タに0x0084を書き込みます。 9. BUSMODEに0x000Aを書き込みます。 2. PLL安定のため、20µs待ちます。 10. MMODEに0x000Aを書き込みます。 3. BOOTレジスタに0x008Aを書き込みます。このブート・ ADV202_1の初期化前ルーチン 1. IADDR に 0x00057F00 を書き込みます。これにより、 ADV202にロードされるエンコード・パラメータの開始ア モードは、デバイスにファームウェアをロードする必要の あるアプリケーションに使用します。 4. BUSMODEに0x000Aを書き込みます。これにより、ホス ト制御データが32ビットに、DMAデータ幅が32ビットに ドレスが設定されます。 2. IDATAに0x02010503を書き込みます。これらは実際のエ 設定されます。 ンコード・パラメータです。 5. MMODE に 0x000A を書き込みます。これにより、間接 この例では、 02=1080i輝度 01=10ビット精度 05=5レベルのウェーブレット変換 03=Y、Cユニポーラ データ・アクセス幅と間接アドレス・ステップ・サイズは 32ビットに設定されます。 6. IADDRに0x00050000を書き込んで、プログラム・メモリ の開始位置を設定します。 3. エンコード・パラメータの続き 7. IDATAにファームウェアのすべての32ビット値を書き込 んで、メモリにプログラムをロードします。 IDATAに0x03000000を書き込みます。 03=コードブロック・サイズ128×32 00=不可逆9×7、固定テーブルを使用 00=フィールドのスキップなし 00=属性データの出力なし 8. BOOTレジスタに0x008Dを書き込んで、リブートを開始 します。 9. BUSMODEに0x000Aを書き込みます。 10. MMODEに0x000Aを書き込みます。 4. エンコード・パラメータの続き ADV202_2の初期化前ルーチン IDATAに0x01019500を書き込みます。 01=ビデオ・フィールド/フレームごとのターゲット・サ 1. IADDR に 0x00057F00 を書き込みます。これにより、 ADV202にロードされるエンコード・パラメータの開始ア イズ ドレスが設定されます。 019500=ターゲット・サイズ値(輝度の場合は103,680バ イト/フィールド、または圧縮率10:1) 2. IDATAに0x03010503を書き込みます。これらは実際のエ ンコード・パラメータです。 5. エンコード・パラメータの続き この例では、 IDATAに0x00000000を書き込みます。 00=LRCPプログレッション・スタイル 00=EAV/SAVコードを使用、すべての同期は負極性 00=Qfactorは1× 00=.j2cフォーマット 03=1080i色差 01=10ビット精度 05=5レベルのウェーブレット変換 03=Y、Cユニポーラ 3. エンコード・パラメータの続き 6. 残りのすべてのパラメータ位置を対象として、IDATA に 0x00000000を書き込みます。 IDATAに0x03000000を書き込みます。 03=コードブロック・サイズ128×32 00=不可逆9×7、固定テーブルを使用 00=フィールドのスキップなし 00=属性データの出力なし ADV202_1の初期化ルーチン 1. EIRQIEに0x0C00を書き込んで、SWIRQ0とSWIRQ1(ア ドレス0x5h)をマスク解除します。SWIRQ1をマスク解除 すると、マルチチップ同期機能がイネーブルになります。 4. エンコード・パラメータの続き 2. IRQがアサートされるのを待ちます(SWIRQ0はアドレス 0x6h、ビット10でセットされ、ローレベルになります)。 IDATAに0x01008700を書き込みます。 01=ビデオ・フィールド/フレームごとのターゲット・サ 3. アプリケーションIDを読み出して、プログラムが正しく初 期化されたことを確認します。ここでは、0xFF82 の値に イズ 008700=ターゲット・サイズ値(色差の場合は34,560バ イト/フィールド、または圧縮率30:1) なります。 ADV202_1用にDMAチャンネルを設定する初期化後 ルーチン 1. IADDRに0xFFFF1408を書き込みます。 5. エンコード・パラメータの続き 2. IDATA に 0x00120000 を書き込みます。これにより、 DMAチャンネル0は8バーストの32ビット・ワードに設定 され、圧縮/コードブロック・データ FIFO に割り当てら れます。 IDATAに0x00000001を書き込みます。 00=LRCPプログレッション・スタイル 00=EAV/SAVコードを使用、すべての同期は負極性 00=Qfactorは1× 00=.j2cフォーマット 6. 残りのすべてのパラメータ位置を対象として、IDATA に 0x00000000を書き込みます。 3. IADDRに0xFFFF1408を書き込みます。 4. IDATAに0x00130000を書き込みます。 ―4― REV. 0 AN-796 ADV202_2の初期化ルーチン ADV202_1用のプログラムを起動 1. EIRQIEに0x0C00を書き込んで、SWIRQ0とSWIRQ1を マスク解除します。SWIRQ1をマスク解除すると、マルチ ADV202_1のEIRQFLG(アドレス0x6h)に0x0400を書き込ん でソフトウェア割込み(SWIRQ0)をクリアし、プログラムを チップ同期機能がイネーブルになります。 起動します。 2 IRQがアサートされるのを待ちます(SWIRQ0はアドレス 0x6h、ビット10でセットされ、ローレベルになります)。 ADV202_2用のプログラムを起動 ADV202_2のEIRQFLG(アドレス0x6h)に0x0400を書き込ん でソフトウェア割込み(SWIRQ0)をクリアし、プログラムを 3. アプリケーションIDを読み出して、プログラムが正しく初 期化されたことを確認します。ここでは、0xFF82 の値に 起動します。 なります。 データ転送 DREQ0がアクティブになると、ADV202ではCODE FIFOから ADV202_2用にDMAチャンネルを設定する初期化後 ルーチン 1. IADDRに0xFFFF1408を書き込みます。 のデータを送信する準備が整います。 2. IDATA に 0x00120000 を書き込みます。これにより、 DMAチャンネル0は8バーストの32ビット・ワードに設定 され、圧縮/コードブロック・データ FIFO に割り当てら ホストではその後、ADV202 データシート(Rev0 、13 ページ 「外部DMAモード ― FIFO読出し、バースト・モード」)で説 明するタイミング仕様に基づいて、データ転送を開始してくだ さい。 れます。 3. IADDRに0xFFFF1408を書き込みます。 4. IDATAに0x00130000を書き込みます。 エンコード・モード ― タイミング ADV202_1_IRQ SWIRQ0 SWIRQ1 ADV202_2_IRQ SWIRQ0 SWIRQ1 SCOMM_5 ADV202_1_ DREQ0 ADV202_1_ DACK0 ADV202_1_ RD ADV202_2_ DREQ0 ADV202_2_ DACK0 ADV202_2_ RD HDATA [31:0] ADV202_1 ADV202_2 ADV202_1_VDATA ADV202_2_VDATA [5] ホストは連続する DREQを処理します。 [4] ホストは受信した最初のDREQを処理します。 [3] ホストはSCOMM5をアサートします。 [2] ADV202_1:ADV202がマルチチップ・モードでデータを受信する 準備ができると、ファームウェアがSWIRQ1をセットします。 [1] プログラムとパラメータがロードされると、ADV202_1がSWIRQ0をアサートします。 SWIR0が再びクリアされると、ADV202_1はプログラムを起動する準備ができます。 (3). 2 - 初期化ルーチンを参照してください。 図4. REV. 0 エンコード・モードのタイミング図 ―5― AN-796 エンコード・モードでは、データ・パスは次のようになります。 VDATA バ ス ― ウ ェ ー ブ レ ッ ト 変 換 エ ン ジ ン / エ ン ト ロ ピー・コーデック ― 内部メモリ ― CODE FIFO ― HDATAバ ス。詳細については、アプリケーション・ノートAN-790を参 照してください。 ________ SWIRQ0は、ADV202でプログラムの起動準備ができるとすぐ に各ADV202によってアサートされますが[1]、プログラムを起 動するにはアドレス0x6hに0x0400を書き込んでそれをクリア する必要があります。 SWIRQ1 は、この直後にアサートされ [2]、ADV202でマルチチップ・モードでのデータ受信の準備が できていることを示します。ホストは、アドレス 0x6h でこの ビットをポーリングしなければなりません。2つのSWIRQ1が セットされてからクリアされると、ホストは SCOMM[5] ピン をアサートし、それを維持し続けます。 SCOMM[5] ピンのア サートにより、ADV202はビデオ入力データのクロック入力を 開始します[3]。 _____ ______ 図4のタイミング図は、ADV202がDREQ/DACK DMAバース ト・モードで設定されており、 2 個の ADV202 が 32 ビットの HDATA バスを共有している場合を示します。各 ADV202 の DMAチャンネル 8アクセス( _____ 0は ___ ______ 8×32ビット・ワード)に設定 され、DREQは、RDとDACKがアサートされるまでアサート 状態を維持するように設定されます(EDMODレジスタ)。 5. MMODE に 0x000A を書き込みます。これにより、間接 データ・アクセス幅と間接アドレス・ステップ・サイズは 32ビットに設定されます。 6. IADDRに0x00050000を書き込んで、プログラム・メモリ の開始位置を設定します。 7. IDATAにファームウェアのすべての32ビット値を書き込 んで、メモリにプログラムをロードします。 8. BOOTレジスタに0x008Dを書き込んで、リブートを開始 します。これにより、プログラム実行が開始されます。 9. BUSMODEに0x000Aを書き込みます。 10. MMODEに0x000Aを書き込みます。 ADV202_1の初期化前ルーチン 1. IADDR に 0x00057F00 を書き込みます。これにより、 ADV202にロードされるデコード・パラメータの開始アド レスが設定されます。 2. IDATAに0x0201XX03を書き込みます。これらは実際の デコード・パラメータです。 この例では、 02=1080i輝度 01=10ビット精度 XX=この情報はコード・ストリームから得られます 03=Y、Cユニポーラ これらの値は、エンコード・モードで使用したものと一致 させてください。 2個のADV202では、ほぼ同時にCODE FIFOから圧縮データを 出力する準備ができるものと想定できます。ホストでは、受信 _______ した最初のDREQ0 を処理し、各ADV202 からのデータを別の _______ メモリ位置に割り当てます。ADV202_1 _______からのDREQ0が処理 される間に、ADV202_2 はすでにDREQ0をアサートしていま _______ す。 ADV202_2 からの DREQ0 は、ホストが ADV202_2 への ______ ___ DACKとRDをアサートするまで、アサートされた状態にあり ます。 3. デコード・パラメータの続き IDATAに0xXXXXXXXXを書き込みます。この情報は、 _____ ______ 32 ビット・アクセスを使用する DREQ /DACK DMA バース ト・モードでの最大アクセス数は、256とされています(『ユー ザ・ガイド』の「EDMODレジスタ」を参照)。1080iモードで、 32 ビットの HDATA バスを 2 個の ADV202 で共有する場合は、 アクセス数を8×32ビット・アクセスに設定することを推奨し ます。これにより、高圧縮率を使用する場合に、CODE FIFO からのデータ・フローを一定にできます。 ビデオ出力 ― デコード・モード 圧縮されたビデオ・データは、HDATAバスを通じてADV202 にロードされます。以下では、 32 ビットのホスト・インター フェースを使用して、2個のADV202をマルチチップ同期モー ドで設定する方法の概要を示します。特に明記しない限り、こ の手順はマスタ/スレーブのアプリケーションでもスレーブ/ スレーブのアプリケーションでも同じです。詳細については、 最新のADV202データシートおよびテクニカル・ノート 『ADV202入門 プログラミング・ガイド』を参照してください。 ADV202_1の設定 コード・ストリームから得られます。 4. デコード・パラメータの続き スレーブ/スレーブ設定では、IDATAに0xXX0000XXを 書き込みます。 XX=この情報はコード・ストリームから得られます 00=デコード・スレーブ・モード 00=デコード分解能設定 XX=この情報はコード・ストリームから得られます マスタ/スレーブ設定では、IDATAに0xXX0010XXを書 き込みます。 XX=この情報はコード・ストリームから得られます 10=デコード・マスタ・モード 00=予備 XX=この情報はコード・ストリームから得られます ADV202_1の初期化ルーチン 1. EIRQIEに0x0C00を書き込んで、SWIRQ0とSWIRQ1を マスク解除します。SWIRQ1をマスク解除すると、マルチ チップ同期機能がイネーブルになります。 1. PLL_HIレジスタに0x0008hを書き込み、PLL_LOレジス タに0x0084を書き込みます。 2. IRQ がアサートされる(ローレベルになる)のを待ちま す。 2. PLL安定のため、20µs待ちます。 3. アプリケーションIDを読み出して、プログラムが正しく初 期化されたことを確認します。ここでは、0xFFA2の値と 3. BOOTレジスタに0x008Aを書き込みます。このブート・ モードは、デバイスにファームウェアをロードする必要の あるアプリケーションに使用します。 なります。 4. BUSMODEに0x000Aを書き込んでイネーブルにします。 これにより、ホスト制御データ幅が 32 ビットに、 DMA データ幅が32ビットに設定されます。 ―6― REV. 0 AN-796 4. デコード・パラメータの続き ADV202_1用にDMAチャンネルを設定する初期化後 ルーチン 1. IADDRに0xFFFF1408を書き込みます。 スレーブ/スレーブ設定では、IDATAに0xXX0000XXを 書き込みます。 XX=この情報はコード・ストリームから得られます 00=デコード・スレーブ・モード 00=デコード分解能設定 XX=この情報はコード・ストリームから得られます 2. IDATA に 0x00120000 を書き込みます。これにより、 DMAチャンネル0は8バーストの32ビット・ワードに設定 され、圧縮/コードブロック・データ FIFO に割り当てら れます。 マスタ/スレーブ設定では、IDATAに0xXX0010XXを書 き込みます。 XX=この情報はコード・ストリームから得られます 10=デコード・マスタ・モード 00=予備 XX=この情報はコード・ストリームから得られます 3. IADDRに0xFFFF1408を書き込みます。 4. IDATAに0x00130000を書き込みます。 ADV202_2の設定 1. PLL_HIレジスタに0x0008hを書き込み、PLL_LOレジス タに0x0084を書き込みます。 ADV202_2の初期化ルーチン 2. PLL安定のため、20µs待ちます。 1. EIRQIEに0x0C00を書き込んで、SWIRQ0とSWIRQ1を マスク解除します。SWIRQ1をマスク解除すると、マルチ 3. BOOTレジスタに0x008Aを書き込みます。このブート・ チップ同期機能がイネーブルになります。 モードは、デバイスにファームウェアをロードする必要の あるアプリケーションに使用します。 2. IRQ がアサートされる(ローレベルになる)のを待ちま す。 4. BUSMODEに0x000Aを書き込みます。これにより、ホス ト制御データ幅が32ビットに、DMAデータ幅が32ビット 3. アプリケーションIDを読み出して、プログラムが正しく初 期化されたことを確認します。ここでは、0xFFA2の値と に設定されます。 なります。 5. MMODE に 0x000A を書き込みます。これにより、間接 データ・アクセス幅と間接アドレス・ステップ・サイズは 32ビットに設定されます。 ADV202_2用にDMAチャンネルを設定する初期化後 ルーチン 1. IADDRに0xFFFF1408を書き込みます。 6. IADDRに0x00050000を書き込んで、プログラム・メモリ の開始位置を設定します。 2. IDATAに0x00120000を書き込みます。これにより、DMA チャンネル0は8バーストの32ビット・ワードに設定され、 圧縮/コードブロック・データFIFOに割り当てられます。 7. IDATAにファームウェアのすべての32ビット値を書き込 んで、メモリにプログラムをロードします。 3. IADDRに0xFFFF1408を書き込みます。 8. BOOTレジスタに0x008Dを書き込んで、リブートを開始 します。 4. IDATAに0x00130000を書き込みます。 9. BUSMODEに0x000Aを書き込みます。 ADV202_1用のプログラムを起動 10. MMODEに0x000Aを書き込みます。 ADV202_1のEIRQFLG(アドレス0x6h)に0x0400を書き込ん でソフトウェア割込み(SWIRQ0)をクリアし、プログラムを ADV202_2の初期化前ルーチン 起動します。 1. IADDR に 0x00057F00 を書き込みます。これにより、 ADV202にロードされるデコード・パラメータの開始アド ADV202_2用のプログラムを起動 ADV202_2のEIRQFLG(アドレス0x6h)に0x0400を書き込ん でソフトウェア割込み(SWIRQ0)をクリアし、プログラムを レスが設定されます。 2. IDATAに0x0301XX03を書き込みます。これらは実際の 起動します。 デコード・パラメータです。 この例では、 03=1080i色差 01=10ビット精度 XX=この情報はコード・ストリームから得られます 03=Y、Cユニポーラ データ転送 _______ DREQ0がアクティブになると、ADV202ではデータを受信す る準備が整います。ホストではその後、ADV202データシート (Rev0、12ページ「外部DMAモード ― FIFO書込み、バース ト・モード」)で説明するタイミング仕様に基づいて、データ 転送を開始してください。 3. デコード・パラメータの続き IDATA に 0xXXXXXXXX を書き込みます。この情報は コード・ストリームから得られます。 REV. 0 ―7― AN-796 デコード・モード ― タイミング ADV202_1_IRQ SWIRQ0 SWIRQ1 ADV202_2_IRQ SWIRQ0 SWIRQ1 SCOMM_5 ADV202_1_ DREQ0 ADV202_1_ DACK0 ADV202_1_ WR ADV202_2_ DREQ0 ADV202_2_ DACK0 ADV202_2_ WR HDATA [31:0] ADV202_1 ADV202_2 ADV202_1 ADV202_2 ADV202_1 ADV202_2 ADV202_1 ADV202_1_VDATA ADV202_2_VDATA [2] ホストはADV202から受信した DREQ0を処理します。 データはCODE FIFOに書き込まれます。 [1] プログラムとパラメータがロードされると、 ADV202_1はSWIRQ0をアサートします。 SWIRQ0が再びクリアされると、ADV202_1では プログラムを起動する準備ができます。 (3.2) 初期化ルーチンを参照してください。 図5. [4] ホストはSCOMM[5]をアサートします。 YとCbCrのデータは、2本のVDATAバスで 同時に出力されます。 [3] ADV202_1にはVDATAバスを通じて ビデオを出力するのに十分なデータが含まれており、 SWIRQ1がセットされます。 デコード・モードのタイミング図 デコード・モードでは、データ・パスは次のようになります。 HDATA バス ― CODE FIFO ― ウェーブレット変換エンジ ン/エントロピー・コーデック ― 内部メモリ ― ピクセル・イ ンターフェース VDATA バス。詳細については、アプリケー ション・ノートAN-790を参照してください。 ければなりません。2つのSWIRQ1がセットされてからクリア されると、ホストは、 SCOMM[5] ピンをアサートし、このピ ンをアサートし続けます[4]。SCOMM[5]ピンのアサートによ り、ADV202 は2 本のVDATA バスでビデオの出力を開始しま す[4]。 SWIRQ0は、ADV202でプログラムの起動準備ができるとすぐ にADV202によってアサートされますが[1]、プログラムを起動 するにはアドレス0x6hに0x0400を書き込んでそれをクリアす _______ る必要があります。2つのADV202は、ほぼ同時に DREQ0をア _______ サートします。ホストでは、受信した最初の DREQ0 を処理し _______ [2]、もう一方のADV202からのDREQ0と交互に処理してくだ 2個のADV202は、ほぼ同時にデータを要求する準備ができる _______ ものと想定できます。ホストでは、受信した最初の DREQ0 を 処理し、エンコード・モードであらかじめADV202に割り当て られた外部ロケーションから当該 ADV202にデータを書き込み _______ ま す 。 A D V 2 0 2 _ 1_____ か ら の DREQ0 を 処 理 し た 後 で は 、 ADV202_2 はすでに DREQ をアサートしているはずです。 _______ A D V 2 0 2 _ 2 か ら の DREQ0 は、ホストがADV202_2への _______ ___ DACK0 と WR をアサートするまで、アサートされた状態にあ ります。ホストでは、ADV202_2に割り当てられた外部ロケー ションからのデータをHDATAバスに書き込みます。 さい。 図 5 のタイミング図に示す例では、 _____ ADV202 ______ は、 32 ビットの HDATA バスを共有使用して_____ DREQ /DACK DMA___ バースト・ ______ モードで設定されています。DREQは、DACKとWRがアサー トされるまで、アサート状態を維持するように設定されます。 CODE FIFOが満杯になり、コードストリーム・データがエン トロピー・コーデックとウェーブレット変換エンジンを介して ピクセル・インターフェースに渡されると、 ADV202 では、 VDATAバスを通じて非圧縮のビデオ・データを出力する準備 ができています。この時点で、 SWIRQ1 がアサートされます [3]。ホストは、アドレス0x6hでこのビットをポーリングしな ―8― 連続的なビデオ・データ出力を保証し、 CODE FIFO のオー バーフローを回避するには、アクセス数を8アクセスの32ビッ ト・ワードに設定することを推奨します。 REV. 0 AN-796 デコードまたはエンコード・モードでマルチチップ同期をイ ネーブルにするには、2個のデバイスでEIRQIEレジスタのソフ トウェア割込み1、SWIRQ1をマスク解除することが必要です。 ホストは、2個のADV202にポーリングして、EIRQFLGレジス タのSWIRQ1フラグがセットされているかどうかを調べる必要 があります。2つのSWIRQ1がアクティブの場合にだけ、ホス トは SCOMM[5] をアサートしてください。マルチチップ同期 モードでは、 SCOMM[5] ピンには、デバイスがデコード・ モードに設定されている場合にVDATAバスでの出力を開始す る機能があり、エンコード・モードではVDATAバスを介して データのクロック入力を開始する機能があります。 マルチチップ同期 入力での同期(エンコード・モード)は、各ADV202が同時に 同じフィールドのエンコードを開始するために必要です。 出力での同期(デコード・モード)は、別個の出力がHD ビデ オ・エンコーダ/シリアライザ(すべてのデータが入力におい て整列していることが必要なデバイス)に直接送信される場合 にだけ必要です。 Y と CbCr のストリームを最初にバッファや FPGA に送信するというような、別の設定を使用する場合は、 ADV202の出力での同期は必要ありません。 複数のADV202を使用するアプリケーションでは、出力での同 期はいくつかの要因によって決定されます。 デコード ― マスタ/スレーブ設定では、以下のことも考慮す る必要があります。 デコード ― マスタ/スレーブ設定では、マスタのH、V、F出 力はスレーブのH、V、F入力に接続され、各SCOMM[5]ピン はホスト上の同じGPIO 出力に接続されることになります。デ コード ― スレーブ/スレーブ設定では、2個のADV202に共通 のHVFが外部マスタによって生成され、各SCOMM[5]ピンは ホスト上の同じGPIO出力に接続されます。EAV/SAVタイミン グ・コードは、HVF入力に基づいて生成されます。 _______ すべてのスレーブADV202には、HSYNCアクティブ入力から ビデオ・データ出力までに一定のタイミング遅延があります。 ADV202では、設計により7CLKサイクルになっています。こ の遅延の補償に必要なレジスタは、マスタADV202のファーム ウェアによって設定されます。 デバイスがマルチ同期モードに設定されている(SWIRQ1がイ ネーブルなど)とき、ファームウェアは、このレジスタの値を マスタ・デバイスの0xFFF0440レジスタに書き込みます。 エンコード設定では、タイミング情報は、入力データに含まれ るEAV/SAVコードから得られます。 ADV202についての詳細は、弊社製品ページ (www.analog.com/jp/ADV202)をご覧ください。 REV. 0 ―9― AN-796 ― 10 ― REV. 0 AN-796 REV. 0 ― 11 ― AN05241-0-4/05(0)-J AN-796 © 2005 Analog Devices, Inc. All rights reserved. 商標および登録商標は各社の所有に属します。 ― 12 ― REV. 0