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

Quartus數(shù)字頻率計(jì)VHDL代碼

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

2-23122G00521205.doc

共1個(gè)文件

名稱:Quartus數(shù)字頻率計(jì)VHDL代碼

軟件:Quartus

語言:VHDL

代碼功能:

課題內(nèi)容及要求:

本課題采用Intl公司(原 Altera) CycloneⅢ系列的EP3C8O或EP3C40型FPGA芯片,利用 LTE-SOPO-02FD型EDA/SOPC實(shí)驗(yàn)開發(fā)平臺(tái)的資源,根據(jù)等精度測頻原理,設(shè)計(jì)一個(gè)數(shù)字頻率計(jì),對脈沖進(jìn)行頻率測量,測得結(jié)果在數(shù)碼管上顯示,并設(shè)計(jì)相應(yīng)的功能按鍵,能夠在所測量的整個(gè)頻段內(nèi)部,均可實(shí)現(xiàn)相同精度的測量,即測量精度與頻率無關(guān)。

按鍵功能包括(1)閘門按鍵(01S,1S和105)、(2)手動(dòng)測量、(3)自動(dòng)測量,在數(shù)碼管上顯示閘門檔位擴(kuò)展內(nèi)容:16*16點(diǎn)陣顯示學(xué)號和姓名。

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

演示視頻:

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

1. 工程文件

2. 程序文件

3. 程序編譯

4. 管腳分配

5. RTL圖

6. Testbench

7. 仿真圖

整體仿真圖

閘門模塊仿真

頻率計(jì)算模塊

顯示模塊

部分代碼展示:

LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
???USE?ieee.std_logic_unsigned.all;
--頻率計(jì)算模塊
ENTITY?frequency_calculate?IS
???PORT?(
??????clk_in???????????:?IN?STD_LOGIC;--輸入50M基準(zhǔn)時(shí)鐘
??????reset_p??????????:?IN?STD_LOGIC;--復(fù)位信號
??????signal_in????????:?IN?STD_LOGIC;--待測頻率輸入
??????doors_open???????:?IN?STD_LOGIC;--閘門
??????total_frequency??:?OUT?INTEGER--輸出頻率
???);
END?frequency_calculate;
ARCHITECTURE?behave?OF?frequency_calculate?IS
???SIGNAL?door_1s?????????:?STD_LOGIC;
???SIGNAL?CNT1????????????:?INTEGER?:=?10;--基準(zhǔn)時(shí)鐘計(jì)數(shù)器
???SIGNAL?CNT2????????????:?INTEGER?:=?10;--待測頻率計(jì)數(shù)器
???SIGNAL?CNT1_buf????????:?INTEGER?:=?10;--基準(zhǔn)時(shí)鐘計(jì)數(shù)器寄存器
???SIGNAL?CNT2_buf????????:?INTEGER?:=?10;--待測頻率計(jì)數(shù)器寄存器
???SIGNAL?CNT1_bufc???????:?INTEGER?:=?10;--基準(zhǔn)時(shí)鐘計(jì)數(shù)器寄存器
???SIGNAL?CNT2_bufc???????:?INTEGER?:=?10;--待測頻率計(jì)數(shù)器寄存器
SIGNAL?total_frequency_int???????:?INTEGER?:=?10;
???SIGNAL?door_1s_buf?????:?STD_LOGIC?:=?'0';
???SIGNAL?door_1s_negedge?:?STD_LOGIC;
BEGIN
????
???PROCESS?(signal_in)
???BEGIN
??????IF?(signal_in'EVENT?AND?signal_in?=?'1')?THEN
?????????door_1s<=?doors_open;--閘門信號同步到signal_in信號下
??????END?IF;
???END?PROCESS;
???PROCESS?(clk_in)
???BEGIN
??????IF?(clk_in'EVENT?AND?clk_in?=?'1')?THEN
?????????IF?(door_1s?=?'1')?THEN
????????????CNT1?<=?CNT1?+?1;--基準(zhǔn)時(shí)鐘計(jì)數(shù)器
?????????ELSE
????????????CNT1?<=?0;
?????????END?IF;
??????END?IF;
???END?PROCESS;
???
???PROCESS?(signal_in)
???BEGIN
??????IF?(signal_in'EVENT?AND?signal_in?=?'1')?THEN
?????????IF?(door_1s?=?'1')?THEN
????????????CNT2?<=?CNT2?+?1;--待測頻率計(jì)數(shù)器
?????????ELSE
????????????CNT2?<=?0;
?????????END?IF;
??????END?IF;
???END?PROCESS;
???
???PROCESS?(clk_in)
???BEGIN
??????IF?(clk_in'EVENT?AND?clk_in?=?'1')?THEN
?????????door_1s_buf?<=?door_1s;
??????END?IF;
???END?PROCESS;
???
???door_1s_negedge?<=?NOT(door_1s)?AND?door_1s_buf;--閘門信號下降沿
???PROCESS?(clk_in)
???BEGIN
??????IF?(clk_in'EVENT?AND?clk_in?=?'1')?THEN
?????????CNT1_buf?<=?CNT1;--基準(zhǔn)頻率計(jì)數(shù)
?????????CNT2_buf?<=?CNT2;--待測頻率計(jì)數(shù)
??????END?IF;
???END?PROCESS;
???
???
???PROCESS?(clk_in)
???BEGIN
??????IF?(clk_in'EVENT?AND?clk_in?=?'1')?THEN
?????????IF?(door_1s_negedge?=?'1')?THEN
????????????CNT1_bufc?<=?CNT1_buf;--基準(zhǔn)頻率計(jì)數(shù)
????????????CNT2_bufc?<=?CNT2_buf;--待測頻率計(jì)數(shù)
?????????END?IF;
??????END?IF;
???END?PROCESS;
???
???--待測頻率計(jì)算=CNT2_buf*5*10^7/CNT1_buf
???total_frequency?<=?(50000000?/?CNT1_bufc)?*?CNT2_bufc;--單位Hz
???
END?behave;

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

  • 2-23122G00521205.doc
    下載

相關(guān)推薦