FPGA在PCI Express總線接口中的應用
3. 2 實現(xiàn)范例
根據(jù)上面介紹的描述符表,下面給出一個鏈式DMA讀的驅動程序例子。首先生成一個描述符表,然后把描述符表表頭的4個字段的內容分別寫入BAR2地址偏移量為0x0,0x4,0x8和0xC寄存器中。寫完后即開始此次鏈式DMA讀傳輸,while循環(huán)用于等待鏈式DMA結束。從下面的代碼可以看出,2個描述符對應2次DMA操作。
![](http://editerupload.eepw.com.cn/fetch/20131118/191545_2_0.jpg)
圖1是用SignalTap工具獲取的鏈式DMA讀時序圖。PCIE核接收tx_req0請求信號,然后給出一個tx_ack0,同時將tx_dr0置為有效,該信號套住的TXData就是需要讀取的有效數(shù)據(jù)。在每次DMA結束之后,PCIE核都會用同樣的控制邏輯給主機傳送1個已完成DMA次數(shù)的狀態(tài)字,如圖1中的44040000h。本文引用地址:http://www.butianyuan.cn/article/191545.htm
4 性能測試
在做總線性能測試時,采用鏈式DMA傳輸方式,共4個描述符表。根據(jù)實際使用的PCIE總線通道數(shù)和DMA長度的不同,實際測試得到的總線速度也不同,表3給出了參考數(shù)據(jù)。
5 結語
使用FPGA來設計PCIE總線擴展卡,可以省去專用的PCIE接口芯片,降低了硬件設計成本,提高了硬件的集成度。利用FPGA的可編程特性,大大提高了設計靈活性、適應性和可擴展性。PCIE總線提供了高速、獨享的數(shù)據(jù)交換通道,確保在大數(shù)據(jù)量的數(shù)據(jù)交換時不會出現(xiàn)瓶頸,而且作為新一代總線,它使系統(tǒng)在獲得更高性能的同時,具有了良好的升級性。
評論