已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
天津工業(yè)大學(xué) 通信工程 EDA課程設(shè)計(jì)報(bào)告 EDA課程設(shè)計(jì)題目:樂(lè)曲硬件演奏電路的VHDL設(shè)計(jì) 專(zhuān)業(yè):通信工程 班級(jí):通信071 姓名:葛鵬 學(xué)號(hào):0710920101一、設(shè)計(jì)題目:樂(lè)曲硬件演奏電路的VHDL設(shè)計(jì)二、設(shè)計(jì)目標(biāo):了解一般樂(lè)曲演奏電路設(shè)計(jì)設(shè)計(jì)方法,學(xué)習(xí)VHDL語(yǔ)言,熟悉EDA設(shè)計(jì)軟件QuartusII和MAX+plus,加強(qiáng)獨(dú)立完成電子設(shè)計(jì)的能力。 (1)能夠播放“梁祝”樂(lè)曲。(2)能夠通過(guò)LED顯示音階。(3)(選作)具有“播放/停止”功能,并在此基礎(chǔ)上實(shí)現(xiàn)“按鍵演奏”的電子琴功能。主芯片型號(hào)為FLEX10K10LC84-4三、實(shí)驗(yàn)電路的工作原理:(演奏電路邏輯圖) 組成樂(lè)曲的每個(gè)音符的發(fā)音頻率值及其持續(xù)的時(shí)間是樂(lè)曲能夠連續(xù)演奏所需的兩個(gè)基本要素,設(shè)計(jì)演奏電路的關(guān)鍵就是獲得這兩個(gè)要素所對(duì)應(yīng)的數(shù)值以及通過(guò)純硬件的手段來(lái)利用這些數(shù)值實(shí)現(xiàn)所希望樂(lè)曲的演奏效果。演奏電路邏輯圖有三部分:音樂(lè)節(jié)拍和音調(diào)發(fā)生器、簡(jiǎn)譜碼對(duì)應(yīng)的分頻預(yù)置數(shù)查表電路、數(shù)控分頻與演奏發(fā)生器。演奏電路邏輯圖:四、設(shè)計(jì)內(nèi)容:1.完成程序的編輯工作。2.將音樂(lè)數(shù)據(jù)制作成LMP_ROM文件.3.將程序加載到MAX+plus中進(jìn)行編譯、仿真,并保存仿真結(jié)果。4.到實(shí)驗(yàn)室進(jìn)行下載驗(yàn)證。引腳進(jìn)行鎖定,然后下載到實(shí)驗(yàn)芯片中觀(guān)察實(shí)驗(yàn)結(jié)果。五、仿真結(jié)果:1.音樂(lè)節(jié)拍和音調(diào)發(fā)生器(NoteTabs.VHD)notetabs模塊中設(shè)置了一個(gè)8位二進(jìn)制計(jì)數(shù)器(計(jì)數(shù)最大值138),作為音符數(shù)據(jù)ROM的地址發(fā)生器。這個(gè)計(jì)數(shù)器的計(jì)數(shù)頻率選為4Hz,即每一個(gè)計(jì)數(shù)值的停留時(shí)間為0.25秒,恰為當(dāng)全音符設(shè)為1秒時(shí),四四拍的4分音符持續(xù)時(shí)間。隨著notetabs模塊中的計(jì)數(shù)器按4Hz的時(shí)鐘速率作為加法計(jì)數(shù)時(shí),即隨地址值遞增時(shí),音符數(shù)據(jù)ROM中的音符數(shù)據(jù)將從ROM中通過(guò)ToneIndex3.0端口輸向ToneTaba模塊,“梁?!睒?lè)曲就開(kāi)始連續(xù)自然的演奏起來(lái)了。Notetabs模塊仿真圖:2.簡(jiǎn)譜碼對(duì)應(yīng)的分頻預(yù)置數(shù)查表電路(ToneTaba.VHD)音符的持續(xù)時(shí)間需根據(jù)樂(lè)曲的速度及每個(gè)音符的節(jié)拍數(shù)來(lái)確定,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è),每一音符的停留時(shí)間由音樂(lè)節(jié)拍和音調(diào)發(fā)生器模塊NoteTabs的clk的輸入頻率決定。這13個(gè)值的輸出由對(duì)應(yīng)于ToneTaba的4位輸入值Index3.0確定,而Index3.0最多有16種可選值。輸向ToneTaba中Index3.0的值ToneIndex3.0的輸出值與持續(xù)時(shí)間有模塊notetabs決定。Tonetaba仿真圖:4.數(shù)控分頻與演奏發(fā)生器(Speakera.VHD)音符的頻率可由次模塊獲得,這是一個(gè)數(shù)控分頻器,由其clk端輸入一個(gè)具有較高頻率的信號(hào),通過(guò)speakera分頻后由spkout輸出,由于直接從數(shù)控分頻器中出來(lái)的輸出信號(hào)是脈沖較窄的脈沖信號(hào),為了有助于驅(qū)動(dòng)揚(yáng)聲器,需另加一個(gè)D觸發(fā)器以均衡其占空比,但這時(shí)的頻率是原來(lái)的1/2。Speakera對(duì)clk輸入信號(hào)的分頻的預(yù)置數(shù)Tone10.0與spkout的輸出頻率就有了對(duì)應(yīng)關(guān)系。Sperkera模塊仿真圖:5. 梁祝music.vhd(音樂(lè)數(shù)據(jù)):將數(shù)據(jù)保存為.mif格式然后制作成LMP_ROM文件。六、實(shí)驗(yàn)結(jié)果:(程序下載驗(yàn)證是否通過(guò)) 試驗(yàn)成功!將設(shè)計(jì)出的演奏電路的程序經(jīng)過(guò)編譯(Compiler)后,選擇FLEX10K系列中EPF10K10LC84-4作為目標(biāo)器件(Assign/Device),并進(jìn)行管腳鎖定(Floorplan Editor)。器件編程(Programmer),將編譯生成的*.sof文件下載到目標(biāo)芯片。觀(guān)察到數(shù)碼管5顯示出演奏時(shí)的音樂(lè)簡(jiǎn)譜,發(fā)光二極管D5指示音調(diào)高低,同時(shí)實(shí)驗(yàn)箱自帶蜂鳴器(Speaker)奏出“梁祝”那凄美動(dòng)人的旋律,實(shí)驗(yàn)成功。七、總結(jié):本次樂(lè)曲硬件演奏電路的VHDL設(shè)計(jì)主要采用數(shù)控分頻原理來(lái)實(shí)現(xiàn),在本次EDA課程設(shè)計(jì)中,我與其他同學(xué)相互交流,相互學(xué)習(xí),提高了用VHDL語(yǔ)言編程的技能及進(jìn)一步加強(qiáng)了MAX+plus對(duì)這種EDA流行軟件的應(yīng)用,通過(guò)這次設(shè)計(jì),我們溫故了已學(xué)的理論知識(shí)和實(shí)踐操作技能,同時(shí)也學(xué)習(xí)了更多的新的知識(shí)和技能,為以后進(jìn)一步的學(xué)習(xí)和工作打下了堅(jiān)實(shí)的基礎(chǔ)。本設(shè)計(jì)得到的電路可以作為一個(gè)樂(lè)曲演奏模塊,如果要演奏出另外一首曲子,只需將該曲子出現(xiàn)的簡(jiǎn)譜分頻預(yù)置數(shù)寫(xiě)入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)頻率信號(hào) CLK8HZ : IN STD_LOGIC; -節(jié)拍頻率信號(hào) pause: IN STD_LOGIC; CODE1 : OUT STD_LOGIC_VECTOR (3 DOWNTO 0);- 簡(jiǎn)譜碼輸出顯示 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.音樂(lè)節(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.簡(jiǎn)譜碼對(duì)應(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(音樂(lè)數(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024微商產(chǎn)品代理銷(xiāo)售合同模板6篇
- 2024物業(yè)管理法規(guī)第五章:物業(yè)管理項(xiàng)目招投標(biāo)與監(jiān)理合同3篇
- 2025年度出納崗位責(zé)任擔(dān)保協(xié)議書(shū)簡(jiǎn)易模板3篇
- 2024版電子商務(wù)平臺(tái)運(yùn)營(yíng)合同標(biāo)的保密協(xié)議
- 2024版標(biāo)準(zhǔn)材料采購(gòu)合同書(shū)版
- 隊(duì)列課知到智慧樹(shù)章節(jié)測(cè)試課后答案2024年秋山東警察學(xué)院
- 2024簡(jiǎn)易離婚合同模板一
- 旅游服務(wù)辦公室租賃協(xié)議樣本
- 阜陽(yáng)市餐飲企業(yè)租賃合同示范合同
- 化工園區(qū)管道施工合同招標(biāo)
- 九年級(jí)英語(yǔ)教學(xué)反思
- 外研新標(biāo)準(zhǔn)初中英語(yǔ)七年級(jí)上冊(cè)冊(cè)寒假提升補(bǔ)全對(duì)話(huà)短文練習(xí)三附答案解析
- 《旅游消費(fèi)者行為學(xué)》-課程教學(xué)大綱
- YY/T 1117-2024石膏繃帶
- 【魔鏡洞察】2024藥食同源保健品滋補(bǔ)品行業(yè)分析報(bào)告
- 蘇教版小學(xué)三年級(jí)科學(xué)上冊(cè)單元測(cè)試題附答案(全冊(cè))
- 2024年人教版初一語(yǔ)文(上冊(cè))期末試卷及答案(各版本)
- 生豬屠宰獸醫(yī)衛(wèi)生檢驗(yàn)人員理論考試題及答案
- 物流園保安服務(wù)投標(biāo)方案(技術(shù)方案)
- GB/T 44038-2024車(chē)輛倒車(chē)提示音要求及試驗(yàn)方法
- 2024年咸陽(yáng)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案解析
評(píng)論
0/150
提交評(píng)論