版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、FPGA-籃球計(jì)分計(jì)時(shí)器的設(shè)計(jì)這次的任務(wù)相對上次來說代碼書寫的更為規(guī)范和簡潔任務(wù)、籃球計(jì)分器功能:按照籃球賽賽制進(jìn)設(shè)計(jì)。須具有24秒倒計(jì)時(shí)功能,分鐘計(jì)時(shí)功能,暫停功能,進(jìn)球計(jì)分功能(1分,2分,3分)等??稍儆砂l(fā)揮。要求:分與計(jì)時(shí)須在數(shù)碼管實(shí)時(shí)顯,顯狀態(tài)可通過按鍵或者撥碼開關(guān)切換,計(jì)分可通過按鍵進(jìn)設(shè)計(jì)(不限制)。設(shè)計(jì):sw1 暫停sw2 24秒倒計(jì)時(shí)sw3 顯計(jì)時(shí)或者得分key0 1分key1 2分key2 3分key4計(jì)分切換頂層模塊:module top(ext_clk_25m,ext_rst_n,switch1,switch2,switch3,key_left,key_entr,key_
2、righ,key_down,dtube_cs_n,dtube_data,led);inputinputinputinputinputinputinputinputinputext_clk_25m ;/ 輸時(shí)鐘ext_rst_nswitch1switch2switch3;/2 分;/3 分;/ 切換記分output 3:0 led;wireclk;/中間變量;wirewirewirewireen_cnten_segen_24sen_sor;);/控制電路.switch1(switch1),.switch2(switch2),.switch3(switch3),.en_cnt(en_cnt),.e
3、n_seg(en_seg),.en_24s(en_24s),.en_sore(en_sor);/計(jì)分模塊);););inputinputinputinputinputswitch2switch3;parameter TIME = 25d2500_0000;always(posedge ext_clk_25m or negedge ext_rst_n)beginalways (posedge ext_clk_25m or negedge ext_rst_n)beginen_seg=1b0;en_seg=1b1;en_seg=1b0;endendelse beginen_seg=1b0;enden
4、d/停計(jì)數(shù)器計(jì)時(shí)模塊always (posedge ext_clk_25m or negedge ext_rst_n)beginif(ext_rst_n=1b0)beginen_cnt=1b0;endelse if(switch1=1b0)beginen_cnt=1b1;endelse beginen_cnt=1b0;endend/24s倒計(jì)時(shí)always(posedge ext_clk_25m or negedge ext_rst_n)beginif(ext_rst_n=1b0)beginen_24s =1b0;endelse if(switch2=1b0)beginen_24s =1b1;
5、endelse beginalways(posedge ext_clk_25m or negedge ext_rst_n)beginendmodulemodule div(ext_clk_25m,ext_rst_n,mclk);inputinputoutputalways (posedge ext_clk_25m or negedge ext_rst_n)beginelse beginendendmodulemodule counter_24(ext_clk_25m,mclk,ext_rst_n,en_24s,en_cnt,times_24s,led);inputinputinputinput
6、inputext_clk_25mmclkext_rst_nen_24sen_cntoutput reg 15:0 times_24s;/led 指狀態(tài)assign led =(times_24s=16h0000);reg24:0 cnt;/ 存放計(jì)數(shù)器的值parameter TIME= 25d2500_0000;always (posedge ext_clk_25m or negedge ext_rst_n)beginif(!ext_rst_n)begincnt =25d0;endelse if(cnt =TIME-1b1)begincnt =1b0;end/計(jì)數(shù)器模塊位(99)always(
7、posedge ext_clk_25m or negedge ext_rst_n)beginif(!ext_rst_n)begintimes_24s7:4 =times_24s7:4;else if(cnt%25d25_0000=0)beginif(times_24s7:4,times_24s3:0=8h00)beginif(times_24s15:12,times_24s11:8=8h00)begintimes_24s7:4 =times_24s7:4;times_24s7:4 =times_24s7:4;always(posedge ext_clk_25m or negedge ext_r
8、st_n)beginif(!ext_rst_n)begintimes_24s3:0 =4h9;endelse if(en_24s=1b0)begintimes_24s3:0 =4h9;endelse if(en_cnt=1b1)begintimes_24s3:0 =times_24s3:0;endelse if(cnt%25d25_0000=0)beginif(times_24s7:4,times_24s3:0=8h00) beginif(times_24s15:12,times_24s11:8=8h00)begintimes_24s3:0 =4h0;endelse begintimes_24
9、s3:0 =4h9;endendelse if(times_24s3:0=4h0)begintimes_24s3:0 =4h9;endelse begintimes_24s3:0 =times_24s3:0-1b1;endendelse begintimes_24s3:0 =times_24s3:0;endtimes_24s15:12 =times_24s15:12;else if(times_24s15:12,times_24s11:8=8h00)beginelse if(times_24s11:8=4h0)begintimes_24s15:12 =times_24s15:12;else i
10、f(times_24s15:12,times_24s11:8=8h00) beginelse if(times_24s11:8=4h0)begintimes_24s11:8 =4h9;endelse begintimes_24s11:8 =times_24s11:8-1b1;endendendmoduleinputinputinputinputinputext_clk_25mmclkext_rst_nen_24s;/ 復(fù)位信號(hào);/24s 使能位en_cnt;/ 計(jì)數(shù)器停使能位output reg15:0times_12m;/15-12 分位 11-8 分低位 7-4秒位 3-0秒低位outpu
11、t led ;/led 指狀態(tài)assign led =(times_12m=16h0000);else if(en_cnt=1b1)begintimes_12m15:12 =times_12m15:12;endelse if(times_12m7:4,times_12m3:0=8h00) beginif(times_12m11:8=4h0)begintimes_12m15:12 =times_12m15:12;times_12m15:12 =times_12m15:12;else if(times_12m7:4,times_12m3:0=8h00) begintimes_12m11:8 =4h
12、9;endelse begintimes_12m11:8 =times_12m11:8-1b1;endendelse begintimes_12m11:8 =times_12m11:8;endend/計(jì)數(shù)器模塊位秒計(jì)時(shí)always(posedge mclk or negedge ext_rst_n)beginif(!ext_rst_n)begintimes_12m7:4 =4h5;endelse if(en_24s=1b1)begintimes_12m7:4 =4h5;endelse if(en_cnt=1b1)begintimes_12m7:4 =times_12m7:4;endelse i
13、f(times_12m7:4,times_12m3:0=8h00)beginif(times_12m15:12,times_12m11:8=8h00)begintimes_12m7:4 =4h0;endelse begintimes_12m7:4 =4h5;times_12m7:4 =times_12m7:4-1b1;times_12m7:4 =times_12m7:4;times_12m3:0 =times_12m3:0;else if(times_12m7:4,times_12m3:0=8h00) begintimes_12m3:0 =times_12m3:0-1b1;endmodulei
14、nputinputinputinputinputinputinputext_clk_25m ;/ 時(shí)鐘信號(hào)ext_rst_n ;/ 復(fù)位信號(hào)key_entrkey_righen_sore;/2 分;/3 分;/ 積分使能位;/15-8 7-0 分別為兩個(gè)隊(duì)的分?jǐn)?shù);/按鍵抖動(dòng)判斷邏輯wire key; /所有的按鍵相與的結(jié)果,于按鍵觸發(fā)判斷reg3:0keyr ; /key的緩沖寄存器assign key =key_down & key_entr&key_left&key_righ;always(posedge ext_clk_25m or negedge ext_rst_n)beginif(!
15、ext_rst_n)beginkeyr =4b1111;endelse beginkeyr =keyr2:0,key;endendwire key_neg;wire key_pos;assign key_neg=keyr2 &keyr 3;/ 有按鍵被按下assign key_pos=keyr2 &keyr 3;/有按鍵被釋放/定時(shí)器計(jì)數(shù)邏輯,于對按鍵的消抖的判斷reg 19:0 cnt;always(posedge ext_clk_25m or negedge ext_rst_n)beginif(!ext_rst_n)beginreg3:0key_value_c;always(posedge
16、 ext_clk_25m or negedge ext_rst_n)beginwire 3:0key_press =key_value_n & key_value_c;reg sore_f;always(posedge ext_clk_25m or negedge ext_rst_n)beginif(ext_rst_n=1b0)beginsore_f=1b0;endelse if(en_sore=1b0)beginsore_f=1b0;endelse if(key_press3=1b1)beginsore_f=sore_f;endelse beginsore_f=sore_f;endend/l
17、ed指模塊always(posedge ext_clk_25m or negedge ext_rst_n)beginif(ext_rst_n=1b0)beginled=2b11;endelse if(en_sore=1b0)beginled=led;endelse if(sore_f=1b0)beginled=2b10;endelse beginled=2b01;/第隊(duì)分assign sore15:12=sore_1/10;assign sore11:8=sore_1%10;always(posedge ext_clk_25m or negedge ext_rst_n)beginif(ext_
18、rst_n=1b0)beginsore_1=8h00;sore_1=sore_1;sore_1=sore_1;/第隊(duì)分always(posedge ext_clk_25m or negedge ext_rst_n)beginelse if(en_sore=1b0)beginsore_2=sore_2;endelse if(sore_2=8d99)beginsore_2=8h00;endelse if(key_press0=1b1&sore_f=1b1)beginsore_2=sore_2+1b1;endelse if(key_press1=1b1&sore_f=1b1)beginsore_2=
19、sore_2+2b10;endelse if(key_press2=1b1&sore_f=1b1)beginsore_2=sore_2+2b11;endendendmodulemodule seg( ext_clk_25m,ext_rst_n,times_24s,times_12m,times_sore,en_24s,en_seg,en_sore,dtube_cs_n,dtube_data);inputinputext_rst_n;/ 復(fù)位信號(hào)inputinputinputen_24sen_segen_sore;/ 積分使能端output 3:0 dtube_cs_n ;/ 段選數(shù)據(jù)位outp
20、ut 6:0 dtube_data ;/ 位選數(shù)據(jù)位; 3:0 display_num ;/ 當(dāng)前顯數(shù)據(jù)16:0 div_cnt ;/ 延時(shí)計(jì)數(shù)器計(jì)數(shù)位always (posedge ext_clk_25m or negedge ext_rst_n)beginalways (posedge ext_clk_25m or negedge ext_rst_n)beginif(en_24s=1b1)begindisplay_num = times_24s3:0;endelse if(en_sore=1b1)begindisplay_num = times_sore3:0;endelse begindisplay_num 17d20000)&(div_cnt 17d40000)beginif(en_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 報(bào)廢食品銷售合同
- 舞蹈表演培訓(xùn)課程
- 山西省2024八年級(jí)物理上冊第二章聲現(xiàn)象第2節(jié)聲音的特性課件新版新人教版
- 河北省唐山市部分學(xué)校2024-2025學(xué)年高一上學(xué)期11月期中聯(lián)考化學(xué)試卷(含答案)
- 《麻紡織品中木質(zhì)素含量的測定 硫酸溶解法》
- 鋼業(yè)生產(chǎn)安全防范
- 福建省漳州第一中學(xué)2024-2025學(xué)年七年級(jí)上學(xué)期11月期中歷史試題
- 企業(yè)植樹節(jié)活動(dòng)方案
- 城市燃?xì)庀嚓P(guān)行業(yè)投資方案范本
- 老年體位性低血壓的護(hù)理
- 腎上腺皮質(zhì)激素類藥ppt課件.ppt
- 可研勘察設(shè)計(jì)費(fèi)計(jì)費(fèi)標(biāo)準(zhǔn)
- 刮泥機(jī)出廠檢測調(diào)試報(bào)告
- 工業(yè)管道基礎(chǔ)知識(shí)PPT課件
- 運(yùn)動(dòng)處方知識(shí)點(diǎn)
- 某企業(yè)員工違規(guī)處理登記表(doc 2頁)
- 生物地理學(xué)熱帶生物群
- 小學(xué)數(shù)學(xué)科教師家長會(huì)優(yōu)秀PPT完整版
- 養(yǎng)殖恒溫室設(shè)計(jì)方案
- 腦出血大病歷.doc
- 人教版小學(xué)語文一年級(jí)生字表(打印版)
評論
0/150
提交評論