當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 工業(yè)控制
[導(dǎo)讀]摘要 本設(shè)計(jì)在基于Xilinx Virtex-6 FPGA內(nèi)嵌PCI Express Core的基礎(chǔ)上,實(shí)現(xiàn)了由PCI Express板卡主動(dòng)發(fā)起的DMA讀寫(xiě),可完成PC和PCI Express板卡之間數(shù)據(jù)的高速傳輸。該設(shè)計(jì)已經(jīng)在Xilinx評(píng)估板ML605上完成調(diào)試驗(yàn)證,

摘要 本設(shè)計(jì)在基于Xilinx Virtex-6 FPGA內(nèi)嵌PCI Express Core的基礎(chǔ)上,實(shí)現(xiàn)了由PCI Express板卡主動(dòng)發(fā)起的DMA讀寫(xiě),可完成PC和PCI Express板卡之間數(shù)據(jù)的高速傳輸。該設(shè)計(jì)已經(jīng)在Xilinx評(píng)估板ML605上完成調(diào)試驗(yàn)證,DMA寫(xiě)內(nèi)存速度穩(wěn)定可達(dá)1 520 MB/s,滿(mǎn)足了高速存儲(chǔ)系統(tǒng)的要求。

隨著相控陣?yán)走_(dá)、超寬帶雷達(dá)、數(shù)字陣列雷達(dá)相繼地出現(xiàn),雷達(dá)的回波數(shù)據(jù)量在不斷地增加,因此對(duì)高速采集和大容量數(shù)據(jù)傳輸提出了越來(lái)越高的要求。早期基于PCI總線(xiàn)的高速數(shù)據(jù)采集系統(tǒng)在帶寬、流量控制和數(shù)據(jù)傳送質(zhì)量上存在一定缺陷,在某種程度上并不能完全適應(yīng)高速大容量數(shù)據(jù)存儲(chǔ)的要求。相比較而言,PCI Expres總線(xiàn)具有鮮明的技術(shù)優(yōu)勢(shì),不僅完全兼容PCI總線(xiàn),而且全面解決了PCI總線(xiàn)所面臨的帶寬、流量控制和數(shù)據(jù)傳送質(zhì)量方面問(wèn)題,由于使用高速差分總線(xiàn),時(shí)鐘頻率可以達(dá)到較高水平,其總線(xiàn)帶寬較PCI總線(xiàn)也有大幅度提升,目前X16的PCI Express峰值帶寬可以達(dá)到80 GT/s。PCI Express技術(shù)的逐步成熟,為高速數(shù)據(jù)數(shù)據(jù)傳輸提供了較好的解決方案。

1 DMA控制邏輯設(shè)計(jì)

DMA控制邏輯設(shè)計(jì)如圖1所示,主要有PCIExpress Core、接收引擎、發(fā)送引擎、DMA控制狀態(tài)寄存器和中斷控制等關(guān)鍵模塊。

1.1 PCI Express Core

主要特點(diǎn)如下:(1)符合PCI Express Base Specification 2.0規(guī)范。(2)支持X1、X2、X4或X8模式。(3)片上GTP/GTX收發(fā)器實(shí)現(xiàn)PHY。(4)具有訪(fǎng)問(wèn)PCI Express配置空間和內(nèi)部配置的管理接口。(5)支持最大的有效載荷(128~4 096 Byte)。(6)可針對(duì)存儲(chǔ)器或I/O進(jìn)行配置的基地址寄存器(BAR)。

1.2 接收引擎

在PCI Express系統(tǒng)邏輯結(jié)構(gòu)中,接收引擎主要是在接口時(shí)鐘的控制下,按照基本TLP接收時(shí)序,解析存儲(chǔ)器讀寫(xiě)請(qǐng)求并從TLP中提取所需信息并將其傳送到存儲(chǔ)器訪(fǎng)問(wèn)控制器,存儲(chǔ)器訪(fǎng)問(wèn)控制器處理存儲(chǔ)器寫(xiě)TLP中寫(xiě)入存儲(chǔ)器的數(shù)據(jù),并使用存儲(chǔ)器中的數(shù)據(jù)讀來(lái)響應(yīng)存儲(chǔ)器讀TLP;此外接受引擎主要還負(fù)責(zé)處理存儲(chǔ)器讀完成TLP,響應(yīng)板卡發(fā)起的DMA讀操作。

1.3 發(fā)送引擎

在PCI Express系統(tǒng)邏輯結(jié)構(gòu)中,發(fā)送引擎主要是在接口時(shí)鐘的控制下,按照基本TLP發(fā)送時(shí)序,為接收到的存儲(chǔ)器讀TLP生成完成包,生成該完成包所需的信息會(huì)由存儲(chǔ)控制器傳送到發(fā)送引擎;此外發(fā)送引擎還負(fù)責(zé)發(fā)起存儲(chǔ)器讀寫(xiě)請(qǐng)求TLP,實(shí)現(xiàn)與PC之間數(shù)據(jù)的DMA讀寫(xiě)。

1.4 DMA狀態(tài)控制寄存器

在PCI Express系統(tǒng)邏輯結(jié)構(gòu)中,DMA狀態(tài)控制寄存器主要是實(shí)現(xiàn)PCI Express Core與Root Complex之間數(shù)據(jù)的傳遞。Windows GUI軟件配置DMA控制狀態(tài)寄存器控制DMA操作。DMA控制狀態(tài)寄存器映射于PCI Express Memory BAR0空間,Windows GUI軟件通過(guò)Memory Write和Read周期訪(fǎng)問(wèn)寄存器。Windows GUI軟件初始化DMA控制寄存器發(fā)起DMA傳輸,而通過(guò)狀態(tài)寄存器,以中斷方式通知Root Complex DMA傳輸完成。

1.5 中斷控制

當(dāng)DMA傳輸結(jié)束時(shí),為及時(shí)通知PC響應(yīng)并處理中斷,中斷控制部分使用核的配置層接口信號(hào)產(chǎn)生中斷。PCI Express支持兩種中斷:消息信號(hào)中斷(MSI)和傳統(tǒng)中斷(Legacy INT)。在PCI Express設(shè)備枚舉過(guò)程中,跟聯(lián)合體會(huì)根據(jù)自身對(duì)中斷支持的能力設(shè)置配置空間中的命令寄存器和消息信號(hào)中斷能力寄存器,來(lái)決定使用何種中斷。

2 PCI Express Masfer DMA讀寫(xiě)設(shè)計(jì)驗(yàn)證

2.1 DMA寫(xiě)設(shè)計(jì)驗(yàn)證

數(shù)據(jù)流向:上行FIFO數(shù)據(jù)→PCI Express Master DMA Write→PC內(nèi)存→PC硬盤(pán)。

整個(gè)DMA寫(xiě)過(guò)程如下:(1)復(fù)位FPGA邏輯,延時(shí)1 ms;去除FPGA邏輯,延時(shí)1 ms。(2)檢測(cè)硬件鏈路初始化。(3)開(kāi)啟DMA寫(xiě)完成中斷。(4)設(shè)置DMA寫(xiě)目的地址寄存器,設(shè)置DMA寫(xiě)傳輸長(zhǎng)度寄存器。(5)啟動(dòng)DMA寫(xiě)操作,選擇記錄路徑。(6)等待DMA寫(xiě)完成中斷。(7)清除中斷,內(nèi)存數(shù)據(jù)轉(zhuǎn)到硬盤(pán)。(8)DMA寫(xiě)是否結(jié)束,是則轉(zhuǎn)至步驟(9);否則轉(zhuǎn)至步驟(4)。(9)終止DMA寫(xiě),關(guān)閉DMA寫(xiě)完成中斷,斷開(kāi)記錄路徑。

下面給出從PCI Express Core到系統(tǒng)內(nèi)存的DMA寫(xiě)時(shí)序,圖2是用ChipScope截取的時(shí)序圖。

T0~T1之間核接收事務(wù)接口上m_axis_rx_tvalid與m_axis_rx_tlast共同有效了8次,即執(zhí)行了8次PIO內(nèi)存讀寫(xiě)操作。其中第6次為PIO讀操作,相應(yīng)的發(fā)送事務(wù)接口上s_axis_tx_tvalid與s_axis_tx_tlast有效,產(chǎn)生Cpld完成包以回應(yīng)PIO讀操作。從圖中可以看出,DMA狀態(tài)控制寄存器配置完成后,dma_wr_start信號(hào)有效,即啟動(dòng)DMA寫(xiě)操作。此后PCI Express Core開(kāi)始在發(fā)送事務(wù)接口上發(fā)送存儲(chǔ)器寫(xiě)事物包,事物包的地址、大小已經(jīng)在DMA狀態(tài)控制寄存器中配置。

2.2 DMA讀設(shè)計(jì)驗(yàn)證

數(shù)據(jù)流向:PC硬盤(pán)→PC內(nèi)存→PCI Express Master DMA Read→下行FIFO數(shù)據(jù)。

整個(gè)DMA讀過(guò)程如下:(1)復(fù)位FPGA邏輯,延時(shí)1 ms;去除FPGA邏輯,延時(shí)1 ms。(2)檢測(cè)硬件鏈路初始化。(3)開(kāi)啟DMA讀完成中斷。(4)設(shè)置DMA讀目的地址寄存器,設(shè)置DMA讀傳輸長(zhǎng)度寄存器。(5)PC硬盤(pán)數(shù)據(jù)轉(zhuǎn)到內(nèi)存。(6)啟動(dòng)DMA讀操作,選擇回放路徑。(7)等待DMA讀完成中斷。(8)清除中斷,硬盤(pán)數(shù)據(jù)轉(zhuǎn)到內(nèi)存。(9)DMA讀是否結(jié)束,是則轉(zhuǎn)至步驟(10);否則轉(zhuǎn)至步驟(4)。(10)終止DMA讀,關(guān)閉DMA讀完成中斷,斷開(kāi)回放路徑。

下面給出從系統(tǒng)內(nèi)存到PCI Express Core的DMA讀時(shí)序,圖3是用ChipScope截取的時(shí)序圖。

T1~T2之間核接收事務(wù)接口上m_axis_rx_tvalid與m_axis_rx_tlast共同有效了3次。此處需要說(shuō)明的是DMA讀操作在配置完寄存器后需要先從PC硬盤(pán)將數(shù)據(jù)轉(zhuǎn)到內(nèi)存開(kāi)辟的數(shù)據(jù)緩沖區(qū),此后才能開(kāi)始DMA讀操作,故T1~T2之間核接收事務(wù)接口上m_axis_rx_tvalid與m_axis_rx_ tlast有效為配置DMA讀地址和啟動(dòng)DMA讀操作。當(dāng)DMA讀操作啟動(dòng)后,核的發(fā)送事務(wù)接口上s_axis_tx_tvalid與s_axis_tx_tlast有效,發(fā)送存儲(chǔ)器讀請(qǐng)求包,當(dāng)PC收到PCI Express Core發(fā)出的存儲(chǔ)器讀請(qǐng)求包后會(huì)根據(jù)TLP中的信息回復(fù)相應(yīng)的Cpld完成包。根據(jù)PCIExpress總線(xiàn)規(guī)范中對(duì)PCI Express序的規(guī)定,允許接收事務(wù)接口在接收Cpld完成包的同時(shí)發(fā)送事務(wù)接口在發(fā)送存儲(chǔ)器讀請(qǐng)求包,見(jiàn)圖中T1~T2之間所示。

2.3 PCI Express中斷控制

當(dāng)DMA寫(xiě)結(jié)束,即dma_wr_done或dma_rd_done其中之一有效時(shí),用戶(hù)應(yīng)該通過(guò)配置接口cfg_interrupt和cfg_interrupt_assert來(lái)提交中斷,當(dāng)核接收到有效中斷時(shí)將cfg_interrupt_rdy置為有效,表示中斷請(qǐng)求被接受。PC通過(guò)讀DMA中斷寄存器從而認(rèn)領(lǐng)中斷事務(wù),響應(yīng)處理中斷后清除中斷。用ChipScope捕獲的DMA讀寫(xiě)完成中斷時(shí)序,如圖4所示。

3 系統(tǒng)性能測(cè)試

系統(tǒng)性能測(cè)試結(jié)果如表1所示。存儲(chǔ)器讀寫(xiě)DMA數(shù)據(jù)有效帶寬測(cè)試為DMA啟動(dòng)到最后一個(gè)存儲(chǔ)器寫(xiě)TLP或最后一個(gè)存儲(chǔ)器讀完成包,測(cè)試數(shù)據(jù)總量為8 GB。

測(cè)試平臺(tái):Xilinx ML605開(kāi)發(fā)板(Virtex-6 FPGA);Windows7 64位操作系統(tǒng),Windriver驅(qū)動(dòng);PCIExpress鏈路寬度:X8,PCI Express Core版本:V2.5;MaxPayload Size:128 Bytes;Max Read Request Size:512 Byte;Root Complex Read Completion Boundary:64 Byte。

4 結(jié)束語(yǔ)

研究了基于Xilinx PCI Express Core的高速DMA讀寫(xiě)設(shè)計(jì),適用于現(xiàn)代雷達(dá)系統(tǒng)和高速數(shù)據(jù)采集系統(tǒng)的要求,并具有良好的移植和擴(kuò)展性。文中給出了DMA設(shè)計(jì)框圖,并對(duì)系統(tǒng)各部分進(jìn)行了分析。系統(tǒng)設(shè)計(jì)中主要研究了PCI Express Master DMA讀寫(xiě)設(shè)計(jì)及中斷控制,并給出了DMA讀寫(xiě)和中斷控制的采樣時(shí)序,通過(guò)系統(tǒng)性能測(cè)試數(shù)據(jù),可以看出本文所設(shè)計(jì)的基于Xilinx PCI Express Core的高速DMA讀寫(xiě)可以滿(mǎn)足高速信號(hào)處理的要求。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉