AN-796: マルチチップ・アプリケーションにおけるADV202の使用方法 (Rev. 0) PDF

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