VHDL第三次作業(yè)解析_第1頁
VHDL第三次作業(yè)解析_第2頁
VHDL第三次作業(yè)解析_第3頁
VHDL第三次作業(yè)解析_第4頁
VHDL第三次作業(yè)解析_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)字頻率計數(shù)顯示器數(shù)字頻率計數(shù)顯示器一、功能與要求該計數(shù)器的功能:對被測試信號進行計數(shù),在1秒定時結(jié)束后,將計數(shù)器結(jié)果送鎖存,同時將計數(shù)器清零,為下一次采樣測量做好準備。要求如下:1、用VHDL完成12位十進制數(shù)字頻率計的設(shè)計及仿真。2、頻率測量范圍:1HZ10KHZ,分成兩個頻段,即1999HZ,1KHZ10KHZ,用三位數(shù)碼管顯示測量頻率,用LED顯示表示單位,如亮綠燈表示HZ,亮紅燈表示KHZ。3、具有自動校驗和沒理兩種功能,即能用標準時鐘檢驗、測量精度。4、具有超量程度報警功能,在超出目前量程檔的測量范圍時,發(fā)出燈光和音響信號。二、設(shè)計思路圖2.1是頻率計數(shù)器的原理圖。圖2.1頻率計數(shù)

2、器的原理圖1、基本原理:計算單位時間內(nèi)待測信號的脈沖個數(shù),各模塊設(shè)計成process。測量/檢驗選擇模塊(test meas)測頻控制信號發(fā)生器(二分頻)(clk process)計數(shù)器模塊(cnt process)送存選擇、報警模塊(tostore process)鎖存模塊(store process)掃描顯示模塊(cnt3 process,bus process,disp process)2、各模塊功能測量/檢驗選擇  test  meas CP1 select圖2.2測量檢驗選擇如圖2.2為測量/檢驗選擇模塊,該模塊的信號如下:輸入信號:選擇信號selet,被測信號m

3、eas,測試信號test;輸出信號:CP1。當(dāng)selet=0時,為測量狀態(tài),CP1=meas;當(dāng)selet=1時,為檢驗狀態(tài),CP1=test。檢驗與測量共用一個電路,只是被測信號CP1不同而已。圖2.3測頻控制信號發(fā)生順(二分頻)如圖2.3為測頻控制信號發(fā)生器(二分頻),該模塊的信號如下:輸入信號:1HZ時鐘信號;輸出信號:1秒定時信號(周期為2秒)。圖2.4計數(shù)器、送存選擇、報警模塊1、如圖2.4為計數(shù)器、送存選擇、報警模塊,模塊的功能如下:設(shè)置:量程控制開關(guān)K,單位顯示信號Y,當(dāng)K=0時,為1-999HZ量程檔,數(shù)碼管顯示的數(shù)值為被測信號頻率值,unit顯示綠色,即單位為HZ;當(dāng)K=1時

4、,為1KHZ-10KHZ量程檔被測信號頻率值為數(shù)碼管顯示數(shù)值乘1000,unit顯示紅色,即單位為KHZ。2、其中四級十進制計數(shù)模塊(帶進位C)模塊功能如下:輸入信號:RD、CP,用于計數(shù)開始、清零、鎖存輸出信號:Q4-Q1設(shè)置超出量程檔測量范圍示警信號alert。若被測信號頻率小于1KHZ(K=0),計數(shù)器只進行三級十進制計數(shù),最大顯示值999HZ;如果被測信號頻率超過此范圍,示警信號驅(qū)動燈光、揚聲器報警;若被測信號為1KHZ-10KHZ(K=1),計數(shù)器進行四位十進制計數(shù),取高三位顯示,最大顯示值為9.99KHZ,如果被測信號頻率超過此范圍,報警。3、送存選擇、報警電路狀態(tài)表如表1。量程控

5、制計數(shù)器鎖存小數(shù)點位置報警信號KQ04CD3 D2 D1alert001101XX0001Q3 Q2 Q1Q3 Q2 Q1Q3 Q2 Q1Q3 Q2 Q1右第一位右第一位右第一位右第一位0101圖2.5鎖存、掃描顯示模塊圖2.5為鎖存、掃描顯示模塊,該模塊功能如下:鎖存器輸入信號:D3-D1,LD;輸出信號:Q3-Q1,小數(shù)點單位顯示unit。圖2.6掃描顯示電路如圖2.6掃描顯示電路,該模塊包含兩個模塊:七段顯示譯碼器電路(DEC LED)分時總線切換電路(SCAN)。三、原理圖說明Clkscam led(8:1)Clk1hz Ms123(2:1)KMeas alertSel Unittes

6、t圖3.1頻率計顯示原理圖如圖3.1,輸入有掃描時鐘clkscan,分頻時鐘clklhz,單位選擇鍵K,被測信號meas,測試信號test,測試校驗選擇鍵sel。輸出有數(shù)碼管信號led,數(shù)碼管選擇信號ms123,報警信號alert,單位顯示信號unit。四、源代碼說明-實體說明library IEEE;use IEEE.STD LOGIC 1164.ALL;use IEEE.STD LOGIC ARITH.ALL;use IEEE.STD LOGIC UNSIGNED.ALL;entity dig frq is Port(clk1hz : in STD LOGIC; clkscan : in

7、std logic; test : in STD LOGIC; meas : in STD LOGIC; sel : in STD LOGIC; k : in STD LOGIC; alert : out STD LOGIC; unit : out STD LOGIC; ms123 : out STD LOGIC VECTOR(2 downto 1); led : out STD LOGIC VECTOR(8 downto 1);end dig frq;-結(jié)構(gòu)體說明Architecture Behavioral of dig frq is signal cpl:std logic; signa

8、l clk05hz:std logic; signal cp:std logic; signal rd:std logic:=1; signal c:std logic; signal q4,q3,q2,q1:std logic vector(4 downto 1):=”0000” signal load:std logic:=0; signal d3,d2,d1:std logic vector(4 downto 1) :=”0000”; signal data3,data2,data1:std logic vector(4 downto 1) :=”0000”; signal disp:s

9、td logic vector(4 downto 1) :=”0000”; signal ns123 s:STD LOGIC VECTOR(2 downto 1);begin-時鐘電路,1hz信號二分頻產(chǎn)生0.5hz信號,1s高電平,1s低電平 clk process:process(clk1hz) begin if(clk1hzevent and clk1hz=1)then clk05hz<=not clk05hz; end if; end process; -測試、校驗選擇模塊 test meas:process(sel,meas,test) begin if(sel=1)then-

10、sel為1時cpl為測試信號 cpl<=meas; else-sel為0時cpl為校驗信號 cpl<=test; end if; end process; -鎖存的加載信號時load,當(dāng)分頻信號clk05hz上升沿時有效 load<=not clk05hz; cp<=clk05hz and cpl; -計數(shù)清零信號rd,當(dāng)分頻信號clk05hz為0時有效 rd<=clk05hz; -四位bcd計數(shù)電路 cnt process:process(cp,rd) variable q4 s,q3 s,q2 s,q1 s:integer range 0 to 9; vari

11、able c s:integer range 0 to 1; begin if(rd=0)then q4 s:=0; q3 s:=0; q2 s:=0; q1 s:=0; c s:=0; elsif(cpevent and cp=1)then if(q4 s=9 and q3 s=9 and q2 s=9 and q1 s=9 and c s=1)then q4 s:=0; q3 s:=0; q2 s:=0; q1 s:=0; c s:=0; elsif(q4 s=9 and q3 s=9 and q2 s=9 and q1 s=9)then q4 s:=0; q3 s:=0; q2 s:=0

12、; q1 s:=0; c s:=0; elsif(q3 s=9 and q2 s=9 and q1 s=9)then q4 s:= q4 s+1; q3 s:=0; q2 s:=0; q1 s:=0; elsif(q2 s=9 and q1 s=9)then q3 s:= q3 s+1; q2 s:=0; q1 s:=0; elsif(q1 s=9)then q2 s:= q2 s+1; q1 s:=0; elsif q1 s:= q1 s+1; end if; end if; q4<=conv std logic vector(q4 s,4); q3<=conv std logi

13、c vector(q3 s,4); q2<=conv std logic vector(q2 s,4); q1<=conv std logic vector(q1 s,4); if(c s=0)then c<=0; else c<=1; end if; end process; -送鎖存電路 tostore process:process(q4,q3,q2,q1,c,k) begin if(k=0)then-當(dāng)計數(shù)單位選擇k為0時,輸出計數(shù)器的低三位 d3<=q3; d2<=q2; d1<=q1; if(q4>”0000”or c>0)th

14、en-此時,當(dāng)計數(shù)超過三位bcd數(shù)時,報警信號置1 alert<=1; else alert<=0; end if; elsif(k=1)then-當(dāng)計數(shù)單位選擇k為1時,輸出計數(shù)器的高三位 d3<=q4; d2<=q3; d1<=q2; if(c>0)then-此時,當(dāng)計數(shù)超過四位bcd數(shù)時,報警信號置1 alert<=1; else alert<=0; end if; end if;end process;-鎖存電路stroe process:process(load,d1,d2,d3,k)begin if(loadevent and loa

15、d=1)then-加載信號load下降時,鎖存數(shù)據(jù) data3<=d3; data2<=d2; data1<=d1; if(k=0)then-當(dāng)單位選擇鍵k為0時,單位unit置0,顯示綠色 unit<=0; else-當(dāng)單位選擇鍵k為1時,單位unit置1,顯示紅色 unit<=1; end if; end if; end process; -計數(shù)到3的計數(shù)器,產(chǎn)生數(shù)碼管選擇信號 cnt3 process:process(clkscan) variable cnt:integar range 0 to 2:=0; begin if(clkscanevent an

16、d clkscan=1)then if(cnt=2)then cnt:=0; else cnt:=cnt+1; end if; end if; ms123 s<=conv std logic vector(cnt,2); end process; -數(shù)碼管信號選擇電路 bus process:process(data3,data2,data1,clkscan,ms123 s) begin if(clkscanevent and clkscan=1)then case ms123 s is when”00”=>disp<=data2; when”01”=>disp<

17、=data3; when”10”=>disp<=data1; when others=>disp<=data1; end case; end if; end process; ms123<=ms123 s; -四八譯碼電路 disp process:process(disp,k,ms123 s) begin case disp is when”0000”=>led<=”00111111”; when”0001”=>led<=”00000110”; when”0010”=>led<=”01011011”; when”0011”=&

18、gt;led<=”01001111”; when”0100”=>led<=”01100110”; when”0101”=>led<=”01101101”; when”0110”=>led<=”01111101”; when”0111”=>led<=”00000111”; when”1000”=>led<=”01111111”; when”1001”=>led<=”01101111”; when others=>led<=”00111111”; end case; if(ms123 s=”00”and k=0)then led(8)<=1; elsif(ms123 s=”10”and k

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論