基于verilog的數(shù)字秒表的設(shè)計(jì)實(shí)現(xiàn)_第1頁(yè)
基于verilog的數(shù)字秒表的設(shè)計(jì)實(shí)現(xiàn)_第2頁(yè)
基于verilog的數(shù)字秒表的設(shè)計(jì)實(shí)現(xiàn)_第3頁(yè)
基于verilog的數(shù)字秒表的設(shè)計(jì)實(shí)現(xiàn)_第4頁(yè)
基于verilog的數(shù)字秒表的設(shè)計(jì)實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩9頁(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)質(zhì)文檔-傾情為你奉上 數(shù)字秒表的設(shè)計(jì)實(shí)現(xiàn) 團(tuán)隊(duì)成員:董婷 詹磊 胡鵬 一、測(cè)試要求 1. 有源晶振頻率:24MHZ 2. 測(cè)試計(jì)時(shí)范圍:0000”00 5959”99,顯示的最長(zhǎng)時(shí)間為59分59 秒 3. 數(shù)字秒表的計(jì)時(shí)精度是10ms 4. 顯示工作方式:a、用八位數(shù)碼管顯示讀數(shù) b、用兩個(gè)按鈕開(kāi)關(guān)(一個(gè)按鈕使秒表復(fù)位,另 一個(gè)按鈕控制秒表的啟動(dòng)/暫停)二、設(shè)計(jì)要求 1. 設(shè)計(jì)出符合設(shè)計(jì)要求的解決方案 2. 利用軟件對(duì)各單元電路及整體電路進(jìn)行仿真 3. 在開(kāi)發(fā)板上實(shí)現(xiàn)設(shè)計(jì) 5. 撰寫(xiě)設(shè)計(jì)報(bào)告三、秒表功能鍵 1、power:秒表電源鍵 2、Reset:秒表復(fù)位清零鍵 3、run/stop:

2、秒表啟動(dòng)/停止鍵四、實(shí)驗(yàn)原理 1 .實(shí)驗(yàn)設(shè)計(jì)原理 (1)秒表的邏輯結(jié)構(gòu)較簡(jiǎn)單,它主要由十進(jìn)制計(jì)數(shù)器、六進(jìn)制計(jì)數(shù)器、分頻器、數(shù)據(jù)選擇器、和顯示譯碼器等組成。在整個(gè)秒表中最關(guān)鍵的是如何獲得一個(gè)精確的100HZ計(jì)時(shí)脈沖,除此之外,整個(gè)秒表還需有一個(gè)啟動(dòng)信號(hào)和一個(gè)清零信號(hào),以便秒表能隨意停止、啟動(dòng)以及清零復(fù)位。 (2)秒表有共有8個(gè)輸出顯示,其中6個(gè)顯示輸出數(shù)據(jù),分別為百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6個(gè)計(jì)數(shù)器與之相對(duì)應(yīng);另外兩個(gè)為間隔符,顯示-。8個(gè)計(jì)數(shù)器的輸出全都為BCD碼輸出,這樣便與同顯示譯碼器連接。 (3)可定義一個(gè)24位二進(jìn)制的寄存器hour用于存放8個(gè)計(jì)數(shù)器的輸出,寄

3、存器從高位到低位每連續(xù)4位為一組,分別存放百分之一秒、十分之一秒、間隔符、秒、十秒、間隔符、分、十分。由頻率信號(hào)輸出端輸出頻率為100HZ的時(shí)鐘信號(hào),輸入到百分之一秒模塊的時(shí)鐘端clk,百分之一秒模塊為100進(jìn)制的計(jì)數(shù)器,當(dāng)計(jì)數(shù)到“1001”時(shí),百分之一秒模塊清零,同時(shí)十分之一秒模塊加1;十分之一秒模塊也為100進(jìn)制的計(jì)數(shù)器,當(dāng)計(jì)數(shù)到“1001”時(shí),十分之一秒模塊清零,同時(shí)秒模塊加1;以此類(lèi)推。直到分模塊計(jì)數(shù)到59進(jìn)59。(4)為了消除按鍵消抖問(wèn)題,定義寄存器key-inner來(lái)存儲(chǔ)按鍵key的輸入信號(hào),key-flag作為啟動(dòng)/暫停的轉(zhuǎn)換標(biāo)志,key-inner0出現(xiàn)一個(gè)下降沿時(shí),key-f

4、lag取反一次,當(dāng)key-flag為0時(shí)計(jì)數(shù)器啟動(dòng),1時(shí)計(jì)數(shù)器暫停,當(dāng)key-flag為1同時(shí)key-inner1為9時(shí),計(jì)數(shù)器清零。(5)定義18位寄存器count用于存放分頻和掃描用的計(jì)數(shù)值。24MHZ的時(shí)鐘信號(hào)分頻,得到100HZ的時(shí)鐘信號(hào),而計(jì)數(shù)器已24MHZ的時(shí)鐘信號(hào)218分頻掃描8個(gè)七段譯碼器。 2. 實(shí)驗(yàn)設(shè)計(jì)方案 利用一塊芯片完成除時(shí)鐘源,按鍵和顯示器之外的所有數(shù)字電路功能。所有數(shù)字邏輯功能都在CPLD器件上用Verilog語(yǔ)言實(shí)現(xiàn)。這樣設(shè)計(jì)具有體積小,設(shè)計(jì)周期短,調(diào)試方便,故障率地和修改升級(jí)容易等特點(diǎn),本設(shè)計(jì)采用依次進(jìn)行消抖、分頻、數(shù)碼管動(dòng)態(tài)掃描、顯示(譯碼)和計(jì)數(shù)流水線(xiàn)的設(shè)計(jì)

5、方法。 3. 實(shí)驗(yàn)原理框圖 秒表原理框圖24Mhz100hz計(jì)數(shù) 分頻Reg1:0 顯示掃描五、軟件設(shè)計(jì)與仿真1、秒表計(jì)數(shù)單位與對(duì)應(yīng)輸出信號(hào)hour3:0百分之一秒hour7:4十分之一秒hour11:8秒Hour15:12十秒Hour19:16分hour23:20十分2、秒表總程序:module dapeng(clk_24M,dig,seg,ena,key);input1:0key;input clk_24M;/輸入頻率為24MHZ的時(shí)鐘output2:0dig;/數(shù)碼管位選output7:0seg;/數(shù)碼管段選output ena;/3-8譯碼器使能reg2:0dig,count3b;re

6、g7:0seg;reg3:0disp_dat;/定義顯示數(shù)據(jù)寄存器reg18:0count;/定義計(jì)數(shù)寄存器reg23:0hour;/定義現(xiàn)在時(shí)刻寄存器reg clk100;/24MHZ的時(shí)鐘信號(hào)分頻,得到100HZ的時(shí)鐘信號(hào)reg key_flag;/啟動(dòng)/暫停的切換標(biāo)志reg1:0key_inner;assign ena=0;/按鍵輸入緩存always(posedge count16)beginkey_inner<=key;endalways(negedge key_inner0)beginkey_flag=key_flag;end/0.01秒信號(hào)產(chǎn)生部分,產(chǎn)生100HZ的時(shí)鐘信號(hào)a

7、lways(posedge clk_24M)beginif(count=)beginclk100<=clk100;count<=0;endelsecount<=count+1'b1;end/數(shù)碼管動(dòng)態(tài)掃描顯示部分always(posedge count10)begincount3b=count3b+1;case(count3b)3'd7:disp_dat=hour3:0;3'd6:disp_dat=hour7:4;3'd5:disp_dat=4'ha;3'd4:disp_dat=hour11:8;3'd3:disp_da

8、t=hour15:12;3'd2:disp_dat=4'ha;3'd1:disp_dat=hour19:16;3'd0:disp_dat=hour23:20;default:disp_dat=4'bxxxx;endcasedig=count3b;endalways(disp_dat)begincase(disp_dat)4'h0:seg=8'hc0;4'h1:seg=8'hf9;4'h2:seg=8'ha4;4'h3:seg=8'hb0;4'h4:seg=8'h99;4

9、9;h5:seg=8'h92;4'h6:seg=8'h82;4'h7:seg=8'hf8;4'h8:seg=8'h80;4'h9:seg=8'h90;4'ha:seg=8'hbf;default:seg=8'bxxxxxxxx;endcaseend/計(jì)時(shí)處理部分always(posedge clk100)/計(jì)時(shí)處理beginif(!key_inner1&&key_flag=1)/判斷是否復(fù)位鍵beginhour=24'h0;endelse if(!key_flag)begin

10、hour3:0=hour3:0+1;if(hour3:0=4'ha)beginhour3:0=4'h0;hour7:4=hour7:4+1;if(hour7:4=4'ha)beginhour7:4=4'h0;hour11:8=hour11:8+1;if(hour11:8=4'ha)beginhour11:8=4'h0;hour15:12=hour15:12+1;if(hour15:12=4'h6)beginhour15:12=4'h0;hour19:16=hour19:16+1;if(hour19:16=4'ha)begi

11、nhour19:16=4'h0;hour23:20=hour23:20+1;endif(hour23:20=4'h6)hour23:20=4'h0;endendendendendendendmodule2.1計(jì)數(shù)時(shí)的仿真波形2.2清零時(shí)的仿真波形2.3暫停時(shí)的仿真波形 3. 電路原理圖的生成 4. 電路圖的生成 六硬件實(shí)現(xiàn) 1. 用QUARTUS II軟件對(duì)程序進(jìn)行編譯,并下載到硬件FPGA板子上進(jìn)行硬件實(shí)現(xiàn)。板子上6個(gè)計(jì)數(shù)器與百分之一秒、十分之一秒、秒、十秒、分、十分相對(duì)應(yīng),并且開(kāi)始0000”00 5959”99的計(jì)數(shù),用兩個(gè)數(shù)碼管顯示”-”,用于分與十秒的間隔,十分

12、之一秒與秒的間隔。 2. Run/stop和Reset功能鍵由FPGA板子上的開(kāi)關(guān)欄的key0和key1代替。按一下key0鍵,數(shù)碼管上的時(shí)間停止計(jì)時(shí),然后按下key1鍵,數(shù)碼管上時(shí)間清零復(fù)位為0000”00;接著再按一下key0鍵,數(shù)碼管重新開(kāi)始計(jì)時(shí)。七.關(guān)于老師提問(wèn)1.定義18位寄存器 reg18:0count;用于存放分頻和掃描用的計(jì)數(shù)值。原因是24MHZ的時(shí)鐘信號(hào)分頻,得到100HZ的時(shí)鐘信號(hào),我們程序采用計(jì)數(shù)滿(mǎn)后取反的原理,所以計(jì)數(shù)器最多需計(jì)數(shù),=,故而定義count為reg18:0。 2.按鍵消抖動(dòng)部分always (posedge count16),所給時(shí)鐘上升沿有效,每次上升沿

13、讀取按鍵值賦給寄存器key-inner來(lái)存儲(chǔ)按鍵key的輸入信號(hào),key-flag作為啟動(dòng)/暫停的轉(zhuǎn)換標(biāo)志,key-inner0出現(xiàn)一個(gè)下降沿時(shí),key-flag取反一次,當(dāng)key-flag為0時(shí)計(jì)數(shù)器啟動(dòng),1時(shí)計(jì)數(shù)器暫停。=0.00273s=30ms,所以在計(jì)時(shí)精度為0.01s內(nèi),連續(xù)檢測(cè)4次就是在0ms,30ms,60ms,90ms處都檢測(cè)到0,才算是有按鍵輸入。其他情況均為抖動(dòng)。八心得體會(huì) 經(jīng)過(guò)這次的實(shí)驗(yàn),讓我們對(duì)Verilog HDL語(yǔ)言掌握程度加深了,對(duì)QuartusII這個(gè)軟件的使用也相對(duì)開(kāi)始來(lái)說(shuō)更加熟悉,經(jīng)過(guò)實(shí)驗(yàn),對(duì)課上的知識(shí)有了進(jìn)一步的熟悉。當(dāng)然,試驗(yàn)期間也存在許多問(wèn)題,剛開(kāi)始寫(xiě)程序時(shí)常因Verilog HDL語(yǔ)言的不熟悉,常出現(xiàn)綜合錯(cuò)誤的問(wèn)題,有時(shí)程序雖然編譯沒(méi)有錯(cuò)誤,但下到板子上時(shí),卻顯示有誤,還需要經(jīng)過(guò)多次的調(diào)試。總的來(lái)說(shuō),只要仔細(xì)檢查、并經(jīng)常使用該語(yǔ)言后,就會(huì)在很大程度上避免諸如語(yǔ)法錯(cuò)誤等非邏輯問(wèn)題。在定義寄存器用于計(jì)數(shù)功能時(shí),最好先賦初值。對(duì)于復(fù)雜的邏輯功能的電路實(shí)現(xiàn),可以采用分模塊的方法,以便檢查程序的正誤,而對(duì)于功能較簡(jiǎn)單的電路設(shè)計(jì),只需要一個(gè)模塊,從而避免在模塊間連接

溫馨提示

  • 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)論