TEL:086-227-0113
info@gopher-tec.jp
TOP page 製品情報 FPGAソース Ethernet GMII/MII FCS Generator
Ethernet GMII/MII FCS Generator

イーサネットMAC内で、送信元データからFCS(Frame Check Sequence)を生成する部分の
サンプルコードです。
ギガビットイーサ用のGMIIモードと10/100Mイーサ用のMIIモードの両方に対応しています。
プリアンブルやSFD(Start of Frame Delimiter)等の送信タイミングと送信データを入力すると、
データの後ろに32 ビットFCS を付加しつつ、GMII/MIIのTXENとTXDを生成します。送信元データは、
GMIIモードの場合は8ビット幅、MIIモードの場合は4ビット幅をそれぞれ想定していますが、
どちらの場合も8ビット単位でCRC-32の計算を行ってFCSを求めています。生成多項式は次の通りです。

X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 + X8 + X7 + X5 + X4 + X2 + x1+ 1


Name I/O  Description 
REST in 非同期リセット入力(Active High)です。
パワーオン時、またはシステムリセット時にアサートして下さい。
TXCLK
in 下記の全信号の同期クロックであり、GMII/MIIの送信クロックです。
通常、PHYの送信クロック出力はGMIIの場合とMIIの場合とで端子が異なり、
別々にMACへ接続されます。ここではMAC内にて両クロックをMUX 済みである想定で
記述しています。(つまりGMIIモードで125MHz、MII モードで25MHzが入力される想定)
GMII_SEL in GMIIモードで使用する際にHi、MIIモードで使用する際にLoを入力して下さい。
PHYのリンクスピードに応じて、都度設定を変更して構いません。
TX_PREAMBLE_TIM in プリアンブル送信タイミング(Active High)を示す信号です。
送信開始時に、GMIIモードでは7 クロック以上、MIIモードでは15クロック以上連続して
アサートして下さい。この間、TX_INFO[7:0]入力は無視され、GMII_TXDへは自動的に
プリアンブルが送出されます。
TX_SFD_TIM in SFD送信タイミング(Active High)を示す信号です。
TX_PREAMBLE_TIMのネゲートと同時に、1クロックだけアサートして下さい。
この間、TX_INFO[7:0]は無視され、GMII_TXDへは自動的にSFDが送出されます。
TX_INFO_TIM in データ送信タイミング(Active High)を示す信号です。
TX_SFD_TIMのネゲートと同時にアサートし、データ期間中保持して下さい。
この間、GMIIモードではTX_INFO[7:0]、MII モードではTX_INFO[3:0]が参照され、
1クロック遅れてGMII_TXDへ出力されます。
TX_FCS_TIM in FCS送信タイミング(Active High)を示す信号です。
TX_INFO_TIMのネゲートと同時にアサートし、GMIIモードでは4クロック、MIIモードでは
8クロックだけアサートして下さい。この間のTX_INFO[7:0]は無視され、GMII_TXDへは
自動的にFCSが送出されます。
TX_INFO[7:0] in 送信データ入力です。
TX_INFO_TIMをアサートしている期間、送信データを入力して下さい。
GMIIモードでは全8ビット、MIIモードではTX_INFO[3:0]だけがそれぞれ参照されます。
GMII_TXEN out 上記タイミング信号とデータから生成した、GMII/MIIの送信イネーブル信号(Active High)
です。
GMII_TXD[7:0] out 上記タイミング信号とデータから生成したGMII/MIIの送信データです。
プリアンブルやSFDとともにFCSが付加されています。
※特に注記のない限り、信号は全て正論理です。
本ソースコードはVerilogを用意しています。
詳細は下記の資料ダウンロードをクリックください。
ソースコード自体は当社WEBストアにて販売しております。

Ethernet GMII/MII FCS Generator
資料ダウンロード