FPGA系統(tǒng)內(nèi)部邏輯在線測試技術(shù)研究
1 引言
本文引用地址:http://butianyuan.cn/article/88005.htm隨著FPGA向低成本、低功耗、高性能方向發(fā)展,其I/O引腳大多采用微間距TOFP或BGA封裝工藝,因而使引出多種內(nèi)部信號的I/O引腳以及FPGA的驗證工作變得非常困難,同時FPGA的驗證和調(diào)試耗時占總開發(fā)時間的50%以上。
在驗證和調(diào)試系統(tǒng)時,傳統(tǒng)上是把信號線引到I/O引腳,然后采用示波器、邏輯分析儀或總線分析儀進(jìn)行測量和分析。由于這些設(shè)備相當(dāng)昂貴,而且調(diào)試時又需要許多連線夾,因此一不小心就會燒壞器件或電路板。
伴隨著EDA 工具的快速發(fā)展,Altera公司在QuartusⅡ軟件中開發(fā)出一種嵌入式調(diào)試工具SignalTapⅡ,它是基于邏輯分析核的嵌入式邏輯分析儀,不僅具備普通邏輯分析儀的觸發(fā)、數(shù)據(jù)采集和存儲功能,還可訪問FPGA器件內(nèi)部的所有信號和節(jié)點,除Altera公司開發(fā)的這種嵌入式邏輯分析儀外,其他主流FPGA公司,如 Xilinx、Lattice、Actel等也有相似技術(shù),其中最具代表性的是Xilinx公司的ChipScope Pro工具,它是專為Xilinx FPGA系統(tǒng)內(nèi)的凋試而設(shè)計的。Chip-Scope Pro核心集成在FPGA中,支持所有XiLinx FPGA系列,并通過標(biāo)準(zhǔn)的JTAG端口提供實時的調(diào)試和驗證能力。
2 SignalTap II原理
SignalTap II嵌入邏輯分析儀是專門用于Quartus II設(shè)計軟件中的第二代系統(tǒng)級調(diào)試工具。對于嵌人式邏輯分析儀內(nèi)核(知識產(chǎn)權(quán)IP核)插入FPGA的設(shè)計,同時提供觸發(fā)功能和存儲功能。在FPGA運行過程中,滿足觸發(fā)條件時SignalTaPⅡ?qū)硬蓸硬Υ鏀?shù)據(jù),采樣數(shù)據(jù)不斷刷新片內(nèi)存儲器內(nèi)容。SignalTapⅡ通過下載線ByteBlasterⅡ,將捕獲到的信號數(shù)據(jù)從器件的RAM資源載至QuartusⅡ開發(fā)環(huán)境,以實時顯示波形。這樣就能使開發(fā)者在整個設(shè)計過程中,以系統(tǒng)級的速度來觀察硬件和軟件的交互作用。
目前,SignalTapⅡ邏輯分析儀可以支持的器件系列有:Cyclone、CycloneⅡ、Cyclone Ⅲ、APEXTⅡ、APEX 20KE、APEX20KC、APEX20K、Excalibur、Mercury、Stratix GX、Stratix、StratixⅡ、Stratix Ⅲ等。
3 SignalTapⅡ使用方法
使用SignalTapⅡ的一般程序是:設(shè)計人員在完成設(shè)計并編譯工程后,建立SignalTap Ⅱ(.stp)文件,并加入工程、配置STP文件、編譯并下載沒計到FPGA、在Quartus Ⅱ軟件中顯示被測信號的仿真波形。
設(shè)置SignalTapⅡ文件的基本流程如下:
(1)設(shè)置采樣時鐘。決定了顯示信號波形的分辨率,根據(jù)Altera公司的建議最好使用全局時鐘,而非門控時鐘,否則會使采樣時鐘處于不能準(zhǔn)確反映設(shè)計數(shù)據(jù)的狀態(tài)。
(2)配置采樣深度,確定RAM的大小。用戶可指定要觀測數(shù)據(jù)的采樣點數(shù),即數(shù)據(jù)存儲深度。
(3)設(shè)置buffer acquisition mode。包括循環(huán)采樣存儲和連續(xù)采樣存儲兩種模式。圖1給出STP參數(shù)配置過程。
(4)觸發(fā)級別。SignalTapⅡ是支持多觸發(fā)級的觸發(fā)方式,最多可支持10級觸發(fā)。在多級觸發(fā)中,SignalTapⅡ首先對第一級觸發(fā)模式進(jìn)行觸發(fā);當(dāng)?shù)谝患売|發(fā)表達(dá)式滿足條件,測試結(jié)果為TRUE時,SignalTapⅡ?qū)Φ诙売|發(fā)表達(dá)式進(jìn)行測試;依次類推,直到所有觸發(fā)級均完成測試,并且最后一級觸發(fā)條件為TRUE時,SignalTapⅡ開始捕捉信號狀態(tài)。
(5)觸發(fā)條件??梢栽O(shè)定復(fù)雜的觸發(fā)條件用以捕獲相應(yīng)的數(shù)據(jù),以協(xié)助調(diào)試設(shè)計。當(dāng)滿足觸發(fā)條件時,在SignalTapⅡ時鐘的上升沿采樣被測信號。
(6)設(shè)置被測信號。在SignalTapⅡ邏輯分析儀窗口,雙擊鼠標(biāo)左鍵,彈出的Node Finder對話框,在filter中選擇要加人STP文件的節(jié)點或總線。圖2所示給出了待測信號及觸發(fā)設(shè)置。
完成STP設(shè)置后,加載SAM對象文件(.sof),在Device列表中選擇目標(biāo)器件,點擊Program Device圖標(biāo)進(jìn)行器件編程,點擊Run Analysis進(jìn)行采集、分析數(shù)據(jù),如圖3所示。
4 實例分析
現(xiàn)以FT245BM型USB與EP2C8 0208C8N型FPGA間的簡單通信為實例,具體說明如何采用SignalTapⅡ驗證FPGA的設(shè)計。其頂層設(shè)計文件如圖4所示。
FT245BM是FTDI(Future Technology Devices IntlLtd)公司的一種快速USB通信接口。它無需編寫片內(nèi)固件程序。FTDI公司提供D2XX官方驅(qū)動程序,使用D2XX驅(qū)動程序能獲得更好的數(shù)據(jù)傳輸性能,且傳輸速率最大可達(dá)1 MB/s。
FT245BM的主要功能是在內(nèi)部硬件邏輯的作用下實現(xiàn)USB串行數(shù)據(jù)格式與并行數(shù)據(jù)格式的雙向轉(zhuǎn)換。PC機通過USB接口與FT245BM進(jìn)行數(shù)據(jù)交換,F(xiàn)T245BM通過并行方式與下位微控制器通信。利用單芯片實現(xiàn)USB與并行FIFO緩沖區(qū)的雙向數(shù)據(jù)傳輸;通過簡單的四線握手信號與FPGA等邏輯器件接口;FT245BM通過8位并行數(shù)據(jù)口D[0,7]和4位讀寫狀態(tài)/控制口RXF#、TXE#、RD#、WR實現(xiàn)與EP2C8交換數(shù)據(jù),而PC機與FT245BM間通過UISB總線傳輸數(shù)據(jù)??蛇x的外部EEPROM用于存儲USB設(shè)備的特定信息,通過EECS、EESK、EEDATA來完成數(shù)據(jù)的寫入和讀出。
在調(diào)試中,按照上述SignalTapⅡ的使用步驟,在編譯后的工程中添加STP文件,并對文件進(jìn)行設(shè)置。首先設(shè)置采樣時鐘gclk,系統(tǒng)時鐘采用32.768 MHz;然后添加采樣深度的設(shè)置,設(shè)為2 K;最后在STP文件中將Buffer AcquisitionMode分別設(shè)為連續(xù)存儲和循環(huán)采樣存儲兩種模式進(jìn)行驗證。連續(xù)存儲方式記錄采樣操作的連續(xù)過程,而在循環(huán)采樣存儲方式下SignalTapⅡ記錄多次采樣時刻數(shù)據(jù)。
當(dāng)外部實驗開發(fā)系統(tǒng)連接好后,進(jìn)行編譯下載。單擊SignalTapⅡ面板上的Autorun Analysis按鈕,啟動SignalTapⅡ進(jìn)行采樣和分析,此時就能從SignalTaDⅡ數(shù)據(jù)窗通過JTAG口觀察到來自實驗板上FPGA內(nèi)部的實時信號,該實例的輸出信號如圖5所示。
實際中將遇到許多競爭處理和不完善的地方,然而由于使用了SignalTapⅡ工具,所以能直觀地看到內(nèi)部的邏輯狀況,這大大減少了開發(fā)周期,并能順利地進(jìn)行調(diào)試。
5 結(jié)語
Quartus中的SignalTapⅡ工具成功克服了傳統(tǒng)邏輯分析儀的缺點,提供了一個測試器件的很好途徑,還具有實時可視性,大大減少了調(diào)試、驗證過程花費的時間,加快了設(shè)計周期。通過對CycloneⅡ系列EP2C8Q208C8進(jìn)行實驗,證實該測試手段大大提高了系統(tǒng)的調(diào)試能力,效果很好。但需注意的是,它是一塊自主邏輯,需要占據(jù)FPGA資源。比如RAM,LE等,資源消耗量與需采集的數(shù)據(jù)量成正比。因此不能無限制地采集信號,一般采集信號的深度不大。再者,由于時鐘的限制,無法看到有毛刺的現(xiàn)象,實際應(yīng)用中也存在一定的限制。另外,SignalTapⅡ工作在JTAG方式,調(diào)試完成后,需將SignalTapⅡ移除設(shè)計,以免浪費資源。
評論