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