« FPGAによるHDMI入力 | トップページ | ADS54J60の隠しレジスタ »

2017.07.21

ArtyのイーサネットをFPGAのロジックでコントロール

インターンで来ている学生さんが、DigilentのArtyボードでイーサネットのパケットを送信するデザインを作ってくれました。

Arty

Artyは、Artix-7のXC7A35Tが搭載された評価ボードです。Artyには100Mbpsのイーサネットコントローラが付いていて、FPGAでイーサのフレームを作ればパケットを送ることができます。

そうして作ったのがこのデザインです。

Ethercore_1

Vivadoのブロックデザインなのですが、「RTL」だらけで、一瞬、ぎょっとします。

それぞれのコアは、ARPリクエストに応答するモジュールや、UDPのチェックサムを計算するモジュール、PINGに応答するモジュールなどなどです。

このデザインは以下のことができます。

  • 100Mbpsでパケットを送れます
  • 任意のUDPパケットを送れます
  • ARPに応答したり、ARPを送信することができます
  • PINGに応答したり、PINGを送ることができます

Artyではちょっと無理ですがCosmo-Kに実装すればGigabitEtherや10GbitEtherが使えるようになります。

実際に試してみました。

まず、パソコン(192.168.1.2)からArty(192.168.1.190)にPINGを送ってみました。

Ethercore_2

ちゃんと帰ってきます。

このときのパケットをWireSharkで見てみると、

Ethercore_3

200~300usで返しています。

また、Artyの押ボタンスイッチを押すとUDPが送信されるようにしてみました。

ボタンを押すと・・

Ethercore_4

だーっとUDPが送信されます。中身はインクリメントしていく数字です。

別の押ボタンをPING送信に割り当てて、ボタンを押しますと、

Ethercore_5 .

これまたダーッと、192.168.0.0~192.168.255.255までPINGを送信しまくります。

WireSharkの画面を見ると1us以内に次のパケットが来ているようにも見えますが、受信側(PC側)でバッファされているのでしょうから、実際にどのくらいの速度になっているのかはわかりません。

とにかく、FPGAから生のパケットを送信することができるようになりました。

|

« FPGAによるHDMI入力 | トップページ | ADS54J60の隠しレジスタ »

コメント

コメントを書く



(ウェブ上には掲載しません)




« FPGAによるHDMI入力 | トップページ | ADS54J60の隠しレジスタ »