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