名稱:數字頻率計Verilog代碼Quartus??DE1-SoC開發(fā)板
軟件:Quartus
語言:Verilog
代碼功能:
數字頻率計
采用一個標準的基準時鐘,在1s里對被測信號的脈沖數進行計數,即為信號頻率利用等精度測量法可以測量1hz至99999999Hz信號頻率,七段碼管顯示測量值。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在DE1-SoC開發(fā)板驗證,DE1-SoC開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
演示視頻:
設計文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. 程序RTL圖(結構圖)
5. 管腳分配
6. Testbench
7. 仿真圖
整體仿真圖
計數模塊
顯示模塊
閘門信號產生模塊
單位選擇模塊
鎖存模塊
超量程模塊
部分代碼展示:
//頂層模塊 module?frequency_detect( input?clk_in,//輸入50M基準時鐘 input?reset_p,//復位信號,低電平復位 input?[7:0]?SW,//頻率調節(jié)開關 input?signal_in,//待測頻率輸入--GPIO_0_0 output?gear_led,//單位指示燈 output?over_load_led,//超量程指示燈 output?[7:0]HEX0,//數碼管段選 output?[7:0]HEX1,//數碼管段選 output?[7:0]HEX2,//數碼管段選 output?[7:0]HEX3,//數碼管段選 output?[7:0]HEX4,//數碼管段選 output?[7:0]HEX5//數碼管段選 ); wire?doors_open; wire?[31:0]?total_frequency; wire?[31:0]?CNT1_buf;//基準時鐘計數器寄存器 wire?[31:0]?CNT2_buf;//待測頻率計數器寄存器 wire?[31:0]?display_frequency;//顯示數值 wire?clk_out; //分頻模塊,產生自測頻率 clk_div?i_clk_div( .?clk_in(clk_in),//輸入50M基準時鐘 .?SW(SW),//頻率調節(jié)開關 .?clk_out(clk_out)//待測頻率 ); ////分頻模塊,產生閘門信號 div_doors?i_div_doors( .?clk_in(clk_in),//輸入50M基準時鐘 .?reset_p(reset_p),//復位信號 .?signal_in(clk_out), .?doors_open(doors_open)//閘門信號 ); //計數模塊 count_cal?i_count_cal( .?clk_in(clk_in),//輸入50M基準時鐘 .?signal_in(clk_out),//待測頻率輸入 .?doors_open(doors_open), .?CNT1_buf(CNT1_buf),//輸出基準時鐘計數器 .?CNT2_buf(CNT2_buf)//輸出待測頻率計數器 ); //鎖存模塊 latch_buf?i_latch_buf( .?clk_in(clk_in),//輸入50M基準時鐘 .?doors_open(doors_open), .?total_frequency(total_frequency),//輸出頻率 .?CNT1_buf(CNT1_buf),//輸出基準時鐘計數器 .?CNT2_buf(CNT2_buf)//輸出待測頻率計數器 ); //單位選擇模塊 gear_position?i_gear_position( .?clk(clk_in), .?total_frequency(total_frequency),//頻率 .?gear_led(gear_led),//單位指示燈 .?display_frequency(display_frequency)//顯示數值 ); //超量程指示模塊 over_load?i_over_load( .?clk(clk_in), .?total_frequency(total_frequency),//頻率 .?over_load_led(over_load_led)//超量程指示燈 ); //數碼管顯示模塊 display?i_display( .?clk(clk_in), .?display_frequency(display_frequency),//輸出頻率 .?HEX0(HEX0), .?HEX1(HEX1), .?HEX2(HEX2), .?HEX3(HEX3), .?HEX4(HEX4), .?HEX5(HEX5) ); endmodule
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=489