FPGA UltraScale GTH には、ネットワーク全体、aurora 8b/10b コーデック、ボードツーボード ビデオ伝送に関する最も詳細な説明があり、2 セットのエンジニアリング ソース コードとテクニカル サポートが提供されます。


FPGA UltraScale GTH には、ネットワーク全体、aurora 8b/10b コーデック、ボードツーボード ビデオ伝送に関する最も詳細な説明があり、2 セットのエンジニアリング ソース コードとテクニカル サポートが提供されます。

1 はじめに

GT リソースを触ったことがない人でも、FPGA を触ったことがあると言うのは恥ずかしいことです。これは CSDN の上司の言葉であり、私はそれを強く信じています。 。 。 GT リソースはザイリンクス シリーズ FPGA の重要なセールス ポイントであり、高速インターフェイスの基盤でもあります。PCIE、SATA、MAC などのいずれであっても、GT リソースは高速データのシリアル化とデシリアル化に必要です。シリーズにはさまざまな GT リソース タイプがあり、ローエンドの A7 には GTP、K7 には GTX、V7 には GTH、ハイエンドの U+ シリーズには GTY などがあります。それらの速度はますます高速になっており、アプリケーション シナリオは次のとおりです。どんどん高級になっていきます。 。 。 UltraScale GTH は、Virtex UltraScale、Kintex UltraScale、Zynq® UltraScale などのデバイスを含むザイリンクス UltraScale シリーズの FPGA に適しています。UltraScale シリーズの下には GTH のみがあります。GTH と比較して、UltraScale GTH はライン レートが高く、より多くのサポートをサポートしていますプロトコルタイプ、低消費電力、高帯域幅。 。 。

この記事では、ザイリンクスの Kirtex7-UltraScale-xcku060-ffva1156-2-i FPGA の UltraScale GTH リソースを使用して、ボード間ビデオ伝送実験を行います。 HDMI 入力インターフェイス、1 つはラップトップを使用して HDMI ビデオをシミュレートする方法で、開発ボードに HDMI 入力インターフェイスまたは HDMI 入力デコード チップがある場合、ADV7611 チップは入力 HDMI ビデオを FPGA で使用できるように GRB にデコードします。開発ボードの ADV7611 が ADV7611 ではない場合、コード内で内部的に生成されたダイナミック カラー バーを使用してカメラ ビデオをシミュレートできます。ビデオ ソースはコードの最上位の定義マクロ定義を通じて選択され、HDMI 入力はデフォルトでビデオ ソース; vivado2022.2 バージョンのプロジェクト ソース コードが 2 セット提供され、最初のセットは GTH プロジェクトを送信します; FPGA がビデオを収集した後、まずそれをデータ グループ化モジュールに送信してパッケージ化します。ビデオを作成し、文字 BC およびその他の識別子に基づいて制御フレーム ヘッダーとフレーム テールを追加し、ザイリンクス公式 UltraScale GTH IP コアを呼び出し、8b/10b コーデック モードに設定し、ライン レートを 5G に設定し、8b/ 10b エンコードされたビデオはオンボード SFP 光ポート経由で送信されます。2 番目のセットは GTH 受信プロジェクトです。SFP 光ポートは 8b/10b エンコードされたビデオを受信し、UltraScale GTH が 8b/10b デコード処理を実行して、データが整列処理のためのデータ整列モジュール; 次に、データはデータ アンパッキング モジュールに送信され、フレームのヘッダーと末尾が削除され、ビデオのタイミングが復元されます; 便宜上、ビデオはここにキャッシュされません。 Video In to AXI4-Stream、Video Timing Controller、および AXI4-Stream to Video Out のザイリンクス IP は直接呼び出され、単純にビデオをキャッシュし、それを実装のために純粋な Verilog コードに送信します。HDMI 送信モジュールは、RGB ビデオを HDMI ビデオに変換します。そして最後にそれをモニターに表示するために出力します。

このブログでは 2 セットの vivado プロジェクト ソース コードを提供しています。2 セットのプロジェクトの違いは、送信に GTH が使用されるか受信に使用されるかであり、詳細は次のとおりです。

vivado工程1:HDMI/动态彩条输入,UltraScale GTH编码,1路SFP光口发送出去;
vivado工程2:SFP光口输入,UltraScale GTH解码,HDMI输出显示器;

このブログでは、ボードツーボード ビデオ伝送実験用のザイリンクスの Kirtex7-UltraScale-xcku060-ffva1156-2-i FPGA の UltraScale GTH リソースの設計について詳しく説明します。エンジニアリング コードは、プロジェクト移植は、学生や大学院のプロジェクト開発だけでなく、現役エンジニアの学業向上にも適しており、医療、軍事などの高速インターフェースや画像処理分野にも応用可能です。およびその他の業界。
Runtong の完全なエンジニアリング ソース コードとテクニカル サポートを提供します。
エンジニアリング ソース コードとテクニカル サポートの入手方法は最後に記載されています。この記事は最後までお待ちください。

免責事項

このプロジェクトとそのソース コードには、私が書いた部分と、インターネット上のパブリック チャネル (CSDN、ザイリンクス公式 Web サイト、アルテラ公式 Web サイトなどを含む) から入手した部分の両方が含まれています。気分を害される場合は、プライベート メッセージを送信して批判してください。本プロジェクトおよびそのソースコードは、読者またはファンの個人的な学習・研究に限定しており、商業目的での使用を禁止します 読者またはファン自身による商業利用により法的問題が生じた場合、当ブログとブロガー様とは一切関係がございませんので、ご利用の際はご注意ください。 。 。

2. すでにここにある GT 高速インターフェイス ソリューション

私のホームページには FPGA GT 高速インターフェイスの列があります。この列には、GTP、GTX、GTH、GTY などの GT リソースのビデオ送信ルーチンと PCIE 送信ルーチンが含まれています。GTP は A7 シリーズに基づいて構築されていますFPGA 開発ボード、および GTX K7 または ZYNQ シリーズ FPGA 開発ボードに基づいて構築され、GTH は KU または V7 シリーズ FPGA 開発ボードに基づいて構築され、GTY は KU+ シリーズ FPGA 開発ボードに基づいて構築されます。以下は次のとおりです。列アドレス:
クリックして直接移動

3. 詳細設計計画

この記事では、ザイリンクスの Kirtex7-UltraScale-xcku060-ffva1156-2-i FPGA の UltraScale GTH リソースを使用して、ボード間ビデオ伝送実験を行います。 HDMI 入力インターフェイス、1 つはラップトップを使用して HDMI ビデオをシミュレートする方法で、開発ボードに HDMI 入力インターフェイスまたは HDMI 入力デコード チップがある場合、ADV7611 チップは入力 HDMI ビデオを FPGA で使用できるように GRB にデコードします。開発ボードの ADV7611 が ADV7611 ではない場合、コード内で内部的に生成されたダイナミック カラー バーを使用してカメラ ビデオをシミュレートできます。ビデオ ソースはコードの最上位の定義マクロ定義を通じて選択され、HDMI 入力はデフォルトでビデオ ソース; vivado2022.2 バージョンのプロジェクト ソース コードが 2 セット提供され、最初のセットは GTH プロジェクトを送信します; FPGA がビデオを収集した後、まずそれをデータ グループ化モジュールに送信してパッケージ化します。ビデオを作成し、文字 BC およびその他の識別子に基づいて制御フレーム ヘッダーとフレーム テールを追加し、ザイリンクス公式 UltraScale GTH IP コアを呼び出し、8b/10b コーデック モードに設定し、ライン レートを 5G に設定し、8b/ 10b エンコードされたビデオはオンボード SFP 光ポート経由で送信されます。2 番目のセットは GTH 受信プロジェクトです。SFP 光ポートは 8b/10b エンコードされたビデオを受信し、UltraScale GTH が 8b/10b デコード処理を実行して、データが整列処理のためのデータ整列モジュール; 次に、データはデータ アンパッキング モジュールに送信され、フレームのヘッダーと末尾が削除され、ビデオのタイミングが復元されます; 便宜上、ビデオはここにキャッシュされません。 Video In to AXI4-Stream、Video Timing Controller、および AXI4-Stream to Video Out のザイリンクス IP は直接呼び出され、単純にビデオをキャッシュし、それを実装のために純粋な Verilog コードに送信します。HDMI 送信モジュールは、RGB ビデオを HDMI ビデオに変換します。そして最後にそれをモニターに表示するために出力します。

設計ブロック図

詳細なエンジニアリング設計計画のブロック図は次のとおりです。
ここに画像の説明を挿入します
ブロック図の説明: 矢印はデータ フローの方向を表し、矢印内のテキストはデータ形式を表します。矢印の外側の数字はデータ フロー方向のステップを表します。< a i=2> 上の図の開発ボード 1 は、GTH 送信プロジェクトである vivado プロジェクト 1 に対応します。開発ボード 2 は、vivado プロジェクトに対応します。 2、GTH 受信プロジェクトです。

ビデオソースの選択

これは、vivado プロジェクトの最初のセットの内容です。開発者の手持ちの開発ボードに HDMI 入力インターフェイスがあるかどうかに応じて、2 種類のビデオ ソースがあります。1 つはラップトップを使用してHDMI ビデオをシミュレート、ADV7611 チップ 入力 HDMI ビデオを FPGA で使用できるように GRB にデコードします。開発ボードに HDMI 入力インターフェイスがある場合、または開発ボードの HDMI 入力デコード チップが ADV7611 ではない場合、内部で生成されたダイナミック カラー バーを使用できます。コード内でカメラ ビデオをシミュレートします。ビデオ ソースはコードの最上位の定義マクロ定義を通じて選択され、デフォルトで HDMI 入力がビデオ ソースとして使用されます。ビデオ ソースの選択は `define マクロ定義を通じて実行されます。コードのトップレベルで次のようにします:
ここに画像の説明を挿入します
論理コード部分を選択します 次のようにします:
ここに画像の説明を挿入します
選択ロジックは次のようになります:
When (note) COLOR_TEST を定義すると、入力ソース ビデオは HDMI 入力;
When ( (コメントなし) COLOR_TEST を定義すると、入力ソース ビデオはダイナミック カラー バーになります。

ADV7611 デコードチップの構成とコレクション

これは、vivado プロジェクトの最初のセットの内容です。ADV7611 を使用して入力 HDMI ビデオをデコードし、ボード上の ADV7611 デコード チップを備えた FPGA 開発ボードに適合します。ADV7611 デコード チップには i2c 構成が必要ですADV7611 デコード チップの構成と取得は、両方の部分が Verilog コード モジュールを使用して実装されています。コード内の解像度は 1920x1080 として構成されており、コードの場所は次のとおりです:
ここに画像の説明を挿入します
解像度コードでは 1920x1080 として設定されています;

ダイナミックカラーバー

これは、vivado プロジェクトの最初のセットの内容です。さまざまな解像度のビデオに対して動的カラー バーを構成できます。ビデオの境界線の幅、動的に移動する四角形のサイズ、移動速度などはすべてパラメータ化できます。ここでは解像度を 1920x1080 に設定しました。コードの場所、トップレベルのインターフェイス、およびダイナミック カラー バー モジュールのインスタンス化は次のとおりです。
ここに画像の説明を挿入します
ここに画像の説明を挿入します

ビデオデータパケット

これは、vivado プロジェクトの最初のセットのコンテンツです。ビデオは、aurora 8b/10b プロトコルを介して GTH で送受信される必要があるため、aurora 8b/10b プロトコル標準に適合するようにデータをパッケージ化する必要があります。 ; ビデオ データ パッケージ モジュール コードの場所は次のとおりです:
ここに画像の説明を挿入します
まず、16 ビット ビデオを FIFO に保存します。行がいっぱいになると、FIFO から読み取られて、送信用の GTH。その前に、ビデオのフレームに番号を付ける必要があります。命令とも呼ばれます。GTH がパケット化しているときは、固定された命令に従ってデータを送信します。GTH がアンパッキングしているときは、ビデオのフィールド同期信号とビデオ有効信号を復元します。固定命令に従い、ビデオのフレームのフィールド同期信号の立ち上がりエッジが到着すると、ビデオ開始コマンド 0 のフレームを送信します。ビデオのフレームのフィールド同期信号の立ち下がりエッジが到着すると、ビデオ開始コマンド 0 のフレームを送信します。ビデオ開始コマンド 1. ビデオ ブランキング期間中に、無効データ 0 と無効データ 1 を送信します。ビデオ有効信号が到着すると、それぞれのビデオ ラインに番号を付けるには、最初にビデオ開始コマンドのラインを送信し、次に現在のビデオ ラインを送信します。ビデオのフレームを送信した後、最初にビデオのフレーム終了コマンド 0 を送信し、次にビデオの終了コマンド 1 を 1 フレーム送信します。ポイント、ビデオの 1 フレームが送信されます このモジュールはわかりにくいため、コード内に詳細な中国語のコメントを付けました ただし、中国語のコメントが順序どおりに表示されないようにするには、notepad++ エディタを使用してくださいコードを開くには、命令の定義は次のとおりです:
ここに画像の説明を挿入します
命令は自由に変更できますが、最下位バイトは bc である必要があります。

UltraScale GTH ネットワーク全体の最も詳細な解釈

UltraScale GTH の最も詳細な紹介は、間違いなくザイリンクスの公式「ug576-ultrascale-gth-transceivers」です。ここでそれを解釈してみましょう:
"ug576-ultrascale-gth-transceivers" " PDF ドキュメントを情報パッケージに入れました。記事の最後に入手方法があります。
私が使用した開発ボードの FPGA モデルは Kirtex7-UltraScale-xcku060- です。 ffva1156-2-i; UltraScale GTH のトランシーバー速度は 500 Mb/s ~ 16.375 Gb/s であり、GTH より 3G 高速です。UltraScale GTH トランシーバーは、PCIE 1.1/2.0 インターフェイスなどのさまざまなシリアル伝送インターフェイスまたはプロトコルをサポートします。 10G ネットワーク XUAI インターフェイス、OC-48、シリアル RapidIO インターフェイス、SATA (シリアル ATA) インターフェイス、デジタル コンポーネント シリアル インターフェイス (SDI) など。
プロジェクトは UltraScale GTH を呼び出してデータ エンコーディングを実行し、 Aurora 8b/10b プロトコルのデコード、コードの場所は次のとおりです。
ここに画像の説明を挿入します
UltraScale GTH の基本構成は次のとおりです。オンボード差動水晶発振器 125M、ライン レート コンフィギュレーションは 5G、プロトコル タイプはオーロラ 8b/10b を参照。
ここに画像の説明を挿入します

UltraScale GTH の基本構造

ザイリンクスは、クアッドを使用してシリアル高速トランシーバーをグループ化しています。4 つのシリアル高速トランシーバーと 1 つの COMMOM (QPLL) でクアッドを形成します。各シリアル高速トランシーバーはチャネルと呼ばれます。次の図は回路図​​です。 Kintex7 UltraScale FPGA チップの UltraScale GTH トランシーバーの詳細: 「ug576-ultrascale-gth-transceivers」19 ページ;
ここに画像の説明を挿入します
Ultrascale/Ultrascale+ アーキテクチャ シリーズの FPGA では、GTH 高速トランシーバーQuad は 4 つの GTHE3/4_CHANNEL プリミティブと 1 つの GTHE3/4_COMMON プリミティブで構成されます。各 GTHE3/4_COMMON には 2 つの LC タンク PLL (QPLL0 および QPLL1) が含まれています。 GTHE3/4_COMMON のインスタンス化は、アプリケーションで QPLL を使用する場合にのみ必要です。各 GTHE3/4_CHANNEL は、チャネル PLL (CPLL)、トランスミッター、レシーバーで構成されます。基準クロックは、GTHE3/4_COMMON をインスタンス化せずに、GTHE3/4_CHANNEL プリミティブに直接接続できます。

ウルトラスケール GTH トランシーバーのトランスミッター機能とレシーバー機能は互いに独立しており、物理メディア アタッチメント (物理メディア アダプテーション層 PMA) と物理コーディング サブレイヤー (物理コーディング サブレイヤー PCS) で構成されます。 PMA はシリアル/パラレル変換 (PISO)、プリエンファシス、受信イコライゼーション、クロック ジェネレーター、クロック リカバリーなどを内部で統合し、PCS は 8b/10b コーデック、エラスティック バッファー、チャネル ボンディング、クロック補正などを内部で統合します。 /4_CHANNEL ソース言語の論理回路を次の図に示します: "ug576-ultrascale-gth-transceivers" ページ 20;
ここに画像の説明を挿入します
ここであまり多くのことを言うのはあまり意味がありません。なぜなら、私は大きなプロジェクトをいくつか行っていないからです。プロジェクトは内部のことを理解していません。初めてのユーザーやすぐに使用したいユーザーにとっては、IP コアの呼び出しと使用にもっとエネルギーを集中する必要があります。後で IP コアの呼び出しと使用にも焦点を当てます。

基準クロックの選択と分配

UltraScale デバイスの GTH トランシーバーは、さまざまなリファレンス クロック入力オプションを提供します。基準クロック選択アーキテクチャは、QPLL0、QLPLL1、および CPLL をサポートします。アーキテクチャ的には、各クワッドには 4 つの GTHE3/4_CHANNEL プリミティブ、1 つの GTHE3/4_COMMON プリミティブ、2 つの専用外部リファレンス クロック ピン ペア、および専用リファレンス クロック ルーティングが含まれています。高性能 QPLL を使用する場合は、以下の GTHE3/4_COMMON クロック マルチプレクサ構造の詳細図 (「ug576-ultrascale-gth-transceivers」の 33 ページ) に示すように、GTHE3/4_COMMON をクワッドでインスタンス化する必要があります。クワッド内の 6 つの基準クロック ピン ペア、2 つのローカル基準クロック ピン ペア: GTREFCLK0 または GTREFCLK1、上位 2 つのクワッドからの 2 つの基準クロック ピン ペア: GTSOUTHREFCLK0 または GTSOUTHREFCLK1、下位クワッドからの 2 つの基準クロック ピン ペア 2 つのクワッド: GTNORTHREFCLK0 または GTNORTHREFCLK1 。
ここに画像の説明を挿入します

UltraScale GTH の送受信処理フロー

まず、ユーザー ロジック データは 8B/10B エンコードされた後、送信バッファ (位相調整 FIFO) に入ります。このバッファは主に、PMA サブレイヤと PCS サブレイヤの 2 つのクロック ドメインのクロックを分離して、問題を解決するために使用されます。クロック レートのマッチングと 2 つの間の位相差の問題を解決するために、最終的に高速 Serdes がパラレル シリアル変換 (PISO) に使用されます。必要に応じて、プリエンファシス (TX プリエンファシス) とポストエンファシスが行われます。強調表示が可能です。 PCB 設計中に TXP と TXN の差動ピンが誤って相互接続された場合、この設計誤差は極性制御 (Polarity) によって補正できることに注意してください。受信側と送信側の処理は逆であり、類似点も多いため、ここでは詳しく説明しませんが、注目すべきは、クロック補正とチャネルを備えた RX 受信側のエラスティック バッファーです。バインディング関数。ここでは、機能ポイントごとに論文や本を書くことができるため、コンセプトを知ってそれを特定のプロジェクトで使用するだけで済みます。繰り返しますが、初めて使用する場合、またはすぐに使用したい場合、読者の場合は、より多くのエネルギーを集中する必要があります。 IP コアの呼び出しと使用について。

UltraScale GTH 送信インターフェイス

「ug576-ultrascale-gth-transceivers」のページ 104 ~ 179 には、送信処理プロセスの詳細な紹介が記載されています。マニュアルは基本的にユーザーが独自に作成したものであるため、ユーザーが内容のほとんどを詳しく調べる必要はありません。設計コンセプトでは、ユーザーが操作するインターフェイスがほとんどありません。この考えに基づいて、ユーザーが UltraScale GTH をインスタンス化するときに使用する必要があるインターフェイスに重点を置いています。
ここに画像の説明を挿入します
ユーザーは使用する必要があるだけです。送信インターフェイスのクロックとデータに注意してください。UltraScale GTH インスタンス化モジュールのインターフェイスのこの部分は次のとおりです: ファイル名は gth_aurora_example_wrapper.v で、IP のインスタンス化後に公式によって自動的に生成されます。コード内の
ここに画像の説明を挿入します
ここに画像の説明を挿入します
を再バインドし、モジュールの最上位にしました。コード部分は次のとおりです:
ファイル名は gth_aurora_example_top.v で、インスタンス化されます。公式 gth_aurora_example_wrapper.v;
ここに画像の説明を挿入します

UltraScale GTH 受信インターフェイス

「ug576-ultrascale-gth-transceivers」のページ 181 ~ 314 には、送信処理プロセスの詳細が説明されています。マニュアルは基本的にユーザーが独自に作成したものであるため、ユーザーが内容のほとんどを詳しく調べる必要はありません。設計コンセプトに基づいて、ユーザーが操作できるインターフェイスはあまり多くありません。この考えに基づいて、UltraScale GTH をインスタンス化するときに送信部分に必要なインターフェイスに焦点を当てます。
ここに画像の説明を挿入します
ユーザー使用する必要があるのは、送信インターフェイスのクロックとデータだけです。UltraScale GTH インスタンシエーション モジュールのインターフェイスのこの部分は、次のとおりです。 ファイル名は gth_aurora_example_wrapper.v で、公式の後で自動的に生成されます。 IP のインスタンス化;
ここに画像の説明を挿入します
ここに画像の説明を挿入します
コード内で IP を再バインドし、モジュールのトップレベルにしました。コード部分は次のとおりです:
ファイル名前は gth_aurora_example_top.v で、公式の gth_aurora_example_wrapper.v をインスタンス化します。
ここに画像の説明を挿入します

UltraScale GTH IP コアの呼び出しと使用法

ここに画像の説明を挿入します
UltraScale GTH の基本構成は次のとおりです: オンボード差動水晶発振器 125M、ライン レート構成は 5G、プロトコル タイプは aurora 8b/10b と呼ばれます。
ここに画像の説明を挿入します
特定の構成については、 IP の vivado プロジェクトを参照してください。設定後、サンプル プロジェクトを開いて、その中のファイルをコピーして、自分のプロジェクトで使用する必要があります。ただし、この手順は私のプロジェクトですでに完了しています。サンプル プロジェクトを開く方法は次のとおりです。次のように:
ここに画像の説明を挿入します

データアライメント

これは vivado プロジェクトの 2 つ目の内容ですが、aurora 8b/10b の GT リソースのデータ送受信では当然データのずれが存在するため、受信したデコードデータに対してデータのアライメント処理を行う必要があります。データ アライメント モジュールのコードの場所は次のとおりです。
ここに画像の説明を挿入します
私が定義した K コード制御文字の形式は XX_XX_XX_BC なので、rx_ctrl を使用してデータが K コード COM シンボルであるかどうかを示します。< /span> rx_ctrl = 4'b1000 は、4 バイト データの [31:24] が COM コードであることを意味します。 /span> これに基づき、K コードを受信したときに、データを整列、つまりデータを叩いて新しい受信データと結合することが FPGA の基本的な動作であるため、説明は省略します。詳細はこちら; rx_ctrl = 4'b0100は、4 バイト データの [23:16] が COM コードであることを意味します。 rx_ctrl = 4'b0010 は、4 バイト データの [15: 8] が COM コードであることを意味します。 rx_ctrl = 4'b0001 は 4 バイトの [7: 0] を示します。データは COM コードです。
rx_ctrl = 4'b0000 4 バイト データに COM コードがないことを示します。




動画データの解凍

これは vivado プロジェクトの 2 番目のセットの内容です。データのアンパックはデータ グループ化の逆のプロセスで、コードの場所は次のとおりです。
ここに画像の説明を挿入します
UltraScale GTH は次に従ってビデオを復元します。解凍時の命令を修正 フィールド同期信号とビデオ有効信号; これらの信号は後続の画像キャッシュにとって重要な信号です; ここまでは GTX のデータ入出力について説明しました。全体のプロセスのブロック図は で説明しました。コードは次のようになります。
ファイル名は helai_GT_8b10b_video.v です。
ここに画像の説明を挿入します

画像出力アーキテクチャ

これは、vivado プロジェクトの 2 番目のセットの内容です。便宜上、ビデオはここにキャッシュされませんが、Video In to AXI4-Stream、Video Timing Controller、および AXI4-Stream to Video Out の 3 つの公式ザイリンクス IP が直接呼び出されます。ビデオは単純にキャッシュされ、純粋な Verilog コードで実装された HDMI 送信モジュールに送信され、そこで RGB ビデオが HDMI ビデオに変換され、最終的にモニター ディスプレイに出力されます。プリミティブが変更されており、7 シリーズ FPGA プリミティブとは異なるため、UltraScale シリーズ FPGA に適しています。

4. vivado プロジェクト 1 –> GTH 送信プロジェクト

開発ボード FPGA モデル: Xilinx–Kirtex7-UltraScale-xcku060-ffva1156-2-i
開発環境: Vivado2022.2;
入力: HDMI またはダイナミック カラー バー、解像度 1920x1080@60Hz;
出力: SFP 光ポートの TX ポート;
アプリケーション: FPGA UltraScale GTH 全体に関する最も詳細な説明ネットワーク、aurora 8b/10b コーデック、ボードツーボード ビデオ伝送。
プロジェクトのコード構造は次のとおりです。
ここに画像の説明を挿入します
FPGA のリソース消費量と消費電力の見積もり包括的なコンパイル後の内容は次のとおりです。
ここに画像の説明を挿入します

5. vivado プロジェクト 2 –> GTH 受信プロジェクト

開発ボード FPGA モデル: Xilinx–Kirtex7-UltraScale-xcku060-ffva1156-2-i
開発環境: Vivado2022.2;
入力: SFP 光ポートの RX ポート;
出力: HDMI;
アプリケーション: FPGA UltraScale GTH ネットワーク全体、aurora 8b/10b コーデック、ボードの最も詳細な説明ボードへのビデオ送信;
プロジェクトのブロック デザインは次のとおりです:
ここに画像の説明を挿入します
プロジェクトのコード構造は次のとおりです:
ここに画像の説明を挿入します
FPGA リソース包括的なコンパイルが完了した後の消費量と機能 消費量の見積もりは次のとおりです。
ここに画像の説明を挿入します

6. プロジェクト移植指示

Vivado バージョンの不一致の処理

1: vivado バージョンがこのプロジェクトの vivado バージョンと一致している場合は、プロジェクトを直接開きます。
2: vivado バージョンがこのプロジェクトの vivado バージョンよりも低い場合プロジェクトの後に、[ファイル] –> [名前を付けて保存] をクリックして開く必要があります。ただし、この方法は安全ではありません。最も安全な方法は、vivado バージョンをこのプロジェクトの vivado バージョンまたはそれ以降のバージョンにアップグレードすることです。
ここに画像の説明を挿入します
3 : vivado バージョンがこのプロジェクトの vivado バージョンよりも高い場合、解決策は次のとおりです。
ここに画像の説明を挿入します
プロジェクトを開いた後、IP がロックされていることがわかります。次のように:
ここに画像の説明を挿入します
現時点では IP をアップグレードする必要があります。次のようにしてください:
ここに画像の説明を挿入します
ここに画像の説明を挿入します

FPGAモデルの不一致の処理

使用している FPGA モデルが私のものと一致しない場合は、FPGA モデルを変更する必要があります。操作は次のとおりです:
ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します
FPGA モデルを変更した後は、IP もアップグレードする必要があります。 . IP をアップグレードする方法は前に説明しました。 ;

その他の注意事項

1: 各ボードの DDR は必ずしも完全に同じであるとは限らないため、MIG IP は独自の回路図に従って構成する必要があります。ここで元のプロジェクトの MIG を直接削除して、再度追加することもできます。 IP を取得して再構成します。
2: 独自の回路図に従ってピン制約を変更します。xdc ファイル内で変更するだけです。
3: 純粋な FPGA を移植します。 Zynq への追加は、プロジェクトの zynq ソフト コアの追加で実行する必要があります。

7. ボードのデバッグと検証

準備

2 つの FPGA 開発ボード。
ノートパソコン、ボードに HDMI 入力インターフェイスがない場合は、ダイナミック カラー バーを選択できます。
SFP 光学ポート モジュールと光ファイバー;
光ファイバーを接続し、ボードの電源を入れ、ビットをダウンロードします;
2 つのボード間のファイバー接続は次のとおりです。
ここに画像の説明を挿入します

静的なプレゼンテーション

HDMI 入力: UltraScale GTH が 5 ライン レートで動作する場合、出力は次のようになります。
ここに画像の説明を挿入します
ダイナミック カラー バー入力: UltraScale GTH が 5G ライン レートで動作する場合、出力は次のようになります。
ここに画像の説明を挿入します

ダイナミックなプレゼンテーション

ダイナミック カラー バー出力の短いビデオが録画されました。出力のダイナミック デモンストレーションは次のとおりです。

V7-GTH-カラー

8. メリット:エンジニアリングコードの取得

利点: エンジニアリング コードの取得
コードが大きすぎるため、電子メールで送信できません。特定のネットワーク ディスク リンクを介して送信されます。
データの入手方法:非公開、または記事末尾のV名刺。
ネットワーク ディスク情報は次のとおりです。
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/qq_41667729/article/details/134781790