




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、VHDL數(shù)字系統(tǒng)設(shè)計與測試第三次作業(yè)數(shù)字頻率計設(shè)計 一、 設(shè)計功能要求1. 用VHDL完成12位十進制數(shù)字頻率計的設(shè)計及仿真。2. 頻率測量范圍:1Hz10KHz,分成兩個頻段,即1999Hz,1KHz10KHz,用三位數(shù)碼管顯示測量頻率,用LED顯示表示單位,如亮綠燈表示Hz,亮紅燈表示KHz。3. 具有自動校驗和測量兩種功能,即能用標(biāo)準(zhǔn)時鐘校驗、測量精度。4. 具有超量程報警功能,在超出目前量程檔的測量范圍時,發(fā)出燈光和音響信號。二、 設(shè)計思路基本原理:計算單位時間內(nèi)待測信號的脈沖個數(shù)。具體方法是,使用一個頻率穩(wěn)定度高的頻率源作為基準(zhǔn)時鐘,來對比測量其他信號的頻率。單位時間可設(shè)置為大于或小
2、于一秒。閘門時間越長,頻率值越準(zhǔn)確,但閘門時間越長,每次測量頻率的間隔也就越長。閘門時間越短,測量的頻率值刷新越快,但將影響到測量的頻率精度。每次測量時,采用時基信號產(chǎn)生的閘門信號啟動計數(shù)器來對輸入的脈沖信號計數(shù):閘門信號結(jié)束則將計數(shù)結(jié)果送入鎖存器,然后計數(shù)器清零,準(zhǔn)備下次計數(shù)。三、 原理圖說明圖1原理框圖如圖1所示,按照系統(tǒng)功能數(shù)字頻率計分為六個模塊:1測量/校驗選擇模塊(test_meas)2測頻控制信號發(fā)生器(二分頻)(clk_process)3計數(shù)器模塊(cnt_process)4送存選擇、報警模塊(tostore_process)5鎖存模塊(store_process)6掃描顯示模塊
3、(cnt3_process,bus_process, disp_process)另外,還要加上LED七段譯碼模塊。2、各模塊功能圖2測量校驗選擇如圖2為測量/校驗選擇模塊,該模塊的信號如下:輸入信號:選擇信號selet,被測信號meas,測試信號test;輸出信號:CP1。當(dāng)selet=0時,為測量狀態(tài),CP1=meas;當(dāng)selet=1時,為校驗狀態(tài),CP1=test。校驗與測量共用一個電路,只是被測信號CP1不同而已。圖3測頻控制信號發(fā)生器(二分頻)如圖3為測頻控制信號發(fā)生器(二分頻),該模塊的信號如下:輸入信號:1HZ時鐘信號;輸出信號:1秒定時信號(周期為2秒)。圖4計數(shù)器、送存選擇、
4、報警模塊1、如圖4為計數(shù)器、送存選擇、報警模塊,模塊的功能如下:設(shè)置:量程檔控制開關(guān)K,單位顯示信號Y,當(dāng)K=0時,為1999Hz量程檔,數(shù)碼管顯示的數(shù)值為被測信號頻率值,unit顯示綠色,即單位為Hz;當(dāng)K=1時,為1KHz10KHz量程檔被測信號頻率值為數(shù)碼管顯示的數(shù)值乘1000,unit顯示紅色,即單位為KHz。2、其中四級十進制計數(shù)器模塊(帶進位C)模塊功能如下:輸入信號:RD、CP,用于計數(shù)開始、清零、鎖存輸出信號:Q4Q1設(shè)置超出量程檔測量范圍示警信號alert。若被測信號頻率小于1KHz(K=0),則計數(shù)器只進行三級十進制計數(shù),最大顯示值為999.Hz;如果被測信號頻率超過此范圍
5、,示警信號驅(qū)動燈光、揚聲器報警;若被測信號為1KHz10KHz(K=1),計數(shù)器進行四位十進制計數(shù),取高三位顯示,最大顯示值為9.99KHz,如果被測信號頻率超過此范圍,報警。3、送存選擇、報警電路狀態(tài)表如表1。表1送存選擇、報警電路狀態(tài)表圖5鎖存,掃描顯示模塊圖5為鎖存、掃描顯示模塊,該模塊功能如下:鎖存器輸入信號:D3D1,LD;輸出信號:Q3Q1 ,小數(shù)點單位顯示unit。圖6掃描顯示電路如圖6掃描顯示電路,該模塊包含兩個模塊:七段顯示譯碼器電路(DEC_LED);分時總線切換電路(SCAN)。四、 VHDL源代碼說明-實體聲明-library IEEE;use IEEE.STD_LOG
6、IC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity dig_frq is Port ( clk1hz : in STD_LOGIC; -分頻時鐘clk1hz clkscan : in std_logic;-掃描時鐘clkscan test : in STD_LOGIC;-測試信號test meas : in STD_LOGIC;-被測信號meas sel : in STD_LOGIC;-測試校驗選擇鍵sel k : in STD_LOGIC;-單位選擇鍵K alert : out STD
7、_LOGIC;-報警信號alert unit : out STD_LOGIC;-單位顯示信號unit ms123 : out STD_LOGIC_VECTOR (2 downto 1);-數(shù)碼管選擇信號ms123 led : out STD_LOGIC_VECTOR (8 downto 1);-數(shù)碼管信號ledend 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
8、:=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:std_logic_vector(4 downto 1):=0000; signal ms123_s:STD_LOGIC_VECTOR (2 down
9、to 1);begin-時鐘電路,1hz信號二分頻產(chǎn)生0.5hz信號,1s高電平,1s低電平-clk_process:process(clk1hz) beginif(clk1hzevent 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;-鎖存的加載信號load,當(dāng)分頻信號c
10、lk05hz上升沿時有效load=not clk05hz;cp=clk05hz and cp1;-計數(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;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;elsif(cpevent and cp=1)thenif(q4_s=9
11、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;elsif(q2_s=9 and q1_s=9)thenq3_s:=q3_s+1;q2_s:=0;
12、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;else c=1;end if;end process;-送鎖存電路-tostore_process:process(q4,q3,q2,q1,c,k
13、)beginif(k=0)then-當(dāng)計數(shù)單位選擇k為0時,輸出計數(shù)器的低三位d3=q3;d2=q2;d10000 or c0)then-此時,當(dāng)計數(shù)超過三位bcd數(shù)時,報警信號置1alert=1;elsealert=0;end if;elsif(k=1)then-當(dāng)計數(shù)單位選擇k為1時,輸出計數(shù)器的高三位d3=q4;d2=q3;d10)then-此時,當(dāng)計數(shù)超過四位bcd數(shù)時,報警信號置1alert=1;else alert=0;end if;end if;end process;-鎖存電路store_process:process(load,d1,d2,d3,k)beginif(loade
14、vent and load=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:integer range 0 to 2:=0;beginif(clkscanevent and clkscan=1)thenif(c
15、nt=2)thencnt:=0;elsecnt:=cnt+1;end if;end if;ms123_s disp disp disp disp=data1;end case;end if;end process;ms123ledledledledledledledledledledled=00111111;end case;if(ms123_s=00 and k=0)thenled(8)=1;elsif(ms123_s=10 and k=1)thenled(8)=1;else led(8)=0;end if;end process;end Behavioral;五、 代碼說明測量/校驗選擇模
16、:通過選擇信號sel來選擇被測信號meas和test,輸出信號cp1當(dāng)sel=0時,cp1=meas;當(dāng)sel=1時,cp1=test。測頻控制信號發(fā)生器(二分頻)模塊:輸入1HZ時鐘信號,經(jīng)分頻輸出信號為1秒定時信號(周期為2秒)計數(shù)器模塊、送存選擇、報警模塊:在load為高時開始計數(shù),為低時清零,q4q1設(shè)置超出量程檔測量范圍示警信號alert。若被測信號頻率小于1KHz(K=0),則計數(shù)器只進行三級十進制計數(shù),最大顯示值為999.Hz;如果被測信號頻率超過此范圍,示警信號驅(qū)動燈光、揚聲器報警;若被測信號為1KHz10KHz(K=1)。計數(shù)器進行四位十進制計數(shù),取高三位顯示,最大顯示值為9
17、.99KHz,如果被測信號頻率超過此范圍,報警。鎖存器模塊:當(dāng)load為低時,即ld為高時,鎖存d1d3。掃描顯示模塊:在每個時鐘的上升邊將會改變對三個數(shù)碼管的掃描選通。總的輸出為數(shù)碼管選通信號sel(三位),輸出到三個七段數(shù)碼管的控制端。分時選通個、十、百位的數(shù)碼管并將相應(yīng)要顯示的數(shù)據(jù)led(七位)輸出到七段顯示譯碼模塊,由此實現(xiàn)數(shù)碼管的動態(tài)掃描顯示。由于時鐘比計數(shù)頻率快所以感覺三個數(shù)碼管總是亮著的。六、 仿真結(jié)果與說明1. 仿真環(huán)境QuartusII9.0sp2環(huán)境2. 仿真波形(1)二分頻電路及測試校驗選擇電路仿真結(jié)果:說明:clk1hz一個時鐘產(chǎn)生一個clk05hz電平,clk05hz電平高低交替。sel為0時,cp1為測試信號meas,sel為1時,cp1為校驗信號test。當(dāng)clk05hz為1,被計數(shù)信號cp為cp1,當(dāng)clk05hz為0,被計數(shù)信號cp為0;(2) 鎖存及顯示電路仿真結(jié)果:K為1K為0說明:當(dāng)鍵K為1時,對bcd計數(shù)的高三位輸出,當(dāng)計數(shù)未超出9999時,報警信號輸出為0。當(dāng)鍵K為0時,對bcd計數(shù)的低三位鎖存;ms123為0,1,2時分別顯示個位,十位,百位,當(dāng)單位選擇鍵k為1時,單位顯示unit為 1(紅燈),且百位數(shù)據(jù)DB高位dot位為1。實驗總結(jié):這種結(jié)構(gòu)體的編程,做起來比較簡單,但容易讓
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 芒硝礦堆場管理制度
- 英超俱樂部管理制度
- 荊門分級式管理制度
- 財務(wù)會計關(guān)鍵練習(xí)題及答案
- 設(shè)備技術(shù)要求
- 幼兒園安全教育主題家長會課件
- 2025年Android-一線大廠面試總結(jié)
- 期末應(yīng)用題專項訓(xùn)練:三角形(含解析)-2024-2025學(xué)年數(shù)學(xué)四年級下冊人教版
- 建筑施工特種作業(yè)-建筑起重機械司機(物料提升機)真題庫-1
- 入世出世遁世題目及答案
- 2025年自然災(zāi)害預(yù)防與應(yīng)急處理安全培訓(xùn)考試試題匯編
- 土地確權(quán)確權(quán)合同范本
- 食品檢驗員持證上崗培訓(xùn)課件
- 臨床教學(xué)師資培訓(xùn)
- 醫(yī)療器械相關(guān)壓力性損傷預(yù)防
- GB/T 21369-2024火力發(fā)電企業(yè)能源計量器具配備和管理要求
- EHS培訓(xùn)(環(huán)境因素、危險因素識別)
- 2025年全國保安員職業(yè)技能上崗證考試題庫(含答案)
- 妊娠劇吐的心理護理總結(jié)
- 文學(xué)描寫辭典
- 2024年《藥事管理與法規(guī)》期末考試復(fù)習(xí)題庫(含答案)
評論
0/150
提交評論