EDA技術(shù)Verilog密碼鎖Word版_第1頁(yè)
EDA技術(shù)Verilog密碼鎖Word版_第2頁(yè)
EDA技術(shù)Verilog密碼鎖Word版_第3頁(yè)
EDA技術(shù)Verilog密碼鎖Word版_第4頁(yè)
EDA技術(shù)Verilog密碼鎖Word版_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、傳播優(yōu)秀word版文檔 ,希望對(duì)您有幫助,可雙擊去除!電 子 科 技 大 學(xué)實(shí) 驗(yàn) 報(bào) 告學(xué)生姓名:吳成峰 學(xué) 號(hào):2014070906016 指導(dǎo)教師:黃志奇一、實(shí)驗(yàn)室名稱(chēng): 主樓c2-514二、實(shí)驗(yàn)項(xiàng)目名稱(chēng):密碼鎖三、實(shí)驗(yàn)原理:利用fpga開(kāi)發(fā)班上的3個(gè)按鈕開(kāi)關(guān)btn2:0來(lái)輸入4位數(shù)字的密碼。例如,輸入“2-0-1-2”打開(kāi)門(mén)鎖。將用撥位開(kāi)關(guān)sw7:0來(lái)設(shè)置密碼,通過(guò)按鈕開(kāi)關(guān)btn2:0來(lái)輸入密碼。其中,btn0、btn1和btn2分別對(duì)應(yīng)的有效輸入為“00”(十進(jìn)制0)、“01”(十進(jìn)制1)和“10”(十進(jìn)制2),sw7:6、sw5:4、sw3:2和sw1:0 分別對(duì)應(yīng)密碼的1、2、3

2、、4位。用sw7:0設(shè)置密碼的同時(shí),通過(guò)7段數(shù)碼管復(fù)用電路,將其顯示到7段數(shù)碼管上。注意:需將8位輸入擴(kuò)展成16位,即,x15:0=2b00,sw7:6, 2b00,sw5:4, 2b00,sw3:2, 2b00,sw1:0輸入4位數(shù)字后,才能知道所輸入的密碼是否正確。如果密碼是正確的,led1亮起;如果密碼錯(cuò)誤,led0將亮起。傳播優(yōu)秀word版文檔 ,希望對(duì)您有幫助,可雙擊去除!圖1給出了設(shè)計(jì)的頂層模塊。當(dāng)按下btn0、btn1、btn2中任何一個(gè)按鈕時(shí),將會(huì)產(chǎn)生一個(gè)時(shí)鐘脈沖。當(dāng)分別按下按鈕btn0、btn1、btn2時(shí),鎖模塊對(duì)應(yīng)的2位輸入bn1:0為“00”、“01”和“10”。輸入的

3、密碼與撥位開(kāi)關(guān)上設(shè)置的密碼相比較,產(chǎn)生圖2所示的狀態(tài)轉(zhuǎn)移圖。注意:即使密碼輸入錯(cuò)誤,也必須完成完整的4位密碼輸入,才能進(jìn)入“fail”狀態(tài)e4。圖1. 門(mén)鎖電路的頂層模塊傳播優(yōu)秀word版文檔 ,希望對(duì)您有幫助,可雙擊去除!圖2. 門(mén)鎖電路的狀態(tài)轉(zhuǎn)移圖四、實(shí)驗(yàn)?zāi)康模菏煜だ胔dl代碼輸入方式進(jìn)行組合邏輯電路的設(shè)計(jì)和仿真的流程,掌握verilog語(yǔ)言的基本語(yǔ)法。并通過(guò)一個(gè)密碼鎖的設(shè)計(jì)把握利用eda軟件(xilinx ise 10.1)進(jìn)行hdl代碼輸入方式的電子線路設(shè)計(jì)與仿真的詳細(xì)流程,熟悉摩爾狀態(tài)機(jī)。五、實(shí)驗(yàn)內(nèi)容:1) 利用hdl代碼輸入方式在xilinx ise 10.1平臺(tái)上實(shí)現(xiàn)一個(gè)密碼鎖

4、設(shè)計(jì),可以設(shè)定密碼并顯示,輸入密碼以解鎖;2) 設(shè)計(jì)密碼鎖的頂層模塊,使用模塊實(shí)例語(yǔ)句連接前面所設(shè)計(jì)的密碼鎖模塊;3) 生成比特流文件下載到開(kāi)發(fā)板上進(jìn)行驗(yàn)證。六、實(shí)驗(yàn)器材(設(shè)備、元器件):傳播優(yōu)秀word版文檔 ,希望對(duì)您有幫助,可雙擊去除!1) 計(jì)算機(jī)(安裝xilinx ise 10.1軟件平臺(tái));2) basys2 fpga開(kāi)發(fā)板一套(帶usb-miniusb下載線)。七、實(shí)驗(yàn)步驟:1、在xilinx ise 10.1平臺(tái)中,新建一個(gè)工程lock。我們選用的basys2 fpga開(kāi)發(fā)板采用的是spartan3e xa3s100e芯片和cpg132封裝,設(shè)置好器件屬性,如圖3所示。圖3. 設(shè)

5、置器件屬性2、在工程管理區(qū)任意位置單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“new source”命令,彈出新建源代碼對(duì)話框,這里我們選擇“verilog module”類(lèi)型,輸入verilog文件名“l(fā)ock”。ise會(huì)自動(dòng)創(chuàng)建一個(gè)verilog的模板,并在源代碼編輯區(qū)打開(kāi),接下來(lái)的工作就是將代碼編寫(xiě)完整。完整代碼如下:傳播優(yōu)秀word版文檔 ,希望對(duì)您有幫助,可雙擊去除!module lock( input clk, input clr, input 7:0 sw, input 1:0 bn, output reg pass, output reg fail ); reg 3:0 pre_s,

6、nex_s; parameter s0=4'b0000,s1=4'b0001,s2=4'b0010,s3=4'b0011,s4=4'b0100, e1=4'b0101,e2=4'b0110,e3=4'b0111,e4=4'b1000; /state registers always(posedge clk or posedge clr)beginif(clr=1)pre_s<=s0;elsepre_s<=nex_s;end /c1 always(*)begincase(pre_s)s0:if(bn=sw7:6)

7、nex_s<=s1;elsenex_s<=e1;s1:if(bn=sw5:4)nex_s<=s2;elsenex_s<=e2;s2:if(bn=sw3:2)nex_s<=s3;elsenex_s<=e3;s3:if(bn=sw1:0)nex_s<=s4;elsenex_s<=e4;s4:if(bn=sw7:6)nex_s<=s1;elsenex_s<=e1;e1:nex_s<=e2;e2:nex_s<=e3;e3:nex_s<=e4;e4:if(bn=sw7:6)nex_s<=s1;elsenex_s<=

8、e1;default:nex_s<=s0;endcaseend /c2 always(*)beginif(pre_s=s4)pass=1;elsepass=0;if(pre_s=e4)傳播優(yōu)秀word版文檔 ,希望對(duì)您有幫助,可雙擊去除!fail=1;elsefail=0;endendmodule3、建立分頻模塊“clkdiv”,過(guò)程如上,代碼如下:module clkdiv(input mclk,input clr,output clk190 ); reg 24:0 q; always(posedge mclk or posedge clr)beginif(clr=1)q<=0;

9、elseq<=q+1;endassign clk190=q17;/190hzendmodule4、建立時(shí)鐘脈沖模塊“clock_pulse”,代碼如下:module clock_pulse( input inp, input cclk, input clr, output outp ); reg delay1; reg delay2; reg delay3; always(posedge clr or posedge cclk)beginif(clr=1)begindelay1<=0;delay2<=0;delay3<=0;endelsebegindelay1<=

10、inp;delay2<=delay1;delay3<=delay2;endendassign outp=delay1&delay2&delay3;endmodule5、建立七段數(shù)碼管復(fù)用模塊“hex7seg”,代碼如下:module hex7seg(input 15:0 x,input clk,input clr,output reg 6:0 a_to_g,output reg 3:0 an,output dp);wire 1:0 s;傳播優(yōu)秀word版文檔 ,希望對(duì)您有幫助,可雙擊去除!reg 3:0 digit;wire 3:0 aen;reg 19:0 clk

11、div;assign dp=1;assign s=clkdiv19:18;assign aen3=1;assign aen2=1;assign aen1=1;assign aen0=1;/四位四選一always(*)case(s)0:digit=x3:0;1:digit=x7:4;2:digit=x11:8;3:digit=x15:12;default:digit=x3:0;endcase/數(shù)碼管顯示always(*)case(digit)0:a_to_g=7'b0000001;1:a_to_g=7'b1001111;2:a_to_g=7'b0010010;3:a_to

12、_g=7'b0000110;4:a_to_g=7'b1001100;5:a_to_g=7'b0100100;6:a_to_g=7'b0100000;7:a_to_g=7'b0001111;8:a_to_g=7'b0000000;9:a_to_g=7'b0000100;'ha:a_to_g=7'b0001000;'hb:a_to_g=7'b1100000;'hc:a_to_g=7'b0110001;'hd:a_to_g=7'b1000010;'he:a_to_g=7&#

13、39;b0110000;'hf:a_to_g=7'b0111000;default:a_to_g=7'b0000001;endcase/digit selectalways(*)begin an=4'b1111;if(aens=1) ans=0;end/時(shí)鐘分頻器always(posedge clk or posedge clr)begin if(clr=1) clkdiv<=0; else clkdiv<=clkdiv+1;endendmodule6、頂層模塊lock_top設(shè)計(jì)。代碼如下:module lock_top( input mclk,傳

14、播優(yōu)秀word版文檔 ,希望對(duì)您有幫助,可雙擊去除! input 7:0 sw, input 3:0 btn, output 1:0 led, output 6:0 seg, output 3:0 an, output dp );wire clr,clk190,clkp,btn012;wire 1:0 bn;wire 15:0 x;assign x=2'b00,sw7:6,2'b00,sw5:4,2'b00,sw3:2,2'b00,sw1:0;assign clr=btn3;assign btn012=btn0|btn1|btn2;assign bn1=btn2

15、;assign bn0=btn1;clkdiv u1 (.mclk(mclk),.clr(clr),.clk190(clk190);clock_pulse u2 (.inp(btn012),.cclk(clk190),.clr(clr),.outp(clkp);lock u3 (.clk(clkp),.clr(clr),.sw(sw),.bn(bn),.pass(led1),.fail(led0);hex7seg u4 (.x(x),.clk(mclk),.clr(btn3),.a_to_g(seg),.an(an),.dp(dp);endmodule 7、將工程編譯、綜合與實(shí)現(xiàn)。在工程管理區(qū)

16、的“source for”中選取“implementation”選項(xiàng),然后在進(jìn)程管理區(qū)雙擊“synthesize-xst”進(jìn)行綜合,如圖4所示。傳播優(yōu)秀word版文檔 ,希望對(duì)您有幫助,可雙擊去除!圖4. 綜合進(jìn)程與源程序結(jié)構(gòu)綜合完成以后是實(shí)現(xiàn),實(shí)現(xiàn)主要分為三個(gè)步驟:翻譯邏輯網(wǎng)表、映射到器件單元和布局布線,如圖4所示。注意的是,在實(shí)現(xiàn)前還必須為模塊中的輸入/輸出信號(hào)添加引腳約束,即添加ucf文件。開(kāi)發(fā)板basys2的ucf文件可以在其網(wǎng)站上上下載,當(dāng)然也可以自己編輯ucf文件。實(shí)驗(yàn)所用的ucf文件如圖5所示。傳播優(yōu)秀word版文檔 ,希望對(duì)您有幫助,可雙擊去除!圖5. basys2開(kāi)發(fā)板所需的

17、ucf文件6、器件配置。首先生成可以下載到硬件中的二進(jìn)制比特文件。雙擊圖10中的“generate programming file”的選線,ise就會(huì)為設(shè)計(jì)生成相應(yīng)的二進(jìn)制比特文件。basys2開(kāi)發(fā)板提供了非常方便的jtag配置方案,使用usb-miniusb線纜結(jié)合digilent adept軟件實(shí)現(xiàn)fpga的配置,配置界面如圖6所示。這里我們對(duì)fpga進(jìn)行配置,配置成功狀態(tài)欄會(huì)顯示“programming successful”信息,如圖6所示。然后可在器件上驗(yàn)證設(shè)計(jì)。傳播優(yōu)秀word版文檔 ,希望對(duì)您有幫助,可雙擊去除!圖6. digilent adept 界面與配置八、實(shí)驗(yàn)數(shù)據(jù)及結(jié)果分析:圖7.設(shè)定密碼為2012傳播優(yōu)秀word版文檔 ,希望對(duì)您有幫助,可雙擊去除!圖8.輸入密碼0000,led0亮,輸入錯(cuò)誤圖8.輸入密碼

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論