用Quartus II設(shè)計電子琴

上傳人:fgh****35 文檔編號:247643003 上傳時間:2024-10-20 格式:PPT 頁數(shù):29 大?。?06KB
收藏 版權(quán)申訴 舉報 下載
用Quartus II設(shè)計電子琴_第1頁
第1頁 / 共29頁
用Quartus II設(shè)計電子琴_第2頁
第2頁 / 共29頁
用Quartus II設(shè)計電子琴_第3頁
第3頁 / 共29頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《用Quartus II設(shè)計電子琴》由會員分享,可在線閱讀,更多相關(guān)《用Quartus II設(shè)計電子琴(29頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,電子琴設(shè)計,設(shè)計要求,設(shè)計一個八音電子琴。,由鍵盤輸入控制音響,同時可自動演奏樂曲。,用戶可以將自己編制的樂曲存入電子琴,演奏時可選擇鍵盤輸入樂曲或者已存入的樂曲。,系統(tǒng)組成,系統(tǒng)由數(shù)控分頻器和樂曲存儲模塊組成。,數(shù)控分頻器對,FPGA,的基準(zhǔn)頻率進(jìn)行分頻,得到與各個音階對應(yīng)的頻率輸出。,樂曲存儲模塊產(chǎn)生節(jié)拍控制和音階選擇信號,即在此模塊中可存放一個樂曲曲譜真值表,由一個計數(shù)器來控制此真值表的輸出,而由計數(shù)器的計數(shù)時鐘信號作為樂曲節(jié)拍控制信號。,模塊設(shè)計,1.,頂層模塊的設(shè)計,2.,自動演奏模塊,(,au

2、tomusic,),的設(shè)計,3.,音調(diào)發(fā)生器,(tone),模塊的設(shè)計,4.,數(shù)控分頻模塊(,speaker,)的設(shè)計,1.,頂層模塊的設(shè)計,頂層模塊由樂曲自動演奏(,automusic,),音調(diào)發(fā)生器(,tone,)和數(shù)控分頻器(,speaker,)三個模塊組成。,其中樂曲演奏部分又包括了鍵盤編碼。,設(shè)置一個自動演奏,/,鍵盤輸入切換,auto,,即當(dāng),auto=“0”,時,選擇自動演奏音樂存儲器里面的樂曲,,auto=“1”,時,選擇鍵盤輸入的信號。,頂層設(shè)計原理圖,2.,自動演奏模塊,(,automusic,),的設(shè)計,音樂存儲模塊的作用是產(chǎn)生,8,位發(fā)聲控制輸入,index,。,當(dāng),a

3、uto,為“,0”,時,由存儲在此模塊中的,8,位二進(jìn)制數(shù)作為發(fā)聲控制輸入,可自動演奏樂曲。,此模塊的,VHDL,程序中包括兩個進(jìn)程,首先是對時基脈沖進(jìn)行分頻得到,4Hz,的脈沖,作為第二個進(jìn)程的時鐘信號,它用來控制每個音階之間的停頓時間,,1/4=0.25s,;第二個進(jìn)程是音樂的存儲,可根據(jù)需要編寫不同的樂曲。,3.,音調(diào)發(fā)生器,(tone),模塊的設(shè)計,音調(diào)發(fā)生器的作用是產(chǎn)生獲得音階的分頻預(yù)置值。,當(dāng),8,位發(fā)聲控制輸入,index,中的某一位為高電平時,則對應(yīng)某一音階的數(shù)值將在端口,tone,輸出,該數(shù)值即為該音階的分頻預(yù)置值,分頻預(yù)置值控制數(shù)控分頻器來對,4MHz,的脈沖進(jìn)行分頻,由此

4、可得到每個音階對應(yīng)的頻率。,例如輸入,index=“00000010”,,即對應(yīng)的按鍵是,2,,產(chǎn)生的分頻系數(shù)便是,6809,;,code,輸出對應(yīng)該音階簡譜的顯示數(shù)碼;,high,輸出指示音階高,8,度,低電平有效。,4.,數(shù)控分頻模塊(,speaker,)的設(shè)計,數(shù)控分頻模塊對時基脈沖進(jìn)行分頻,得到與,1,、,2,、,3,、,4,、,5,、,6,、,7,七個音符對應(yīng)頻率。,該模塊的,VHDL,程序中包含了三個進(jìn)程。,首先對,FPGA,的,32MHz,的時基脈沖進(jìn)行分頻得到,8MHz,的脈沖,,然后按照,tone1,輸入的分頻系數(shù)對,8MHz,的脈沖再次分頻,得到所需要的音符頻率。,第三個進(jìn)

5、程的作用是在音調(diào)輸出時再進(jìn)行二分頻,將脈沖展寬,使揚(yáng)聲器有足夠發(fā)聲功率。,電子琴程序設(shè)計與仿真,電子琴程序設(shè)計與仿真,1.,頂層程序與仿真,2.,音階發(fā)生器程序與仿真,3.,數(shù)控分頻模塊程序與仿真,4.,自動演奏模塊程序與仿真,1.,頂層程序與仿真,-,文件名:,top.vhd,-,功能:頂層文件,-,最后修改日期:,2004.3.20,library IEEE;,use IEEE.STD_LOGIC_1164.ALL;,use IEEE.STD_LOGIC_ARITH.ALL;,use IEEE.STD_LOGIC_UNSIGNED.ALL;,entity top is,Port(clk32

6、MHz :in,std_logic,;-32MHz,系統(tǒng)時鐘,handTOauto,:in,std_logic,;-,鍵盤輸入,/,自動演奏,code1 :out std_logic_vector(6,downto,0);-,音符顯示信號,index1 :in std_logic_vector(7,downto,0);-,鍵盤輸入信號,high1 :out,std_logic,;-,高低音節(jié)信號,spkout,:out,std_logic,);-,音頻信號,end top;,architecture Behavioral of top is,component,automusic,Port(,

7、clk,:in,std_logic,;,Auto:in,std_logic,;,index2:in std_logic_vector(7,downto,0);,index0:out std_logic_vector(7,downto,0);,end component;,component tone,Port(index:in std_logic_vector(7,downto,0);,code:out std_logic_vector(6,downto,0);,high:out,std_logic,;,tone0:out integer range 0 to 2047);,end compo

8、nent;,component speaker,Port(clk1:in,std_logic,;,tone1:in integer range 0 to 2047;,spks,:out,std_logic,);,end component;,signal tone2:integer range 0 to 2047;,signal indx:std_logic_vector(7,downto,0);,begin,u0:automusic port,map(clk,=clk32MHZ,index2=index1,index0=,indx,Auto,=,handtoAuto,);,u1:tone p

9、ort,map(index,=indx,tone0=tone2,code=code1,high=high1);,u2:speaker port map(clk1=clk32MHZ,tone1=tone2,spks=,spkout,);,end Behavioral;,(頂層文件仿真圖),2.,音階發(fā)生器程序與仿真,-,文件名:,tone.vhd,。,-,功能:音階發(fā)生器程序。,-,最后修改日期:,2004.4.13,。,library IEEE;,use IEEE.STD_LOGIC_1164.ALL;,use IEEE.STD_LOGIC_ARITH.ALL;,use IEEE.STD_LO

10、GIC_UNSIGNED.ALL;,entity tone is,Port(index:in std_logic_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 Behavioral of tone is,begin,search:,process(index,),-,此進(jìn)程完成音符到音符的分頻系

11、數(shù)譯碼,音符的顯示,高低音階,begin,case index is,when 00000001=tone0=773;code=1001111;high tone0=912;code=0010010;high tone0=1036;code=0000110;high tone0=1116;code=1001100;high tone0=1197;code=0100100;high tone0=1290;code=0100000;high tone0=1372;code=0001111;high tone0=1410;code=0000000;high tone0=2047;code=00000

12、01;high=0;,end case;,end process;,end Behavioral;,(音階發(fā)生器仿真圖),3.,數(shù)控分頻模塊程序與仿真,-,文件名:,speaker.vhd,。,-,功 能:實(shí)現(xiàn)數(shù)控分頻。,-,最后修改日期:,20004.3.19,。,library IEEE;,use IEEE.STD_LOGIC_1164.ALL;,use IEEE.STD_LOGIC_ARITH.ALL;,use IEEE.STD_LOGIC_UNSIGNED.ALL;,entity speaker is,Port(clk1 :in,std_logic,;-,系統(tǒng)時鐘,tone1:in i

13、nteger range 0 to,2047,;-,音符分頻系數(shù),spks,:out,std_logic,);-,驅(qū)動揚(yáng)聲器的音頻信號,end speaker;,architecture Behavioral of speaker is,signal,preclk,fullspks:std_logic,;,begin,pulse1:process(clk1),-,此進(jìn)程對系統(tǒng)時鐘進(jìn)行,4,分頻,variable,count:integer,range 0 to 8;,begin,if clk1event and clk1=1 then count:=count+1;,if count=2 th

14、en,preclk,=1;,elsif,count=4 then,preclk,=0;count:=0;,end if;,end if;,end process pulse1;,genspks:process(preclk,tone1)-,此進(jìn)程按照,tone1,輸入的,-,分頻系數(shù)對,8MHz,的脈沖再次分頻,得到所需要的音符頻率,variable count11:integer range 0 to 2047;,Begin,if,preclkevent,and,preclk,=1 then,if count11tone1 then,count11:=count11+1;fullspks=1

15、;,else count11:=0;fullspks=0;,end if;,end if;,end process;,delaysps:process(fullspks,)-,此進(jìn)程對,fullspks,進(jìn)行,2,分頻,variable count2:,std_logic,:=0;,begin,if,fullspksevent,and,fullspks,=1 then,count2:=not count2;,if count2=1 then,spks,=1;,else,spks,=0;,end if;,end if;,end process;,end Behavioral,;,(數(shù)控分頻模塊仿

16、真圖),4.,自動演奏模塊程序與仿真,-,文件名:,automusic.vhd,-,功 能:實(shí)現(xiàn)自動演奏功能。,-,最后修改日期:,2004.3.19,。,library IEEE;,use IEEE.STD_LOGIC_1164.ALL;,use IEEE.STD_LOGIC_ARITH.ALL;,use IEEE.STD_LOGIC_UNSIGNED.ALL;,entity,automusic,is,Port(,clk,Auto,:in,std_logic,;-,系統(tǒng)時鐘;鍵盤輸入,/,自動演奏,index2:in std_logic_vector(7,downto,0);-,鍵盤輸入信號,index0:out std_logic_vector(7,downto,0);-,音符信號輸出,end,automusic,;,architecture Behavioral of,automusic,is,signal count0:integer range 0 to 31;-change,signal clk2:std_logic;,begin,pulse0:process(clk,Au

展開閱讀全文
溫馨提示:
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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!