基于FPGA的可編程單脈沖發(fā)生器設(shè)計規(guī)范技術(shù)文件_第1頁
基于FPGA的可編程單脈沖發(fā)生器設(shè)計規(guī)范技術(shù)文件_第2頁
基于FPGA的可編程單脈沖發(fā)生器設(shè)計規(guī)范技術(shù)文件_第3頁
基于FPGA的可編程單脈沖發(fā)生器設(shè)計規(guī)范技術(shù)文件_第4頁
基于FPGA的可編程單脈沖發(fā)生器設(shè)計規(guī)范技術(shù)文件_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、可編程單脈沖發(fā)生器設(shè)計院系名稱:電子工程學(xué)院專業(yè)班級:學(xué) 號:學(xué)生姓名:可編程單脈沖發(fā)生器設(shè)計一功能描述:本設(shè)計實現(xiàn)一個可編程單脈沖發(fā)生器,具體功能如下:1.異步信號復(fù)位,復(fù)位后信號輸出重新開始2.復(fù)位后5個時鐘周期時,產(chǎn)生一個脈沖,對輸入的脈沖寬度參數(shù)讀取3.當(dāng)有按鍵使能時,輸出脈沖信號,重復(fù)再按使能鍵,無效4.使能按鍵后產(chǎn)生的單脈沖的上升沿與時鐘取得同步二輸入輸出信號描述:脈沖信號發(fā)生器rstclkoutenLED6:0data7:0信號名輸入/輸出目標(biāo)/源功能描述clkInputPin時鐘頻率50M占空比1:1rstInputPin低電平有效,程序重新執(zhí)行,計數(shù)器清零data7:0Inp

2、utPin8位控制脈沖信號的寬度outOutputPin輸出信號LED6:0OutputPin接入數(shù)碼管顯示data輸入值三頂層劃分:synccounterclk50MHzrstinLEDled16:0data7:0enoutT_triggerQ_outQ_inpreset_parameterflag_data7:0data_in7:0led26:0led6:0系統(tǒng)結(jié)構(gòu)框圖頂層模塊說明:counter:計數(shù)比較,確保輸出信號寬度為輸入data值;sync:將按鍵產(chǎn)生的單脈沖的上升沿與時鐘取得同步;T_trigger:T觸發(fā)器模塊,鎖按鍵信號,使按鍵只能第一次有效;preset_paramete

3、r:預(yù)置脈沖參數(shù);LED:將輸入data用數(shù)碼管輸出顯示設(shè)計說明:設(shè)計分為計數(shù)比較按鍵同步預(yù)置脈沖參數(shù)T觸發(fā)器模塊LED顯示五個模塊計數(shù)比較模塊:計數(shù)延時,由輸入的寬度參數(shù)data的不同而得到不同寬度的脈沖按鍵同步模塊:使按鍵產(chǎn)生的單脈沖的上升沿與時鐘取得同步預(yù)置脈沖參數(shù):在系統(tǒng)進(jìn)行復(fù)位操作的5個時間單位后,將輸入的脈沖參數(shù)data預(yù)置到flag_data中T觸發(fā)器模塊:T觸發(fā)器模塊,鎖按鍵信號,使按鍵只能第一次有效LED顯示模塊:將脈沖寬度的預(yù)置值和計數(shù)模塊的計數(shù)值轉(zhuǎn)換為數(shù)碼管輸出顯示四子模塊描述:counter:計數(shù)判斷輸出模塊1功能描述計數(shù)延時,由輸入的寬度參數(shù)data的不同而得到不同寬

4、度的脈沖2管腳描述信號名稱輸入 / 輸出源目標(biāo)功能描述clkInputPin時鐘信號50MHzrstInputPin復(fù)位信號,低電平有效data_in7:0InputPin脈沖寬度參數(shù)Q_inInputPin按鍵使能標(biāo)志outOutputPin脈沖輸出3實現(xiàn)說明復(fù)位后輸出out為0當(dāng)Q_in按鍵使能標(biāo)志有效時,cnt7:0從零開始計數(shù),當(dāng)cntdata_in時,輸出out=1;其余輸出為04模塊驗證1.正常運行觀測其輸出變化;復(fù)位觀測2.將cnt接數(shù)碼管顯示,觀測脈沖寬度sync:同步按鍵與時鐘信號模塊1功能描述使按鍵產(chǎn)生的單脈沖的上升沿與時鐘取得同步2管腳描述信號名稱輸入 / 輸出源目標(biāo)功能

5、描述clkInputPin時鐘信號50MHzrstInputPin復(fù)位信號,低電平有效en_inInputPin按鍵使能en_outOutputPin同步后的按鍵使能3實現(xiàn)說明當(dāng)按鍵被按下(即en_in=0)時,將Q1=1,在clk為高電平時將Q2=Q1,en_out=Q2;clr=en_in&en_out,當(dāng)clr有效時Q1=0復(fù)位信號rst有效時,Q1=0,Q2=0,en_out=0sync結(jié)構(gòu)圖:4模塊驗證T_trigger:T觸發(fā)器模塊1功能描述T觸發(fā)器模塊,鎖按鍵信號,使按鍵只能第一次有效2管腳描述信號名稱輸入 / 輸出源目標(biāo)功能描述rstInputPin復(fù)位信號,低電平有效inIn

6、putPinT觸發(fā)器輸入Q_outOutputPinT觸發(fā)器輸出3實現(xiàn)說明當(dāng)復(fù)位時,Q_out=0;其他時輸出結(jié)果為Q_out=inQ_out4模塊驗證復(fù)位驗證preset_parameter:預(yù)置脈沖參數(shù)模塊1功能描述在系統(tǒng)進(jìn)行復(fù)位操作的5個時間單位后,將輸入的脈沖參數(shù)data預(yù)置到flag_data中2管腳描述信號名稱輸入 / 輸出源目標(biāo)功能描述clkInputPin時鐘信號50MHzrstInputPin復(fù)位信號,低電平有效data7:0InputPin輸入的脈沖寬度參數(shù)flag_data7:0OutputPin預(yù)置脈沖寬度值3實現(xiàn)說明系統(tǒng)復(fù)位后sum從零開始計數(shù),當(dāng)sum=5時,將fl

7、ag_data=data4模塊驗證復(fù)位后檢測sum值和flag_data值LED:數(shù)碼管顯示模塊1功能描述將脈沖寬度的預(yù)置值和計數(shù)模塊的計數(shù)值轉(zhuǎn)換為數(shù)碼管輸出顯示2管腳描述信號名稱輸入 / 輸出源目標(biāo)功能描述rstInputPin復(fù)位信號,低電平有效data2:0InputPin輸入數(shù)值cnt_num7:0InputPin計數(shù)模塊中cnt值led16:0OutputPin接數(shù)碼管顯示輸入的data百位Led26:0OutputPin接數(shù)碼管顯示輸入的data十位Led36:0OutputPin接數(shù)碼管顯示輸入的data個位Led46:0OutputPin接數(shù)碼管顯示計數(shù)模塊中cnt的百位Led

8、56:0OutputPin接數(shù)碼管顯示計數(shù)模塊中cnt的十位Led66:0OutputPin接數(shù)碼管顯示計數(shù)模塊中cnt的個位3實現(xiàn)說明將data和cnt的輸入值轉(zhuǎn)換為數(shù)碼管顯示輸出對百位取余作為百位的值,對百位取余再對十位取整作為十位的值,對個位取余作為個位的值五驗證方案:1結(jié)果驗證將程序下載至實驗板,接示波器后,先設(shè)置脈沖寬度再復(fù)位,最后按鍵,觀測示波器顯示的波形信號2復(fù)位驗證下載到實驗板,讓其運行一段時間,進(jìn)行復(fù)位,觀測變化3仿真驗證六實驗截圖:前仿真波形:Quartus II綜合:后仿真波形:分配管腳:程序運行最高速度:七源程序代碼:頂層模塊:module pulser(data,en

9、,rst,clk,out,led1,led2,led3,led4,led5,led6);input7:0data;input en,rst,clk;output out;output6:0led1,led2,led3,led4,led5,led6;wire x,m;wire7:0d,y;sync S(.clk(c),.rst(rst),.en_in(en),.en_out(m);counter C(.Q_in(x),.clk(clk),.rst(rst),.data_in(d),.out(out), t(y);preset_parameter P(.clk(clk),.rst(rst),.da

10、ta(data),.flag_data(d);T_trigger T(.rst(rst),.in(m),.Q_out(x);LED L(.led_data(d), t_num(y),.rst(rst),.led1(led1),.led2(led2),.led3(led3),.led4(led4),.led5(led5),.led6(led6);endmodule計數(shù)判斷輸出模塊:countermodule counter(Q_in,clk,rst,data_in,out,cnt);input7:0data_in;input Q_in,clk,rst;output7:0cnt;output ou

11、t;reg out;reg7:0cnt;always(posedge clk or negedge rst)begin if(!rst) begin cnt=0; out=0; end else if(Q_in&cntdata_in) begin out=1; cnt=cnt+1; end else begin out=0; endendendmodule同步按鍵與時鐘信號模塊:syncmodule sync(clk,rst,en_in,en_out);input en_in,clk,rst;output en_out;reg Q1,Q2,en_out;wire clr;assign clr=

12、en_in&en_out;always(en_in or rst or clk)begin if(!rst) begin Q1=0; Q2=0; en_out=0; end else if(!en_in)Q1=1; else if(clr)Q1=0; else if(clk) begin Q2=Q1; en_out=Q2; endendendmoduleT觸發(fā)器模塊:T_triggermodule T_trigger(rst,in,Q_out);input rst,in;output Q_out;reg Q_out;always(in or rst)begin if(!rst)Q_out=0;

13、 else Q_out=inQ_out;endendmodule預(yù)置脈沖參數(shù)模塊:preset_parametermodule preset_parameter(clk,rst,data,flag_data);input clk,rst;input7:0data;output7:0flag_data;reg7:0flag_data;reg2:0sum;reg flag_sum;always(posedge clk or negedge rst)begin if(!rst) begin sum=0; flag_sum=0; flag_data=0; end else if(flag_sum=0&

14、sum=5) begin flag_data=data; flag_sum=flag_sum+1; end else if(flag_sum=0&sum5)sum=sum+1;endendmodule數(shù)碼管顯示模塊:LEDmodule LED(led_data,cnt_num,rst,led1,led2,led3,led4,led5,led6);input7:0led_data,cnt_num;input rst;output6:0led1,led2,led3,led4,led5,led6;reg6:0led1,led2,led3,led4,led5,led6;reg6:0LED9:0;alw

15、ays(rst or cnt_num or led_data)beginLED0=7b1000000;LED1=7b1111001;LED2=7b0100100;LED3=7b0110000;LED4=7b0011001;LED5=7b0010010;LED6=7b0000010;LED7=7b1111000;LED8=7b0000000;LED9=7b0010000; if(!rst) begin led1=0; led2=0; led3=0; led4=0; led5=0; led6=0; end else begin led1=LEDled_data/100; led2=LEDled_data%100/10; led3=LEDled_data%10; led4=LEDcnt_num/100; led5=LEDcnt_num%100/10; led6=LEDcnt_num%10; endendendmodule測試激勵模塊:timescale 10ns/1nsmodule test;reg clk,rst,en;reg7:0data;wire out;wire6:0led1,led2,led3,led4,led5,led6;pulser P(data,en,rst,clk,out,le

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論