




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
FPGAFPGA功能驗證2012年6月29日4.FPGA課程設計詳細內(nèi)容................................................2. 5 7 84.3.3LCD驅(qū)動模塊方案設計及源程序 11 30 21 21 22 22a設計一個簡單電子琴。(內(nèi)置2~4首簡單音調(diào)曲)b、用FPGA開發(fā)板的按鍵可選擇演奏內(nèi)置曲調(diào),用數(shù)碼管顯示當前演a、在掌握計算機組成原理理論相關(guān)的基礎上,了解EDA技術(shù),掌握VerilogHDL硬件描述語言的設計方法和思想,通過學習的VerilogHDL語言結(jié)合電b、深入學習VerilogHDL、FPGA,了解其編程環(huán)境;d、將硬件語言編程與硬件實物功能演示相結(jié)合,加深理解VeriloFPGA的學習;3.使用環(huán)境(軟件/硬件環(huán)境,設備等)在EDA軟件平臺上,根據(jù)硬件描述語言Verilog完成的設計文件,自動的完成邏輯編譯、化簡、分割、綜合及優(yōu)化、布局布線、仿真、目標VerilogHDL語言,用Modelsim進行前仿真,以及代碼的生成,驗證程鳴器等,軟件資源包括編寫VerilogHDL程序的應用軟件Modelsim和仿真軟件播放功能中有三首曲子。程序共有六個模塊,分別為主模塊、數(shù)碼管顯示模塊、分頻模塊、計數(shù)器模塊、存儲器模塊、音頻輸出模塊。硬件實現(xiàn)是用一個數(shù)碼管樂曲演奏的原理:組成樂曲的每個音符的頻率值(音調(diào))以及持續(xù)時間(音長)是樂曲能持續(xù)演奏所需的兩個基本數(shù)據(jù),因此只要控制輸出到揚聲器的激勵信號的頻率頻率的高低決定了音調(diào)的高低。音樂的十二平均率規(guī)定:每兩個八度音(如簡譜個半音,每半個音的頻率比為|河。另外,音440HZ,音名B到C之間,E到F之間為半音,其余為全音。由此可以計算出簡頻率(HZ)頻率(HZ)低音439278415684408801760所有不同頻率均從同一基準頻率分頻得到。將分頻數(shù)四舍五入進行取整,并盡量減小誤差。在本設計中選取5MHZ作為基準頻率。從下表中可以看出最大分頻系對應不同的預置數(shù),只需加載不同的預置數(shù)即可。采用加載預置數(shù)實現(xiàn)分頻的方法比采用反饋復零法節(jié)省資源,實現(xiàn)起來更加容易955768264777116062389139948512787142571212621281425575858798379212591189614487低音471599224357912804179014593637810005318913194159414789568210701284113524142014963506211321253113852126615117為1S的話,假設產(chǎn)生4分音符,則產(chǎn)生四分頻即可實現(xiàn)四分音符的時長,并提供4HZ分本次設計課程的目的是讓我們在學習KLKCLKDIROUTSCREEN使能端,控制時鐘產(chǎn)生,以及讀輸出樂曲信號(方波形式)1.D觸發(fā)器:實現(xiàn)信號讀取,產(chǎn)生內(nèi)部使能端,控制分頻器;2?分頻器:實現(xiàn)與基準時鐘同步操作,讀取存儲器數(shù)據(jù)進行分頻操作,實現(xiàn)音調(diào)6MHZ4HZ顯示,本設計中使用HIGH[3:0],MED[3;0],LOW[3;0]等信號加以顯示,為了能使顯示,需要一時長計數(shù)器,等音樂演奏完成后,保證自動從頭開始演奏。<1>按鍵接收器D觸發(fā)器運用D觸發(fā)器和數(shù)據(jù)鎖存器實現(xiàn)數(shù)據(jù)線輸出的使能端2、管腳描述源DIRDR在按鍵信號產(chǎn)生后,進行信號的鎖存和產(chǎn)生使能信號4、驗證方案<2>節(jié)拍發(fā)生器分頻器2、管腳描述源DIRPINCLKPINCKPIN在CLK的上升沿,將鎖存后的DIR信號輸入到內(nèi)部,并根據(jù)對應時鐘節(jié)拍分頻,4、測試<3>分頻器2、管腳描述DIRCKVOICE1SPEAK源PINPINPINPIN3、實現(xiàn)說明Speaker翻轉(zhuǎn)一次,即為分頻。4、測試<4>存儲器按照使能端的數(shù)據(jù),選擇對應的預置數(shù)據(jù)進行讀操作,并且于時鐘同步2、管腳描述DRCLKVOICE1SCREEN源PINPINPINPIN通過選擇,在時鐘的上升沿進行數(shù)據(jù)的讀取,并將讀出的數(shù)據(jù)同時傳至數(shù)碼用modelsim仿真,觀察預置數(shù)的值是否為對應曲目;正常情況下,輸入一個DIR的值,查看波形輸出是否正常。改變該模塊用于顯示用戶是否登陸成功,即//信號定義與說明〃CLK_4HZ:用于控制音長(節(jié)拍)的時鐘頻率//speak:用于激勵揚聲器的輸出信號,本例中為方波信號modulemusic(clk,key1,keyO,speak,highinputclk,key1,keyO;outputspeak,high,lowireclk,key1,key0;wireclk_5MHZ,clk_4hz;wirespeak;wireck,dr;wire[6:0]decodeout;clock5mhzmhz(.clk(clk),.dir(dir),.clk_5MHZ(clk_5hz(.clk_5MHZ(clk_5MHZ),.dir(dir),.ck(ck),.clk_4HZ(clk_4HZ));DDRddr1(.dir(dir),.ck(ck),.vom(.dr(dr),.clk_5MHZ(clk_5MHZ),.clk_4HZ(clk_4HZ),.voice(voice),.speak(speak));decodedec(.dir(dir),.decodeout(decodeout));//信號定義與說明〃CLK_4HZ:用于控制音長(節(jié)拍)的時鐘頻率//speak:用于激勵揚聲器的輸出信號,本例中為方波信號input[1:0]dir;inputck;always@(posedgeck)begincase(counter)0:{high,med,low}v=2:{high,med,low}v='b1;3:{high,med,low}v='b1;4:{high,med,low}v='b1;5:{high,med,low}v='b1;6:{high,med,low}v='b1;7:{high,med,low}v='bO;8:{high,med,low}v='b0;21:{high,med,low}v='b0;22:{high,med,low}v='b0;23:{high,med,low}v='b0;24:{high,med,low}v='b0;25:{high,med,low}v='b0;26:{high,med,low}v='b0;27:{high,med,low}v='b0;28:{high,med,low}v='b0;29:{high,med,low}v='b0;30:{high,med,low}v='b0;31:{high,med,low}v='b0;32:{high,med,low}v='b0;33:{high,med,low}v='b0;34:{high,med,low}v='b0;35:{high,med,low}v='b0;36:{high,med,low}v='b1;37:{high,med,low}v='b1;38:{high,med,low}v='b0;39:{high,med,low}v='b0;40:{high,med,low}v='b1;41:{high,med,low}v='b1;42:{high,med,low}v='b1;43:{high,med,low}v='b0;44:{high,med,low}v='b0;45:{high,med,low}v='b0;46:{high,med,low}v='bO;47:{high,med,low}v='bO;48:{high,med,low}v='b1;49:{high,med,low}v='b1;50:{high,med,low}v='bO;51:{high,med,low}v='b0;52:{high,med,low}v='b0;53:{high,med,low}v='b1;54:{high,med,low}v='b0;55:{high,med,low}v='b0;56:{high,med,low}v='b1;57:{high,med,low}v='b1;58:{high,med,low}v='b1;59:{high,med,low}v='b1;60:{high,med,low}v='61:{high,med,low}v='62:{high,med,low}v='63:{high,med,low}v='b1;default:{high,med,low}v='b0;endcasebegincase(counter)2:{high,med,low}='b0;〃3:{high,med,low}='b0;〃4:{high,med,low}='b0;〃5:{high,med,low}='b0;〃8:{high,med,low}='b09:{high,med,low}='b060:{high,med,low}='b80:{high,med,low}=81:{high,med,low}=82:{high,med,low}=83:{high,med,low}=中7中7中6中7高1高1高1高7高1高1高3高3中7中7中7中3中3中6中6中6中5中6中6中1中1中5中5中5中5中5中5中3中3中4中4高1中7中7中7高1高1高2高2高3104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 高1高1高1中5中7高3高3高3高3高3高2高3高3高3高3高3高3高3高3高3高2高2高3高3高3高3高3148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191高3高3高3高3高3高2高2高4高3高3高3高3endcaseendbegin3132333435363738394041424344454647484950515253545556575859606162636465666768697071727374endcaseendendmodule//節(jié)拍發(fā)生器模塊:注:原始時鐘為50mhzoutputclk_5MHZ;//時鐘頻率5MHzregclk_5MHZ;always@(posedgeclk)beginbeginclk_5MHZ<=~clk_5MHZ;endendendmodulealways@(posedgeclk_5MHZ)beginclk_4HZ<=0;beginclk_4HZ<=~clk_4HZ;endendendmoduleassigndr=dir[0]|dirmoduledecode(dir,dinput[1:0]dir;output[6:0]decodeout;2'b00:decodeout=7'b1000000;2'b01:decodeout=7'b1001111;2'b10:decodeout=7'b0100100;2'b11:decodeout=7'b0000110;default:decodeout=7'b1000000;modulemain(dr,clk_5MHZ,clk_4HZ,voice,speak);inputdr;input[11:0]voice;inputclk_4HZ;wiredr;wireclk_5MHZ,clk_4HZ;reg[13:0]divider,origin;wirecarry;always@(posedgeclk_5MHZ)elsedivider=divideralways@(posedgecarry)always@(posedgeclk_4HZ)default:origi*=16383;endcaseendregclk50m,clk27m,rst,key1,key2;wirespk_out;a(.clk50m(clk),.clk27m(clk27m),.spk_out(speak),.rst(rst),.key1(key1),.key2y2),.key_display(key_display));always#10clk50m=~clk50m;always#20clk27m=~clk27m;initialbeginclk50m=0;clk27m=0;#2000key1=1;key2=1;inputfenpin8,rst,key1,key2;always@(posedgefenpin8ornegedgerstornegedgekey1ornegedgebeginbeginmodulefenpin8(clk27m,rst,clk_inputclk27m,rst;always@(posedgeclk27mornegedgerst)beginbeginbeginif(cnt==N/2)begincnt<=0;clk_8hz<=!clk_8hz;wireclk_8hz;fenpin8fenpin8_tb(.clk27m(clk27m),.clk_8always#50clk27m=~clk27m;initialinputclk50m,rst;always@(posedgeclk50mornegedgerst)beginbeginbeginif(cnt==N/2)beginclk_5m<=!clk_5m;wireclk_5m;fenpin5mfenpin5m_tb(.clk50m(clk50m),.clk_5m(clk_5m),.rst(rst));always#50clk50m=~clk50m;initialbegininput[10:0]address;inputclock;altsyncramaltsyncram_component(yncram_component.clock_enable_output_a="BYPASS",altcram_component.init_file="zxmzf_mif.mif",altsyncram_component.intended_device_family="CycloneII",altsyncram_component.lpm_hint="ENABLE_RUNTIMEcram_component.lpm_type="altsyncram",altsyncram_compmode="ROM",altsyncram_component.altsyncram_component.outdata_reg_a="CLOCKmodulemusic_rom_tb;#100address=3;#100address=12;#40address=10;endendmodulealways@(
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鋼鐵行業(yè)安全保護措施
- 公共衛(wèi)生事件應急響應及整改措施
- 六年級語文上冊作文訓練計劃
- 家長教育分層教學工作計劃
- 能源行業(yè)吸收合并的戰(zhàn)略流程
- XX集團桌面虛擬化(桌面云)項目驗收測試報告
- 秸稈飼料加工項目節(jié)能評估報告(節(jié)能專用)
- 八年級道德與法治教學計劃評價標準
- 哈爾濱智能設備項目商業(yè)計劃書
- 武術(shù)社團品牌建設計劃
- DB65-T 4863-2024 超設計使用年限壓力容器安全評估規(guī)則
- 2025陜西建工控股集團限公司招聘12人易考易錯模擬試題(共500題)試卷后附參考答案
- 光儲充一體化低碳發(fā)展項目可行性研究報告寫作模板-備案審批
- 智慧工會管理系統(tǒng)需求方案
- 臨床三基培訓
- 配電室巡檢培訓
- 2024草原承包合同書
- 鋼結(jié)構(gòu)閣樓合同范例
- 2022年首都師范大學計算機科學與技術(shù)專業(yè)《數(shù)據(jù)結(jié)構(gòu)與算法》科目期末試卷A(有答案)
- 福建省福州教育學院附屬中學2025屆高考數(shù)學四模試卷含解析
- 全國扶貧開發(fā)信息系統(tǒng)業(yè)務管理子系統(tǒng)用戶操作手冊20171110(升級版)
評論
0/150
提交評論