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