OpenCoresで公開されれいるEthermacを動かそうとしています。
http://opencores.org/project,ethmac
RTLシミュレーションを実行してみたのですが、trunkにあるテストベンチは上手く動きません。調査がてらEthermacのI/Oポートを調べてみました。
Host Interface Ports
Wishbone I/Fになっています。Wishboneで使用する信号はhttp://d.hatena.ne.jp/natsutan/20130226/1361871986にまとめてあります。
EthermacはSLAVEだけでなく、MASTERとなって直接メモリにアクセスするので、MASTER動作用の信号も持っています。
共通部分
Port | Width | Direction | Description | |
---|---|---|---|---|
CLK_I | 1 | I | クロック入力 | |
RST_I | 1 | I | リセット入力 |
PHY Interface ports
PHYに接続する信号です。こちらも、MII(Media Independent Interface)という規格物です。
特に記述がなければ全て正論理です。
Port | Width | Direction | Description |
---|---|---|---|
MTxClk | 1 | I | 送信用クロック。100Mbps時25MHz、10Mbps時2.5Mhz。MTxD[3:0], MtxEn, MTxErrの動作クロック。 |
MTxD[3:0] | 4 | O | 送信データニブル。MTxClkの立ち上がりに同期する。MTxEnがアサートされている時に有効。 |
MTxEn | 1 | O | 送信イネーブル。アサートされた時、PHYへのデータ転送が有効。 |
MTxErr | 1 | O | 転送コーディングエラー。送信データにエラーが含まれるときにアサートされる。 |
MRxClk | 1 | I | 受信用クロック。100Mbps時25MHz、10Mbps時2.5Mhz。MRxD[3:0]、MRxDV、MRxErr の動作クロック。 |
MRxDV | 1 | I | 受信データバリッド。PHYからのデータ転送が有効な時、アサートされる。 |
MRxD[3:0] | 4 | I | 受信データニブル。MRxClkの立ち上がりに同期する。7バイトのプリアンプルとSFD(start frame delimiter)も転送される。 |
MRxErr | 1 | I | 受信エラー。現在のデータを受信中にエラーが発生したことを示す。 |
MColl | 1 | I | コリジョン検出。コリジョンが発生した時に、非同期でアサートされる。コリジョンが検出されない時、ディアサートされる。 |
MCrS | 1 | I | キャリアセンス。メディア(伝送路)がアイドルでないときにアサートされる。アイドルの時はディアサートされ。(送信が開始できる。) |
MDC | 1 | O | マネージメントデータクロック。MDIOシリアルデータチャネル用のクロック。 |
MDIO | 1 | I/O | マネージメントデータ入出力。双方向のシリアルデータチャネル。 |