




免費(fèi)預(yù)覽已結(jié)束,剩余5頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
天津工業(yè)大學(xué) 通信工程 EDA課程設(shè)計(jì)報(bào)告 EDA課程設(shè)計(jì)題目:樂曲硬件演奏電路的VHDL設(shè)計(jì) 專業(yè):通信工程 班級:通信071 姓名:葛鵬 學(xué)號:0710920101一、設(shè)計(jì)題目:樂曲硬件演奏電路的VHDL設(shè)計(jì)二、設(shè)計(jì)目標(biāo):了解一般樂曲演奏電路設(shè)計(jì)設(shè)計(jì)方法,學(xué)習(xí)VHDL語言,熟悉EDA設(shè)計(jì)軟件QuartusII和MAX+plus,加強(qiáng)獨(dú)立完成電子設(shè)計(jì)的能力。 (1)能夠播放“梁?!睒非?。(2)能夠通過LED顯示音階。(3)(選作)具有“播放/停止”功能,并在此基礎(chǔ)上實(shí)現(xiàn)“按鍵演奏”的電子琴功能。主芯片型號為FLEX10K10LC84-4三、實(shí)驗(yàn)電路的工作原理:(演奏電路邏輯圖) 組成樂曲的每個音符的發(fā)音頻率值及其持續(xù)的時間是樂曲能夠連續(xù)演奏所需的兩個基本要素,設(shè)計(jì)演奏電路的關(guān)鍵就是獲得這兩個要素所對應(yīng)的數(shù)值以及通過純硬件的手段來利用這些數(shù)值實(shí)現(xiàn)所希望樂曲的演奏效果。演奏電路邏輯圖有三部分:音樂節(jié)拍和音調(diào)發(fā)生器、簡譜碼對應(yīng)的分頻預(yù)置數(shù)查表電路、數(shù)控分頻與演奏發(fā)生器。演奏電路邏輯圖:四、設(shè)計(jì)內(nèi)容:1.完成程序的編輯工作。2.將音樂數(shù)據(jù)制作成LMP_ROM文件.3.將程序加載到MAX+plus中進(jìn)行編譯、仿真,并保存仿真結(jié)果。4.到實(shí)驗(yàn)室進(jìn)行下載驗(yàn)證。引腳進(jìn)行鎖定,然后下載到實(shí)驗(yàn)芯片中觀察實(shí)驗(yàn)結(jié)果。五、仿真結(jié)果:1.音樂節(jié)拍和音調(diào)發(fā)生器(NoteTabs.VHD)notetabs模塊中設(shè)置了一個8位二進(jìn)制計(jì)數(shù)器(計(jì)數(shù)最大值138),作為音符數(shù)據(jù)ROM的地址發(fā)生器。這個計(jì)數(shù)器的計(jì)數(shù)頻率選為4Hz,即每一個計(jì)數(shù)值的停留時間為0.25秒,恰為當(dāng)全音符設(shè)為1秒時,四四拍的4分音符持續(xù)時間。隨著notetabs模塊中的計(jì)數(shù)器按4Hz的時鐘速率作為加法計(jì)數(shù)時,即隨地址值遞增時,音符數(shù)據(jù)ROM中的音符數(shù)據(jù)將從ROM中通過ToneIndex3.0端口輸向ToneTaba模塊,“梁祝”樂曲就開始連續(xù)自然的演奏起來了。Notetabs模塊仿真圖:2.簡譜碼對應(yīng)的分頻預(yù)置數(shù)查表電路(ToneTaba.VHD)音符的持續(xù)時間需根據(jù)樂曲的速度及每個音符的節(jié)拍數(shù)來確定,tonetaba模塊的功能首先是為speakera提供決定所發(fā)音符的預(yù)置數(shù),而此數(shù)在speakera輸入口停留的時間即為此音符的節(jié)拍值。Tonetaba模塊是樂曲簡碼對應(yīng)的分頻預(yù)置數(shù)查表電路。其中設(shè)置了“梁?!睒非恳舴鶎?yīng)的分頻預(yù)置數(shù),共13個,每一音符的停留時間由音樂節(jié)拍和音調(diào)發(fā)生器模塊NoteTabs的clk的輸入頻率決定。這13個值的輸出由對應(yīng)于ToneTaba的4位輸入值Index3.0確定,而Index3.0最多有16種可選值。輸向ToneTaba中Index3.0的值ToneIndex3.0的輸出值與持續(xù)時間有模塊notetabs決定。Tonetaba仿真圖:4.數(shù)控分頻與演奏發(fā)生器(Speakera.VHD)音符的頻率可由次模塊獲得,這是一個數(shù)控分頻器,由其clk端輸入一個具有較高頻率的信號,通過speakera分頻后由spkout輸出,由于直接從數(shù)控分頻器中出來的輸出信號是脈沖較窄的脈沖信號,為了有助于驅(qū)動揚(yáng)聲器,需另加一個D觸發(fā)器以均衡其占空比,但這時的頻率是原來的1/2。Speakera對clk輸入信號的分頻的預(yù)置數(shù)Tone10.0與spkout的輸出頻率就有了對應(yīng)關(guān)系。Sperkera模塊仿真圖:5. 梁祝music.vhd(音樂數(shù)據(jù)):將數(shù)據(jù)保存為.mif格式然后制作成LMP_ROM文件。六、實(shí)驗(yàn)結(jié)果:(程序下載驗(yàn)證是否通過) 試驗(yàn)成功!將設(shè)計(jì)出的演奏電路的程序經(jīng)過編譯(Compiler)后,選擇FLEX10K系列中EPF10K10LC84-4作為目標(biāo)器件(Assign/Device),并進(jìn)行管腳鎖定(Floorplan Editor)。器件編程(Programmer),將編譯生成的*.sof文件下載到目標(biāo)芯片。觀察到數(shù)碼管5顯示出演奏時的音樂簡譜,發(fā)光二極管D5指示音調(diào)高低,同時實(shí)驗(yàn)箱自帶蜂鳴器(Speaker)奏出“梁?!蹦瞧嗝绖尤说男?,實(shí)驗(yàn)成功。七、總結(jié):本次樂曲硬件演奏電路的VHDL設(shè)計(jì)主要采用數(shù)控分頻原理來實(shí)現(xiàn),在本次EDA課程設(shè)計(jì)中,我與其他同學(xué)相互交流,相互學(xué)習(xí),提高了用VHDL語言編程的技能及進(jìn)一步加強(qiáng)了MAX+plus對這種EDA流行軟件的應(yīng)用,通過這次設(shè)計(jì),我們溫故了已學(xué)的理論知識和實(shí)踐操作技能,同時也學(xué)習(xí)了更多的新的知識和技能,為以后進(jìn)一步的學(xué)習(xí)和工作打下了堅(jiān)實(shí)的基礎(chǔ)。本設(shè)計(jì)得到的電路可以作為一個樂曲演奏模塊,如果要演奏出另外一首曲子,只需將該曲子出現(xiàn)的簡譜分頻預(yù)置數(shù)寫入ToneTaba.VHD,再將該曲子的節(jié)拍表制作成ROM文件輸入到NoteTabs.VHD中,編譯后,編程下載即可。八、附錄(程序)1.Songer頂層文件模塊:LIBRARY IEEE; - 硬件演奏電路頂層設(shè)計(jì)USE IEEE.STD_LOGIC_1164.ALL;ENTITY Songer IS PORT ( CLK4MHZ : IN STD_LOGIC; -音調(diào)頻率信號 CLK8HZ : IN STD_LOGIC; -節(jié)拍頻率信號 pause: IN STD_LOGIC; CODE1 : OUT STD_LOGIC_VECTOR (3 DOWNTO 0);- 簡譜碼輸出顯示 HIGH1 : OUT STD_LOGIC; -高8度指示 SPKOUT : OUT STD_LOGIC );-聲音輸出 END;ARCHITECTURE one OF Songer IS COMPONENT NoteTabs PORT ( clk : IN STD_LOGIC; SWITCH: IN STD_LOGIC; ToneIndex : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) ); END COMPONENT; COMPONENT ToneTaba PORT ( Index : IN STD_LOGIC_VECTOR (3 DOWNTO 0) ; CODE : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) ; HIGH : OUT STD_LOGIC; Tone : OUT STD_LOGIC_VECTOR (10 DOWNTO 0) ); END COMPONENT; COMPONENT Speakera PORT ( clk : IN STD_LOGIC; Tone : IN STD_LOGIC_VECTOR (10 DOWNTO 0); SpkS : OUT STD_LOGIC ); END COMPONENT; SIGNAL Tone : STD_LOGIC_VECTOR (10 DOWNTO 0); SIGNAL ToneIndex : STD_LOGIC_VECTOR (3 DOWNTO 0); BEGINu1 : NoteTabs PORT MAP (clk=CLK8HZ, SWITCH=pause,ToneIndex=ToneIndex);u2 : ToneTaba PORT MAP (Index=ToneIndex,Tone=Tone,CODE=CODE1,HIGH=HIGH1);u3 : Speakera PORT MAP(clk=CLK4MHZ,Tone=Tone, SpkS=SPKOUT );END;2.音樂節(jié)拍和音調(diào)發(fā)生器(NoteTabs.VHD)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY NoteTabs IS PORT ( clk : IN STD_LOGIC; switch: IN STD_LOGIC; ToneIndex : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) );END;ARCHITECTURE one OF NoteTabs ISCOMPONENT MUSIC -音符數(shù)據(jù)ROM PORT(address : IN STD_LOGIC_VECTOR (7 DOWNTO 0); inclock : 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 (clkEVENT AND clk = 1) THEN IF switch = 1 THEN Counter Counter , q=ToneIndex, inclock=clk); END;3.簡譜碼對應(yīng)的分頻預(yù)置數(shù)查表電路(ToneTaba.VHD)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ToneTaba IS PORT ( Index : IN STD_LOGIC_VECTOR (3 DOWNTO 0) ; CODE : OUT STD_LOGIC_VECTOR (6 DOWNTO 0) ; HIGH : OUT STD_LOGIC; Tone : OUT STD_LOGIC_VECTOR (10 DOWNTO 0) );END;ARCHITECTURE one OF ToneTaba ISBEGIN Search : PROCESS(Index) BEGIN CASE Index IS - 譯碼電路,查表方式,控制音調(diào)的預(yù)置數(shù) WHEN 0000 = Tone=11111111111 ; CODE=0111111; HIGH Tone=01100000101 ; CODE=0000110; HIGH Tone=01110010000 ; CODE=1011011; HIGH Tone=10000001100 ; CODE=1001111; HIGH Tone=10010101101 ; CODE=1101101; HIGH Tone=10100001010 ; CODE=1111101; HIGH Tone=10101011100 ; CODE=0000111; HIGH Tone=10110000010 ; CODE=0000110; HIGH Tone=10111001000 ; CODE=1011011; HIGH Tone=11000000110 ; CODE=1001111; HIGH Tone=11001010110 ; CODE=1101101; HIGH Tone=11010000100 ; CODE=1111101; HIGH Tone=11011000000 ; CODE=0000110; HIGH NULL; END CASE; END PROCESS;END;4.數(shù)控分頻與演奏發(fā)生器(Speakera.VHD)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY Speakera IS PORT ( clk : IN STD_LOGIC; Tone : 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 11 THEN PreCLK = 1; Count4 := 0000; ELSIF clkEVENT AND clk = 1 THEN Count4 := Count4 + 1; END IF; END PROCESS; GenSpkS : PROCESS(PreCLK, Tone)- 11位可預(yù)置計(jì)數(shù)器 VARIABLE Count11 : STD_LOGIC_VECTOR (10 DOWNTO 0);BEGIN IF PreCLKEVENT AND PreCLK = 1 THEN IF Count11 = 16#7FF# THEN Count11 := Tone ; FullSpkS = 1; ELSE Count11 := Count11 + 1; FullSpkS = 0; END IF; END IF; END PROCESS; DelaySpkS : PROCESS(FullSpkS)-將輸出再2分頻,展寬脈沖,使揚(yáng)聲器有足夠功率發(fā)音 VARIABLE Count2 : STD_LOGIC;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;5. 梁祝music.vhd(音樂數(shù)據(jù)):將數(shù)據(jù)保存為.mif格式然后制作成LMP_ROM文件。width=4;depth=256;address_radix=dec;data_radix=dec;content begin 00:3;01:3;02:3;03: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;2
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024游泳救生員崗位職責(zé)試題及答案
- 特種作業(yè)安全培訓(xùn)登高作業(yè)
- 2024年游泳救生員考試話題試題及答案
- 2025建筑施工勞務(wù)合同模板
- 如何借鑒成功經(jīng)驗(yàn)備考體育經(jīng)紀(jì)人考試 試題及答案
- 如何提高2024年籃球裁判員考試的答題速度 試題及答案
- 具體案例剖析農(nóng)業(yè)植保員試題及答案
- 備考體育經(jīng)紀(jì)人考試的實(shí)踐經(jīng)驗(yàn) 試題及答案
- 2024年籃球裁判員等級考試絕密資料 試題及答案
- 2024年農(nóng)田管理的植保員試題及答案
- 這個殺手不太冷解析
- 造口袋技術(shù)要求
- 國家開放大學(xué)(江西)地域文化(專)任務(wù)1-4試題及答案
- QCR 409-2017 鐵路后張法預(yù)應(yīng)力混凝土梁管道壓漿技術(shù)條件
- 南師地信培養(yǎng)方案
- 采購工作調(diào)研報(bào)告(3篇)
- 10KV高壓開關(guān)柜操作(培訓(xùn)課件PPT)
- 希爾國際商務(wù)第11版英文教材課件完整版電子教案
- 《學(xué)弈》優(yōu)質(zhì)課一等獎?wù)n件
- 2023年6月大學(xué)英語四級考試真題(第1套)(含答案)
- SWITCH塞爾達(dá)傳說曠野之息-1.6金手指127項(xiàng)修改使用說明教程
評論
0/150
提交評論