邢玉磊,趙 剛
(四川大學(xué) 電子信息學(xué)院,四川 成都 610065)
?
FPGA模型設(shè)計與手寫代碼資源效率的研究*
邢玉磊,趙剛
(四川大學(xué) 電子信息學(xué)院,四川 成都 610065)
摘要:為了進一步研究FPGA開發(fā)工具DSP Builder基于模型設(shè)計的實用性。通過兩種方法創(chuàng)建了基于M序列的2ASK調(diào)制解調(diào)系統(tǒng):一種是在DSP Builder中利用模塊進行建模的方法,通過自動生成HDL代碼,下載到由南京潤眾科技有限公司提供的RZ8681現(xiàn)代通信技術(shù)試驗平臺上的FPGA硬件仿真模塊中,并由安捷倫示波器測出了系統(tǒng)中的信號,對建模過程中的硬件資源利用率進行了記錄;另一種通過手寫VHDL代碼實現(xiàn)了該系統(tǒng),也記錄了系統(tǒng)編譯后所消耗的資源。對比兩種方法,得出了基于DSP Builder的模型設(shè)計可以很好地提高在FPGA上開發(fā)DSP的效能,是一種很實用的工具。
關(guān)鍵詞:DSP Builder;二進制幅移鍵控;M序列;現(xiàn)場可編程門陣列;手寫代碼;資源效率
0引言
隨著電子系統(tǒng)設(shè)計的飛速發(fā)展,F(xiàn)PGA開發(fā)人員難免在系統(tǒng)設(shè)計中面臨一系列的開發(fā)瓶頸。只有掌握了先進的設(shè)計思想與開發(fā)工具,才能在激烈的市場競爭中贏得先機。傳統(tǒng)手工作坊式的開發(fā)模式已很難適應(yīng)目前產(chǎn)品的大代碼量、快速上市與可靠性等的要求。為了解決這些問題,把可視化的基于模型設(shè)計思想引入到FPGA的應(yīng)用研究之中,在國外已深入人心,并得到廣泛的應(yīng)用。Altera公司為了適應(yīng)這種新技術(shù)浪潮,也實時推出并持續(xù)升級了自己的基于模型設(shè)計產(chǎn)品—DSP Builder工具。該工具通過整合MATLAB、Simulink等系統(tǒng)級開發(fā)工具,利用VHDL和Verilog HDL語言的設(shè)計流程,隨著算法的進步,它可以提供一個友好的DSP設(shè)計環(huán)境,快速創(chuàng)建硬件仿真,縮短開發(fā)周期。特別地采用DSP Builder高級模塊庫后,讓Altera工具、IP核、第三方工具能更好地?zé)o縫連接,代碼的RTL級驗證與QuartusⅡ工程的生成只是點一下鼠標(biāo)的事情,這既節(jié)約了時間還降低了開發(fā)成本和風(fēng)險。然而在國內(nèi)外的網(wǎng)絡(luò)[1]上普遍流傳著采用基于模型設(shè)計所生成的HDL代碼占用資源較多的傳聞,本文通過實驗驗證了此問題。
1基于DSP Builder 的2ASK算法實現(xiàn)
1.12ASK系統(tǒng)原理
調(diào)制信號為二進制數(shù)字信號時,這種調(diào)制成為二進制數(shù)字調(diào)制。在2ASK中,載波的幅度只有兩種變化狀態(tài),即用數(shù)字信息“0”或“1”的基帶矩形脈沖去鍵控一個連續(xù)的載波,使其間斷輸出?!?”表示有載波輸出,“0”表示無載波輸出,它是研究其他數(shù)字調(diào)制技術(shù)的基礎(chǔ)[2]。
(2)ASK時域表達式為:
e2ASK(t)=a(t)cosωct
(1)
式中,ωc為載波角頻率,a(t)為單極性NRZ矩形脈沖序列,其表達式為:
(2)
式中,g(t)是持續(xù)時間為Tb、幅度為1的矩形脈沖,常稱為門函數(shù);an為需要傳輸?shù)亩M制數(shù)字,可表示為
(3)
cosωct、a(t)和e2ASK(t) 的波形示例圖如圖1 所示,通過載波幅度變化作為控制信息,頻率和初始相位不變[3]。
圖1 載波、矩形脈沖和2ASK波形示例
2ASK信號的實現(xiàn)方式有兩種,模擬相乘法和數(shù)字鍵控法,本文采用鍵控法實現(xiàn)。數(shù)字鍵控法就是用開關(guān)電路控制輸出調(diào)制信號,當(dāng)開關(guān)接載波就有信號輸出,當(dāng)開關(guān)接地就沒信號輸出,其電路如圖2所示。
圖2 2ASK鍵控法
2ASK的解調(diào)方法有兩種,相干解調(diào)法和非相干解調(diào)法,本文采用相干解調(diào)法。相干解調(diào)的檢測器組成原理如圖3所示,輸入信號與相干載波在乘法器中相乘,然后由低通濾波器濾出基帶波形,最后通過抽樣判決器恢復(fù)出基帶數(shù)據(jù)。判決輸出需要位同步脈沖,有利于提高數(shù)字信號接收性能[4]。
圖3 相干解調(diào)法
1.2M序列產(chǎn)生的原理
M序列是最長線性反饋移位寄存器序列,是一種常用的二元偽隨機序列。它可由線性反饋移位寄存器生成。主要有3種特性:平衡性、游程特性和相關(guān)性。它的統(tǒng)計特性與白噪聲的統(tǒng)計特性相似。
由于M序列自身具有的多種抗噪聲特性,使得經(jīng)過這種編碼方式的信號可以在接收端方便地將信道傳輸過程中所加入的隨機噪聲信號濾除,準(zhǔn)確地恢復(fù)出原始信號,從而在無線通信中有很強的抗干擾能力[5]。由于具有該特性,因此在通信中具有廣泛的用途,例如在擴頻通信中的加密、擾碼、同步等。
M序列的產(chǎn)生比較簡單,可以利用n級移位寄存器產(chǎn)生,圖4為簡單序列發(fā)生器。利用D觸發(fā)器級聯(lián)的方式就可以完成移位寄存器的功能,即可實現(xiàn)M序列產(chǎn)生器的設(shè)計。在時鐘觸發(fā)下,每次移位后各級寄存器狀態(tài)會發(fā)生變化[6]。其中任何一級寄存器的輸出,隨著時鐘節(jié)拍的推移都會產(chǎn)生一個序列。其中an-i為移位寄存器中每位寄存器的狀態(tài),ci為第i位寄存器的反饋系數(shù)。ci=1表示有反饋,ci=0表示無反饋。
圖4 反饋移位寄存器的結(jié)構(gòu)
圖5為一個四級反饋移存器[7]。若其初始狀態(tài)為(a3,a2,a1,a0)=(1,0,0,0),則移位一次時,由a3和a0模2相加產(chǎn)生新的輸入a4=1⊕0=1新的狀態(tài)變?yōu)?a4,a3,a2,a1)=(1,1,0,0),這樣移位15次后又回到初始狀態(tài)(1,0,0,0)。
圖5 四級反饋移存器
隨著移位時鐘節(jié)拍,各級移位寄存器的狀態(tài)轉(zhuǎn)移流程如表1所示。由表1可以看出,對于n=4的移位寄存器共有24=16種不同的狀態(tài)。
表1 M序列發(fā)生器狀態(tài)轉(zhuǎn)換
若初始狀態(tài)為全“0”,即(0,0,0,0),則移位后得到的仍為全“0”狀態(tài)。在實際的系統(tǒng)設(shè)計中,當(dāng)系統(tǒng)清零后,D觸發(fā)器輸出狀態(tài)均為低電平,在“模二加”運算后添加“非門”可以避免輸出全“0”信號。所以除了全“0”狀態(tài)外,4級移位寄存器只有15種可用狀態(tài)。即由任何4級反饋移位寄存器可以產(chǎn)生周期最長為15的序列。一個n級反饋移位寄存器產(chǎn)生的最長周期等于2n-1。這種最長的序列稱為最長線性反饋移位寄存器序列,簡稱M序列。
1.3基于模型的2ASK調(diào)制解調(diào)實現(xiàn)
利用MATLAB/Simulink工具箱中的DSP Builder定點庫對系統(tǒng)建模仿真,可以自動生成VHDL代碼。它的設(shè)計流程一般為:(1)利用Altera庫及與之對應(yīng)的Simulink庫建立系統(tǒng)模型。在建立模型時,只需將庫中的模型直接拉到Simulink中,之后對這些模塊進行參數(shù)化。(2)在Simulink中進行仿真。建立模型后,直接在Simulink中仿真,仿真輸入信號源及輸出結(jié)果均以圖形化表示,用戶可以直觀地看到效果。(3)添加Signal Complier模塊到模型中,產(chǎn)生HDL代碼。在得到VHDL文件后,通過對產(chǎn)生的VHDL文件進行自動流程綜合、編譯、仿真和配置下載等操作[8],可以快速完成設(shè)計。
DSP Builder自動流程可以自動調(diào)用QuartusⅡ等EDA軟件,完成綜合、網(wǎng)絡(luò)表生成和QuartusⅡ適配,并完成對FPGA的配置下載過程[9]。整個流程中用戶都需要進行仿真,仿真包括Simulink仿真以及HDL代碼仿真。前者的仿真保證了模型功能的正確,使后續(xù)步驟有意義,后者的仿真可以驗證系統(tǒng)功能的正確性。
2ASK調(diào)制解調(diào)系統(tǒng)的DSP Builder電路模型如圖6所示。系統(tǒng)的主時鐘周期為100 ns,頻率為10 MHz;其中M序列部分是15位的二進制序列“111101011001000”, 基帶數(shù)據(jù)時鐘為32 kHz;產(chǎn)生正弦載波模塊的查找表參數(shù)配置為:查找表地址為5位(25=32),表中數(shù)值為12位,查找表具體數(shù)值為(sin(2*pi/2^5:2*pi/2^5:2*pi)+1)*1023),式中之所以取5,是因為總線是5位,填其他數(shù)將不會產(chǎn)生正弦波[10];低通濾波器采用在速度、性能等方面都已得到優(yōu)化的Altera的IP核,采用布萊克曼窗函數(shù)法[11],采樣頻率為500 kHz。系統(tǒng)配置部分由Quartus II Global Project Assignments控件和QuartusII Pinout Assignment控件組成,通過參數(shù)配置,可以使系統(tǒng)從建模到芯片下載實現(xiàn)在一個開發(fā)環(huán)境下完成,而無需另單獨在Quartus II軟件中進行引腳配置和下載[12]。
圖6 2ASK電路模型
圖7 各測量點信號波形
在Simulink環(huán)境下對所建系統(tǒng)模型進行仿真后,結(jié)果符合預(yù)期的效果。然后雙擊仿真系統(tǒng)中Signal Compiler控件,選擇CycloneⅢ EP3C40Q240C8芯片按照步驟完成編譯、連接和編程的操作過程,然后在開發(fā)板上用安捷倫示波器觀測TP4、TP3、TP2和P1測量點的輸出波形。其結(jié)果如圖7所示,其中圖(a)為基帶數(shù)據(jù)時鐘信號和基帶M序列信號,圖(b)為基帶M序列信號和2ASK調(diào)制信號,圖(c)為基帶M序列信號和2ASK解調(diào)信號,且解調(diào)出來的信號局部產(chǎn)生了吉布斯現(xiàn)象。
2模型設(shè)計與手工代碼結(jié)果比較
經(jīng)過傳統(tǒng)手工方式編寫了2ASK調(diào)制解調(diào)系統(tǒng)的代碼,其中M序列代碼量22行,2ASK調(diào)制信號產(chǎn)生模塊代碼量(含載波信號)183行,解調(diào)端判決器模塊(含F(xiàn)IR濾波器、比較器)153行,解調(diào)頂層模塊56行,手工代碼2ASK總代碼量約414行。基于DSP Builder建模設(shè)計的2ASK調(diào)制解調(diào)系統(tǒng)產(chǎn)生的代碼量大于4 500行,通過QuartusⅡ13.1編譯[13]后兩種途徑資源利用率和最大頻率比較結(jié)果如表2所示。
在《基于模型的設(shè)計——Qsys篇》一書中,作者通過流水燈實驗也得出了類似的結(jié)論,手寫代碼21行,系統(tǒng)綜合后占用資源41個LE,F(xiàn)max=87 MHz,建模生成的代碼大于220行,綜合后占用資源36個LE,F(xiàn)max=77 MHz。
表2 2ASK手寫代碼與建模實現(xiàn)編譯結(jié)果對比
3結(jié)語
通過實驗結(jié)果可以看出,表面上自動代碼的長度遠遠超過手寫代碼的長度,但綜合后的結(jié)果令人滿意。說明建模代碼不論在資源占用上,還是在最大頻率上,都可以和手寫代碼媲美,模型代碼已經(jīng)接近手寫代碼的水平。對于大型項目,模型代碼超過手寫代碼所占用的資源將成為可能,基于模型設(shè)計開發(fā)FPGA的方法可以走向?qū)嵱秒A段。這將大大壓縮開發(fā)周期和降低開發(fā)成本,使推出的新產(chǎn)品具有競爭優(yōu)勢。
參考文獻:
[1]劉杰.基于模型的設(shè)計—Qsys篇[M]. 北京:機械工業(yè)出版社,2012.
LIU Jie. Model-based Design—Qsys[M]. Beijing: China Machine Press, 2012.
[2]達新宇,陳樹新,王瑜.通信原理教程[M]. 北京:北京郵電大學(xué)出版社,2012.
DA Xin-yu,CHEN Shu-xin,WANG Yu.Communication Theory Tutorial [M].Beijing: Beijing University Posts And Telecommunications Press,2012.
[3]王曉玲. 基于MATLAB/Simulink的2ASK傳輸系統(tǒng)設(shè)計與分析[J]. 蘇州市職業(yè)大學(xué)學(xué)報,2015,26(04):10-13. WANG Xiao-ling. Design and Analysis of 2ASK Transmission System Based on MATLAB/Simulink [J]. Journal of Suzhou Vocational University,2015,26(04):10-13.
[4]程欽,潘玲佼,任艷玲.一種偽隨機控制的2ASK調(diào)制解調(diào)電路實現(xiàn)[J].江蘇理工學(xué)院學(xué)報,2014,2 (06):51-55.
CHENG Qin, PAN Ling-jiao, REN Yan-ling. Pseudo Random Control 2ASK Modem Circuits[J]. Journal of Jiangsu University of Technology,2014,2(06):51-55.
[5]CAI Guang-hui, ZHU Ruo-xin, LI Wen-long. A Design of Direct Sequence Spread Spectrum Module with Variable Bandwidth based on FPGA[J]. Applied Mechanics and Materials, 2014, 513(517): 3332-3335.
[6]孟倩,沈忠華,陳克非.由GF(q)生成擴域上m序列的方法及在WG序列中的應(yīng)用[J]. 密碼學(xué)報,2015,2(06):515-525.
MENG Qian, SHEN Zhong-hua, CHEN Ke-fei. A Method of Generating M-Sequences over GF(qn) from GF(q) and the Application in WG Sequence[J]. Journal of Cryptologic Research, 2015, 2(06):515-525.
[7]潘曉英. 基于線性反饋移位寄存器和分組密碼的偽隨機數(shù)生成方法[J]. 通信技術(shù),2015,48(02):228-231.
PAN Xiao-ying. Pseudo-Random Number Generation Algorithm based on Linear Feedback Shift Register and Block Cipher [J].Communications Technology, 2015,48(02):228-231.
[8]付莉,高興泉. 基于DSP Builder的電子技術(shù)仿真實驗平臺[J]. 實驗技術(shù)與管理,2015(01):134-137.
FU Li,GAO Xing-quan. Simulation Experimental Platform for Electronic Technology Course based on DSP Builder [J]. Experimental Technology and Management, 2015(01):134-137.
[9]趙剛,張壘,路明.計算機系統(tǒng)的自主設(shè)計[M]. 北京:電子工業(yè)出版社,2011.
ZHAO Gang, ZHANG Lei, LU Ming. Self-Designed Computer System[M]. Beijing: Publishing House of Electronics Industry,2011.
[10]李鵬飛,李金平,陸小菊.基于Matlab與DSP Builder的2PSK調(diào)制解調(diào)器設(shè)計與仿真[J]. 計算機科學(xué),2012,39(10):33-35.
LI Peng-fei, LI Jin-ping, LU Xiao-ju.Design and Simulation of Modem based on Matlab and DSP Builder[J].Computer Science,2012,39(10):33-35.
[11]Altera Corporation. FIR Compiler User Guide. [EB/OL](2013-11-19)[2016-02-11]. http://www.altera.com/content/dam/literature/ug/fircompiler_ug.pdf.
[12]Altera Corporation. DSP Builder Guide Volume 2. [EB/OL](2014-07-12)[2016-02-11]. http://www.altera.com/literature/ug/ug_dsp_builider.pdf.
[13]張鳳娟,盛利元,劉洋洋. 基于DSP Builder的移相鍵控調(diào)制解調(diào)系統(tǒng)設(shè)計[J].微電子學(xué),2013,43(01):37-46.
ZHANG Feng-juan,CHENG Li-yuan,LIU Yang-yang. Design of PSK Modulation/ Demodulation System based on DSP Builder [J]. Microelectronics, 2013, 43(01):37-46.
FPGA Model Design and Resource Efficiency of Handwritten Code
XING Yu-lei, ZHAO Gang
(College of Electronics and Information Engineering, Sichuan University,Chengdu Sichuan 610065,China)
Abstract:To further investigate the practicality of FPGA development tools by DSP Builder based on model design, 2ASK modem system based on the M sequence is constructed in two methods. And for one method,the module in the DSP Builder is used to anstruct the model, through automatically generating HDL code, and downloaded into FPGA hardware simulation module on RZ8681, a modern communication technology test platform provided by Nanjing Runzhong Sci. &Tech. Co., Ltd. The signal of the system is measured with Agilent oscilloscope,and the utilization of hardware resource in the modeling process also recorded. For the other method 2ASK modem system is implemented by writing VHDL code, and the resource comsumption after compiling also recorded. The comparison of these two methods indicates the model design based on DSP Builder could improve the effectiveness of DSP development on FPGA,and this model is a very practical tool.
Key words:DSP Builder; 2ASK; M sequence; FPGA; handwritten code; resource efficiency
doi:10.3969/j.issn.1002-0802.2016.04.024
*收稿日期:2015-11-01;修回日期:2016-03-05Received date:2015-11-01;Revised date:2016-03-05
中圖分類號:TN311
文獻標(biāo)志碼:A
文章編號:1002-0802(2016)04-0504-05
作者簡介:
邢玉磊(1988—),男,碩士研究生,主要研究方向為基于FPGA的信號處理;
趙剛(1962—),男,教授,碩士生導(dǎo)師,主要研究方向為電路與系統(tǒng)設(shè)計自動化、擴頻通信。