SignalTapII ELA的FPGA在線調(diào)試技術(shù)
完成STP配置,將sof文件配置到FPGA,運(yùn)行SignalTapII ELA,當(dāng)待測(cè)信號(hào)條件滿足時(shí),數(shù)據(jù)捕獲開始,捕獲的數(shù)據(jù)以波形的形式表示出來。SignalTapII ELA也可將捕獲數(shù)據(jù)通過多余的I/O引腳輸出,以供外部的測(cè)試設(shè)備使用。
3 實(shí)例分析
本文以一個(gè)基于DDR SDRAM高速數(shù)據(jù)采集IP核的設(shè)計(jì)為例,具體說明如何用SignalTapII ELA來進(jìn)行FPGA在線調(diào)試。使用Altera公司的器件CyclonelI系列FPGA EP2C5F256C6,該器件支持SignalTap II ELA。
當(dāng)前需要測(cè)試來自3個(gè)模塊的信號(hào):外部存儲(chǔ)器DDR SDRAM與FPGA的接口信號(hào)、FPGA內(nèi)部輸入輸出PIO寄存器信號(hào)、FPGA內(nèi)部RAM接口信號(hào)。
先關(guān)閉增量編譯,設(shè)置采樣時(shí)鐘為外部獨(dú)立時(shí)鐘CLK=50 MHz;采樣深度為256;RAM類型為M4K,數(shù)據(jù)寬度分割為256×1;觸發(fā)位置為Pre trigger position;觸發(fā)信號(hào)為DDR SDRAM讀操作信號(hào);觸發(fā)條件為Basic單信號(hào)觸發(fā);觸發(fā)條件級(jí)數(shù)為1級(jí)。從圖2可知,該觸發(fā)信號(hào)設(shè)置為上升沿觸發(fā)有效。重新編譯后將包含SignalTapIIELA的sof配置文件下載到FPGA中,圖3即是從SignalTap II ELA數(shù)據(jù)窗觀察到的來自FPGA內(nèi)部實(shí)時(shí)信號(hào)的捕獲波形。
如果設(shè)計(jì)文件中添加SignalTapII ELA后編譯時(shí)間顯著增加,可以考慮使用Start AnalysisElaboration代替Start AnalysisSynthesis,這樣可以顯著縮短編譯時(shí)間。
加入SignalTapII ELA后,如果發(fā)現(xiàn)一些用于調(diào)試的邏輯(比如調(diào)試用的計(jì)數(shù)器)被優(yōu)化掉,不能出現(xiàn)在波形中,可以嘗試這樣解決:在HDL設(shè)計(jì)文件中對(duì)要調(diào)試的信號(hào)添加保持或保護(hù)屬性。
保持屬性主要用于信號(hào)和網(wǎng)絡(luò)節(jié)點(diǎn)。代碼如下(以VHDL為例):
signal my_signal:bit;
attribute syn_keep:boolean;
attribute syn_keep of my_signal signal is true;
保護(hù)屬性主要用于寄存器。代碼如下(以VHDL為例):
signal my_reg:std_logic;
attribute preserve:boolean;
attribute preserve of my_signal:signal is true;
通過改變待測(cè)信號(hào)的觸發(fā)方式和條件,可以捕獲到其他相類似的信號(hào)波形,這里就不一一列舉。
需要注意的是,SignalTapII ELA本身是一塊獨(dú)立邏輯資源,需要占據(jù)FPGA資源。比如RAM、LE等,資源消耗量與需采集的數(shù)據(jù)量成正比,采集存儲(chǔ)的數(shù)據(jù)深度由設(shè)計(jì)中的內(nèi)部RAM剩余大小決定。在調(diào)試完成后,需將SignalTapII ELA從系統(tǒng)邏輯設(shè)計(jì)中移除,以免浪費(fèi)資源和影響設(shè)計(jì)的性能。
結(jié) 語
通過對(duì)FPGA內(nèi)部信號(hào)的捕獲測(cè)試,可以實(shí)現(xiàn)對(duì)系統(tǒng)設(shè)計(jì)缺陷的實(shí)時(shí)分析和修正。與外部測(cè)試設(shè)備相比,可以總結(jié)出SignalTapII ELA的幾點(diǎn)優(yōu)越性:不占用額外的I/O引腳,不占用PCB上的空間,不破壞信號(hào)的時(shí)序和完整性,不需額外費(fèi)用;從多方面證實(shí),該測(cè)試手段可以減少調(diào)試時(shí)間,縮短設(shè)計(jì)周期。
評(píng)論