籃球記分牌verilog設(shè)計_第1頁
籃球記分牌verilog設(shè)計_第2頁
籃球記分牌verilog設(shè)計_第3頁
籃球記分牌verilog設(shè)計_第4頁
籃球記分牌verilog設(shè)計_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)字邏輯設(shè)計及應(yīng)用課程設(shè)計報告姓名:精品文檔學(xué)號:選課號:79設(shè)計題號:23.設(shè)計題目籃球比賽數(shù)字計分牌.設(shè)計要求1 .分別記錄兩隊得分情況;2 .進(jìn)球得分加2分,罰球進(jìn)球得分加 1分;3 .糾正錯判得分減 2分或1分;4 .分別用三個數(shù)碼管顯示器記錄兩隊的得分情況。三.設(shè)計過程(一) 設(shè)計方案1 .模塊設(shè)計題目中要用三個數(shù)碼管來記錄兩隊的得分情況,本文采用輸出為8421bcd碼,外接譯碼器和數(shù)碼管的方式來實現(xiàn)。先設(shè)計一個帶有進(jìn)位(co)和借位(ci )輸出的模塊pad,輸出端(numD輸出4位 8421bcd碼外接譯碼器和數(shù)碼管,pad模塊還帶有加一輸入端(a1),加二輸入端(a2), 減一

2、輸入端(d1),減二輸入端(d2)。輸入端與開關(guān)相接,操作者按下開關(guān)即給該端口一 個脈沖信號,各輸入端口由上升沿觸發(fā)。如果操作者同時按下多個端口,輸出端口將保持原來的信號不變。pad模塊功能圖見圖1-1。1歡在下載精品文檔num 播出MZIbcdR加 減迸位輸出借位輸出7歡迎下載 。輸輸輸輸入 入入入圖1-1 pad模塊輸入輸出端口及功能然后將三個相同的pad模塊進(jìn)行級聯(lián),構(gòu)造為新的模塊numberpad,從而得到帶有三個數(shù)碼管的籃球記分牌。甲乙兩隊都將分別使用這個記分牌。級聯(lián)圖見圖1-2。數(shù)碼管|師器J I I Inumlco數(shù)碼警Ullinl里里III I piimZ數(shù)碼管lllllll|

3、 譯碼器 |III l'um3pad(何)al di a2 d2coci pad (十位)coci pad (百位)“0" "0"圖 1-2 pad 模塊級聯(lián)圖2 . 模塊內(nèi)部的算法流程每個模塊有四個輸入端口 a1,a2,d1,d2 來進(jìn)行觸發(fā),觸發(fā)事件太多,因此構(gòu)造rem=a1|a2|d1|d2 作為新的觸發(fā)信號。因此,只要a1,a2,d1,d2 中任意一個按鍵被按下,將會發(fā)出一個脈沖, rem 也就會產(chǎn)生一個脈沖。但是可能出現(xiàn)多個按鍵同時按下的情況,這樣會產(chǎn)生沖突。所以在always 語句塊中,進(jìn)行判斷,看是否 a1,a2,d1,d2 中只有一個處于高

4、電平,若同時處于高電平,則輸出維持原來的值不變。判斷完端口 a1,a2,d1,d2 中哪一個輸入了以后,就要進(jìn)行加1 ,加2,減1 ,減 2 的操作。加1分為以下情況:(1)若num已經(jīng)計數(shù)到9即1001,再加1則num應(yīng)變?yōu)?000,進(jìn) 位端co輸出1; (2)若num不為9,則直接加1, co輸出0。加2分為以下情況:(1)若num已經(jīng)計數(shù)到8即1000,再加2則num應(yīng)變?yōu)?000,進(jìn) 位端co輸出1; (2) num已經(jīng)計數(shù)到9即1001。再加2則num應(yīng)變?yōu)?001,進(jìn)位端co輸出 1; (3)若num不為8或9,則直接加2, co輸出0/。減1分為以下情況:(1)若num此時為0,

5、再減1則num應(yīng)變?yōu)?即1001 ,借位端ci 輸出1; (2)若num不為0,則直接減1, ci輸出0。減2分為以下情況:(1)若num此時為0,再減2則num應(yīng)變?yōu)?即1000,借位端ci 輸出1; (2)若num此時為1,再減2則num應(yīng)變?yōu)?即1001,借位端ci輸出1;若 num不為0或1,則直接減2, ci輸出0算法流程圖見圖 1-3/blb2 /計其rem = al|32|dl|2a Iwaysidreg觸發(fā)圖1-3算法流程圖(二)Verilog 程序(注:在quatus2中不能編寫中文注釋,這里的注釋為后期編寫)將pad級聯(lián)成新的模塊 numberpad,其中num1,num2

6、,num3分別輸出個十百位的 8421bcd碼 module numberpad(a1,a2,d1,d2,num1,num2,num3);output 3:0 num1,num2,num3;input a1,a2,d1,d2; / a1 為加 1 端口, a2 為加 2 端口, d1 為減 1 端口, d2 為減 2端口wire co1,co2,co3,ci1,ci2,ci3;pad(a1,a2,d1,d2,num1,co1,ci1); / 將三個 pad 級聯(lián)pad(co1,0,ci1,0,num2,co2,ci2);pad(co2,0,ci2,0,num3,co3,ci3);endmodu

7、le/ pad 模塊,輸出為 4 為 8421bcd 碼,由 a1,a2,d1,d2 來實現(xiàn)加減1、 2,有進(jìn)位和借位端口輸出 4 位 8421bcd 碼進(jìn)位信號 , ci is 借位信號a1 為加 1 端口, a2 為加 2 端口, d1 為減 1 端口, d2 為減 2 端module pad(a1,a2,d1,d2,num,co,ci);output reg 3:0 num; / output reg co,ci; /co input a1,a2,d1,d2; / 口wire rem;initialnum<=4'b0000;assign rem=a1|a2|d1|d2;al

8、ways (posedge rem)beginif(a1&&!a2&&!d1&&!d2) /beginif(num=4'b1001)beginnum<=4'b0000;co<=1'b1;endelsebeginnum<=num+4'b0001;co<=1'b0;endendelse if(a2&&!a1&&!d1&&!d2) / beginif(num=4'b1000)beginnum<=4'b0000;co<

9、;=1'b1;endelse if(num=4'b1001)beginnum<=4'b0001;co<=1'b1;endelsebeginnum<=num+4'b0010;co<=1'b0;endendelse if(d1&&!a1&&!a2&&!d2) /beginif(num=4'b0000)beginnum<=4'b1001;ci<=1'b1;endelsebeginnum<=num-4'b0001;ci<=1&#

10、39;b0;endendelse if(d2&&!a1&&!a2&&!d1) /beginif(num=4'b0001)beginnum<=4'b1001;ci<=1'b1;僅 a1 輸入脈沖時加1 ,必要時進(jìn)位僅 a2 輸入脈沖時加2,必要時進(jìn)位必要時進(jìn)位僅 d1 輸入脈沖時減1,必要時借位必要時借位僅 d2 輸入脈沖時減2,必要時借位必要時借位endelse if(num=4'b0000)beginnum<=4'b1000;ci<=1'b1;endelsebeginnum

11、<=num-4'b0010;ci<=1'b0;endendelse /多個端口同時輸入,輸出保持原來的值beginnum<=num;co<=1'b0;ci<=1'b0;endendendmodule(三)仿真結(jié)果1 .驗證加1、加2、減1、減2端口正常,個位到十位進(jìn)位正常當(dāng)輸入端分別輸入加1、加2、減1、減2信號時,輸出了相應(yīng)的結(jié)果。 18ns時,執(zhí)行 加1操作,個位num1由1001 (即9)變成了 0,同時向十位進(jìn)位,十位 num2變成了 0001。 31ns時又有一進(jìn)位,十位 num2變成了 0010 (即2)。(見圖3-1

12、)圖3-1仿真圖像2 .驗證十位向百位進(jìn)位正常由圖3-2可得,213ns時已計數(shù)到199,即個位num1為1001,十位num2為1001,百 位num3為0001。此時輸入了加 2的信號,輸出變成了 201,即個位num1變?yōu)?001,十位 num2變?yōu)?000,百位num3變?yōu)?010。由此驗證了十位向百位進(jìn)位正常。精品文檔圖3-2 仿真圖像二3 .驗證多個端口同時輸入時,保持原值不變從219ns開始到230秒都有多個端口同時輸入,由圖 3-3可以觀察到,輸出端口的值 并未發(fā)生改變。圖3-3 仿真圖像三四、設(shè)計結(jié)論(一)設(shè)計結(jié)果分析由以上的仿真圖像可知,各端口工作正常,通過給 al、a2、di、d2端口輸入脈沖,可以 使輸出分別進(jìn)行加 1、加2、減1、減2的操作,且個位到十位、十位到百位進(jìn)位正常,輸 出為8421bcd碼。當(dāng)多個端口同時輸入時,輸出將保持原值,避免了沖突。(二)設(shè)計中遇到的問題由于 a1、 a2、 d1、 d2 端口相互獨立,剛開始設(shè)計時將它們都作為觸發(fā)端口放在 always后面,發(fā)現(xiàn)調(diào)試總是有

溫馨提示

  • 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

提交評論