在設計基于FPGA的電子系統(tǒng)時,一般需要用示波器、邏輯分析儀等外部測試設備進行輸入輸出信號的測試,借助測試探頭把信號送到測試設備上進行觀察分析。當然,前提是需要保留足夠多的引腳,以便能選擇信號來驅動I/O進行測試。但是外部的測試設備在測試FPGA系統(tǒng)時,常會遇到這樣的情況:FPGA的I/O引腳數(shù)量不夠豐富,PCB布線和封裝丁藝復雜導致I/O引腳引出困難,外部測試探頭有影響FPGA信號時序和完整性的可能。
如果能在FPGA內部嵌入具有外部測試設備功能的邏輯測試模塊,那么以上問題就可以一一解決。SignalTapII就是這樣一種嵌入式邏輯分析器(embedded logicanaIyzer),簡稱為SignalTapII ELA。它是QuartusII軟件中集成的內部邏輯分析軟件,使用它可以實時觀察內部信號波形,方便用戶查找設計的缺陷。
1 SignalTapII ELA的原理
SignalTapII ELA是Quartus軟件中第二代系統(tǒng)級調試工具。將SignalTapII ELA代碼和系統(tǒng)邏輯代碼組合交由QuartusII編譯、綜合、布局布線,生成sol文件中內含SignalTapII ELA,把sof文件配置到FPGA內。FPGA運行時,一旦滿足待測信號的觸發(fā)條件,SignalTapII ELA就立即啟動,按照采樣時鐘的頻率捕獲待測信號數(shù)據(jù)并暫存于FPGA片內的RAM中,采樣數(shù)據(jù)不斷刷新片內存儲器,最后通過JTAG口將捕獲的信號從片內RAM傳至Quartus II實時顯示。SignalTapII ELA的原理流程如圖1所示。
實際工程中,加入SignalTapII ELA不會影響系統(tǒng)原有的邏輯功能。
2 SignalTapII ELA的配置
SignalTapII ELA基本配置過程如下:
①添加采樣時鐘。SignalTaplI ELA在時鐘的上升沿進行采樣,可以使用設計系統(tǒng)中的任何信號作為采樣時鐘,根據(jù)Altera公司的建議最好使用同步系統(tǒng)全局時鐘作為采樣時鐘。但是在實際應用中,多數(shù)使用獨立的采樣時鐘,這樣能采樣到被測系統(tǒng)中的慢速信號,或與工作時鐘相關的信號。當然采樣時鐘的頻率要大于被測信號的最高頻率,否則被測信號波形會有較大誤差。
②定義采樣深度。采樣深度決定了待測信號采樣存儲的大小,而可以采樣的深度是根據(jù)設計中剩余的RAM塊容量和待測信號的個數(shù)決定的。若待測信號較多,則在同樣I/O Bank個數(shù)情況下采樣深度較淺。待測信號個數(shù)的增減和采樣深度的深淺會直接改變RAM塊的占用情況,采樣深度的范圍為0~128 KB。
③定義RAM類型。設置占用片內何種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ù)設置。SignalTapII ELA支持多觸發(fā)級的觸發(fā)方式,最多可支持10級觸發(fā),幫助濾除不相干的數(shù)據(jù),更快地找到需要的數(shù)據(jù)。若有多級觸發(fā)條件,首先分析第一級觸發(fā)條件。若第一級為TRUE,則轉到分析第二級是否滿足,直到分析完所有觸發(fā)條件均為TRUE才最終觸發(fā)時鐘采樣數(shù)據(jù)。
⑥觸發(fā)條件。設定約束性的觸發(fā)條件。可以允許單個信號的獨立觸發(fā)條件Basic,直接采用單個外部或設計模塊內部的信號;也可以允許多個節(jié)點信號的組合觸發(fā)條件Advanced,構成觸發(fā)函數(shù)的觸發(fā)條件方程。例如:使能信號ENA與4位輸出信號Q相與后觸發(fā),觸發(fā)條件=ENA&(Q=15)。