




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
...wd......wd......wd...簡易電子琴設計及FPGA功能驗證2012年6月29日目錄1.任務..22.目的23.使用環境24.FPGA課程設計詳細內容24.1技術標準24.1.1總體描述24.1.2構造框圖24.1.3引腳描述34.1.3應用范圍54.2設計方案54.2.1頂層方案設計54.2.2頂層模塊程序74.3功能驗證方案及源程序74.3.1按鍵輸入控制模塊方案設計及源程序74.3.2控制模塊方案設計及源程序84.3.3LCD驅動模塊方案設計及源程序114.4電路設計及功能仿真報告194.5綜合及布局布線報告和引腳分布報告214.6硬件測試結果報告215.課程設計的心得體會226.參考資料22任務:a、設計一個簡單電子琴?!矁戎?~4首簡單音調曲〕b、用FPGA開發板的按鍵可選擇演奏內置曲調,用數碼管顯示當前演奏的哪個演奏曲目或停頓。c、要求電子琴具有自主選擇,自動播放所選曲目或停頓曲目。目的:a、在掌握計算機組成原理理論相關的根基上,了解EDA技術,掌握VerilogHDL硬件描述語言的設計方法和思想,通過學習的VerilogHDL語言結合電子電路的設計知識理論聯系實際,掌握所學的課程知識;b、深入學習VerilogHDL、FPGA,了解其編程環境;c、學會運用Modelsim和QuartusII等編程仿真軟件;d、將硬件語言編程與硬件實物功能演示相結合,加深理解VerilogHDL、FPGA的學習;使用環境(軟件/硬件環境,設備等)軟硬件環境:軟件:QuartusII7.2,Modelsim6.1;硬件環境:DEII開發板;設備:PC一臺,USB下載線,FPGA開發板及電源。在EDA軟件平臺上,根據硬件描述語言Verilog完成的設計文件,自動的完成邏輯編譯、化簡、分割、綜合及優化、布局布線、仿真、目標芯片的適配編譯、邏輯映射和編程下載等工作。VerilogHDL語言,用Modelsim進展前仿真,以及代碼的生成,驗證程序驗證,也可進展綜合。用QuartusII進展后仿真。FPGA課程設計詳細內容4.1技術標準4.1.1原理簡易電子琴的設計通過軟硬件結合實現,硬件系統包括主控制器芯片、LED、蜂鳴器等,軟件資源包括編寫VerilogHDL程序的應用軟件Modelsim和仿真軟件QuartusII。電子琴有自動播放功能。播放功能中有三首曲子。程序共有六個模塊,分別為主模塊、數碼管顯示模塊、分頻模塊、計數器模塊、存儲器模塊、音頻輸出模塊。硬件實現是用一個數碼管顯示當前播放的曲目,另外四個按鍵key1、key2用來選擇曲目。通過主模塊調用各模塊實現電子琴的功能。樂曲演奏的原理:樂曲演奏的原理:組成樂曲的每個音符的頻率值(音調)以及持續時間〔音長〕是樂曲能持續演奏所需的兩個根本數據,因此只要控制輸出到揚聲器的鼓勵信號的頻率的上下和持續的時間,就可以使揚聲器發出持續的樂曲聲。音調的控制頻率的上下決定了音調的上下。音樂的十二平均率規定:每兩個八度音〔如簡譜中的中音1與高音1〕之間的頻率相差一倍。在兩個八度音之間,又可分為十二個半音,每半個音的頻率比為。另外,音名A(簡譜中的低音6)的頻率為440HZ,音名B到C之間,E到F之間為半音,其余為全音。由此可以計算出簡譜中從低音1至高音1之間的每個音名對應的頻率如以下圖:
音名頻率(HZ)音名頻率(HZ)音名頻率(HZ)低音1261.6中音1523.3高音11046.5低音2293.7中音2587.3高音21174.7低音3329.6中音3659.3高音31318.5低音4349.2中音4698.5高音41396.9低音5392中音5784高音51568低音6440中音6880高音61760低音7493.9中音7987.8高音71975.5所有不同頻率均從同一基準頻率分頻得到。將分頻數四舍五入進展取整,并盡量減小誤差。在本設計中選取5MHZ作為基準頻率。從下表中可以看出最大分頻系數為11468,采用14位二進制計數器分頻可滿足要求。此外還應給出預置數,對應不同的預置數,只需加載不同的預置數即可。采用加載預置數實現分頻的方法比采用反響復零法節省資源,實現起來更加容易。音名分頻比預置數音名分頻比預置數音名分頻比預置數低音195576826中音1477711606高音1238913994低音285127871中音2425712126高音2212814255低音375858798中音3379212591高音3189614487低音471599224中音4357912804高音4179014593低音5637810005中音5318913194高音5159414789低音6568210701中音6284113524高音6142014963低音7506211321中音7253113852高音7126615117音長的控制音符的持續時間須根據音樂的速度及每個音符的節拍數來確定。如果設定全音符的持續時間為1S的話,假設產生4分音符,則產生四分頻即可實現四分音符的時長,并提供4HZ分頻器。如圖為樂曲演奏的原理圖,其中,樂譜產生電路用來控制音樂的音調和時長??刂埔粽{通過設置計數器的預置數來實現,預置不同的數值會可以使計數器產生不同頻率的信號,從而產生不同的音調。控制音長是通過控制計數器預置數的停留時間來實現的,預置數的停留時間越長,則該音符的演奏時間越長,如2分音符,在記譜時將該音符記錄兩次即可。4.1.2總體方案本次設計課程的目的是讓我們在學習verilogHDL的根基上更加深入的了解硬件設計語言的功能、作用及其特征,并且將我們的動手能力與創新能力結合起來。本次試驗的總體框圖為:設計框圖說明4.1.3引腳描述信號名輸入/輸出目標/源功能描述CLKInputPin主時鐘頻率,5MHZ,占空比為1:1DIRInputPin使能端,控制時鐘產生,以及讀寫同步OUTOutputPin輸出樂曲信號(方波形式)SCREENOutputPin數碼管顯示信號4.1.4頂層劃分頂層模塊說明:D觸發器:實現信號讀取,產生內部使能端,控制分頻器;分頻器:實現與基準時鐘同步操作,讀取存儲器數據進展分頻操作,實現音調與音長的改變與輸出;節拍發生器:根據使能端,產生對應的頻率產生對應音符時長;存儲器:實現將預置數傳送給分頻器,實現曲目的不停音調和音長;2分頻器:將產生的信號再次進展2分頻;注:音名顯示控制音名顯示電路用來顯示演奏樂曲時對應的音樂曲曲目名??梢杂萌齻€數碼管,加以顯示,本設計中使用HIGH[3:0],MED[3;0],LOW[3;0]等信號加以顯示,為了能使其循環顯示,需要一時長計數器,等音樂演奏完成后,保證自動從頭開場演奏。4.1.5子模塊描述<1>按鍵接收器D觸發器1、功能描述運用D觸發器和數據鎖存器實現數據線輸出的使能端。2、管腳描述信號名稱輸入/輸出源目標功能描述DIR輸入Pin按鍵輸入信號DR輸出Pin使能端3、實現說明:在按鍵信號產生后,進展信號的鎖存和產生使能信號。4、驗證方案正常的信號鎖存,和信號轉換;是否實現正確使能輸出;<2>節拍發生器分頻器1、功能描述根據信號的輸入,對應產生對應曲目的節拍頻率時鐘用來讀取存儲器音調音長數據,產生不同的預置數2、管腳描述信號名稱輸入/輸出源目標功能描述DIR輸入PIN按鍵輸入CLK輸入PIN基準時鐘頻率CK輸出PIN1位節拍頻率時鐘3、實現說明在CLK的上升沿,將鎖存后的DIR信號輸入到內部,并根據對應時鐘節拍分頻,產生對應節拍頻率。4、測試略;<3>分頻器 1、功能描述 將基準時鐘按照預置數的信息進展分頻,且與時鐘同步,并當使能端低電平時,停頓輸出,也可實現循環播放。2、管腳描述信號名稱輸入/輸出源目標功能描述DIR輸入PIN使能端CK輸入PIN基準頻率VOICE輸入PIN預置數SPEAK輸出PIN樂曲輸出;3、實現說明 通過計數器、存儲器、D觸發器,實現分頻。當計數從預置數到初始值時Speaker翻轉一次,即為分頻。4、測試 用modelsim仿真,觀察波形是否為所需方波;<4>存儲器1、功能描述 按照使能端的數據,選擇對應的預置數據進展讀操作,并且于時鐘同步。2、管腳描述信號名稱輸入/輸出源目標功能描述DR輸入PIN使能端CLK輸入PIN基準頻率VOICE輸出PIN讀取的預置數SCREEN輸出PIN數碼管信號輸出;3、實現說明 通過選擇,在時鐘的上升沿進展數據的讀取,并將讀出的數據同時傳至數碼管,與分頻器。4、測試 用modelsim仿真,觀察預置數的值是否為對應曲目;4.1.6驗證方案: 正常情況下,輸入一個DIR的值,查看波形輸出是否正常。改變DIR的值,再次查看波形輸出是否正常,并且其頻率是否滿足上述的公式計算出的值。4.1.7應用范圍:簡易電子琴可以應用于簡單的設計中,亦可應用于娛樂方面。4.2設計方案4.2.1頂層方案設計頂層主要是對各個子模塊進展調用與連接,頂層主要調用以下模塊:(1)按鍵驅動模塊該模塊用于選擇所要播放曲目。(2)控制模塊:該模塊用于處理比擬所選擇的功能。(3)數碼管顯示模塊:該模塊用于顯示用戶是否登陸成功,即LCD驅動。4.2.2頂層模塊程序//信號定義與說明//CLK_4HZ:用于控制音長(節拍)的時鐘頻率//clk_6MHZ:用于產生各種音階頻率的基準頻率//speak:用于鼓勵揚聲器的輸出信號,本例中為方波信號//high,med,low:分別用于顯示高音,中音和低音音符,各驅動一個數碼管來顯示modulemusic(clk,key1,key0,speak,high,low,decodeout);//頂層模塊:inputclk,key1,key0;outputspeak,high,low;output[6:0]decodeout;wire[1:0]dir;wireclk,key1,key0;wireclk_5MHZ,clk_4hz;wirespeak;wireck,dr;wire[11:0]voice;wire[6:0]decodeout;wirehigh,low;assignhigh=1;assignlow=0;assigndir={key1,key0};clock5mhzmhz(.clk(clk),.dir(dir),.clk_5MHZ(clk_5MHZ));clock4hzhz(.clk_5MHZ(clk_5MHZ),.dir(dir),.ck(ck),.clk_4HZ(clk_4HZ));Dd1(.dir(dir),.dr(dr));DDRddr1(.dir(dir),.ck(ck),.voice(voice));mainm(.dr(dr),.clk_5MHZ(clk_5MHZ),.clk_4HZ(clk_4HZ),.voice(voice),.speak(speak));decodedec(.dir(dir),.decodeout(decodeout));endmodule//信號定義與說明//CLK_4HZ:用于控制音長(節拍)的時鐘頻率//clk_6MHZ:用于產生各種音階頻率的基準頻率//speak:用于鼓勵揚聲器的輸出信號,本例中為方波信號//high,med,low:分別用于顯示高音,中音和低音音符,各驅動一個數碼管來顯示moduleDDR(dir,ck,voice);input[1:0]dir;inputck;output[11:0]voice;wire[1:0]dir;wireck;wire[11:0]voice;reg[7:0]counter;reg[3:0]high,med,low;assignvoice={high,med,low};always@(posedgeck)if(dir==2'b00)counter<=0;elseif(dir==2'b01)//《梁祝》樂曲演奏電路beginif(counter==63)counter<=0;elsecounter<=counter+1;case(counter)0:{high,med,low}<='b000000000011;1:{high,med,low}<='b000000000011;2:{high,med,low}<='b000000000011;3:{high,med,low}<='b000000000011;4:{high,med,low}<='b000000000101;5:{high,med,low}<='b000000000101;6:{high,med,low}<='b000000000101;7:{high,med,low}<='b000000000110;8:{high,med,low}<='b000000010000;9:{high,med,low}<='b000000010000;10:{high,med,low}<='b000000010000;11:{high,med,low}<='b000000100000;12:{high,med,low}<='b000000000110;13:{high,med,low}<='b000000010000;14:{high,med,low}<='b000000000101;15:{high,med,low}<='b000000000101;16:{high,med,low}<='b000001010000;17:{high,med,low}<='b000001010000;18:{high,med,low}<='b000001010000;19:{high,med,low}<='b000100000000;20:{high,med,low}<='b000001100000;21:{high,med,low}<='b000001010000;22:{high,med,low}<='b000000110000;23:{high,med,low}<='b000001010000;24:{high,med,low}<='b000000100000;25:{high,med,low}<='b000000100000;26:{high,med,low}<='b000000100000;27:{high,med,low}<='b000000100000;28:{high,med,low}<='b000000100000;29:{high,med,low}<='b000000100000;30:{high,med,low}<='b000000100000;31:{high,med,low}<='b000000100000;32:{high,med,low}<='b000000100000;33:{high,med,low}<='b000000100000;34:{high,med,low}<='b000000100000;35:{high,med,low}<='b000000110000;36:{high,med,low}<='b000000000111;37:{high,med,low}<='b000000000111;38:{high,med,low}<='b000000000110;39:{high,med,low}<='b000000000110;40:{high,med,low}<='b000000000101;41:{high,med,low}<='b000000000101;42:{high,med,low}<='b000000000101;43:{high,med,low}<='b000000000110;44:{high,med,low}<='b000000010000;45:{high,med,low}<='b000000010000;46:{high,med,low}<='b000000100000;47:{high,med,low}<='b000000100000;48:{high,med,low}<='b000000000011;49:{high,med,low}<='b000000000011;50:{high,med,low}<='b000000010000;51:{high,med,low}<='b000000010000;52:{high,med,low}<='b000000000110;53:{high,med,low}<='b000000000101;54:{high,med,low}<='b000000000110;55:{high,med,low}<='b000000010000;56:{high,med,low}<='b000000000101;57:{high,med,low}<='b000000000101;58:{high,med,low}<='b000000000101;59:{high,med,low}<='b000000000101;60:{high,med,low}<='b000000000101;61:{high,med,low}<='b000000000101;62:{high,med,low}<='b000000000101;63:{high,med,low}<='b000000000101;default:{high,med,low}<='b000000000000;endcaseendelseif(dir==2'b10)//《天空之城》樂曲演奏電路beginif(counter==195)counter<=0;elsecounter<=counter+1;case(counter)0:{high,med,low}='b000001100000;//中61:{high,med,low}='b000010000000;//中72:{high,med,low}='b000100000000;//高13:{high,med,low}='b000100000000;//高14:{high,med,low}='b000100000000;//高15:{high,med,low}='b000010000000;//中76:{high,med,low}='b000100000000;//高17:{high,med,low}='b000100000000;//高18:{high,med,low}='b001100000000;//高39:{high,med,low}='b001100000000;//高310:{high,med,low}='b000010000000;//中711:{high,med,low}='b000010000000;//中712:{high,med,low}='b000010000000;//中713:{high,med,low}='b000010000000;//中714:{high,med,low}='b000010000000;//中715:{high,med,low}='b000010000000;//中716:{high,med,low}='b000000110000;//中317:{high,med,low}='b000000110000;//中318:{high,med,low}='b000001100000;//中619:{high,med,low}='b000001100000;//中620:{high,med,low}='b000001100000;//中621:{high,med,low}='b000001010000;//中522:{high,med,low}='b000001100000;//中623:{high,med,low}='b000001100000;//中624:{high,med,low}='b000000000111;//中125:{high,med,low}='b000000000111;//中126:{high,med,low}='b000001010000;//中527:{high,med,low}='b000001010000;//中528:{high,med,low}='b000001010000;//中529:{high,med,low}='b000001010000;//中530:{high,med,low}='b000001010000;//中531:{high,med,low}='b000001010000;//中5 32:{high,med,low}='b000000110000;//中333:{high,med,low}='b000000110000;//中334:{high,med,low}='b000000111000;//中435:{high,med,low}='b000000111000;//中436:{high,med,low}='b000000111000;//中437:{high,med,low}='b000000110000;//中338:{high,med,low}='b000000111000;//中439:{high,med,low}='b000100000000;//高140:{high,med,low}='b000100000000;//高141:{high,med,low}='b000100000000;//高142:{high,med,low}='b000000110000;//中343:{high,med,low}='b000000110000;//中344:{high,med,low}='b000000110000;//中345:{high,med,low}='b000100000000;//高146:{high,med,low}='b000100000000;//高147:{high,med,low}='b000100000000;//高148:{high,med,low}='b000010000000;//中749:{high,med,low}='b000010000000;//中750:{high,med,low}='b000010000000;//中751:{high,med,low}='b000000111000;//中452:{high,med,low}='b000000111000;//中453:{high,med,low}='b000000111000;//中454:{high,med,low}='b000010000000;//中755:{high,med,low}='b000010000000;//中756:{high,med,low}='b000010000000;//中757:{high,med,low}='b000010000000;//中758:{high,med,low}='b000010000000;//中759:{high,med,low}='b000010000000;//中760:{high,med,low}='b000010000000;//中761:{high,med,low}='b000010000000;//中762:{high,med,low}='b000001100000;//中663:{high,med,low}='b000010000000;//中764:{high,med,low}='b000100000000;//高165:{high,med,low}='b000100000000;//高166:{high,med,low}='b000100000000;//高167:{high,med,low}='b010100000000;//高768:{high,med,low}='b000100000000;//高169:{high,med,low}='b000100000000;//高170:{high,med,low}='b001100000000;//高371:{high,med,low}='b001100000000;//高372:{high,med,low}='b000010000000;//中773:{high,med,low}='b000010000000;//中774:{high,med,low}='b000010000000;//中775:{high,med,low}='b000000110000;//中376:{high,med,low}='b000000110000;//中377:{high,med,low}='b000001100000;//中678:{high,med,low}='b000001100000;//中679:{high,med,low}='b000001100000;//中680:{high,med,low}='b000000000101;//中581:{high,med,low}='b000001100000;//中682:{high,med,low}='b000001100000;//中6 83:{high,med,low}='b000000000111;//中184:{high,med,low}='b000000000111;//中185:{high,med,low}='b000001010000;//中586:{high,med,low}='b000001010000;//中587:{high,med,low}='b000001010000;//中588:{high,med,low}='b000001010000;//中589:{high,med,low}='b000001010000;//中590:{high,med,low}='b000001010000;//中5 91:{high,med,low}='b000000110000;//中392:{high,med,low}='b000000110000;//中393:{high,med,low}='b000000111000;//中494:{high,med,low}='b000000111000;//中495:{high,med,low}='b000100000000;//高196:{high,med,low}='b000010000000;//中797:{high,med,low}='b000010000000;//中798:{high,med,low}='b000010000000;//中799:{high,med,low}='b000100000000;//高1100:{high,med,low}='b000100000000;//高1101:{high,med,low}='b001000000000;//高2102:{high,med,low}='b001000000000;//高2103:{high,med,low}='b001100000000;//高3104:{high,med,low}='b000100000000;//高1105:{high,med,low}='b000100000000;//高1106:{high,med,low}='b000100000000;//高1107:{high,med,low}='b000100000000;//高1108:{high,med,low}='b000100000000;//高1109:{high,med,low}='b000100000000;//高1110:{high,med,low}='b000010000000;//中7 111:{high,med,low}='b000001100000;//中6112:{high,med,low}='b000001100000;//中6113:{high,med,low}='b000010000000;//中7114:{high,med,low}='b000010000000;//中7115:{high,med,low}='b000001010000;//中5116:{high,med,low}='b000001010000;//中5117:{high,med,low}='b000001100000;//中6118:{high,med,low}='b000001100000;//中6119:{high,med,low}='b000001100000;//中6120:{high,med,low}='b000001100000;//中6121:{high,med,low}='b000001100000;//中6122:{high,med,low}='b000001100000;//中6123:{high,med,low}='b000000000111;//中1124:{high,med,low}='b000000000111;//中1125:{high,med,low}='b001000000000;//高2126:{high,med,low}='b001100000000;//高3127:{high,med,low}='b001100000000;//高3128:{high,med,low}='b001100000000;//高3129:{high,med,low}='b001000000000;//高2130:{high,med,low}='b001100000000;//高3131:{high,med,low}='b001100000000;//高3 132:{high,med,low}='b010000000000;//高5133:{high,med,low}='b010000000000;//高5134:{high,med,low}='b001000000000;//高2135:{high,med,low}='b001000000000;//高2136:{high,med,low}='b001000000000;//高2137:{high,med,low}='b001000000000;//高2138:{high,med,low}='b001000000000;//高2139:{high,med,low}='b001000000000;//高2140:{high,med,low}='b000001010000;//中5141:{high,med,low}='b000001010000;//中5142:{high,med,low}='b000100000000;//高1143:{high,med,low}='b000100000000;//高1144:{high,med,low}='b000100000000;//高1145:{high,med,low}='b000010000000;//中7146:{high,med,low}='b000100000000;//高1147:{high,med,low}='b000100000000;//高1148:{high,med,low}='b001100000000;//高3149:{high,med,low}='b001100000000;//高3150:{high,med,low}='b001100000000;//高3151:{high,med,low}='b001100000000;//高3152:{high,med,low}='b001100000000;//高3153:{high,med,low}='b001100000000;//高3154:{high,med,low}='b001100000000;//高3155:{high,med,low}='b001100000000;//高3156:{high,med,low}='b000001100000;//中6157:{high,med,low}='b000001100000;//中6158:{high,med,low}='b000010000000;//中7159:{high,med,low}='b000010000000;//中7 160:{high,med,low}='b000100000000;//高1161:{high,med,low}='b000100000000;//高1162:{high,med,low}='b000100000000;//高1163:{high,med,low}='b000100000000;//高1164:{high,med,low}='b000010000000;//中7165:{high,med,low}='b000010000000;//中7166:{high,med,low}='b000100000000;//高1167:{high,med,low}='b000100000000;//高1168:{high,med,low}='b001000000000;//高2169:{high,med,low}='b001000000000;//高2170:{high,med,low}='b000100000000;//高1171:{high,med,low}='b000100000000;//高1172:{high,med,low}='b000100000000;//高1 173:{high,med,low}='b000001010000;//中5174:{high,med,low}='b000001010000;//中5175:{high,med,low}='b000001010000;//中5176:{high,med,low}='b000001010000;//中5177:{high,med,low}='b000001010000;//中5178:{high,med,low}='b000001010000;//中5179:{high,med,low}='b001010000000;//高4180:{high,med,low}='b001010000000;//高4181:{high,med,low}='b001100000000;//高3182:{high,med,low}='b001100000000;//高3 183:{high,med,low}='b001000000000;//高2184:{high,med,low}='b001000000000;//高2185:{high,med,low}='b001000000000;//高2186:{high,med,low}='b000100000000;//高1187:{high,med,low}='b000100000000;//高1188:{high,med,low}='b001100000000;//高3189:{high,med,low}='b001100000000;//高3190:{high,med,low}='b001100000000;//高3191:{high,med,low}='b001100000000;//高3192:{high,med,low}='b001100000000;//高3193:{high,med,low}='b001100000000;//高3194:{high,med,low}='b001100000000;//高3195:{high,med,low}='b001100000000;//高3default:{high,med,low}<='b000000000000; endcaseendelseif(dir==2'b11) //《康定情歌》樂曲演奏電路begin if(counter==103)counter<=0; elsecounter<=counter+1; case(counter)0:{high,med,low}='b000000110000;//中31:{high,med,low}='b000000110000;//中32:{high,med,low}='b000001010000;//中53:{high,med,low}='b000001010000;//中54:{high,med,low}='b000001100000;//中65:{high,med,low}='b000001100000;//中66:{high,med,low}='b000001100000;//中67:{high,med,low}='b000001010000;//中58:{high,med,low}='b000001100000;//中69:{high,med,low}='b000001100000;//中610:{high,med,low}='b000001100000;//中611:{high,med,low}='b000000110000;//中312:{high,med,low}='b000000100000;//中213:{high,med,low}='b000000100000;//中214:{high,med,low}='b000000100000;//中215:{high,med,low}='b000000100000;//中2 16:{high,med,low}='b000000110000;//中317:{high,med,low}='b000000110000;//中318:{high,med,low}='b000001010000;//中519:{high,med,low}='b000001010000;//中520:{high,med,low}='b000001100000;//中621:{high,med,low}='b000001100000;//中622:{high,med,low}='b000001100000;//中623:{high,med,low}='b000001010000;//中524:{high,med,low}='b000001100000;//中625:{high,med,low}='b000001100000;//中626:{high,med,low}='b000000110000;//中327:{high,med,low}='b000000110000;//中328:{high,med,low}='b000000110000;//中329:{high,med,low}='b000000110000;//中330:{high,med,low}='b000000110000;//中331:{high,med,low}='b000000110000;//中332:{high,med,low}='b000000110000;//中333:{high,med,low}='b000000110000;//中334:{high,med,low}='b000001010000;//中535:{high,med,low}='b000001010000;//中536:{high,med,low}='b000001100000;//中637:{high,med,low}='b000001100000;//中638:{high,med,low}='b000001100000;//中639:{high,med,low}='b000001010000;//中540:{high,med,low}='b000001100000;//中641:{high,med,low}='b000001100000;//中642:{high,med,low}='b000001100000;//中643:{high,med,low}='b000000110000;//中344:{high,med,low}='b000000100000;//中245:{high,med,low}='b000000100000;//中246:{high,med,low}='b000000100000;//中247:{high,med,low}='b000000100000;//中248:{high,med,low}='b000000000101;//中549:{high,med,low}='b000000000101;//中550:{high,med,low}='b000000110000;//中351:{high,med,low}='b000000110000;//中352:{high,med,low}='b000000100000;//中253:{high,med,low}='b000000110000;//中354:{high,med,low}='b000000100000;//中255:{high,med,low}='b000000000111;//中156:{high,med,low}='b000000100000;//中257:{high,med,low}='b000000100000;//中258:{high,med,low}='b000000000110;//低659:{high,med,low}='b000000000110;//低660:{high,med,low}='b000000000110;//低661:{high,med,low}='b000000000110;//低662:{high,med,low}='b000000000110;//低663:{high,med,low}='b000000000110;//低664:{high,med,low}='b000001100000;//中665:{high,med,low}='b000001100000;//中666:{high,med,low}='b000000100000;//中267:{high,med,low}='b000000100000;//中268:{high,med,low}='b000000100000;//中269:{high,med,low}='b000000100000;//中270:{high,med,low}='b000000100000;//中271:{high,med,low}='b000000100000;//中272:{high,med,low}='b000000000101;//中573:{high,med,low}='b000000000101;//中574:{high,med,low}='b000000110000;//中375:{high,med,low}='b000000110000;//中376:{high,med,low}='b000000110000;//中377:{high,med,low}='b000000110000;//中378:{high,med,low}='b000000110000;//中379:{high,med,low}='b000000110000;//中380:{high,med,low}='b000000100000;//中281:{high,med,low}='b000000000111;//中182:{high,med,low}='b000001100000;//中683:{high,med,low}='b000001100000;//中684:{high,med,low}='b000001100000;//中685:{high,med,low}='b000001100000;//中686:{high,med,low}='b000001100000;//中687:{high,med,low}='b000001100000;//中688:{high,med,low}='b000000000101;//中589:{high,med,low}='b000000000101;//中590:{high,med,low}='b000000110000;//中391:{high,med,low}='b000000110000;//中392:{high,med,low}='b000000100000;//中293:{high,med,low}='b000000110000;//中394:{high,med,low}='b000000100000;//中295:{high,med,low}='b000000000111;//中196:{high,med,low}='b000000100000;//中297:{high,med,low}='b000000100000;//中298:{high,med,low}='b000001100000;//中699:{high,med,low}='b000001100000;//中6100:{high,med,low}='b000001100000;//中6101:{high,med,low}='b000001100000;//中6102:{high,med,low}='b000001100000;//中6103:{high,med,low}='b000001100000;//中6default:{high,med,low}<='b000000000000;endcaseendendmodule//節拍發生器模塊:注:原始時鐘為50mhz;moduleclock5mhz(clk,dir,clk_5MHZ);inputclk;input[1:0]dir;outputclk_5MHZ;//時鐘頻率5MHzwireclk;wire[1:0]dir;regclk_5MHZ;reg[3:0]cnt;always@(posedgeclk)beginif(dir==2'b00)clk_5MHZ<=0;elseif(cnt<4'b1010) cnt<=cnt+4'b0001;else begin cnt<=4'b0000; clk_5MHZ<=~clk_5MHZ; endendendmodulemoduleclock4hz(clk_5MHZ,dir,ck,clk_4HZ);//時鐘頻率4Hz(基于clock6mhz分頻后的時鐘再次分頻)inputclk_5MHZ;input[1:0]dir;outputclk_4HZ;outputck;wireclk_5MHZ,ck;wire[1:0]dir;regclk_4HZ;reg[19:0]cnt;assignck=clk_4HZ;always@(posedgeclk_5MHZ)beginif(dir==2'b00)clk_4HZ<=0; elseif(cnt<20'b10011000100101011110) cnt<=cnt+20'b00000000000000000001;else begin cnt<=20'b0; clk_4HZ<=~clk_4HZ; endendendmodule//觸發器模塊:moduleD(dir,dr);input[1:0]dir;outputdr;wiredr;wire[1:0]dir;assigndr=dir[0]|dir[1];endmodule//數碼管顯示:moduledecode(dir,decodeout);input[1:0]dir;output[6:0]decodeout;reg[6:0]decodeout;wire[1:0]dir;always@(dir)begincase(dir)2'b00:decodeout=7'b1000000;2'b01:decodeout=7'b1001111;2'b10:decodeout=7'b0100100;2'b11:decodeout=7'b0000110;default:decodeout=7'b1000000;endcaseendendmodule//分頻器模塊:modulemain(dr,clk_5MHZ,clk_4HZ,voice,speak);inputdr;inputclk_5MHZ;input[11:0]voice;inputclk_4HZ;outputspeak;wiredr;wireclk_5MHZ,clk_4HZ;wire[11:0]voice;regspeak;reg[13:0]divider,origin;wirecarry;assigncarry=(divider==16383);always@(posedgeclk_5MHZ)beginif(carry)divider<=origin;elsedivider=divider+1;endalways@(posedgecarry)beginspeak<=~speak;endalways@(posedgeclk_4HZ)beginif(dr==1'b0)origin<=16383;case(voice)'b000000000001:origin<=6826;'b000000000010:origin<=7871;'b000000000011:origin<=8798;'b000000000100:origin<=9224; 'b000000000101:origin<=10005; 'b000000000110:origin<=10701; 'b000000000111:origin<=11321; 'b000000010000:origin<=11606; 'b000000100000:origin<=12126; 'b000000110000:origin<=12591; 'b000000111000:origin<=12804; 'b000001010000:origin<=13194; 'b000001100000:origin<=13524; 'b000010000000:origin<=13852; 'b000100000000:origin<=13994; 'b001000000000:origin<=14255; 'b001100000000:origin<=14487; 'b001010000000:origin<=14593; 'b010000000000:origin<=14789; 'b011000000000:origin<=14963; 'b010100000000:origin<=15117;default:origin<=16383;endcaseendendmodule鼓勵moduleepiano_tb;regclk50m,clk27m,rst,key1,key2;wirespk_out;wire[6:0]key_display;e_pianoa(.clk50m(clk),.clk27m(clk27m),.spk_out(speak),.rst(rst),.key1(key1),.key2(key2),.key_display(key_display));always#10clk50m=~clk50m;always#20clk27m=~clk27m;initialbeginclk50m=0;clk27m=0;#50rst=0;#50r
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省無錫市積余中學2025年初三年級8月摸底考試數學試題含解析
- 重慶市江津區2025年初三第五次適應性訓練數學試題試卷含解析
- 重慶市重點中學2025年初三下學期期末仿真模擬生物試題含解析
- 互聯網時代干部培訓策略與實施
- 棗強中學高一上學期第三次月考生物試題
- 目標控制程序培訓資料
- 2025租賃合同范本:測量儀器出租合同
- 2025筆記本電腦買賣合同
- 2025財經大學服務合同(教室租賃類)
- 2025年建筑項目基礎施工合同范本
- 導線的連接精品課件
- 論提高行政效率的途徑 開題報告
- 059.商業計劃書和可行性報告精制食油廠年產萬噸精制山茶油項目可行性研究報告
- 米度盾構導向系統
- [說明]心血管內科(心內科)_見習教案_6_動脈粥樣硬化和冠狀動脈粥樣硬化性心臟病
- Q∕GDW 11257.3-2020 熔斷器技術規范 第3部分:跌落式熔斷器
- 汽車焊接夾具設計外文文獻翻譯
- 濃縮機的選擇與計算
- 滬教版六年級下冊單詞表
- 紅星美凱龍租賃合同
- 最新投標書密封條
評論
0/150
提交評論