徐運(yùn)武,周澤湘
(廣東松山職業(yè)技術(shù)學(xué)院廣東韶關(guān)512126)
信號(hào)發(fā)生器又稱為波形發(fā)生器,是一種常用的信號(hào)源,廣泛應(yīng)用于電子電路、通信、控制和教學(xué)實(shí)驗(yàn)等領(lǐng)域。它是科研及工程實(shí)踐中最重要的儀器之一,以往多用硬件組成,系統(tǒng)結(jié)構(gòu)比較復(fù)雜,可維護(hù)性和可操作性不佳。隨著計(jì)算機(jī)技術(shù)的發(fā)展,信號(hào)發(fā)生器的設(shè)計(jì)制作越來(lái)越多的是用計(jì)算機(jī)技術(shù),種類繁多,價(jià)格、性能差異很大。用FPGA或CPLD來(lái)實(shí)現(xiàn),它的優(yōu)點(diǎn)是可以進(jìn)行功能仿真,而且FPGA和CPLD的片內(nèi)資源豐富,設(shè)計(jì)的流程簡(jiǎn)單。用FPGA所構(gòu)成的系統(tǒng)來(lái)產(chǎn)生波形信號(hào),這個(gè)系統(tǒng)既能和主機(jī)系統(tǒng)相連,用相應(yīng)的上層軟件展示波形信號(hào),又方便程序的編寫,而且還有A/D0809接口可以產(chǎn)生模擬信號(hào)的輸出和外面的示波器相連[1]。
正弦信號(hào)發(fā)生器由計(jì)數(shù)器或地址發(fā)生器(6位)、正弦信號(hào)數(shù)據(jù)ROM(6位地址線,8位數(shù)據(jù)線,含有64個(gè)8位數(shù)據(jù),一個(gè)周期)、原理圖頂層設(shè)計(jì)和8位D/A(實(shí)驗(yàn)中用DAC0832代替)。
其框圖如圖1所示。其中信號(hào)產(chǎn)生模塊將產(chǎn)生所需的各種信號(hào),這些信號(hào)的產(chǎn)生可以有多種方式,如用計(jì)數(shù)器直接產(chǎn)生信號(hào)輸出,或者用計(jì)數(shù)器產(chǎn)生存儲(chǔ)器的地址,在存儲(chǔ)器中存放信號(hào)輸出的數(shù)據(jù)。信號(hào)發(fā)生器的控制模塊可以用數(shù)據(jù)選擇器實(shí)現(xiàn),用8選1數(shù)據(jù)選擇器實(shí)現(xiàn)對(duì)5種信號(hào)的選擇。最后將波形數(shù)據(jù)送入D/A轉(zhuǎn)換器,將數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào)輸出。用示波器測(cè)試D/A轉(zhuǎn)換器的輸出,可以觀測(cè)到5種信號(hào)的輸出。
圖1 信號(hào)發(fā)生器結(jié)構(gòu)框圖Fig.1 Structure diagram of signal generator
QuartusII能接受的LPM_ROM模塊中的初始化數(shù)據(jù)文件的格式有兩種:.mif格式文件和.hex格式文件。實(shí)際應(yīng)用中只要使用其中一種格式的文件即可。下面采用.mif格式文件,調(diào)出產(chǎn)生ROM數(shù)據(jù)文件大小的選擇窗。根據(jù)64點(diǎn)8位正弦數(shù)據(jù)的情況,可選ROM的數(shù)據(jù)數(shù)Number為64,數(shù)據(jù)寬Word size取8位。單擊OK按鈕,將出現(xiàn)圖2所示的空的.mif數(shù)據(jù)表格,表格中的數(shù)據(jù)格式可通過(guò)鼠標(biāo)右鍵單擊窗口邊緣的地址數(shù)據(jù)彈出的窗口選擇。
將波形數(shù)據(jù)填入mif文件表中也可以使用QuartusII以外的編輯器設(shè)計(jì)MIF文件,其格式如下:
圖2 .mif數(shù)據(jù)表格Fig.2 Data form of.mif
把上述程序編譯成程序后,可在DOS命令行下執(zhí)行命令:
打開Mega Wizard Plug_In Manager初始對(duì)話框,選擇Create a new custom…項(xiàng)。單擊Next按鈕后,選擇Storage項(xiàng)下的LPM_ROM,再選擇ACEX1K器件和VHDL語(yǔ)言方式;最后輸入ROM文件存放的路徑和文件名:F:\sing_gnt\data_rom(定制的ROM元件文件名),單擊Next按鈕,選擇ROM控制線、地址線和數(shù)據(jù)線。這里選擇地址線位寬和ROM中數(shù)據(jù)數(shù)分別為6和64;選擇地址鎖存控制信號(hào)inclock。
對(duì)于地址信號(hào)發(fā)生器的設(shè)計(jì)。方法一:用VHDL語(yǔ)言設(shè)計(jì)6位計(jì)數(shù)器,產(chǎn)生其元件符號(hào);方法二:仍采用LPM定制的方法。
按圖3畫出頂層原理圖,然后進(jìn)行編譯,波形仿真如圖4所示。
圖3 簡(jiǎn)易正弦信號(hào)發(fā)生器頂層電路設(shè)計(jì)Fig.3 Top circuit design of the simple sine signal generator
圖4 當(dāng)前工程仿真波形輸出Fig.4 Output of the current engineering simulation waveform
對(duì)當(dāng)前設(shè)計(jì)通過(guò)執(zhí)行Quartus II的命令Create∠Update/Create Symbol Files for Current File,可以為設(shè)計(jì)電路建立一個(gè)元件符號(hào),以便被頂層設(shè)計(jì)多功能信號(hào)發(fā)生器所調(diào)用[3]。
將上述6個(gè)模塊生成符號(hào),供頂層電路調(diào)用。這些模塊分別是:遞減鋸齒波信號(hào)產(chǎn)生模塊signall、遞增鋸齒波信號(hào)產(chǎn)生模塊signal2、三角波信號(hào)產(chǎn)生模塊signal3、階梯波信號(hào)產(chǎn)生模塊signal4、方波信號(hào)產(chǎn)生模塊signal5和數(shù)據(jù)選擇器mux51。頂層電路的連接如圖5所示。
選擇一個(gè)D/A轉(zhuǎn)換器,將數(shù)據(jù)選擇器的輸出與D/A轉(zhuǎn)換器的輸入端連接。D/A轉(zhuǎn)換器的可選范圍很寬,這里以常用的DAC0832為例。DAC0832的連接電路如圖6所示[5]。
圖5 信號(hào)發(fā)生器頂層電路Fig.5 Top circuit of the signal generator
圖6 DAC0832的連接電路Fig.6 Connection circuit of DAC0832
信號(hào)發(fā)生器頂層電路的仿真波形如圖7所示,這里只就輸入選擇信號(hào)等于5時(shí)的情況進(jìn)行仿真,此時(shí)輸出波形是方波,輸出的數(shù)字信號(hào)為周期性的全0或全1。
圖7 信號(hào)發(fā)生器頂層電路的仿真波形Fig.7 Simulation waveform of the signal generator top circuit
信號(hào)發(fā)生器的底層電路模塊也可以分別進(jìn)行仿真,例如對(duì)階梯波信號(hào)產(chǎn)生模塊signal4進(jìn)行仿真,仿真波形如圖8所示,輸出的數(shù)字信號(hào)為階梯狀變化。
圖8 階梯波信號(hào)產(chǎn)生模塊signal4的仿真波形Fig.8 Simulation waveform of module 4 produced by the ladder wave
硬件電路設(shè)計(jì)主要是設(shè)計(jì)相關(guān)模塊的設(shè)計(jì)思想的可視化,是相關(guān)模塊的電路圖的匯總和其相關(guān)仿真波形的集錦,該部分條理清晰,思路明確,從中我們可以清晰地看到該設(shè)計(jì)方案的具體模塊和整個(gè)設(shè)計(jì)的原理結(jié)構(gòu)實(shí)圖;程序設(shè)計(jì)這一部分主要闡述該設(shè)計(jì)的設(shè)計(jì)方法與設(shè)計(jì)思想,進(jìn)一步從軟件設(shè)計(jì)上揭示設(shè)計(jì)構(gòu)思,主要包含了整個(gè)設(shè)計(jì)所用到的模塊的硬件描述語(yǔ)言的設(shè)計(jì),本文設(shè)計(jì)思路清晰,
通過(guò)QuartusII軟件進(jìn)行波形仿真成功,特別是正弦信號(hào)發(fā)生器的LPM定制對(duì)于編程不是特別強(qiáng)的人員提供另一種途徑來(lái)實(shí)現(xiàn),加深理解EDA的層次設(shè)計(jì)思想,很好的把握住了教學(xué)的改革方向,更好的鍛煉了學(xué)生理論聯(lián)系實(shí)踐的能力。
[1]王誠(chéng),吳繼華,蔡海寧.Altera FPGA/CPLD設(shè)計(jì)(高級(jí)篇)[M].北京:人民郵電出版社,2005.
[2]趙曙光.可編程邏輯器件原理、開發(fā)與應(yīng)用[M].第2版.西安:西安電子科技大學(xué)出版社,2006.
[3]候伯亨,顧新,劉凱.VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,1999.
[4]潘松,黃繼業(yè).EDA技術(shù)實(shí)用教程[M].北京:科學(xué)出版社,2002.
[5]刑建平,曾凡泰.VHDL程序設(shè)計(jì)[M].第2版.北京:清華大學(xué)出版社,2005.
[6]Altera.Altera device package information[EB/OL].(2006-09)http://www.doc88.com/p-5420149423.html.
[7]潘松,黃繼業(yè).EDA技術(shù)實(shí)用教程—VHDL版[M].第4版.北京:科學(xué)出版社,2010.
[8]焦素敏.EDA應(yīng)用技術(shù)[M].北京:清華大學(xué)出版社,2005.