基于EDA音樂(lè)播放器的設(shè)計(jì)



《基于EDA音樂(lè)播放器的設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于EDA音樂(lè)播放器的設(shè)計(jì)(16頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 長(zhǎng) 沙 學(xué) 院 課程設(shè)計(jì)說(shuō)明書 題目 音樂(lè)播放器的設(shè)計(jì) 系(部) 電子與通信工程 專業(yè)(班級(jí)) 電氣工程及其自動(dòng)化(一班) 姓名 學(xué)號(hào) 指導(dǎo)教師 起止日期 2010-11-29至2010-12-10 EDA技術(shù)課程設(shè)計(jì)任務(wù)書 系(部):電子與通信工程系 專業(yè):電氣工程及其自動(dòng)化 指導(dǎo)教師: 課題名稱 音樂(lè)播放器的設(shè)計(jì)
2、 設(shè)計(jì)內(nèi)容及要求 在SOPC開發(fā)平臺(tái)上實(shí)現(xiàn)一個(gè)音頻信號(hào)發(fā)生器,編寫3段音樂(lè),利用開發(fā)平臺(tái)的蜂鳴器來(lái)播放幾段音樂(lè)。可進(jìn)行自動(dòng)循環(huán)播放和手動(dòng)播放兩個(gè)模式的選擇。如果為手動(dòng)播放,則通過(guò)撥動(dòng)撥碼開關(guān)第1、2位選擇。播放音樂(lè)時(shí),要求將該音樂(lè)的序號(hào)(分別為A1、A2,A3)以及該音樂(lè)播放剩余的時(shí)間(分、秒)顯示在數(shù)碼管上。當(dāng)某首音樂(lè)開始播放時(shí),音樂(lè)序號(hào)閃爍顯示3秒鐘。 系統(tǒng)提供50MHZ頻率的時(shí)鐘源。完成該系統(tǒng)的硬件和軟件的設(shè)計(jì),并制作出實(shí)物裝置,調(diào)試好后并能實(shí)際運(yùn)用(指導(dǎo)教師提供制作所需的器件),最后就課程設(shè)計(jì)本身提交一篇課程設(shè)計(jì)說(shuō)明書。 設(shè)計(jì)工作量 1、VHDL語(yǔ)言程序設(shè)計(jì); 2、波形仿真
3、; 3、在實(shí)驗(yàn)裝置上進(jìn)行硬件測(cè)試,并進(jìn)行演示; 4、提交一份完整的課程設(shè)計(jì)說(shuō)明書,包括設(shè)計(jì)原理、程序設(shè)計(jì)、程序分析、仿真分析、硬件測(cè)試、調(diào)試過(guò)程,參考文獻(xiàn)、設(shè)計(jì)總結(jié)等。 進(jìn)度安排 起止日期(或時(shí)間量) 設(shè)計(jì)內(nèi)容(或預(yù)期目標(biāo)) 備注 第1天 課題介紹,答疑,收集材料 第2天 設(shè)計(jì)方案論證 第3天 進(jìn)一步討論方案, 對(duì)設(shè)計(jì)方案進(jìn)行必要的修正,方案確定后開始進(jìn)行VHDL語(yǔ)言程序設(shè)計(jì) 第4天 設(shè)計(jì)VHDL語(yǔ)言程序 第5~9天 在實(shí)驗(yàn)裝置上進(jìn)行硬件測(cè)試,對(duì)VHDL語(yǔ)言程序進(jìn)行必要的修正,并進(jìn)行演示 第10天 編寫設(shè)計(jì)說(shuō)明書 教研室 意見
4、 年 月 日 系(部)主管領(lǐng)導(dǎo)意見 年 月 日 長(zhǎng)沙學(xué)院課程設(shè)計(jì)鑒定表 姓名 學(xué)號(hào) 專業(yè) 電氣工程及其自動(dòng)化 班級(jí) 一 班 設(shè)計(jì)題目 音樂(lè)播放器的設(shè)計(jì) 指導(dǎo)教師 指導(dǎo)教師意見: 評(píng)定等級(jí): 教師簽名: 日期: 答辯小組意見: 評(píng)定等級(jí): 答辯小組長(zhǎng)簽名: 日期: 教研室意見: 教研室主任簽名: 日期:
5、 系(部)意見: 系主任簽名: 日期: 說(shuō)明 課程設(shè)計(jì)成績(jī)分“優(yōu)秀”、“良好”、“及格”、“不及格”四類; 目錄 摘要 5 設(shè)計(jì)原理 5 程序: 6 實(shí)驗(yàn)現(xiàn)象: 14 引腳分配: 14 仿真波形: 15 心得體會(huì): 16 參考文獻(xiàn): 16 摘要: 在SOPC開發(fā)平臺(tái)上實(shí)現(xiàn)一個(gè)音頻信號(hào)發(fā)生器,編寫3段音樂(lè),利用開發(fā)平臺(tái)的蜂鳴器來(lái)播放幾段音樂(lè)。可進(jìn)行自動(dòng)循環(huán)播放和手動(dòng)播放兩個(gè)模式的選擇。如果為手動(dòng)播
6、放,則通過(guò)撥動(dòng)撥碼開關(guān)第1、2位選擇。播放音樂(lè)時(shí),要求將該音樂(lè)的序號(hào)(分別為A1、A2,A3)以及該音樂(lè)播放剩余的時(shí)間(分、秒)顯示在數(shù)碼管上。當(dāng)某首音樂(lè)開始播放時(shí),音樂(lè)序號(hào)閃爍顯示3秒鐘。 關(guān)鍵字: SOPC、音頻信號(hào)、音樂(lè)、蜂鳴器、自動(dòng)循環(huán)、手動(dòng)播放、剩余時(shí)間(分鐘、秒鐘)顯示、音樂(lè)序號(hào)(A1、A2、A3)顯示。 設(shè)計(jì)原理: 首先采用分塊設(shè)計(jì)法,將設(shè)計(jì)分為分頻模塊、時(shí)間動(dòng)態(tài)掃描顯示模塊、音樂(lè)播放模塊、頂層模塊。其中音樂(lè)播放模塊又可分為音頻模塊、音樂(lè)代碼模塊,預(yù)置數(shù)模塊 利用計(jì)數(shù)的方式將50MHZ的頻率分為12MHz、100Hz、8Hz、1Hz。 音樂(lè)播放模塊需要完
7、成以下設(shè)計(jì): ①預(yù)置樂(lè)曲,本次設(shè)計(jì)選取了《梁祝》的一段作預(yù)置,在作預(yù)置時(shí),需要將樂(lè)曲音符轉(zhuǎn)換成相應(yīng)的代碼,通過(guò)計(jì)算逐一將音符轉(zhuǎn)換成代碼,通過(guò)EDA開發(fā)平臺(tái)quartus Ⅱ進(jìn)行樂(lè)曲定制; ②為了提供樂(lè)曲發(fā)音所需要的發(fā)音頻率,編寫數(shù)控分頻器程序,對(duì)單一輸入高頻,進(jìn)行預(yù)置數(shù)分頻,生成每個(gè)音符發(fā)音的相應(yīng)頻率; ③為了給分頻提供預(yù)置數(shù),需要計(jì)算分頻預(yù)置數(shù); 對(duì)每部分結(jié)構(gòu)單元逐一進(jìn)行編譯,生成相應(yīng)的元器件符號(hào),并對(duì)獨(dú)立結(jié)構(gòu)單元功能進(jìn)行仿真。 音調(diào)的控制 頻率的高低決定了音調(diào)的高低。綜合考慮各因素,本次設(shè)計(jì)中選取12MHZ作為CLK的分頻計(jì)數(shù)器的輸入分頻信號(hào)。由于樂(lè)曲都是由一連串的音符組成,因
8、此按照樂(lè)曲的樂(lè)譜依次輸出這些音符相對(duì)應(yīng)的頻率,就可以在蜂鳴器上連續(xù)地發(fā)出各個(gè)音符的音調(diào)。 表1 簡(jiǎn)譜中的音名與頻率的關(guān)系 音名 頻率/Hz 音名 頻率/Hz 音名 頻率/Hz 低音1 261.6 中音1 523.3 高音1 1045.5 低音2 293.7 中音2 587.3 高音2 1174.7 低音3 329.6 中音3 659.3 高音3 1318.5 低音4 349.2 中音4 698.5 高音4 1396.9 低音5 392 中音5 784 高音5 1568 低音6 440 中音6 880 高音6
9、1760 低音7 493.9 中音7 987.8 高音7 1975.5 音長(zhǎng)的控制 這次設(shè)計(jì)中所演奏的樂(lè)曲的最短的音符為四分音符,如果將全音符的持續(xù)時(shí)間設(shè)為1s的話,那么一拍所應(yīng)該持續(xù)的時(shí)間為0.25秒,則只需要再提供一個(gè)4Hz的時(shí)鐘頻率即可產(chǎn)生四分音符的時(shí)長(zhǎng)。系統(tǒng)工作時(shí)就按4Hz的頻率依次讀取簡(jiǎn)譜,當(dāng)系統(tǒng)讀到某個(gè)音符的簡(jiǎn)譜時(shí)就對(duì)應(yīng)發(fā)這個(gè)音符的音調(diào),持續(xù)時(shí)間為0.25秒.如果在曲譜文件中某個(gè)音符為三拍音長(zhǎng),只要將該音符連續(xù)書寫三遍,系統(tǒng)讀樂(lè)曲文件的時(shí)候就會(huì)連續(xù)讀到三次,也就會(huì)發(fā)三個(gè)0.25秒的音長(zhǎng),這時(shí)我們聽上去就會(huì)持續(xù)了三拍的時(shí)間,這樣就可以控制音樂(lè)的音長(zhǎng)了 程序:
10、音樂(lè)播放器頂層模塊 library ieee; use ieee.std_logic_1164.all; entity songer is port(clk50mhz,c:in std_logic; led7s:buffer std_logic_vector(6 downto 0); led_selout:out std_logic_vector(7 downto 0); spkout:out std_logic); end; architecture one of songer is component notetabs port(clk:in std
11、_logic; f1s,f8,f12,fs:out std_logic); end component; component notetabs port(clk:in std_logic; toneindex:out std_logic_vector(3 downto 0)); end component; component tonetaba port(index:in std_logic_vector(3 downto 0); tone:out std_logic_vector(10 downto 0)); end component;
12、component speakera port(clk:in std_logic; tone:in std_logic_vector(10 downto 0); spks:out std_logic); end component; component daojishi port(clk1,clk2,c:in std_logic; led7s:buffer std_logic_vector(6 downto 0); led_selout:out std_logic_vector(7 downto 0)); end component; signal
13、 tone:std_logic_vector(10 downto 0); signal toneindex:std_logic_vector(3 downto 0); signal ff1,ff8,ff12,ffs:std_logic_vector; begin u1:fp port map(clk=>clk50mhz,f1s=>ff1,f8=>ff8,f12=>ff12,fs=>ffs); u2:notetabs port map(clk=>ff8,toneindex=>toneindex); u3:tonetaba port map(index=>toneindex,tone=
14、>tone); u4:speakera port map(clk=>ff12,tone=>tone,spks=>spkout); u5:daojishi port map(clk1=>ff1,clk2=>ffs,c=>c,led7s=>led7s,led_selout=>led_selout); end; 分頻模塊 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity fp is port(clk:in std_logic; f1s,f8,
15、f12,fs:out std_logic); end; architecture bhv of fp is signal a,c,f:std_logic; signal a2,c2,f2:std_logic; begin process(clk) variable cnt24:std_logic_vector(25 downto 0); variable cnt8:std_logic_vector(7 downto 0); begin if clk'event and clk='1' then
16、 if cnt24<"01011111010111100001000000" then cnt24:=cnt24+1; f1s<='0'; elsif cnt24<"10111110101111000010000000" then cnt24:=cnt24+1; f1s<='1'; else cnt24:="00000000000000000000000000"; end if; if cnt8<"1100100" then cnt8:=cnt8+1; fs<=
17、'0'; elsif cnt8<"11001000" then cnt8:=cnt8+1; fs<='1'; else cnt8:="00000000"; end if; end if; end process; process(clk,a) variable cnt:std_logic_vector(2 downto 0); begin if clk'event and clk='1'then if cnt="111"then cnt:="011";
18、 a<='1'; else cnt:=cnt+1;a<='0'; end if; end if; if a'event and a='1'then c<=not c; if c='1'then f<='1'; else f<='0'; end if; end if; f12<=f; end process; process(clk,a2) varia
19、ble cn:std_logic_vector(22 downto 0); begin if clk'event and clk='1'then if cn="10111110101111000010000"then cn:="01011111010111100001000"; a2<='1'; else cn:=cn+1;a<='0'; end if; end if; if a2'event and
20、 a2='1'then c2<=not c2; if c2='1'then f2<='1'; else f2<='0'; end if; end if; f8<=f; end process; end; fp 模塊將50MHz的頻率分為所需要的頻率。 預(yù)置數(shù)模塊 library ieee; use ieee.std_logic_1164.all; entity tonetaba is port(index:in std_logic_vector(3 d
21、ownto 0); tone:out std_logic_vector(10 downto 0)); end; architecture one of tonetaba is signal code:out std_logic_vector(3 downto 0); signal high:out std_logic; begin search:process(index) begin case index is when"0000"=>tone<="11111111111";code<="0000";high<='0'; when"0001"=>tone<="0
22、1100000101";code<="0001";high<='0'; when"0010"=>tone<="01110010000";code<="0010";high<='0'; when"0011"=>tone<="10000001100";code<="0011";high<='0'; when"0101"=>tone<="10010101101";code<="0101";high<='0'; when"0110"=>tone<="10100001010";code<="0110";high<='0'; when"0111"=>tone<="10101011100";cod
23、e<="0111";high<='0'; when"1000"=>tone<="10110000010";code<="0001";high<='1'; when"1001"=>tone<="10111001000";code<="0010";high<='1'; when"1010"=>tone<="11000000110";code<="0011";high<='1'; when"1100"=>tone<="11001010110";code<="0101";high<='1'; when"1101"=>tone<="11010000100";code<="0110";high<
24、='1'; when"1111"=>tone<="11011000000";code<="0001";high<='1'; when others=>null; end case; end process; end; 模塊tonetaba的功能首先是為speakera提供決定音符發(fā)音的分頻預(yù)置數(shù),而此數(shù)在speakera輸入口停留時(shí)間即為此音符的節(jié)拍值。模塊tonetaba是樂(lè)曲簡(jiǎn)譜碼對(duì)應(yīng)的分頻預(yù)置數(shù)查表電路,其中設(shè)置了《梁祝》樂(lè)曲全部音符所對(duì)應(yīng)的分頻預(yù)置數(shù),共13個(gè),每一個(gè)音符的停留時(shí)間由音樂(lè)節(jié)拍和音調(diào)發(fā)生器模塊notetabs的clk輸入頻率決定,在此時(shí)為4HZ。每一個(gè)計(jì)數(shù)值停
25、留時(shí)間為0.25秒,恰為當(dāng)全音符為1秒時(shí),四四拍的4 分音符持續(xù)時(shí)間。這13個(gè)值的輸出由對(duì)應(yīng)于tonetaba的4位輸入值index[3..0]確定,而index[3..0]最多有16種選擇。輸向tonetaba中index[3..0]的值 toneindex[3..0]的輸出值與持續(xù)的時(shí)間由模塊notetabs決定。 音頻模塊 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity speakera is port(clk:in std_logic; to
26、ne:in std_logic_vector(10 downto 0); spks:out std_logic); end; architecture one of speakera is signal preclk,fullspks:std_logic; begin divideclk:process(clk) variable count4:std_logic_vector(3 downto 0); begin preclk<='0'; if count4>11 then preclk<='1'; count4:="0000"; elsif
27、 clk'event and clk='1'then count4:=count4+1; end if; end process; genspks:process(preclk,tone) variable count11:std_logic_vector (10 downto 0); begin if preclk'event and preclk='1' then if count11=16#7ff# then count11:=tone;fullspks<='1'; else count11:=count11+1;fullspks<='0';
28、 end if; end if; end process; delayspks:process(fullspks) variable count2:std_logic; begin if fullspks'event and fullspks='1' then count2:=not count2; if count2='1'then spks<='1'; else spks<='0'; end if; end if; end process; end; 它是由一個(gè)初值可變的加法計(jì)數(shù)器組成。為了得到合適的發(fā)音頻率,在進(jìn)行預(yù)置計(jì)數(shù)分頻之
29、前需要將本文選擇的12MHz初始頻率信號(hào)進(jìn)行十六分頻,采用四位加法計(jì)數(shù)方式分頻,當(dāng)輸入一個(gè)脈沖信號(hào),計(jì)數(shù)器做一次加法計(jì)數(shù),此時(shí)輸入信號(hào)脈寬展寬一倍(即進(jìn)行一次二分頻),十六分頻后得到0.75MHz輸入頻率。由于數(shù)控分頻器輸出的信號(hào)是脈寬很窄的信號(hào),為了有利于驅(qū)動(dòng)揚(yáng)聲器發(fā)音,需要加一個(gè)D觸發(fā)器以均衡占空比,但這樣一來(lái),此時(shí)頻率變?yōu)樵瓉?lái)的二分之一即0.375MHZ??深A(yù)置計(jì)數(shù)分頻器就是將0.375MHZ按照各音符發(fā)音所需要的頻率值進(jìn)行預(yù)置數(shù)分頻。這里計(jì)數(shù)器設(shè)為11位(tone[10..0]),模為2047。若取音符3發(fā)音頻率為659Hz,需要將0.375MHz進(jìn)行約569次分頻才能得到此頻率。預(yù)置
30、數(shù)即可用公式“模-分頻系數(shù)=預(yù)置數(shù)tone[10..0]”算出,此時(shí)為“2047-569=1478(換成11位二進(jìn)制計(jì)數(shù)為10111000110)”。 音樂(lè)代碼模塊 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity notetabs is port (clk:in std_logic; toneindex:out std_logic_vector(3 downto 0)); end; architecture one of notetabs is
31、 component music port(address:in std_logic_vector(7 downto 0); clock:in std_logic; q:out std_logic_vector(3 downto 0)); end component; signal counter:std_logic_vector(7 downto 0); begin cnt8:process(clk,counter) begin if counter=138 then counter<="00000000"; elsif clk'event and
32、 clk='1' then counter<=counter+1;end if; end process; u1:music port map(address=>counter,q=>toneindex,clock=>clk); end; notetabs中設(shè)置了一個(gè)8位二進(jìn)制計(jì)數(shù)器,作為音符數(shù)據(jù)的地址發(fā)生器。隨著notetabs中的計(jì)數(shù)器按照4Hz的時(shí)鐘速率作加法計(jì)數(shù)時(shí),每讀一個(gè)數(shù)據(jù),音符持續(xù)時(shí)間為0.25秒,如音符數(shù)據(jù)中的中音3,為一拍,持續(xù)時(shí)間1秒,所以,音符數(shù)據(jù)ROM中需要重復(fù)寫四次地址0A,隨著4Hz時(shí)鐘速率讀取地址遞增,音符數(shù)據(jù)ROM中的音符數(shù)據(jù)將通過(guò)模塊notetabs中
33、toneindex[3..0]端口輸向tonetaba模塊。 《梁祝》音符數(shù)據(jù)ROM 以下排列方法是為了節(jié)省空間,實(shí)際文件每一組占一行。 width=4; depth=256; address_radix=dec; data_radix=dec; content begin 00:3;01:3;02:3;04:5:05:5;06:5;07:6;08:8;09:8; 10:8;11:9;12:6;13:8;14:5;15:5;16:12;17:12;18:12;19:15; 20:13;21:12;22:10;23:12;24:9;25:9;26:9;27:9;28:9;
34、29:9; 30:9;31:0;32:9;33:9;34:9;35:10;36:7;37:7;38:6;39:6; 40:5;41:5;42:5;43:6;44:8;45:8;46:9;47:9;48:3;49:3; 50:8;51:8;52:6;53:5;54:6;55:8;56:5;57:5;58:5;59:5; 60:5;61:5;62:5;63:5;64:10;65:10;66:10;67:12;68:7;69:7; 70:9;71:9;72:6;73:8;74:5;75:5;76:5;77:5;78:5;79:5; 80:3;81:5;82:3;83:3;84:5;85:
35、6;86:7;87:9;88:6;89:6; 90:6;91:6;92:6;93:6:94:5;95:6;96:8;97:8;98:8;99:9; 100:12;101:12;103:10;104:9;105:9;106:10;107:9;108:8;109:8; 110:6;111:5;112:3;113:3;114:3;115:9;116:8;117:8;118:8;119:8; 120:6;121:8;122:6;123:5;124:3;125:5;126:6;127:8;128:5;129:5; 130:5;131:5;132:5;133:5;134:5;135:5;136:
36、0;137:0;138:0; end; 時(shí)間動(dòng)態(tài)掃描模塊 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity daojishi is port(clk1,clk2,c:in std_logic; led7s:buffer std_logic_vector(6 downto 0); led_selout:out std_logic_vector(7 downto 0)); end; architecture one of daojishi is sig
37、nal f0,f1,f2,fout1,fout2:std_logic; signal a0,a1,a2,a3,h1,h2,k1,k2:std_logic_vector(3 downto 0); signal led71s:std_logic_vector(3 downto 0); signal q0:std_logic_vector(2 downto 0); begin process(clk1) begin if c='1' then a0<="1000"; elsif clk1'event and clk1='1' then if a0="0000"
38、 then a0<="1001"; f0<='1'; else a0<=a0-1; f0<='0'; end if; end if; end process; process(f0) begin if c='1' then a1<="0011"; elsif f0'event and f0='1' then if a1="0000" then a1<="0101"; f1<='1'; else a1<=a1-1;
39、 f1<='0'; end if; end if; end process; process(f1) begin if c='1' then a2<="0010"; elsif f1'event and f1='1' then if a2="0000" then f2<='1'; a2<="1001"; else a2<=a2-1; f2<='0'; end if; end if; end process; process(f2) b
40、egin if c='1' then a3<="0000"; elsif f2'event and f2='1' then if a3="0000" then a3<="0101"; else a3<=a3-1; end if; end if; end process; process(clk2) begin if clk2'event and clk2='1' then q0<=q0+1; end if; end process; process(q0) be
41、gin case q0 is when"000"=>led_selout<="10000000";led71s<=a0; when"001"=>led_selout<="01000000";led71s<=a1; when"010"=>led_selout<="00100000";led71s<="1011"; when"011"=>led_selout<="00010000";led71s<=a2; when"100"=>led_selout<="00001000";led71s<=a3; when"101"=>led_selout<="00000100
42、";led71s<="1011"; when"110"=>led_selout<="00000010";led71s<="0001"; when"111"=>led_selout<="00000001";led71s<="1010"; when others=>null; end case; end process; process(led71s) begin case led71s is when"0000"=>led7s<="1000000"; when"0001"=>led7s<="1111001"; when"0010"=>led7s<="01001
43、00"; when"0011"=>led7s<="0110000"; when"0100"=>led7s<="0011001"; when"0101"=>led7s<="0010010"; when"0110"=>led7s<="0000010"; when"0111"=>led7s<="1111000"; when"1000"=>led7s<="0000000"; when"1001"=>led7s<="0010000"; when"1010"=>led7s<="0001000"; when"1011"=>led7s<="0111111"; when others=>nu
44、ll; end case; end process; end; daojishi 模塊將音樂(lè)的剩余時(shí)間通過(guò)動(dòng)態(tài)掃描的方式顯示到七段數(shù)碼管上。 實(shí)驗(yàn)現(xiàn)象: 將songer 工程的SOF文件下載到Creat->SOPC2000的SOPC板上可以播放出《梁?!返男?,同時(shí)音樂(lè)的剩余時(shí)間開始倒計(jì)時(shí)。 引腳分配: 表2 引腳分配圖 C Pin_M3 Led7s[4] Pin_F1 Led_selout[2] Pin_H3 Clk Pin_J3 Led7s[5] Pin_G2 Led_selout[3] Pin_H4 Led7s[0] Pin_G4 L
45、ed7s[6] Pin_G1 Led_selout[4] Pin_H1 Led7s[1] Pin_G3 Led7s[7] Pin_H2 Led_selout[5] Pin_L2 Led7s[2] Pin_E2 Led_selout[0] Pin_L3 Led_selout[6] Pin_K4 Led7s[3] Pin_F2 Led_selout[1] Pin_L4 Spkout Pin_F14 仿真波形: 圖1 分頻模塊波形圖 圖2 時(shí)間動(dòng)態(tài)掃描模塊波形圖 圖3 音樂(lè)播放模塊波形圖 圖4 總工程波形 心得體會(huì):
46、在這次課程設(shè)計(jì)中,曾遇到許多的問(wèn)題,特別是音樂(lè)播放模塊。由于自己所學(xué)有限,在音符數(shù)據(jù)ROM的設(shè)計(jì)中錯(cuò)誤不斷,最終在老師的幫助和自己的努力下解決了這個(gè)問(wèn)題。在仿真實(shí)驗(yàn)時(shí)遇到一些意想不到的問(wèn)題,比如音樂(lè)倒計(jì)時(shí)能正常顯示,但音樂(lè)播放不出來(lái)等。經(jīng)過(guò)此次設(shè)計(jì),我真正學(xué)會(huì)了模塊設(shè)計(jì)法,對(duì)ROM宏模塊的運(yùn)用也有了一定的理解。在此次設(shè)計(jì)中懂得了獨(dú)立思考,自學(xué)的重要性,不能寄希望與別人。同時(shí)對(duì)自己的不足也認(rèn)識(shí)更加清楚,在以后的學(xué)習(xí),工作中不斷提高自己。 參考文獻(xiàn): 1. 潘松,黃繼業(yè). EDA技術(shù)與VHDL(第三版). 北京: 清華大學(xué)出版社, 2010 2. 周鳳臣,聶春燕. EDA技術(shù)實(shí)驗(yàn)與課程設(shè)計(jì). 北京:清華大學(xué)出版社,2006 3. 謝明華,張文希. EDA技術(shù)實(shí)驗(yàn)指導(dǎo)書. 2007 4. 王新,付子義. EDA技術(shù)與虛擬實(shí)驗(yàn). 北京:中國(guó)礦業(yè)大學(xué)出版社, 2006 16
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 離心泵的檢修各零部件檢修標(biāo)準(zhǔn)
- 金屬材料疲勞強(qiáng)度的八大主要影響因素
- 機(jī)械安全知識(shí)
- 電機(jī)的工作原理與種類
- 設(shè)備點(diǎn)檢內(nèi)容
- 有效防止液壓系統(tǒng)漏油的技術(shù)要領(lǐng)
- 鈑金和管工機(jī)械安全操作規(guī)程
- 閥門的100個(gè)專業(yè)術(shù)語(yǔ)
- 某單位機(jī)械設(shè)備安全檢查表
- 離心泵的汽蝕與吸入特性
- 過(guò)濾網(wǎng)目數(shù)標(biāo)準(zhǔn)
- 減少設(shè)備潤(rùn)滑故障的措施
- 離心泵機(jī)械密封安裝使用規(guī)則
- 閥門常見故障與原因
- 呼吸閥和真空破壞閥基礎(chǔ)知識(shí)總結(jié)
相關(guān)資源
更多