vhdl第三次作業(yè)數(shù)字頻率計_第1頁
vhdl第三次作業(yè)數(shù)字頻率計_第2頁
vhdl第三次作業(yè)數(shù)字頻率計_第3頁
vhdl第三次作業(yè)數(shù)字頻率計_第4頁
vhdl第三次作業(yè)數(shù)字頻率計_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、VHDL第三次作業(yè)數(shù)字頻率計第四次VHDL作業(yè)一、功能與要求:該計數(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、圖2.1頻率計數(shù)器的原理圖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、各模塊功能圖2.2測量校驗選擇如圖2.2為測量/校驗選擇模塊,該模塊的信號如下:輸入信號:選擇信號selet,被測信號meas,測試信號test;輸出信號:CP1。當selet=0時

3、,為測量狀態(tài),CP1=meas;當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,當K=0時,為1999Hz量程檔,數(shù)碼管顯示的數(shù)值為被測信號頻率值,unit顯示綠色,即單位為Hz;當K=1時,為1KHz10KHz量程檔􀂙被測信號頻率值

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

5、鎖存,掃描顯示模塊圖2.5為鎖存、掃描顯示模塊,該模塊功能如下:鎖存器輸入信號:D3D1,LD;輸出信號:Q3Q1 ,小數(shù)點單位顯示unit。圖2.6掃描顯示電路如如2.6掃描顯示電路,該模塊包含兩個模塊:七段顯示譯碼器電路(DEC_LED);分時總線切換電路(SCAN)。三、原理圖說明圖3.1頻率計顯示原理圖如圖3.1,輸入有掃描時鐘clkscan,分頻時鐘clk1hz,單位選擇鍵K,被測信號meas,測試信號test,測試校驗選擇鍵sel。輸出有數(shù)碼管信號led,數(shù)碼管選擇信號ms123,報警信號alert,單位顯示信號unit。四、源代碼說明-實體聲明library IEEE;use I

6、EEE.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 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_LOG

7、IC_VECTOR (2 downto 1); led : out STD_LOGIC_VECTOR (8 downto 1);end dig_frq;-結(jié)構(gòu)體說明architecture Behavioral of dig_frq issignal cp1:std_logic;signal clk05hz:std_logic:='0'signal cp:std_logic;signal rd:std_logic:='1'signal c:std_logic;signal q4,q3,q2,q1:std_logic_vector(4 downto 1):=&qu

8、ot;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:std_logic_vector(4 downto 1):="0000" signal ms123_s:STD_LOGIC_VECTOR (2 downto 1);begin-時鐘電路,1hz信號

9、二分頻產(chǎn)生0.5hz信號,1s高電平,1s低電平clk_process:process(clk1hz) beginif(clk1hz'event and clk1hz='1')thenclk05hz<=not clk05hz;end if;end process;-測試、校驗選擇模塊test_meas:process(sel,meas,test)beginif(sel='1')thensel為1時cp1為測試信號cp1<=meas;elsesel為0時cp1為校驗信號cp1<=test;end if;end process;-鎖存的加載

10、信號load,當分頻信號clk05hz上升沿時有效load<=not clk05hz;cp<=clk05hz and cp1;-計數(shù)清零信號rd,當分頻信號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;variable c_s:integer range 0 to 1;beginif(rd='0')thenq4_s:=0;q3_s:=0;q2_s:=0;q1_s:=0;c_s:=0;els

11、if(cp'event and cp='1')thenif(q4_s=9 and q3_s=9 and q2_s=9 and q1_s=9 and c_s=1)thenq4_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)thenq4_s:=0;q3_s:=0;q2_s:=0;q1_s:=0;c_s:=1;elsif(q3_s=9 and q2_s=9 and q1_s=9)thenq4_s:=q4_s+1;q3_s:=0;q2_s:=0;q1_s:=0;

12、elsif(q2_s=9 and q1_s=9)thenq3_s:=q3_s+1;q2_s:=0;q1_s:=0;elsif(q1_s=9)thenq2_s:=q2_s+1;q1_s:=0;elseq1_s:=q1_s+1;end if;end if;q4<=conv_std_logic_vector(q4_s,4);q3<=conv_std_logic_vector(q3_s,4);q2<=conv_std_logic_vector(q2_s,4);q1<=conv_std_logic_vector(q1_s,4);if(c_s=0)thenc<='0&

13、#39;else c<='1'end if;end process;-送鎖存電路tostore_process:process(q4,q3,q2,q1,c,k)beginif(k='0')then-當計數(shù)單位選擇k為0時,輸出計數(shù)器的低三位d3<=q3;d2<=q2;d1<=q1;if(q4>"0000" or c>'0')then-此時,當計數(shù)超過三位bcd數(shù)時,報警信號置1alert<='1'elsealert<='0'end if;elsif

14、(k='1')then-當計數(shù)單位選擇k為1時,輸出計數(shù)器的高三位d3<=q4;d2<=q3;d1<=q2;if(c>'0')then-此時,當計數(shù)超過四位bcd數(shù)時,報警信號置1alert<='1'else alert<='0'end if;end if;end process;-鎖存電路store_process:process(load,d1,d2,d3,k)beginif(load'event and load='1')then-加載信號load下降沿時,鎖存數(shù)據(jù)

15、data3<=d3;data2<=d2;data1<=d1;if(k='0')then-當單位選擇鍵K為0時,單位unit置0,顯示綠色unit<='0'else-當單位選擇鍵K為1時,單位unit置1,顯示紅色unit<='1'end if;end if;end process;-計數(shù)到3的計數(shù)器,產(chǎn)生數(shù)碼管選擇信號cnt3_process:process(clkscan)variable cnt:integer range 0 to 2:=0;beginif(clkscan'event and clksc

16、an='1')thenif(cnt=2)thencnt:=0;elsecnt:=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)beginif(clkscan'event and clkscan='1')thencase ms123_s iswhen "00"=> disp<=data2;when &

17、quot;01"=> disp<=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)begincase disp iswhen "0000"=>led<="00111111"when "0001"=>led<=

18、"00000110"when "0010"=>led<="01011011"when "0011"=>led<="01001111"when "0100"=>led<="01100110"when "0101"=>led<="01101101"when "0110"=>led<="01111101"when "

19、;0111"=>led<="00000111"when "1000"=>led<="01111111"when "1001"=>led<="01101111"when others=>led<="00111111"end case;if(ms123_s="00" and k='0')thenled(8)<='1'elsif(ms123_s="10" an

溫馨提示

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

評論

0/150

提交評論