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