七、綜合項(xiàng)目實(shí)踐課——千兆網(wǎng)項(xiàng)目專題課
【問(wèn)題7.1】千兆網(wǎng)課程里的udp和百兆網(wǎng)通用的嗎?
答:本課程講述的是千兆網(wǎng),對(duì)于百兆網(wǎng)來(lái)說(shuō),UDP IP MAC和ARP協(xié)議都是相同的,
本課程提供的是千兆網(wǎng)的工程,如果要使用百兆網(wǎng),需要根據(jù)上面的內(nèi)容來(lái)修改。
【問(wèn)題7.2】千兆網(wǎng)課程有實(shí)現(xiàn)TCP協(xié)議嗎?
答:本千兆網(wǎng)課程實(shí)現(xiàn)的是UDP協(xié)議,沒(méi)有TCP協(xié)議。
【問(wèn)題7.3】請(qǐng)問(wèn)下,三速以太網(wǎng)IP核配置時(shí),32bit對(duì)齊選項(xiàng)的意義在哪里?
答:在接口為32bit時(shí),每個(gè)VLD有效時(shí)的數(shù)量是4個(gè)字節(jié)。由于MAC頭是14字節(jié),不是4的整數(shù)倍,
在發(fā)送方向,在補(bǔ)上MAC頭后,
必須調(diào)整數(shù)據(jù)(拿出2字節(jié)與MAC頭最后2字節(jié)湊成一個(gè)4字節(jié)的有效數(shù)據(jù)),這樣處理比較麻煩。
同時(shí)道理,接收方向,去掉14字節(jié)MAC頭后,
會(huì)有一個(gè)VLD多出2字節(jié)的有效數(shù)據(jù),這樣調(diào)整也麻煩。為此,MAC IP核里有一個(gè)功能,
就是32位對(duì)齊功能。該功能決定,在SOP位置時(shí),
最高2字節(jié)是否為無(wú)效數(shù)據(jù)。 當(dāng)是無(wú)效數(shù)據(jù)模式時(shí),發(fā)送方向插入2字節(jié)無(wú)效數(shù)據(jù)+14字節(jié)MAC頭;
在接收方向,刪除前16字節(jié)MAC頭,剩下就是效數(shù)據(jù)。這樣處理就方便很多了。
【問(wèn)題7.4】 只要勾選了32bit對(duì)齊功能,IP核自動(dòng)添加2字節(jié)的無(wú)效數(shù)據(jù)?
答:勾選對(duì)齊后,接收方向?qū)h除無(wú)效數(shù)據(jù),直接輸出數(shù)據(jù),即SOP位置的高2字節(jié)也是有效的,
一直到EOP位置。發(fā)送方向,認(rèn)為從SOP到EOP的位置都是有效的。
不勾選的話,接收方向,IP核輸出、SOP位置的高2字節(jié)是無(wú)效數(shù)據(jù)。
發(fā)送方向,進(jìn)到IP核的數(shù)據(jù)里,將SOP位置的高2字節(jié)視為無(wú)效數(shù)據(jù)。
【問(wèn)題7.5】如下圖所示,當(dāng)使用了PAD_EN功能時(shí),接收方向,會(huì)將PAD去掉,但實(shí)際上沒(méi)有去除,是怎么回事?
答:請(qǐng)看下面描述:第一段,當(dāng)值小于600,該域反映的是長(zhǎng)度,才會(huì)繼續(xù)檢查PAYLOAD長(zhǎng)度,
進(jìn)而才會(huì)有REMOVAL。
當(dāng)值大于600時(shí),該域反映的是類型而已,則不會(huì)REMOVAL。
【問(wèn)題7.6】課程里會(huì)包含TCP協(xié)議嗎?
答:TCP協(xié)議使用邏輯實(shí)現(xiàn)非常復(fù)雜,所以本課程不會(huì)包含此部分內(nèi)容。
【問(wèn)題7.7】RGMII支持10M/100M/1000M三種模式嗎?
答:RGMII是"吉比特介質(zhì)獨(dú)立接口"的含義,即1000M的傳輸接口。其他幾種接口包括GMII、MII等。
注意一下,10M/100M/1000M三種模式,指的是該“芯片”支持這三種接口,不是說(shuō)RGMII支持。
當(dāng)芯片采用了RGMII或GMII時(shí),就傳輸1000M;當(dāng)采用了MII 100M時(shí),就是傳輸100M。
注意的是,RGMII和MII的部分管腳是可以復(fù)用的。
【問(wèn)題7.8】千兆網(wǎng)配置寄存器的定義代碼中,下面兩個(gè)IP核數(shù)據(jù)手冊(cè)中沒(méi)有說(shuō)明,是什么作用的?
答:第一行語(yǔ)句的作用是“等待10000個(gè)時(shí)鐘周期”。目的是當(dāng)完成前面的配置后,等待10000個(gè)時(shí)鐘后,再去配置下面的寄存器。這是因?yàn)橛袝r(shí)
候,配置完上面寄存器后,有可能要等一段時(shí)間才起作用,所以要等一等。這個(gè)“等待”功能是FPGA里面代碼實(shí)現(xiàn)的。
第二句作用是測(cè)試使用的,可以刪除,在調(diào)試時(shí)看看接口是否正確。
【問(wèn)題7.9】本項(xiàng)目有沒(méi)有配置外部的PHY芯片?
答:本項(xiàng)目是沒(méi)有配置的,因?yàn)槟J(rèn)PHY芯片是不用配置就能正確使用的。
【問(wèn)題7.10】、百兆網(wǎng)和千兆網(wǎng)的區(qū)別是什么?
答:1. IP核是一樣的
2. 千兆網(wǎng)使用的是GMII接口,百兆網(wǎng)則是MII接口。gmii數(shù)據(jù)線是8位;MII接口使用是4位數(shù)據(jù)線,也就是TXD低4位和RXD低4位。
3. 時(shí)鐘頻率不同,千兆網(wǎng)是125M,百兆網(wǎng)是25M時(shí)鐘。
4. 百兆網(wǎng)的TX時(shí)鐘來(lái)自于PHY芯片,芯片管腳使用的是tx_clk,而不是gtx_clk。
5. MII接口的4位數(shù)據(jù)線,是先發(fā)1個(gè)字節(jié)的低4位,再發(fā)高4位。
【問(wèn)題7.11】老師,咱們千兆網(wǎng)項(xiàng)目中,為啥用sharkwire抓包的時(shí)候 最大傳輸速率到不了千兆呢?
答:因?yàn)榘膫鬏數(shù)臅r(shí)候,會(huì)有消耗的,例如包與包之間有幀間隙,并且每個(gè)包會(huì)有前導(dǎo)碼和FCS部分。因此達(dá)不到理論的千兆。
【問(wèn)題7.12】請(qǐng)問(wèn)一下在千兆網(wǎng)工程里,初始化mac IP核時(shí),signaltapii有些reg_cnt剛開(kāi)始時(shí),add_wdata會(huì)出現(xiàn)一小段莫名其妙的數(shù)據(jù),是怎么回事 ?
答:請(qǐng)注意這個(gè)signaltap采樣的時(shí)鐘一定要跟代碼模塊的時(shí)鐘一致。
SignalTap使用教程:http://www.mdy-edu.com/jishuwenz/2019/1210/107.html
【問(wèn)題7.13】在千兆網(wǎng)的rx_filter模塊中,讀數(shù)據(jù)的時(shí)候?yàn)槭裁从胊dd_cnt=m_empty==0,這個(gè)信息FIFO的不空作為讀條件?
答:信息FIFO非空,表示數(shù)據(jù)FIFO中存有一個(gè)完整的包文,因?yàn)樾枰袛喟氖欠裾_,所以需要數(shù)據(jù)FIFO中保存一個(gè)完整包文之后再讀出。
由于本模塊需要將32位的數(shù)據(jù)轉(zhuǎn)成16位的,計(jì)數(shù)器cnt數(shù)兩次,表示數(shù)據(jù)FIFO需要兩個(gè)時(shí)鐘讀出一次,當(dāng)遇到最后eop的時(shí)候,
由于可能存在無(wú)效字節(jié),所以當(dāng)無(wú)效字節(jié)為2個(gè)或者3個(gè)的時(shí)候,計(jì)數(shù)器只需要數(shù)一次就夠了。
【問(wèn)題7.14】在千兆網(wǎng)的rx_filter模塊中,信息FIFO深度為什么設(shè)置為32,設(shè)置為1就可以了吧?
答:這里設(shè)置為32只是順手而為,而且占用的資源也不是很多,所以就沒(méi)有進(jìn)行修改,深度改為1也是可以的。
【問(wèn)題7.15】在udp發(fā)送的過(guò)程中,假設(shè)源端口為0x1234,目的端口為0x5678,那么發(fā)送的是12345678還是56781234?
答:發(fā)送的時(shí)候是按照12345678來(lái)發(fā)送的。
【問(wèn)題7.16】為什么udp協(xié)議在發(fā)送和接收的時(shí)候,源端口和目的端口順序會(huì)反?
答:包文的協(xié)議時(shí)固定的,只會(huì)按照源地址加目的地址的格式發(fā)送。
1. FPGA發(fā)送的時(shí)候,F(xiàn)PGA產(chǎn)生包文,端源端口是1234,目的端口是5678。然后發(fā)送格式是源+目,因此發(fā)送的是1234_5678
2. FPGA接收的時(shí)候,PC產(chǎn)生包文,源端口是5678,目的是1234,然后發(fā)送的是源+目,因此是5678_1234。
【問(wèn)題7.17】請(qǐng)問(wèn)一下,我編譯千兆以太網(wǎng)的時(shí)候,為什么把這個(gè)clogb2文件添加進(jìn)去就會(huì)報(bào)錯(cuò),說(shuō)是sv文件?還有這個(gè)文件有什么作用?謝謝
答:clogb2不是一個(gè)完整的module文件,它是被用include的方法加入代碼中的。它不需要加到工程上,所以可以把它去掉。
【問(wèn)題7.18】請(qǐng)問(wèn)下,在做練習(xí)工程的時(shí)候,需要自己設(shè)計(jì)MAC首部發(fā)送電路,MAC首部14字節(jié),但數(shù)據(jù)位是4字節(jié)的,我需要定義 發(fā)送首部的計(jì)數(shù)器,這里4是不能被14整除的,我應(yīng)該怎么處理?
答:1、可以在設(shè)計(jì)代碼的時(shí),把產(chǎn)生的mac頭、IP頭、UDP頭拼接起來(lái)的時(shí)候,在最高位補(bǔ)2字節(jié)的無(wú)效數(shù)據(jù)零。
2、或者在mac_ip核進(jìn)行相關(guān)的設(shè)置,具體可以查看相關(guān)數(shù)據(jù)手冊(cè)附:數(shù)據(jù)手冊(cè)在打開(kāi)IP核后如圖所示位置查看
【問(wèn)題7.19】千兆網(wǎng)轉(zhuǎn)百兆網(wǎng)的時(shí)候,需要給phy芯片一個(gè)參考時(shí)鐘,是怎么給的?
答:開(kāi)發(fā)板上有一個(gè)12M的時(shí)鐘芯片,是給phy芯片的。外部晶振的事,跟FPGA無(wú)關(guān)
【問(wèn)題7.20】我的采樣時(shí)鐘就是模塊的工作時(shí)鐘(always塊里的);現(xiàn)在從MAC_IP核輸出的數(shù)據(jù)不正確,根據(jù)常見(jiàn)問(wèn)題PDF里問(wèn)題1和6的解答,
有兩種情況,如果時(shí)鐘沒(méi)問(wèn)題那就有可能是IP核的輸入信號(hào)有問(wèn)題。我對(duì)應(yīng)的代碼和signaltap采集到的數(shù)據(jù)如圖:
請(qǐng)問(wèn)這種情況下,輸入的數(shù)據(jù)算是正確的嗎?
答:結(jié)果是正確的。原因同上【問(wèn)題9】
【問(wèn)題7.21】再設(shè)置好電腦的IP地址之后,把界面關(guān)掉,然后再打開(kāi)就沒(méi)有了,需要重新設(shè)置,怎么解決?
答:
1、點(diǎn)擊左下角的WIN圖標(biāo),輸入CMD然后回車,打開(kāi)DOS模式窗口。
2、在DOS命令行提示符下直接輸入:“netsh winsock
3、reset”,然后回車,會(huì)提示需要重啟,不要管它。
4、在DOS命令行提示符下直接輸入:“netsh int ip reset
5、reset.log”,然后回車,提示重新啟動(dòng)計(jì)算機(jī)完成此操作。
6、關(guān)閉DOS窗口,重新啟動(dòng)計(jì)算機(jī),問(wèn)題解決。
【問(wèn)題7.22】千兆網(wǎng)我們的和用mdio接口的有什么區(qū)別? 我們的教程是沒(méi)有用到這個(gè)接口的
答:MDIO接口是用來(lái)配置外部的PHY芯片的,不是用來(lái)傳輸數(shù)據(jù)的,也就不是做網(wǎng)絡(luò)協(xié)議使用的。 當(dāng)您需要配置外部的PHY芯片時(shí),可以使用MDIO接口,否則可以不用。
【問(wèn)題7.23】請(qǐng)問(wèn)千兆網(wǎng)工程里,輸入給MAC_IP核的ff_rx_rdy信號(hào)為什么直接置1?跟速率和帶寬有關(guān)嗎?
答:rdy表示下游模塊準(zhǔn)備好指示信號(hào),如果準(zhǔn)備好了就為1,沒(méi)準(zhǔn)備好就為0。 在本案例中,下游模塊是rx_mac_analy模塊,該模塊支持rtl8122_a_mac_ip模塊任意速度的數(shù)據(jù),
即無(wú)論怎么來(lái),下游模塊都能接收并正確處理,所以在此處置為1(時(shí)刻準(zhǔn)備好)就可以了
【問(wèn)題7.24】請(qǐng)問(wèn),一個(gè)基礎(chǔ)問(wèn)題,千兆網(wǎng)工程里多個(gè)模塊都調(diào)用了FIFO,在不同模塊里調(diào)用的fifo的例化名(比如:u_dfifo)能否重復(fù)?
答:可以試試操作,在不同模塊是可以重復(fù)的。
【問(wèn)題7.25】這個(gè)是因?yàn)镮P核沒(méi)有破解嗎?
答:這個(gè)錯(cuò)誤就是高版本生成的工程在低版本中打開(kāi)出現(xiàn)的編譯錯(cuò)誤,用高版本的quartus打開(kāi)即可(如18版本的)
【問(wèn)題7.26】千兆網(wǎng)課程使用的是哪個(gè)PHY芯片?
答:本課程使用的是MP801芯片,使用提RTL8211芯片。但課程中,幾乎沒(méi)有涉及到PHY芯片的內(nèi)容,PHY芯片使用的是默認(rèn)配置。對(duì)于其他PHY芯片,也是通用的。
【問(wèn)題7.27】千兆網(wǎng)課程是ALTERA,是否與XILINX的通用?
答:本課程主要涉及到各個(gè)協(xié)議的RTL實(shí)現(xiàn),這部分代碼是通用的。但有一個(gè)MAC IP核,本課程的工程是使用ALTERA的,XILINX的亦有相同的IP,需要您移植。
總的來(lái)說(shuō),MAC IP占整個(gè)課程的比重不大,大概是5%的內(nèi)容。
【問(wèn)題7.28】您的UDP教程里面包不包含ARP和CRC328bit這兩個(gè)地方的講解?
答:有arp的講解,但crc就不包括。
【問(wèn)題7.29】千兆網(wǎng)課程的源碼中有相應(yīng)的tb仿真代碼嘛?
答:沒(méi)有,但如果要驗(yàn)證功能正確性可以上板驗(yàn)證和仿真文件
【問(wèn)題7.30】請(qǐng)問(wèn)下載程序后,電腦檢測(cè)不到本地以太網(wǎng),把程序刪除又可以檢測(cè)?
答:可能程序里有復(fù)位管腳,把這些PHY芯片復(fù)位了。
【問(wèn)題7.31】以太網(wǎng)通信中,抓包工具wireshark能抓到 但網(wǎng)絡(luò)調(diào)試助手收不到 是怎么回事?
答:可能性有如下幾種,請(qǐng)逐一排除。
1. IP地址不正確,請(qǐng)檢查IP地址,尤其注意目的IP和源IP的區(qū)別
2. 端口號(hào)不正確,請(qǐng)檢查端口號(hào),尤其注意目的端口和源端口的區(qū)分。
3. 目的MAC地址不正確,可以嘗試發(fā)送廣播包文(非ARP包文)測(cè)試。
4. 包文過(guò)短,小于60字節(jié)。
【問(wèn)題7.32】工程仿真的前導(dǎo)碼后為什么有兩個(gè)字節(jié)的0呢? 按理說(shuō)應(yīng)該緊跟目的MAC地址 圖中e8 6a就是目的MAC開(kāi)頭.
答:MAC IP核的有一個(gè)32bit對(duì)齊的功能,關(guān)于該功能意義,請(qǐng)看【問(wèn)題7.3】。
如果出現(xiàn)上圖中問(wèn)題,有可能是MAC IP核中的32bit對(duì)齊功能設(shè)置有誤。
【問(wèn)題7.33】千兆網(wǎng)項(xiàng)目中,是否包括TCP協(xié)議實(shí)現(xiàn)?
答:千兆網(wǎng)項(xiàng)目是使用的UDP協(xié)議,而非TCP協(xié)議。
目前來(lái)說(shuō),TCP協(xié)議由于有握手機(jī)制、重發(fā)機(jī)制等功能,在邏輯上實(shí)現(xiàn)相當(dāng)困難,暫未看到商用的案例。
【問(wèn)題7.34】高速采集后的數(shù)據(jù) 是存到內(nèi)存或者flash嗎 ?
答:激光項(xiàng)目:采集到數(shù)據(jù)后,內(nèi)部進(jìn)行計(jì)算和處理,并將結(jié)果通過(guò)千兆網(wǎng)上傳到上位機(jī)。
大數(shù)據(jù)采集項(xiàng)目:從光纖采集到數(shù)據(jù)后,保存到DDR3中,然后讀出送到PCIE上位機(jī)。
【問(wèn)題7.35】請(qǐng)問(wèn)插上千兆網(wǎng)模塊后,PING不通?
答:千兆網(wǎng)模塊是一個(gè)基于PHY層的模塊,不是完整的網(wǎng)卡,實(shí)現(xiàn)的是PHY層的協(xié)議,沒(méi)有實(shí)現(xiàn)MAC層、TCP/IP層協(xié)議。
因此,不可能PING通(因?yàn)镻ING功能是在TCP/IP層實(shí)現(xiàn)的)。要實(shí)現(xiàn)PING功能,需要編寫(xiě)FPGA程序來(lái)實(shí)現(xiàn)。
【問(wèn)題7.36】插上設(shè)備后,電腦識(shí)別成百兆網(wǎng)問(wèn)題?
答:上電后,電腦與千兆網(wǎng)模塊之間會(huì)開(kāi)展自協(xié)商對(duì)話,根據(jù)雙方的環(huán)境確定通信速率。如果希望工作在1G,而實(shí)質(zhì)協(xié)商成100M,則依次按如下檢查。
1. 檢查電腦網(wǎng)卡是否支持1G,具體請(qǐng)看網(wǎng)卡設(shè)置
2. 檢查網(wǎng)線是否支持1G,有類型的要求。
3. 換臺(tái)電腦試試
4. 以上都測(cè)試過(guò)后還不行,請(qǐng)找指導(dǎo)老師確認(rèn)。
審核編輯:湯梓紅
評(píng)論
查看更多