摘 要:文章主要內容是根據建立的FSK解調算法模型設計各個模塊的邏輯結構,并用Verilog代碼實現,包括量化模塊、乘法模塊、差分模塊。然后通過MATLAB、simulink、modelsim、QuartusII等軟件完成代碼的仿真驗證。聯合仿真測試電路功能的正確性。
關鍵詞:simulink;modelsim;MATLAB
1 Verilog語言及modelsim簡介
Verilog HDL 語言是硬件描述語言之一,常用的硬件描述語言有VHDL和Verilog,在歐美國家VHDL的使用要大于Verilog,而在中國Verilog所占份額要大于VHDL,Verilog語言與C語言非常相似,可以說是基于C語言的結構而發(fā)展起來的,VHDL語言的格式沒有Verilog通俗易懂,但是VHDL更接近硬件,綜合起來要優(yōu)于Verilog。可以說Verilog和VHDL各有所長[1]。早期的集成電路模板是工程師根據電路原理圖手工繪制的,由于早期的電路簡單,所以這種手工繪制的方法暫時可以滿足需求,但是隨著集成電路的集成度和復雜度的增加,手工繪制越來越不能滿足設計的需要,并且時常會出現一些錯誤。這樣硬件描述語言就應運而生,早期硬件描述語言只是起到仿真和驗證的作用,隨著運用越來越廣泛和后期添加功能,Verilog逐漸被設計者使用。到了今天,硬件描述語言Verilog已經廣泛的運用于大規(guī)模、超大規(guī)模集成電路的設計。電子設計自動化也越來越不能離開硬件描述語言,并且衍生出新的語言比如:SystemVerilog。等高級語言??偠灾?,Verilog解放人的大腦,讓計算機強大的功能來實現人的電路思想[1]。Mentor公司的ModelSim是作為一款最優(yōu)秀最精準的仿真軟件,不僅僅能給用戶提供一個簡單易操作的界面環(huán)境,而且支持VHDL和Verilog混仿僅有的單內核軟件。這個軟件優(yōu)化了仿真技術、可以使用Tcl/Tk命令,modelsim具有速度快編譯代碼普適性的特點,有利于用戶使用并保護IP核,是 FPGA/ASIC設計的首選仿真軟件[2]。
2 FSK解調系統(tǒng)總體設計
解調算法具體的設計指標為:
(1)輸入信號碼率10Kbps;(2)中頻為fc=30KHz;(3)頻率偏差?駐f=5KHz;根據第差分解調算法原理,建立解調算法Verilog系統(tǒng)框圖,其中包括量化單元、差分濾波器、乘法器、低通濾波器等模塊。
2.1 量化模塊
量化模塊將前端RF接收到的數字化后的調制信號進行量化。其采樣的周期,量化的位數直接影響解調的性能和最終的芯片面積。這里對量化位數進一步說的。前級量化按照表1所示來量化,其中x是采樣輸入數據。
表1 接收信號量化
編寫抽樣量化Verilog代碼。其中base_in是基帶接收信號默認為經過采樣的9位信號,由于沒有調制模塊,這里通過添加DDS,然后將數據導入modelsim測試文件。然后經過量化模塊,實現位數的降低,最終輸出為3位。量化模塊最主要的是比較器模塊。通過modelsim后仿真,最后綜合得到量化模塊的綜合RTL級電路。
2.2 低通濾波器及IP核使用
低通濾波器的作用的濾除諧波分量?;诖a率為10Kbps只需要濾除10Kbps以上的頻率分量[3]。首先要利用fdatool工具獲得抽頭系數:首先進入fdatool工具設置好濾波器的參數。FPASS:9600。FSTOP:12000。specify order:60。Response type:lowpass。在設置好以上參數后,點擊設計濾波器。然后生成濾波器的系數。得到的數據都是浮點數經過定點過后的數值。并且在低通濾波器中還可以輸入濾波器的截斷方式以及累乘加法的定點位數。這里選擇的是與輸入相同的位數也就是8位。然后通過與差分濾波器設計一樣的流程設計了低通濾波器模塊其Verilog代碼其中輸入數據data_in為乘法器輸出的8位信號。data_out為輸出為8位的信號,這里由于運算的需要通過飽和截斷模塊之后運算結果由最初的20位變?yōu)?位,以減少后級處理的負擔和開銷。在通過低通濾波器后,由于后級有維特比譯碼處理單元,而維特比譯碼比較的是歐式距離而不是漢明距離,因此在這里未采用抽樣判決模塊,而是直接將8位數據輸入到維特比譯碼模塊,而維特比譯碼模塊在前級會將8位信號進行量化,變?yōu)?位8級的輸入,然后判斷歐式距離。由于FPGA本身帶有乘法器IP核,因此這里直接例化乘法器模塊添加到系統(tǒng)中,直接供給系統(tǒng)使用。
3 仿真
前面完成了從算法設計到Verilog實現的步驟,并針對數字集成電路的低功耗優(yōu)化進行了Verilog代碼設計,下面主要完成代碼的仿真驗證。通過MATLAB、simulink、modelsim、QuartusII等軟件聯合仿真測試電路功能的正確性。首先通過在modelsim軟件中添加testbench文件測試解調模塊、維特比譯碼模塊的功能,并嚴格對比MATLAB的輸出來判定代碼的正確性。然后選取Altera公司的CycloneIV系列FPGA芯片EP4CGX22CF19C6作為目標芯片,通過QuartusII軟件綜合整個解調解碼系統(tǒng)生成報告。通過分析系統(tǒng)性能滿足設計要求。
3.1 量化模塊仿真
圖1 Verilog量化模塊仿真圖
從圖1可以看到輸入基帶信號由“0”變?yōu)椤?”的過程中,量化后的調制信號周期縮短為原來的一半。并且量化的位數和范圍符合表1所示。
3.2 差分濾波器仿真
首先在MATLAB建立的差分濾波器模型中輸入5000個隨機信號,然后將MATLAB模型輸出的5022個結果保存到data.txt文件里。將輸入MATLAB模型的5000個隨機信號生成testbench文件tb3.v,通過modelsim軟件測試差分濾波器模塊。將modelsim仿真結果導出到data_out.txt。這個過程是通過下面的Verilog代碼實現的:w_file = $fopen("data_out.txt"); $fmonitor(w_file,"%b",filter_out);然后對比分析MATLAB與modelsim的輸出。由于對比數量巨大無法通過肉眼觀察,因此通過ultraedit軟件的比較工具實現MATLAB的濾波器輸出和modelsim仿真濾波器的輸出。一般設置輸出數據文檔data.txt是MATLAB的輸出,data_out.txt為modelsim的輸出。通過最后比對可以得到MATLAB模型與modelsim輸出結果完全一致有5023行匹配,0行差異。那么用Verilog建立的FIR濾波器模塊能正確實現所要求的濾波器功能。文章設計的濾波器可以修改抽頭系數、輸出位寬、輸入位寬,為通用型濾波器。低通濾波器就是在此濾波器的基礎上改變參數得到。因此其仿真結果不再展示。
3.3 差分解調仿真
輸入信號以9位二進制的形式進入濾波器模塊,通過量化模塊量化為3位二進制信號,在分別進入乘法器和差分濾波器,通過差分濾波器的一路信號經過差分濾波之后為11位二進制信號,然后與進入乘法器(3*11位)的另外一路信號相乘,再做截斷處理得到8位信號。通過低通濾波器做卷積相乘,得到16位信號,也做截斷處理得到8位信號。最后通過量化判斷得到基帶原始信號[3]。通過波形的對比,證明能模塊能正確解調信號。通過前仿真后通過為了驗證代碼的正確性,首先通過MATLAB生成原始基帶信號,然后調制成20KHz和40KHz的調頻信號,將調頻信號取離散采樣,將得到的數據輸入testbench作為采樣過后的信號,通過modelsim級聯仿真驗證代碼時序正確性。選Altera公司的CycloneIV系列FPGA芯片EP4CGX22CF19C6,在Altera公司開發(fā)的集成開發(fā)工具QuartusII中輸入代碼,進行綜合和布局布線,提取器件的延時參數,根據Quartus II的靜態(tài)時序分析報告所示。然后得到sdf/sdn文件導入modelsim[4],驗證代碼的時序正確性。報告得到,驅動時鐘"clk"時間裕量非常充足,其最高工作速度可以達到220MHz,而解調周期是32個時鐘周期,解調速度滿足10kpbs的要求[5]。
4 結束語
文章通過分析FSK解調的部分模塊,通過MATLAB建立解調的各個模塊,并用Verilog代碼實現,主要內容是根據建立的FSK解調算法模型設計各個模塊的邏輯結構,重點分析了量化模塊、低通濾波器模塊以及乘法模塊。仿真驗證中,通過搭建一個聯系起modelsim、MATLAB、simulink的平臺來驗證代碼的正確性,通過對比代碼的輸入輸出與MATLAB及simulink的輸入輸出得到代碼的功能是否正確。首先驗證了設計的正確性,其次在以后的前仿真中也可以利用搭建起來的這一平臺來驗證代碼的正確性。
參考文獻
[1]陳磊.基于FPGA的DMR系統(tǒng)4FSK調制解調的實現[D].西安:西安電子科技大學,2011.
[2]謝曉燕,寧永海.基于MATLAB的通信系統(tǒng)仿真應用研究[J].通信技術,2007,12(40):82-84.
[3]黎玉玲,張延華.基于MATLAB的通信系統(tǒng)仿真平臺設計[J].計算機應用研究,2006(10):248-250.
[4]李瑩,路衛(wèi)軍,于敦山.一種在FPGA上實現FIR數字濾波器的資源優(yōu)化算法[J].北京大學學報(自然科學版),2009(45):222-226.
[5]冷邦平.高速FIR數字濾波器在FPGA上的實現[D].成都:電子科技大學,2008.
作者簡介:向舜然(1987,3-),男,重慶人,碩士研究生,研究方向:數字信號處理FPGA實現,單位:重慶城市管理職業(yè)學院。