一種用fpga實(shí)現(xiàn)的以太網(wǎng)驅(qū)動(dòng)器的制造方法
【專(zhuān)利摘要】本發(fā)明提供一種易于在用FPGA實(shí)現(xiàn)的以太網(wǎng)驅(qū)動(dòng)器,在FPGA芯片上可以實(shí)現(xiàn)以太網(wǎng)驅(qū)動(dòng)器實(shí)現(xiàn)以太網(wǎng)的初始化和數(shù)據(jù)收發(fā),從而可以與其它系統(tǒng)實(shí)現(xiàn)對(duì)接。主要原理是用RTL設(shè)計(jì)出一個(gè)相應(yīng)的以太網(wǎng)驅(qū)動(dòng)器,完成初始化和以太網(wǎng)MAC幀數(shù)據(jù)的收發(fā)控制。本發(fā)明是基于集成以太網(wǎng)MAC控制器芯片和以太網(wǎng)PHY芯片模塊進(jìn)行的實(shí)現(xiàn)。
【專(zhuān)利說(shuō)明】—種用FPGA實(shí)現(xiàn)的以太網(wǎng)驅(qū)動(dòng)器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及FPGA設(shè)計(jì)領(lǐng)域,尤其涉及一種用FPGA實(shí)現(xiàn)以太網(wǎng)驅(qū)動(dòng)器的方法。
【背景技術(shù)】
[0002]近年來(lái),隨著S0C/FPGA設(shè)計(jì)的規(guī)模越來(lái)越大,開(kāi)發(fā)的周期就顯得越來(lái)重要。在一個(gè)載波體制的高速視頻顯示無(wú)線傳輸系統(tǒng)(以下簡(jiǎn)稱(chēng)UWB無(wú)線傳輸系統(tǒng))中,最終是要實(shí)現(xiàn)PC跟PC通過(guò)無(wú)線的UWB系統(tǒng)時(shí)進(jìn)行數(shù)據(jù)的傳輸,可以高速實(shí)時(shí)傳輸數(shù)據(jù),比如視頻流。
[0003]實(shí)現(xiàn)最終UWB無(wú)線傳輸系統(tǒng),采取的方案為通過(guò)以太網(wǎng)驅(qū)動(dòng)器將PC下發(fā)的數(shù)據(jù)幀通過(guò)以太網(wǎng)驅(qū)動(dòng)器進(jìn)行數(shù)據(jù)接收和轉(zhuǎn)發(fā)。
[0004]現(xiàn)在以太網(wǎng)驅(qū)動(dòng)器通常是用通用的嵌入式的CPU上進(jìn)行開(kāi)發(fā)而實(shí)現(xiàn),但對(duì)于開(kāi)發(fā)整個(gè)UWB無(wú)線傳輸系統(tǒng)就需要冗余的連接設(shè)計(jì)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明可以通過(guò)直接的RTL編碼在FPGA上實(shí)現(xiàn),邏輯規(guī)模小,不需要借助嵌入式的CPU,可以直接作為以太網(wǎng)驅(qū)動(dòng)器模塊給其它系統(tǒng)使用,連接簡(jiǎn)單,剪裁方便,與UWB無(wú)線通信模塊連接方便,與可以與類(lèi)似的其它通信模塊連接。
[0006]本發(fā)明提供一種FPGA實(shí)現(xiàn)以太網(wǎng)驅(qū)動(dòng)器的方法,主要目的是通過(guò)此FPGA實(shí)現(xiàn)的以太網(wǎng)驅(qū)動(dòng)器與其它RTL設(shè)計(jì)的模塊相連接,F(xiàn)PGA實(shí)現(xiàn)的以太網(wǎng)驅(qū)動(dòng)器可以直接作為參數(shù)化的標(biāo)準(zhǔn)模塊給其它系統(tǒng)使用,剪裁方便。
[0007]圖2是FPGA實(shí)現(xiàn)以太網(wǎng)驅(qū)動(dòng)器的內(nèi)部狀態(tài)轉(zhuǎn)移圖。如附圖2所示,采用狀態(tài)機(jī)設(shè)計(jì)的方法,當(dāng)芯片上電復(fù)位后,直接從IDLE狀態(tài)進(jìn)入到INITIAL狀態(tài)進(jìn)行初始化操作,通過(guò)1calbus對(duì)芯片相關(guān)寄存器進(jìn)行配置。當(dāng)完成初始化操作后進(jìn)入TRANS狀態(tài),TRANS狀態(tài)主要完成接收、發(fā)送、異常、中斷的調(diào)度,下一狀態(tài)是進(jìn)行發(fā)送、接收、異常還是中斷,主控整個(gè)狀態(tài)機(jī)的跳轉(zhuǎn)。如當(dāng)TRANS判斷完成下一步進(jìn)行發(fā)數(shù)據(jù),那么跳轉(zhuǎn)到TX狀態(tài),當(dāng)一幀發(fā)送完畢跳回到TRANS狀態(tài)。如當(dāng)TRANS判斷完成下一步進(jìn)行收數(shù)據(jù),那么跳轉(zhuǎn)到RX狀態(tài),當(dāng)一幀接收完畢跳回到TRANS狀態(tài)。如當(dāng)來(lái)中斷時(shí),跳入ISR_STATUS狀態(tài),在此狀態(tài)進(jìn)行讀中斷狀態(tài)寄存器的值,清中斷,最后返回,用寄存器鎖存記錄中斷狀態(tài)的值。如當(dāng)出現(xiàn)異常時(shí)進(jìn)入REC0NFIG狀態(tài),處理與異常有關(guān)的相關(guān)寄存器的重新配置,執(zhí)行完成后跳轉(zhuǎn)到TRANS狀態(tài)。
[0008]目前,異常處理一共可以處理4類(lèi)異常,可以對(duì)應(yīng)到芯片以太網(wǎng)MAC控制器的使用:
[0009]異常1:出現(xiàn)PHY中斷;
[0010]異常2 =RXOVERFLOff ;
[0011]異常3:接收讀接收幀長(zhǎng)度;
[0012]異常4:發(fā)送無(wú)BUFFER可用。
[0013]在TRANS狀態(tài)中可以設(shè)置調(diào)度的優(yōu)先級(jí),可以設(shè)置為接收優(yōu)先抑或發(fā)送優(yōu)先,也可以設(shè)置為輪詢(xún)的優(yōu)先級(jí)模式,輪詢(xún)模式即上一幀為接收優(yōu)先,那么下一幀為發(fā)送優(yōu)先,上一幀為發(fā)送優(yōu)先,那么下一幀為接收優(yōu)先。
[0014]FPGA實(shí)現(xiàn)的以太網(wǎng)驅(qū)動(dòng)器可以作為參數(shù)化的標(biāo)準(zhǔn)模塊,借此實(shí)現(xiàn)UWB無(wú)線轉(zhuǎn)輸系統(tǒng)。附圖3是利用FPGA實(shí)現(xiàn)的以太網(wǎng)驅(qū)動(dòng)器實(shí)現(xiàn)UWB無(wú)線轉(zhuǎn)輸系統(tǒng)。如附圖3所示,具體實(shí)現(xiàn)可在FPGA平臺(tái)上實(shí)現(xiàn),芯片上電復(fù)位后進(jìn)行初始化操作,當(dāng)初始化操作完成后,通過(guò)以太網(wǎng)驅(qū)動(dòng)器模塊實(shí)現(xiàn)發(fā)送、接收流程。UWB無(wú)線轉(zhuǎn)輸系統(tǒng)進(jìn)入發(fā)送流程,完成數(shù)據(jù)從芯片通過(guò)local bus轉(zhuǎn)遞到發(fā)送BUFFER ;進(jìn)入接收流程,完成數(shù)據(jù)從接收BUFFER通過(guò)localbus轉(zhuǎn)遞到芯片。
[0015]該方法的優(yōu)點(diǎn):
[0016]不需要借助嵌入式的CPU進(jìn)行軟件開(kāi)發(fā)實(shí)現(xiàn),完成以太網(wǎng)驅(qū)動(dòng)器的功能。
[0017]可以直接作為以太網(wǎng)驅(qū)動(dòng)器模塊給其它系統(tǒng)使用(例如UWB無(wú)線傳輸系統(tǒng)),連接簡(jiǎn)單,剪裁方便。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0018]圖1是以太網(wǎng)驅(qū)動(dòng)器實(shí)現(xiàn)框圖。
[0019]圖2是FPGA實(shí)現(xiàn)以太網(wǎng)驅(qū)動(dòng)器的內(nèi)部狀態(tài)轉(zhuǎn)移圖。
[0020]圖3是利用FPGA實(shí)現(xiàn)的以太網(wǎng)驅(qū)動(dòng)器實(shí)現(xiàn)UWB無(wú)線轉(zhuǎn)輸系統(tǒng)。
【具體實(shí)施方式】
[0021]以下結(jié)合附圖,具體說(shuō)明本發(fā)明。
[0022]本發(fā)明提供一種FPGA實(shí)現(xiàn)以太網(wǎng)驅(qū)動(dòng)器的方法,主要目的是通過(guò)此FPGA實(shí)現(xiàn)的以太網(wǎng)驅(qū)動(dòng)器與其它RTL設(shè)計(jì)的模塊相連接,F(xiàn)PGA實(shí)現(xiàn)的以太網(wǎng)驅(qū)動(dòng)器可以直接作為參數(shù)化的標(biāo)準(zhǔn)模塊給其它系統(tǒng)使用,方便修剪,加速項(xiàng)目進(jìn)度。
[0023]以太網(wǎng)驅(qū)動(dòng)器實(shí)現(xiàn)如附圖1所示,采用模塊化的設(shè)計(jì)方法,各部分功能說(shuō)明如下:
[0024]SYS CTRL:系統(tǒng)控制單元,負(fù)責(zé)整個(gè)系統(tǒng)的控制,如狀態(tài)機(jī)跳轉(zhuǎn)等;
[0025]INITIAL:初始化單元,負(fù)責(zé)對(duì)以太網(wǎng)驅(qū)動(dòng)器的初始化操作;
[0026]FLOW CTRL:流控制模塊,負(fù)責(zé)與外部芯片Local bus接口的連接,將數(shù)據(jù)流轉(zhuǎn)化符合Local bus接口定義。
[0027]與之連接的部分還有:
[0028]TXBUF:發(fā)送 BUFFER ;
[0029]RXBUF:接收 BUFFER ;
[0030]BUF CTRL =BUFFER控制單元,負(fù)責(zé)提供BUFFER狀態(tài)信息;
[0031]內(nèi)部系統(tǒng)設(shè)計(jì)如附圖2所示,采用狀態(tài)機(jī)設(shè)計(jì)的方法,當(dāng)芯片上電復(fù)位后,直接從IDLE狀態(tài)進(jìn)入到INITIAL狀態(tài)進(jìn)行初始化操作,通過(guò)local bus對(duì)以太網(wǎng)MAC控制器芯片相關(guān)寄存器進(jìn)行配置。當(dāng)完成初始化操作后進(jìn)入TRANS狀態(tài),TRANS狀態(tài)主要完成是接收、發(fā)送、異常、中斷的調(diào)度,下一狀態(tài)是進(jìn)行發(fā)送、接收、異常還是中斷,主控整個(gè)狀態(tài)機(jī)的跳轉(zhuǎn)。如當(dāng)TRANS判斷完成下一步進(jìn)行發(fā)數(shù)據(jù),那么跳轉(zhuǎn)到TX狀態(tài),當(dāng)一幀發(fā)送完畢跳回到TRANS狀態(tài)。如當(dāng)TRANS判斷完成下一步進(jìn)行收數(shù)據(jù),那么跳轉(zhuǎn)到RX狀態(tài),當(dāng)一幀接收完畢跳回到TRANS狀態(tài)。如當(dāng)來(lái)中斷時(shí),跳入I SR_STATUS狀態(tài),在此狀態(tài)進(jìn)行讀中斷狀態(tài)寄存器的值,清中斷,最后返回,用寄存器鎖存記錄中斷狀態(tài)的值。如當(dāng)出現(xiàn)異常時(shí)進(jìn)入RECONFIG狀態(tài),處理與異常有關(guān)的相關(guān)寄存器的重新配置,執(zhí)行完成后跳轉(zhuǎn)到TRANS狀態(tài)。
[0032]目前,異常處理一共可以處理4類(lèi)異常,可以對(duì)應(yīng)到以太網(wǎng)MAC控制器芯片的使用:
[0033]異常1:出現(xiàn)PHY中斷;
[0034]異常2 =RXOVERFLOff ;
[0035]異常3:接收讀接收幀長(zhǎng)度;
[0036]異常4:發(fā)送無(wú)BUFFER可用。
[0037]在TRANS狀態(tài)中可以設(shè)置調(diào)度的優(yōu)先級(jí),可以設(shè)置為接收優(yōu)先抑或發(fā)送優(yōu)先,也可以設(shè)置為輪詢(xún)的優(yōu)先級(jí)模式,輪詢(xún)模式即上一幀為接收優(yōu)先,那么下一幀為發(fā)送優(yōu)先,上一幀為發(fā)送優(yōu)先,那么下一幀為接收優(yōu)先。
[0038]FPGA實(shí)現(xiàn)的以太網(wǎng)驅(qū)動(dòng)器可以作為參數(shù)化的標(biāo)準(zhǔn)模塊,借此實(shí)現(xiàn)UWB無(wú)線轉(zhuǎn)輸系統(tǒng)如附圖3所示,具體實(shí)現(xiàn)可在FPGA平臺(tái)上實(shí)現(xiàn),芯片上電復(fù)位后進(jìn)行初始化操作,當(dāng)初始化操作完成后,通過(guò)以太網(wǎng)驅(qū)動(dòng)器模塊實(shí)現(xiàn)發(fā)送、接收流程。UWB無(wú)線轉(zhuǎn)輸系統(tǒng)進(jìn)入發(fā)送流程,完成數(shù)據(jù)從以太網(wǎng)MAC控制器芯片通過(guò)local bus轉(zhuǎn)遞到發(fā)送BUFFER ;進(jìn)入接收流程,完成數(shù)據(jù)從接收BUFFER通過(guò)local bus轉(zhuǎn)遞到以太網(wǎng)MAC控制器芯片。
【權(quán)利要求】
1.一種用FPGA實(shí)現(xiàn)的以太網(wǎng)驅(qū)動(dòng)器,其特征在于,通過(guò)FPGA實(shí)現(xiàn)以太網(wǎng)驅(qū)動(dòng)器,而不需要借助嵌入式的CPU進(jìn)行開(kāi)發(fā),包括系統(tǒng)控制單元、初始化單元、流控制模塊和BUFFER控制單兀;其中: 系統(tǒng)控制單元負(fù)責(zé)以太網(wǎng)驅(qū)動(dòng)器的控制,如狀態(tài)機(jī)跳轉(zhuǎn); 初始化單元負(fù)責(zé)對(duì)以太網(wǎng)驅(qū)動(dòng)器的初始化操作; 流控制模塊負(fù)責(zé)與外部Local bus接口的連接,將數(shù)據(jù)流轉(zhuǎn)化符合Local bus的接口定義; BUFFER控制單元負(fù)責(zé)提供BUFFER狀態(tài)信息; 當(dāng)芯片上電復(fù)位后,以太網(wǎng)驅(qū)動(dòng)器直接從IDLE狀態(tài)進(jìn)入到INITIAL狀態(tài),初始化單元進(jìn)行初始化操作,通過(guò)local bus對(duì)以太網(wǎng)驅(qū)動(dòng)器相關(guān)寄存器進(jìn)行配置;當(dāng)完成初始化操作后進(jìn)入TRANS狀態(tài),TRANS狀態(tài)主要完成接收、發(fā)送、異常、中斷的調(diào)度,執(zhí)行完畢后重新跳轉(zhuǎn)到TRANS狀態(tài)。
2.根據(jù)權(quán)利要求1所述的以太網(wǎng)驅(qū)動(dòng)器,其特征在于直接通過(guò)RTL的FPGA實(shí)現(xiàn),易于其它系統(tǒng)模塊例如RTL設(shè)計(jì)的UWB無(wú)線通信模塊進(jìn)行連接。
3.根據(jù)權(quán)利要求1所述的以太網(wǎng)驅(qū)動(dòng)器,其特征在于在TRANS狀態(tài)中可以設(shè)置調(diào)度的優(yōu)先級(jí),可以設(shè)置為接收優(yōu)先抑或發(fā)送優(yōu)先,也可以設(shè)置為輪詢(xún)的優(yōu)先級(jí)模式,輪詢(xún)模式即上一幀為接收優(yōu)先,那么下一幀為發(fā)送優(yōu)先,上一幀為發(fā)送優(yōu)先,那么下一幀為接收優(yōu)先。
【文檔編號(hào)】H04L25/02GK103916336SQ201210595910
【公開(kāi)日】2014年7月9日 申請(qǐng)日期:2012年12月28日 優(yōu)先權(quán)日:2012年12月28日
【發(fā)明者】龔永鑫, 周卓, 包玉華 申請(qǐng)人:北京中電華大電子設(shè)計(jì)有限責(zé)任公司