(完整版)基于PCIe的DMA式數(shù)據(jù)采集系統(tǒng)_第1頁
(完整版)基于PCIe的DMA式數(shù)據(jù)采集系統(tǒng)_第2頁
(完整版)基于PCIe的DMA式數(shù)據(jù)采集系統(tǒng)_第3頁
(完整版)基于PCIe的DMA式數(shù)據(jù)采集系統(tǒng)_第4頁
(完整版)基于PCIe的DMA式數(shù)據(jù)采集系統(tǒng)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、權(quán)利要求書1、一種基于PCIe的DMA式數(shù)據(jù)采集系統(tǒng),其特征是它包括觸發(fā)控制器、 DMA控制器、報(bào)文發(fā)送引擎、報(bào)文接收引擎和PCIe收發(fā)控制器,所述的PCIe 收發(fā)控制器作為邏輯分析模塊的控制信號(hào)輸入端連接邏輯分析模塊所在產(chǎn)品 系統(tǒng)的CPU, PCIe收發(fā)控制器的控制信號(hào)輸出端連接報(bào)文接收引擎的控制信 號(hào)輸入端,報(bào)文接收引擎的一控制信號(hào)輸出端連接 DMA控制器的一對(duì)應(yīng)控制 信號(hào)輸入端,另一控制信號(hào)輸出端連接觸發(fā)控制器的控制信號(hào)輸入端,觸發(fā) 控制器作為邏輯分析模塊的邏輯數(shù)據(jù)輸入端采集設(shè)計(jì)實(shí)體模塊的觸發(fā)條件的 邏輯數(shù)據(jù),觸發(fā)控制器的控制信號(hào)輸出端連接 DMA控制器的對(duì)應(yīng)控制信號(hào)輸 入端,DMA控制

2、器的控制信號(hào)端與報(bào)文發(fā)送引擎雙向連接,報(bào)文發(fā)送引擎的 邏輯數(shù)據(jù)輸入端連接設(shè)計(jì)實(shí)體模塊的對(duì)應(yīng)邏輯數(shù)據(jù)輸出端,報(bào)文發(fā)送引擎的 邏輯數(shù)據(jù)輸出通過 PCIe收發(fā)控制器輸出至邏輯分析模塊所在產(chǎn)品系統(tǒng)的 CPU。2、根據(jù)權(quán)利要求1所述的基于PCIe的DMA式數(shù)據(jù)采集系統(tǒng),其特征是所述 的設(shè)計(jì)實(shí)體模塊指燒結(jié)到 FPGA芯片里的邏輯代碼,能實(shí)現(xiàn)產(chǎn)品所要求的功 能,所述的集成化邏輯分析模塊實(shí)現(xiàn)的功能是采集設(shè)計(jì)實(shí)體模塊中相應(yīng)的信 號(hào)以實(shí)現(xiàn)的。3、根據(jù)權(quán)利要求1所述的基于PCIe的DMA式數(shù)據(jù)采集系統(tǒng),其特征是所述 的觸發(fā)控制器用于判斷報(bào)文接收引擎發(fā)送過來的觸發(fā)條件,直到它從設(shè)計(jì)實(shí) 體模塊采集的邏輯信號(hào)滿足判斷條件

3、,輸出控制信號(hào)至DMA控制器進(jìn)行數(shù)據(jù) 采集操作,DMA控制器產(chǎn)生當(dāng)前發(fā)送報(bào)文所需的目的地址和報(bào)文長度字段, 給報(bào)文發(fā)送引擎,在報(bào)文發(fā)送引擎完成一次DMA傳輸后,將結(jié)束信息送給DMA控制器。4、根據(jù)權(quán)利要求1所述的基于PCIe的DMA式數(shù)據(jù)采集系統(tǒng),其特征是所述 的DMA控制器包括RAM ,通過PCIe初始化配置將這塊 RAM映射到CPU 的內(nèi)存空間里,CPU通過對(duì)這片空間寫配置命令字,即可實(shí)現(xiàn) CPU對(duì)本系統(tǒng) 實(shí)施命令控制;所述的PCIe初始化配置是指CPU初始化PCIe收發(fā)控制器,分配總線號(hào),將DMA 控制器里的 RAM 映射到系統(tǒng)存儲(chǔ)器空間里,從而使FPGA 成為 CPU 的 PCIe 總

4、線上可以訪問的掛接設(shè)備。5、 根據(jù)權(quán)利要求1 所述的基于 PCIe 的 DMA 式數(shù)據(jù)采集系統(tǒng), 其特征是所述的報(bào)文接收引擎用于接收 CPU 下發(fā)的指令報(bào)文,對(duì)指令報(bào)文解析并將相應(yīng)命令控制字輸入到 DMA 控制器中。6、 根據(jù)權(quán)利要求1 所述的基于 PCIe 的 DMA 式數(shù)據(jù)采集系統(tǒng), 其特征是所述的 PCIe 收發(fā)控制器用于接收來自 CPU 的命令報(bào)文,將事務(wù)層報(bào)文轉(zhuǎn)發(fā)給報(bào)文接收引擎;同時(shí),將來自報(bào)文發(fā)送引擎的事務(wù)層報(bào)文,發(fā)送到CPU。7、 根據(jù)權(quán)利要求1 所述的基于 PCIe 的 DMA 式數(shù)據(jù)采集系統(tǒng), 其特征是該分析模塊包括以下工作步驟:首先, PCIe 收發(fā)控制器接收來自根復(fù)合體的

5、 PCIe鏈路報(bào)文,轉(zhuǎn)發(fā)該P(yáng)CIe鏈路報(bào)文到報(bào)文接收引擎;報(bào)文接收引擎解開報(bào)文,提取PCIe鏈路報(bào)文里的觸發(fā)開關(guān)、觸發(fā)條件、觸發(fā)值和觸發(fā)無關(guān)項(xiàng),以及采集數(shù)據(jù)存儲(chǔ)的起始地址和存儲(chǔ)深度信息; 將上述信息送到 DMA 控制器; 報(bào)文接收引擎將觸發(fā)開關(guān),觸發(fā)條件,觸發(fā)值和觸發(fā)無關(guān)項(xiàng)信息送到觸發(fā)控制器;根據(jù)實(shí)體模塊中采集的數(shù)據(jù)來判斷,當(dāng)觸發(fā)點(diǎn)到來時(shí),觸發(fā)控制器發(fā)出采集使能信號(hào)至DMA 控制器; DMA 控制器產(chǎn)生當(dāng)前發(fā)送報(bào)文所需的目的地址和報(bào)文長度字段,給報(bào)文發(fā)送引擎;在報(bào)文發(fā)送引擎中,根據(jù)采集的實(shí)體中的數(shù)據(jù)產(chǎn)生PCIe鏈路報(bào)文,并送給PCIe收發(fā)控制器;PCIe收發(fā)控制器通過根 復(fù)合體將大量采集數(shù)據(jù)傳

6、送至邏輯分析模塊所在產(chǎn)品系統(tǒng)的內(nèi)存中。8、一種FPGA,包括根據(jù)權(quán)利要求1所述的基于PCIe的DMA式數(shù)據(jù)采集系 統(tǒng)和設(shè)計(jì)實(shí)體模塊,設(shè)計(jì)實(shí)體模塊的邏輯數(shù)據(jù)輸出端與邏輯分析模塊的數(shù)據(jù)信號(hào)輸入端相連,邏輯分析模塊的數(shù)據(jù)信號(hào)輸出端與根復(fù)合體的數(shù)據(jù)信號(hào)輸入端相連,邏輯分析模塊的控制信號(hào)輸入端通過PCIe控制鏈路與根復(fù)合體的控制信號(hào)輸出端相連,根復(fù)合體與CPU 的控制信號(hào)端雙向連接。9、根據(jù)權(quán)利要求8所述的FPGA,其特征是所述的根復(fù)合體是 PCIe鏈路的交 換開關(guān),用于掛載PCIe 設(shè)備,交換PCIe 鏈路報(bào)文,輸出邏輯數(shù)據(jù)至內(nèi)存中存儲(chǔ)。- 3 -一種基于PCIe的DMA式數(shù)據(jù)采集系統(tǒng)技術(shù)領(lǐng)域本發(fā)明涉

7、及FPGAF發(fā)領(lǐng)域,尤其是基于 PCIe鏈路的高效鏈?zhǔn)紻MA空制 采集數(shù)據(jù)的設(shè)計(jì)與實(shí)現(xiàn),具體地說是一種基于 PCIe的DMA;數(shù)據(jù)采集系統(tǒng)。背景技術(shù)目前,隨著現(xiàn)代處理器技術(shù)的發(fā)展,在互連領(lǐng)域中,使用高速差分總線 替代并行總線是大勢(shì)所趨。與單端并行信號(hào)相比,高速差分信號(hào)可以使用更 高的時(shí)鐘頻率,從而使用更少的信號(hào)線,完成之前需要許多單端并行數(shù)據(jù)信 號(hào)才能達(dá)到的總線帶寬。PCI總線使用并行總線結(jié)構(gòu),在同一條總線上的所有外部設(shè)備共享總線帶 寬,而PCIe總線使用了高速差分總線,并采用端到端的連接方式,因此在每 一條PCIe鏈路中只能連接兩個(gè)設(shè)備。這使得 PCIe與PCI總線采用的拓?fù)浣Y(jié) 構(gòu)有所不同。

8、PCIe總線除了在連接方式上與 PCI總線不同之外,還使用了一 些在網(wǎng)絡(luò)通信中使用的技術(shù),如支持多種數(shù)據(jù)路由方式,基于多通路的數(shù)據(jù) 傳遞方式,和基于報(bào)文的數(shù)據(jù)傳送方式,并充分考慮了在數(shù)據(jù)傳送中出現(xiàn)服 務(wù)質(zhì)量 QoS (Quality of Service) 問題。PCIe總線采用了串行連接方式,并使用數(shù)據(jù)包(Packet)進(jìn)行數(shù)據(jù)傳輸, 采用這種結(jié)構(gòu)有效去除了在 PCI總線中存在的一些邊帶信號(hào),如INTx和PME# 等信號(hào)。在PCIe總線中,數(shù)據(jù)報(bào)文在接收和發(fā)送過程中,需要通過多個(gè)層次, 包括事務(wù)層、數(shù)據(jù)鏈路層和物理層。PCIe總線的層次結(jié)構(gòu)如圖所示。PCIe總線的層次組成結(jié)構(gòu)與網(wǎng)絡(luò)中的層次結(jié)

9、構(gòu)有類似之處,但是PCIe總 線的各個(gè)層次都是使用硬件邏輯實(shí)現(xiàn)的。在PCIe體系結(jié)構(gòu)中,數(shù)據(jù)報(bào)文首先在設(shè)備的核心層(Device Core)中產(chǎn)生,然后再經(jīng)過該設(shè)備的事務(wù)層 (Transaction Layer) 、數(shù)據(jù)鏈路層(Data Link Layer)和物理層(PhysicalLayer) ,最終發(fā)送出去。而接收端的數(shù)據(jù)也需要通過物理層、數(shù)據(jù)鏈路和事務(wù)層,并最終到達(dá)Device Core 。在FPGA(現(xiàn)場(chǎng)可編程門陣列)芯片設(shè)計(jì)工作中,由于設(shè)計(jì)存在錯(cuò)誤或缺 陷,設(shè)計(jì)人員需要通過設(shè)計(jì)實(shí)體中邏輯信號(hào)變化情況來分析系統(tǒng)中錯(cuò)誤源頭。這時(shí),設(shè)計(jì)人員可以利用邏輯分析儀來分析系統(tǒng),也可以利用 Alt

10、era 公司的 SignalTap 工具或 Xilinx 公司的 ChipScope 工具抓取波形來分析系統(tǒng)。然而 利用邏輯分析儀設(shè)計(jì)的話需要把信號(hào)拉到空閑引腳上,這樣非常不方便。如 果利用 SignalTap 或 ChipScope 的話,雖然能很方便地采集所需信號(hào),但是 這個(gè)二者又局限于芯片內(nèi)部的 BlockRAM 的剩余量限制,往往大型設(shè)計(jì)中 BlockRAM沒有足夠的余量來供 SignalTap或ChipScope使用,這樣就使得工 具采集的信號(hào)量非常少,在很多情況下不能滿足需要。發(fā)明內(nèi)容本發(fā)明的目的是針對(duì)上述 FPGA(現(xiàn)場(chǎng)可編程門陣列)芯片設(shè)計(jì)中存在的 問題,提出一種基于PCIe的

11、DMM數(shù)據(jù)采集系統(tǒng)。本發(fā)明的技術(shù)方案是:一種基于 PCIe 的 DMA 式數(shù)據(jù)采集系統(tǒng),其特征是它包括觸發(fā)控制器、DMA 控制器、 報(bào)文發(fā)送引擎、 報(bào)文接收引擎和 PCIe 收發(fā)控制器, 所述的 PCIe 收發(fā)控制器作為邏輯分析模塊的控制信號(hào)輸入端連接邏輯分析模塊所在產(chǎn)品 系統(tǒng)的CPU, PCIe 收發(fā)控制器的控制信號(hào)輸出端連接報(bào)文接收引擎的控制信號(hào)輸入端, 報(bào)文接收引擎的一控制信號(hào)輸出端連接DMA 控制器的一對(duì)應(yīng)控制信號(hào)輸入端,另一控制信號(hào)輸出端連接觸發(fā)控制器的控制信號(hào)輸入端,觸發(fā) 控制器作為邏輯分析模塊的邏輯數(shù)據(jù)輸入端采集設(shè)計(jì)實(shí)體模塊的觸發(fā)條件的 邏輯數(shù)據(jù), 觸發(fā)控制器的控制信號(hào)輸出端連接

12、DMA 控制器的對(duì)應(yīng)控制信號(hào)輸入端, DMA 控制器的控制信號(hào)端與報(bào)文發(fā)送引擎雙向連接,報(bào)文發(fā)送引擎的 邏輯數(shù)據(jù)輸入端連接設(shè)計(jì)實(shí)體模塊的對(duì)應(yīng)邏輯數(shù)據(jù)輸出端,報(bào)文發(fā)送引擎的 邏輯數(shù)據(jù)輸出通過PCIe 收發(fā)控制器輸出至邏輯分析模塊所在產(chǎn)品系統(tǒng)的CPU。本發(fā)明的設(shè)計(jì)實(shí)體模塊指燒結(jié)到 FPGA 芯片里的邏輯代碼,能實(shí)現(xiàn)產(chǎn)品所要求的功能,所述的集成化邏輯分析模塊實(shí)現(xiàn)的功能是采集設(shè)計(jì)實(shí)體模塊中相應(yīng)的信號(hào)以實(shí)現(xiàn)的。根復(fù)合體是PCIe 鏈路的交換開關(guān),用于掛載PCIe設(shè)備即用于掛載具有PCIe收發(fā)控制器的FPGA,交換PCIe鏈路報(bào)文,是PCIe 鏈路的重要組成部分。本發(fā)明的觸發(fā)控制器用于判斷報(bào)文接收引擎發(fā)送

13、過來的觸發(fā)條件,直到它從設(shè)計(jì)實(shí)體模塊采集的邏輯信號(hào)滿足判斷條件, 輸出控制信號(hào)至DMA 控制器進(jìn)行數(shù)據(jù)采集操作, DMA 控制器產(chǎn)生當(dāng)前發(fā)送報(bào)文所需的目的地址和報(bào)文長度字段, 給報(bào)文發(fā)送引擎, 在報(bào)文發(fā)送引擎完成一次DMA 傳輸后, 將結(jié)束信息送給DMA 控制器。本發(fā)明的DMA控制器包括RAM ,通過PCIe初始化配置將這塊 RAM映 射到 CPU 的內(nèi)存空間里, CPU 通過對(duì)這片空間寫配置命令字, 即可實(shí)現(xiàn) CPU 對(duì)本系統(tǒng)實(shí)施命令控制;所述的 PCIe初始化配置是指CPU初始化PCIe收發(fā) 控制器,分配總線號(hào),將DMA 控制器里的 RAM 映射到系統(tǒng)存儲(chǔ)器空間里,從而使FPGA成為CPU

14、的PCIe總線上可以訪問的掛接設(shè)備。本發(fā)明的報(bào)文接收引擎用于接收 CPU 下發(fā)的指令報(bào)文,對(duì)指令報(bào)文解析并將相應(yīng)命令控制字輸入到 DMA 控制器中。本發(fā)明的 PCIe 收發(fā)控制器用于接收來自 CPU 的命令報(bào)文,將事務(wù)層報(bào)文轉(zhuǎn)發(fā)給報(bào)文接收引擎;同時(shí),將來自報(bào)文發(fā)送引擎的事務(wù)層報(bào)文,發(fā)送到CPU。本發(fā)明的分析模塊包括以下工作步驟:首先, PCIe 收發(fā)控制器接收來自根復(fù)合體的PCIe鏈路報(bào)文,轉(zhuǎn)發(fā)該P(yáng)CIe鏈路報(bào)文到報(bào)文接收引擎;報(bào)文接 收引擎解開報(bào)文,提取PCIe鏈路報(bào)文里的觸發(fā)開關(guān)、觸發(fā)條件、觸發(fā)值和觸 發(fā)無關(guān)項(xiàng),以及采集數(shù)據(jù)存儲(chǔ)的起始地址和存儲(chǔ)深度信息;將上述信息送到DMA 控制器;報(bào)文接

15、收引擎將觸發(fā)開關(guān),觸發(fā)條件,觸發(fā)值和觸發(fā)無關(guān)項(xiàng)信息送到觸發(fā)控制器;根據(jù)實(shí)體模塊中采集的數(shù)據(jù)來判斷,當(dāng)觸發(fā)點(diǎn)到來時(shí),觸發(fā)控制器發(fā)出采集使能信號(hào)至DMA 控制器; DMA 控制器產(chǎn)生當(dāng)前發(fā)送報(bào)文所需的目的地址和報(bào)文長度字段,給報(bào)文發(fā)送引擎;在報(bào)文發(fā)送引擎中,根據(jù)采集的實(shí)體中的數(shù)據(jù)產(chǎn)生 PCIe鏈路報(bào)文,并送給PCIe收發(fā)控制器;PCIe 收發(fā)控制器通過根復(fù)合體將大量采集數(shù)據(jù)傳送至邏輯分析模塊所在產(chǎn)品系統(tǒng)的內(nèi)存中。一種FPGA,包括基于PCIe的DMA式數(shù)據(jù)采集系統(tǒng)和設(shè)計(jì)實(shí)體模塊,設(shè)計(jì)實(shí)體模塊的邏輯數(shù)據(jù)輸出端與邏輯分析模塊的數(shù)據(jù)信號(hào)輸入端相連,邏輯分析模塊的數(shù)據(jù)信號(hào)輸出端與根復(fù)合體的數(shù)據(jù)信號(hào)輸入端相

16、連,邏輯分析模塊的控制信號(hào)輸入端通過PCIe 控制鏈路與根復(fù)合體的控制信號(hào)輸出端相連,根復(fù)合體與CPU 的控制信號(hào)端雙向連接。本發(fā)明的根復(fù)合體是PCIe鏈路的交換開關(guān),用于掛載 PCIe設(shè)備即用于 掛載具有PCIe收發(fā)控制器的FPGA,交換PCIe鏈路報(bào)文,輸出邏輯數(shù)據(jù)至內(nèi) 存中存儲(chǔ)。本發(fā)明的有益效果:本發(fā)明不僅可以實(shí)現(xiàn)SignalTap 或 ChipScope 的所有功能,而且還可以解決大型設(shè)計(jì)中BlockRAM余量不夠用的情況,因?yàn)榇藭r(shí)數(shù)據(jù)不是存在芯片內(nèi) 部而是導(dǎo)出到CPU側(cè)的內(nèi)存中,只要內(nèi)存允許便可以采集足夠量的數(shù)據(jù)。另 外,由于觸發(fā)模塊是寄存器級(jí)代碼,那么可以通過修改這里的代碼來實(shí)現(xiàn)更

17、為復(fù)雜的觸發(fā)設(shè)置,遠(yuǎn)比 SignalTap 或 ChipScope 靈活得多。在一般大型設(shè)計(jì)中,CPU FPG映存于一個(gè)系統(tǒng)是很常見的,而 PCIe鏈路又是很多高速系 統(tǒng)常用通信通道,所以本方案的適用場(chǎng)合廣泛。本模塊能根據(jù)設(shè)定好的觸發(fā)條件對(duì)邏輯信號(hào)進(jìn)行采集,再將采集的數(shù)據(jù)通過PCIe鏈路上傳給CPU CPUR進(jìn)行下一步工作。這些觸發(fā)條件的設(shè)置方 式是測(cè)試人員利用CPU®過PCIe鏈路將命令下達(dá)本模塊,完成觸發(fā)條件設(shè)置。 本發(fā)明的邏輯分析模塊支持觸發(fā)采數(shù),支持不同時(shí)鐘域數(shù)據(jù)總線采集,支持任意寬度的總線數(shù)據(jù)采集、但是采集數(shù)據(jù)帶寬不能超過線路帶寬,支持采集期間數(shù)據(jù)丟失及線路阻塞告警,支持觸

18、發(fā)時(shí)間點(diǎn)之前一小段數(shù)據(jù)采集,通過配置命令,決定輸入端口的部分比特位作為采集對(duì)象,滿足PCIe傳輸協(xié)議要求。附圖說明圖 1 是本發(fā)明的結(jié)構(gòu)示意圖。圖 2 是本發(fā)明的使用示意圖。圖 3 是本發(fā)明的工作流程圖。具體實(shí)施方式下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的說明。如圖 1 所示,一種基于 PCIe 的 DMA 式數(shù)據(jù)采集系統(tǒng),它包括觸發(fā)控制器、 DMA 控制器、報(bào)文發(fā)送引擎、報(bào)文接收引擎和 PCIe 收發(fā)控制器,所述的PCIe收發(fā)控制器作為邏輯分析模塊的控制信號(hào)輸入端連接邏輯分析模塊所在產(chǎn)品系統(tǒng)的CPU, PCIe 收發(fā)控制器的控制信號(hào)輸出端連接報(bào)文接收引擎的控制信號(hào)輸入端, 報(bào)文接收引擎的一控制

19、信號(hào)輸出端連接DMA 控制器的一對(duì)應(yīng)控制信號(hào)輸入端,另一控制信號(hào)輸出端連接觸發(fā)控制器的控制信號(hào)輸入端,觸發(fā)控制器作為邏輯分析模塊的邏輯數(shù)據(jù)輸入端采集設(shè)計(jì)實(shí)體模塊的觸發(fā)條件的邏輯數(shù)據(jù), 觸發(fā)控制器的控制信號(hào)輸出端連接DMA 控制器的對(duì)應(yīng)控制信號(hào)輸入端, DMA 控制器的控制信號(hào)端與報(bào)文發(fā)送引擎雙向連接,報(bào)文發(fā)送引擎的邏輯數(shù)據(jù)輸入端連接設(shè)計(jì)實(shí)體模塊的對(duì)應(yīng)邏輯數(shù)據(jù)輸出端,報(bào)文發(fā)送引擎的邏輯數(shù)據(jù)輸出通過PCIe收發(fā)控制器輸出至邏輯分析模塊所在產(chǎn)品系統(tǒng)的CPU。本發(fā)明的設(shè)計(jì)實(shí)體模塊指燒結(jié)到 FPGA 芯片里的邏輯代碼,能實(shí)現(xiàn)產(chǎn)品所要求的功能,所述的集成化邏輯分析模塊實(shí)現(xiàn)的功能是采集設(shè)計(jì)實(shí)體模塊中相應(yīng)的信

20、號(hào)以實(shí)現(xiàn)的。根復(fù)合體是PCIe 鏈路的交換開關(guān),用于掛載PCIe設(shè)備即用于掛載具有PCIe收發(fā)控制器的FPGA,交換PCIe鏈路報(bào)文,是PCIe 鏈路的重要組成部分。本發(fā)明的觸發(fā)控制器用于判斷報(bào)文接收引擎發(fā)送過來的觸發(fā)條件,直到它從設(shè)計(jì)實(shí)體模塊采集的邏輯信號(hào)滿足判斷條件, 輸出控制信號(hào)至DMA 控制器進(jìn)行數(shù)據(jù)采集操作, DMA 控制器產(chǎn)生當(dāng)前發(fā)送報(bào)文所需的目的地址和報(bào)文長度字段, 給報(bào)文發(fā)送引擎, 在報(bào)文發(fā)送引擎完成一次DMA 傳輸后, 將結(jié)束信息送給 DMA 控制器。本發(fā)明的DMA控制器包括RAM ,通過PCIe初始化配置將這塊 RAM映 射到 CPU 的內(nèi)存空間里, CPU 通過對(duì)這片空間

21、寫配置命令字, 即可實(shí)現(xiàn) CPU 對(duì)本系統(tǒng)實(shí)施命令控制;所述的 PCIe初始化配置是指CPU初始化PCIe收發(fā) 控制器,分配總線號(hào),將DMA 控制器里的 RAM 映射到系統(tǒng)存儲(chǔ)器空間里,從而使FPGA成為CPU的PCIe總線上可以訪問的掛接設(shè)備。本發(fā)明的報(bào)文接收引擎用于接收 CPU 下發(fā)的指令報(bào)文,對(duì)指令報(bào)文解析并將相應(yīng)命令控制字輸入到 DMA 控制器中。本發(fā)明的 PCIe 收發(fā)控制器用于接收來自 CPU 的命令報(bào)文,將事務(wù)層報(bào)文轉(zhuǎn)發(fā)給報(bào)文接收引擎;同時(shí),將來自報(bào)文發(fā)送引擎的事務(wù)層報(bào)文,發(fā)送到CPU。本發(fā)明的分析模塊包括以下工作步驟:首先, PCIe 收發(fā)控制器接收來自根復(fù)合體的PCIe鏈路報(bào)

22、文,轉(zhuǎn)發(fā)該P(yáng)CIe鏈路報(bào)文到報(bào)文接收引擎;報(bào)文接 收引擎解開報(bào)文,提取PCIe鏈路報(bào)文里的觸發(fā)開關(guān)、觸發(fā)條件、觸發(fā)值和觸 發(fā)無關(guān)項(xiàng),以及采集數(shù)據(jù)存儲(chǔ)的起始地址和存儲(chǔ)深度信息;將上述信息送到DMA 控制器;報(bào)文接收引擎將觸發(fā)開關(guān),觸發(fā)條件,觸發(fā)值和觸發(fā)無關(guān)項(xiàng)信息送到觸發(fā)控制器;當(dāng)觸發(fā)點(diǎn)到來時(shí),觸發(fā)控制器發(fā)出采集使能信號(hào)至DMA控制器; DMA 控制器產(chǎn)生當(dāng)前發(fā)送報(bào)文所需的目的地址和報(bào)文長度字段,給報(bào)文發(fā)送引擎;在報(bào)文發(fā)送引擎中,根據(jù)采集的實(shí)體中的數(shù)據(jù)產(chǎn)生PCIe鏈路報(bào)文,并送給PCIe收發(fā)控制器;PCIe收發(fā)控制器通過根復(fù)合體將大量采集數(shù) 據(jù)傳送至CPU。一種FPGA,包括基于PCIe的DMA式

23、數(shù)據(jù)采集系統(tǒng)和設(shè)計(jì)實(shí)體模塊,設(shè)計(jì)實(shí)體模塊的邏輯數(shù)據(jù)輸出端與邏輯分析模塊的數(shù)據(jù)信號(hào)輸入端相連,邏輯分析模塊的數(shù)據(jù)信號(hào)輸出端與根復(fù)合體的數(shù)據(jù)信號(hào)輸入端相連,邏輯分析模塊的控制信號(hào)輸入端通過PCIe 控制鏈路與根復(fù)合體的控制信號(hào)輸出端相連,根復(fù)合體與CPU 的控制信號(hào)端雙向連接。本發(fā)明的根復(fù)合體是PCIe 鏈路的交換開關(guān),用于掛載具有PCIe 收發(fā)控制器的FPGA,交換PCIe鏈路報(bào)文,輸出邏輯數(shù)據(jù)至內(nèi)存中存儲(chǔ)。具體實(shí)施時(shí):1、觸發(fā)控制器詳細(xì)設(shè)計(jì)功能介紹:根據(jù)用戶設(shè)定的觸發(fā)條件,在滿足觸發(fā)的條件下指示數(shù)據(jù)采集。配置命令決定輸入端口部分比特最為采集對(duì)象。具體實(shí)現(xiàn):觸發(fā)控制器功能就是判斷觸發(fā)條件,直到采

24、集信號(hào)滿足判斷條件后輸出結(jié)果通知 DMA 控制器進(jìn)行數(shù)據(jù)采集操作。觸發(fā)控制器下有這么幾個(gè)寄存器:R_collect_start, R_compare_on_off ,R_compare_condition , R_compare_value, R_value_irrelvant。R_collect_start用來控制采集操作的開始和停止。R_compare_on_of用來控制是否進(jìn)行觸發(fā)操作,即有效時(shí)進(jìn)行觸發(fā)判斷,否則就不需要觸發(fā)判斷直接通知下級(jí)模塊進(jìn)行采集數(shù)據(jù)。R_compare_condition、R_compare_value用來表示進(jìn)行何種觸發(fā)判斷的條件及相應(yīng)的值,比如要進(jìn)行一次判斷采

25、集信號(hào)等于某個(gè)值時(shí)觸發(fā)采集,那么前者表達(dá)相等條件,后者表達(dá)相等的值。R_value_irrelvant 表示無關(guān)項(xiàng),就是對(duì)R_compare_value 中某些比特位不關(guān)心,不參與判斷過程。邏 輯 過 程 : 當(dāng) R_collect_start 及 R_compare_on_off 有 效 后 , 根 據(jù) R_compare_condition 的值決定采用哪種邏輯判斷方式(等于、不等于、小于、大于之類) ,并根據(jù) R_value_irrelvant 的值濾除無關(guān)比特位,然后將采樣信號(hào)的值和R_compare_value做比較,當(dāng)滿足邏輯判斷條件時(shí),則觸發(fā)下級(jí)模塊采 集信號(hào) 。 R_compa

26、re_on_off 無 效 時(shí) , 則 表示不 需 要 觸 發(fā)操作 , 只 要 R_collect_start有效后即可進(jìn)行采集工作。2、 DMA 控制器模塊詳細(xì)設(shè)計(jì)功能介紹:負(fù)責(zé)寄存數(shù)據(jù)傳輸中各種狀態(tài)控制字。具體實(shí)現(xiàn):這里是一塊片內(nèi) RAM ,通過 PCIe 配置將這塊RAM 映射到CPU 的內(nèi)存空間里, CPU 通過對(duì)這片空間寫配置命令字, 即可實(shí)現(xiàn) CPU 對(duì)本 系統(tǒng)實(shí)施命令控制。- 7 -這塊RAM中命令控制字格式如下表所示:包含了啟??刂萍拇嫫?,觸發(fā)開關(guān)寄存器,觸發(fā)條件,觸發(fā)的值和觸發(fā) 無關(guān)項(xiàng)寄存器,以及采集數(shù)據(jù)存儲(chǔ)的起始地址寄存器和存儲(chǔ)深度寄存器。存儲(chǔ)起始地址寄存器:保存內(nèi)存地址,

27、即DMA傳輸?shù)哪繕?biāo)地址。當(dāng)?shù)刂?寄存器完成寫操作,DMA狀態(tài)機(jī)將被啟動(dòng)。存儲(chǔ)深度寄存器:其初始值為一次 DMA傳輸數(shù)據(jù)的大小,PCIe每傳送 一個(gè)數(shù)據(jù),字節(jié)寄存器的值就減1,減到。則DMA停止傳輸。上述這種方式為非鏈?zhǔn)紻MA的主模式寫操作,一次DMA傳輸只有一組 控制字表。CPU首先寫控制狀態(tài)寄存器、中斷屏蔽寄存器、字節(jié)寄存器、地 址寄存器,而后狀態(tài)機(jī)啟動(dòng);當(dāng)外部 FIFO數(shù)據(jù)準(zhǔn)備好,數(shù)據(jù)先傳到數(shù)據(jù)通道 RAM,再以DMA方式寫到目標(biāo)地址;判斷 DMA是否完成或出錯(cuò),寫中斷 狀態(tài)寄存器,發(fā)出中斷信號(hào);主機(jī)收到中斷后,讀中斷狀態(tài)寄存器確定中斷 類型,如果發(fā)現(xiàn)DMA完成,則處理數(shù)據(jù),如果發(fā)現(xiàn)DMA

28、出錯(cuò),則丟棄數(shù)據(jù)。3、報(bào)文發(fā)送引擎模塊詳細(xì)設(shè)計(jì)功能介紹:應(yīng)答CPU端的配置寄存器讀請(qǐng)求;DMA方式傳輸采集數(shù)據(jù) 和發(fā)送中斷消息喚醒CPU,處理采集數(shù)據(jù)。具體實(shí)現(xiàn):根據(jù)PCIe協(xié)議中事務(wù)層報(bào)文結(jié)構(gòu)進(jìn)行封包工作。4、報(bào)文接收引擎模塊詳細(xì)設(shè)計(jì)功能介紹:負(fù)責(zé)接收CPU下發(fā)的指令報(bào)文、負(fù)責(zé)對(duì)指令報(bào)文解析并將相 應(yīng)命令控制字寫到DMA控制器模塊中。具體實(shí)現(xiàn):根據(jù)PCIe協(xié)議中事務(wù)層報(bào)文結(jié)構(gòu)進(jìn)行解包工作。5、PCIe收發(fā)控制器詳細(xì)設(shè)計(jì)功能介紹:可采用Xilinx提供的PCIe硬核;用戶接口的本地鏈路成幀接 口;包化接口,有幀起始(sof)和幀結(jié)束(eof)的包標(biāo)記信號(hào);傳輸和接收方向可 進(jìn)行節(jié)制或中止事務(wù)傳

29、輸;幀錯(cuò)誤檢測(cè)與支持;多通道配置支持:x1、x2、x4和x8;每通道2.5Gbps帶寬;自動(dòng)初始化、恢復(fù)與通道維護(hù),對(duì)用戶應(yīng)用 是透明的;利用Xilinx Core Generator配置相關(guān)信息后自動(dòng)生成。詳細(xì)設(shè)計(jì):Xilinx提供的Endpoint Block Plus for PCIe解決方案適用于 Virtex-5、Virtex6及Virtex7 FPGA架構(gòu),是一種可靠的帶寬可縮放串行互聯(lián)架 構(gòu)模塊。具頂層功能模塊包括系統(tǒng) (SYS)接口、PCI-Express(PCI-EXP)接口、 配置(CFG)接口以及事務(wù)(TRN)接口。核使用數(shù)據(jù)包在各模塊之間交換信息。數(shù)據(jù)包在事務(wù)層和數(shù)據(jù)鏈

30、路層形 成,用來承載從發(fā)送元件到接收元件的信息。傳輸?shù)臄?shù)據(jù)包中包括在各層處 理數(shù)據(jù)包所需的必要信息。在接收端,各層接收模塊處理輸入的數(shù)據(jù)包,剝 離相關(guān)信息,然后將數(shù)據(jù)包傳遞到下一層。于是,接收到的數(shù)據(jù)包從物理層 表現(xiàn)為轉(zhuǎn)換為數(shù)據(jù)鏈路層表現(xiàn)形式和事務(wù)層表現(xiàn)形式。Endpoint Block Plus for PCIe包括頂層信號(hào)接口,這些接口按接收方向、 發(fā)送方向和雙向共用信號(hào)分組。下面主要對(duì)各個(gè)接口進(jìn)行分別介紹。系統(tǒng)(SYS)接口:系統(tǒng)(SYS)接口信號(hào)由系統(tǒng)復(fù)位信號(hào)sys_reset_n和系統(tǒng)時(shí)鐘信號(hào)sys_clk組成,如下表所示。功能信號(hào)名稱方向描述系統(tǒng)復(fù)位sys_reset_n輸入異步低有效信號(hào)系統(tǒng)時(shí)鐘sys_clk輸入?yún)⒖紩r(shí)鐘:100MHz或250MHz系統(tǒng)復(fù)位信號(hào)是異步低有效輸入信號(hào)。sys_reset_n的有效置位致使整個(gè) 核硬復(fù)位。系統(tǒng)輸入時(shí)鐘的頻率必須是100 MHz或250 MHz,在COREGenerator 的 GUI 中選定。PCI Express 接口:PCI Express (PCI_EXP)接口信號(hào)由按多個(gè)通道組織的收

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論