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