![簡易電子琴設計_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/8f22a46d-ea84-4af6-be21-20fa34c7747b/8f22a46d-ea84-4af6-be21-20fa34c7747b1.gif)
![簡易電子琴設計_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/8f22a46d-ea84-4af6-be21-20fa34c7747b/8f22a46d-ea84-4af6-be21-20fa34c7747b2.gif)
![簡易電子琴設計_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/8f22a46d-ea84-4af6-be21-20fa34c7747b/8f22a46d-ea84-4af6-be21-20fa34c7747b3.gif)
![簡易電子琴設計_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/8f22a46d-ea84-4af6-be21-20fa34c7747b/8f22a46d-ea84-4af6-be21-20fa34c7747b4.gif)
![簡易電子琴設計_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/8f22a46d-ea84-4af6-be21-20fa34c7747b/8f22a46d-ea84-4af6-be21-20fa34c7747b5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、EDA技術(shù)課程大作業(yè) 設計題目: 簡易電子琴設計 學生姓名: 郭天橋 學 號: 41203040506 專業(yè)班級: 電氣工程及其自動化5班 2014年 12 月 17 日0 目錄1.設計背景和方案-2 1.1設計背景- 2 1.2設計方案-2 1.2.1樂曲演奏模塊-31.2.2音調(diào)發(fā)生模塊-31.2.3數(shù)控分頻模塊-42.方案實施-52.1頂層設計-52.2系統(tǒng)有關(guān)波形仿真-62.2.1樂曲自動演奏模塊的仿真-72.2.2音調(diào)發(fā)生模塊的仿真-72.2.3數(shù)控分頻模塊的仿真-72.2.4 簡易電子琴整個系統(tǒng)的仿真 -83.結(jié)果和結(jié)論-84.附錄-81.設計背景和設計方案1.1 設計背景隨著ED
2、A技術(shù)的發(fā)展和應用領(lǐng)域的擴大與深入,EDA技術(shù)在電子信息、通信、自動控制、計算機等領(lǐng)域的重要性日益突出。作為一個學電子信息專業(yè)的學生,我們必須不斷地了解更多的新產(chǎn)品信息,這就更加要求我們對EDA有個全面的認識。本程序是簡易電子琴的設計。采用EDA作為開發(fā)工具,VHDL語言為硬件描述語言,所開發(fā)的程序通過調(diào)試運行、波形仿真驗證,奏出美妙的樂曲。1.2 設計方案該簡易電子琴的設計主要包括:樂曲自動演奏模塊,音調(diào)發(fā)聲模塊和數(shù)控分頻模塊三部分。系統(tǒng)的整體組裝設計原理圖如圖1.1所示。圖1.1 簡易電子琴設計的原理圖下該設計分模塊組成,每個單獨的模塊都是一個完整的源程序,分別實現(xiàn)不同性質(zhì)的功能,但是每個
3、模塊又是緊密關(guān)聯(lián)的,前一個模塊的輸出和可能是后一個模塊的輸入。如TONE模塊的音符信號輸出就是FEPIN模塊的音符信號輸入。另外,時鐘脈沖信號在本課程設計中用的最多,用處也最大,一般情況下時鐘信號處上升沿有效,判斷和控制各個計數(shù)器計數(shù)多少。1.2.1樂曲自動演奏模塊曲自動演奏模塊的作用是產(chǎn)生8位發(fā)聲控制輸入信號,當進行自動演奏時,由存儲在此模塊中的8位二進制數(shù)作為發(fā)聲控制輸入,從而自動演奏樂曲。其源程序符號編輯圖如圖1.2所示。圖1.2 樂曲自動演奏模塊的實體該模塊的VHDL源程序主要由3個工作進程組成,分別為PULSE0,MUSIC和COM1。PULSE0的作用是根據(jù)鍵盤輸入自動演奏的值0或
4、1來判斷計數(shù)器COUNT以及脈沖CLK2的輸出值。當確定了時鐘信號輸出的值后,在第二個PROCESS中就可以由它控制8位發(fā)聲控制輸入信號了。即CLK的值為0時,COUNT0為1。最后的COM1便是由前兩個PROCESS所確定的COUNT0、AUTO和鍵盤輸入信號值INDEX將8位的二進制數(shù)轉(zhuǎn)化為音符信號的輸出,達到自動演奏的目的。本模塊的最主要用途是將輸入二進制轉(zhuǎn)化為發(fā)聲控制輸入,是產(chǎn)生音符的重要步驟。1.2.2音調(diào)發(fā)生模塊音調(diào)發(fā)生模塊的作用是給音符輸入預設頻率值。當8位發(fā)聲控制輸入信號中的某一位為高電平時,則對應某一音節(jié)的數(shù)值將輸出,該數(shù)值即為該音階的分頻預置值,分頻預置值控制數(shù)控分頻模塊進
5、行分頻,由此可得到每個音階對應的頻率。其源程序符號編輯圖如圖1.3所示。圖1.3 音調(diào)發(fā)聲模塊的實體該模塊的唯一輸入信號INDEX對應就是自動模塊中的最后的輸出INDEX0,音符顯示信號CODE,高低音顯示信號HIGH和音符分頻系數(shù)都是根據(jù)音符輸入確定的。比如我們自定義INDEX第八位為高電平時,它的分頻系數(shù)則為773HZ,音符顯示信號為1001111,即773的二進制表示,此時高低音顯示1表示高音。電子琴最終要實現(xiàn)樂曲演奏就是輸出不同頻率的正弦波,此模塊就是將二進制發(fā)聲信號轉(zhuǎn)化為對應的頻率。1.2.3數(shù)控分頻模塊數(shù)控分頻模塊是對時基脈沖進行分頻,得到與1、2、3、4、5、6、7七個音符相對應
6、的頻率,其源程序符號編輯圖如圖1.4所示。圖1.4 數(shù)控分頻模塊的實體該模塊主要由4個工作進程組成。首先,根據(jù)系統(tǒng)時鐘信號的輸入得到時基脈沖以及計數(shù)器的值,而時鐘信號在AUTO模塊中便已給出,兩者之間的設置關(guān)系類似于AUTO模塊中第一個工作進程的設置。第二個PROCESS是此模塊的核心,即由時基脈沖值轉(zhuǎn)化為音符頻率。最后一個PROCESS則是用來設置揚聲器輸出信號的,揚聲器信號由0和1控制,當且僅當前一個PROCESS中的FULLSPKS輸出為1時,揚聲器才有輸出,再根據(jù)計數(shù)器取值來確定輸出是1還是0。2.方案實施2.1 頂層設計DIANZIQIN模塊是整個電子琴設計的核心,也是VHDL程序的
7、主程序,前面三個源程序都是作為子程序分別實現(xiàn)電子琴的某一功能,而DIANZIQIN模塊則是通過調(diào)用子程序最終實現(xiàn)樂曲演奏的目的,奏出美妙的樂曲。利用VHDL語言COMPONENT將三個模塊組合起來,其中3個模塊和DIANZIQIN模塊的輸入輸出是一一對應的,比如AUTO對應HSNDTOAUTO,TONEO對應TONE2,SPKS對應SPKOUT等,該模塊的符號編輯圖如圖2.1示。圖 2.1 頂層原理圖2.2 系統(tǒng)有關(guān)波形的仿真系統(tǒng)仿真是在實際系統(tǒng)上進行實驗研究比較困難時適用的必不可少的工具,它是指通過系統(tǒng)模型實驗去研究一個已經(jīng)存在或正在設計的系統(tǒng)的過程,通俗地講,就是進行模型實驗。因而,系統(tǒng)仿
8、真的結(jié)果決定整個課程設計任務完成的到位程度。2.2.1樂曲自動演奏模塊的仿真AUTO模塊編譯完成后,進行波形仿真,仿真波形圖如圖2.2所示。圖2.2 樂曲自動演奏模塊的仿真圖該圖輸入系統(tǒng)時鐘信號CLK初值設為0,自動演奏AUTO設為1,鍵盤輸入信號INDEX2為00,INDEX0為音符信號輸出,是8位的二進制代碼。2.2.2音調(diào)發(fā)生模塊的仿真TONE模塊編譯完成后,進行波形仿真,仿真波形圖如圖2.3所示。圖2.3音調(diào)發(fā)聲模塊的仿真圖該圖輸入音符信號INDEX初值為00,輸出是音符顯示信號CODE為01,高低音顯示信號為0,音符的分頻系數(shù)為11111111111即2047Hz。2.2.3 數(shù)控分
9、頻模塊的仿真PENPIN模塊編譯完成后,進行波形仿真,仿真波形圖如圖2.4所示。圖2.4 數(shù)控分頻模塊仿真圖該圖輸入系統(tǒng)時鐘信號CLK初值為0(各輸出值都是在時鐘信號的下降沿有效),音頻分頻系數(shù)TONE1為00100000000即1290Hz,驅(qū)動揚聲器的音頻信號SPKS輸出為1。2.2.4 簡易電子琴整個系統(tǒng)的仿真整個系統(tǒng)編譯完成后,進行波形仿真,仿真波形圖如圖2.5所示。圖2.5 簡易電子琴整個系統(tǒng)的仿真圖該圖輸入系統(tǒng)時鐘信號CLK初值為0,自動演奏信號HANGORAUTO初值為0,鍵盤輸入信號KEYBOARD為00000000;輸出音符信號NOTE為0110000,高低音節(jié)信號HIGH1
10、變?yōu)?,即高音,音頻信號SPKAKER即輸出0,輸出為1時NOTE變?yōu)?110000,這時出現(xiàn)10ns的延時。3.結(jié)果和結(jié)論在此次設計中,較成功的完成了簡易的八音符電子琴設計,它可通過按鍵輸入來控制音響,系統(tǒng)演奏時可以選擇是手動演奏(由鍵盤輸入)還是自動演奏已存入的樂曲,能夠自動演奏多首樂曲,且樂曲可重復演奏。通過仿真,驗證結(jié)果正確。在此次設計中,通過使用Quartus II和VHDL進行了簡單電子琴設計,較成功的完成了預期的效果。通過本次設計,讓我加深了對課堂上所學到的理論知識的理解,這給我提供了一個在學習生活中很難得的理論聯(lián)系實際的機會,讓我深刻體會到在設計遇到不同問題時,首先應該理解問題
11、關(guān)鍵所在,因為用語言編寫程序需要以仔細認真的態(tài)度,一點點錯誤漏洞將導致整個源程序無法編譯運行,阻礙下一步工作完成進度。4.附 錄附錄1:樂曲自動演奏模塊源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY AUTO ISPORT ( CLK : IN STD_LOGIC; AUTO : IN STD_LOGIC;CLK2 : BUFFER STD_LOGIC;INDEX2 : IN STD_LOGIC_VECTOR(7 DOW
12、NTO 0);INDEX0 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END AUTO;ARCHITECTURE BEHAVIORAL OF AUTO ISSIGNAL COUNT0: INTEGER RANGE 0 TO 31;BEGIN PULSE0 :PROCESS(CLK,AUTO) -工作進程開始VARIABLE COUNT :INTEGER RANGE 0 TO 8; -定義計數(shù)器變量,值從0到8BEGINIF AUTO ='1' THEN -鍵盤輸入1COUNT := 0;CLK2<='0' -計數(shù)器值指0,時鐘信
13、號為0ELSIF(CLK'EVENT AND CLK ='1')THEN-時鐘輸入信號為1COUNT :=COUNT +1; -計數(shù)器加1IF COUNT =4 THEN CLK2 <='1'ELSIF COUNT =8 THEN CLK2<='0' COUNT:=0;END IF ;END IF ;END PROCESS;MUSIC:PROCESS(CLK2)BEGIN IF (CLK2'EVENT AND CLK2='1')THENIF (COUNT0=31)THEN COUNT0<=0;EL
14、SECOUNT0<=COUNT0+1;END IF ;END IF ;END PROCESS;COM1:PROCESS(COUNT0,AUTO,INDEX2)BEGIN IF AUTO ='0' THEN CASE COUNT0 ISWHEN 0=>INDEX0<="00000100"-3WHEN 1=>INDEX0<="00000100"-3WHEN 2=>INDEX0<="00000100"-3WHEN 3=>INDEX0<="00000100&quo
15、t;-3WHEN 4=>INDEX0<="00010000"-5WHEN 5=>INDEX0<="00010000"-5WHEN 6=>INDEX0<="00010000"-5WHEN 7=>INDEX0<="00100000"-6WHEN 8=>INDEX0<="10000000"-8WHEN 9=>INDEX0<="10000000"-8WHEN 10=>INDEX0<="100
16、00000"-8WHEN 11=>INDEX0<="00000100"-3WHEN 12=>INDEX0<="00000010"-2WHEN 13=>INDEX0<="00000010"-2WHEN 14=>INDEX0<="00000001"-1WHEN 15=>INDEX0<="00000001"-1WHEN 16=>INDEX0<="00010000"-5WHEN 17=>INDEX
17、0<="00010000"-5WHEN 18=>INDEX0<="00001000"-4WHEN 19=>INDEX0<="00001000"-4WHEN 20=>INDEX0<="00001000"-4WHEN 21=>INDEX0<="00000100"-3WHEN 22=>INDEX0<="00000010"-2WHEN 23=>INDEX0<="00000010"-2WH
18、EN 24=>INDEX0<="00010000"-5WHEN 25=>INDEX0<="00010000"-5WHEN 26=>INDEX0<="00001000"-4WHEN 27=>INDEX0<="00001000"-4WHEN 28=>INDEX0<="00000100"-3WHEN 29=>INDEX0<="00000100"-3WHEN 30=>INDEX0<="000
19、00010"-2WHEN 31=>INDEX0<="00000010"-2 WHEN OTHERS =>NULL;END CASE;ELSE INDEX0<=INDEX2;END IF;END PROCESS;END BEHAVIORAL;附錄2:音調(diào)發(fā)生模塊源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TONE IS PORT (INDEX: IN STD_LOG
20、IC_VECTOR(7 DOWNTO 0); -音符輸入信號 CODE: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -音符顯示信號 HIGH: OUT STD_LOGIC; -高低音顯示信號 TONE0: OUT INTEGER RANGE 0 TO 2047); -音符的分頻系數(shù)END TONE;ARCHITECTURE ART OF TONE IS BEGIN SEARCH : PROCESS(INDEX)BEGINCASE INDEX IS WHEN "00000001"=>TONE0 <=773;CODE<="1
21、001111"HIGH<='1' -分頻系數(shù)773HZ,音符顯示1001111,顯示低音WHEN "00000010"=>TONE0 <=912;CODE<="0010010"HIGH<='1'WHEN "00000100"=>TONE0 <=1036;CODE<="0000110"HIGH<='1'WHEN "00001000"=>TONE0 <=1116;CODE<
22、;="1001100"HIGH<='1'WHEN "00010000"=>TONE0 <=1197;CODE<="0100100"HIGH<='1'WHEN "00100000"=>TONE0 <=1290;CODE<="0100000"HIGH<='0'WHEN "01000000"=>TONE0 <=1372;CODE<="0001111&qu
23、ot;HIGH<='0'WHEN "10000000"=>TONE0 <=1410;CODE<="0000000"HIGH<='0'WHEN OTHERS =>TONE0<=2047;CODE<="0000001"HIGH<='0' END CASE; END PROCESS;END ART;附錄3:數(shù)控分頻模塊源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC
24、_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FENPIN IS PORT(CLK1: IN STD_LOGIC; -系統(tǒng)時鐘信號 TONE1: IN INTEGER RANGE 0 TO 2047; -音頻分頻系數(shù) SPKS: OUT STD_LOGIC); -驅(qū)動揚聲器的音頻信號END ENTITY FENPIN;ARCHITECTURE ART OF FENPIN ISSIGNAL PRECLK:STD_LOGIC; -定義時基脈沖信號SIGNAL FULLSPKS:STD_LOGIC;BEGINPROCESS(CLK1) VARIABLE COUNT:INTEGER RANGE 0 TO 8; -定義變量計數(shù)器,從0到8BEGIN IF (CLK1'EVENT
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設備類貨物運輸合同
- 私家車租車合同范本
- 木門購買安裝合同范本
- 會展服務協(xié)議合同正規(guī)范本
- 《教師嗓音保健》課件
- 企業(yè)人員借調(diào)合同
- 建筑工程施工總承包合同補充協(xié)議
- 光之教堂調(diào)研報告
- 基于非鉛鈣鈦礦單晶的高性能X射線探測器研究
- 基于雙氰基新型熒光染料生物硫醇熒光探針的構(gòu)建及其性能研究
- 教育環(huán)境分析報告
- 人力資源服務公司章程
- (正式版)CB∕T 4552-2024 船舶行業(yè)企業(yè)安全生產(chǎn)文件編制和管理規(guī)定
- 病案管理質(zhì)量控制指標檢查要點
- 2024年西藏中考物理模擬試題及參考答案
- 九型人格與領(lǐng)導力講義
- 人教版五年級上冊數(shù)學脫式計算練習200題及答案
- 廉潔應征承諾書
- 卵巢黃體囊腫破裂教學查房
- 醫(yī)院定崗定編
- 2023年大學物理化學實驗報告化學電池溫度系數(shù)的測定
評論
0/150
提交評論