[推薦]嵌入式邏輯分析儀在FPGA測試中的應(yīng)用(圖)
邏輯分析儀自1973年問世以來,在短短幾十年的時間內(nèi)得到了迅速的發(fā)展。傳統(tǒng)邏輯分析儀利用芯片的引腳對信號采樣,并送到顯示部分對系統(tǒng)進行分析,但對于無引腳的封裝類型,傳統(tǒng)邏輯分析儀很難有效的監(jiān)測系統(tǒng)內(nèi)部信號。而在FPGA測試中,嵌入式邏輯分析儀(ELA)的出現(xiàn)解決了內(nèi)部信號的在線調(diào)試問題。ELA綜合了嵌入式技術(shù)和邏輯分析儀技術(shù),將邏輯分析IP核嵌入到FPGA中,在不引出內(nèi)部信號的情況下即可方便的對系統(tǒng)進行調(diào)試。常用的嵌入式邏輯分析儀有Altera公司的SignalTap II、Xilinx公司的ChipScope Pro以及Lattice公司的ispTRACY等。本文以Altera公司的SignalTap II為例,對嵌入式邏輯分析儀的工作原理及在線調(diào)試進行探討。
ELA的工作原理及特點
嵌入式邏輯分析儀的組成框圖如圖1所示,主要分為硬件部分和軟件部分。硬件部分由待測設(shè)計(DUT)、嵌入到FPGA中的ELA IP核、RAM存儲單元以及JTAG接口組成;軟件部分由用戶設(shè)計軟件和集成在其中的ELA在線調(diào)試軟件組成。ELA的工作原理為:設(shè)置ELA在線調(diào)試軟件中需要監(jiān)測的信號、觸發(fā)邏輯、采樣深度和時鐘信號等各項參數(shù);把設(shè)置好的ELA文件與用戶設(shè)計編譯綜合后一起下載到FPGA中;運行ELA,如果滿足觸發(fā)條件,ELA就在時鐘的上升沿對被測信號采樣,并儲存在RAM存儲單元中;當采樣完數(shù)據(jù),即可通過JTAG接口將數(shù)據(jù)上傳到SignalTap II中進行在線調(diào)試。
圖1 嵌入式邏輯分析儀的組成框圖
嵌入式邏輯分析儀能夠方便地對設(shè)計進行在線調(diào)試,及時發(fā)現(xiàn)系統(tǒng)內(nèi)部所存在的問題,無須對設(shè)計文件進行任何修改就可以得到內(nèi)部節(jié)點或者I/O引腳的狀態(tài)。例如,SignalTap II 支持多達1024個通道,采樣深度高達128Kb,時鐘支持超過200MHz,每個分析儀均有10級觸發(fā)輸入/輸出,從而增加了采樣的精度。
ELA在FPGA測試中的應(yīng)用
嵌入式邏輯分析儀在FPGA的測試中應(yīng)用極為廣泛,能夠?qū)ο到y(tǒng)實時監(jiān)測。本文以交通燈控制器的設(shè)計為例,對SignalTap II應(yīng)用于FPGA的在線調(diào)試進行了探討。設(shè)計中所使用的FPGA芯片為Altera公司Cyclone系列中的EP1C12Q240C8,它支持SignalTap II,有12 060個邏輯單元,存儲位的大小為239 616,能夠較好的支持各種復(fù)雜的設(shè)計。
ELA的應(yīng)用設(shè)計流程如下。
1 Stp文件的創(chuàng)建
在交通燈控制器的設(shè)計完成并編譯綜合后,即可創(chuàng)建一個SignalTap II文件(stp文件)。通常有兩種方式來建立stp文件,一是直接建立stp文件,并利用SignalTap II Editor配置邏輯分析儀的各項參數(shù);二是利用MegaWizard Plug-in Manager生成和配置stp文件。相比于第二種方式,第一種更為簡單,只需在File中選擇New,單擊Other Files,選擇SignalTap II File即可,如圖2所示。
圖2 Stp文件的載入
2 ELA的設(shè)置
將stp文件加入到設(shè)計中后,就可以對其進行設(shè)置,流程如下。
①添加被測信號。通過Node Finder中的SignalTap II Filter查找設(shè)計中所有預(yù)綜合和布局布線后的信號,選擇需要觀察的信號,在本設(shè)計中,可以全部選定。
②設(shè)置采樣時鐘。在設(shè)置采樣時鐘時,可以使用其中任何一個信號作為采樣時鐘,但不能用布局布線后的信號,為獲得更準確的采樣數(shù)據(jù),采樣時鐘應(yīng)選擇全局時鐘。
③確定采樣深度。SignalTap II的采樣深度最大可達128Kb。在選擇采樣深度時,必須考慮到FPGA的內(nèi)存大小,此處選擇1Kb的采樣深度。
④設(shè)置緩沖獲得模式。通過設(shè)置緩沖獲得模式,用戶可以指定在SignalTap II觸發(fā)前和觸發(fā)后所捕獲的數(shù)據(jù)量,緩沖獲得模式主要有環(huán)形模式和分段緩沖模式。在此選擇環(huán)形模式的預(yù)觸發(fā)位置。
⑤設(shè)置觸發(fā)條件。SignalTap II支持基本觸發(fā)和高級觸發(fā)的功能。在基本觸發(fā)中,它支持10級觸發(fā)級數(shù),對于每一級觸發(fā),可以根據(jù)設(shè)計的需要設(shè)置不同的觸發(fā)電平。
本設(shè)計對SignalTap II的設(shè)置如圖3所示,其中采樣深度為1Kb,緩沖獲得模式選擇環(huán)形模式的預(yù)觸發(fā)位置,觸發(fā)條件為基本觸發(fā);此外,采樣時鐘選擇為全局時鐘。這些設(shè)置能夠準確地對本設(shè)計進行在線調(diào)試,有效地監(jiān)測內(nèi)部信號。
圖3 SignalTap II設(shè)置窗口
3 設(shè)計下載
當設(shè)置完stp文件并編譯綜合后,軟件將ELA IP嵌入設(shè)計里面,同設(shè)計一起下載到FPGA中。在器件列表中,邏輯分析儀會自動探測編程硬件,如果在保存設(shè)計前已經(jīng)選好了FPGA中所使用的芯片,就會自動給出已經(jīng)選好的器件,若沒有選擇,則需要在器件列表中選擇。當器件連接成功,在SOF(SRAM Object File)管理器中選擇需要下載的SOF文件,單擊下載按鈕即可將設(shè)計下載到FPGA中,如圖4所示。
圖4 設(shè)計下載窗口
4 在線調(diào)試
在線調(diào)試即利用JTAG接口將數(shù)據(jù)上傳到調(diào)試軟件中,根據(jù)實時運行的結(jié)果來對設(shè)計進行調(diào)試。本設(shè)計所實現(xiàn)的功能是在時鐘信號的控制下,根據(jù)當前的狀態(tài)決定下一個時鐘周期的輸出,即紅燈、綠燈和黃燈的開啟。在綠燈開啟時,紅燈和黃燈關(guān)閉,而在紅燈開啟時,綠燈及黃燈關(guān)閉。兩組紅、綠、黃燈為輸出信號,8個狀態(tài)為內(nèi)部信號。
圖5 SignalTap II數(shù)據(jù)窗的實時監(jiān)測信號
設(shè)計中所得到的波形如圖5所示,從圖5中可以看出,對于第一組燈,在state.st3時,黃燈開啟,綠燈及紅燈都關(guān)閉,一個時鐘周期后,跳轉(zhuǎn)到state.st4,黃燈關(guān)閉,同時紅燈開啟;四個時鐘周期后,跳轉(zhuǎn)到state.st0,紅燈關(guān)閉,同時綠燈開啟,黃燈繼續(xù)關(guān)閉;三個時鐘周期后,再次跳轉(zhuǎn)到state.st3,黃燈開啟,綠燈關(guān)閉;一個時鐘周期后,跳轉(zhuǎn)到state.st4,黃燈關(guān)閉,紅燈開啟。對于第二組,其紅綠燈的轉(zhuǎn)換也是一樣的不斷循環(huán),這樣就實現(xiàn)了紅綠黃燈的交替變化。
在線調(diào)試得到的波形與交通燈控制器設(shè)計中所要求的功能完全吻合,在上述調(diào)試過程中,嵌入式邏輯分析儀對內(nèi)部的8個狀態(tài)能夠很好的監(jiān)測,保證了設(shè)計的正確。
在調(diào)試過程中,用戶可以很方便的開始或暫停ELA,對內(nèi)部信號進行分析。如果需要修改設(shè)置,如采樣深度或觸發(fā)條件,只需停止運行ELA,完成修改后重新編譯綜合即可,縮短了調(diào)試時間。