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