特電のArtix-7ボードでもEthernetのパケットを出せた!
特電のArtix-7ボードに拡張ベースボードを装着して、Arty用に作ったハードウェアUDP/IPコアを乗せたらEthernetのパケットを出せるようにになりました。
Artyとの違いはLANのチップの違いになります。Artyは100BASEのイーサの信号をMIIといってデータバスを4本、クロック25MHzで送る方式ですが、特電の拡張ベースボードはRMIIといってデータバス2本、クロック50MHzで送る方式です。
現在あるデザインはArty用なので、特電ボードに移植するにはMII2RMIIのコアが必要になります。
もちろんこういったコアはXILINXが用意してくれているので、Vivadoで+ボタンを押して追加するだけです。
なんとなくでつなぎました。
Artyとの違いですが、Artyは25MHzのリファレンスクロックがFPGA→LANチップという方向でしたが、特電ボードでは50MHzのクロックがLANチップ→FPGAという方向なので、その違いを直します。
するとイーサコアは外部クロックで動くようになるのですが、いままでは内部クロックだったので一抹の不安はあります。
外部クロックで動くように見せながら実は外部クロックを使っていない・・とかいう設計なっているかもしれません。ソースコードを見る限り、ちゃんと外部クロックで動くようになっていたので一安心。
えいや、で論理合成してみたらChipScopeのクロックがないとかでdbg_hub/clk でエラーが出ます。クロックをいろいろ変えたので接続が切れたようです。
VivadoのChipScopeの設定がどこにあるか探したのですが、ここにあるようです。
Synthesisが成功したら、Open DesignしてSet Up Debugを行うようです。
こんなダイアログが出るので、Nextを押していくだけで再びクロックがつながるようになりました。
ChipScopeのクロックは自動的に推定されるのでしょうか。
さらに論理合成をするとクロックの配線ができない・・とエラー。なかなかハードルが高いです。
エラーメッセージの中に解決法が書かれていたので、
set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets eth_ref_clk_IBUF]
そして、実機に書き込んだら、動きました!
Artix-7がUDP爆弾を大量に発行しています。
すごい、このコア!ちゃんと動く。
PING爆弾というかPINGスキャンもちゃんと動きました。
というわけで、Artix-7でも動くようになりました。
そんな特電Artix-7ボードと、拡張ボードはオンラインショップ
https://shop.tokudenkairo.co.jp/shopping/detail.php?shpci=ART7&shpdi=EXTFBASE
のページにございます。
ご購入のお客様には、今回動くようになったイーサネットコアのデザインを送らせていただきます。通信欄に「イーサネットコア希望」と書いておいてください。
皆様も、FPGAを使ってワイヤースピードでLANに何かを送信しましょう!
| 固定リンク
コメント