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を求めています。生成多項式は次の通りです。
X
32 + X
26 + X
23 + X
22 + X
16 + X
12 + X
11 + X
10 + X
8 + X
7 + X
5 + X
4 + X
2 + x
1+ 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
資料ダウンロード