嵌入式邏輯分析儀在FPGA設(shè)計(jì)中的應(yīng)用
1 引言
目前在設(shè)計(jì)和驗(yàn)證超高密度FPGA時(shí)一般采用邏輯分析儀、示波器和總線分析儀,通過(guò)測(cè)試頭和連接器把信號(hào)送到儀器上,設(shè)計(jì)者必須提供足夠的I/O引腳進(jìn)行全方位的檢測(cè),以及配置足夠的引腳。加入額外的邏輯,以便能選擇信號(hào)來(lái)驅(qū)動(dòng)I/O引腳進(jìn)行測(cè)試。這種方法雖能減少測(cè)試時(shí)所需配置的I/O引腳數(shù)量,但步驟繁瑣。此外,隨著FPGA復(fù)雜度的增加,I/O引腳大都采用細(xì)間距工藝技術(shù),使得引出I/O引腳變得很困難,本文所介紹的方法是在FPGA設(shè)計(jì)中插入邏輯分析核,他具有普通邏輯分析儀的功能,包括觸發(fā)、數(shù)據(jù)采集和存儲(chǔ)等。利用邏輯分析核,用戶可以訪問(wèn)FPGA器件內(nèi)部所有信號(hào)和節(jié)點(diǎn),來(lái)自內(nèi)部邏輯電路的信號(hào)可以通過(guò)FPGA中的高速互連轉(zhuǎn)移到內(nèi)部存儲(chǔ)器。這些信號(hào)以系統(tǒng)時(shí)鐘速率傳送,延遲很小。
Altera公司的Quartus Ⅱ軟件中的SignalTap Ⅱ就是這樣一種基于邏輯分析核的嵌入式邏輯分析儀,他滿足了FPGA開發(fā)中硬件調(diào)試的要求,并且具有無(wú)干擾、便于升級(jí)、使用簡(jiǎn)單等特點(diǎn)。
2 SignalTap Ⅱ 的特點(diǎn)和使用方法
SignalTap Ⅱ 邏輯分析儀是第二代系統(tǒng)級(jí)調(diào)試工具,能夠獲取、顯示可編程片上系統(tǒng)(SOPC)的實(shí)時(shí)信號(hào),幫助設(shè)計(jì)者在其系統(tǒng)設(shè)計(jì)中觀察硬件和軟件的交互作用,在可編程邏輯市場(chǎng)上,上,SignalTap Ⅱ 邏輯分析儀專用于Quartus Ⅱ 軟件,與其他嵌入式邏輯分析儀相比,他支持的通道數(shù)最多,抽樣深度最大,時(shí)鐘速率最高。Quartus Ⅱ 軟件4.0以及以后版本還提供了圖形界面,定義了特定觸發(fā)條件邏輯,實(shí)現(xiàn)更高的精度,解決問(wèn)題的能力更強(qiáng)。SignalTap Ⅱ 嵌入式邏輯分析儀不需要對(duì)用戶設(shè)計(jì)文件進(jìn)行任何的外部探測(cè)或者修改,就可以得到內(nèi)部節(jié)點(diǎn)或者I/O引腳的狀態(tài),目前SignalTap Ⅱ 邏輯分析儀支持的器件系列包括:Stratix Ⅱ,Stratix,Stratix GX,Cyclone Ⅱ,Cyclone,APEX Ⅱ,APEX 20KE,APEX 20KC,APEX 20K,Excalibur和Mercury。
在設(shè)計(jì)中嵌入SignalTap Ⅱ邏輯分析儀有2種方法:第一種方法是建立一個(gè)SignalTap Ⅱ(.stp),然后定義STP文件的詳細(xì)內(nèi)容;第二種方法是用Mega Wizard Plun-In Manager建立并配置STP文件,然后用Mega Wizard實(shí)例化一個(gè)HDL輸出模塊,圖1給出了用這兩種方法建立和使用SignalTAP Ⅱ邏輯分析儀的過(guò)程。
圖2所示為SignalTap Ⅱ的編輯窗,以此介紹設(shè)置SignalTap Ⅱ文件的基本流程。
設(shè)置采樣時(shí)鐘 采樣時(shí)鐘決定了顯示信號(hào)波形的分辨率。采樣時(shí)鐘在上升沿處采集數(shù)據(jù),建議最好使用全局時(shí)鐘而不要使用門控時(shí)鐘作為采樣時(shí)鐘。
設(shè)置被測(cè)信號(hào) 可以使用Node Finder中的Filter查找所有綜合和布局布線的SignalTap Ⅱ節(jié)點(diǎn),添加要觀察的信號(hào),邏輯分析儀不可測(cè)試的信號(hào)包括:邏輯單元的進(jìn)位信號(hào)、PLL的時(shí)鐘輸出、JTAG引腳信號(hào)、LVDS(低壓差分)信號(hào)。
設(shè)置采樣深度 存儲(chǔ)每一個(gè)信號(hào)所需要的采樣數(shù),采樣深度的范圍從0-128kB。設(shè)置Buffer acquisition mode buffer acquisition mode包括的Circular和Segmented兩種模式,每當(dāng)觸發(fā)條件滿足使就捕獲一段數(shù)據(jù),該功能可以去掉無(wú)關(guān)的數(shù)據(jù),使采樣緩存的使用更加靈活。
觸發(fā)級(jí)數(shù) SignalTap Ⅱ支持多級(jí)觸發(fā)的觸發(fā)方式。,最多可支持10級(jí)觸發(fā)。
觸發(fā)類型 可以選擇basic和advanced兩種類型,如果選擇basic,在STP文件中必須為每個(gè)信號(hào)設(shè)置觸發(fā)模式,SignalTap Ⅱ邏輯分析儀中有6種觸發(fā)模式可供選擇;如果選擇advanced,則設(shè)計(jì)者必須為邏輯分析儀建立觸發(fā)條件表達(dá)式。
3 實(shí)例分析
本文以一個(gè)正弦信號(hào)發(fā)生器為例,具體說(shuō)明使用嵌入式邏輯分析儀進(jìn)行實(shí)時(shí)測(cè)試的具體過(guò)程,本文的設(shè)計(jì)實(shí)例是基于Altera公司Cyclone系列的EP1C6Q240C8。
圖3是正弦信號(hào)發(fā)生器的結(jié)構(gòu)圖,其頂層設(shè)計(jì)文件由VHDL語(yǔ)言設(shè)計(jì)完成,及設(shè)計(jì)包含2個(gè)部分:ROM的地址信號(hào)發(fā)生器,由6位計(jì)數(shù)器擔(dān)任;一個(gè)正弦數(shù)據(jù)ROM,由LPM_ROM模塊構(gòu)造,LPM_ROM底層是FPGA的EAB,ESB和M4K等模塊,地址發(fā)生器的時(shí)鐘CLK的輸入頻率f0與每個(gè)周期的波形數(shù)據(jù)點(diǎn)數(shù)(以64點(diǎn)為例)以及D/A輸出的頻率關(guān)系是:f=f0/64,硬件描述語(yǔ)言設(shè)計(jì)的正弦信號(hào)發(fā)生器所對(duì)應(yīng)的RTL電路圖如圖4所示。
根據(jù)上述SignalTap Ⅱ的使用步驟,首先調(diào)入待測(cè)信號(hào),這里,選擇2組信號(hào):8位輸出總線信號(hào)DOUT和地址發(fā)生計(jì)數(shù)器內(nèi)部鎖存器總線Q1信號(hào),對(duì)SignalTap Ⅱ的參數(shù)進(jìn)行設(shè)置,邏輯分析儀的采集時(shí)鐘選為工程的主頻時(shí)鐘信號(hào)CLK,采樣深度設(shè)為1kB,根據(jù)待觀察信號(hào)的要求,在Buffer acquisition mode框中的Circulate欄設(shè)定采樣深度中起始觸發(fā)的位置,最后選擇觸發(fā)信號(hào)和觸發(fā)方式,根據(jù)實(shí)際的設(shè)計(jì)要求,在Trigger框中的Trigger欄選擇1;選中Trigger前面的復(fù)選框,并在Source欄選擇觸發(fā)信號(hào),在此選擇地址計(jì)數(shù)器的最高位Q1[5]作為觸發(fā)信號(hào),在Pattern欄選擇上升沿觸發(fā)方式。
外部實(shí)驗(yàn)開發(fā)系統(tǒng)連接好,進(jìn)行編譯下載,單擊SignalTap Ⅱ面板上的Autorun Analysis按鈕,啟動(dòng)SignalTap Ⅱ進(jìn)行采樣和分析,這時(shí)就可以從SignalTap Ⅱ數(shù)據(jù)窗通過(guò)JTAG口觀察到來(lái)自實(shí)驗(yàn)板上FPGA內(nèi)部的實(shí)時(shí)信號(hào),該實(shí)例的輸出信號(hào)如圖5所示。
4 結(jié)語(yǔ)
通過(guò)以上實(shí)例,不難發(fā)現(xiàn)采用Altera公司的SignalTap Ⅱ嵌入式邏輯分析儀為芯片測(cè)試提供了一個(gè)很好的途徑可以大大降低設(shè)計(jì)成本,加快設(shè)計(jì)周期。用戶無(wú)需外接專用儀器,就可以通過(guò)FPGA器件內(nèi)部所有信號(hào)和節(jié)點(diǎn)的捕獲對(duì)系統(tǒng)故障進(jìn)行分析和判斷,需要注意的是,SignalTap Ⅱ嵌入式邏輯分析需工作在JTAG方式,在調(diào)試完成后,需將SignalTap Ⅱ移除設(shè)計(jì),以免浪費(fèi)資源。可以預(yù)見,SignalTap Ⅱ嵌入式邏輯分析儀必將在FPGA設(shè)計(jì)中獲得廣泛應(yīng)用。