青島農(nóng)業(yè)大學(xué)電子設(shè)計自動化及專用集成電路課程設(shè)計報告_第1頁
青島農(nóng)業(yè)大學(xué)電子設(shè)計自動化及專用集成電路課程設(shè)計報告_第2頁
青島農(nóng)業(yè)大學(xué)電子設(shè)計自動化及專用集成電路課程設(shè)計報告_第3頁
青島農(nóng)業(yè)大學(xué)電子設(shè)計自動化及專用集成電路課程設(shè)計報告_第4頁
青島農(nóng)業(yè)大學(xué)電子設(shè)計自動化及專用集成電路課程設(shè)計報告_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、青 島 農(nóng) 業(yè) 大 學(xué)理學(xué)與信息科學(xué)學(xué)院電子設(shè)計自動化及專用集成電路課程設(shè)計報告 設(shè) 計 題 目 一、設(shè)計一個二人搶答器 二、密碼鎖 學(xué)生專業(yè)班級 學(xué)生姓名(學(xué)號) 指 導(dǎo) 教 師 完 成 時 間 實(shí) 習(xí)(設(shè)計)地點(diǎn) 信息樓121 年 11 月 1 日一、課程設(shè)計目的和任務(wù) 課程設(shè)計目的:本次課程設(shè)計是在學(xué)生學(xué)習(xí)完數(shù)字電路、模擬電路、電子設(shè)計自動化的相關(guān)課程之后進(jìn)行的。通過對數(shù)字集成電路或模擬集成電路的模擬與仿真等,熟練使用相關(guān)軟件設(shè)計具有較強(qiáng)功能的電路,提高實(shí)際動手,為將來設(shè)計大規(guī)模集成電路打下基礎(chǔ)。課程設(shè)計任務(wù):一、設(shè)計一個二人搶答器。要求:(1) 兩人搶答,先搶有效,用發(fā)光二極管顯示是否

2、搶到答題權(quán)。(2) 每人兩位計分顯示,打錯不加分,答對可加10、20、30分。(3) 每題結(jié)束后,裁判按復(fù)位,重新?lián)尨稹#?) 累積加分,裁判可隨時清除。二、密碼鎖設(shè)計四位十進(jìn)制密碼鎖,輸入密碼正確,綠燈亮,開鎖;不正確,紅燈亮,不能開鎖。密碼可由用戶自行設(shè)置。二、分析與設(shè)計1、設(shè)計任務(wù)分析(1)二人搶答器用verilog硬件描述語言設(shè)計搶答器,實(shí)現(xiàn):1、二人通過按鍵搶答,最先按下按鍵的人搶答成功,此后其他人搶答無效。2、每次只有一人可獲得搶答資格,一次搶答完后主持人通過復(fù)位按鍵復(fù)位,選手再從新?lián)尨稹?、有從新開始游戲按鍵,游戲從新開始時每位選手初始分為零分,答對可選擇加10分、20分,30分

3、,最高九十分。4、選手搶答成功時其對應(yīng)的分?jǐn)?shù)顯示。(2)密碼鎖1、第一個數(shù)字控制鍵用來進(jìn)行密碼的輸入2、第二個按鍵控制數(shù)字位數(shù)的移動及調(diào)用密碼判斷程序。當(dāng)確認(rèn)后如果顯示數(shù)據(jù)與預(yù)置密碼相同,則led 亮;如不相等,則無反應(yīng)。按下復(fù)位鍵,計數(shù)等均復(fù)位2、設(shè)計方案論證詳細(xì)設(shè)計(1)搶答器的主要利用d觸發(fā)器的反饋,當(dāng)檢測到第一個上升沿時將按鍵(未按下時接低電平)接入的與門鎖住,以保證與門只有一個上升沿輸出,從而實(shí)現(xiàn)“最先按下按鍵的人搶答成功,此后其他人搶答無效”。在與門輸出上升沿的同時檢測按鍵,以確定是哪位選手搶答,用寄存器存下?lián)尨疬x手的信息,最后確定哪個led燈亮以及那位選手對應(yīng)的分?jǐn)?shù)閃爍。將各模塊

4、代碼寫好并測試后,在主模塊中調(diào)用并分配引腳,引腳分配好后,從新編譯、下載就可實(shí)驗(yàn)了。分別驗(yàn)證上述的各種功能,看是否達(dá)到預(yù)期的效果。(2)根據(jù)密碼輸入信號控制i/0 口的輸出,第一個按鍵控制數(shù)字的遞加,第二個按鍵控制數(shù)字位數(shù)的移動及調(diào)用密碼判斷程序。當(dāng)確認(rèn)后如果顯示數(shù)據(jù)與預(yù)置密碼相同,則led 亮;如不相等,則無反應(yīng)。按下復(fù)位鍵,計數(shù)等均復(fù)位。系統(tǒng)流程如下:3、詳細(xì)設(shè)計(1)二人搶答器。頂層模塊部分在在quartusii下的仿真原理圖如下所示:搶答部分的仿真圖:加分模塊部分(對應(yīng)snatch模塊)在quartusii下的仿真原理圖如下所示:數(shù)碼管顯示模塊部分(對應(yīng)snatch模塊)在quartu

5、sii下的仿真原理圖如下所示:(2)密碼鎖密碼鎖模塊部分(對應(yīng)snatch模塊)在quartusii下的仿真原理圖如下所示:4、源代碼分析(1)二人搶答器代碼module top(reset,key,score,clr,led,opin);/頂層模塊部分input reset;/開始搶答按鈕input1:0 key;/雙人搶答按鍵input2:0 score;/加分按鈕input clr;/清零按鈕output1:0 led;/顯示燈output31:0 opin;/數(shù)碼管引腳控制wire1:0 m;wire7:0 q;snatch snatch(reset,key,led,m);/調(diào)用搶答模

6、塊store store(score,clr,m,q);/調(diào)用加分模塊deled deled(q,opin);/調(diào)用顯示模塊endmodulemodule snatch(reset,key,led,m);/搶答模塊部分input reset;input1:0 key;output1:0 led;output1:0 m;reg q;reg1:0 s;wire out=key0|key1;wire clk=(!q)&out;assign m=s;always(posedge clk or posedge reset)/判斷是否清零if(reset)beginq=1b0;endelse q=1b1;

7、always(posedge clk)/當(dāng)開始搶答時,判斷是否有人搶答,并將搶答的選手記錄下來case(key)2b01:s=2b01;2b10:s=2b10;default:s=2b?;endcaseassign led=s;/對應(yīng)選手的燈亮endmodulemodule store(score,clr,s,q);/加分模塊input clr;input2:0 score;input1:0 s;output7:0 q;reg7:0 q;wire clk=score0|score1|score2;/判斷是否進(jìn)行加分always(posedge clr or posedge clk)/判斷是清零

8、還是加分beginif(clr) q=8h00;elsebegincase(s)/判斷那位選手加分2b01:begin if(q3:04h9)begin if(score=3b001)q3:0=q3:0+4b0001;/選手一加10分else if(score=3b010)q3:0=q3:0+4b0010; /選手一加20分else q3:0=q3:0+4b0011; /選手一加30分end end2b10:begin if(q7:44h9)begin if(score=2b001)q7:4=q7:4+4b0001; /選手二加10分else if(score=2b010)q7:4=q7:4+

9、4b0010; /選手二加20分else q7:4=q7:4+4b0011; /選手二加30分end endendcaseendendendmodulemodule deled(pin,opin);/數(shù)碼管顯示模塊input7:0 pin;output31:0 opin;reg31:0 opin;always(pin0 or pin1 or pin2 or pin3 or pin4 or pin5 or pin6 or pin7)/判斷是否有加分顯示部分begincase(pin3:0)/判斷一號選手的分?jǐn)?shù)4b0000:opin15:0=16h3f3f;/顯示零分4b0001:opin15:0

10、=16h063f; /顯示十分4b0010:opin15:0=16h5b3f; /顯示二十分4b0011:opin15:0=16h4f3f; /顯示三十分4b0100:opin15:0=16h663f; /顯示四十分4b0101:opin15:0=16h6d3f; /顯示五十分4b0110:opin15:0=16h7d3f; /顯示六十分4b0111:opin15:0=16h073f; /顯示七十分4b1000:opin15:0=16h7f3f; /顯示八十分4b1001:opin15:0=16h6f3f; /顯示九十分endcasecase(pin7:4)/判斷二號選手的分?jǐn)?shù)4b0000:o

11、pin31:16=16h3f3f; 4b0001:opin31:16=16h063f;4b0010:opin31:16=16h5b3f;4b0011:opin31:16=16h4f3f;4b0100:opin31:16=16h663f;4b0101:opin31:16=16h6d3f;4b0110:opin31:16=16h7d3f;4b0111:opin31:16=16h073f;4b1000:opin31:16=16h7f3f;4b1001:opin31:16=16h6f3f;endcaseendendmodule(2)密碼鎖module keypress(sysclk,reset,key

12、in,data_out,led,yn);input sysclk; /系統(tǒng)時鐘reg clk; /分頻1reg clk2; /分頻2input reset; /復(fù)位input 2:0 keyin; /三位輸入output 7:0 data_out; /八位數(shù)碼管輸入reg 7:0 data_out;output yn; /判斷密碼正確與否的led燈reg yn;reg 2:0 keyaa 2:0 ; /輸入緩沖,防抖reg 25:0 count; /分頻1計數(shù)?reg 25:0 count2; /分頻2計數(shù)reg 3:0 count3; /分頻2計數(shù)2reg 7:0 counta; /數(shù)碼管顯

13、示延遲計數(shù)reg 3:0 key; /輸入計數(shù)器reg 3:0 num; /數(shù)字計算reg 3:0 numsat3:0; /數(shù)字輸出reg 3:0 movx; /led燈選擇計數(shù)和判斷密碼reg 3:0 ledtem; /led燈選擇緩沖output 3:0 led; /led燈選擇reg 3:0 led; reg enterx; /未定義(本來用作可以自定密碼的)/分頻1always(posedge sysclk or negedge reset) if (!reset) begin count = 26b0; end else if (count=120000)begincount= 26

14、b0;clk = clk;end elsebegin count=count+26b1;end/分頻2always(posedge sysclk or negedge reset) if (!reset) begin count2 = 26b0; count3 = 4b0000; end else if (count2=1200000) begin count2 = 26b0; count3 = count3+ 4b0001;if (count3=4b0011)beginclk2= clk2;count3 = 4b0000;end endelsebegin count2=count2+26b1

15、;end/輸入always(posedge clk or negedge reset) if (!reset)beginkeyaa0 =3b111;keyaa1 =3b111;keyaa2 =3b111;endelsebeginkeyaa0 = keyin;keyaa1 = keyaa0;end/判斷按鍵并且比較,賦值,主程序always(posedge clk2 or negedge reset)beginif (!reset)beginmovx= 4b0000;enterx= 1b0;numsat0 = 4b0;numsat0 = 4b0;numsat0 = 4b0;numsat0 = 4

16、b0;yn = 1b1;endelse if (keyin=keyaa1)beginif(keyin=3b110)key=4b0001;else if (keyin=3b101)key=4b0010;else if (keyin=3b011)key=4b0011;/按鍵1,數(shù)值遞增,賦值if (key=4b0001)begin #20; num = num+4b1;if(movx=4b0000)numsat0 = num;else if (movx=4b0001)numsat1 = num;else if (movx=4b0010)numsat2 = num;else if (movx=4b0

17、011)numsat3 = num; if (num=4b1010)num = 4b0;key =4b0011;end/按鍵2,移位if (key=4b0010)begin #30 movx =movx+4b0001; if(movx=4b0100) begin if(numsat0=1) if(numsat1=2) if(numsat2=3) if(numsat3=4)yn =1b0;elseyn =1b1;elseyn =1b1;elseyn =1b1;elseyn =1b1;end if (movx=4b0101)movx = 4b0;key=4b0011;end/按鍵3,未定義if(k

18、ey=4b0011)beginenterx =1b0;endendend/根據(jù)數(shù)字,輸出到數(shù)碼管always(posedge clk or negedge reset)beginif (!reset)begindata_out = 8b0011_1111;endelsebegincounta= counta+8b1;if(counta=8b0000_0010)beginled =4b1110;/高電平有效case(numsat0)4b0000: data_out=8b0011_1111;/04b0001: data_out=8b0000_0110;/14b0010: data_out=8b01

19、01_1011;/24b0011: data_out=8b0100_1111;/34b0100: data_out=8b0110_0110;/44b0101: data_out=8b0110_1101;/54b0110: data_out=8b0111_1101;/64b0111: data_out=8b0000_0111;/74b1000: data_out=8b0111_1111;/84b1001: data_out=8b0110_1111;/9default: data_out=8b0011_1111;/0endcaseendelse if (counta=8b0000_0100)beg

20、inled =4b1101;case(numsat1)4b0000: data_out=8b0011_1111;/04b0001: data_out=8b0000_0110;/14b0010: data_out=8b0101_1011;/24b0011: data_out=8b0100_1111;/34b0100: data_out=8b0110_0110;/44b0101: data_out=8b0110_1101;/54b0110: data_out=8b0111_1101;/64b0111: data_out=8b0000_0111;/74b1000: data_out=8b0111_1

21、111;/84b1001: data_out=8b0110_1111;/9default: data_out=8b0011_1111;/0endcaseendelse if (counta=8b0000_0110)beginled =4b1011;case(numsat2)4b0000: data_out=8b0011_1111;/04b0001: data_out=8b0000_0110;/14b0010: data_out=8b0101_1011;/24b0011: data_out=8b0100_1111;/34b0100: data_out=8b0110_0110;/44b0101:

22、data_out=8b0110_1101;/54b0110: data_out=8b0111_1101;/64b0111: data_out=8b0000_0111;/74b1000: data_out=8b0111_1111;/84b1001: data_out=8b0110_1111;/9default: data_out=8b0011_1111;/0endcaseendelse if (counta=8b0000_1000)beginled =4b0111;case(numsat3)4b0000: data_out=8b0011_1111;/04b0001: data_out=8b0000_0110;/14b0010: data_out=8b0101_1011;/24b0011: data_out=8b0100_1111;/34b0100: data_out=8b0110_0110;/44b0101: data_out=8b0110_1101;/54b0110: data_out=8b0111_1101;/64b0111: data_out=8b0000_0111;/74b1000: data_out=8b0111_1111;/84b1001: data_out=8b0110_1111;/9default: data

溫馨提示

  • 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

提交評論