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