FPGA 純粋な Verilog は、UDP プロトコル スタック、sgmii インターフェイス SFP 光ポート トランシーバーを実現し、エンジニアリング ソース コードと技術サポートを提供します。

1 はじめに

現在、インターネット上で fpga によって実装された udp の基本的な生態は次のとおりです。
1: udp トランシーバは verilog で書かれていますが、中間の FIFO または RAM は IP を呼び出したり、ping 機能を持たなかったりするため、そのようなコード機能を使用できます。通常は ping 機能がありませんが、これは基本的に無駄であり、実際のプロジェクトではそのようなコードは使用しません。想像してみてください。複数のマシンの相互接続に問題がある場合、ネットワーク カードに ping 機能がなく、基本的なトラブルシューティング メカニズムさえありません。誰がそのようなコードを使用する勇気があるでしょうか?
2: ping 機能を備えた udp トランシーバー、コードは優れており使いやすいですが、基本的にオープンソースではないため、ソース コードは提供されません。この種のコードには欠点もあります。は問題です。トラブルシューティングの方法がわかりません。 ;
3: ザイリンクスのトライ モード イーサネット MAC トリプルスピード ネットワーク IP 実装を使用したこのコードも非常に優れていますが、依然として同じ問題があり、ソース コードがありません。トリプルスピード ネットワーク IP にはライセンスが必要です。トリプルスピード ネットワーク IP は、rgmii から gmii への変換と、axis への変換を実現しています。4
: FPGA の GTX リソースを使用し、SFP 光ポートを使用して UDP と通信を実現します。このソリューションは、ライセンスなしで完了できます。外部ネットワーク トランスフォーマ;
5: 本当の意味で Verilog によって実装された UDP プロトコル スタック Verilog 実装とは、UDP プロトコル スタックのすべてのコードが Verilog コードを使用することを意味し、FIFO、RAM などを含む IP コアには適用されません。プロトコル スタックは非常に移植性が高く、市場にはそのようなプロトコル スタックはほとんどなく、入手するのはほとんど困難です。そして、それはそのようなプロトコル スタックです。

このデザインは、純粋な verilog によって実装された UDP プロトコル スタックを使用して、UDP ループバック通信テストを実現します。UDP プロトコル スタックの出力は、外部ネットワーク PHY を使用せず、ザイリンクスの 1G/2.5G イーサネット PCS/PMA または SGMII IP コアを呼び出して、ネットワーク PHY の機能を実現し、レートは 1G に固定され、IP は SGMII 出力インターフェイスとして構成され、UDP データ送受信機能は SFP 光ポートを介して実現されます。UDP のユーザー インターフェイスプロトコル スタックは AXIS であるため、ユーザーは複雑な UDP プロトコルを気にする必要はなく、単純なプロトコルだけを気にする必要があります。 ユーザー インターフェイス シーケンスは UDP の送受信を操作でき、AXIS データ インターフェイスは単純にループバックして、自己送信および自己受信機能。コンピュータ側のネットワーク デバッグ アシスタントを使用して UDP 送受信検証を実行します。

この設計は、多数の繰り返しテストの後でも安定性と信頼性があり、プロジェクトに直接移植して使用できます。エンジニアリング コードはボード上で包括的にコンパイルおよびデバッグでき、プロジェクトに直接移植できます。学生や大学院生のプロジェクト開発だけでなく、現役エンジニアのプロジェクト開発にも適しており、医療、軍事、その他の産業のデジタル通信分野に適用でき、完全かつスムーズなエンジニアリングソースコードと技術サポートを提供します
。 ;
エンジニアリング ソース コードとテクニカル サポートを入手する方法は記事の最後にありますので、最後までお待ちください。

2. ここにある UDP スキーム

現在、TCP プロトコルのプロジェクトだけでなく、UDP データ ループバック、ビデオ送信、AD 取得と送信などの UDP プロトコルのプロジェクト ソース コードを多数持っています。ネットワーク通信が必要な兄弟は、気軽にアクセスできます。見てください: 直接クリックして移動します

3. UDPプロトコルスタックのパフォーマンス

1: IP コアを使用しない純粋な Verilog 実装、
2: 移植性の上限、IP がなく、ソース言語にもパラメータを選択できるため、プロトコル スタックをザイリンクス、アルテラ、その他の主要な FPGA モデル間で自由に移植できます。 ;
3: 強​​力な適応性、RTL8211、B50610、および 88E1518 の 3 つの物理層でのテストに成功しており、GT リソースの SFP インターフェイスを使用して UDP イーサネット通信を実現することもできます; 4: タイミング コンバージェンスが確立されています; 5:
ダイナミック
ARP機能;
6: ping 機能なし;
7: RGMII が GMII に変換された後、AXIS インターフェイスによって出力され、ザイリンクスのトライ モード イーサネット MAC IP コアを完全に置き換えることができます; 8:
最大レート 1G をサポートします。

4. 詳細設計計画

詳細な設計スキームは次のとおりです。
ここに画像の説明を挿入

SFP

このデザインは外部ネットワーク PHY を必要としませんが、ザイリンクスの 1G/2.5G イーサネット PCS/PMA または SGMII IP コアを呼び出してネットワーク PHY の機能を実現するため、外部インターフェイスは SFP 光ポートと RX コア TX になります。 SFP はデータ ループバックを実現するために接続されます。

GMII AXISインターフェースモジュール

GMII AXIS インターフェイス モジュールのコード構造は次のとおりです。
ここに画像の説明を挿入
このモジュールは、1G/2.5G イーサネット PCS/PMA または SGMII IP コアの GMII インターフェイスに接続するために使用され、実装された UDP プロトコル スタックの外部インターフェイスです。 AXIS FIFO を含む純粋な Verilog コードを使用。

軸FIFO

AXIS データ ストリームを使用するため、AXIS FIFO を兄モジュールのブリッジとして使用する必要があります。一般的なデザインでは AXIS FIFO IP コアを直接呼び出しますが、このデザインは汎用性と移植性を考慮して純粋な Verilog コードで実装されています。コードの内容は次のとおりです。
ここに画像の説明を挿入

UDPプロトコルスタック

UDP プロトコル スタックは純粋な Verilog コードで実装されており、コード構造は次のとおりです:
ここに画像の説明を挿入
プロトコル スタックは ARP、IP 層、UDP 層、および AXIS FIFO モジュールで構成され、これらはすべて純粋な Verilog コードで実装されています。ダイナミック ARP 機能を実装する IP 層と UDP 層 MAC データ フレームの IP 層と UDP 層のデータのアンパックとグループ化を実現します これは UDP プロトコルの中核的な動作です ステート マシンは非常に偽物ですAXIS FIFO の機能は、開発者が使用できるユーザー インターフェイスとして、複雑な UDP プロトコルを AXIS データ ストリーム形式にカプセル化することです。開発者はそれを理解する必要さえありません。内部のプロトコルは、単に AXIS FIFO として使用します。

1G/2.5G イーサネット PCS/PMA または SGMII

このデザインは外部ネットワーク PHY を必要としませんが、ザイリンクスの 1G/2.5G イーサネット PCS/PMA または SGMII IP コアを呼び出してネットワーク PHY 機能を実装します。IP 構成は次のとおりです。また、IP には内部ネットワーク PHY が装備されている必要があります。レジスタ構成コードは fpga.v ファイルにあります。
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

5. vivadoプロジェクトの詳細説明

開発ボード: Xilinx–>xc7k325tffg900-2;
開発環境: Vivado2019.1;
MAC: 1G/2.5G Ethernet PCS/PMA または SGMII;
入出力: UDP ネットワーク通信;
テスト項目: データ送受信;
エンジニアリング コード構造は
ここに画像の説明を挿入
FPGA のリソース消費量と消費電力の見積もりは次のとおりです
ここに画像の説明を挿入

6. ボードデバッグの検証とデモンストレーション

準備

開発ボードは次のように接続され、電源を入れてビットをダウンロードします。
ここに画像の説明を挿入
まず、コンピューターの IP アドレスを次のように設定します。
ここに画像の説明を挿入
開発ボードの IP アドレスは、fpga_core.v のコードで次のように設定されます。自由に変更できます:
ここに画像の説明を挿入

ARPの表示

次のように、cmd を開き、「arp -a」と入力してコンピューターの arp キャッシュ テーブルを表示します。
ここに画像の説明を挿入

UDPデータループバックテスト

ネットワーク デバッグ アシスタントを開き、次のように設定します。
ここに画像の説明を挿入
データを 1 回送信した場合のテスト結果は次のとおりです。
ここに画像の説明を挿入
ループでデータを送信した場合のテスト結果は次のとおりで、時間間隔は 1 秒です。
ここに画像の説明を挿入

7. 福利厚生:技術コード取得

メリット: エンジニアリングコードの取得
コードは電子メールで送信するには大きすぎるため、ある程度のネットワークディスクリンクで送信
データの取得方法: 非公開、または記事末尾の V 名刺
ネットワークディスク情報は以下のとおりです。
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

おすすめ

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