【正文】
)。 end if。 when 26 = Toneindex=conv_std_logic_vector(1834,11)。 when 22 = Toneindex=conv_std_logic_vector(1728,11)。 when 15 = Toneindex=conv_std_logic_vector(1569,11)。 when 11 = Toneindex=conv_std_logic_vector(1342,11)。 when 4 = Toneindex=conv_std_logic_vector(973,11)。 then Toneindex=conv_std_logic_vector(2047,11)。decoder:process(tone)從rom取出數(shù)據(jù)進(jìn)行譯碼,作為下一級(jí)的輸入 begin if auto = 39。 when others=null。if counter(8)= 39。039。 then counter=011111111。end if。) then case temp is when 00= counter = counter+1。 back。 聲明ROM模塊signal counter: std_logic_vector(8 downto 0)。architecture one of notetabs is ponent rom port(address : in std_logic_vector(8 downto 0)。USE 。end one。039。 then fout = 39。139。 end process P1。 否則繼續(xù)作加1計(jì)數(shù) full = 39。 then if t2 = 11 then t2 := d。 begin P1: process (clk) variable t2 : std_logic_vector(1 downto 0)。 d : in std_logic_vector(1 downto 0)。播放控制模塊library ieee。 else Tone = ZZZZZZZZZZZ。 when 10000001=Tone=conv_std_logic_vector(1779,11)。 when 10000100=Tone=conv_std_logic_vector(1728,11)。 when 10010000=Tone=conv_std_logic_vector(1288,11)。 when 11000000=Tone=conv_std_logic_vector(1090,11)。 when 00000010=Tone=conv_std_logic_vector(1621,11)。 when 00001000=Tone=conv_std_logic_vector(1510,11)。 when 00100000=Tone=conv_std_logic_vector(1409,11)。 then 模式判斷 case key_in is 鍵盤判斷 when00000000|10000000=Tone=conv_std_logic_vector(2047,11)。 Tone : OUT STD_LOGIC_VECTOR(10 downto 0))。USE 。通過(guò)本次課程設(shè)計(jì),不僅提高了我獨(dú)立思考解決問(wèn)題的能力,而且培養(yǎng)了認(rèn)真嚴(yán)謹(jǐn),一絲不茍的學(xué)習(xí)態(tài)度,由于缺乏經(jīng)驗(yàn),設(shè)計(jì)中難免有不足的地方,希望老師多加指教。EDA課程設(shè)計(jì)中,我遇到了一群熱心的好同學(xué),我們互相幫助,共同進(jìn)步,相互探討。我想說(shuō),設(shè)計(jì)確實(shí)有些辛苦,但苦中有樂(lè)。經(jīng)過(guò)自己的努力終于把樂(lè)曲硬件演奏電路參透清楚,讓我感到通過(guò)自己努力所到的知識(shí)是如此寶貴。其頂層設(shè)計(jì)的VHDL程序見(jiàn)附錄2。第三步,對(duì)FULLSPKS信號(hào)2分頻拓展脈寬,形成最終的音頻信號(hào)(262Hz~1976Hz共21個(gè)音符)。由于正常播放音樂(lè)時(shí)頻率為4hz,所以此模塊的輸入時(shí)鐘為32hz。第三部分為decoder譯碼部分,從rom中取得數(shù)據(jù)后需要經(jīng)過(guò)譯碼成為分頻器的初始值后作為下一級(jí)的輸入信號(hào)。Song,歌曲選擇按鍵。此模塊實(shí)際為一個(gè)查表模塊,對(duì)于不同的按鍵輸入,從表中讀取相應(yīng)的分頻值及計(jì)數(shù)器初始化值,由節(jié)拍發(fā)生器決定其停留時(shí)間,改變節(jié)拍可改變演奏音符延時(shí)長(zhǎng)短,將其輸出給數(shù)控分頻器,即可得到相應(yīng)的聲音。拍子的時(shí)值是以音符的時(shí)值來(lái)表示的,一拍的時(shí)值可以是四分音符(即以四分音符為一拍),也可以是二分音符(以二分音符為一拍)或八分音符(以八分音符為一拍)。由可得各個(gè)音色的分頻系數(shù)。:音名頻率/Hz音名頻率/Hz音名頻率/Hz低音1中音1高音1低音2中音2高音2低音3中音3高音3低音4中音4高音4低音5中音5高音5低音6440中音6880高音61760低音7中音7高音7由樂(lè)理知識(shí)可知,對(duì)電子琴聲音的操作即對(duì)音樂(lè)頻率以及音樂(lè)持續(xù)時(shí)間的操作。系統(tǒng)劃分為幾個(gè)功能模塊,分模塊進(jìn)行分析和設(shè)計(jì),系統(tǒng)給出相應(yīng)的設(shè)計(jì)原理圖和VHDL源程序,通過(guò)仿真實(shí)現(xiàn)預(yù)定的功能。主動(dòng)配置方式由FPGA期間引導(dǎo)配置操作過(guò)程,它控制著外部存儲(chǔ)器和初始化過(guò)程,而被動(dòng)配置方式則由外部計(jì)算機(jī)或控制器控制配置過(guò)程。 FPGA的整體結(jié)構(gòu)FPGA在結(jié)構(gòu)上包含三部分:可編程邏輯塊CLB、可編程輸入輸出模塊IOB和可編程內(nèi)部連線PI。1993年,IEEE對(duì)VHDL進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展了VHDL的內(nèi)容,公布了新版本VHDL,即IEEE 10761993。2 VHDL簡(jiǎn)述及應(yīng)用VHDL的英文全名是VeryHighSpeed Integrated Circuit Hardware Description Language,誕生于1982年。 the simulation and debugging can basically meet the technical indicators, and the result of simulation is correct.Keywords Music decoder circuit module,VHDL,Numerical control pointing frequency modules,electronic organI沈陽(yáng)工程學(xué)院課程設(shè)計(jì)目 錄摘 要 IAbstract II1 引言 12 VHDL簡(jiǎn)述及應(yīng)用 2 2 VHDL的應(yīng)用 23 FPGA的簡(jiǎn)述 3 FPGA的介紹 3 FPGA的整體結(jié)構(gòu) 3 Altera公司的FPGA 34 電子琴演奏系統(tǒng)設(shè)計(jì)原理分析 4 4 4 5 65 電子琴硬件演奏電路的層次化設(shè)計(jì)方案 8 8 8 9 9 10 10結(jié)論 11致謝 12參考文獻(xiàn) 13附錄1 14附錄2 15基于FPGA的電子琴設(shè)計(jì)1 引言我們生活在一個(gè)信息高速發(fā)達(dá)的時(shí)代,各種各樣電子產(chǎn)品層出不窮。現(xiàn)用可編程邏輯器件(PLD)來(lái)完成該設(shè)計(jì)。實(shí)現(xiàn)方法有許多種。本設(shè)計(jì)基于超高速硬件描述語(yǔ)言VHDL在Altera公司的CycloneⅡ系列的EP2C5T144C8芯片上編程實(shí)現(xiàn);經(jīng)仿真,調(diào)試基本能夠達(dá)到技術(shù)指標(biāo),仿真結(jié)果基本正確。s cyclone II Series ep2c5t144c8 chip programming。本設(shè)計(jì)主要介紹的是一個(gè)用超高速硬件描述語(yǔ)言VHDL設(shè)計(jì)