![基于EDA的簡易電子琴設(shè)計 鮑亞文_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-10/2/3af2711f-7632-4572-b2c4-5a31c9e10919/3af2711f-7632-4572-b2c4-5a31c9e109191.gif)
![基于EDA的簡易電子琴設(shè)計 鮑亞文_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-10/2/3af2711f-7632-4572-b2c4-5a31c9e10919/3af2711f-7632-4572-b2c4-5a31c9e109192.gif)
![基于EDA的簡易電子琴設(shè)計 鮑亞文_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-10/2/3af2711f-7632-4572-b2c4-5a31c9e10919/3af2711f-7632-4572-b2c4-5a31c9e109193.gif)
![基于EDA的簡易電子琴設(shè)計 鮑亞文_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-10/2/3af2711f-7632-4572-b2c4-5a31c9e10919/3af2711f-7632-4572-b2c4-5a31c9e109194.gif)
![基于EDA的簡易電子琴設(shè)計 鮑亞文_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-10/2/3af2711f-7632-4572-b2c4-5a31c9e10919/3af2711f-7632-4572-b2c4-5a31c9e109195.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于EDA的簡易電子琴設(shè)計鮑亞文(安慶師范大學(xué)物理與電氣工程學(xué)院 安徽 安慶 )指導(dǎo)老師:鄭江云摘要:本設(shè)計是一個簡易的七音符電子琴,該電子琴可以通過按鍵輸入來控制音調(diào),也可對預(yù)置樂曲的自動演奏,同時由數(shù)碼管顯示即時音符。系統(tǒng)的實現(xiàn)是基于EDA技術(shù),在Quartus軟件平臺上,借助FPGA目標(biāo)器件,用硬件描述語言Verilog HDL進行編程并仿真驗證。本設(shè)計中的電子琴可操作性好,音符顯示直觀,聲音優(yōu)美。關(guān)鍵詞:電子琴,電子設(shè)計自動化,Verilog HDL語言引言科技發(fā)展的日新月異,催生了一系列新奇實用的電子產(chǎn)品。在這些電子產(chǎn)品中,電子琴早已成為電子樂器行列中的重要一員。電子琴是人類仿制常規(guī)
2、樂器的代表之一,其發(fā)明問世極大地豐富了人們的聽覺感受,推動了音樂的普及和發(fā)展。在信息化與電子化交織的今天,電子琴作為社會科技與文明的產(chǎn)物,正扮演著音樂領(lǐng)域中不可或缺的角色。EDA技術(shù)的快速發(fā)展和成熟,F(xiàn)PGA等數(shù)字可編程器件的出現(xiàn)和進步,基于EDA技術(shù)的設(shè)計也變得愈加簡單可行?;贓DA技術(shù)的設(shè)計不僅系統(tǒng)可靠性較高,而且能實現(xiàn)較為復(fù)雜的功能。運用EDA軟件可方便地在計算機平臺上實現(xiàn)設(shè)計與仿真,本設(shè)計中的電子琴便是基于EDA技術(shù),運用Verilog HDL語言設(shè)計完成的。1 EDA概述與音樂知識1.1 EDA技術(shù)1.1.1 EDA的發(fā)展EDA(Electronic Design Automati
3、on,電子設(shè)計自動化)可以認(rèn)識為在計算機工作平臺上,以EDA軟件為開發(fā)環(huán)境,以PLD器件或ASIC專用集成電路為目標(biāo)器件來設(shè)計實現(xiàn)電路系統(tǒng)的一門技術(shù)。EDA技術(shù)在逐漸進步,其大致經(jīng)歷了3個發(fā)展階段:CAD階段(20世紀(jì)70年代至80年代初)、CAE階段(20世紀(jì)80年代初至90年代初)、EDA階段(20世紀(jì)90年代以后)。1EDA技術(shù)在進入21世紀(jì)后,得到了不小的進步和發(fā)展,突出表現(xiàn)在以下幾個方面:2(1)不斷推出在仿真驗證和設(shè)計兩方面都支持標(biāo)準(zhǔn)硬件描述語言的EDA軟件,功能更加強大且驗證更加高效;(2) EDA技術(shù)使得電子設(shè)計成果以自主知識產(chǎn)權(quán)(IP)的方式予以確認(rèn),提高了設(shè)計成果的可重用性
4、;(3)EDA技術(shù)使得電子領(lǐng)域各學(xué)科之間的界限更加模糊,互為包容,如模擬和數(shù)字、軟件和硬件、系統(tǒng)和器件、ASIC和FPGA等;(4)SoPC(可編程芯片系統(tǒng))進入實用化階段;(5)高速數(shù)字信號處理算法可基于FPGA的DSP技術(shù)實現(xiàn)。1.1.2 EDA的設(shè)計流程一個完整的EDA設(shè)計流程既是自頂向下設(shè)計方法的具體實施途徑,也是EDA工具軟件本身的組成結(jié)構(gòu)。自頂向下的設(shè)計,即Top-down設(shè)計,這種設(shè)計方法首先從系統(tǒng)設(shè)計入手,在頂層進行功能方框圖的劃分與結(jié)構(gòu)設(shè)計。在功能級仿真糾錯,并用硬件描述語言對高層次的系統(tǒng)行為進行描述,然后用綜合工具將設(shè)計轉(zhuǎn)化為具體門電路網(wǎng)表。由于設(shè)計的主要仿真和調(diào)試過程是在
5、高層次完成的,這一方面有利于在早期發(fā)現(xiàn)結(jié)構(gòu)設(shè)計上的錯誤,避免設(shè)計工作的浪費,同時也減少了邏輯功能仿真的工作量,提高了設(shè)計的一次成功率。EDA設(shè)計流程一般包括:設(shè)計輸入、綜合、布局布線、仿真、編程配置的步驟。3設(shè)計輸入原理圖HDL文本功能仿真綜合時序仿真FPGA/CPLD適配FPGA/CPLD編程下載在線測試 圖1 基于FPGA/CPLD器件的數(shù)字系統(tǒng)設(shè)計流程 (1)設(shè)計輸入(Design Entry):主要為原理圖(schematic)輸入和HDL文本編輯輸入2部分。(2)綜合(Synthesis):將高級抽象層次的設(shè)計描述自動轉(zhuǎn)化為低層次描述。(3)布局布線:將綜合生成的電路邏輯網(wǎng)表映射到具
6、體的目標(biāo)器件,并產(chǎn)生最終的可下載文件。(4)仿真:包括功能仿真和時序仿真,對設(shè)計電路的功能的驗證。(5)編程配置:把適配后生成的編程文件裝入到PLD器件中,CPLD器件的下載稱為編程,F(xiàn)PGA器件的下載稱為配置。1.1.3 Quartus II設(shè)計平臺和Verilog HDL語言本設(shè)計的開發(fā)工具是Quartus II,采用Verilog HDL語言編程。Quartus II適合大規(guī)模FPGA的開發(fā),是Altera繼MAX+plus II后的新一款開發(fā)工具。Quartus II提供了更優(yōu)化的綜合和適配功能,改善了對第三方仿真和分析工具的支持。它還包括了DSP Builder、SOPC Build
7、er等開發(fā)工具,支持系統(tǒng)級的開發(fā)等。Quartus II是一款具有標(biāo)準(zhǔn)的EDA工具接口和完善的可視化設(shè)計環(huán)境的FPGA/CPLD集成開發(fā)軟件。設(shè)計輸入有多種表達方式,最常用的是原理圖方式和HDL文本方式。Verilog HDL是一種硬件描述語言(HDL:Hardware Description Language),以文本形式來描述數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為的語言。用它可以表示邏輯電路圖、邏輯表達式,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能。4Verilog HDL和VHDL是世界上流行的2種硬件描述語言,都是在20世紀(jì)80年代中期被開發(fā)出來的。Verilog HDL由GDA公司開發(fā),它是在C語言的
8、基礎(chǔ)上發(fā)展而來的,但作為一種硬件描述語言和C語言有著本質(zhì)的區(qū)別,Verilog語言概括起來有著如下的一些特點:(1) 適用于可綜合的電路設(shè)計,也適用于電路和系統(tǒng)的仿真。(2) 能在多個層次上對所設(shè)計的系統(tǒng)進行描述,對設(shè)計的規(guī)模也沒有任何限制。(3) 行為描述和結(jié)構(gòu)描述靈活且支持混合建模。(4) 行為描述語句類似于軟件高級語言。(5) 內(nèi)置各種邏輯門和開關(guān)級元件。(6) UDP(用戶定義原語)可靈活創(chuàng)建。1.1.4 FPGA器件FPGA(Field Programmable Gate Array),現(xiàn)場可編程門陣列,是一種在采用單元型結(jié)構(gòu)的新型PLD器件。作為ASIC(專用集成電路)領(lǐng)域中的一種
9、半定制電路,F(xiàn)PGA既彌補了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點,成為當(dāng)前主流的PLD器件之一。FPGA使用CMOS、SRAM工藝制作,和陣列型PLD結(jié)構(gòu)不同,內(nèi)部由許多獨立的可編程邏輯單元構(gòu)成,各邏輯單元間可以靈活地相互連接,具有密度高、速度快、編程靈活、可重新配置等優(yōu)勢。1.2 電子琴與相關(guān)的音樂知識EDA技術(shù)的成熟,F(xiàn)PGA器件的發(fā)展使得基于EDA技術(shù)的電子琴設(shè)計成為可能。在計算機上運用EDA軟件可以很方便地對所需要實現(xiàn)的電子琴進行設(shè)計和仿真。采用傳統(tǒng)方法如單片機設(shè)計的電子琴,要求設(shè)計人員對硬件非常熟悉,且單片機制作的主控板受制版工藝、布局結(jié)構(gòu)和起器件質(zhì)量等因素的影響
10、導(dǎo)致抗干擾能力差、故障率高、不易擴展等問題。EDA技術(shù)對于設(shè)計人員來說,修改程序可以實現(xiàn)不同的功能,對于設(shè)計周期來說節(jié)省了時間。本設(shè)計中的電子琴是通過按鍵控制發(fā)音的,系統(tǒng)演奏時能選擇手動演奏或是自動演奏一段預(yù)置的簡短音樂。為完成該設(shè)計,需要了解一些基本的音樂知識理論。在音樂領(lǐng)域中,簡譜和五線譜是人們用來記譜的兩種記譜法,簡譜相對簡易,其又分為字母簡譜和數(shù)字簡譜。數(shù)字簡譜以1、2、3、4、5、6、7來表示音階中的7個基本音級,分別用do,re,mi,fa,sol,la,si來讀音。在一段4/4拍數(shù)字簡譜中,單獨的數(shù)字表示一個四分音符,數(shù)字下面的橫線為減時線,表示四分音符長度減半;數(shù)字右面的短橫線
11、稱為增時線,每加一條則延長一個四分音符時間;數(shù)字右面的圓點稱為附點,用來延長前面音符時值的一半。如4/4拍一個四分音符(5)為1拍,則全音符(5- - -)為4拍,二分音符(5-)為2拍,八分音符(5)為半拍。在一段數(shù)字簡譜后面的豎直線為小節(jié),0為休止符。另外為了標(biāo)記簡譜中的重低音,在數(shù)字上方的圓點記為重音,在下方的為低音,單獨的數(shù)字則是中音。2.系統(tǒng)分析與方案設(shè)計2.1 設(shè)計思想與原理框圖揚聲器設(shè)計思想為利用EDA技術(shù)對FPGA器件進行配置實現(xiàn)電子琴,系統(tǒng)掃描按鍵輸入信號來選擇是手動還是自動演奏,采集的信號轉(zhuǎn)化為分頻預(yù)置數(shù),數(shù)控分頻器輸出不同音符的頻率給揚聲器,并由數(shù)碼管顯示當(dāng)前音符。按鍵譯
12、碼數(shù)碼管4音調(diào)顯示置數(shù)分頻揚聲器反饋預(yù)置計數(shù)器二分頻器CLK-6MHz數(shù)碼管123音符顯示 分頻曲譜產(chǎn)生CLK-4Hz圖2 系統(tǒng)原理框圖2.2 原理說明(1) 當(dāng)演奏者按下7個音調(diào)鍵盤后,在系統(tǒng)基準(zhǔn)時鐘6MHz下,根據(jù)鍵盤的輸入信號分頻,產(chǎn)生所需的7個不同音調(diào)的頻率并二分頻輸出給speaker,同時由數(shù)碼管HEX4顯示音調(diào)。(2) 當(dāng)自動演奏信號auto為真時,對系統(tǒng)6MHz基準(zhǔn)時鐘分頻,產(chǎn)生一個頻率為4Hz的時鐘用于譜曲的分頻比預(yù)置。6MHz時鐘使數(shù)控分頻器產(chǎn)生曲譜演奏音符的對應(yīng)頻率,再經(jīng)過一個二分頻器輸出該頻率,最后通過speaker發(fā)出該音符的聲音,同時由數(shù)碼管HEX3、 HEX2和 H
13、EX1分別顯示高中低音符。(3) 當(dāng)auto為0演奏者按下stp鍵后,speaker不發(fā)聲,輸出始終為0Hz的信號,同時音調(diào)數(shù)碼管均顯示0。3.Quartus II設(shè)計過程3.1 自動演奏樂曲要使用電子琴完成一段音樂的演奏,音調(diào)和音長是2個最關(guān)鍵的參數(shù)。根據(jù)音樂知識,音調(diào)是由頻率控制的,音長為該音符持續(xù)時間的長短。在本設(shè)計中,樂譜產(chǎn)生電路用來控制音樂的音調(diào)和音長。本設(shè)計中曲譜的自動演奏需要在C調(diào)中選取從低音1到高音7共21個音階,這些不同信號的頻率都可以由一個基準(zhǔn)頻率分頻得到。因為各音階的頻率為非整數(shù),而分頻系數(shù)不能為小數(shù),所以必須對分頻系數(shù)進行四舍五入。這樣基準(zhǔn)頻率的選擇變得比較重要,基準(zhǔn)頻
14、率選擇較低,分頻系數(shù)就小,誤差大;基準(zhǔn)頻率選擇較高,誤差是小了,但是分頻系數(shù)也大。綜合考慮,選取6 MHz的基準(zhǔn)頻率是可行的。數(shù)控分頻器輸出的為脈寬極窄的脈沖式信號,為了減少輸出的偶次諧波分量,需要在數(shù)控分頻器和揚聲器之間加一個二分頻器以均衡其占空比,保證到達揚聲器的是對稱方波。二分頻器將基準(zhǔn)頻率二分頻,即為3MHz,計算分頻系數(shù)也就以3MHz為基準(zhǔn)頻率。分頻系數(shù)為基準(zhǔn)頻率和各音階頻率的比值,例如中音1的頻率為523Hz,分頻系數(shù)為5736,高音7的頻率為1976 Hz,分頻系數(shù)為1518。由于最大分頻系數(shù)為11450,故采用14位二進制計數(shù)器已經(jīng)足夠。在演奏時,對于不同的分頻系數(shù),只需要加載
15、對應(yīng)的預(yù)置數(shù)。采用加載預(yù)置數(shù)的方法比反饋復(fù)零法更節(jié)省資源,實現(xiàn)起來也更加簡單。用差值法分頻,把初始值214 -1=16383和各音階的分頻系數(shù)的差值作為預(yù)置數(shù)即可發(fā)出不同頻率的音符。對于樂曲中的休止符,只要將分頻系數(shù)設(shè)為0,初始值為16383即可,此時揚聲器不發(fā)聲。6表1 各音階頻率對應(yīng)分頻系數(shù)與預(yù)置數(shù)(由3Mhz計算得出)低音頻率/Hz分頻系數(shù)初始值中音頻率/Hz分頻系數(shù)初始值高音頻率/Hz分頻系數(shù)初始值12621145049331523573610647110462868135152294102046179258751111127221175255313830333090917294365
16、94552118313131822761410743498596778746984298120854139721471423653927653873057843827125565156819131447064406818956568034091297467601705146787494607310310798830361334771976151814865音符的持續(xù)時間由樂曲的速度及每個音符的節(jié)拍數(shù)確定。通過控制計數(shù)器預(yù)置數(shù)的停留時間,預(yù)置數(shù)的停留時間長,則音符的停留時間長。以下是生日歌的C調(diào)簡譜:圖3 生日歌簡譜簡譜中,如果將全音符的持續(xù)時間設(shè)定為1秒,則四分音符為0.25秒,只需要再提供一
17、個4Hz的時鐘頻率即可產(chǎn)生四分音符的時長。每個音符的演奏時間都是0.25的整數(shù)倍,對于節(jié)拍較長的音符,如二分音符在記譜時將該音名連續(xù)記錄2次,全音符連續(xù)記錄4次即可。在編寫樂譜程序時記音符的拍數(shù),由于二分頻器的存在,一拍就要記為連續(xù)的2個時鐘節(jié)拍。為了實現(xiàn)樂曲的循環(huán)演奏,需要再加一個時長計數(shù)器counter,當(dāng)樂曲演奏結(jié)束時能再次重新演奏。3.2 手動按鍵演奏本設(shè)計中的電子琴且除了能自動演奏一段預(yù)置的樂曲外,還能完成手動演奏發(fā)出C調(diào)的7個中音 。由于自動演奏是在人按下自動演奏鍵以后進行的,所以設(shè)置一個auto來控制是否自動演奏。當(dāng)auto為真時,實現(xiàn)預(yù)置樂曲的自動演奏,否則掃描按鍵由人工演奏。
18、如果自動演奏則按照樂譜,把musicout賦值給speaker。手動演奏時的音調(diào)頻率同樣需要由系統(tǒng)時鐘分頻得到,設(shè)置一個i以改變分頻系數(shù),再對speaker二分頻。各個音調(diào)的分頻系數(shù)以3MHz計算得出,即為表1中從中音1到中音7的分頻系數(shù)。如中音1的分頻系數(shù)應(yīng)為5736。相應(yīng)地,中音1的輸出信號程序應(yīng)該編寫成:doo:begin if(i=5736)beginspeaker=!speaker;tone=4b0001;i=0;endelsei=i+1d1;end3.3 音名顯示音名顯示數(shù)碼管用來顯示演奏時對應(yīng)的音符。本設(shè)計中,用數(shù)碼管HEX3、HEX2、HEX1分別顯示自動演奏時的高中低音符,其
19、中high_7s、mid_7s和low_7s分別為高中低音顯示信號;用數(shù)碼管HEX4顯示手動演奏時的音調(diào),tone_7s為鍵盤演奏音調(diào)信號。采用7段共陽數(shù)碼管,以a、b、c、d、e、f、g來標(biāo)記數(shù)碼管的7個LED顯示位,對各個要顯示位置加以低電平即可點亮。本設(shè)計中,定義輸出reg6:0 ledout為顯示信號,例如要顯示“0”,只要使ledout=7b。借助這些數(shù)碼管,能夠?qū)崿F(xiàn)演奏的動態(tài)顯示。圖4 共陽數(shù)碼管原理圖3.4 源程序module eorgan(key,clk6m,auto,speaker,tone_7s,high_7s,mid_7s,low_7s); input key,clk6m
20、,auto; /鍵盤輸入,6M基準(zhǔn)時鐘輸入,自動演奏 wire7:0 key; /鍵盤輸入信號 output 6:0 tone_7s; /數(shù)碼管顯示鍵盤音調(diào)output reg speaker; output 6:0 high_7s; /顯示樂曲高音音符output 6:0 mid_7s; /顯示樂曲中音音符output 6:0 low_7s; /顯示樂曲低音音符 reg20:0 i; reg clk4; reg3:0 high,mid,low,tone; /高中低音信號和鍵盤音調(diào)信號 reg13:0 divider,origin; /自動演奏分頻系數(shù)和初始值 reg carry; reg m
21、usicout; /樂譜輸出信號 reg 19:0 count20; reg7:0 counter; parameter stp=8b, /休止 doo=8b, /do re=8b, /re mi=8b, /mi fa=8b, /fa sol=8b, /sol la=8b, /la si=8b; /si always (posedge clk6m) begin if(auto) speaker=musicout; /如果automusic為真,輸出樂譜 else begin /否則判斷鍵盤key的輸入case(key) stp:beginspeaker=0;tone=4b0000;i=5736
22、)beginspeaker=!speaker;tone=4b0001;i=0;endelsei=5111)beginspeaker=!speaker;tone=4b0010;i=0;endelsei=4552)beginspeaker=!speaker;tone=4b0011;i=0;endelsei=4298)beginspeaker=!speaker;tone=4b0100;i=0;endelsei=3827)beginspeaker=!speaker;tone=4b0101;i=0;endelsei=3409)beginspeaker=!speaker;tone=4b0110;i=0;e
23、ndelsei=3036)beginspeaker=!speaker;tone=4b0111;i=0;endelsei=i+1d1;enddefault:beginspeaker=0;tone=4b0000;i=0;endendcase end end always (posedge clk6m) /通過置數(shù),改變分頻比begin if(divider=16383)begin carry=1;divider=origin;end else begin divider=divider+1d1;carry=0;endend always (posedge carry) begin musicout
24、=musicout; /2 分頻產(chǎn)生方波信號 end always (posedge clk6m) /從6Mhz得到4hzbegin if(!auto)begin count20=20d0;clk4=0;endelse if(count20=20d) begin count20=20d0;clk4=clk4;endelse count20=count20+20d1;end always (posedge clk4) /分頻比預(yù)置 begin case(high,mid,low) h001: origin=4933; /低音1h002: origin=6179; /低音2h003: origin
25、=7294; /低音3h004: origin=7787; /低音4h005: origin=8730; /低音5h006: origin=9565; /低音6h007: origin=10310; /低音7h010: origin=10647; /中音1h020: origin=11272; /中音2h030: origin=11831; /中音3h040: origin=12085; /中音4h050: origin=12556; /中音5h060: origin=12974; /中音6h070: origin=13347; /中音7h100: origin=13515; /高音1h200
26、: origin=13830; /高音2h300: origin=14107; /高音3h400: origin=14236; /高音4h500: origin=14470; /高音5h600: origin=14678; /高音6h700: origin=14865; /高音7h000: origin=16383; /休止 endcase end always (posedge clk4)begin if(counter=52) counter=0; /計時,以實現(xiàn)循環(huán)演奏 else counter=counter+1d1; case(counter) /記譜0: high,mid,low=
27、h050; /“?!?1: high,mid,low=h050; /“你”2: high,mid,low=h060; /“生”3: high,mid,low=h060; /持續(xù)2個時鐘節(jié)拍,以下類似4: high,mid,low=h050; /“日”5: high,mid,low=h050; 6: high,mid,low=h100; /“快”7: high,mid,low=h100; 8: high,mid,low=h070; /“樂”9: high,mid,low=h070; 10: high,mid,low=h070;11: high,mid,low=h070; 12: high,mid
28、,low=h050; /“?!?3: high,mid,low=h050;14: high,mid,low=h050; /“你”15: high,mid,low=h050;16: high,mid,low=h060; /“生”17: high,mid,low=h060; 18: high,mid,low=h050; /“日”19: high,mid,low=h050; 20: high,mid,low=h200; /“快”21: high,mid,low=h200;22: high,mid,low=h100; /“樂”23: high,mid,low=h100;24: high,mid,low
29、=h100; 25: high,mid,low=h100; 26: high,mid,low=h050; /“?!?7: high,mid,low=h050; /“你”28: high,mid,low=h500; /“生” 29: high,mid,low=h500;30: high,mid,low=h300; /“日”31: high,mid,low=h300;32: high,mid,low=h100; /“快”33: high,mid,low=h100;34: high,mid,low=h070; /“樂” 35: high,mid,low=h070; 36: high,mid,low=
30、h060; 37: high,mid,low=h060;38: high,mid,low=h400; /“?!?9: high,mid,low=h400; /“你”40: high,mid,low=h300; /“生” 41: high,mid,low=h300;42: high,mid,low=h100; /“日”43: high,mid,low=h100;44: high,mid,low=h200; /“快”45: high,mid,low=h200;46: high,mid,low=h100; /“樂”47: high,mid,low=h100; 48: high,mid,low=h10
31、0; 49: high,mid,low=h100; 50: high,mid,low=h100;51: high,mid,low=h100;52: high,mid,low=h000;endcase endled_7s u1(high,high_7s); /高音音符顯示led_7s u2(mid,mid_7s); /中音音符顯示led_7s u3(low,low_7s); /低音音符顯示 led_7s u4(tone,tone_7s); /鍵盤輸入音調(diào)顯示endmodulemodule led_7s(datain,ledout); /7段數(shù)碼管譯碼顯示模塊input 3:0 datain;ou
32、tput reg6:0 ledout;always begincase(datain)0:ledout=7b;1:ledout=7b;2:ledout=7b;3:ledout=7b;4:ledout=7b;5:ledout=7b;6:ledout=7b;7:ledout=7b;8:ledout=7b;9:ledout=7b;default:ledout=7b;endcaseendendmodule3.5 仿真結(jié)果在Quartus工程中對以上程序全編譯并新建波形仿真圖,進行波形仿真,得到手動和自動演奏時的仿真波形。圖5 手動演奏仿真波形圖圖5系手動演奏仿真波形圖,從左至右分別是auto為0時按下
33、中音1到中音7鍵后的波形。tone_7s顯示各鍵按下時的音調(diào),分別顯示(無按鍵輸入)、(do)、(re)、(mi)、(fa)、(sol)、(la)、(si)以及stp鍵按下后的。同時speaker發(fā)出不同音階的聲音,可以看到從中音1到中7隨著頻率的變高,波形的橫向?qū)挾纫苍谥饾u變窄。圖6 自動演奏仿真波形圖一圖7 自動演奏仿真波形圖二圖6和圖7系自動演奏仿真波形圖,可以看出當(dāng)auto為1時,開始按著預(yù)置的譜曲在演奏音樂。tone_7s一直(0),high_7s,mid_7s和low_7s顯示即時的音符。當(dāng)high_7s,mid_7s和low_7s同時分別顯示:、為中音5(“?!焙汀澳恪备靼肱模?、為中音6(“生”一拍), 、為中音5(“日”一拍), 、為高音1(“快”一拍), 、為中音7(“樂”兩拍)等。綜合以上仿真結(jié)果得出結(jié)論,這次畢業(yè)設(shè)計達到了既定的設(shè)計目標(biāo)。4.結(jié)論此次畢業(yè)設(shè)計完成,我于其中感觸如下:Verilog HDL語言和C語言雖然有著本質(zhì)的不同,但是有了C語言的學(xué)習(xí)經(jīng)驗,運用Verilog HDL語言也不是難事。FPGA設(shè)計簡單,開發(fā)時間
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版 八年級英語下冊 Unit 4 單元綜合測試卷(2025年春)
- 2025年網(wǎng)狀蓬松石英棉合作協(xié)議書
- 基本醫(yī)療衛(wèi)生與健康促進法學(xué)習(xí)試題試卷及答案(一)
- 2025年制動總泵合作協(xié)議書
- 2022石家莊49中九年級6月三模試卷
- 2025年二手工程機械買賣轉(zhuǎn)讓合同范文(2篇)
- 2025年人員勞務(wù)協(xié)議格式版(2篇)
- 2025年產(chǎn)品購銷合同協(xié)議標(biāo)準(zhǔn)版本(2篇)
- 2025年產(chǎn)品委托生產(chǎn)合同標(biāo)準(zhǔn)版本(三篇)
- 2025年臨時工合同協(xié)議模板(2篇)
- 中國儲備糧管理集團有限公司蘭州分公司招聘筆試真題2024
- 武漢2025年湖北武漢理工大學(xué)管理人員招聘筆試歷年參考題庫附帶答案詳解
- 第1課 隋朝統(tǒng)一與滅亡 課件(26張)2024-2025學(xué)年部編版七年級歷史下冊
- 提高金剛砂地坪施工一次合格率
- 【歷史】唐朝建立與“貞觀之治”課件-2024-2025學(xué)年統(tǒng)編版七年級歷史下冊
- 基于護士主導(dǎo)的MDT肺康復(fù)管理模式改善肺部術(shù)后患者照護結(jié)局
- 產(chǎn)業(yè)園區(qū)招商合作協(xié)議書
- 2024年廣東省公務(wù)員錄用考試《行測》真題及答案解析
- 2025新譯林版英語七年級下單詞默寫表
- 2024-2025學(xué)年人教版八年級上冊數(shù)學(xué)期末專項復(fù)習(xí):軸對稱(易錯必刷40題)解析版
- 盾構(gòu)標(biāo)準(zhǔn)化施工手冊
評論
0/150
提交評論