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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

5、sII下的仿真原理圖如下所示:(2)密碼鎖密碼鎖模塊部分(對(duì)應(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)開始搶答時(shí),判斷是否有人搶答,并將搶答的選手記錄下來(lái)case(key)2b01:s=2b01;2b10:s=2b10;default:s=2b?;endcaseassign led=s;/對(duì)應(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)/判斷一號(hào)選手的分?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)/判斷二號(hào)選手的分?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)時(shí)鐘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計(jì)數(shù)?reg 25:0 count2; /分頻2計(jì)數(shù)reg 3:0 count3; /分頻2計(jì)數(shù)2reg 7:0 countA; /數(shù)碼管顯

13、示延遲計(jì)數(shù)reg 3:0 key; /輸入計(jì)數(shù)器reg 3:0 num; /數(shù)字計(jì)算reg 3:0 numSAT3:0; /數(shù)字輸出reg 3:0 movX; /Led燈選擇計(jì)數(shù)和判斷密碼reg 3:0 LEDtem; /led燈選擇緩沖output 3:0 LED; /led燈選擇reg 3:0 LED; reg enterX; /未定義(本來(lái)用作可以自定密碼的)/分頻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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論