作者:趙歡 ,朱 倩 ,唐 衡
引 言
隨著 FPGA 數字信號處理系統復雜度不斷提高,FPGA 信號處理系統的功能驗證已經成為影響產品上市時間和成本的關鍵[1]。盡管在驗證領域已經發展出多種自動測試方法,但是針對信號處理算法進行驗證時,仍然需要手動編寫代碼搭建仿真平臺[2],生成仿真激勵,效率較低。信號處理系統往往包含大量復雜的算法[3],對于驗證人員編寫代碼的經驗及技能要求較高。
針對這一情況,本文提出了一種基于 Simulink 與IES 聯合搭建的功能驗證平臺。使用 Simulink 的 HDLCoder自動生成代碼完成仿真平臺中的信號處理算法部分。首先,利用 Matlab強大的分析、計算和可視化功能,使用 Simulink 對算法進行建模仿真[4],當仿真結果達到設計要求后,再使用該模型直接生成 HDL 代碼[5],從而大幅提高了驗證平臺開發效率,避免了對復雜信號處理驗證模型的硬件語言設計,提升了平臺的復用性和仿真平臺搭建效率。同時,由于無需手動編寫代碼,也避免了人為引入的錯誤,提升了驗證平臺的可靠性。
1 SMA 基帶信號處理
本文驗證的SMA基帶信號處理FPGA,是SMA(S?BandMultiple Address)測控終端系統的重要組成部分[6],主要完成前向鏈路中的中頻信號解調、解擴,將解調結果通過 RS 422 接口輸出至管理單元。該 FPGA 的主要功能
模塊包括:
1)數字下變頻模塊:輸入 A/D 信號的采樣,將輸入中頻信號下變頻到基帶。
2)前向基帶處理模塊:生成解調所需的 GOLD 碼;實現頻率捕獲和偽碼捕獲;在捕獲的基礎上實現信號跟蹤并對相關積分結果進行自動增益控制;解擴和位同步。
3)前向同步 RS 422 發送模塊:通過 RS 422 接口輸出解調數據。功能示意圖如圖 1所示。
2 聯合仿真平臺
2.1 驗證平臺概述
本平臺主要用于驗證 SMA 信號處理 FPGA 的解調功能和算法性能,確認該 FPGA 是否能夠正確解調規定調制格式的輸入信號,并確認是否滿足接收載噪比、捕獲時間、捕獲頻偏范圍、跟蹤多普勒變化率等性能要求。本平臺采用 IES 和 Simulink 聯合的仿真方法,在被測設計外圍搭建基于 System Verilog 和 Verilog 混合編程的仿真平臺。使用 Simulink 搭建信號處理模型,使用System Verilog搭建其他外圍接口模型。主要包括:
1)使用 Simulink 搭建信號處理模型,將調制數據進行擴頻、調制、成型濾波、上變頻后通過 A/D 接口輸入至 DUT,然后自動生成 Verilog代碼用于仿真。
2)RS 422 接口模型,使用 System Verilog 搭建,接收 DUT 輸出的解調數據并發送至 scoreboard 用于數據比對。
3)時鐘模型,使用 System Verilog 搭建,為測試環境和 DUT提供工作時鐘。
4)數據比對模塊,基于System Verilog的scoreboard,自動比對測試環境發送的調制數據和 DUT 輸出的解調結果,測試是否存在誤碼。
5)Test_case,用例控制模塊,使用 System Verilog 生成不同的Test_case 以驗證被測設計在不同輸入條件下是否滿足算法性能要求。
除了驗證解調數據正確性以外,在 Simulink 中搭建信號處理模型時,將上變頻模塊的載波頻率和碼NCO的碼速率控制字設置為外部輸入可控,通過 Test_case靈活控制不同用例,測試 DUT 在不同輸入載波頻率下的捕獲和跟蹤性能是否滿足要求。聯合仿真平臺如圖2所示。
2.2 Simulink信號源建模
根據對被測設計的分析,A/D 信號源模塊的主要技術指標包括:A/D 接口輸入信號位寬為 12 bits,A/D 采樣頻率為 100 MHz。擴頻模式為直接序列擴頻模式,擴頻碼為 GOLD 碼,碼長為 1 023,碼速率為 3.069 Mc/s,G1生 成 多 項 式 為 x10 + x8 + x7 + x4 + x2 + x + 1 ,初 相 為1101111100,G2 生 成 多 項 式 為 x10 + x7 + 1 ,初 相 為1001001000。需要對擴頻后的序列進行成型濾波,濾波器選擇成型系數為 0.6的平方根升余弦濾波器。應將濾波后的信號調制至中頻,中頻為 30 MHz,并且為了驗證性能需求,載波多普勒、碼多普勒、載噪比需要根據用例要求靈活控制。
依據上述要求,設計了 A/D 信號源模型如圖 3 所示,整個模型由擴頻碼時鐘模塊、GOLD 碼發生器模塊、BPSK 調制模塊、成型濾波器模塊和上變頻模塊構成。
1)擴頻碼時鐘模塊 code_clk:擴頻碼時鐘模塊使用NCO 模型產生正弦波輸出,然后使用比較器將正弦波轉換成方波,作為 GOLD 碼發生器模塊的 Trigger 信號。為了能夠根據用例設置靈活控制碼鐘頻率,將 NCO 頻率控制字設置為外部輸入模式(Input Port)。
2)GOLD 碼發生器模塊 pn_gen_1:GOLD 碼發生器模 塊 由 2 個 PN Sequence Generator 構 成 ,將 2 個 PNSequence Generator 的輸出異或后得到 GOLD 碼[7],模型結構如圖 4 所示,2 個 PN Sequence Generator 的參數設置見表 1。
3)BPSK 調制模塊:使用 BPSK 模型對擴頻后的結果進行 BPSK 調制。
4)成型濾波器模塊:成型濾波器模塊用于消除碼間串擾,本文中使用 Raised Cosine Transmit Filte模型實現,設置濾波器類型為平方根升余弦濾波器,滾降系數為 0.6。
5)上變頻模塊:上變頻模塊使用 NCO HDL模型實現,為了能夠根據用例設置靈活控制載波頻率,將載波NCO 頻率控制字設置為外部輸入模式(Input Port),其他參數設置見表2。設置載波 NCO 輸入頻率為90 kHz~30 MHz時,該 NCO 輸出信號的頻譜如圖 5所示。
信號源模型仿真結果如圖 6 所示,圖中信號波形從上到下分別為:擴頻碼時鐘、擴頻碼序列、BPSK 調制輸出、成型濾波器輸出。
需要注意的是:為了能夠自動生成代碼,構建仿真模型必須使用 hdllib 內的模型,hdllib 是支持生成 HDL代碼的模型庫[8],并且需要將模型的輸入設置為定點輸入,這樣模型自動成為定點模型,生成代碼時即生成定點代碼[9?10]。
2.3 Simulink模型的 HDL代碼直接生成
搭建 Simulink 模型并完成仿真后,就可以直接在HDL Coder中生成 HDL 代碼[11]。Simulink 使用高層次綜合合成技術,將硬件可實現的 Simulink 模型編譯為可讀、可追溯且可模型化的 VHDL 或 Verilog HDL 代碼,此代碼經過優化可以跨任意 FPGA、ASIC 或 SoC 硬件進行移植[12?13]。代碼生成的過程如下:
1)將需要生成代碼的部分封裝為一個子系統。
2)檢查模型是否可綜合:選中子系統后右鍵選擇HDL Code→check subsystem compatibility,如果檢查通過,可繼續生成代碼;如果失敗,則需要進行模塊替換。
3)參數設置,可以設置生成的語言類型、復位信號極性等。
4)設置完成后,右鍵點擊需要生成的子系統,選擇HDL CODE→Generate HDL for subsystem,最 終 生 成代碼。
其中一個自動生成模塊——BPSK 調制模塊代碼如圖 7 所示,可以看出最終生成代碼有較好的可讀性,便于仿真調試和修改。
3 仿真結果與分析
以載噪比 Eb N0=10 dB、初始多普勒偏差 90 kHz、多普勒變化率 1 kHz/s的測試用例為例,IES仿真結果如圖 8和圖 9所示。
圖 8 中,仿真波形從上到下依次為碼發生器時鐘、擴頻碼時鐘、擴頻碼序列、BPSK調制輸出、成型濾波器輸出。圖 9 中,data_bit_delay2 是仿真平臺發送的調制數據,Uart_txd_FSR 是 DUT 輸出的解調數據,通過比對可 以 確 認 ,輸 出 解 調 數 據 與 發 送 的 調 制 數 據 一 致。Acq_Freq_Word為捕獲得到的載波頻率,被測 FPGA 內部 NCO 時鐘為 12.5 MHz,計算可得捕獲得到的頻率為( -30 962 456 × 12.5 × 106) 232 =-90.112 Hz。
綜上可以確認被測FPGA能夠在載噪比Eb N0=10 dB、初始多普勒偏差-90 kHz 時成功捕獲,并且跟蹤、解擴、解調數據,驗證了設計功能的正確性和性能指標。
4 結 語
本文提出了一種基于 Simulink與 IES聯合搭建的功能驗證平臺,給出了聯合仿真實例,成功對 SMA 信號處理 FPGA 進行了功能和性能驗證。該仿真平臺利用了Matlab 豐富的信號處理算法模型,生成了驗證平臺中的關鍵算法模塊代碼,極大地降低了驗證平臺的開發難度,提升了仿真平臺的開發效率,提高了平臺的復用性。同時,避免了手動編寫代碼而引入的錯誤,提升了環境的可靠性,對其他類似復雜信號處理類 FPGA 設計的驗證具有極大的參考價值。
審核編輯:郭婷
-
FPGA
+關注
關注
1626文章
21667瀏覽量
601843 -
代碼
+關注
關注
30文章
4748瀏覽量
68355
原文標題:論文速覽 | 基于Simulink代碼生成的 FPGA 信號處理系統仿真驗證平臺
文章出處:【微信號:現代電子技術,微信公眾號:現代電子技術】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論