傳統(tǒng)信號發(fā)生器大多由模擬電路構(gòu)成,存在連線復(fù)雜、調(diào)試煩瑣且可靠性較差等缺點。以Verilog HDL編程語言和FPGA器件為核心的可調(diào)信號發(fā)生器的設(shè)計實現(xiàn),提高了系統(tǒng)可靠性,實現(xiàn)了系統(tǒng)信號實時快速測量,也為其廣泛應(yīng)用于實際領(lǐng)域創(chuàng)造了條件。
1 系統(tǒng)總體設(shè)計
可調(diào)信號發(fā)生器系統(tǒng)由頂層模塊、EP2C70器件、控制開關(guān)和輸入輸出模塊等部分組成,如圖l所示。在FPGA中實現(xiàn)的頂層文件包含地址指針和數(shù)據(jù)ROM2部分。其中,數(shù)據(jù)ROM由QuartusⅡ軟件中的LPM_ROM模塊構(gòu)成,能達(dá)到最優(yōu)設(shè)計,LPM_ROM由FPGA中的EAB或ESB實現(xiàn)。數(shù)據(jù)ROM中存儲正弦波、方波、三角波和鋸齒波4種信號各1個周期的波形數(shù)據(jù)(在此選擇1個周期128個數(shù)據(jù)樣點),地址指針讀取ROM中不同區(qū)域的數(shù)據(jù),可產(chǎn)生不同的波形,并通過使用嵌入式邏輯分析儀SignalTapⅡ進(jìn)行實時測試。根據(jù)讀取數(shù)據(jù)間隔的不同,即可實現(xiàn)調(diào)整頻率的功能。
2 系統(tǒng)功能模塊設(shè)計
可調(diào)信號發(fā)生器系統(tǒng)的功能模塊主要由頂層文件(Verilog HDL源程序)和波形數(shù)據(jù)ROM兩部分組成。波形數(shù)據(jù)ROM設(shè)計主要包括設(shè)計波形數(shù)據(jù)ROM初始化數(shù)據(jù)文件和定制ROM元件(datarom.v)。
2.1 頂層文件設(shè)計
本系統(tǒng)采用Ahera公司的CycloneⅡ系列EP2C70器件作為核心,通過QuartusⅡ軟件編寫Verilog HDL源程序,實現(xiàn)一個可以產(chǎn)生正弦波、方波、三角波和鋸齒波4種波形信號,并且能夠?qū)崿F(xiàn)信號轉(zhuǎn)換及頻率可調(diào)功能的信號發(fā)生器。其中control控制產(chǎn)生波形的種類,00、0l、10、11分別產(chǎn)生正弦波、方波、三角波和鋸齒波;i控制讀取數(shù)據(jù)間隔,調(diào)整頻率。產(chǎn)生正弦波的源程序如下:
2.2 波形數(shù)據(jù)ROM初始化數(shù)據(jù)文件設(shè)計
初始化數(shù)據(jù)文件格式有2種:Memory Initialization FiIe(.mif)格式文件和Hexadecimal(Intel-Format)File(.hex)格式文件。本設(shè)計共需要產(chǎn)生4種波形,每種波形1個周期取128個數(shù)據(jù),因此選用.mif格式文件初始化數(shù)據(jù)個數(shù)Number為512,數(shù)據(jù)寬度Word size取8位的ROM數(shù)據(jù)。在MATLAB中,調(diào)用wave=round(255*sin([0:2*pi/(2^9):2*pi])+256)’;函數(shù),生成.mif文件,如圖2所示。
2.3 定制ROM元件
在QuartusⅡ中,利用Mega Wizard Plug-In Manager定制波形數(shù)據(jù)ROM,如圖3所示,經(jīng)過LPM_ROM宏功能塊設(shè)定、選擇dmarom模塊數(shù)據(jù)線寬度和數(shù)據(jù)單元個數(shù)、選擇地址鎖存信號clock及數(shù)據(jù)文件完成LPM_ROM設(shè)計,產(chǎn)生可用于例化的波形數(shù)據(jù)ROM文件datarom.v。
3 軟件系統(tǒng)邏輯仿真
FPGA中的功能模塊進(jìn)行綜合仿真后,生成配置文件。其系統(tǒng)邏輯功能仿真波形如圖4所示,各信號的邏輯功能和時序配合完全達(dá)到設(shè)計要求。
4 編譯下載
在將設(shè)計下載到DE2-70開發(fā)板進(jìn)行驗證之前,首先要進(jìn)行引腳鎖定,通過Assignments Editor依次對所有15個引腳進(jìn)行鎖定,其中PIN_-AA23和PIN_AB26分別對應(yīng)control[0]和control[l]DE2-70開發(fā)板上的SW0和SWl控制4種波形的選擇,具體引腳鎖定如圖5所示。
將編譯產(chǎn)生的下載文件(.sof)配置進(jìn)FPGA中,通過選擇DE2-70開發(fā)板的JTAG方式和USB BlasterⅡ編程線進(jìn)行編程下載,為使用嵌入式邏輯分析儀實時測試所設(shè)計的信號發(fā)生器做好準(zhǔn)備。
5 綜合分析
SignalTapⅡ嵌入式邏輯分析儀提供了一種對器件進(jìn)行實時測試的方法,它可以隨設(shè)計文件一起下載到目標(biāo)芯片中,用以捕捉目標(biāo)芯片中有關(guān)信號節(jié)點處的信息,而不影響芯片的正常工作。SignalTapⅡ?qū)y試得到的信號暫存于目標(biāo)器件的片內(nèi)RAM中,再通過器件的JTAG端口和USBBlasterⅡ編程線將采得的信號傳出,以供計算機分析。
下載成功后,設(shè)定DE2-70開發(fā)板的工作模式和恰當(dāng)?shù)目刂菩盘?,使計?shù)器正常工作(inclock頻率設(shè)為750kHz),啟動SignalTapⅡ進(jìn)行測試,通過改變輸入控制信號得到如圖6所示的4種信號波形圖。改變i的取值,可看到信號頻率也會隨之變化。
6 結(jié)束語
本設(shè)計充分利用FPGA具有的靜態(tài)可重復(fù)編程和動態(tài)可系統(tǒng)重構(gòu)的特性,使得硬件功能像軟件一樣通過編程修改,從而提高開發(fā)效率,縮短研發(fā)周期。測試結(jié)果表明:系統(tǒng)軟件模擬數(shù)據(jù)和理論定制波形相吻合,頻率調(diào)節(jié)方便,僅在波形光滑程度上存在很小誤差,但這不影響設(shè)計結(jié)果、波形的觀察和測量以及該可調(diào)信號發(fā)生器的使用。通過增加采樣點的數(shù)量及提高程序語句的精確與簡練度,可減少誤差影響。