基于EDA的簡易電子琴設計鮑亞文_第1頁
基于EDA的簡易電子琴設計鮑亞文_第2頁
基于EDA的簡易電子琴設計鮑亞文_第3頁
基于EDA的簡易電子琴設計鮑亞文_第4頁
基于EDA的簡易電子琴設計鮑亞文_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于EDA的簡易電子琴設計鮑亞文(安慶師范大學物理與電氣工程學院 安徽 安慶 246011)指導老師:鄭江云摘要:本設計是一個簡易的七音符電子琴,該電子琴可以通過按鍵輸入來控制音調(diào),也可對預置樂曲的自動演奏,同時由數(shù)碼管顯示即時音符。系統(tǒng)的實現(xiàn)是基于EDA技術(shù),在Quartus軟件平臺上,借助FPGA目標器件,用硬件描述語言Verilog HDL進行編程并仿真驗證。本設計中的電子琴可操作性好,音符顯示直觀,聲音優(yōu)美。關鍵詞:電子琴,電子設計自動化,Verilog HDL語言引言科技發(fā)展的日新月異,催生了一系列新奇實用的電子產(chǎn)品。在這些電子產(chǎn)品中,電子琴早已成為電子樂器行列中的重要一員。電子琴是

2、人類仿制常規(guī)樂器的代表之一,其發(fā)明問世極大地豐富了人們的聽覺感受,推動了音樂的普及和發(fā)展。在信息化與電子化交織的今天,電子琴作為社會科技與文明的產(chǎn)物,正扮演著音樂領域中不可或缺的角色。EDA技術(shù)的快速發(fā)展和成熟,F(xiàn)PGA等數(shù)字可編程器件的出現(xiàn)和進步,基于EDA技術(shù)的設計也變得愈加簡單可行?;贓DA技術(shù)的設計不僅系統(tǒng)可靠性較高,而且能實現(xiàn)較為復雜的功能。運用EDA軟件可方便地在計算機平臺上實現(xiàn)設計與仿真,本設計中的電子琴便是基于EDA技術(shù),運用Verilog HDL語言設計完成的。1 EDA概述與音樂知識1.1 EDA技術(shù)1.1.1 EDA的發(fā)展EDA(Electronic Design Au

3、tomation,電子設計自動化)可以認識為在計算機工作平臺上,以EDA軟件為開發(fā)環(huán)境,以PLD器件或ASIC專用集成電路為目標器件來設計實現(xiàn)電路系統(tǒng)的一門技術(shù)。EDA技術(shù)在逐漸進步,其大致經(jīng)歷了3個發(fā)展階段:CAD階段(20世紀70年代至80年代初)、CAE階段(20世紀80年代初至90年代初)、EDA階段(20世紀90年代以后)。1EDA技術(shù)在進入21世紀后,得到了不小的進步和發(fā)展,突出表現(xiàn)在以下幾個方面:2(1)不斷推出在仿真驗證和設計兩方面都支持標準硬件描述語言的EDA軟件,功能更加強大且驗證更加高效;(2) EDA技術(shù)使得電子設計成果以自主知識產(chǎn)權(quán)(IP)的方式予以確認,提高了設計成

4、果的可重用性;(3)EDA技術(shù)使得電子領域各學科之間的界限更加模糊,互為包容,如模擬和數(shù)字、軟件和硬件、系統(tǒng)和器件、ASIC和FPGA等;(4)SoPC(可編程芯片系統(tǒng))進入實用化階段;(5)高速數(shù)字信號處理算法可基于FPGA的DSP技術(shù)實現(xiàn)。1.1.2 EDA的設計流程一個完整的EDA設計流程既是自頂向下設計方法的具體實施途徑,也是EDA工具軟件本身的組成結(jié)構(gòu)。自頂向下的設計,即Top-down設計,這種設計方法首先從系統(tǒng)設計入手,在頂層進行功能方框圖的劃分與結(jié)構(gòu)設計。在功能級仿真糾錯,并用硬件描述語言對高層次的系統(tǒng)行為進行描述,然后用綜合工具將設計轉(zhuǎn)化為具體門電路網(wǎng)表。由于設計的主要仿真和

5、調(diào)試過程是在高層次完成的,這一方面有利于在早期發(fā)現(xiàn)結(jié)構(gòu)設計上的錯誤,避免設計工作的浪費,同時也減少了邏輯功能仿真的工作量,提高了設計的一次成功率。EDA設計流程一般包括:設計輸入、綜合、布局布線、仿真、編程配置的步驟。3設計輸入原理圖HDL文本功能仿真綜合時序仿真FPGA/CPLD適配FPGA/CPLD編程下載在線測試 圖1 基于FPGA/CPLD器件的數(shù)字系統(tǒng)設計流程 (1)設計輸入(Design Entry):主要為原理圖(schematic)輸入和HDL文本編輯輸入2部分。(2)綜合(Synthesis):將高級抽象層次的設計描述自動轉(zhuǎn)化為低層次描述。(3)布局布線:將綜合生成的電路邏輯

6、網(wǎng)表映射到具體的目標器件,并產(chǎn)生最終的可下載文件。(4)仿真:包括功能仿真和時序仿真,對設計電路的功能的驗證。(5)編程配置:把適配后生成的編程文件裝入到PLD器件中,CPLD器件的下載稱為編程,F(xiàn)PGA器件的下載稱為配置。1.1.3 Quartus II設計平臺和Verilog HDL語言本設計的開發(fā)工具是Quartus II,采用Verilog HDL語言編程。Quartus II適合大規(guī)模FPGA的開發(fā),是Altera繼MAX+plus II后的新一款開發(fā)工具。Quartus II提供了更優(yōu)化的綜合和適配功能,改善了對第三方仿真和分析工具的支持。它還包括了DSP Builder、SOPC

7、 Builder等開發(fā)工具,支持系統(tǒng)級的開發(fā)等。Quartus II是一款具有標準的EDA工具接口和完善的可視化設計環(huán)境的FPGA/CPLD集成開發(fā)軟件。設計輸入有多種表達方式,最常用的是原理圖方式和HDL文本方式。Verilog HDL是一種硬件描述語言(HDL:Hardware Description Language),以文本形式來描述數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為的語言。用它可以表示邏輯電路圖、邏輯表達式,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能。4Verilog HDL和VHDL是世界上流行的2種硬件描述語言,都是在20世紀80年代中期被開發(fā)出來的。Verilog HDL由GDA公司開發(fā),它

8、是在C語言的基礎上發(fā)展而來的,但作為一種硬件描述語言和C語言有著本質(zhì)的區(qū)別,Verilog語言概括起來有著如下的一些特點:(1) 適用于可綜合的電路設計,也適用于電路和系統(tǒng)的仿真。(2) 能在多個層次上對所設計的系統(tǒng)進行描述,對設計的規(guī)模也沒有任何限制。(3) 行為描述和結(jié)構(gòu)描述靈活且支持混合建模。(4) 行為描述語句類似于軟件高級語言。(5) 內(nèi)置各種邏輯門和開關級元件。(6) UDP(用戶定義原語)可靈活創(chuàng)建。1.1.4 FPGA器件FPGA(Field Programmable Gate Array),現(xiàn)場可編程門陣列,是一種在采用單元型結(jié)構(gòu)的新型PLD器件。作為ASIC(專用集成電路)

9、領域中的一種半定制電路,F(xiàn)PGA既彌補了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點,成為當前主流的PLD器件之一。FPGA使用CMOS、SRAM工藝制作,和陣列型PLD結(jié)構(gòu)不同,內(nèi)部由許多獨立的可編程邏輯單元構(gòu)成,各邏輯單元間可以靈活地相互連接,具有密度高、速度快、編程靈活、可重新配置等優(yōu)勢。1.2 電子琴與相關的音樂知識EDA技術(shù)的成熟,F(xiàn)PGA器件的發(fā)展使得基于EDA技術(shù)的電子琴設計成為可能。在計算機上運用EDA軟件可以很方便地對所需要實現(xiàn)的電子琴進行設計和仿真。采用傳統(tǒng)方法如單片機設計的電子琴,要求設計人員對硬件非常熟悉,且單片機制作的主控板受制版工藝、布局結(jié)構(gòu)和起器件質(zhì)量

10、等因素的影響導致抗干擾能力差、故障率高、不易擴展等問題。EDA技術(shù)對于設計人員來說,修改程序可以實現(xiàn)不同的功能,對于設計周期來說節(jié)省了時間。本設計中的電子琴是通過按鍵控制發(fā)音的,系統(tǒ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為休止符。另外為了標記簡譜中的重低音,在數(shù)字上方的圓點記為重音,在下方的為低音,單獨的數(shù)字則是中音。2.系統(tǒng)分析與方案設計2.1 設計思想與原理框圖揚聲器設計思想為利用EDA技術(shù)對FPGA器件進行配置實現(xiàn)電子琴,系統(tǒng)掃描按鍵輸入信號來選擇是手動還是自動演奏,采集的信號轉(zhuǎn)化為分頻預置數(shù),數(shù)控分頻器輸出不同音符的頻率給揚聲器,并由數(shù)碼管顯示當前

12、音符。按鍵譯碼數(shù)碼管4音調(diào)顯示置數(shù)分頻揚聲器反饋預置計數(shù)器二分頻器CLK-6MHz數(shù)碼管123音符顯示 分頻曲譜產(chǎn)生CLK-4Hz圖2 系統(tǒng)原理框圖2.2 原理說明(1) 當演奏者按下7個音調(diào)鍵盤后,在系統(tǒng)基準時鐘6MHz下,根據(jù)鍵盤的輸入信號分頻,產(chǎn)生所需的7個不同音調(diào)的頻率并二分頻輸出給speaker,同時由數(shù)碼管HEX4顯示音調(diào)。(2) 當自動演奏信號auto為真時,對系統(tǒng)6MHz基準時鐘分頻,產(chǎn)生一個頻率為4Hz的時鐘用于譜曲的分頻比預置。6MHz時鐘使數(shù)控分頻器產(chǎn)生曲譜演奏音符的對應頻率,再經(jīng)過一個二分頻器輸出該頻率,最后通過speaker發(fā)出該音符的聲音,同時由數(shù)碼管HEX3、 H

13、EX2和 HEX1分別顯示高中低音符。(3) 當auto為0演奏者按下stp鍵后,speaker不發(fā)聲,輸出始終為0Hz的信號,同時音調(diào)數(shù)碼管均顯示0。3.Quartus II設計過程3.1 自動演奏樂曲要使用電子琴完成一段音樂的演奏,音調(diào)和音長是2個最關鍵的參數(shù)。根據(jù)音樂知識,音調(diào)是由頻率控制的,音長為該音符持續(xù)時間的長短。在本設計中,樂譜產(chǎn)生電路用來控制音樂的音調(diào)和音長。本設計中曲譜的自動演奏需要在C調(diào)中選取從低音1到高音7共21個音階,這些不同信號的頻率都可以由一個基準頻率分頻得到。因為各音階的頻率為非整數(shù),而分頻系數(shù)不能為小數(shù),所以必須對分頻系數(shù)進行四舍五入。這樣基準頻率的選擇變得比較

14、重要,基準頻率選擇較低,分頻系數(shù)就小,誤差大;基準頻率選擇較高,誤差是小了,但是分頻系數(shù)也大。綜合考慮,選取6 MHz的基準頻率是可行的。數(shù)控分頻器輸出的為脈寬極窄的脈沖式信號,為了減少輸出的偶次諧波分量,需要在數(shù)控分頻器和揚聲器之間加一個二分頻器以均衡其占空比,保證到達揚聲器的是對稱方波。二分頻器將基準頻率二分頻,即為3MHz,計算分頻系數(shù)也就以3MHz為基準頻率。分頻系數(shù)為基準頻率和各音階頻率的比值,例如中音1的頻率為523Hz,分頻系數(shù)為5736,高音7的頻率為1976 Hz,分頻系數(shù)為1518。由于最大分頻系數(shù)為11450,故采用14位二進制計數(shù)器已經(jīng)足夠。在演奏時,對于不同的分頻系數(shù)

15、,只需要加載對應的預置數(shù)。采用加載預置數(shù)的方法比反饋復零法更節(jié)省資源,實現(xiàn)起來也更加簡單。用差值法分頻,把初始值214 -1=16383和各音階的分頻系數(shù)的差值作為預置數(shù)即可發(fā)出不同頻率的音符。對于樂曲中的休止符,只要將分頻系數(shù)設為0,初始值為16383即可,此時揚聲器不發(fā)聲。6表1 各音階頻率對應分頻系數(shù)與預置數(shù)(由3Mhz計算得出)低音頻率/Hz分頻系數(shù)初始值中音頻率/Hz分頻系數(shù)初始值高音頻率/Hz分頻系數(shù)初始值12621145049331523573610647110462868135152294102046179258751111127221175255313830333090917

16、29436594552118313131822761410743498596778746984298120854139721471423653927653873057843827125565156819131447064406818956568034091297467601705146787494607310310798830361334771976151814865音符的持續(xù)時間由樂曲的速度及每個音符的節(jié)拍數(shù)確定。通過控制計數(shù)器預置數(shù)的停留時間,預置數(shù)的停留時間長,則音符的停留時間長。以下是生日歌的C調(diào)簡譜:圖3 生日歌簡譜簡譜中,如果將全音符的持續(xù)時間設定為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,當樂曲演奏結(jié)束時能再次重新演奏。3.2 手動按鍵演奏本設計中的電子琴且除了能自動演奏一段預置的樂曲外,還能完成手動演奏發(fā)出C調(diào)的7個中音 。由于自動演奏是在人按下自動演奏鍵以后進行的,所以設置一個auto來控制是否自動演奏。當auto為真時,實現(xiàn)預置樂曲的自動演奏,否則掃描按鍵

18、由人工演奏。如果自動演奏則按照樂譜,把musicout賦值給speaker。手動演奏時的音調(diào)頻率同樣需要由系統(tǒng)時鐘分頻得到,設置一個i以改變分頻系數(shù),再對speaker二分頻。各個音調(diào)的分頻系數(shù)以3MHz計算得出,即為表1中從中音1到中音7的分頻系數(shù)。如中音1的分頻系數(shù)應為5736。相應地,中音1的輸出信號程序應該編寫成:doo:begin if(i>=5736)beginspeaker=!speaker;tone=4'b0001;i<=0;endelsei<=i+1'd1;end3.3 音名顯示音名顯示數(shù)碼管用來顯示演奏時對應的音符。本設計中,用數(shù)碼管HEX

19、3、HEX2、HEX1分別顯示自動演奏時的高中低音符,其中high_7s、mid_7s和low_7s分別為高中低音顯示信號;用數(shù)碼管HEX4顯示手動演奏時的音調(diào),tone_7s為鍵盤演奏音調(diào)信號。采用7段共陽數(shù)碼管,以a、b、c、d、e、f、g來標記數(shù)碼管的7個LED顯示位,對各個要顯示位置加以低電平即可點亮。本設計中,定義輸出reg6:0 ledout為顯示信號,例如要顯示“0”,只要使ledout<=7b1000000。借助這些數(shù)碼管,能夠?qū)崿F(xiàn)演奏的動態(tài)顯示。圖4 共陽數(shù)碼管原理圖3.4 源程序module eorgan(key,clk6m,auto,speaker,tone_7s,

20、high_7s,mid_7s,low_7s); input key,clk6m,auto; /鍵盤輸入,6M基準時鐘輸入,自動演奏 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

21、,origin; /自動演奏分頻系數(shù)和初始值 reg carry; reg musicout; /樂譜輸出信號 reg 19:0 count20; reg7:0 counter; parameter stp=8'b10000000, /休止 doo=8'b00000001, /do re=8'b00000010, /re mi=8'b00000100, /mi fa=8'b00001000, /fa sol=8'b00010000, /sol la=8'b00100000, /la si=8'b01000000; /si alwa

22、ys (posedge clk6m) begin if(auto) speaker<=musicout; /如果automusic為真,輸出樂譜 else begin /否則判斷鍵盤key的輸入case(key) stp:beginspeaker<=0;tone=4'b0000;i<=0;enddoo:begin /doif(i>=5736)beginspeaker=!speaker;tone=4'b0001;i<=0;endelsei<=i+1'd1;endre:begin /reif(i>=5111)beginspeaker

23、=!speaker;tone=4'b0010;i<=0;endelsei<=i+1'd1;endmi:begin /miif(i>=4552)beginspeaker=!speaker;tone=4'b0011;i<=0;endelsei<=i+1'd1;endfa:begin / faif(i>=4298)beginspeaker=!speaker;tone=4'b0100;i<=0;endelsei<=i+1'd1;endsol:begin /solif(i>=3827)beginspea

24、ker=!speaker;tone=4'b0101;i<=0;endelsei<=i+1'd1;endla:begin /laif(i>=3409)beginspeaker=!speaker;tone=4'b0110;i<=0;endelsei<=i+1'd1;endsi:begin /siif(i>=3036)beginspeaker=!speaker;tone=4'b0111;i<=0;endelsei<=i+1'd1;enddefault:beginspeaker<=0;tone=4&#

25、39;b0000;i<=0;endendcase end end always (posedge clk6m) /通過置數(shù),改變分頻比begin if(divider=16383)begin carry<=1;divider<=origin;end else begin divider<=divider+1'd1;carry<=0;endend always (posedge carry) begin musicout<=musicout; /2 分頻產(chǎn)生方波信號 end always (posedge clk6m) /從6Mhz得到4hzbegin

26、 if(!auto)begin count20<=20'd0;clk4<=0;endelse if(count20=20'd750000) begin count20<=20'd0;clk4<=clk4;endelse count20<=count20+20'd1;end always (posedge clk4) /分頻比預置 begin case(high,mid,low) 'h001: origin<=4933; /低音1'h002: origin<=6179; /低音2'h003: ori

27、gin<=7294; /低音3'h004: origin<=7787; /低音4'h005: origin<=8730; /低音5'h006: origin<=9565; /低音6'h007: origin<=10310; /低音7'h010: origin<=10647; /中音1'h020: origin<=11272; /中音2'h030: origin<=11831; /中音3'h040: origin<=12085; /中音4'h050: origin<

28、=12556; /中音5'h060: origin<=12974; /中音6'h070: origin<=13347; /中音7'h100: origin<=13515; /高音1'h200: origin<=13830; /高音2'h300: origin<=14107; /高音3'h400: origin<=14236; /高音4'h500: origin<=14470; /高音5'h600: origin<=14678; /高音6'h700: origin<=14

29、865; /高音7'h000: origin<=16383; /休止 endcase end always (posedge clk4)begin if(counter=52) counter<=0; /計時,以實現(xiàn)循環(huán)演奏 else counter<=counter+1'd1; case(counter) /記譜0: high,mid,low<='h050; /“?!?1: high,mid,low<='h050; /“你”2: high,mid,low<='h060; /“生”3: high,mid,low<

30、='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,

31、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: hig

32、h,mid,low<='h200;22: high,mid,low<='h100; /“樂”23: high,mid,low<='h100;24: high,mid,low<='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: h

33、igh,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<='h060; 37: high,mid,low<='h060;38: high,mid,low<='h400; /“?!?9:

34、 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<='h10

35、0; 48: high,mid,low<='h100; 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)顯示en

36、dmodulemodule led_7s(datain,ledout); /7段數(shù)碼管譯碼顯示模塊input 3:0 datain;output reg6:0 ledout;always begincase(datain)0:ledout<=7'b1000000;1:ledout<=7'b1111001;2:ledout<=7'b0100100;3:ledout<=7'b0110000;4:ledout<=7'b0011001;5:ledout<=7'b0010010;6:ledout<=7'b0

37、000010;7:ledout<=7'b1111000;8:ledout<=7'b0000000;9:ledout<=7'b0010000;default:ledout<=7'b1000000;endcaseendendmodule3.5 仿真結(jié)果在Quartus工程中對以上程序全編譯并新建波形仿真圖,進行波形仿真,得到手動和自動演奏時的仿真波形。圖5 手動演奏仿真波形圖圖5系手動演奏仿真波形圖,從左至右分別是auto為0時按下中音1到中音7鍵后的波形。tone_7s顯示各鍵按下時的音調(diào),分別顯示1000000(無按鍵輸入)、111100

38、1(do)、0100100(re)、0110000(mi)、0011001(fa)、0010010(sol)、0000010(la)、1111000(si)以及stp鍵按下后的1000000。同時speaker發(fā)出不同音階的聲音,可以看到從中音1到中7隨著頻率的變高,波形的橫向?qū)挾纫苍谥饾u變窄。圖6 自動演奏仿真波形圖一圖7 自動演奏仿真波形圖二圖6和圖7系自動演奏仿真波形圖,可以看出當auto為1時,開始按著預置的譜曲在演奏音樂。tone_7s一直1000000(0),high_7s,mid_7s和low_7s顯示即時的音符。當high_7s,mid_7s和low_7s同時分別顯示:1000

39、000、0010010、1000000為中音5(“祝”和“你”各半拍), 1000000、0000010、1000000為中音6(“生”一拍), 1000000、0010010、1000000為中音5(“日”一拍), 1111001、1000000、1000000為高音1(“快”一拍), 1000000、1111000、1000000為中音7(“樂”兩拍)等。綜合以上仿真結(jié)果得出結(jié)論,這次畢業(yè)設計達到了既定的設計目標。4.結(jié)論此次畢業(yè)設計完成,我于其中感觸如下:Verilog HDL語言和C語言雖然有著本質(zhì)的不同,但是有了C語言的學習經(jīng)驗,運用Verilog HDL語言也不是難事。FPGA設計簡單,開發(fā)時間短,系統(tǒng)維護起來方便快捷。對于設計者來說,不需要考慮太多的硬件設計,只需要自己的設計思路,編程實現(xiàn)再仿真測試即可。出于對樂譜編程的需要,我自學了音樂的一些知識理論,這在一定程度上豐富了我的課外知識。不同學科之間的知識往往互相滲透,多學多做方能登上知識巔峰。我深刻體會到學習的過程充滿辛苦與收獲,學習之路任重道遠,更要活到老學到老。我在此次畢業(yè)設計中遇到了不少困難,但通過查閱資料和請教導師得以解決,所以堅持不懈迎難而上才能走向成功。正是由于導師的悉心指導才能讓設計過程進行得更加順利,在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論