Verilog hdl—簡易電子琴設(shè)計(jì)_第1頁
Verilog hdl—簡易電子琴設(shè)計(jì)_第2頁
Verilog hdl—簡易電子琴設(shè)計(jì)_第3頁
Verilog hdl—簡易電子琴設(shè)計(jì)_第4頁
Verilog hdl—簡易電子琴設(shè)計(jì)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 湖北文理學(xué)院 簡易電子琴設(shè)計(jì)專業(yè):自動(dòng)化學(xué)號:2012118064姓名:一天虹影實(shí)驗(yàn)?zāi)康氖褂肰erilogHDL語言進(jìn)行前端設(shè)計(jì),并使用Quaruts軟件在GW48PK2實(shí)驗(yàn)上實(shí)現(xiàn)仿真,實(shí)現(xiàn)硬件電子琴。電子琴要求有8個(gè)音階,使用外部時(shí)鐘信號3MHz,能同步顯示音階。設(shè)計(jì)要求1、 設(shè)計(jì)一個(gè)簡易電子琴。要求能演奏的音域?yàn)镈調(diào)的do到E調(diào)do。 2、 用GW48PK2中的8個(gè)按鍵作為琴鍵。 3、 GW48PK2中有蜂鳴器。4、 可以使用GW48PK2上的12MHz作為輸入時(shí)鐘信號設(shè)計(jì)思路通過可編程邏輯器件(PLD)和VHDL硬件描述語言來實(shí)現(xiàn)電子琴的基本要求。 設(shè)計(jì)的主體是數(shù)控分頻器,對輸入的頻率

2、按照與每個(gè)音階對應(yīng)的分頻系數(shù)進(jìn)行分頻,得到各個(gè)音階對應(yīng)的頻率分別在蜂鳴器和數(shù)碼管上以聲音和頻率數(shù)值的形式作為輸出。 設(shè)計(jì)組成與原理下圖為系統(tǒng)的工作原理框圖。 分頻置 數(shù)按鍵分頻器12MHZ蜂 鳴 器數(shù)碼管顯示模塊設(shè)計(jì)1. 音名與頻率的關(guān)系音樂的12平均率規(guī)定:每2個(gè)八度音(如簡譜中的中音1與高音1)之間的頻率相差1倍。在2個(gè)八度音之間,又可分為12個(gè)半音。靈位,音符A(簡譜中的低音6)的頻率為440HZ,音符B到C之間、到之間為半音,其余為全音。由此可以計(jì)算出簡譜中所有的音符的頻率,在這我們只需計(jì)算出中音到高音的頻率即可。如下所示: 表一 簡譜音名與頻率的對應(yīng)關(guān)系音名中音中音中音中音中音中音中

3、音高音頻率/HZ523.3587.3659.3698.5784880987.81046.5由于各音符對應(yīng)的頻率多為非整數(shù),而分頻系數(shù)又不能為小數(shù),故必須將計(jì)算得到的分頻數(shù)四舍五入取整。若分頻器時(shí)鐘頻率過低,則由于分頻系數(shù)過小,四舍五入取整后的誤差較大;若時(shí)鐘頻率過高,雖然誤差變小,但分頻數(shù)將變大。實(shí)際的設(shè)計(jì)應(yīng)綜合考慮兩方面的因素,在盡量減少頻率誤差的前提下取合適的時(shí)鐘頻率。本實(shí)驗(yàn)要求用12MHZ的時(shí)鐘脈沖信號,所以不必考慮這方面的因素。實(shí)際上,只要各個(gè)音符間的相對頻率關(guān)系不變,彈奏出來的音調(diào)聽起來是不會走調(diào)的。2. 分頻系數(shù)與初始值(預(yù)置數(shù)) 本例設(shè)計(jì)的音樂電子琴選取12MHZ的系統(tǒng)時(shí)鐘頻率。

4、在數(shù)控分頻器模塊中,由于數(shù)控分頻器輸出的波形是脈寬極窄的脈沖波,為了更好地驅(qū)動(dòng)揚(yáng)聲器發(fā)生,減少輸出的偶次諧波分量,在到達(dá)揚(yáng)聲器之前需要均衡占空比,從而生成各音符對應(yīng)頻率的對稱方波輸出。這個(gè)過程實(shí)際上進(jìn)行了一次二分頻,頻率變?yōu)樵瓉淼亩种?,?MHZ。 因此,分頻系數(shù)的計(jì)算可以按照下面的方法進(jìn)行。以中音1為例,對應(yīng)的頻率值為523.3HZ,它的分頻系數(shù)應(yīng)該為:Divider=6MHz/523.3=6*106 /523.3=11466 至于其他音符,同樣由上式求出對應(yīng)的分頻系數(shù),這樣利用程序可以輕松地得到相應(yīng)的樂聲。各音名對應(yīng)的分頻系數(shù)如下表: 表二 各音名對應(yīng)的分頻系數(shù)音名中音1中音2中音3中

5、音4中音5中音6中音7高音1分頻系數(shù)(divider)1146610216910185907653681860745733 由于最大的分頻系數(shù)為11466,故采用14位二進(jìn)制計(jì)數(shù)器已能滿足分頻要求。將分頻系數(shù)設(shè)為0,其初始值為16383(214 -1 )即可,此時(shí)揚(yáng)聲器不會發(fā)聲。對于不同的分頻系數(shù),加載不同的初始值即可。本實(shí)驗(yàn)參考王金明:Verilog HDL程序設(shè)計(jì)教程,采用差值法進(jìn)行分頻。把差值作為初始值,為不同音階的發(fā)聲的來源。各音名對應(yīng)的初始值如下表:表三 各音名對應(yīng)的初始值音名中音1中音2中音3中音4中音5中音6中音7高音1初始值(origin)4917616772827793873

6、0956510309106503. 數(shù)控分頻器數(shù)控分頻器是對基準(zhǔn)頻率進(jìn)行分頻,得到與各個(gè)音階對應(yīng)的頻率輸出。數(shù)控分頻模塊是由一個(gè)初始值可變的14位加法計(jì)數(shù)器構(gòu)成,該計(jì)數(shù)器的模為214=16384,當(dāng)計(jì)數(shù)器記滿時(shí),產(chǎn)生一個(gè)進(jìn)位信號,該信號就是用作發(fā)音的頻率信號。其分為預(yù)分頻和脈沖展寬兩部分。a) 預(yù)分頻 assign preclk=(divider=16383)?1:0; always(posedge clk) begin if(preclk) divider=origin; else divider=divider+1; end b) 脈沖展寬(二分頻) always(posedge prec

7、lk) begin speaker=speaker;目的是將預(yù)分頻產(chǎn)生的占空比很小的波形進(jìn)行拓寬,使得波形有足夠長的高電平來驅(qū)動(dòng)揚(yáng)聲器。實(shí)驗(yàn)仿真(一) 測試使用的儀器與軟件儀器康芯GW48系列EDA設(shè)備-GW48-PK2實(shí)驗(yàn)電路圖和適用范圍:本實(shí)驗(yàn)適用模式3,其結(jié)構(gòu)圖如下1.Altera公司的Cyclone系列的EP2C5T144C8芯片2.康芯教學(xué)實(shí)驗(yàn)箱軟件Quartus IIQuartus II 是Altera公司的綜合性PLD開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌

8、自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD設(shè)計(jì)流程以下為使用Quartus II軟件得到的RTL級視圖(二) 測試方法 注:選擇模式3,此模式下按鍵為琴鍵式,適合本實(shí)驗(yàn)演奏。1.打開Quartus軟件,file-NewProjectWizard-選擇程序e_piano2.2.Assignment-Device-設(shè)置芯片為Cyclone系列的EP2C5T144C83.定義管腳如下clkPIN_128index2PIN_3code0PIN_39index3PIN_4code1PIN_40index4PIN_5code2PIN_41index5PIN_6code3PIN_42i

9、ndex6PIN_7dPIN_47index7PIN_10index0PIN_1spkPIN_129index1PIN_2下圖為管腳定義界面4.定義完成后再次編譯,再執(zhí)行Programmer,選中e_piano.sof,開始下載。下圖為編譯下載界面5.下載完成后控制按鍵,觀察音調(diào)準(zhǔn)確,聲音清晰,數(shù)碼管能夠正常顯示音調(diào)。實(shí)驗(yàn)總結(jié) 根據(jù)老師的要求,我們先一起通過所學(xué)知識討論了設(shè)計(jì)原理,不懂的問了下其他同學(xué),最后定制出了大致計(jì)劃。在具體設(shè)計(jì)過程中,我們根據(jù)步驟逐次檢驗(yàn),查閱了有關(guān)資料,主要包括王金明:Verilog HDL程序設(shè)計(jì)教程以及潘松,黃繼業(yè),潘明的EDA技術(shù)實(shí)用教程在初次編寫分頻模塊時(shí)候,

10、使用的是比較基本的計(jì)數(shù)器分頻法,編寫程序后在modelsim軟件中進(jìn)行了仿真,發(fā)現(xiàn)無法觀察到分頻情況。經(jīng)過分析,原因是由于分頻比過大,因此在波形圖中很難觀察到。而且由于預(yù)分頻的占空比很小,更難以觀察到高電平。在原因找到后,為了考察程序的性能,我們將輸入頻率減小。同時(shí)適當(dāng)縮小分頻比,這樣就得到了模塊仿真中的分頻波形。通過此次實(shí)驗(yàn),我們不僅學(xué)會了Quartus II軟件的使用方法,還對集成電路設(shè)計(jì)有了更深的認(rèn)識,對專業(yè)知識得到了加強(qiáng)。同時(shí)認(rèn)識到了自己的不足,比如有些知識已經(jīng)模糊,所以有待于復(fù)習(xí),所謂“溫故而知新”,我們要學(xué)習(xí)的東西還很多。這次的學(xué)習(xí)將對自己以后的研究生學(xué)習(xí)和將來的工作有很大的幫助,

11、也是一次實(shí)踐的鍛煉!參考文獻(xiàn)1. 王金明:Verilog HDL程序設(shè)計(jì)教程 2. 潘松,黃繼業(yè),潘明EDA技術(shù)實(shí)用教程3. 其他網(wǎng)上資料附錄:程序源代碼 /信號定義與說明:/clk:用于產(chǎn)生各種音階頻率的基準(zhǔn)頻率;/key:電子琴音符輸入端口;/speaker:用于激勵(lì)揚(yáng)聲器的輸出信號,本例中為方波信號;/med,high:分別用于顯示中音,高音音符,各驅(qū)動(dòng)一個(gè)數(shù)碼顯示管和LED來顯示;/origin:為數(shù)控分頻模塊提供音符頻率的初始值;module dianziqin(clk,key,speaker,med,high); input clk; /12MHZ input 7:0 key; o

12、utput speaker; output high; /高音顯示 output 3:0 med; /中音顯示 reg 13:0 divider; /分頻系數(shù)和初始值 reg 13:0 origin; reg speaker; reg high; reg 3:0 med; wire preclk; assign preclk=(divider=16383)?1:0; /14位,對時(shí)鐘頻率進(jìn)行預(yù)分頻 always(posedge clk) begin if(preclk) divider=origin; else divider=divider+1; end always(posedge pre

13、clk) begin speaker=speaker; /進(jìn)行2分頻,拓寬波形,產(chǎn)生方波信號 end parameter do=8'b00000001, re=8'b00000010, mi=8'b00000100, fa=8'b00001000, so=8'b00010000, la=8'b00100000, xi=8'b01000000, do_=8'b10000000; /狀態(tài)編碼,采用獨(dú)熱碼編碼方式 always(key) /分頻比預(yù)置 case(key) do: begin origin=4917; med=1; high=0; end re: begin origin=6167; med=2; high=0; end mi: begin origin=7282; med=3; high=0; end fa: begin origin=7793; med=4; high=0; end so: begin origi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論