基于FPGA的高速串行交換模塊實(shí)現方法研究
4 交換模塊實(shí)現的關(guān)鍵技術(shù)
在此交換模塊中,關(guān)鍵技術(shù)集中在PCIE的DMA實(shí)現上,本節將討論存儲器寫(xiě)模式下的TLP結構以及基于FPGA實(shí)現的PCIE的DMA寫(xiě)操作核心狀態(tài)機的設計與實(shí)現。
4.1 TLP結構簡(jiǎn)介
PCIE設備之間以數據包形式傳送信息,最主要類(lèi)型的數據包是處理層數據包TLP。其包格式如圖5。
事務(wù)是在PCIE請求者和完成者之間進(jìn)行的操作,包括存儲器事務(wù)、IO事務(wù)、配置事務(wù)和消息事務(wù)。本文討論的DMA讀寫(xiě)操作是針對存儲器空間的操作,存儲器寫(xiě)操作TLP頭的格式如圖6。
4.2 PCIE的DMA寫(xiě)操作的設計與實(shí)現
PCIE的DMA寫(xiě)操作實(shí)現的主要方法是將TLP包頭中的各個(gè)字段正確填充,并將數據按照64 bit或者32 bit并行放在TLP包頭后,按照64 bit或者32 bit并行傳輸給PCIE硬核,由硬核以PCIE協(xié)議串行傳輸給其他設備。PCIE的寫(xiě)操作封裝在TX模塊的狀態(tài)機中。在本設計中規定一次DMA寫(xiě)操作分為65 536次包傳輸,每次包傳輸的最大載荷為128 B,一次寫(xiě)操作的傳輸數據為8 MB。其狀態(tài)機轉換模型如圖7(CPLD指返回完成包)。
實(shí)際上FPGA在PCIE硬核中實(shí)現了8個(gè)TLP存儲空間,因此當發(fā)送模塊將8個(gè)以上的TLP包傳輸給硬核后,硬核可能會(huì )堵塞,因此發(fā)送模塊與硬核之間的交互非常必要。
評論