




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、一、設(shè)計報告:1.技術(shù)規(guī)范:在clr的控制下置入脈寬data,在輸入按鍵key的控制下,產(chǎn)生單次的脈沖pulse,脈沖的寬度由data 8位的輸入數(shù)據(jù)控制(以下稱之為脈寬參數(shù))。clk_50M為系統(tǒng)的時鐘。2.總體設(shè)計方案:系統(tǒng)功能描述:(1)分頻模塊:輸入為總的時鐘50M,經(jīng)過分頻以后變?yōu)?00HZ。(2)延時模塊:當(dāng)clk為高電平且在復(fù)位脈沖clr有效時置入延時脈寬,延時5個始終周期后輸出一個高電平load 。(3)計數(shù)模塊:脈寬參數(shù)端data接受8位的數(shù)據(jù),經(jīng)數(shù)據(jù)預(yù)置端clr裝載脈寬參數(shù),在計數(shù)允許端有效后便開始計數(shù)。該計數(shù)器設(shè)計成為減法計數(shù)的模式,當(dāng)其計數(shù)到0時,輸出端pulse由高電
2、平變?yōu)榈碗娖健1憧傻玫絾蚊}沖的輸出。系統(tǒng)功能描述時序關(guān)系:可編程單脈沖發(fā)生器的操作過程是:(1) 預(yù)置脈寬參數(shù)。(2) 按下復(fù)位鍵,初始化系統(tǒng)。(3) 按下啟動鍵,發(fā)出單脈沖。以上三步可用三個按鍵來完成。但是,由于目標(biāo)板已確定,故考慮在復(fù)位鍵按下后,經(jīng)過延時自動產(chǎn)生預(yù)置脈寬參數(shù)的動作。輸出的信號加到燈上,輸如的脈寬有開發(fā)版上的撥碼開關(guān)決定,當(dāng)輸入脈寬后,按下復(fù)位鍵置入脈寬,然后按下啟動鍵,發(fā)出單脈沖,延時一段時間后燈開始亮,亮一段時間后燈熄滅。延時模塊的時序圖如下:clk clr load 3.流程圖的設(shè)計:根據(jù)時序關(guān)系,可以做出圖所示的流程圖。在系統(tǒng)復(fù)位后,經(jīng)一定的延時產(chǎn)生一個預(yù)置脈沖loa
3、d,用來預(yù)置脈寬參數(shù)。當(dāng)按鍵key有效后產(chǎn)生脈沖pulse。 開始系統(tǒng)復(fù)位延時啟動計數(shù)器預(yù)置脈寬計數(shù)器結(jié)束?產(chǎn)生單脈沖結(jié)束計數(shù)器減一二、驗證方案:1.驗證方案的設(shè)計: 分頻模塊的設(shè)計:分頻模塊的代碼:module div(clk_50M,clk);/模塊名及端口的定義,到endmodule。 input clk_50M;/輸入端口的定義。 output clk;/輸出端口的定義。 reg 31:0 a=32d0;/定義內(nèi)部寄存器并賦初值。 reg clk=0;/給輸出賦初值。 always(posedge clk_50M) begin if(a=32d500000)/判斷計數(shù)器是不是記到了50
4、0000 begin a=32d0;/ 計數(shù)器記到了500000清零。 clk=clk; / 輸出脈沖取反end/ 結(jié)束。else a=a+1;/ 計數(shù)器沒有記到了500000自加。end/結(jié)束always塊。endmodule/結(jié)束分頻模塊。分頻模塊的仿真結(jié)果:在驗證的時候設(shè)計了一個8分頻。 有波形圖可以看出clk_50M經(jīng)過8個周期后clk取反,實(shí)現(xiàn)了8分頻,驗證了自己的設(shè)計。延時模塊的設(shè)計: 延時模塊的代碼:module dely(clk,clr,load); /模塊名及端口的定義,endmodule。input clk,clr; /輸入端口的定義。output load; /輸出端口的
5、定義。reg 2:0 counta; /延時計數(shù)器。reg load;/輸出。always(posedge clk or negedge clr)begin if(!clr) / 當(dāng)clr為低電平時 begin counta=5;/清零。 load=0; end/結(jié)束清零。else / 當(dāng)clr為高電平時計數(shù)器減一。begin counta=counta-8d1;if(counta=8d0)/計數(shù)器減到零時,進(jìn)行復(fù)位輸出load為高 begin counta=8d0; load=1;/ 輸出load為高。 endendendendmodule /結(jié)束延時模塊。延時模塊的仿真結(jié)果: 從波形圖可以
6、看出當(dāng)clr為高電平,且時鐘的上升沿到來的時候,延時5個時鐘周期后輸出load為高電平。計數(shù)模塊的設(shè)計: 計數(shù)模塊代碼:module count(clk,data,clr,load,pulse,key);/模塊名定義。input clk,clr,load,key;/輸入端口的定義。input7:0 data;/ mai kuan de ding yioutput pulse;/輸出的定義。reg pulse;/輸出定義為reg類型。reg 7:0 count;/ 計數(shù)器的定義。always(posedge clk or negedge clr)begin if(!clr)/低電平復(fù)位。 beg
7、in count=data;/置入脈寬。 pulse=0;/輸出為零。endelse if(load=1)/load有效的時候。beginif(key=0)/當(dāng)有按鍵按下的時候。begin count=count-8d1;/計數(shù)器減一。 pulse=1;/輸出為高電平。 if(count=8d0)/當(dāng)計數(shù)器減到零的時候。 begin count=8d0; pulse=0;/輸出為低電平。 end/ end beginend/end beginend/end beginend/end alwaysendmodule/結(jié)束計數(shù)模塊。上圖為可編程單脈沖發(fā)生器的邏輯仿真結(jié)果。由仿真結(jié)果可以看出,單脈沖
8、輸出的持續(xù)時間(脈沖寬度)由輸入的脈寬參數(shù)data決定。2.仿真激勵源代碼:timescale 1ns/100ps module confirmpulse_tb;/仿真模塊名字的定義。,reg 7:0 data;/ 輸入的脈寬。reg clk_50M,key,clr;/輸入的時鐘,按鍵,清零。wire pulse;/輸出。always #10 clk_50M=clk_50M;/時鐘周期。initialbegin clk_50M=0;clr=0;key=1;data=8d10; /賦初值。 #10 clr=1;key=0; #10000 $finish;/結(jié)束仿真。endinitial/ 監(jiān)控。
9、begin$monitor($time,clk_50M=%d,clr=%d,data=%d,key=%d,pulse=%dn ,clk_50M,clr,data,key,pulse);endconfirmpulse /實(shí)例化。wsm(.key(key),.clk_50M(clk_50M),.data(data),.clr(clr),.pulse(pulse);endmodule/激勵模塊結(jié)束。五、電路設(shè)計源代碼:/*頂層模塊*/module confirmpulse(clk_50M,data,clr,key,pulse); input 7:0 data;/脈寬的定義。input clk_50M
10、,key,clr;/ key是發(fā)脈沖的信號,clr為清零信號。output pulse;/脈寬的輸出。 wire load;/中間變量的定義。 wire clk; div div(.clk_50M(clk_50M),.clk(clk);/實(shí)例化。 dely u1(.clk(clk),.clr(clr),.load(load);/ 實(shí)例化。 countu2(.clk(clk),.data(data),.clr(clr),.load(load),.pulse(pulse),.key(key);/ 實(shí)例化。Endmodule/結(jié)束頂層模塊。/*分頻模塊*/module div(clk_50M,clk
11、);/模塊名及端口的定義,到endmodule。 input clk_50M;/輸入端口的定義。 output clk;/輸出端口的定義。 reg 31:0 a=32d0;/定義內(nèi)部寄存器并賦初值。 reg clk=0;/給輸出賦初值。 always(posedge clk_50M) begin if(a=32d500000)/判斷計數(shù)器是不是記到了500000 begin a=32d0;/ 計數(shù)器記到了500000清零。 clk=clk; / 輸出脈沖取反end/ 結(jié)束。else a=a+1;/ 計數(shù)器沒有記到了500000自加。end/結(jié)束always塊。endmodule/結(jié)束分頻模塊。
12、/*延時模塊*/module dely(clk,clr,load); /模塊名及端口的定義,endmodule。input clk,clr; /輸入端口的定義。output load; /輸出端口的定義。reg 2:0 counta; /延時計數(shù)器。reg load;/輸出。always(posedge clk or negedge clr)begin if(!clr) / 當(dāng)clr為低電平時 begin counta=5;/清零。 load=0; end/結(jié)束清零。else / 當(dāng)clr為高電平時計數(shù)器減一。begin counta=counta-8d1;if(counta=8d0)/計數(shù)器
13、減到零時,進(jìn)行復(fù)位輸出load為高 begin counta=8d0; load=1;/ 輸出load為高。 endendendendmodule /結(jié)束延時模塊。/*計數(shù)模塊*/module count(clk,data,clr,load,pulse,key);/模塊名定義。input clk,clr,load,key;/輸入端口的定義。input7:0 data;/ mai kuan de ding yioutput pulse;/輸出的定義。reg pulse;/輸出定義為reg類型。reg 7:0 count;/ 計數(shù)器的定義。always(posedge clk or negedge clr)begin if(!clr)/低電平復(fù)位。 begin count=data;/置入脈寬。 pulse=0;/輸出為零。endelse if(load=1)/load有效的時候。beginif(key=0)/當(dāng)有按鍵按下的時候。begin count=count-8d1;/計數(shù)器減一。 pulse=1;/輸出為高電平。 if(count=8d0)/當(dāng)計數(shù)器減到零的時候。 begin count=8d0; pu
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司放風(fēng)箏活動方案
- 公司禮品互換活動方案
- 公司職工過年活動方案
- 公司朗誦比賽活動方案
- 公司組織大型活動方案
- 公司早上上班活動方案
- 2025年藝術(shù)表演與導(dǎo)演專業(yè)綜合素養(yǎng)考試試題及答案
- 2025年營養(yǎng)學(xué)專業(yè)基礎(chǔ)知識考試試題及答案
- 2025年心理學(xué)基礎(chǔ)知識與應(yīng)用能力測評試題及答案
- 2025年網(wǎng)絡(luò)工程師職業(yè)資格考試試題及答案
- 2025年班組長個人職業(yè)素養(yǎng)知識競賽考試題庫500題(含答案)
- 網(wǎng)絡(luò)題庫財務(wù)會計知識競賽1000題(僅供自行學(xué)習(xí)使用)
- 2025海南中考:歷史必考知識點(diǎn)
- 鋁電解電容器
- GB/T 13912-2020金屬覆蓋層鋼鐵制件熱浸鍍鋅層技術(shù)要求及試驗方法
- 結(jié)構(gòu)設(shè)計總說明(帶圖完整版)分解
- 第二外語(日語)試卷
- 食品營養(yǎng)標(biāo)簽的解讀課件
- 二手新能源汽車充電安全承諾書
- 品質(zhì)異常8D報告 (錯誤模板及錯誤說明)指導(dǎo)培訓(xùn)
- 貴陽市建設(shè)工程消防整改驗收申請表
評論
0/150
提交評論