基于FPGA的PCI總線接口硬件調(diào)試策略
0 引言
在FPGA的設(shè)計(jì)流程中,完成設(shè)計(jì)輸入以及成功綜合、布局布線,只能說(shuō)明設(shè)計(jì)符合一定的語(yǔ)法規(guī)范,而并不能保證其滿足設(shè)計(jì)人員對(duì)功能的要求,因而需要通過(guò)仿真對(duì)設(shè)計(jì)進(jìn)行驗(yàn)證。仿真驗(yàn)證的目的是為了發(fā)現(xiàn)設(shè)計(jì)的問(wèn)題,而一旦發(fā)現(xiàn),就需要千方百計(jì)地通過(guò)調(diào)試找到問(wèn)題所在,這其實(shí)也是設(shè)計(jì)中比較困難的。
隨著FPGA可編程器件容量的不斷增大和設(shè)計(jì)復(fù)雜度的日益提高,功能調(diào)試已經(jīng)成為一個(gè)很繁重的任務(wù)。為了使設(shè)計(jì)的產(chǎn)品盡快投入市場(chǎng),設(shè)計(jì)人員需要一種簡(jiǎn)易有效的測(cè)試工具,以盡可能縮短測(cè)試時(shí)間,提高測(cè)試效率。傳統(tǒng)的邏輯分析儀在測(cè)試復(fù)雜的FPGA設(shè)計(jì)時(shí),會(huì)面臨以下幾點(diǎn)問(wèn)題:
1) I/O引腳有限。設(shè)計(jì)中器件的選擇依據(jù)設(shè)計(jì)規(guī)模而定,通常所選器件的I/O引腳數(shù)目和設(shè)計(jì)的需求是恰好匹配的;
2) I/O引腳難以引出。設(shè)計(jì)者為減小電路板的面積,大都采用細(xì)間距工藝技術(shù),這在不改變PCB板布線的情況下引出I/O引腳非常困難;
3)外接邏輯分析器有可能改變FPGA設(shè)計(jì)中信號(hào)的原來(lái)狀態(tài),因此,很難保證待測(cè)信號(hào)的正確性;
4)傳統(tǒng)的邏輯分析器價(jià)格昂貴,會(huì)增加設(shè)計(jì)成本。
1 Signal Tap硬件調(diào)試原理
為了盡快使設(shè)計(jì)的產(chǎn)品投入市場(chǎng),就要盡可能地縮短設(shè)計(jì)驗(yàn)證所耗費(fèi)的時(shí)間。為此,Altera公司推出了一種新的調(diào)試工具。這種型號(hào)的Sig-nal TapⅡ的邏輯分析器具有無(wú)干擾、便于升級(jí)、使用簡(jiǎn)單、價(jià)格低廉等優(yōu)點(diǎn),可滿足FPGA開發(fā)中硬件調(diào)試的要求。
Signal TapⅡ邏輯分析器集成到QuartusⅡ設(shè)計(jì)軟件中,能夠捕獲和顯示可編程單芯片系統(tǒng)(SOPC)設(shè)計(jì)中的實(shí)時(shí)信號(hào)狀態(tài),這樣,開發(fā)者就可以在整個(gè)設(shè)計(jì)過(guò)程中以系統(tǒng)級(jí)速度觀察硬件和軟件的交互。Signal TapⅡ可支持多達(dá)1024個(gè)通道,采樣深度高達(dá)128KB,每個(gè)分析器均有1O級(jí)觸發(fā)輸入/輸出,從而增加了采樣的精度??梢哉f(shuō),Signal TapⅡ?yàn)樵O(shè)計(jì)者提供了業(yè)界領(lǐng)先的SOPC設(shè)計(jì)的實(shí)時(shí)可視性,它能夠大大減少驗(yàn)證過(guò)程中所花費(fèi)的時(shí)間。目前,SignalTapⅡ邏輯分析器可以支持的器件系列包括:APEXT II,APEX20KE,APEX20KC,APEX20K,Cyclone,Ex-calibur,Mercury,Stratix GX,Stratix等。Signal TapⅡ?qū)⑦壿嫹治瞿K嵌入到FPGA中,圖1所示是Signal TapⅡ的嵌入式邏輯分析器結(jié)構(gòu)框圖。圖中,邏輯分析模塊可對(duì)待測(cè)節(jié)點(diǎn)數(shù)據(jù)進(jìn)行捕獲。并將數(shù)據(jù)通過(guò)JTAG接口從FPGA傳送到QuartusⅡ中顯示。使用Signal TapⅡ無(wú)需額外的邏輯分析設(shè)備,只需將一根JTAG接口的下載電纜連接到要調(diào)試的FPGA器件,Signal TapⅡ在對(duì)FPGA的引腳和內(nèi)部的連線信號(hào)進(jìn)行捕獲后,便可將數(shù)據(jù)存儲(chǔ)在FPGA的RAM塊中。因此,需要為采樣信號(hào)、觸發(fā)信號(hào)和待測(cè)信號(hào)預(yù)留一定數(shù)目的RAM塊。
2 使用Signal Tap的一般流程
圖2所示是Signal TapⅡ的調(diào)試流程示意圖。使用Signal TapⅡ的一般流程,是在完成設(shè)計(jì)并編譯工程后,建立Signal TapⅡ(.stp)文件并加入工程,然后再配置STP文件,并將其編譯并下載設(shè)計(jì)到FPGA中,接著在QuartusⅡ軟件中顯示被測(cè)信號(hào)的波形,并在測(cè)試完畢后將該邏輯分析器從項(xiàng)目中刪除。
其Signal TapⅡ文件設(shè)置和采集信號(hào)數(shù)據(jù)的基本流程如下:
(1)建立新的Signal TapⅡ文件;
(2)設(shè)置采樣時(shí)鐘。采樣時(shí)鐘決定了顯示信號(hào)波形的分辨率,它的頻率要大于被測(cè)信號(hào)的最高頻率,否則將無(wú)法正確反映被測(cè)信號(hào)波形的變化。Signal TapⅡ通常在時(shí)鐘上升沿將被測(cè)信號(hào)存儲(chǔ)到緩存。
(3)設(shè)置被測(cè)信號(hào)??梢允褂肗ode Finder中的SignalI TapⅡ?yàn)V波器查找所有預(yù)綜合和布局布線后的Signal TapⅡ節(jié)點(diǎn),添加要觀察的信號(hào)。邏輯分析器不可測(cè)試的信號(hào)包括:邏輯單元的進(jìn)位信號(hào)、PLL的時(shí)鐘輸出、JTAG引腳信號(hào)、LVDS(低壓差分)信號(hào)等。
(4)配置采樣深度,確定RAM的大小。Signal TapⅡ所能顯示的被測(cè)信號(hào)波形的時(shí)間長(zhǎng)度為TX,其計(jì)算公式如下:
TX=NTS
式中,N為緩存中存儲(chǔ)的采樣點(diǎn)數(shù),TS為采樣時(shí)鐘的周期;
(5)設(shè)置buffer acquisition mode。buffer ac-quisition mode包括循環(huán)采樣存儲(chǔ)和連續(xù)存儲(chǔ)兩種模式。循環(huán)采樣存儲(chǔ)也就是分段存儲(chǔ),即將整個(gè)緩存分成多個(gè)片段(segment),每當(dāng)觸發(fā)條件滿足時(shí)就捕獲一段數(shù)據(jù)。該功能可以去掉無(wú)關(guān)的數(shù)據(jù),使采樣緩存的使用更加靈活;
(6)觸發(fā)級(jí)別。Signal TapⅡ支持多觸發(fā)級(jí)的觸發(fā)方式,最多可支持1O級(jí)觸發(fā),設(shè)計(jì)人員可以只查看最重要的數(shù)據(jù)。
(7)觸發(fā)條件。Signal TapⅡ邏輯分析器可支持多個(gè)觸發(fā)位置以及外部觸發(fā)事件,可以使用Signal TapⅡ邏輯分析器窗口中的Signal Configu-ration面板來(lái)設(shè)置觸發(fā)器選項(xiàng),也可以設(shè)定復(fù)雜的觸發(fā)條件來(lái)捕獲相應(yīng)的數(shù)據(jù),以協(xié)助調(diào)試設(shè)計(jì)。當(dāng)觸發(fā)條件滿足時(shí),可在Signal Tap時(shí)鐘的上升沿采樣被測(cè)信號(hào)。
3 使用Signal Tap調(diào)試PCI主設(shè)備控制器
Signal TapⅡ邏輯分析器的使用大大加快了PCI主設(shè)備控制器的調(diào)試進(jìn)程,例如在調(diào)試DMA傳輸后的中斷產(chǎn)生時(shí),由于軟件檢測(cè)不到中斷而導(dǎo)致DMA傳輸結(jié)束后,可能會(huì)使計(jì)算機(jī)死機(jī)而不能正常結(jié)束(完整的流程是:DMA傳輸結(jié)束,產(chǎn)生中斷,并在軟件檢測(cè)到中斷后進(jìn)人中斷服務(wù)程序來(lái)處理中斷,然后清除)。
對(duì)中斷產(chǎn)生的條件進(jìn)行檢查時(shí),32位的DMA計(jì)數(shù)器必須為0,而且DMA傳輸結(jié)束標(biāo)志信號(hào)必須有效,針對(duì)這一條件,使用普通的示波器和邏輯分析器根本無(wú)法跟蹤到,但是使用SignalTapⅡ邏輯分析器的高級(jí)設(shè)置,就可將這兩個(gè)條件作為觸發(fā)條件,從而檢測(cè)到中斷是否產(chǎn)生,其高級(jí)設(shè)置如圖3所示。
4 結(jié)束語(yǔ)
與傳統(tǒng)邏輯分析器相比,使用Signal TapⅡ邏輯分析器有以下優(yōu)勢(shì):
(1)不占用額外的I/O資源。若使用傳統(tǒng)的邏輯分析儀觀察信號(hào)波形,則必須將待觀察信號(hào)引到空閑管腳,這樣,在器件管腳緊張的時(shí)候,Signal TapⅡ邏輯分析器的優(yōu)點(diǎn)就可以得到充分地體現(xiàn)。
(2)不占用PCB空間。若使用傳統(tǒng)邏輯分析儀,則需要從FPGA器件上引出測(cè)試管腳到PCB上,這樣會(huì)增加PCB走線難度;
(3)不破壞信號(hào)的完整性;
(4)傳統(tǒng)邏輯分析儀價(jià)格昂貴,而將Signal TapⅡ邏輯分析器集成在QuartusⅡ軟件中,無(wú)需另外付費(fèi);
因此,可以預(yù)見(jiàn),Signal TapⅡ邏輯分析器將受到越來(lái)越多的設(shè)計(jì)工程師的青睞。