文獻標識碼: A
文章編號: 0258-7998(2010)10-0057-03
高速調制解調器集成化設計[1,2]面臨的挑戰(zhàn)之一是高速邏輯電路的設計與調試。在符號速率為幾百兆的情況下,時鐘周期僅為幾個納秒,這對數(shù)據(jù)傳輸、信號處理都提出了嚴格要求。同時,設計高速調制解調器是一項復雜的系統(tǒng)工程,其間難免的邏輯錯誤和設計缺陷需要通過反復的在線調試才能發(fā)現(xiàn)。調試高速數(shù)字電路需要高速率邏輯分析儀、高采樣率數(shù)字示波器等高檔儀器的支持,這在很大程度上增加了項目開發(fā)成本。基于邏輯分析儀調試數(shù)字電路時,每一個待觀測數(shù)據(jù)位對應一根數(shù)據(jù)線,同時觀測多組信號時,需要在電路板上引出大量的測試引腳,既浪費芯片的引腳資源又不夠靈活,使調試過程繁瑣不堪。
基于芯片內部的數(shù)據(jù)采集和分析是一種先進的調試技術,尤其適用于高速、復雜系統(tǒng)的在線調試。Xilinx公司的ChipScope軟件可以在多個系列的FPGA內部嵌入關鍵的邏輯分析模塊,通過這些功能模塊,為設計者提供一套完整的邏輯分析方案。
先進的軟硬件提供了解決問題的一般化工具。如何利用這些技術解決工程中遇到的實際問題依然是設計者必須面對的難題。結合高速率8PSK信號的數(shù)字鎖相環(huán)設計,給出了一種有效的高速全數(shù)字解調器的在線調試方法。
1 基于ChipScope的FPGA調試
圖1為基于ChipScope進行FPGA調試的實現(xiàn)框圖[3],僅包含一臺安裝Xilinx FPGA集成開發(fā)軟件包的高檔微機、一根FPGA配置電纜以及待調試的用戶板,不需要任何其他測量儀器。
通過ChipScope Pro Core Generator/Inserter軟件包,放置ICON、ILA等IP核至用戶HDL源程序中,經Xilinx ISE編譯、綜合生成二進制比特流,配置到待調試的目標器件中?;贑hipScope Pro Analyzer軟件,用戶計算機通過JTAG邊界掃描端口讀回采集的數(shù)據(jù),即可以測試和分析用戶的設計?;谠撜{試方案,用戶可以同時觀測256通道的實時數(shù)據(jù),單一通道的最大緩存深度達2 M采樣。
2 一種有效的在線調試方法
高速數(shù)字邏輯的調試過程就是尋找設計缺陷并克服缺陷的過程,其中發(fā)現(xiàn)設計缺陷是關鍵,特別是對于高速數(shù)字解調器的調試。
提出的調試方法如圖2所示,基本思想是即使符號速率高達幾百兆,若能夠實時檢測錯誤事件的發(fā)生,并將該時刻前后一小段時間內的所有相關數(shù)據(jù)保存下來,則可以對高速數(shù)字邏輯進行調試,即在線捕獲錯誤數(shù)據(jù),非在線分析設計缺陷。由此可見,在FPGA內部實現(xiàn)有效調試的技術關鍵在于兩點:一是錯誤事件的有效檢測;二是包含錯誤信息的相關數(shù)據(jù)的緩存。
圖2給出了在線調試原理圖,下面結合高速率8PSK信號的載波同步設計進行說明。
2.1 錯誤檢測
在沒有信道噪聲的情況下,對于正確的設計,解調器輸出沒有誤碼;如果存在設計錯誤,則解調器輸出必然存在誤碼。調制端發(fā)送周期性的信息序列,全數(shù)字解調器的錯誤檢測在數(shù)字鎖相環(huán)之后進行,一旦檢測到誤碼,則當前時刻采樣點附近已經發(fā)生錯誤,此時立即產生觸發(fā)信號En,經先進先出邏輯(FIFO2)延時后接FIFO1的寫使能端。以碼長L的周期信息序列為例,誤碼檢測可采用兩種方式:
(1)粗檢測,如果當前時刻(n)判決結果與n-L時刻判決結果不一致,則產生誤碼,粗檢測存在漏檢。
(2)精檢測,首先將周期信息序列與判決序列滑動相關進行碼序列同步,然后檢測后續(xù)判決結果的誤碼。
2.2 數(shù)據(jù)存儲
如果解調器輸出端沒有檢測到誤碼,則En為FIFO1的“寫有效”控制信號,數(shù)字鎖相環(huán)的前端輸入x(n)和后端輸出y(n)經FIFO1緩存后丟棄;如果解調器輸出端檢測到誤碼,則En由“寫有效”變成“寫無效”,F(xiàn)IFO1停止寫入新的數(shù)據(jù),與錯誤相對應的x(n)、y(n)以及錯誤發(fā)生前后一段時間內的采樣均保存在FIFO1內部,不再被后續(xù)的數(shù)據(jù)所覆蓋(采樣的多少與FIFO1的深度和FIFO2的緩存時間相關)。FIFO2緩存En的目的是將錯誤對應的數(shù)據(jù)放到最終采集數(shù)據(jù)段的中間。定義數(shù)字鎖相環(huán)輸入、輸出之間的延時為T0,F(xiàn)IFO2的緩存深度為T2,則FIFO1的緩存深度T1要大于2(T0+T2)。
2.3 上傳數(shù)據(jù)
FIFO1停止寫操作后,點亮FPGA外圍指示燈,指示錯誤事件發(fā)生并已經捕獲錯誤,由于FIFO1的讀使能信號始終有效,捕獲的數(shù)據(jù)從FIFO1輸出端循環(huán)讀出。設計者啟動ChipScope抓包進程,ICON控制芯片內部塊RAM保存FIFO1循環(huán)輸出的數(shù)據(jù),然后由JTAG口低速讀入計算機。
2.4 數(shù)據(jù)分析
圖2標記的所有設計者關心的內部信號均可以作為觀測對象。ChipScope采集數(shù)據(jù)后,存至擴展名為“prn”的文本文件中,基于Matlab編程可以對數(shù)據(jù)進行任意比較、分析,大大提高了分析海量數(shù)據(jù)的效率,方便對FPGA內部不完善邏輯的調試。
3 應用舉例
數(shù)字鎖相環(huán)是載波同步的核心,其性能直接決定了載波同步的質量。圖3為判決輔助的數(shù)字鎖相環(huán),在信號的相位域進行相位鎖定,其中判決模塊基于FPGA-RAM查表實現(xiàn)。初步設計的相位累加器如圖4所示,在[-π,π]范圍內進行相位累加,同時執(zhí)行防溢出控制,累加位數(shù)可擴展,執(zhí)行速度很容易達到200 MHz以上。
測試過程中,發(fā)現(xiàn)解調器輸出存在偶發(fā)性的非合理誤碼,為此采用前面的調試方法對高速全數(shù)字解調器進行在線調試,例如數(shù)字鎖相環(huán)模塊的調試流程如圖5所示。
對捕獲數(shù)據(jù)的分析表明,圖4的相位累加器仍然存在溢出現(xiàn)象,這是產生偶發(fā)性非合理誤碼的原因所在,改進后的防溢出相位累加器如圖6所示。
對于相位累加器溢出導致的這類海量數(shù)據(jù)流中的偶發(fā)性錯誤,若采用常規(guī)手段調試,則如同“大海撈針”,本文給出的調試方法很好地解決了這一難題。
在高速全數(shù)字解調器的后期調試中,發(fā)現(xiàn)程序缺陷往往花費大量時間,特別是對于全數(shù)字解調器這類實時、高速邏輯,大量中間數(shù)據(jù)具有隨機性,不利于程序缺陷診斷,但是大多數(shù)程序缺陷會導致最終誤碼輸出。本文結合數(shù)字鎖相環(huán)的設計,靈活運用FIFO捕獲并緩存包含錯誤信息的所有設計者關心的相關數(shù)據(jù),解決了高速、海量數(shù)據(jù)流中捕獲偶發(fā)性錯誤信息困難這一難題,為程序缺陷分析創(chuàng)造條件。該方法效率高、實用性強,可直接用于高速全數(shù)字解調器的后期調試,其基本思想也適應于其他高速邏輯的FPGA調試。
參考文獻
[1] GRAY A A,HOY S D,GHUMAN P.Parallel VLSI equalizer architectures for multi-Gbps satellite communications[A]. IEEE Global Telecommunications Conference (GLOBECOM′ 01),2001(10):315-319.
[2] GREBOWSK G,GRAY A A,SRINIVASAN M.Method and appuratus for high data rate demodulation[P].US Patent 6177835,2001,23(1).
[3] Chipscope pro software and cores user guide[EB].Xilinx Help,UG029(v7.1),2005(2):1-11.