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