




已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
簡易數(shù)字頻率計-數(shù) 字 系 統(tǒng) 設 計 文 檔 姓名:王淑麗學號:08008103我在本課程中所選擇的課題是用Verilog HDL實現(xiàn)的簡易數(shù)字頻率計。設計的頻率器可以實現(xiàn)在量程范圍內(nèi)根據(jù)被測信號大小自動更換量程,并用數(shù)碼管顯示頻率值,用發(fā)光二級管顯示量程。此次設計的目的要求如下:(1)頻率測量范圍10Hz1MHz(2)量程自動轉(zhuǎn)換,量程分為10KHz (1s) 、100KHz (0.1s) 、1MHz (10ms)三檔。轉(zhuǎn)換規(guī)則如下:當讀數(shù)大于9999時,頻率計處于超量程狀態(tài),下一次測量時,量程自動增大一檔;當讀數(shù)小于0999時,頻率計處于欠量程狀態(tài),下一次測量時,量程自動減小一檔(3)數(shù)據(jù)采用記憶顯示方式,即計數(shù)過程中不顯示數(shù)據(jù),待計數(shù)過程結(jié)束以后,顯示計數(shù)結(jié)果,并將此顯示結(jié)果保持到下一次計數(shù)結(jié)束。(4)用發(fā)光二極管顯示量程。系統(tǒng)模型及實際測試情況設計的頻率計包括三個量程指示燈,四位數(shù)碼管顯示,復位鍵,外接信號接線孔,GND接線孔。其界面如下圖:系統(tǒng)運行結(jié)果:復位鍵播向0,系統(tǒng)不工作,三個量程顯示燈均不亮,四位數(shù)碼管顯示為0000;復位鍵播向1,系統(tǒng)進入正常工作狀態(tài),開始以下測量:當輸入信號為6.34KHZ時,紅色指示燈亮起,數(shù)碼管顯示:6.340。當輸入信號為29.352KHZ時,綠色指示燈亮起,數(shù)碼管顯示:29.35當輸入信號為273.9KHZ時,黃色指示燈亮起,數(shù)碼管顯示:273.9系統(tǒng)原理及設計流程根據(jù)設計要求可以很容易得出程序的流程圖如下:清零顯示計數(shù)鎖存溢出/欠量程更換量程否是由流程圖便可以設計系統(tǒng)了,本系統(tǒng)可根據(jù)功能分為五個功能模塊。分別為:分頻器,計數(shù)器,控制器,鎖存器,顯示模塊。用Verilog HDL編程時也是根據(jù)各個模塊的功能要求,分別編寫每一個子模塊的程序,然后把每個模塊封裝起開。最終的系統(tǒng)就用這五個模塊連接起來即可。每個模塊的作用說明如下:分頻器:此模塊的輸入信號為來自控制器的量程選擇信號、機內(nèi)標準時鐘(2MHZ),復位信號。輸出信號為門限信號,供給計數(shù)器作為計數(shù)技術時間。計數(shù)器: 計數(shù)器以被測信號上升沿為觸發(fā)事件,在門限信號內(nèi)部計數(shù)器累計加1,門限結(jié)束根據(jù)計數(shù)器的計數(shù)值判斷量程是否合適,并將判斷結(jié)果以標志位的形式發(fā)送給控制器,同時將計數(shù)結(jié)果輸出給鎖存器。如果控制器發(fā)出清零信號,將立刻清除標記位??刂破鳎?作為系統(tǒng)核心的控制器,它以被測信號上升沿為觸發(fā)事件,不斷的檢測計數(shù)器發(fā)出的標志位(表征判斷量程是否合適)。如果量程合適,發(fā)出鎖存信號給鎖存器;如果量程偏大或偏小,則根據(jù)具體情況重置輸出量程選擇信號,并發(fā)出清零信號給計數(shù)器。鎖存器: 鎖存器以鎖存信號上升沿為觸發(fā)事件,每響應一次就將輸入端的計數(shù)值與量程選擇輸出給顯示電路。顯示電路:顯示電路以被測信號上升沿為響應事件,每響應一次就根據(jù)所選量程控制相應的指示燈亮起。并根據(jù)計數(shù)值的不同控制四位數(shù)碼管顯示出計數(shù)值即可。以上五個模塊的具體連接情況如下圖:控制器分頻器計數(shù)器鎖存器顯示電路機內(nèi)時鐘被測信號量程是否合適鎖存信號換量程清零程序代碼如下:(1) 分頻模塊:module newclk(clk,rst,k1,k2,outclk);input clk,k1,k2,rst;output outclk;reg outclk;reg 20:0cnt;reg1:0state;always (posedge clk)beginif(!rst) begin cnt=0; outclk=0; endelsecnt=cnt+1;if(state!=k1,k2)/判斷量程是否改變beginif(outclk=0)beginoutclk=outclk;cnt=0;endelse ;endelse ;if(k1,k2=0)/低量程計時1sbeginif(cnt=1999999)/999999begincnt=0;outclk=outclk;endelse ;endelse if(k1,k2=1) /中間量程計時0.1sbeginif(cnt=199999)/99999begincnt=0;outclk=outclk;endelse ;endelse if(k1,k2=2) /高量程計時10msbeginif(cnt=19999)/9999begincnt=0;outclk=outclk;endelse ;endelse outclk=0;state9999;low表示計數(shù)是否=999output 3:0cout0,cout1,cout2,cout3;reg high,low,cout0,cout1,cout2,cout3;reg 14:0counter;reg qdoor;always (posedge fx)beginif(reset=1)/beginif(clr=0)/不清零begincase(qdoor,door)/尋找門限2b00: ;2b01: counter=1;/門限開始2b10: begin /門限結(jié)束if(counter9999) high=1;else high=0;endcout0=counter/1000;cout1=(counter/100)%10;cout2=(counter/10)%10;cout3=counter%10; enddefault:counter=counter+1;/門限內(nèi)部計數(shù)endcaseendelse /清零信號作用beginhigh=1;low=0;counter=2;endendelse /復位信號作用beginhigh=1;low=0;counter=0;endqdoor=door;endendmodule(3)控制器模塊module control(s1,s2,show,high,low,clk,reset,clr);input high,low,clk,reset; output s1,s2,show,clr; /s1,s2是量程選擇信號,show為鎖存信號,clr是清零信號;reg s1,s2,show,clr,temp1;reg 1:0temp;always (posedge clk)beginif(reset=1)begincase(temp) /使清零信號保持2個時鐘周期,以便計數(shù)器響應2b01:beginclr=clr;temp=temp-1;end2b10:temp=temp-1;default ;endcaseif(temp1=1)beginshow=show;temp1=0;endelse ;case(high,low)2b00:beginif(s1,s20) s1,s2=s1,s2-1;else ;clr=clr;temp=2;end2b01:beginshow=show;temp1=1;end2b11:beginif(s1,s22)s1,s2=s1,s2+1;else;clr=clr;temp=2;enddefault;endcaseendelsebegins1=0;s2=1;show=0;clr=0;endendendmodule(4)鎖存器模塊module lock(reset,show,cin0,cin1,cin2,cin3,s1,s2,cout0,cout1,cout2,cout3,k1,k2);input reset,show,s1,s2;input 3:0cin0,cin1,cin2,cin3;output 3:0cout0,cout1,cout2,cout3;output k1,k2;reg cout0,cout1,cout2,cout3,k1,k2;always (posedge show)beginif(reset!=0)cout0,cout1,cout2,cout3,k1,k2=cin0,cin1,cin2,cin3,s1,s2;elsecout0,cout1,cout2,cout3,k1,k2=3; /無效endendmodule(5)顯示電路module show(clk,reset,cin0,cin1,cin2,cin3,k1,k2,cout0,cout1,cout2,cout3,s1,s2,s3,point);input 3:0 cin0,cin1,cin2,cin3;input clk,reset,k1,k2;output6:0 cout0,cout1,cout2,cout3; /七段數(shù)碼管顯示output 3:0 point; /四位小數(shù)點output s1,s2,s3; /量程指示燈reg cout0,cout1,cout2,cout3,s1,s2,s3,point;always (posedge clk)beginif(reset!=0)begincase(cin0)4b0000:cout0= 7b0000001;4b0001:cout0= 7b1001111;4b0010:cout0= 7b0010010;4b0011:cout0= 7b0000110;4b0100:cout0= 7b1001100;4b0101:cout0= 7b0100100;4b0110:cout0= 7b0100000;4b0111:cout0= 7b0001111;4b1000:cout0= 7b0000000;4b1001:cout0= 7b0000100;default:;endcasecase(cin1)4b0000:cout1= 7b0000001;4b0001:cout1= 7b1001111;4b0010:cout1= 7b0010010;4b0011:cout1= 7b0000110;4b0100:cout1= 7b1001100;4b0101:cout1= 7b0100100;4b0110:cout1= 7b0100000;4b0111:cout1= 7b0001111;4b1000:cout1= 7b0000000;4b1001:cout1= 7b0000100;default:;endcasecase(cin2)4b0000:cout2= 7b0000001;4b0001:cout2= 7b1001111;4b0010:cout2= 7b0010010;4b0011:cout2= 7b0000110;4b0100:cout2= 7b1001100;4b0101:cout2= 7b0100100;4b0110:cout2= 7b0100000;4b0111:cout2= 7b0001111;4b1000:cout2= 7b0000000;4b1001:cout2= 7b0000100;default:;endcasecase(cin3)4b0000:cout3= 7b0000001;4b0001:cout3= 7b1001111;4b0010:cout3= 7b0010010;4b0011:cout3= 7b0000110;4b0100:cout3= 7b1001100;4b0101:cout3= 7b0100100;4b0110:cout3= 7b0100000;4b0111:cout3= 7b0001111;4b1000:cout3= 7b0000000;4b1001:cout3= 7b0000100;default:;endcasecase(k1,k2)2b00:begins3=0;s2=0;s1=1;point3=0;point2=1;point1=1;point0=1;end2b01:begins2=1;s1=0;s3=0;point3=1;point2=0;point1=1;point0=1;end2b10:begins3=1; s2=0; s1=0;point3=1;point2=1;point1=0;point0=1;enddefault: ;endcaseendelsebegin cout0,cout1,cout2,cout3=28b0000001000000100000010000001;s1=0; s2=0;s3=0;point3=1;point2=1;point1=1;point0=1;endendendmodule最終設計的頂層文件(gdf格式)如下: 仿真結(jié)果:(1) 當測量信號頻率在高量程時,仿真時序圖如下:從圖中可以看出四個小數(shù)點的變化總是隨著量程的變化而變化。分頻器輸出的門信號最初為200ns,計數(shù)器在200ns內(nèi)計數(shù)值超過9999,于是控制器發(fā)出清零信號,同時更換量程,分頻器輸出20ns的門控信號,計數(shù)器重新計數(shù),計數(shù)值符合要求,控制器發(fā)出鎖存信號,數(shù)碼管顯示計數(shù)值。三個LED燈顯示量程。(2) 當測量信號頻率在中間量程時,仿真時序圖如下:從圖中可以看出四個小數(shù)點的變化總是隨著量程的變化而變化。分頻器輸出的門信號最初為200ns,計數(shù)器在200ns內(nèi)計數(shù),計數(shù)值符合要求,控制器發(fā)出鎖存信號,數(shù)碼管顯示計數(shù)值。三個LED燈顯示量程(3) 當測量信號頻率在低量程時的仿真時序圖如下:從圖中可以看出四個小數(shù)點的變化總是隨著量程的變化而變化。分頻器輸出的門信號最初為20ns,計數(shù)器在20ns內(nèi)計數(shù)值小于999,于是控制器發(fā)出清零信號,同時更換量程,分頻器輸出200ns的門控信號,計數(shù)器重新計數(shù),計數(shù)值符合要求,控制器發(fā)出鎖存信號,數(shù)碼管顯示計數(shù)值。三個LED燈顯示量程。從以上仿真結(jié)果可以看出設計的系統(tǒng)可以實現(xiàn)自動更換量程,并且記憶顯示測量量結(jié)果。滿足設計要求。實驗總結(jié)通過此次試驗,我熟悉了數(shù)字電路的基本設計流程。同時也基本掌握了Verilog HDL語言及其開
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學生寒假學習計劃書范文(20篇)
- 產(chǎn)品的促銷活動方案(3篇)
- 房屋租賃合同(分期)(17篇)
- 年級組年度工作計劃(4篇)
- 勞動合同終止經(jīng)濟補償金協(xié)議(4篇)
- 電力設備承包協(xié)議
- 印刷機維修協(xié)議書
- 員工補償協(xié)議
- 員工平等協(xié)議書范本
- 戀人協(xié)議書范本
- 2025年裝維智企工程師(三級)復習模擬100題及答案
- 國家管網(wǎng)集團西南管道昆明輸油氣分公司突發(fā)環(huán)境事件綜合應急預案
- 停送電培訓課件
- 醫(yī)院培訓課件:《核心制度-護理值班和交接班制度》
- 解題秘籍05 圓的綜合問題(9種題型匯-總+專題訓練)(解析版)-2025年中考數(shù)學重難點突破
- 美學《形象設計》課件
- 江蘇省建筑與裝飾工程計價定額(2014)電子表格版
- 2022年續(xù)聘申請書
- 單片機病房呼叫系統(tǒng)設計
- 交通信號系統(tǒng)紅綠燈安裝專項施工方案
- DB14∕T 2024-2020 出口水果包裝廠管理規(guī)范
評論
0/150
提交評論