FPGAのHDMIポートを利用する方法(基本)


8

2つの質問。

ザイリンクスのSpartan 6 FPGAで、HDMIの入出力のみを備えています。画面への画像の送信を開始するために使用できる何らかのガイドまたは事前に記述されたコードはありますか?どうやって始めたらいいのかわからないし、リソースを見つけることができませんでした。

2つ目は、VGAを備えたSpartan 3Eに実装されたAtari 2600コードを使用して変更したいためです。プロジェクトのビデオの側面を簡単に調整することもできますか?

ヘルプ、リソース、またはアドバイスをいただければ幸いです。


これは商用開発ボードですか?もしそうなら、どのモデルであり、それに付属するリファレンスデザインを確認してください。
davidd 2012年

これがボードです:digilentinc.com/Products/… 何も付属していません。
ballaw

@ballaw-Digilent製品にはかなり良いサポートが付いています。リンクしたばかりのページの一番下までスクロールすると、たくさんのドキュメントとサンプルプロジェクトがオンラインで表示されます:i.stack.imgur.com/F0TgY.png。現在、オンラインは「付属」としてカウントされます。また、XC6SLX45 FPGAやTMDS141RHAR HDM​​Iバッファーなど、ボード上の他の部品のデータシートを探したい場合もあります。これらはインターネット上の他の場所にあります。
ケビンフェルメール

回答:


12

AtlysボードはTDMS入力を使用するため、これらの入力を受け取り、VSYNC、HSYNC、DE、およびDATAを生成するHDMIデコーダーが必要です。ザイリンクスは、いくつかのアプリケーションノートでDVIエンコードおよびデコードプロセスについて詳しく説明しています。これらにはそれぞれサンプルコードが付属しており、ザイリンクスのログインが必要です。

サンプルコードはverilogにありますが、必要に応じて最上位レベルをVHDLに変換するのは比較的簡単な作業です。

以下は、レシーバの基本的な前提を示す最初のアプリケーションノートからの図です。

ザイリンクスアプリケーションノートから

Spartan 6にはSERDESハードウェアが組み込まれているため、これらはデシリアライズプロセスの一部として使用できます。クロックを回復し、チャネルがすべて同期していることを確認する同期プロセスがあります。最後に、8b / 10bデコードを適用して、RGBチャネルデータを生成します。

ビデオ信号が復元されたら、これらの信号を必要な処理に転送したり、HDMIポートから再び送信するエンコーダーに転送したりできます。

TFTMODディスプレイがある場合、データをディスプレイに転送するのは、DEおよびDATA信号を適切なFPGAピンに接続するのと同じくらい簡単です。 TFTボードのリファレンスマニュアルは、ディスプレイに関するタイミング情報に役立ちますが、デシリアライザの出力タイミングは問題ないことがわかりました。

このプロジェクトの UCFファイルを使用して、HDMIの制約を設定できます。また、ボードを使用している場合は、このプロジェクトでMODTFTの制約を設定できます。

注意すべき唯一のことは、ザイリンクスの例はEDID情報を処理しないことです。ボードを使用してデータを転送するだけの場合は、EDIDラインを直接ルーティングして、1日で呼び出すことができます。その他のシナリオでは、FPGAでEDIDデータの処理が必要になる場合があります。基本的にはI2Cのみです。オープンコアズI2Cインタフェースはかなりしっかりしている、またはあなた自身をコーディングすることができます。私の知る限り、EDID 1.3のデータ形式に関するウィキペディアの表は正確です。


4

以前の答えが説明したことを補足するために:

ビデオをまっすぐに取得できるので、DVI / HDMIトランスミッターは出発点として最適です。

TMDSリンクを介したHDMI / DVIビデオ送信は、図1に示すように論理的にステージに分割されます。Spartan-6FPGAにTMDSビデオインターフェイス実装するTMDSトランスミッターの設計

ここに画像の説明を入力してください

  1. TMDSエンコーダー:ビデオソースからのピクセルデータ、HDMI補助/オーディオデータ、HSYNCおよびVSYNCを3つの10ビットシンボルストリームに変換

  2. シリアライザ(10:5ギアボックスおよびOSERDES2 5:1変換)は、2つのステージで3つのストリームすべてに対して10ビットのパラレルからシリアルへの変換を実行し、3つのチャネルの差動出力ペア(TMDSバッファ)に送信します。

両方のステージは、クロック信号を生成(PLL)し、(BUFPLL、BUFG)クロック信号(ピクセルリファレンスクロックとその倍数の周波数を含む)を適切に分配するためのクロッキング回路を必要とします。

もちろん、トランスミッターの中核はエンコーダーブロックです。HDMIエンコーダーに比べてシンプルなので、DVIエンコーダーから始めることができます。HDMIとDVIの両方には、物理​​的なTMDSリンク、アクティブなビデオエンコーディングアルゴリズム、制御トークンの定義など、多くの共通点があります。

アプリケーションノートには、2つのデザインも記載されています。シンプルですが、最初は「プログラム可能なビデオタイミングによるSMPTE HDカラーバーの生成」が適しています。スライドスイッチで選択できる多くの画面モードでカラーバージェネレータービデオを送信します。カラーバージェネレーターを別のビデオソースに変更しても、元のトランスミッターブロックを維持したままビデオを取得できるため、このデザインは便利です。

これが役に立てば幸いです!


2
リンクのみの回答はお勧めしません。将来ザイリンクスがサイトを再編成し、リンクが機能しなくなった場合、将来の訪問者には何の役にも立たないからです。アプリケーションノートで説明されている一般的なアプローチの詳細を追加できますか?
PeterJ 2013

ありがとう、あなたは完全に正しいです。私はそれについていくつかの詳細を追加しました。
L30nardo SV。

3

リンクしたボードページからダウンロードできるリファレンスデザインのテキストは次のとおりです。

DSD-0000326 12/13/11このzipファイルには、GenesysボードでのHDMIの使用を示すEDKデモプロジェクトが含まれています。これは、HDMI入力を受け入れ、入力フレームをメモリにバッファし、そのバッファを別のHDMIポートに出力します。これはPLBバスを使用して実装されます。 ダウンロード

また、ザイリンクスSpartan 6産業用ビデオ処理キットに付属しているリファレンスデザインを見ることができます。 http://www.em.avnet.com/en-us/design/drc/Pages/Xilinx-Spartan-6-FPGA-Industrial-Video-Processing-Kit.aspx (サポートファイルのリンクをクリックして、avnetログインが必要です)。

おそらく、異なるfpgas向けのリファレンスデザインも他にもあるでしょう。

また、オーディオまたは暗号化を実装しない限り、hdmiは基本的にdviと同じです。


ありがとう。見たのですが、無料ではないEDKを使っているので使い方がよくわかりません。その中でvhdファイルを使用するのは簡単でしょうか?ダウンロードには他にもたくさんのものがあり、そのほとんどが何であるか私にはわかりません。
15:15

1

次のチュートリアルはminiSpartan6を使用しており、非常に詳細で一見の価値があります。http://zerocharactersleft.blogspot.com/2015/04/diy-fpga-based-hdmi-ambient-lighting.html


リンクのみが応答しないようにしてください。リンクが無効になった場合、将来の訪問者を支援することはできません。多分あなたはいくつかの追加の詳細を追加できますか?
ブライアンカールトン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.