專利名稱:一種FPGA用基于PCIe的集成化邏輯分析模塊的制作方法
技術領域:
本發(fā)明涉及FPGA開發(fā)領域,尤其是基于PCIe鏈路的高效鏈式DMA控制采集數(shù)據(jù)的設計與實現(xiàn),具體地說是一種FPGA用基于PCIe的集成化邏輯分析模塊。
背景技術:
目前,隨著現(xiàn)代處理器技術的發(fā)展,在互連領域中,使用高速差分總線替代并行總線是大勢所趨。與單端并行信號相比,高速差分信號可以使用更高的時鐘頻率,從而使用更少的信號線,完成之前需要許多單端并行數(shù)據(jù)信號才能達到的總線帶寬。PCI總線使用并行總線結構,在同一條總線上的所有外部設備共享總線帶寬,而 PCIe總線使用了高速差分總線,并采用端到端的連接方式,因此在每一條PCIe鏈路中只能連接兩個設備。這使得PCIe與PCI總線采用的拓撲結構有所不同。PCIe總線除了在連接方式上與PCI總線不同之外,還使用了一些在網(wǎng)絡通信中使用的技術,如支持多種數(shù)據(jù)路由方式,基于多通路的數(shù)據(jù)傳遞方式,和基于報文的數(shù)據(jù)傳送方式,并充分考慮了在數(shù)據(jù)傳送中出現(xiàn)服務質量QoS (Quality of Service)問題。PCIe總線采用了串行連接方式,并使用數(shù)據(jù)包(Packet)進行數(shù)據(jù)傳輸,采用這種結構有效去除了在PCI總線中存在的一些邊帶信號,如INTx和PME#等信號。在PCIe總線中,數(shù)據(jù)報文在接收和發(fā)送過程中,需要通過多個層次,包括事務層、數(shù)據(jù)鏈路層和物理層。 PCIe總線的層次結構如圖所示。PCIe總線的層次組成結構與網(wǎng)絡中的層次結構有類似之處,但是PCIe總線的各個層次都是使用硬件邏輯實現(xiàn)的。在PCIe體系結構中,數(shù)據(jù)報文首先在設備的核心層 (Device Core)中產生,然后再經(jīng)過該設備的事務層(Transaction Layer)、數(shù)據(jù)鏈路層 (Data Link Layer)和物理層(Physical Layer),最終發(fā)送出去。而接收端的數(shù)據(jù)也需要通過物理層、數(shù)據(jù)鏈路和事務層,并最終到達Device Core0在FPGA (現(xiàn)場可編程門陣列)芯片設計工作中,由于設計存在錯誤或缺陷,設計人員需要通過設計實體中邏輯信號變化情況來分析系統(tǒng)中錯誤源頭。這時,設計人員可以利用邏輯分析儀來分析系統(tǒng),也可以利用Altera公司的SignalTap工具或Xilinx公司的 ChipScope工具抓取波形來分析系統(tǒng)。然而利用邏輯分析儀設計的話需要把信號拉到空閑引腳上,這樣非常不方便。如果利用SignalTap或Chipkope的話,雖然能很方便地采集所需信號,但是這個二者又局限于芯片內部的BlockRAM的剩余量限制,往往大型設計中 BlockRAM沒有足夠的余量來供SignalTap或Chipkope使用,這樣就使得工具采集的信號量非常少,在很多情況下不能滿足需要。
發(fā)明內容
本發(fā)明的目的是針對上述FPGA (現(xiàn)場可編程門陣列)芯片設計中存在的問題,提出一種FPGA用基于PCIe的集成化邏輯分析模塊。
本發(fā)明的技術方案是
一種FPGA用基于PCIe的集成化邏輯分析模塊,其特征是它包括觸發(fā)控制器、DMA控制器、報文發(fā)送引擎、報文接收引擎和PCIe收發(fā)控制器,所述的PCIe收發(fā)控制器作為邏輯分析模塊的控制信號輸入端連接邏輯分析模塊所在產品系統(tǒng)的CPU,PCIe收發(fā)控制器的控制信號輸出端連接報文接收引擎的控制信號輸入端,報文接收引擎的一控制信號輸出端連接 DMA控制器的一對應控制信號輸入端,另一控制信號輸出端連接觸發(fā)控制器的控制信號輸入端,觸發(fā)控制器作為邏輯分析模塊的邏輯數(shù)據(jù)輸入端采集設計實體模塊的觸發(fā)條件的邏輯數(shù)據(jù),觸發(fā)控制器的控制信號輸出端連接DMA控制器的對應控制信號輸入端,DMA控制器的控制信號端與報文發(fā)送引擎雙向連接,報文發(fā)送引擎的邏輯數(shù)據(jù)輸入端連接設計實體模塊的對應邏輯數(shù)據(jù)輸出端,報文發(fā)送引擎的邏輯數(shù)據(jù)輸出通過PCIe收發(fā)控制器輸出至邏輯分析模塊所在產品系統(tǒng)的CPU。本發(fā)明的設計實體模塊指燒結到FPGA芯片里的邏輯代碼,能實現(xiàn)產品所要求的功能,所述的集成化邏輯分析模塊實現(xiàn)的功能是采集設計實體模塊中相應的信號以實現(xiàn)的。根復合體是PCIe鏈路的交換開關,用于掛載PCIe設備即用于掛載具有PCIe收發(fā)控制器的FPGA,交換PCIe鏈路報文,是PCIe鏈路的重要組成部分。本發(fā)明的觸發(fā)控制器用于判斷報文接收引擎發(fā)送過來的觸發(fā)條件,直到它從設計實體模塊采集的邏輯信號滿足判斷條件,輸出控制信號至DMA控制器進行數(shù)據(jù)采集操作, DMA控制器產生當前發(fā)送報文所需的目的地址和報文長度字段,給報文發(fā)送引擎,在報文發(fā)送引擎完成一次DMA傳輸后,將結束信息送給DMA控制器。本發(fā)明的DMA控制器包括RAM,通過PCIe初始化配置將這塊RAM映射到CPU的內存空間里,CPU通過對這片空間寫配置命令字,即可實現(xiàn)CPU對本系統(tǒng)實施命令控制;所述的PCIe初始化配置是指CPU初始化PCIe收發(fā)控制器,分配總線號,將DMA控制器里的RAM 映射到系統(tǒng)存儲器空間里,從而使FPGA成為CPU的PCIe總線上可以訪問的掛接設備。本發(fā)明的報文接收引擎用于接收CPU下發(fā)的指令報文,對指令報文解析并將相應命令控制字輸入到DMA控制器中。本發(fā)明的PCIe收發(fā)控制器用于接收來自CPU的命令報文,將事務層報文轉發(fā)給報文接收引擎;同時,將來自報文發(fā)送引擎的事務層報文,發(fā)送到CPU。本發(fā)明的分析模塊包括以下工作步驟首先,PCIe收發(fā)控制器接收來自根復合體的PCIe鏈路報文,轉發(fā)該PCIe鏈路報文到報文接收引擎;報文接收引擎解開報文,提取 PCIe鏈路報文里的觸發(fā)開關、觸發(fā)條件、觸發(fā)值和觸發(fā)無關項,以及采集數(shù)據(jù)存儲的起始地址和存儲深度信息;將上述信息送到DMA控制器;報文接收引擎將觸發(fā)開關,觸發(fā)條件,觸發(fā)值和觸發(fā)無關項信息送到觸發(fā)控制器;根據(jù)實體模塊中采集的數(shù)據(jù)來判斷,當觸發(fā)點到來時,觸發(fā)控制器發(fā)出采集使能信號至DMA控制器;DMA控制器產生當前發(fā)送報文所需的目的地址和報文長度字段,給報文發(fā)送引擎;在報文發(fā)送引擎中,根據(jù)采集的實體中的數(shù)據(jù)產生PCIe鏈路報文,并送給PCIe收發(fā)控制器;PCIe收發(fā)控制器通過根復合體將大量采集數(shù)據(jù)傳送至邏輯分析模塊所在產品系統(tǒng)的內存中。一種FPGA,包括FPGA用基于PCIe的集成化邏輯分析模塊和設計實體模塊,設計實體模塊的邏輯數(shù)據(jù)輸出端與邏輯分析模塊的數(shù)據(jù)信號輸入端相連,邏輯分析模塊的數(shù)據(jù)信號輸出端與根復合體的數(shù)據(jù)信號輸入端相連,邏輯分析模塊的控制信號輸入端通過PCIe控制鏈路與根復合體的控制信號輸出端相連,根復合體與CPU的控制信號端雙向連接。本發(fā)明的根復合體是PCIe鏈路的交換開關,用于掛載PCIe設備即用于掛載具有 PCIe收發(fā)控制器的FPGA,交換PCIe鏈路報文,輸出邏輯數(shù)據(jù)至內存中存儲。本發(fā)明的有益效果
本發(fā)明不僅可以實現(xiàn)SignalTap或Chipkope的所有功能,而且還可以解決大型設計中BlockRAM余量不夠用的情況,因為此時數(shù)據(jù)不是存在芯片內部而是導出到CPU側的內存中,只要內存允許便可以采集足夠量的數(shù)據(jù)。另外,由于觸發(fā)模塊是寄存器級代碼,那么可以通過修改這里的代碼來實現(xiàn)更為復雜的觸發(fā)設置,遠比SignalTap或Chipkope靈活得多。在一般大型設計中,CPU、FPGA共存于一個系統(tǒng)是很常見的,而PCIe鏈路又是很多高速系統(tǒng)常用通信通道,所以本方案的適用場合廣泛。本模塊能根據(jù)設定好的觸發(fā)條件對邏輯信號進行采集,再將采集的數(shù)據(jù)通過PCIe 鏈路上傳給CPU,CPU再進行下一步工作。這些觸發(fā)條件的設置方式是測試人員利用CPU通過PCIe鏈路將命令下達本模塊,完成觸發(fā)條件設置。本發(fā)明的邏輯分析模塊支持觸發(fā)采數(shù),支持不同時鐘域數(shù)據(jù)總線采集,支持任意寬度的總線數(shù)據(jù)采集、但是采集數(shù)據(jù)帶寬不能超過線路帶寬,支持采集期間數(shù)據(jù)丟失及線路阻塞告警,支持觸發(fā)時間點之前一小段數(shù)據(jù)采集,通過配置命令,決定輸入端口的部分比特位作為采集對象,滿足PCIe傳輸協(xié)議要求。
圖1是本發(fā)明的結構示意圖。圖2是本發(fā)明的使用示意圖。圖3是本發(fā)明的工作流程圖。
具體實施例方式下面結合附圖和實施例對本發(fā)明作進一步的說明。如圖1所示,一種FPGA用基于PCIe的集成化邏輯分析模塊,它包括觸發(fā)控制器、 DMA控制器、報文發(fā)送引擎、報文接收引擎和PCIe收發(fā)控制器,所述的PCIe收發(fā)控制器作為邏輯分析模塊的控制信號輸入端連接邏輯分析模塊所在產品系統(tǒng)的CPU,PCIe收發(fā)控制器的控制信號輸出端連接報文接收引擎的控制信號輸入端,報文接收引擎的一控制信號輸出端連接DMA控制器的一對應控制信號輸入端,另一控制信號輸出端連接觸發(fā)控制器的控制信號輸入端,觸發(fā)控制器作為邏輯分析模塊的邏輯數(shù)據(jù)輸入端采集設計實體模塊的觸發(fā)條件的邏輯數(shù)據(jù),觸發(fā)控制器的控制信號輸出端連接DMA控制器的對應控制信號輸入端,DMA 控制器的控制信號端與報文發(fā)送引擎雙向連接,報文發(fā)送引擎的邏輯數(shù)據(jù)輸入端連接設計實體模塊的對應邏輯數(shù)據(jù)輸出端,報文發(fā)送引擎的邏輯數(shù)據(jù)輸出通過PCIe收發(fā)控制器輸出至邏輯分析模塊所在產品系統(tǒng)的CPU。本發(fā)明的設計實體模塊指燒結到FPGA芯片里的邏輯代碼,能實現(xiàn)產品所要求的功能,所述的集成化邏輯分析模塊實現(xiàn)的功能是采集設計實體模塊中相應的信號以實現(xiàn)的。根復合體是PCIe鏈路的交換開關,用于掛載PCIe設備即用于掛載具有PCIe收發(fā)控制器的FPGA,交換PCIe鏈路報文,是PCIe鏈路的重要組成部分。本發(fā)明的觸發(fā)控制器用于判斷報文接收引擎發(fā)送過來的觸發(fā)條件,直到它從設計實體模塊采集的邏輯信號滿足判斷條件,輸出控制信號至DMA控制器進行數(shù)據(jù)采集操作, DMA控制器產生當前發(fā)送報文所需的目的地址和報文長度字段,給報文發(fā)送引擎,在報文發(fā)送引擎完成一次DMA傳輸后,將結束信息送給DMA控制器。本發(fā)明的DMA控制器包括RAM,通過PCIe初始化配置將這塊RAM映射到CPU的內存空間里,CPU通過對這片空間寫配置命令字,即可實現(xiàn)CPU對本系統(tǒng)實施命令控制;所述的PCIe初始化配置是指CPU初始化PCIe收發(fā)控制器,分配總線號,將DMA控制器里的RAM 映射到系統(tǒng)存儲器空間里,從而使FPGA成為CPU的PCIe總線上可以訪問的掛接設備。本發(fā)明的報文接收引擎用于接收CPU下發(fā)的指令報文,對指令報文解析并將相應命令控制字輸入到DMA控制器中。 本發(fā)明的PCIe收發(fā)控制器用于接收來自CPU的命令報文,將事務層報文轉發(fā)給報文接收引擎;同時,將來自報文發(fā)送引擎的事務層報文,發(fā)送到CPU。本發(fā)明的分析模塊包括以下工作步驟首先,PCIe收發(fā)控制器接收來自根復合體的PCIe鏈路報文,轉發(fā)該PCIe鏈路報文到報文接收引擎;報文接收引擎解開報文,提取 PCIe鏈路報文里的觸發(fā)開關、觸發(fā)條件、觸發(fā)值和觸發(fā)無關項,以及采集數(shù)據(jù)存儲的起始地址和存儲深度信息;將上述信息送到DMA控制器;報文接收引擎將觸發(fā)開關,觸發(fā)條件,觸發(fā)值和觸發(fā)無關項信息送到觸發(fā)控制器;當觸發(fā)點到來時,觸發(fā)控制器發(fā)出采集使能信號至DMA控制器;DMA控制器產生當前發(fā)送報文所需的目的地址和報文長度字段,給報文發(fā)送引擎;在報文發(fā)送引擎中,根據(jù)采集的實體中的數(shù)據(jù)產生PCIe鏈路報文,并送給PCIe收發(fā)控制器;PCIe收發(fā)控制器通過根復合體將大量采集數(shù)據(jù)傳送至CPU。一種FPGA,包括FPGA用基于PCIe的集成化邏輯分析模塊和設計實體模塊,設計實體模塊的邏輯數(shù)據(jù)輸出端與邏輯分析模塊的數(shù)據(jù)信號輸入端相連,邏輯分析模塊的數(shù)據(jù)信號輸出端與根復合體的數(shù)據(jù)信號輸入端相連,邏輯分析模塊的控制信號輸入端通過PCIe 控制鏈路與根復合體的控制信號輸出端相連,根復合體與CPU的控制信號端雙向連接。本發(fā)明的根復合體是PCIe鏈路的交換開關,用于掛載具有PCIe收發(fā)控制器的 FPGA,交換PCIe鏈路報文,輸出邏輯數(shù)據(jù)至內存中存儲。具體實施時
1、觸發(fā)控制器詳細設計
功能介紹根據(jù)用戶設定的觸發(fā)條件,在滿足觸發(fā)的條件下指示數(shù)據(jù)采集。配置命令決定輸入端口部分比特最為采集對象。具體實現(xiàn)觸發(fā)控制器功能就是判斷觸發(fā)條件,直到采集信號滿足判斷條件后輸出結果通知DMA控制器進行數(shù)據(jù)采集操作。觸發(fā)控制器下有這么幾個寄存器R_collect_start,R_compare_on_off,R_ compare_condition , R_compare_value, R_value_irrelvant。R_collect_start用來控制采集操作的開始和停止。R_compare_on_off用來控制是否進行觸發(fā)操作,即有效時進行觸發(fā)判斷,否則就不需要觸發(fā)判斷直接通知下級模塊進行采集數(shù)據(jù)。R_compare_condition、R_compare_value用來表示進行何種觸發(fā)判斷的條件及相應的值,比如要進行一次判斷采集信號等于某個值時觸發(fā)采集,那么前者表達相等條件,后者表達相等的值。R_value_irrelvant表示無關項,就是對R_compare_value中某些比特位不關心, 不參與判斷過程。邏輯過程當 R_collect_start 及 R_compare_on_off 有效后,根據(jù) R_compare_ condition的值決定采用哪種邏輯判斷方式(等于、不等于、小于、大于之類),并根據(jù)R_ value_irrelvant的值濾除無關比特位,然后將采樣信號的值和R_compare_value做比較, 當滿足邏輯判斷條件時,則觸發(fā)下級模塊采集信號。R_c0mpare_0n_0fT無效時,則表示不需要觸發(fā)操作,只要R_C0lleCt_Start有效后即可進行采集工作。2、DMA控制器模塊詳細設計
功能介紹負責寄存數(shù)據(jù)傳輸中各種狀態(tài)控制字。具體實現(xiàn)這里是一塊片內RAM,通過PCIe配置將這塊RAM映射到CPU的內存空間里,CPU通過對這片空間寫配置命令字,即可實現(xiàn)CPU對本系統(tǒng)實施命令控制。這塊RAM中命令控制字格式如下表所示
:--:,-14 I fI- ·- I 、'
fe-^iiViii”"
|i. "Λ, -、.. Χ:
I~...................................................................................................................................ilil'i.................................................................................................................................................
包含了啟??刂萍拇嫫?,觸發(fā)開關寄存器,觸發(fā)條件,觸發(fā)的值和觸發(fā)無關項寄存器, 以及采集數(shù)據(jù)存儲的起始地址寄存器和存儲深度寄存器。存儲起始地址寄存器保存內存地址,即DMA傳輸?shù)哪繕说刂?。當?shù)刂芳拇嫫魍瓿蓪懖僮?,DMA狀態(tài)機將被啟動。存儲深度寄存器其初始值為一次DMA傳輸數(shù)據(jù)的大小,PCIe每傳送一個數(shù)據(jù),字節(jié)寄存器的值就減1,減到O則DMA停止傳輸。上述這種方式為非鏈式DMA的主模式寫操作,一次DMA傳輸只有一組控制字表。 CPU首先寫控制狀態(tài)寄存器、中斷屏蔽寄存器、字節(jié)寄存器、地址寄存器,而后狀態(tài)機啟動; 當外部FIFO數(shù)據(jù)準備好,數(shù)據(jù)先傳到數(shù)據(jù)通道RAM,再以DMA方式寫到目標地址;判斷DMA 是否完成或出錯,寫中斷狀態(tài)寄存器,發(fā)出中斷信號;主機收到中斷后,讀中斷狀態(tài)寄存器確定中斷類型,如果發(fā)現(xiàn)DMA完成,則處理數(shù)據(jù),如果發(fā)現(xiàn)DMA出錯,則丟棄數(shù)據(jù)。3、報文發(fā)送引擎模塊詳細設計
功能介紹應答CPU端的配置寄存器讀請求;DMA方式傳輸采集數(shù)據(jù)和發(fā)送中斷消息喚醒CPU,處理采集數(shù)據(jù)。具體實現(xiàn)根據(jù)PCIe協(xié)議中事務層報文結構進行封包工作。4、報文接收引擎模塊詳細設計
功能介紹負責接收CPU下發(fā)的指令報文、負責對指令報文解析并將相應命令控制字寫到DMA控制器模塊中。具體實現(xiàn)根據(jù)PCIe協(xié)議中事務層報文結構進行解包工作。5、PCIe收發(fā)控制器詳細設計
功能介紹可采用Xilinx提供的PCIe硬核;用戶接口的本地鏈路成幀接口 ;包化接口,有幀起始(sof)和幀結束(eof)的包標記信號;傳輸和接收方向可進行節(jié)制或中止事務傳輸;幀錯誤檢測與支持;多通道配置支持xl、x2、X4和x8 ;每通道2. 5Gbps帶寬;自動初始化、恢復與通道維護,對用戶應用是透明的;利用Xilinx Core Generator配置相關信息后自動生成。詳細設計XiIinx提供的Endpoint Block Plus for PCIe解決方案適用于 Virtex-5、Virtex6及Virtex7 FPGA架構,是一種可靠的帶寬可縮放串行互聯(lián)架構模塊。其頂層功能模塊包括系統(tǒng)(SYS)接口、PCI-ExpresS(PCI-EXP)接口、配置(CFG)接口以及事務(TRN)接口。核使用數(shù)據(jù)包在各模塊之間交換信息。數(shù)據(jù)包在事務層和數(shù)據(jù)鏈路層形成,用來承載從發(fā)送元件到接收元件的信息。傳輸?shù)臄?shù)據(jù)包中包括在各層處理數(shù)據(jù)包所需的必要信息。在接收端,各層接收模塊處理輸入的數(shù)據(jù)包,剝離相關信息,然后將數(shù)據(jù)包傳遞到下一層。于是,接收到的數(shù)據(jù)包從物理層表現(xiàn)為轉換為數(shù)據(jù)鏈路層表現(xiàn)形式和事務層表現(xiàn)形式。Endpoint Block Plus for PCIe包括頂層信號接口,這些接口按接收方向、發(fā)送方向和雙向共用信號分組。下面主要對各個接口進行分別介紹。系統(tǒng)(SYS)接口
系統(tǒng)(SY 接口信號由系統(tǒng)復位信號sys_reset_n和系統(tǒng)時鐘信號sys_Clk組成, 如下表所示,__ _
權利要求
1.一種FPGA用基于PCIe的集成化邏輯分析模塊,其特征是它包括觸發(fā)控制器、DMA控制器、報文發(fā)送引擎、報文接收引擎和PCIe收發(fā)控制器,所述的PCIe收發(fā)控制器作為邏輯分析模塊的控制信號輸入端連接邏輯分析模塊所在產品系統(tǒng)的CPU,PCIe收發(fā)控制器的控制信號輸出端連接報文接收引擎的控制信號輸入端,報文接收引擎的一控制信號輸出端連接DMA控制器的一對應控制信號輸入端,另一控制信號輸出端連接觸發(fā)控制器的控制信號輸入端,觸發(fā)控制器作為邏輯分析模塊的邏輯數(shù)據(jù)輸入端采集設計實體模塊的觸發(fā)條件的邏輯數(shù)據(jù),觸發(fā)控制器的控制信號輸出端連接DMA控制器的對應控制信號輸入端,DMA控制器的控制信號端與報文發(fā)送引擎雙向連接,報文發(fā)送引擎的邏輯數(shù)據(jù)輸入端連接設計實體模塊的對應邏輯數(shù)據(jù)輸出端,報文發(fā)送引擎的邏輯數(shù)據(jù)輸出通過PCIe收發(fā)控制器輸出至邏輯分析模塊所在產品系統(tǒng)的CPU。
2.根據(jù)權利要求1所述的FPGA用基于PCIe的集成化邏輯分析模塊,其特征是所述的設計實體模塊指燒結到FPGA芯片里的邏輯代碼,能實現(xiàn)產品所要求的功能,所述的集成化邏輯分析模塊實現(xiàn)的功能是采集設計實體模塊中相應的信號以實現(xiàn)的。
3.根據(jù)權利要求1所述的FPGA用基于PCIe的集成化邏輯分析模塊,其特征是所述的觸發(fā)控制器用于判斷報文接收引擎發(fā)送過來的觸發(fā)條件,直到它從設計實體模塊采集的邏輯信號滿足判斷條件,輸出控制信號至DMA控制器進行數(shù)據(jù)采集操作,DMA控制器產生當前發(fā)送報文所需的目的地址和報文長度字段,給報文發(fā)送引擎,在報文發(fā)送引擎完成一次DMA 傳輸后,將結束信息送給DMA控制器。
4.根據(jù)權利要求1所述的FPGA用基于PCIe的集成化邏輯分析模塊,其特征是所述的 DMA控制器包括RAM,通過PCIe初始化配置將這塊RAM映射到CPU的內存空間里,CPU通過對這片空間寫配置命令字,即可實現(xiàn)CPU對本系統(tǒng)實施命令控制;所述的PCIe初始化配置是指CPU初始化PCIe收發(fā)控制器,分配總線號,將DMA控制器里的RAM映射到系統(tǒng)存儲器空間里,從而使FPGA成為CPU的PCIe總線上可以訪問的掛接設備。
5.根據(jù)權利要求1所述的FPGA用基于PCIe的集成化邏輯分析模塊,其特征是所述的報文接收引擎用于接收CPU下發(fā)的指令報文,對指令報文解析并將相應命令控制字輸入到 DMA控制器中。
6.根據(jù)權利要求1所述的FPGA用基于PCIe的集成化邏輯分析模塊,其特征是所述的 PCIe收發(fā)控制器用于接收來自CPU的命令報文,將事務層報文轉發(fā)給報文接收引擎;同時, 將來自報文發(fā)送引擎的事務層報文,發(fā)送到CPU。
7.根據(jù)權利要求1所述的FPGA用基于PCIe的集成化邏輯分析模塊,其特征是該分析模塊包括以下工作步驟首先,PCIe收發(fā)控制器接收來自根復合體的PCIe鏈路報文,轉發(fā)該PCIe鏈路報文到報文接收引擎;報文接收引擎解開報文,提取PCIe鏈路報文里的觸發(fā)開關、觸發(fā)條件、觸發(fā)值和觸發(fā)無關項,以及采集數(shù)據(jù)存儲的起始地址和存儲深度信息;將上述信息送到DMA控制器;報文接收引擎將觸發(fā)開關,觸發(fā)條件,觸發(fā)值和觸發(fā)無關項信息送到觸發(fā)控制器;根據(jù)實體模塊中采集的數(shù)據(jù)來判斷,當觸發(fā)點到來時,觸發(fā)控制器發(fā)出采集使能信號至DMA控制器;DMA控制器產生當前發(fā)送報文所需的目的地址和報文長度字段,給報文發(fā)送引擎;在報文發(fā)送引擎中,根據(jù)采集的實體中的數(shù)據(jù)產生PCIe鏈路報文,并送給 PCIe收發(fā)控制器;PCIe收發(fā)控制器通過根復合體將大量采集數(shù)據(jù)傳送至邏輯分析模塊所在產品系統(tǒng)的內存中。
8.—種FPGA,包括根據(jù)權利要求1所述的FPGA用基于PCIe的集成化邏輯分析模塊和設計實體模塊,設計實體模塊的邏輯數(shù)據(jù)輸出端與邏輯分析模塊的數(shù)據(jù)信號輸入端相連, 邏輯分析模塊的數(shù)據(jù)信號輸出端與根復合體的數(shù)據(jù)信號輸入端相連,邏輯分析模塊的控制信號輸入端通過PCIe控制鏈路與根復合體的控制信號輸出端相連,根復合體與CPU的控制信號端雙向連接。
9.根據(jù)權利要求8所述的FPGA,其特征是所述的根復合體是PCIe鏈路的交換開關,用于掛載PCIe設備,交換PCIe鏈路報文,輸出邏輯數(shù)據(jù)至內存中存儲。
全文摘要
一種FPGA用基于PCIe的集成化邏輯分析模塊,它包括觸發(fā)控制器、DMA控制器、報文發(fā)送引擎、報文接收引擎和PCIe收發(fā)控制器。本發(fā)明不僅可以實現(xiàn)SignalTap或ChipScope的所有功能,還可以解決大型設計中BlockRAM余量不夠用的情況,因為此時數(shù)據(jù)不是存在芯片內部而是導出到CPU側的內存中,只要內存允許便可以采集足夠量的數(shù)據(jù)。另外,由于觸發(fā)模塊是寄存器級代碼,那么可以通過修改這里的代碼來實現(xiàn)更為復雜的觸發(fā)設置,遠比SignalTap或ChipScope靈活得多。在大型設計中,CPU、FPGA共存于一個系統(tǒng)很常見,而PCIe鏈路又是很多高速系統(tǒng)常用通道,因此本方案的適用場合廣泛。
文檔編號G06F17/50GK102495920SQ20111037155
公開日2012年6月13日 申請日期2011年11月21日 優(yōu)先權日2011年11月21日
發(fā)明者陳庚 申請人:南京中興特種軟件有限責任公司