劉政,蔣志勇
(桂林航天工業(yè)高等??茖W(xué)校電子工程系,桂林541004)
在設(shè)計基于FPGA 的電子系統(tǒng)時,一般需要用示波器、邏輯分析儀等外部測試設(shè)備進(jìn)行輸入輸出信號的測試,借助測試探頭把信號送到測試設(shè)備上進(jìn)行觀察分析。當(dāng)然,前提是需要保留足夠多的引腳,以便能選擇信號來驅(qū)動I/O進(jìn)行測試。但是外部的測試設(shè)備在測試FPGA系統(tǒng)時,常會遇到這樣的情況:FPGA 的I/O 引腳數(shù)量不夠豐富,PCB 布線和封裝工藝復(fù)雜導(dǎo)致I/O 引腳引出困難,外部測試探頭有影響FPGA 信號時序和完整性的可能[1-2]。
如果能在FPGA 內(nèi)部嵌入具有外部測試設(shè)備功能的邏輯測試模塊,那么以上問題就可以一一解決。Signal-TapII 就是這樣一種嵌入式邏輯分析器(embedded logic analy zer),簡稱為SignalTapII ELA。它是QuartusII 軟件中集成的內(nèi)部邏輯分析軟件,使用它可以實時觀察內(nèi)部信號波形,方便用戶查找設(shè)計的缺陷。
SignalTapII ELA 是Quartus 軟件中第二代系統(tǒng)級調(diào)試工具。將SignalTapII ELA 代碼和系統(tǒng)邏輯代碼組合交由QuartusII 編譯、綜合、布局布線,生成sof 文件中內(nèi)含SignalTapII ELA,把sof 文件配置到FPGA 內(nèi)。FPGA 運行時,一旦滿足待測信號的觸發(fā)條件,SignalTapII ELA 就立即啟動,按照采樣時鐘的頻率捕獲待測信號數(shù)據(jù)并暫存于FPGA 片內(nèi)的RAM 中,采樣數(shù)據(jù)不斷刷新片內(nèi)存儲器,最后通過JTAG 口將捕獲的信號從片內(nèi)RAM 傳至Quartus II實時顯示。SignalTapII ELA 的原理流程如圖1所示。
圖1 SignalTapII ELA 原理流程
實際工程中,加入SignalTapII ELA 不會影響系統(tǒng)原有的邏輯功能。
SignalTapII ELA 基本配置過程[3]如下:
①添加采樣時鐘。SignalTapII ELA 在時鐘的上升沿進(jìn)行采樣,可以使用設(shè)計系統(tǒng)中的任何信號作為采樣時鐘,根據(jù)Altera 公司的建議最好使用同步系統(tǒng)全局時鐘作為采樣時鐘。但是在實際應(yīng)用中,多數(shù)使用獨立的采樣時鐘,這樣能采樣到被測系統(tǒng)中的慢速信號,或與工作時鐘相關(guān)的信號。當(dāng)然采樣時鐘的頻率要大于被測信號的最高頻率,否則被測信號波形會有較大誤差。
②定義采樣深度。采樣深度決定了待測信號采樣存儲的大小,而可以采樣的深度是根據(jù)設(shè)計中剩余的RAM塊容量和待測信號的個數(shù)決定的。若待測信號較多,則在同樣I/O Bank 個數(shù)情況下采樣深度較淺。待測信號個數(shù)的增減和采樣深度的深淺會直接改變RAM 塊的占用情況,采樣深度的范圍為0 ~128 KB。
③定義RAM 類型。設(shè)置占用片內(nèi)何種RAM 塊資源,隨著采樣深度的改變,RAM 塊的數(shù)據(jù)線和地址線寬度可以分割成多種組合。例如:采樣深度是1 KB,RAM數(shù)據(jù)線、地址線可以分割成2×512 或4×256 等多種組合。依此類推。
④定義觸發(fā)位置。Pre trigger position 表示采樣到的數(shù)據(jù)12%為觸發(fā)前,88%為觸發(fā)后;Center trigger position表示采樣的數(shù)據(jù)處于觸發(fā)前后各一半;Post trigger position 表示采樣到的數(shù)據(jù)88%為觸發(fā)前,12%為觸發(fā)后。
⑤觸發(fā)條件級數(shù)設(shè)置。SignalTapII ELA 支持多觸發(fā)級的觸發(fā)方式,最多可支持10 級觸發(fā),幫助濾除不相干的數(shù)據(jù),更快地找到需要的數(shù)據(jù)。若有多級觸發(fā)條件,首先分析第一級觸發(fā)條件。若第一級為TRUE,則轉(zhuǎn)到分析第二級是否滿足,直到分析完所有觸發(fā)條件均為TRUE才最終觸發(fā)時鐘采樣數(shù)據(jù)。
⑥觸發(fā)條件。設(shè)定約束性的觸發(fā)條件??梢栽试S單個信號的獨立觸發(fā)條件Basic,直接采用單個外部或設(shè)計模塊內(nèi)部的信號;也可以允許多個節(jié)點信號的組合觸發(fā)條件Advanced,構(gòu)成觸發(fā)函數(shù)的觸發(fā)條件方程。例如:使能信號ENA 與4 位輸出信號Q 相與后觸發(fā),觸發(fā)條件=ENA&(Q=15)。
⑦添加待測信號。可以使用Node Finder 中的SignalTapII ELA Filter 查找所有預(yù)綜合和布局布線后的SignalTapII ELA 節(jié)點,添加待測的中間信號和端口信號。SignalTapII ELA 不可測試的信號包括:邏輯單元的進(jìn)位信號、PLL 的時鐘輸出、JTAG 引腳信號、LVDS(低壓差分)信號等。
完成STP 配置,將sof 文件配置到FPGA ,運行SignalTapII ELA ,當(dāng)待測信號條件滿足時,數(shù)據(jù)捕獲開始,捕獲的數(shù)據(jù)以波形的形式表示出來。Sig nalTapII ELA 也可將捕獲數(shù)據(jù)通過多余的I/O 引腳輸出,以供外部的測試設(shè)備使用。
本文以一個基于DDR SDRAM 高速數(shù)據(jù)采集IP 核的設(shè)計為例[4],具體說明如何用SignalTapII ELA 來進(jìn)行FPGA 在線調(diào)試。使用Altera 公司的器件CycloneII 系列FPGA EP2C5F256C6,該器件支持SignalTap II ELA。
當(dāng)前需要測試來自3 個模塊的信號:外部存儲器DDR SDRAM 與FPGA 的接口信號、FPGA 內(nèi)部輸入輸出PIO 寄存器信號、FPGA 內(nèi)部RAM 接口信號。
先關(guān)閉增量編譯,設(shè)置采樣時鐘為外部獨立時鐘CLK=50 MHz;采樣深度為256;RAM 類型為M4K ,數(shù)據(jù)寬度分割為256×1;觸發(fā)位置為Pre trigger position;觸發(fā)信號為DDR SDRAM 讀操作信號;觸發(fā)條件為Basic 單信號觸發(fā);觸發(fā)條件級數(shù)為1 級。從圖2 可知,該觸發(fā)信號設(shè)置為上升沿觸發(fā)有效。重新編譯后將包含SignalTapII ELA 的sof 配置文件下載到FPGA 中,圖3 即是從Signal-Tap II ELA 數(shù)據(jù)窗觀察到的來自FPGA 內(nèi)部實時信號的捕獲波形。
圖2 觸發(fā)條件設(shè)置
圖3 捕獲的信號波形
如果設(shè)計文件中添加SignalTapII ELA 后編譯時間顯著增加,可以考慮使用Start Analysis &Elaboration代替Start Analysis &Sy nthesis,這樣可以顯著縮短編譯時間。
加入SignalTapII ELA 后,如果發(fā)現(xiàn)一些用于調(diào)試的邏輯(比如調(diào)試用的計數(shù)器)被優(yōu)化掉,不能出現(xiàn)在波形中,可以嘗試這樣解決:在HDL 設(shè)計文件中對要調(diào)試的信號添加保持或保護(hù)屬性[4]。
保持屬性主要用于信號和網(wǎng)絡(luò)節(jié)點。代碼如下(以VHDL 為例):
保護(hù)屬性主要用于寄存器。代碼如下(以VHDL 為例):
通過改變待測信號的觸發(fā)方式和條件,可以捕獲到其他相類似的信號波形,這里就不一一列舉。
需要注意的是,SignalTapII ELA 本身是一塊獨立邏輯資源,需要占據(jù)FPGA 資源。比如RAM、LE 等,資源消耗量與需采集的數(shù)據(jù)量成正比,采集存儲的數(shù)據(jù)深度由設(shè)計中的內(nèi)部RAM 剩余大小決定。在調(diào)試完成后,需將SignalTapII ELA 從系統(tǒng)邏輯設(shè)計中移除,以免浪費資源和影響設(shè)計的性能。
通過對FPGA 內(nèi)部信號的捕獲測試,可以實現(xiàn)對系統(tǒng)設(shè)計缺陷的實時分析和修正。與外部測試設(shè)備相比,可以總結(jié)出SignalTapII ELA 的幾點優(yōu)越性:不占用額外的I/O引腳,不占用PCB 上的空間,不破壞信號的時序和完整性,不需額外費用;從多方面證實,該測試手段可以減少調(diào)試時間,縮短設(shè)計周期。
[1]李文江,趙增輝.用SignalTap II 邏輯分析儀調(diào)試FPGA[J].無線電工程,2007,37(1):48-50.
[2]孟令軍,李娜.基于FPGA 的內(nèi)部邏輯在線測試技術(shù)研究[J].電測與儀表,2008,45(11):34-37.
[3]王成,吳繼華.Altera FPGA/CPLD 設(shè)計(基礎(chǔ)篇)[M].北京:人民郵電出版社,2005.
[4]Altera Corporation.Using SignalTap II Embedded Logic Analyzers in SOPC Builder System s[OL].(2007-11)[2009-11-02].http://www.altera.com/literature/an/an323.pdf.
單片機與嵌入式系統(tǒng)應(yīng)用2010年4期