畢業(yè)論文-基于FPGA的八音電子琴設(shè)計(jì)與實(shí)現(xiàn)_第1頁
畢業(yè)論文-基于FPGA的八音電子琴設(shè)計(jì)與實(shí)現(xiàn)_第2頁
畢業(yè)論文-基于FPGA的八音電子琴設(shè)計(jì)與實(shí)現(xiàn)_第3頁
畢業(yè)論文-基于FPGA的八音電子琴設(shè)計(jì)與實(shí)現(xiàn)_第4頁
畢業(yè)論文-基于FPGA的八音電子琴設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

大連東軟信息學(xué)院本科畢業(yè)設(shè)計(jì)(論文)論文題目論文題目:基于FPGA的八音電子琴設(shè)計(jì)與實(shí)現(xiàn)系所:電子工程系專業(yè):電子信息工程(集成電路設(shè)計(jì)與系統(tǒng)方向)學(xué)生姓名:學(xué)生學(xué)號(hào):指導(dǎo)教師:導(dǎo)師職稱:講師完成日期:2014年5月2日大連東軟信息學(xué)院DalianNeusoftUniversityofInformation大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文)摘要V基于FPGA的八音電子琴設(shè)計(jì)與實(shí)現(xiàn)摘要電子琴是一種音樂與科技相結(jié)合的產(chǎn)物,在電子化和信息化的時(shí)代,為音樂的普及、大眾化做出了杰出的貢獻(xiàn),大部分音樂制作都需要有電子琴來完成,然后再通過媒介傳播,例如常見的電影、電視劇和曲目,音樂會(huì)現(xiàn)場的音效,甚至是家用電器的一系列發(fā)聲器件都可能含有電子琴的身影。本設(shè)計(jì)介紹了基于FPGA的電子琴的相關(guān)知識(shí)、工作原理及其設(shè)計(jì)過程?;谟?jì)算機(jī)中時(shí)鐘分頻器的原理,采用自頂向下的設(shè)計(jì)方法,使用硬件描述語言verilog,在QuartusII平臺(tái)上實(shí)現(xiàn)電子琴的手動(dòng)彈奏和自動(dòng)彈奏功能。本設(shè)計(jì)主要模塊有鍵盤控制、音頻發(fā)聲和存儲(chǔ)器模塊組成。選擇手動(dòng)彈奏模式時(shí),按下音符鍵后就會(huì)播放其相應(yīng)頻率的聲音;選擇自動(dòng)模式時(shí),會(huì)將存儲(chǔ)器中已編輯好的音樂信息依次讀取出,再通過各個(gè)對(duì)應(yīng)的頻率輸出,實(shí)現(xiàn)自動(dòng)演奏。音頻發(fā)生器由分頻器實(shí)現(xiàn),產(chǎn)生8種不同頻率,各頻率經(jīng)放大后驅(qū)動(dòng)喇叭發(fā)出聲音。關(guān)鍵詞:電子琴,F(xiàn)PGA,Verilog,音調(diào)發(fā)生大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文)AbstractOctaveElectronicPianoDesignandImplementationbasedonFPGAAbstractElectronicpianoisaproductofthecombinationofmusicandtechnology.Intheageofelectronicandinformationtechnology,electronicpianoforthepopularityofthemusicmadeanoutstandingcontribution.Electronicpianoisessentialformanymusicproduction,suchasthefilm,TVshowmusic,concertsoundandaudiblesignaldevicesofhouseholdappliances.ThisdesignintroductiontoelectronicpianoisbasedonknowledgeaboutFPGA,andworkingprincipleanddesignprocessalsoisaboutFPGAtechnology.Thisdesignclockdividerisbasedontheprincipleofthecomputer,andusedtop-downdesignmethodologyandhardwaredescriptionlanguageVerilogtoimplement.Finally,manualplayandautoplayfeatureonQuartusIIplatform.Thedesignoftheelectronicpianoingeneralconsistsofthreemodules,suchasnamelythekeyboardsoundmodules,memorymodulesandselectandcontrolmodule.WhenyouselectManualmode,itwillplayitscorrespondingfrequenciesofsoundafteryoupresstheaccentkey.WhenyouselecttheAutomode,itwillturntoreadoutthememoryandoutputtoachieveautoplay.AudiogeneratorimplementedbycrossoverstoproduceEightdifferentfrequenciesandamplifytodrivespeakermakesasound.Keywords:Electronicpiano,FPGA,Verilog,Tone

occurred大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文)目錄目錄TOC\o"1-3"\u摘要 IAstract II第1章緒論 11.1論文研究主要內(nèi)容 11.2研究設(shè)計(jì)方案選擇 12.1.1方案一 12.1.2方案二 1第2章關(guān)鍵技術(shù)介紹 22.1音符頻率 22.2Verilog硬件描述語言 22.2.1VerilogHDL語言簡介 22.2.2關(guān)于Verilog語言的歷史 32.2.3VerilogHDL的主要能力 32.2.4VerilogHDL和VHDL的比較 42.2.5VerilogHDL設(shè)計(jì)方法 42.3FPGA簡介 52.4QuartusII簡介 62.5EDA簡介 7第3章系統(tǒng)分析 93.1功能需求 93.2模塊需求 93.2.1輸入 93.2.2自動(dòng)演奏功能 93.2.3發(fā)聲 103.2.4音符顯示 103.3系統(tǒng)開發(fā)環(huán)境 103.4系統(tǒng)任務(wù)的可行性分析 10第4章系統(tǒng)設(shè)計(jì) 124.1設(shè)計(jì)思想 124.2設(shè)計(jì)模塊 124.2.1按鍵輸入模塊 124.2.2自動(dòng)演奏模塊 134.2.3數(shù)控分頻模塊 134.2.4顯示模塊 134.3系統(tǒng)的控制流程 14第5章系統(tǒng)實(shí)現(xiàn) 155.1模塊拼接 155.2系統(tǒng)控制流程圖 155.3主要模塊關(guān)鍵代碼展示 165.3.1按鍵輸入模塊(key_solve) 165.3.2自動(dòng)演奏模塊(store&Choose) 175.3.3數(shù)控分頻模塊(tone) 175.3.4顯示模塊(SEG7_LUT) 175.4各模塊仿真波形圖 185.4.1按鍵模塊 185.4.2自動(dòng)播放模塊 185.4.3數(shù)控分頻模塊 185.4.4顯示模塊 19第6章系統(tǒng)測試 206.1測試方案擬定 206.2測試結(jié)果 206.3最終結(jié)論 21第7章結(jié)論 22參考文獻(xiàn) 23致謝 24大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文)-第1章緒論社會(huì)早已進(jìn)入了一個(gè)充滿電子信息的時(shí)代,身邊到處都是各式各樣的電子產(chǎn)品,而像電子琴這類早期就有的電子產(chǎn)品現(xiàn)在更是種類繁多,電視劇和電影的插曲、電視節(jié)目音效、甚至手機(jī)鈴聲,都很可能包含電子琴的身影;作為一個(gè)電子工程系的學(xué)生,有理由去了解并研究一下這類電子產(chǎn)品的工作原理及制作。1.1論文研究主要內(nèi)容選題內(nèi)容基于QuartusII平臺(tái),運(yùn)用Verilog語言對(duì)簡易電子琴各個(gè)模塊進(jìn)行設(shè)計(jì)編寫,并用EDA工具仿真驗(yàn)證。根據(jù)功能分類,將整體設(shè)計(jì)分為:自動(dòng)演奏模塊、音調(diào)發(fā)生模塊和數(shù)控分頻模塊三大部分,最后整合一起后通過電路的輸入輸出端關(guān)系連起來。本設(shè)計(jì)主要通過verilog硬件描述語言的設(shè)計(jì)思想,按照數(shù)據(jù)傳遞順序劃分若干功能模塊。通過該課程設(shè)計(jì)深入學(xué)習(xí)并掌握大學(xué)所學(xué)的理論知識(shí),達(dá)到課程設(shè)計(jì)的目的。1.2研究設(shè)計(jì)方案選擇2.1.1方案一采用數(shù)字邏輯電路制作,這種方法雖然直觀且簡單方便,但需要的器件繁多,連接復(fù)雜,體積和功耗都很大。并且,焊接點(diǎn)和線路很多,使成品的穩(wěn)定度和精度大大削減。2.1.2方案二用可編程邏輯器件(FPGA)制作,將所有器件集成在一塊芯片上,大大減小了電子琴的體積,用verilog編程實(shí)現(xiàn)時(shí)更加方便,而且易于進(jìn)行功能擴(kuò)展,并可調(diào)試仿真,制作時(shí)間大大縮短。與方案一作比較,本文選用了方案二進(jìn)行設(shè)計(jì)。大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文)第2章關(guān)鍵技術(shù)介紹2.1音符頻率樂曲的12平均率規(guī)定:每兩個(gè)八度音之間的頻率要相差1倍,比如簡譜中的中音2與高音2。在2個(gè)八度音之間,又可分為12個(gè)半音。另外,音符A(簡譜中的低音5)的頻率為392Hz,音符E到F之間、B到C之間為半音,其余為全音。由此可以推算出簡譜中從低音l至高音1之間每個(gè)音符的頻率。音名與對(duì)應(yīng)頻率對(duì)照表如圖2.1所示。圖2.1音名—頻率對(duì)照?qǐng)D因?yàn)闉榱蓑?qū)動(dòng)喇叭發(fā)聲,還需要進(jìn)行一次二分頻,所以,分頻系數(shù)的計(jì)算可以根據(jù)下面的方法進(jìn)行。以中音1為例,對(duì)應(yīng)的頻率值為523Hz,則它的分頻系數(shù)應(yīng)該為:0.5MHz/523Hz=0.5*10^6/523=956。2.2Verilog硬件描述語言2.2.1VerilogHDL語言簡介VerilogHDL和VHDL是目前世界上最常見的兩種硬件描述語言(HDL:HardwareDescriptionLanguage),均為IEEE標(biāo)準(zhǔn),被廣泛地使用于基于可編程邏輯器件的各類項(xiàng)目開發(fā)。這兩種語言都是在20世紀(jì)80年代中期出現(xiàn)的,前者由GatewayDesignAutomation公司(該公司在1989年被Cadence公司收購)創(chuàng)造,后者則是美國軍方研發(fā)創(chuàng)造的。HDL語言用文本的方法來表述數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為,是種用形式化方式來描述數(shù)字電路和系統(tǒng)的硬件語言,使用它可以從上層到下層來逐一層次的描述自己的設(shè)計(jì)思想。也就是用一系列分層次的模塊去表示一個(gè)復(fù)雜的數(shù)字系統(tǒng),并且逐層的進(jìn)行驗(yàn)證仿真,然后把具體的模塊組合用綜合工具轉(zhuǎn)化成門級(jí)網(wǎng)表,接著再使用布局布線工具將網(wǎng)表轉(zhuǎn)化成具體的電路結(jié)構(gòu)實(shí)現(xiàn)。當(dāng)前,這種自頂向下的設(shè)計(jì)方法已經(jīng)被廣泛的使用。概括地講,HDL語言主要包含以下各類特征:HDL語言不僅含有部分高級(jí)程序設(shè)計(jì)語言的形式結(jié)構(gòu),而且還包含了描述硬件線路連接的詳細(xì)結(jié)構(gòu)。通過這種結(jié)構(gòu)級(jí)行為描述,能夠在不同的抽象層次描述設(shè)計(jì)。這種HDL語言采用自頂向下的數(shù)字電路設(shè)計(jì)方法,主要包括3個(gè)領(lǐng)域5個(gè)抽象層次。HDL語言處理方式是并行執(zhí)行的,具有在同一時(shí)間執(zhí)行多個(gè)任務(wù)的能力。這與一般的高級(jí)設(shè)計(jì)語言(比如C語言)串行執(zhí)行的特征不同。HDL語言擁有一種時(shí)序的概念。在平常的高級(jí)編程語言中普遍都沒有這種時(shí)序概念,但是在普遍硬件電路中從輸入到輸出的過程終歸是有延時(shí)存在的,為了詳細(xì)描述出這一特征,就必須引入時(shí)延這一概念。HDL語言不但能夠描述硬件電路的各類功能,還可以描述電路的時(shí)序。2.2.2關(guān)于Verilog語言的歷史1983年,GatewayDesignAutomation(GDA)硬件描述語言公司的PhilipMoorby開創(chuàng)了VerilogHDL這一語言。后來Moorby成為了VerilogHDL-XL的重要設(shè)計(jì)者和Cadence公司的第一合伙人。1984-1986年,Moorby設(shè)計(jì)出首個(gè)關(guān)于VerilogHDL的仿真器,同時(shí)提出了應(yīng)用于快速門級(jí)仿真的XL算法,讓VerilogHDL語言得到了突飛猛進(jìn)的發(fā)展。1987年Synonsys公司著手使用VerilogHDL行為語言當(dāng)做綜合工具的輸入。1989年Cadence公司將Gateway公司收購,VerilogHDL成為了Cadence公司的私有財(cái)產(chǎn)。直至1990年初,Cadence公司將VerilogHDL和VerilogHDL-XL分開,并且公開發(fā)布了VerilogHDL。隨后成立了OVI(OpenVerilogHDLInternational)組織用來負(fù)責(zé)VerilogHDL的發(fā)展和制定其相關(guān)標(biāo)準(zhǔn),OVI由VerilogHDL的使用用戶和CAE供應(yīng)商兩部分組成。1993年,幾乎全部的ASIC廠商都逐漸開始支持VerilogHDL,并且認(rèn)為VerilogHDL-XL是當(dāng)下最好的仿真器。與此同時(shí),OVI還推出了2.0版本的VerilongHDL規(guī)范條件,IEEE則是將OVI的VerilogHDL2.0作為IEEE標(biāo)準(zhǔn)的提案。在1995年12月,IEEE制定并發(fā)布了VerilogHDL的標(biāo)準(zhǔn)IEEE1364-1995?,F(xiàn)在,最新的Verilog語言版本是在2000年IEEE發(fā)布的Verilog2001標(biāo)準(zhǔn),這進(jìn)一步大幅度地升級(jí)了了系統(tǒng)級(jí)和可綜合性能。2.2.3VerilogHDL的主要能力VerilogHDL不僅是一種行為描述語言,還是一種結(jié)構(gòu)描述語言。只要依照規(guī)定的規(guī)則與風(fēng)格編寫代碼,就能將功能行為模塊用工具自動(dòng)轉(zhuǎn)變?yōu)殚T級(jí)互連的結(jié)構(gòu)模塊。這就說明利用Verilog語言所擁有的各項(xiàng)功能,就足以構(gòu)建一個(gè)模塊間的清晰結(jié)構(gòu),用來描述繁瑣的大型設(shè)計(jì),并且對(duì)所需的邏輯電路進(jìn)行嚴(yán)格的設(shè)計(jì)。以下列出的是Verilog語言主要的功能:可以用來描述順序執(zhí)行程序結(jié)構(gòu)或者并行執(zhí)行程序結(jié)構(gòu);過程的啟動(dòng)時(shí)間通過延遲表達(dá)式或者時(shí)間表達(dá)式來準(zhǔn)確的控制;用命名的事件來觸發(fā)其它過程中的激活行為或者停止行為;擁有條件和循環(huán)等各種程序結(jié)構(gòu);提供了可以帶參數(shù),并且非零延續(xù)時(shí)間的任務(wù)程序結(jié)構(gòu);擁有可以定義新的操作符的函數(shù)結(jié)構(gòu);提供了算術(shù)運(yùn)算符、邏輯運(yùn)算符和位運(yùn)算符用于建立表達(dá)式;擁有一整套完整的用來表示組合邏輯基本元件的原語;擁有對(duì)雙向通路和電阻器件的描述;可以建立對(duì)MOS器件的電荷分享與衰減模型;能夠通過構(gòu)造性語句精確地建立信號(hào)模型;2.2.4VerilogHDL和VHDL的比較VerilogHDL和VHDL都是用于邏輯設(shè)計(jì)的硬件描述語言。VHDL在1987年成為IEEE標(biāo)準(zhǔn),VerilogHDL則是在1995年才成為了IEEE標(biāo)準(zhǔn),這是因?yàn)閂HDL為美國軍方所組織開發(fā)的,而VerilogHDL則是從民間的公司轉(zhuǎn)化而來,所以想要成為國際標(biāo)準(zhǔn)就必須放棄專利。兩者相較而言,VerilogHDL具有更強(qiáng)的生命力。VerilogHDL與VHDL的共同點(diǎn)在于:都能形式化的抽象表示所需電路的行為和結(jié)構(gòu);兩者都支持邏輯設(shè)計(jì)中層次與范圍的描述;都能夠簡化電路行為的描述;均具有電路仿真和驗(yàn)證機(jī)制;都支持電路描述由高層到低層的綜合轉(zhuǎn)換;設(shè)計(jì)均與實(shí)現(xiàn)工藝無關(guān);方便管理和設(shè)計(jì)重用。但VerilogHDL和VHDL又各自有各自的特點(diǎn),由于VerilogHDL的推出比VHDL早,所以擁有更加廣泛的客戶群體和更加豐富的資源。VerilogHDL還具有的一個(gè)優(yōu)點(diǎn)就是很容易掌握,如果使用者具有一定的C語言學(xué)習(xí)基礎(chǔ),就可以很快的掌握。而VHDL則需要Ada編程語言的基礎(chǔ),一般情況下至少需要半年左右的專業(yè)學(xué)習(xí)才能夠掌握。傳統(tǒng)觀點(diǎn)都認(rèn)為VerilogHDL在系統(tǒng)級(jí)抽象方面較差,不是很適合特大型的系統(tǒng)。但是經(jīng)過Verilog2001標(biāo)準(zhǔn)的擴(kuò)展補(bǔ)充之后,系統(tǒng)級(jí)表述性能和可綜合性能有了質(zhì)的飛躍。當(dāng)然,VerilogHDL和VHDL語言也仍然在不斷完善的過程中,都在向著更高級(jí)、更準(zhǔn)確和更快速的描述語言方向前進(jìn)。2.2.5VerilogHDL設(shè)計(jì)方法自下而上的設(shè)計(jì)方法:自下而上的設(shè)計(jì)是最普遍的設(shè)計(jì)方法,主要是從基本單元出發(fā),對(duì)設(shè)計(jì)進(jìn)行逐層的劃分過程。這種設(shè)計(jì)方法和使用電子元器件在模擬實(shí)現(xiàn)板上創(chuàng)建一個(gè)系統(tǒng)的步驟有著密切的聯(lián)系。它的優(yōu)點(diǎn)和缺點(diǎn)分別如下:優(yōu)點(diǎn):設(shè)計(jì)人員對(duì)這種設(shè)計(jì)方法較為熟悉;用來實(shí)現(xiàn)各個(gè)子模塊所需要的時(shí)間較短。缺點(diǎn):如果對(duì)系統(tǒng)的整體功能不是很明確;因?yàn)楸仨毾葘?duì)多個(gè)子模塊進(jìn)行設(shè)計(jì),所以用來實(shí)現(xiàn)整體系統(tǒng)功能的所需時(shí)間較長;另外,這種方法對(duì)于設(shè)計(jì)人員之間的相互協(xié)作也有很高的要求。自頂向下的設(shè)計(jì)方法:自頂向下的設(shè)計(jì)方法指的是從系統(tǒng)級(jí)開始,將系統(tǒng)先簡單劃分為數(shù)個(gè)基本單元,然后再次把基本單元?jiǎng)澐譃楦?xì)一層次的基本單元,直至可用EDA元件能夠?qū)崿F(xiàn)為止。這種方法的優(yōu)點(diǎn)和缺點(diǎn)如下。優(yōu)點(diǎn):在設(shè)計(jì)周期的開始就已經(jīng)做好了系統(tǒng)分析;因?yàn)樵O(shè)計(jì)的主要仿真和調(diào)試過程都是在高層完成的,所以可以盡早的發(fā)現(xiàn)結(jié)構(gòu)設(shè)計(jì)上的錯(cuò)誤,避免了設(shè)計(jì)工作時(shí)間和精力上的浪費(fèi);方便了系統(tǒng)的劃分和整個(gè)項(xiàng)目的管理,能夠減少設(shè)計(jì)人員的勞動(dòng)量,避免了重復(fù)設(shè)計(jì)。缺點(diǎn):所得到的最小單元不標(biāo)準(zhǔn),并且制造成本較高?;旌系脑O(shè)計(jì)方法:對(duì)于復(fù)雜數(shù)字邏輯電路和系統(tǒng)設(shè)計(jì)過程,一般是上面兩種設(shè)計(jì)方法的結(jié)合。在設(shè)計(jì)時(shí)需要考慮多個(gè)目標(biāo)的綜合平衡。使用自頂向下的設(shè)計(jì)方法實(shí)現(xiàn)設(shè)計(jì)高層系統(tǒng),而使用自下而上的方法從庫元件或著以往設(shè)計(jì)庫中調(diào)用已有的設(shè)計(jì)單元。混合設(shè)計(jì)方法兼有以上兩種方法的優(yōu)點(diǎn),并且可使用先進(jìn)的矢量測試方法。2.3FPGA簡介工作原理:FPGA其工作原理是采用了邏輯單元陣列LCA(Logic

Cell

Array)這樣一個(gè)概念,其內(nèi)部包括可配置邏輯模塊CLB(Configurable

Logic

Block)、輸出輸入模塊IOB(Input

Output

Block)和內(nèi)部連線(Interconnect)三個(gè)部分。FPGA優(yōu)點(diǎn):采用FPGA設(shè)計(jì)ASIC電路(專用集成電路),用戶不需要投片生產(chǎn),就能得到合用的芯片;FPGA可做其它全定制或半定制ASIC電路的中試樣片;FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳;FPGA是ASIC電路中設(shè)計(jì)周期最短、開發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一;

FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。2.4QuartusII簡介 QuartusII是Altera公司提供的FPGA/CPLD集成開發(fā)軟件,Altera是世界上最大的可編程邏輯器件供應(yīng)商之一。QuartusII于二十一世紀(jì)初被推出,是Altera公司一代FPGA/CPLD集成開發(fā)軟件MAX+plusII的更新?lián)Q代產(chǎn)品,其界面更友好,使用更方便快捷。在QuartusII上可以完成設(shè)計(jì)輸入、HDL綜合、布局布線(適配)、仿真、選擇和硬件測試等各種流程,它提供了一個(gè)與結(jié)構(gòu)完全無關(guān)的設(shè)計(jì)環(huán)境,讓設(shè)計(jì)者可以很方便的進(jìn)行各種設(shè)計(jì)輸入、開始處理和器件編程。QuartusII提供了一整套的多平臺(tái)設(shè)計(jì)環(huán)境,它可以滿足各種特定的設(shè)計(jì)需求,也是單片機(jī)可編程系統(tǒng)(SoPC)設(shè)計(jì)的綜合環(huán)境與SoPC開發(fā)設(shè)計(jì)的基本工具,并且為AlteraDSP的開發(fā)包用來實(shí)現(xiàn)系統(tǒng)模型設(shè)計(jì)提供了良好的集成綜合環(huán)境。QuartusII設(shè)計(jì)完全支持VHDL與Verilog的設(shè)計(jì)流程,它的內(nèi)部含有VHDL和Verilog邏輯綜合器。QuartusII可以使用第三方的的綜合工具(例如LeonardoSpectrum、SynplifyPro、FPGAComplierII)并且能夠直接調(diào)用這些綜合工具。同樣QuartusII具備仿真功能,并且支持第三方的仿真工具(如Modelsim)。另外,QuartusII與MATLAB和DSPBuilder結(jié)合,可以使用進(jìn)行基于FPGA的DSP系統(tǒng)開發(fā),是DSP硬件系統(tǒng)實(shí)現(xiàn)的EDA工具。QuartusII包括模塊化的編譯器。便以其含有的功能模塊有分析/綜合器(Analysis&Synthesis),適配器(Fitter),裝配器(Assembler),時(shí)序分析器(TimingAnalyzer),設(shè)計(jì)輔助模塊(DesignAssistant),EDA網(wǎng)表生成器(EDANetlistWriter)和編譯器數(shù)據(jù)庫接口(ComplierDatabaseInterface)等。不僅可以通過選擇StartComplicetion運(yùn)行所有的編譯器模塊,還可以提供選擇Start獨(dú)立運(yùn)行各個(gè)模塊。也可以通過選擇ComlierTool(Tools)菜單,在ComplierTool窗口中運(yùn)行該模塊來啟動(dòng)編譯器模塊。在ComlierTool窗口中,可以打開該模塊的設(shè)置文件或報(bào)告文件,或打開其它相關(guān)窗口。2.5EDA簡介EDA是電子設(shè)計(jì)自動(dòng)化的簡寫,在60年代中期從計(jì)算機(jī)的輔助設(shè)計(jì)(CAD),計(jì)算機(jī)的輔助制造(CAM),計(jì)算機(jī)的輔助測試(CAT)和計(jì)算機(jī)的輔助工程(CAE)的概念發(fā)展來的。20世紀(jì)90年代,國際電子技術(shù)和計(jì)算機(jī)技術(shù)較先進(jìn)的國家,一直在積極探索電子電路設(shè)計(jì)和徹底的變化,在設(shè)計(jì)方法,工具使用的新方法的使用方面,取得了巨大的成功。在電子設(shè)計(jì)技術(shù),可編程邏輯器件的應(yīng)用得到了廣泛的傳播領(lǐng)域,這些設(shè)備用于數(shù)字系統(tǒng)的設(shè)計(jì)帶來了極大的靈活性。這些設(shè)備可以被重建,并通過軟件來進(jìn)行編程,硬件設(shè)計(jì)加上一部分的軟件設(shè)計(jì),可以使硬件設(shè)計(jì)更加簡便,更加方便。這一切都極大地改變了傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)的方法,設(shè)計(jì)過程以及設(shè)計(jì)的理念,促進(jìn)了EDA技術(shù)的快速發(fā)展。EDA技術(shù)是將計(jì)算機(jī)作為一種工具,設(shè)計(jì)者在EDA軟件平臺(tái),硬件描述語言VHDL設(shè)計(jì)文件完成后,再由計(jì)算機(jī)邏輯進(jìn)行編譯,化簡,分割,綜合,優(yōu)化,布局,布線和仿真自動(dòng)完成,直到特定目標(biāo)芯片的適配編譯,映射和編程邏輯的下載工作。自從出現(xiàn)了EDA技術(shù),極大地提高了人們對(duì)于電路設(shè)計(jì)和可操作性的效率,降低設(shè)計(jì)人員的勞動(dòng)強(qiáng)度。利用EDA工具,電子設(shè)計(jì)師從概念,算法,協(xié)議等開始設(shè)計(jì)電子系統(tǒng),大量工作可以通過計(jì)算機(jī)和電子產(chǎn)品就完成電路設(shè)計(jì),性能分析到IC布局的全過程。EDA設(shè)計(jì)的印刷電路板,還能自動(dòng)處理或布局在電腦上?,F(xiàn)在對(duì)于EDA的概念或范疇非常廣泛。在各個(gè)領(lǐng)域,包括機(jī)械設(shè)計(jì)制造,電子通信,航空航天技術(shù),化工產(chǎn)業(yè),礦產(chǎn)產(chǎn)業(yè),生物科學(xué),醫(yī)學(xué),軍事發(fā)展等方面,都有EDA應(yīng)用。目前EDA技術(shù)已在各大公司,企事業(yè)單位和科研教學(xué)部門被廣泛使用。例如,在飛機(jī)制造過程中,從設(shè)計(jì),性能測試和表征直到飛行模擬,都能涉及到EDA技術(shù)。EDA技術(shù)的概念,指的是利用計(jì)算機(jī)工作平臺(tái),結(jié)合電子技術(shù)應(yīng)用,計(jì)算機(jī)技術(shù),信息處理和智能技術(shù)對(duì)電子產(chǎn)品進(jìn)行自動(dòng)設(shè)計(jì)?!耙M(jìn)來VLSI系統(tǒng)”在電子設(shè)計(jì)自動(dòng)化的發(fā)展,米德和林恩康威在1980年出版的(介紹VLSI系統(tǒng))為標(biāo)志的文件作為EDA發(fā)展的下一個(gè)重要階段。本文提出通過編程語言設(shè)計(jì)的新思路,對(duì)于芯片行業(yè)發(fā)展具有重大意義。如果要實(shí)現(xiàn)這個(gè)想法,芯片設(shè)計(jì)的復(fù)雜性可以顯著提高。這主要是由于用于邏輯模擬的集成電路,功能驗(yàn)證工具的性能大大提高。隨著計(jì)算機(jī)仿真技術(shù)的發(fā)展,軟件設(shè)計(jì)的項(xiàng)目可以通過構(gòu)建實(shí)際的硬件電路仿真,芯片布局布線設(shè)計(jì)的要求,來降低勞動(dòng)力。使用先進(jìn)的軟件可以使代碼錯(cuò)誤率大大降低。即使在今天,盡管語言和工具都在不斷的開發(fā)使用。但是編程語言設(shè)計(jì),驗(yàn)證電路預(yù)期的行為,利用EDA的方式來簡化物理設(shè)計(jì)的抽象程度,降低軟件工具使用率,在不斷的發(fā)展中。自1981年以來,電子設(shè)計(jì)自動(dòng)化逐漸開始實(shí)現(xiàn)商業(yè)化。1984年設(shè)計(jì)自動(dòng)化會(huì)議也舉行了首個(gè)電子設(shè)計(jì)自動(dòng)化主題展銷。網(wǎng)關(guān)設(shè)計(jì)自動(dòng)化公司推出的硬件描述語言Verilog,在1986年這種語言是最流行的高抽象的設(shè)計(jì)語言。1987年,美國國防部門的主持下,另一種硬件描述語言VHDL已創(chuàng)建。目的是找出現(xiàn)代電子設(shè)計(jì)自動(dòng)化的最新工具,可以讀取不同類型的硬件的描述語言。根據(jù)各種模擬系統(tǒng)快速生成這些語言規(guī)范被引入,使設(shè)計(jì)人員設(shè)計(jì)的芯片可以直接被模擬。再后來,技術(shù)的發(fā)展更側(cè)重于邏輯綜合。數(shù)字集成電路的設(shè)計(jì)更加注重模塊化設(shè)計(jì)的和流程的設(shè)計(jì)。半導(dǎo)體器件制造過程中需要抽象描述一個(gè)高層次的標(biāo)準(zhǔn)化設(shè)計(jì)。描述的設(shè)計(jì)在以信息單元為基礎(chǔ)的形式會(huì)被編譯。硬件設(shè)計(jì)師需要特定的硬件信息技術(shù)來對(duì)單元邏輯進(jìn)行詳盡的設(shè)計(jì)。過程中要考慮使用工具的問題。使用專用集成電路的制造工藝,實(shí)現(xiàn)了硬件電路的初步設(shè)計(jì),信息單元將使用一個(gè)預(yù)定義的邏輯或?qū)崿F(xiàn)其他的電子功能。大多數(shù)半導(dǎo)體硬件廠商會(huì)為他們生產(chǎn)的組件提供了一個(gè)“圖書館”,并提供一個(gè)標(biāo)準(zhǔn)化的仿真模型。相比于數(shù)字電子設(shè)計(jì)自動(dòng)化工具,模擬系統(tǒng)大多是電子設(shè)計(jì)自動(dòng)化工具,但是這些工具不是模塊化的,這是因?yàn)樵O(shè)計(jì)較復(fù)雜的模擬電路,以及復(fù)雜的不同部位的器件會(huì)有很強(qiáng)的相互影響,電子元件一般不能用于模塊化設(shè)計(jì)的,VerilogAMS是一種硬件描述語言,用于模擬電子設(shè)計(jì)。本文中,設(shè)計(jì)人員可以使用硬件驗(yàn)證語言來完成該項(xiàng)目的驗(yàn)證。電子行業(yè)最新的發(fā)展趨勢將變成硬件設(shè)計(jì)描述語言與驗(yàn)證語言的集成,典型的例子是SystemVerilog。集成電路的規(guī)模,半導(dǎo)體技術(shù)發(fā)展,膨脹的電子設(shè)計(jì)原理使EDA的重要性顯著增加。這些工具的用戶,包括半導(dǎo)體器件的制造中心的硬件技術(shù)人員,他們工作在一家以經(jīng)營半導(dǎo)體器件制造和設(shè)備的整個(gè)工作車間和管理。一些設(shè)計(jì)公司的主營業(yè)務(wù),將采用電子設(shè)計(jì)自動(dòng)化的軟件,以評(píng)估制造的產(chǎn)品是否能利用新的設(shè)計(jì)軟件來完成任務(wù)。電子設(shè)計(jì)自動(dòng)化工具也被用來使設(shè)計(jì)功的能集成到一個(gè)類似的現(xiàn)場可編程門陣列邏輯的半定制的可編程邏輯器件,或者生產(chǎn)全定制的ASIC。大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文)第3章系統(tǒng)分析3.1功能需求既然要設(shè)計(jì)的是一個(gè)電子琴,那么首先就需要有一個(gè)人機(jī)互動(dòng)的數(shù)據(jù)采集模塊,讓使用者可以對(duì)設(shè)計(jì)成品進(jìn)行操作的一個(gè)終端。僅僅能輸入還不行,還要一個(gè)能夠?qū)⑹褂谜卟僮鞯膭?dòng)態(tài)保存起來的一個(gè)地方,在需要的時(shí)候又能讀取出來,保證能夠?qū)崿F(xiàn)自動(dòng)演奏的功能;然后,需要一種方法,讓電子琴能夠發(fā)聲,并且是發(fā)出特定頻率聲音的方法。最后,為了方便剛剛接觸樂器的使用者更直觀的知道電子琴發(fā)出的是什么聲音,還要有一個(gè)能夠注釋當(dāng)前發(fā)出的聲音是哪個(gè)的顯示器。3.2模塊需求3.2.1輸入 目前市場上能夠買到的電子琴,多數(shù)按鍵用的都是由導(dǎo)電橡膠、彈簧和壓力傳感器焊接而成,所以起初本人設(shè)想使用簡易的壓力傳感器作為設(shè)計(jì)目標(biāo),但經(jīng)由網(wǎng)上調(diào)查發(fā)現(xiàn),這種方法不僅個(gè)人難以實(shí)現(xiàn)成功焊接連線,而且最次質(zhì)量的壓力傳感器價(jià)格也在50元人民幣以上,8個(gè)按鍵就需要400元的價(jià)格,成本過于昂貴,成功率還沒有保證,自然這個(gè)方法被淘汰了。而后想到FPGA實(shí)現(xiàn)開發(fā)板上帶有許多按鍵,可以代替電子琴的按鍵,作為本設(shè)計(jì)的輸入,所以決定用Verilog語言和FPGA開發(fā)板上的按鍵實(shí)現(xiàn)電子琴的琴鍵功能。3.2.2自動(dòng)演奏功能想要實(shí)現(xiàn)自動(dòng)演奏,首先要保證有一個(gè)存儲(chǔ)功能,還要有一個(gè)可控的讀取功能。思考后,有兩套方案可簡單的實(shí)現(xiàn)這兩種方法。方案一:使用單片機(jī)內(nèi)部的存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)該功能。每個(gè)單片機(jī)自身就會(huì)有一定的存儲(chǔ)空間,一部分單片機(jī)也會(huì)有RAM(可隨機(jī)讀寫存儲(chǔ)器),使用起來很方便。而且單片機(jī)價(jià)格并不貴,還能重復(fù)使用。方案二:使用虛擬的RAM存儲(chǔ)數(shù)據(jù)并讀取,實(shí)現(xiàn)自動(dòng)播放功能。就是用Verilog硬件描述語言描述出一個(gè)RAM模塊,讓這串代碼實(shí)現(xiàn)正常RAM的功能要求,這種設(shè)計(jì)方法并沒有成本問題,使用的是FPGA板上的存儲(chǔ)空間。比較方案一和方案二,兩種方法都可以實(shí)現(xiàn)自動(dòng)播放功能的基本需求,也都很容易實(shí)現(xiàn),但方案一作為電子琴的存儲(chǔ)有一點(diǎn)瑕疵,就是單片機(jī)的存儲(chǔ)空間問題。單片機(jī)自身的存儲(chǔ)空間并不大,通常都是幾十KB左右,鮮有到1M空間的,難以擴(kuò)充大小,而方案二中,因?yàn)橛玫氖翘摂M的RAM,空間大小可以根據(jù)用戶需求修改,只要外界的存儲(chǔ)空間夠大,虛擬RAM可以調(diào)整到任意大小。所以最后我決定決定使用Verilog語言描述出一個(gè)虛擬的RAM,在FPGA板存儲(chǔ)單元中預(yù)留出想要的大小。3.2.3發(fā)聲一個(gè)電子琴最終的目的肯定是出聲,而對(duì)于聲音的理解,我們知道是由于振動(dòng)發(fā)出的。市場上的正規(guī)音頻合成器肯定是不能納入方案,因?yàn)閺?fù)雜程度已經(jīng)超出我所能達(dá)到的范圍。所以我需要一種便宜、實(shí)用,而且簡單易行的方法實(shí)現(xiàn)最后的發(fā)聲。在我們使用的FPGA開發(fā)板上,一般都會(huì)帶有蜂鳴器或者揚(yáng)聲器的裝置,我們可以利用這一便利條件實(shí)現(xiàn)發(fā)聲。3.2.4音符顯示因?yàn)椴皇敲總€(gè)人都能聽出電子琴發(fā)出的聲音是哪個(gè)音符,很多剛接觸音樂的人不能分辨出自己按下的是什么鍵,所以我需要設(shè)計(jì)一個(gè)讓所有人能看出來的“聲音”,就是顯示當(dāng)前音符的顯示器。他需要實(shí)時(shí)準(zhǔn)確的顯示出發(fā)出聲音的是那個(gè)音符,直觀的告知使用者。3.3系統(tǒng)開發(fā)環(huán)境軟件環(huán)境:ModelSim/QuartusII。開發(fā)語言:Verilog硬件描述語言。3.4系統(tǒng)任務(wù)的可行性分析技術(shù)可行性分析:本設(shè)計(jì)主要在FPGA(現(xiàn)場可編程邏輯器件)開發(fā)板上設(shè)計(jì)實(shí)現(xiàn),F(xiàn)PGA是近幾年來各大電子行業(yè)潮流選擇,也是今后的發(fā)展趨勢。它簡單方便,成本低廉,可實(shí)現(xiàn)功能強(qiáng)大。各個(gè)FPGA的開發(fā)廠商們不僅想要制作更高效、更便捷迅速的產(chǎn)品,還致力于讓產(chǎn)品價(jià)格更低廉,受眾面更廣泛,讓消費(fèi)者們接受。從各方面來看,F(xiàn)PGA開發(fā)板用來做本設(shè)計(jì)的電子琴是再好不過的選擇。整個(gè)電子琴的設(shè)計(jì)語言都是Verilog硬件描述語言。Verilog語言是1983年出現(xiàn)的,照現(xiàn)在看雖并不是很前衛(wèi)的硬件語言,但是它旺盛的生命力使他到現(xiàn)在都依然在各種電子器件中運(yùn)行,尤其是民間個(gè)人使用,更是頻繁。而它經(jīng)久不衰的要點(diǎn)就是它準(zhǔn)確快速,相對(duì)易學(xué),使用也簡單。作為本設(shè)計(jì)的使用語言,它足以實(shí)現(xiàn)各模塊的功能需求。設(shè)計(jì)整體完全不需要其他硬件外設(shè)支持,僅用FPGA開發(fā)板即可實(shí)現(xiàn),在成本上必須多其它方法更加廉價(jià),也更加便捷。從市場方面看,電子琴在現(xiàn)在早已不是什么新鮮玩意兒,經(jīng)過不斷的改進(jìn),很多音樂愛好者已經(jīng)用便宜的電子琴取代昂貴的鋼琴,而且很多電子琴還能發(fā)出不同樂器的聲音,一琴多用;不僅如此,我們還經(jīng)常能看見許多家長買玩具店中各式各樣的玩具電子琴送給自己的孩子,而價(jià)格通常在20-100不等,十分廉價(jià),所以本設(shè)計(jì)不僅可以提供給專業(yè)音樂愛好者使用演奏,也可以制作成孩童的幼兒玩具,市場營銷范圍廣泛。 第4章系統(tǒng)設(shè)計(jì)4.1設(shè)計(jì)思想先查詢并計(jì)算各音符對(duì)應(yīng)頻率,生成查詢表,將其存入某個(gè)模塊中備用,提供對(duì)照功能。當(dāng)用戶按下某一按鍵,該鍵位立即激活并發(fā)出特定的信號(hào),接收模塊根據(jù)指定按鍵激活并從查詢表中提取出對(duì)應(yīng)音符頻率。將接入時(shí)鐘進(jìn)行多次分頻,得到與查詢表數(shù)據(jù)相近的音頻,為了保證占空比,進(jìn)行二分頻,便于驅(qū)動(dòng)喇叭。存儲(chǔ)模塊可讀寫、可擦除,在設(shè)計(jì)時(shí)可自定義存儲(chǔ)空間大小,并且工作時(shí)可進(jìn)行手動(dòng)播放/自動(dòng)播放模式切換。4.2設(shè)計(jì)模塊根據(jù)第三章中需求所得出的各個(gè)模塊,將各模塊按信號(hào)流動(dòng)順序連接,并加入時(shí)鐘、復(fù)位等必須的信號(hào),最后在FPGA中實(shí)現(xiàn)全部功能。根據(jù)以上要求,可繪成如圖4.1的整體設(shè)計(jì)結(jié)構(gòu)設(shè)計(jì)框圖。圖4.1設(shè)計(jì)框圖4.2.1按鍵輸入模塊圖4.2按鍵模塊 按鍵輸入模塊實(shí)質(zhì)上就是模仿真實(shí)琴鍵的輸入;當(dāng)用戶按下一個(gè)鍵位后,key接口接收并對(duì)其產(chǎn)生反應(yīng),en信號(hào)轉(zhuǎn)高電平為確認(rèn)手動(dòng)模式下當(dāng)前有鍵按下,從index口輸出對(duì)應(yīng)按鍵的音頻信息告知后續(xù)模塊的工作需求。如圖4.2所示。因?yàn)殡娮忧偎枰粽{(diào)數(shù)量并不多,所以可以用case語句很容易的實(shí)現(xiàn)出來。4.2.2自動(dòng)演奏模塊圖4.3自動(dòng)演奏模塊為了實(shí)現(xiàn)可以讀出和寫入的存儲(chǔ)功能,該模塊需要一個(gè)RAM,QuartusII中可以直接調(diào)取該基礎(chǔ)模塊,另外還需要一個(gè)小的選擇(Choose)模塊輔助實(shí)現(xiàn),為的是可以實(shí)現(xiàn)手動(dòng)播放/自動(dòng)播放功能。外界開關(guān)會(huì)給出一個(gè)save信號(hào);當(dāng)save信號(hào)為高電位時(shí),證明當(dāng)前為手動(dòng)模式,en信號(hào)高電位時(shí),RAM存儲(chǔ)index輸入的信息,并由index_out輸出給Choose,Choose會(huì)選擇index1作為輸出信號(hào)。當(dāng)save信號(hào)為低電位時(shí),證明當(dāng)前為自動(dòng)播放模式,RAM提取已存儲(chǔ)的信息并輸出,模擬上一次手動(dòng)按鍵。clk為存入時(shí)所用的1MHZ時(shí)鐘,而讀取時(shí)為了避免太快聽不清或形成不了節(jié)奏,所以用的是clk四分頻后的clk4。如圖4.3所示。4.2.3數(shù)控分頻模塊圖4.4數(shù)控分頻模塊數(shù)控分頻模塊的作用是對(duì)基準(zhǔn)脈沖clk分頻,得到index中從中音do到高音do八個(gè)音符對(duì)應(yīng)頻率,形成波形信號(hào),由beep口輸出,如圖4.4所示。該模塊的語言描述中包含了以下進(jìn)程。首先在模塊內(nèi)寫一個(gè)各個(gè)音符頻率的對(duì)照表,然后等按鍵信息來時(shí)使用對(duì)應(yīng)項(xiàng)做分頻對(duì)照,從clk得到1MHz的脈沖,然后按照對(duì)照項(xiàng)對(duì)1MHz的脈沖再次分頻,得到的便是所對(duì)應(yīng)音符的頻率。4.2.4顯示模塊圖4.5顯示模塊顯示模塊中使用了七位數(shù)碼管器件用來顯示當(dāng)前發(fā)聲的音符簡譜,其模塊圖如圖4.5所示。iDIG口接收當(dāng)前準(zhǔn)備播放的音符序號(hào),然后根據(jù)序號(hào)給出七個(gè)高低電位驅(qū)動(dòng)數(shù)碼管的七個(gè)二極管發(fā)光,根據(jù)亮光的數(shù)碼管告知當(dāng)前的音符簡譜。4.3系統(tǒng)的控制流程本系統(tǒng)上電后先判斷是否為自動(dòng)播放模式,如為手動(dòng)模式,則從人為鍵入某一按鍵開始,按鍵模塊識(shí)別出是哪一個(gè)鍵后給出按鍵信息和en信號(hào),并將信息存儲(chǔ)進(jìn)RAM,然后繼續(xù)傳遞至選擇模塊,選擇模塊根據(jù)save信號(hào)為高電平判斷為手動(dòng)模式后,送給數(shù)控分頻模塊進(jìn)行音符分頻,模擬出合適的波形輸出,最后由揚(yáng)聲器播放聲音。大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文)第5章系統(tǒng)實(shí)現(xiàn)5.1模塊拼接各模塊都能實(shí)現(xiàn)其功能和要求后,將對(duì)應(yīng)接口連接,加入clk、rst_n等必須的外界信號(hào),形成整體系統(tǒng),最后由beep_out實(shí)現(xiàn)預(yù)計(jì)的發(fā)聲功能,連線后整體框圖如圖5.1~5.2所示。圖5.1RTL系統(tǒng)框圖(左)圖5.2RTL系統(tǒng)框圖(右)5.2系統(tǒng)控制流程圖本文設(shè)計(jì)的電子琴整體設(shè)計(jì)構(gòu)思,如圖5.3流程圖所示。圖5.3信號(hào)流程圖框圖5.3主要模塊關(guān)鍵代碼展示5.3.1按鍵輸入模塊(key_solve)if(!rst_n)index<=0;當(dāng)rst_n為非下降沿(上升沿)時(shí),復(fù)位至0;elseif(en)case(key)16'b00000000_00000001:index<=0;16'b00000000_00000010:index<=1;16'b00000000_00000100:index<=2;16'b00000000_00001000:index<=3;16'b00000000_00010000:index<=4;16'b00000000_00100000:index<=5;16'b00000000_01000000:index<=6;16'b00000000_10000000:index<=7;16'b00000001_00000000:index<=8;16'b00000010_00000000:index<=9;16'b00000100_00000000:index<=10;16'b00001000_00000000:index<=11;16'b00010000_00000000:index<=12;16'b00100000_00000000:index<=13;16'b01000000_00000000:index<=14;16'b10000000_00000000:index<=15;endcase當(dāng)en有效(有鍵按下)時(shí)(十六位二進(jìn)制,一位代表一個(gè)按鍵,共16個(gè)按鍵,低音5、6兩個(gè),中音七個(gè),高音七個(gè)),根據(jù)高電平位置給出對(duì)應(yīng)按鍵編號(hào)0~15。5.3.2自動(dòng)演奏模塊(store&Choose)assignindex_out=(save)?index1:index2;選擇模塊根據(jù)save信號(hào)選擇使用兩條線路的哪一條,高電平選index1(手動(dòng)模式信息),低電平選index2(自動(dòng)播放模式信息)。5.3.3數(shù)控分頻模塊(tone)always@(posedgeclk)if(clk_cnt>=cnt)beginclk_cnt<=0;clk_f<=!clk_f;endelseclk_cnt<=clk_cnt+1;assignbeep=clk_f;一開始該模塊會(huì)有一個(gè)對(duì)照表,根據(jù)按鍵把對(duì)照表的音符頻率賦予cnt,然后clk_cnt不斷+1,并與cnt比較,直到clk_cnt大于等于cnt時(shí),clk_f會(huì)反轉(zhuǎn)一次,clk_f不斷反轉(zhuǎn)便會(huì)形成對(duì)應(yīng)頻率的波形脈沖。5.3.4顯示模塊(SEG7_LUT)always@(iDIG)begin case(iDIG) 4'h1:oSEG=7'b1111001; 4'h2:oSEG=7'b0100100; 4'h3:oSEG=7'b0110000; 4'h4:oSEG=7'b0011001; 4'h5:oSEG=7'b0010010; 4'h6:oSEG=7'b0000010; 4'h7:oSEG=7'b1111000; 4'h8:oSEG=7'b0000000; 4'h9:oSEG=7'b0011000; 4'ha:oSEG=7'b0001000; 4'hb:oSEG=7'b0000011; 4'hc:oSEG=7'b1000110; 4'hd:oSEG=7'b0100001; 4'he:oSEG=7'b0000110; 4'hf:oSEG=7'b0001110; 4'h0:oSEG=7'b1000000; endcase顯示模塊使用的是七位數(shù)碼管,所以根據(jù)iDIG所給信息,分別給高低電位,只激活特定位置二極管,讓亮起的二極管形成數(shù)字,供使用者觀看。5.4各模塊仿真波形圖本系統(tǒng)仿真圖均由QuartuasII中自帶的Modelsim仿真功能仿真出圖,仿真結(jié)果顯示各模塊工作正常,都可以實(shí)現(xiàn)預(yù)期要求的功能,仿真圖如下各圖所示:5.4.1按鍵模塊圖5.4按鍵模塊仿真圖從圖5.4中可看出,當(dāng)按下某一按鍵后,對(duì)應(yīng)按鍵變?yōu)楦唠娖剑襡n信號(hào)給出一個(gè)脈沖,證明該模塊有效。5.4.2自動(dòng)播放模塊圖5.5存儲(chǔ)模塊仿真圖圖5.6選擇模塊仿真圖由圖5.5可以看出,index給出某個(gè)信號(hào)且en&save有效時(shí),index_out給出對(duì)應(yīng)信號(hào),證明該模塊工作正常。而從圖5.6可以看出,當(dāng)save低電平(自動(dòng)模式)時(shí),index_out放入的時(shí)index2(自動(dòng)播放數(shù)據(jù))中的數(shù)據(jù),當(dāng)save轉(zhuǎn)為高電平時(shí),index_out開始放入index1(手動(dòng)數(shù)據(jù))的數(shù)據(jù)。5.4.3數(shù)控分頻模塊圖5.7數(shù)控分頻模塊仿真圖由圖5.7可看出,當(dāng)按下中音fa(index對(duì)照表為5號(hào))時(shí),beep可產(chǎn)生對(duì)應(yīng)的有規(guī)律的波形,說明該模塊工作正常,可以使用。5.4.4顯示模塊圖5.8顯示模塊仿真圖由圖5.8可以看出,當(dāng)iDIG口收到不同信號(hào)時(shí),數(shù)碼管依照預(yù)定規(guī)律顯示高電平,證明顯示模塊也可以使用??偨Y(jié):由以上各圖及說明可以證明,本設(shè)計(jì)中各模塊均能依照預(yù)計(jì)功能正常工作,由此可見本設(shè)計(jì)在仿真級(jí)別上已經(jīng)成功。大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文)第6章系統(tǒng)測試6.1測試方案擬定先將代碼下載到FPGA開發(fā)板中,正確連線,按下復(fù)位鍵,將手動(dòng)/自動(dòng)開關(guān)切換到手動(dòng)模式,準(zhǔn)備按鍵測試。依次按下鍵位,聽喇叭是否出聲,并分辨是否是按鍵時(shí)的順序發(fā)聲,觀察數(shù)碼管是否正確顯示音符簡譜信息。通過后,再次復(fù)位,切換到手動(dòng)模式,按隨意順序按下鍵位,讓RAM存儲(chǔ)信息,準(zhǔn)備測試自動(dòng)播放模式。將手動(dòng)/自動(dòng)開關(guān)切換到自動(dòng)播放模式,測試?yán)仁欠癜l(fā)聲,且與上次輸入的音符順序相同,觀察七位數(shù)碼管顯示,是否與上次按鍵相同。如果以上測試均成功,證明本設(shè)計(jì)成功,通過測試。6.2測試結(jié)果先將電腦與FPGA開發(fā)板正確連線,下載正常,按下復(fù)位鍵,切換到手動(dòng)模式,然后依次按下中音do到高音do,發(fā)現(xiàn)FPGA連接的喇叭發(fā)出聲音,且是按中音do到高音do的順序發(fā)聲,數(shù)碼管也依次準(zhǔn)確亮起,如圖6.1按鍵測試圖所示。重新復(fù)位,然后選取按下中音區(qū)的2、4、6、按鍵,將開關(guān)切換到自動(dòng)播放模式,聽到喇叭發(fā)出準(zhǔn)確聲音,且數(shù)碼管也準(zhǔn)確顯示了數(shù)字,如圖6.2自動(dòng)播放測試圖所示。圖6.1按鍵測試圖圖6.2自動(dòng)播放測試圖6.3最終結(jié)論從測試結(jié)果可以看出,本設(shè)計(jì)整體工作一切正常,可現(xiàn)實(shí)簡譜,按鍵有效,可正常發(fā)聲,各項(xiàng)均達(dá)到預(yù)期要求功能,證明本電子琴設(shè)計(jì)已成功。大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文)第7章結(jié)論目前中國的歌曲個(gè)人創(chuàng)作正在蓬勃發(fā)展,網(wǎng)絡(luò)歌曲層出不窮,除了吉他,小提琴等常見樂器,更多的人開始使用電子琴的各種便利功能,便宜的價(jià)格及功能的強(qiáng)大是其他樂器無法比擬的,成為許多音樂愛好者的首選樂器。越來越多的音響廠家添加了支持電子琴的輸入接口,也能證明電子琴是目前音樂界樂器寵兒。本設(shè)計(jì)的八音電子琴經(jīng)過各種設(shè)計(jì)、測試、修改,已成功發(fā)聲,達(dá)到預(yù)期設(shè)計(jì)要求,并且可以很簡單的將八音擴(kuò)展升級(jí)為十六音(包括中音、高音和低音的兩個(gè)音階),也已通過測試,證明可以正常使用。本設(shè)計(jì)中主要使用QuartusII進(jìn)行代碼編寫、檢錯(cuò)、調(diào)試,并用其自帶的Modelsim軟件進(jìn)行波形仿真,檢測無誤后下板調(diào)試。最終形成一個(gè)可切換手動(dòng)/自動(dòng)播放模式控制,能顯示發(fā)聲音符簡譜的模擬電子琴。設(shè)計(jì)電子琴的初期因?yàn)檫^于糾結(jié)存儲(chǔ)功能的實(shí)現(xiàn),浪費(fèi)了很長一段時(shí)間,最后通過同學(xué)的開導(dǎo)才得以解決,最終才有了這一套完整的方案。這套方案的設(shè)計(jì)難點(diǎn)在于自動(dòng)演奏模塊的連接位置,以及如何保持持續(xù)按鍵時(shí)候的連續(xù)發(fā)聲,解決這兩方面后,其余的就是各種音符的基本分頻操作。當(dāng)然本電子琴設(shè)計(jì)也存在一定遺憾。最大的遺憾就是發(fā)出的聲音并沒有真的琴那種顫音、漸弱以及音色,僅僅是FPGA的一個(gè)單調(diào)的頻率的聲音。這方面的知識(shí)在同學(xué)的幫助下找到了幾種相關(guān)算法,編寫時(shí)也添加過這些方法想要實(shí)現(xiàn)功能,但是最后由于各種原因并沒有能夠?qū)崿F(xiàn),所以沒有加入該設(shè)計(jì),這方面有待以后加以改進(jìn)??偠灾?,我已成功利用Verilog硬件描述語言實(shí)現(xiàn)了一個(gè)可自動(dòng)演奏,鍵入發(fā)聲的電子琴功能,再經(jīng)過綜合仿真,下載調(diào)試,最終

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論