基于Xilinx FPGA的千兆以太網(wǎng)控制器的開(kāi)發(fā)
1)發(fā)送引擎
發(fā)送引擎通過(guò)客戶(hù)發(fā)送端口接收以太網(wǎng)的數據幀,并在幀頭添加幀引導區域,甚至在幀長(cháng)小于最短要求時(shí),添加一定的冗余比特。同時(shí),該模塊還會(huì )在連續的數據幀之間插入以太網(wǎng)協(xié)議所規定的最小延時(shí),將用戶(hù)數據轉化成標準的GMII數據幀,并送至GMII模塊。在應用時(shí),面向用戶(hù)的操作就是將用戶(hù)數據讀入GEMAC核內部
該模塊接口信號的簡(jiǎn)要信息如表10-10所列。
表10-10 發(fā)送引擎接口信號列表
發(fā)送引擎的時(shí)序如圖10-38所示。當客戶(hù)端有數據發(fā)送時(shí),將tx_data_valid拉高,同時(shí)將數據的第一個(gè)字節置于tx_data端口;當GEMAC將第一字節數據讀入后,會(huì )將tx_ack信號拉高,用戶(hù)端邏輯檢測到tx_ack為高時(shí),要在下一個(gè)時(shí)鐘上升沿將其余的數據發(fā)送到數據端口上,當數據發(fā)送完畢后,將x_data_valid拉低。
圖10-38 發(fā)送引擎的時(shí)序圖
2)接收引擎
接收引擎接收來(lái)自GMII模塊的數據,去掉幀頭的引導區域,包括為了增加幀長(cháng)的冗余比特。此外,該模塊還能根據數據幀中的檢驗序列區域、接收到的GMII錯誤碼字以及幀長(cháng)信息完成錯誤檢測,主要接口信號的簡(jiǎn)要說(shuō)明如表10-11所列。
表10-11 接收引擎接口信號列表
接收引擎的時(shí)序如圖10-39所示??蛻?hù)端邏輯必須在任何時(shí)候都準備好接收數據,因為在GEMAC核中沒(méi)有接收緩存,有時(shí)延就會(huì )丟失數據,因此用戶(hù)可自己添加緩沖邏輯。rx_data_valid為高時(shí)立即開(kāi)始接收連續數據,在檢測到rx_data_valid變低后,判斷rx_good_frame信號的電平,如果為高則繼續處理該幀數據,否則直接丟棄。
圖10-39 接收引擎的時(shí)序圖
評論