傳統(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器件,、控制開關(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Ⅱ軟件編寫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)生波形的種類,,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開發(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開發(fā)板上的SW0和SWl控制4種波形的選擇,,具體引腳鎖定如圖5所示。
將編譯產(chǎn)生的下載文件(.sof)配置進(jìn)FPGA中,,通過(guò)選擇DE2-70開發(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開發(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ò)編程修改,從而提高開發(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)練度,,可減少誤差影響。