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

下載本文檔

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

文檔簡(jiǎn)介

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

2、輸入端(d1),減二輸入端(d2)。輸入端與開關(guān)相接,操作者按下開關(guān)即給該端口一 個(gè)脈沖信號(hào),各輸入端口由上升沿觸發(fā)。如果操作者同時(shí)按下多個(gè)端口,輸出端口將保持原來的信號(hào)不變。pad模塊功能圖見圖1-1。1歡在下載精品文檔num 播出MZIbcdR加 減迸位輸出借位輸出7歡迎下載 。輸輸輸輸入 入入入圖1-1 pad模塊輸入輸出端口及功能然后將三個(gè)相同的pad模塊進(jìn)行級(jí)聯(lián),構(gòu)造為新的模塊numberpad,從而得到帶有三個(gè)數(shù)碼管的籃球記分牌。甲乙兩隊(duì)都將分別使用這個(gè)記分牌。級(jí)聯(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 模塊級(jí)聯(lián)圖2 . 模塊內(nèi)部的算法流程每個(gè)模塊有四個(gè)輸入端口 a1,a2,d1,d2 來進(jìn)行觸發(fā),觸發(fā)事件太多,因此構(gòu)造rem=a1|a2|d1|d2 作為新的觸發(fā)信號(hào)。因此,只要a1,a2,d1,d2 中任意一個(gè)按鍵被按下,將會(huì)發(fā)出一個(gè)脈沖, rem 也就會(huì)產(chǎn)生一個(gè)脈沖。但是可能出現(xiàn)多個(gè)按鍵同時(shí)按下的情況,這樣會(huì)產(chǎn)生沖突。所以在always 語(yǔ)句塊中,進(jìn)行判斷,看是否 a1,a2,d1,d2 中只有一個(gè)處于高

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

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

6、,num3分別輸出個(gè)十百位的 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); / 將三個(gè) pad 級(jí)聯(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 來實(shí)現(xiàn)加減1、 2,有進(jìn)位和借位端口輸出 4 位 8421bcd 碼進(jìn)位信號(hào) , ci is 借位信號(hào)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 輸入脈沖時(shí)加1 ,必要時(shí)進(jìn)位僅 a2 輸入脈沖時(shí)加2,必要時(shí)進(jìn)位必要時(shí)進(jìn)位僅 d1 輸入脈沖時(shí)減1,必要時(shí)借位必要時(shí)借位僅 d2 輸入脈沖時(shí)減2,必要時(shí)借位必要時(shí)借位endelse if(num=4'b0000)beginnum<=4'b1000;ci<=1'b1;endelsebeginnum

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論