【正文】
在這次課程設(shè)計(jì)過程中使我從中學(xué)到許多以前在 課本和課堂上所無法學(xué)到的,特別是在課程設(shè)計(jì)過程中查找資料的過程中從中學(xué)到許多以前在課本和課堂上所無法學(xué)到的并從中體會(huì)到許多的樂趣,從而豐富了自己,使自己無論是上課時(shí)還是在課余都感到很充實(shí)。 End case。code=10111。code=10110。code=10101。code=10100。code=10011。code=10010。code=10001。code=01110。code=01101。code=01100。code=01011。code=01010。code=01001。code=01000。code=00111。code=00110。code=00101。code=00100。code=00011。code=00010。code=00001。code=00000。 high : out std_logic。 程序修改如下: Library ieee。這里主要通過修改分頻預(yù)置數(shù)模塊的程序,使其實(shí)用于各種曲子的演奏。 若 在分頻預(yù)置數(shù)模塊中若取 tone[10..0]=1036,將發(fā)出音符為“ 3”音的信號(hào)頻率。這里是對(duì) 12MHz 的信號(hào)進(jìn)行 16分頻得到 750KHz 的信號(hào)。 河南機(jī)電高等專科學(xué)校課程設(shè)計(jì)論文 《 VHDL 硬件語言》課程設(shè)計(jì)論文 Speakera 音樂符數(shù)控分頻模塊的仿真 (1) 波形仿真 將所編寫的 音樂符數(shù)控分頻模塊 Speakera 的程序設(shè)為工程,選用 Altera 公司的 Cyclone 系列 中的 EPIC12Q240C8 為目標(biāo)芯片進(jìn)行仿真。 END SYN。 q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0))。 lpm_outdata : STRING。 ARCHITECTURE SYN OF music IS SIGNAL sub_wire0 : STD_LOGIC_VECTOR (3 DOWNTO 0)。 ENTITY music IS PORT ( address : IN STD_LOGIC_VECTOR (7 DOWNTO 0)。 (3) 通過 “ browse” 鈕,找到 ROM 中的加載文件路徑和文件名:注意 ROM 元件的inclock 是地址鎖存時(shí)鐘。這樣每讀到一個(gè)地址,即可輸出其相應(yīng)的數(shù)據(jù)。ADDRESSRADIX=DEC,表示地址信號(hào)用十進(jìn)制; DATARADIX=DEC,表示輸出數(shù)據(jù)是十進(jìn)制數(shù)。樂曲演奏數(shù)據(jù) DEPTH = 256 。 END IF。139。 THEN Count2 := NOT Count2。 DelaySpkS : PROCESS(FullSpkS)將輸出再 2分頻,展寬脈沖,使揚(yáng)聲器有足夠功率發(fā)音 VARIABLE Count2 : STD_LOGIC。039。 FullSpkS = 39。 BEGIN IF PreCLK39。 THEN Count4 := Count4 + 1。 Count4 := 0000。 BEGIN PreCLK = 39。音樂符對(duì)應(yīng)分頻 11 位 SpkS : OUT STD_LOGIC )。音樂符數(shù)控分頻電路模塊 USE 。數(shù)控分頻模塊中對(duì) Clk 輸入信號(hào)的分頻比由 11 位預(yù)置數(shù) tone[10..0]決定。 計(jì)數(shù)初值( Tone) =2047分頻系數(shù) 而分頻系數(shù)又可有下式來求: 分頻系數(shù) =基準(zhǔn)頻率 /音符的發(fā)生頻率 低音時(shí) Tone 值小,分頻系數(shù)大,溢出信號(hào)周期長(zhǎng),揚(yáng)聲器發(fā)出的聲音低, Tone隨音樂的樂譜變化大,自動(dòng)控制分頻比,實(shí)現(xiàn)了數(shù)控分頻,發(fā)生信號(hào)的頻率與音調(diào)Tone 成正比。它是由一個(gè)初值可變的加法計(jì)數(shù)器構(gòu)成。 END CASE。 HIGH =39。139。1622。 WHEN 1100 = Tone=11001010110 。 CODE=0011。 h 7 F F \ D i v i d e C L K: C o u n t 4 [ 3 . . 0 ]A d d 04 39。139。1410。 WHEN 1000 = Tone=10110000010 。 CODE=0111。 HIGH =39。039。1036。 WHEN 0011 = Tone=10000001100 。 CODE=0010。 HIGH =39。 HIGH =39。音樂高 8 度 指示 Tone : OUT STD_LOGIC_VECTOR (10 DOWNTO 0) )。音樂譜對(duì)應(yīng)分頻預(yù)制數(shù)查表電路模塊 USE 。這 13個(gè)值的輸出由程序 [3]的 4位輸入值 index[3..0]確定。這樣梁祝樂曲中的音符就一個(gè)接一個(gè)的通過 toneindex[3..0]端口輸向分頻預(yù)置數(shù)模塊。每來一個(gè)時(shí)鐘脈沖信號(hào) (Clk), 8位二進(jìn)制計(jì)數(shù)器就計(jì)數(shù)一次, ROM 文件中的地址也就隨著遞增,音符數(shù)據(jù) ROM 中的音符也就一個(gè)接一個(gè)連續(xù)的取出來了。 END PROCESS。039。 IF ((clk39。039。8位二進(jìn) 制計(jì)數(shù)器 BEGIN CNT8 : PROCESS(clk, Counter,sel,rst) BEGIN IF ((clk39。 clock : IN STD_LOGIC 。音樂選擇鍵 RST : IN STD_LOGIC。音樂節(jié)拍和音調(diào)發(fā)生器模塊 USE 。 h 0 1 cl kSELR S TT o n e I n d e x [ 3 . . 0 ]co m b ~ [ 7 . . 0 ]co m b ~ [ 1 5 . . 8 ]C o u n t e r[ 7 . . 0 ] 3. 單元模塊程序設(shè)計(jì) 根據(jù)頂層原理圖,共分為 music 模塊、地址發(fā)生器模塊、分頻預(yù)置數(shù)模塊、十六進(jìn)制模塊、數(shù)控分頻模塊這五個(gè)模塊。參數(shù)傳遞映射語句 u2 : ToneTaba PORT MAP(Index=ToneIndex,Tone=Tone,CODE=CODE1,HIGH=HIGH1)。 END COMPONENT。 END COMPONENT。 COMPONENT ToneTaba元件 U2 例換化 PORT ( Index : IN STD_LOGIC_VECTOR (3 DOWNTO 0) 。 SEL : IN STD_LOGIC。 簡(jiǎn)譜碼輸出顯示 HIGH1 : OUT STD_LOGIC。 音調(diào)頻率信號(hào) CLK8HZ : IN STD_LOGIC。 曲子也就流暢的播放出來了 , 當(dāng)樂曲一遍演奏完成后,樂曲發(fā)生器能自動(dòng)從頭開始循環(huán)演奏 ,按下 SEL 鍵時(shí)播放第二首歌,按下 RST 鍵時(shí) 從頭開始 播放歌曲。 計(jì)數(shù)時(shí)鐘信號(hào)作為輸出音符快慢的控制信號(hào),時(shí)鐘快時(shí)輸出節(jié)拍速度就快,演奏的速度也就快,時(shí)鐘慢時(shí)輸出節(jié)拍的速度就慢,演奏的速度自然降低。為提高輸出信號(hào)的驅(qū)動(dòng)能力,以使揚(yáng)聲器有足夠的功率發(fā)音,需要再通過一個(gè)分頻器將原來的分頻器的輸出脈沖均衡為對(duì)稱方波(占空比 =1/2),但這時(shí)的頻率將是原來的 1/2。實(shí)際上應(yīng)該綜合考慮這兩個(gè)方面的因素,在盡量減少誤差的前提下,選取合適的基準(zhǔn)頻率。 河南機(jī)電高等??茖W(xué)校課程設(shè)計(jì)論文 《 VHDL 硬件語言》課程設(shè)計(jì)論文 ( 2) 音符頻率的獲得 多個(gè)不同頻率的信號(hào)可通過對(duì)某個(gè)基準(zhǔn)頻率進(jìn)行分頻器獲得。 關(guān)鍵詞 : FPGA/CPLD, 音樂硬件演奏電路 , VHDL 語言設(shè)計(jì) , QUARTUS|| 1. 系統(tǒng)設(shè)計(jì)總述 ( 1) 順序播放樂曲 功能 ( 2) 具有通過按鍵 任意 切換樂曲 功能 系統(tǒng)組成 ( 1) 音樂 硬件 演奏電路 基本 原理 硬件電路 的發(fā)聲原理 , 聲音的頻 譜范圍約在幾十到幾千赫茲,若能利用程序來控制FPGA 芯片 某個(gè)引腳輸出一定頻率的矩形波,接上揚(yáng)聲器就能發(fā)出相應(yīng)頻率的聲音。 本 次設(shè)計(jì) 在 EDA 開發(fā)平臺(tái) QUARTUS|| 上利用 VHDL 語言設(shè)計(jì)數(shù)控分頻器電路,利用數(shù)控分頻的原理設(shè)計(jì)音樂硬件演奏電路,并定制 LPMROM 存儲(chǔ)音樂數(shù)據(jù),以“梁?!?和“月亮代表我的心”兩首 樂曲為例,將音樂數(shù)據(jù)存儲(chǔ)到 LPMROM,就達(dá)到了以純硬件的手段來實(shí)現(xiàn)樂曲的演奏效果。河南機(jī)電高等專科學(xué)校課程設(shè)計(jì)論文 《 VHDL 硬件語言》課程設(shè)計(jì)論文 EDA 技術(shù)實(shí)用教程課程設(shè)計(jì) 題目:基于 FPGA音樂硬件演奏電路設(shè)計(jì) 系 部: 電子通信 工程系 班 級(jí): 醫(yī) 電 051 姓 名: 學(xué) 號(hào): 指導(dǎo) 教 師: 石 新 峰 日 期 : 河南機(jī)電高等??茖W(xué)校課程設(shè)計(jì)論文 《 VHDL 硬件語言》課程設(shè)計(jì)論文 目 錄 摘要 1 1. 系統(tǒng)設(shè)計(jì)總述 設(shè)計(jì)要求 2 系統(tǒng)組成