嵌入式邏輯分析儀在FPGA時(shí)序匹配設(shè)計(jì)中的應(yīng)用
引言
本文引用地址:http://www.ex-cimer.com/article/193534.htm隨著FPGA器件規(guī)模的不斷增加、封裝密度不斷提高,傳統(tǒng)邏輯分析儀在FPGA板級(jí)調(diào)試中的應(yīng)用日益困難。
為此,主流FPGA廠商相繼在其開發(fā)工具中增加了嵌入式邏輯分析儀(ELA) IP軟核,如Lattice在ispLEVER中提供的ispTRACY,Xilinx在ISE中提供的ChipScopePro,Altera在Quartus II提供中的Signal Tap II等。ELA在FPGA內(nèi)部預(yù)先設(shè)計(jì)探測(cè)點(diǎn)和測(cè)試邏輯,可在軟件工具的配合下對(duì)FPGA設(shè)計(jì)進(jìn)行較全面的測(cè)試。采用ELA,只需用JTAG下載電纜連接待調(diào)試的FPGA器件,占用FPGA的部分邏輯資源和內(nèi)部存儲(chǔ)器資源,無(wú)需傳統(tǒng)的邏輯分析儀就可以觀察FPGA的內(nèi)部信號(hào)和I/O引腳的狀態(tài)。
以我們開發(fā)的全彩LED同步顯示控制系統(tǒng)為例,該系統(tǒng)包括采集、傳輸、接收等模塊,F(xiàn)PGA為Altera Cyclone系列PQFP封裝的EP1C6Q240C8,邏輯單元(LE)數(shù)量為5980個(gè),RAM大小為92160 bit。使用Quartus II軟件首次對(duì)設(shè)計(jì)文件進(jìn)行綜合布局和布線,將布線好的工程下載到FPGA板上運(yùn)行時(shí),全彩LED屏顯示效果非常差,圖像閃爍且左右移動(dòng)。根據(jù)Quartus II編譯報(bào)告可以看出,該工程消耗的器件資源僅為26%,但是卻占用了90%的引腳,留給外部測(cè)試的引腳僅為10%,使得利用Quartus II內(nèi)部集成軟件測(cè)試的優(yōu)勢(shì)得以體現(xiàn)。為了找出設(shè)計(jì)缺陷,采用Signal Tap II采集到FPGA內(nèi)各個(gè)關(guān)鍵信號(hào)的波形,根據(jù)波形找出原因在于LED顯示屏接收板中的數(shù)據(jù)信號(hào)較控制信號(hào)形成了延時(shí),造成了時(shí)序不匹配。
本文介紹的FPGA時(shí)序匹配設(shè)計(jì)方法,利用Quartus II軟件中的Signal Tap II采集FPGA內(nèi)部信號(hào)波形,通過比較分析采集的數(shù)據(jù),可得出精確的延時(shí)信息。在Signal Tap II時(shí)序測(cè)試結(jié)果的指導(dǎo)下改進(jìn)了設(shè)計(jì),經(jīng)實(shí)際電路的波形測(cè)試證明,LED顯示屏接收板中的數(shù)據(jù)信號(hào)與控制信號(hào)時(shí)序匹配良好。
Signal Tap II
Signal Tap II是Altera公司FPGA開發(fā)軟件Quartus II中的一個(gè)實(shí)用工具,能夠捕獲、顯示FPGA內(nèi)部節(jié)點(diǎn)或I/O引腳實(shí)時(shí)信號(hào)的狀態(tài),幫助設(shè)計(jì)者在系統(tǒng)設(shè)計(jì)時(shí)觀察硬件和軟件的交互作用。
圖1為Signal Tap II嵌入式邏輯分析儀采集數(shù)據(jù)的原理框圖。其中CLK(采樣時(shí)鐘)和Trigger(觸發(fā)邏輯)可以根據(jù)需要設(shè)定。在Signal Tap II工作時(shí),待測(cè)試信號(hào)在CLK的上升沿被嵌入式邏輯分析儀實(shí)時(shí)捕獲,經(jīng)FPGA內(nèi)部的RAM緩存后,通過JTAG接口傳送至Quratus II軟件中顯示。其中,RAM緩存方式有連續(xù)存儲(chǔ)和分段存儲(chǔ)。JTAG接口用的下載電纜包括USB Blaster、ByteBlasterMV、ByteBlaster II或MasterBlaster等。這些在Signal Tap II工作窗口可以靈活設(shè)置。
嵌入式邏輯分析儀捕獲數(shù)據(jù)的流程如圖2所示。首先判斷時(shí)鐘的上升沿是否滿足,不滿足繼續(xù)等待時(shí)鐘,滿足先捕獲前觸發(fā)數(shù)據(jù),觸發(fā)級(jí)別滿足后,捕獲后觸發(fā)數(shù)據(jù),然后清除數(shù)據(jù),結(jié)束該捕獲流程。其中Signal Tap II最多可支持10級(jí)觸發(fā)級(jí)別。觸發(fā)級(jí)別高意味著可接收更復(fù)雜的數(shù)據(jù)獲取命令,提供更高的精度和問題解決能力。
使用Signal Tap II設(shè)計(jì)時(shí)序匹配電路
延時(shí)的產(chǎn)生
在LED全彩大屏同步顯示控制系統(tǒng)中,針對(duì)占空比控制亮度損失大的問題,在顯示驅(qū)動(dòng)控制模塊設(shè)計(jì)中采用了分場(chǎng)疊加與占空比控制相結(jié)合的方法對(duì)存儲(chǔ)的圖像數(shù)據(jù)進(jìn)行分場(chǎng)掃描,實(shí)現(xiàn)了低亮度損失、800×512分辨率、256級(jí)灰度LED全彩大屏的顯示。其中,“分場(chǎng)疊加”是指:前端將一幅彩色圖像的數(shù)據(jù)按灰度級(jí)分解為多個(gè)位平面,終端根據(jù)不同位平面數(shù)據(jù)掃描不同的場(chǎng)次,在有限時(shí)間內(nèi)實(shí)現(xiàn)各場(chǎng)次的疊加,從而在LED全彩大屏上重建彩色圖像。
圖3為位面分離模塊在Quartus II軟件中生成的引腳圖。其中RGBdin[23..0]為輸入的顏色數(shù)據(jù)(R、G、B三種顏色各八位),clkin156為輸入數(shù)據(jù)時(shí)鐘, clk_after85pc為延時(shí)后的使能信號(hào),rst_bit_regroup為移位寄存器的復(fù)位信號(hào),rst_mux為顏色位選擇器的復(fù)位信號(hào), rgb_regroup_output[23..0]是經(jīng)過數(shù)據(jù)重組后輸出的數(shù)據(jù)。
“位面分離模塊”實(shí)現(xiàn)“分場(chǎng)存儲(chǔ)”功能,即將每個(gè)顏色的8比特?cái)?shù)據(jù)(以256級(jí)灰度為例)按灰度級(jí)分類,分別存入存儲(chǔ)器的8個(gè)數(shù)據(jù)段中。位平面的分離需要時(shí)間,將帶來系統(tǒng)延時(shí)。圖4為利用Signal Tap II采集的輸入數(shù)據(jù)RGBdin[23..16]和輸出數(shù)據(jù)rgb_regroup_output[23..16]的波形關(guān)系。其中采樣時(shí)鐘設(shè)置為 clk38 (CRT顯示器分辨率為800×600,刷新頻率為60Hz,輸出的點(diǎn)時(shí)鐘為38MHz),采樣深度設(shè)置為4K bit,則Signal Tap II采集波形時(shí)占用了16×4K=64K bit個(gè)存儲(chǔ)單元。
由圖4 (黑色亮線)可以看出,輸出數(shù)據(jù)在第9個(gè)時(shí)鐘(clk38)時(shí)由FF(高阻)變成有效數(shù)據(jù)。該模塊的輸出數(shù)據(jù)是送到外部存儲(chǔ)器中進(jìn)行緩存的,存儲(chǔ)器的寫使能信號(hào)為輸入數(shù)據(jù)的數(shù)據(jù)有效信號(hào)。由于該數(shù)據(jù)延時(shí)了9個(gè)clk38時(shí)鐘,存儲(chǔ)器的寫使能控制信號(hào)也應(yīng)延時(shí)9個(gè)clk38時(shí)鐘生效。
時(shí)序匹配設(shè)計(jì)及測(cè)試波形
基于D觸發(fā)器的延時(shí)功能,設(shè)計(jì)了如圖5所示的時(shí)序匹配模塊,解決了上述位面分離操作與寫存儲(chǔ)器控制信號(hào)的時(shí)序匹配問題。圖5中,flag為數(shù)據(jù)的有效信號(hào)標(biāo)志,高電平時(shí)數(shù)據(jù)輸出有效;Clk156為點(diǎn)時(shí)鐘38MHz的四倍頻時(shí)鐘,F(xiàn)lag_delay8和flag_delay9分別是flag延時(shí)8 個(gè)clk38時(shí)鐘和9個(gè)clk38時(shí)鐘的新的數(shù)據(jù)有效信號(hào)標(biāo)志。
根據(jù)理論計(jì)算,一個(gè)D觸發(fā)器會(huì)帶來一個(gè)clk156的時(shí)鐘的延時(shí),那么要延時(shí)9個(gè)clk38的時(shí)鐘必須使用36個(gè)D觸發(fā)器。實(shí)際上,D觸發(fā)器固定的建立時(shí)間、保持時(shí)間,也會(huì)帶來系統(tǒng)延時(shí)。根據(jù)Signal Tap II采集的波形對(duì)D觸發(fā)器的個(gè)數(shù)進(jìn)行適當(dāng)?shù)膭h減,達(dá)到了精確的9個(gè)clk38時(shí)鐘的延時(shí),最后的時(shí)序匹配模塊由34個(gè)D觸發(fā)器構(gòu)成。
圖6為時(shí)序匹配模塊的內(nèi)部框圖。D觸發(fā)器D端口接flag,clk端口接clk156,第30個(gè)和第34個(gè)D觸發(fā)器Q端口分別連接 Flag_delay8和flag_delay9。該時(shí)序匹配模塊采用四倍于clk38的clk156作為驅(qū)動(dòng)時(shí)鐘,以確保延時(shí)信號(hào)的相位延時(shí)足夠精確。
圖7為Signal Tap II采集時(shí)序匹配模塊的波形輸出。其采樣時(shí)鐘為38MHz,采樣深度為4K bit。rgb_regroup_output[23..0]為位面分離后紅色輸出的數(shù)據(jù)。可以看出,輸出數(shù)據(jù)在flag_delay9的上升沿開始由 FFh(高阻)變成有效數(shù)據(jù)00h,達(dá)到了數(shù)據(jù)和控制信號(hào)的完全同步。
性能分析
把該時(shí)序匹配模塊加入工程,重新綜合布局布線,下載到全彩LED大屏同步顯示控制系統(tǒng)的接收板上,Quartus II編譯報(bào)告中除了占用部分內(nèi)部存儲(chǔ)器資源和LE資源,其它的(如I/O引腳的利用率)都沒有變化。觀察LED大屏顯示效果,圖像清晰穩(wěn)定,證明了該時(shí)序匹配模塊的可行性。
該時(shí)序匹配模塊僅為L(zhǎng)ED同步顯示控制系統(tǒng)中一個(gè)最簡(jiǎn)單的模塊,用于示例說明嵌入式邏輯分析儀Signal Tap II在FPGA時(shí)序匹配設(shè)計(jì)中的應(yīng)用方法。應(yīng)用Signal Tap II還能解決各種各樣的問題,如外部存儲(chǔ)器的雙向數(shù)據(jù)口的實(shí)時(shí)波形檢測(cè)、驅(qū)動(dòng)模塊的并串轉(zhuǎn)換波形等。使用Signal Tap II有如下優(yōu)點(diǎn):
不占用額外的I/O引腳。利用Signal Tap II成功的采集了FPGA內(nèi)部信號(hào)的波形,如flag,flag_delay8,flag_delay9等都為FPGA內(nèi)部寄存器信號(hào)。
Signal Tap II為硬件板級(jí)調(diào)試工具,它采集的波形是工程下載后的實(shí)時(shí)波形,方便設(shè)計(jì)者查找引起設(shè)計(jì)缺陷的原因。
節(jié)約成本。Signal Tap II集成在Quartus II軟件中,無(wú)需另外付費(fèi)。
使用Signal Tap II時(shí)應(yīng)注意:
用Signal Tap II 采集數(shù)據(jù)時(shí),應(yīng)符合采樣定律,即采樣頻率必須是信號(hào)最大頻率的兩倍或更高,否則采集到的波形會(huì)失真或者是一條全低的直線。
采樣深度決定了每個(gè)信號(hào)可存儲(chǔ)的采樣數(shù)目,信號(hào)的數(shù)量和采樣深度的乘積不能超過所選FPGA芯片內(nèi)部RAM的大小,添加待觀察信號(hào)、設(shè)置了采樣深度后,可以根據(jù)Signal Tap II的Instance Manager 窗口觀察內(nèi)部存儲(chǔ)資源的使用情況。如果觀察的信號(hào)數(shù)量多,采樣深度設(shè)置受到限制,此時(shí)靈活設(shè)置觸發(fā)條件相當(dāng)必要。圖4和圖7采集的波形都是以設(shè)置 RGBdin[23..16]為00h為觸發(fā)條件,如圖4,7中的虛線所示。
Signal Tap II必須工作在JTAG方式,調(diào)試完成后應(yīng)將Signal Tap II文件移除,以免浪費(fèi)FPGA資源。
結(jié)語(yǔ)
時(shí)序匹配是FPGA電路設(shè)計(jì)中的一個(gè)重要問題,介紹了一種應(yīng)用嵌入式邏輯分析儀Signal Tap II捕獲FPGA內(nèi)部信號(hào)波形的方法,通過比較分析采集的數(shù)據(jù),可得出精確的延時(shí)信息,指導(dǎo)FPGA時(shí)序匹配的設(shè)計(jì)。
以LED全彩大屏同步顯示控制系統(tǒng)中顯示驅(qū)動(dòng)控制部分的位面分離模塊為例,在嵌入式邏輯分析儀Signal Tap II的時(shí)序測(cè)試結(jié)果的指導(dǎo)下,設(shè)計(jì)一個(gè)由34個(gè)D觸發(fā)器構(gòu)成的時(shí)序匹配模塊,經(jīng)實(shí)際電路的波形測(cè)試證明,信號(hào)時(shí)序匹配良好。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論