新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Xilinx FPGA的千兆以太網(wǎng)控制器的開(kāi)發(fā)

基于Xilinx FPGA的千兆以太網(wǎng)控制器的開(kāi)發(fā)

作者: 時(shí)間:2010-08-27 來(lái)源:網(wǎng)絡(luò) 收藏

  1)發(fā)送引擎

  發(fā)送引擎通過(guò)客戶發(fā)送端口接收以太網(wǎng)的數(shù)據(jù)幀,并在幀頭添加幀引導(dǎo)區(qū)域,甚至在幀長(zhǎng)小于最短要求時(shí),添加一定的冗余比特。同時(shí),該模塊還會(huì)在連續(xù)的數(shù)據(jù)幀之間插入以太網(wǎng)協(xié)議所規(guī)定的最小延時(shí),將用戶數(shù)據(jù)轉(zhuǎn)化成標(biāo)準(zhǔn)的GMII數(shù)據(jù)幀,并送至GMII模塊。在應(yīng)用時(shí),面向用戶的操作就是將用戶數(shù)據(jù)讀入GEMAC核內(nèi)部

  該模塊接口信號(hào)的簡(jiǎn)要信息如表10-10所列。

表10-10 發(fā)送引擎接口信號(hào)列表

發(fā)送引擎接口信號(hào)列表

  發(fā)送引擎的時(shí)序如圖10-38所示。當(dāng)客戶端有數(shù)據(jù)發(fā)送時(shí),將tx_data_valid拉高,同時(shí)將數(shù)據(jù)的第一個(gè)字節(jié)置于tx_data端口;當(dāng)GEMAC將第一字節(jié)數(shù)據(jù)讀入后,會(huì)將tx_ack信號(hào)拉高,用戶端邏輯檢測(cè)到tx_ack為高時(shí),要在下一個(gè)時(shí)鐘上升沿將其余的數(shù)據(jù)發(fā)送到數(shù)據(jù)端口上,當(dāng)數(shù)據(jù)發(fā)送完畢后,將x_data_valid拉低。

基于Xilinx FPGA的千兆以太網(wǎng)控制器的開(kāi)發(fā)

圖10-38 發(fā)送引擎的時(shí)序圖

  2)接收引擎

  接收引擎接收來(lái)自GMII模塊的數(shù)據(jù),去掉幀頭的引導(dǎo)區(qū)域,包括為了增加幀長(zhǎng)的冗余比特。此外,該模塊還能根據(jù)數(shù)據(jù)幀中的檢驗(yàn)序列區(qū)域、接收到的GMII錯(cuò)誤碼字以及幀長(zhǎng)信息完成錯(cuò)誤檢測(cè),主要接口信號(hào)的簡(jiǎn)要說(shuō)明如表10-11所列。

表10-11 接收引擎接口信號(hào)列表

基于Xilinx FPGA的千兆以太網(wǎng)控制器的開(kāi)發(fā)

  接收引擎的時(shí)序如圖10-39所示??蛻舳诉壿嫳仨氃谌魏螘r(shí)候都準(zhǔn)備好接收數(shù)據(jù),因?yàn)樵贕EMAC核中沒(méi)有接收緩存,有時(shí)延就會(huì)丟失數(shù)據(jù),因此用戶可自己添加緩沖邏輯。rx_data_valid為高時(shí)立即開(kāi)始接收連續(xù)數(shù)據(jù),在檢測(cè)到rx_data_valid變低后,判斷rx_good_frame信號(hào)的電平,如果為高則繼續(xù)處理該幀數(shù)據(jù),否則直接丟棄。

接收引擎的時(shí)序圖

圖10-39 接收引擎的時(shí)序圖



關(guān)鍵詞: FPGA 千兆以太網(wǎng) Virtex

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉