• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

量程自動(dòng)轉(zhuǎn)換數(shù)字式頻率計(jì)設(shè)計(jì)VHDL代碼Quartus仿真

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

2-25051320003H12.doc

共1個(gè)文件

名稱:量程自動(dòng)轉(zhuǎn)換數(shù)字式頻率計(jì)設(shè)計(jì)VHDL代碼Quartus仿真

軟件:Quartus

語(yǔ)言:VHDL

代碼功能:

設(shè)備及軟件:裝有 Quartus‖軟件完成設(shè)計(jì)數(shù)字系統(tǒng)的計(jì)算機(jī)

目的:

1.了解系統(tǒng)相關(guān)功能電路圖與印劇電路圖的設(shè)計(jì)、繪制,并完成相關(guān)流程的設(shè)計(jì)以及硬件描述語(yǔ)VHDL程序的編寫(xiě),設(shè)計(jì)與綜合和調(diào)試仿真工作。

2.學(xué)會(huì) Quartus‖軟件完成設(shè)計(jì)系統(tǒng)的設(shè)計(jì)與綜合。

3.掌握該數(shù)字電路系統(tǒng)的仿真調(diào)試,分析系統(tǒng)功能實(shí)現(xiàn)的可行性等。

任務(wù):

1.設(shè)計(jì)一個(gè)3位十進(jìn)制數(shù)字式頻率計(jì),其測(cè)量范圍為1MHZ。量程分10HZ,100kHZ和1MHz三檔(最讀數(shù)分別為99kHZ,999Z,999KHZ)。被測(cè)信號(hào)由信號(hào)發(fā)生器提供。

2.要求量程可以根據(jù)被測(cè)量的大小自動(dòng)轉(zhuǎn)換,規(guī)則如下:

1)當(dāng)讀數(shù)大于999時(shí),頻率計(jì)處于超量程狀態(tài)。此時(shí)顯示器發(fā)出溢出指示(最高位顯示F,其余各位不顯示數(shù)字),下一次測(cè)量時(shí),量程自動(dòng)增大一檔。

2)讀數(shù)小于000時(shí),頻率計(jì)處于欠量程狀態(tài)。下次測(cè)量時(shí),量程減小一檔。

3.要求實(shí)現(xiàn)溢出報(bào)警功能。即當(dāng)讀數(shù)大于999KHZ時(shí),頻率計(jì)處于超量程狀態(tài),產(chǎn)生一個(gè)報(bào)警信號(hào),點(diǎn)亮led報(bào)警燈。

4.顯示方式如下:

1)用記憶顯示方式,即計(jì)數(shù)過(guò)程中不顯示數(shù)據(jù),待計(jì)數(shù)過(guò)程結(jié)束后,顯示計(jì)數(shù)結(jié)果,并將此顯示結(jié)果保持到下一次計(jì)數(shù)結(jié)束。顯示時(shí)間應(yīng)不小于1秒。

2)小數(shù)點(diǎn)位置隨量程變更自動(dòng)移位。

提示:

1、脈沖信號(hào)的頻率就是在單位時(shí)間內(nèi)所產(chǎn)生的脈沖個(gè)數(shù),其表達(dá)式為,f為被測(cè)信號(hào)的頻率,N為計(jì)數(shù)器所累計(jì)的脈沖個(gè)數(shù),T為產(chǎn)生N個(gè)脈沖所需的時(shí)間。所以,在1秒時(shí)間內(nèi)計(jì)數(shù)器所記錄的結(jié)果,就是被測(cè)信號(hào)。

2、被測(cè)頻率信號(hào)取自實(shí)驗(yàn)箱品體振蕩器輸出信號(hào),加到主控門(mén)的輸入端。

3、再取昆體振蕩器的另一標(biāo)準(zhǔn)頻率信號(hào),經(jīng)分頻后產(chǎn)生各種時(shí)基脈沖:1ms,10ms,0.1s,1s等,時(shí)基信號(hào)的選擇可以控制,即量程可以改變。

4、時(shí)基信號(hào)經(jīng)控制電路產(chǎn)生閘門(mén)信號(hào)至主控門(mén),只有在閘門(mén)信號(hào)采樣期間內(nèi)(時(shí)基信號(hào)的一個(gè)周期輸入信號(hào)才通過(guò)主控門(mén)。

5、f=NT,改變時(shí)基信號(hào)的周期T,即可得到不同的測(cè)頻范圍。

6、當(dāng)主控門(mén)關(guān)閉時(shí),計(jì)數(shù)器停止計(jì)數(shù),顯示器顯示記錄結(jié)果,此時(shí)控制電路輸出一個(gè)置零信號(hào),將計(jì)數(shù)器和所有觸發(fā)器復(fù)位,為新的一次采樣做好準(zhǔn)備。

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

演示視頻:

設(shè)計(jì)文檔:

1、工程文件

2、程序文件

3、程序編譯

4、RTL圖(頂層框圖)

5、Testbench

6、仿真圖

整體仿真圖

控制模塊

頻率計(jì)算模塊

頻率鎖存模塊

顯示模塊

部分代碼展示:

LIBRARY?ieee;
USE?ieee.std_logic_1164.all;?
LIBRARY?work;
--頻率計(jì)頂層模塊
ENTITY?frequence_test?IS?
PORT
(
reset?:??IN??STD_LOGIC;--復(fù)位
clk?:??IN??STD_LOGIC;--時(shí)鐘
signal_in?:??IN??STD_LOGIC;--輸入頻率
LED_over?:??OUT??STD_LOGIC;--溢出報(bào)警
COM?:??OUT??STD_LOGIC_VECTOR(2?DOWNTO?0);--數(shù)碼管位選
HEX?:??OUT??STD_LOGIC_VECTOR(7?DOWNTO?0)?--數(shù)碼管段選
);
END?frequence_test;
ARCHITECTURE?bdf_type?OF?frequence_test?IS?
--控制模塊
COMPONENT?control
PORT(clk?:?IN?STD_LOGIC;
?door_1s?:?OUT?STD_LOGIC;
?clear?:?OUT?STD_LOGIC;
?latch_en?:?OUT?STD_LOGIC
);
END?COMPONENT;
--頻率計(jì)算
COMPONENT?freq_cnt
PORT(signal_in?:?IN?STD_LOGIC;
?door_1s?:?IN?STD_LOGIC;
?clear?:?IN?STD_LOGIC;
?frequency_data?:?OUT?STD_LOGIC_VECTOR(31?DOWNTO?0)
);
END?COMPONENT;
--頻率鎖存
COMPONENT?latch_freq
PORT(lat?:?IN?STD_LOGIC;
?reset?:?IN?STD_LOGIC;
?frequency_data?:?IN?STD_LOGIC_VECTOR(31?DOWNTO?0);
?frequency_latch?:?OUT?STD_LOGIC_VECTOR(31?DOWNTO?0)
);
END?COMPONENT;
--數(shù)碼管顯示
COMPONENT?display
PORT(clk?:?IN?STD_LOGIC;
?frequency_latch?:?IN?STD_LOGIC_VECTOR(31?DOWNTO?0);
?LED_over?:?OUT?STD_LOGIC;
?COM?:?OUT?STD_LOGIC_VECTOR(2?DOWNTO?0);
?HEX?:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)
);
END?COMPONENT;
SIGNALdoor_1s?:??STD_LOGIC;
SIGNALclear?:??STD_LOGIC;
SIGNALlatch_en?:??STD_LOGIC;
SIGNALfrequency_data?:??STD_LOGIC_VECTOR(31?DOWNTO?0);
SIGNALfrequency_latch?:??STD_LOGIC_VECTOR(31?DOWNTO?0);
BEGIN?
--控制模塊
b2v_inst?:?control
PORT?MAP(clk?=>?clk,
?door_1s?=>?door_1s,
?clear?=>?clear,
?latch_en?=>?latch_en);
--頻率計(jì)算
b2v_inst2?:?freq_cnt
PORT?MAP(signal_in?=>?signal_in,
?door_1s?=>?door_1s,
?clear?=>?clear,
?frequency_data?=>?frequency_data);

點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1520

  • 2-25051320003H12.doc
    下載

相關(guān)推薦