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

多功能頻率計(jì)周期、脈寬、占空比、頻率測(cè)量verilog代碼

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

1-23100R23U1318.doc

共1個(gè)文件

名稱:多功能頻率計(jì)周期、脈寬、占空比、頻率測(cè)量verilog(代碼在文末付費(fèi)下載)

軟件:Quartus

語言:Verilog

代碼功能:

多功能頻率計(jì),可測(cè)量信號(hào)的周期、脈沖寬度、占空比、頻率,語言為verilog,quartus軟件設(shè)計(jì)仿真。

演示視頻:

部分代碼展示

module?signal_detect(
input?clk_in,//輸入100M基準(zhǔn)時(shí)鐘
input?reset_p,//復(fù)位信號(hào)
input?signal_in,//待測(cè)頻率輸入
output?[31:0]total_frequency,//輸出頻率
output?[31:0]total_cycle,//輸出周期
output?[31:0]pulse_width,//輸出脈寬
output?[31:0]duty_cycle//輸出占空比
);
frequency_detect?i_frequency_detect(
.?clk_in(clk_in),//輸入100M基準(zhǔn)時(shí)鐘
.?reset_p(reset_p),//復(fù)位信號(hào)
.?signal_in(signal_in),//待測(cè)頻率輸入
.?total_frequency(total_frequency),//輸出頻率
.?total_cycle(total_cycle)//輸出周期
);
pulse_detect?i_pulse_detect(
.?clk_in(clk_in),//輸入100M基準(zhǔn)時(shí)鐘
.?reset_p(reset_p),//復(fù)位信號(hào)
.?signal_in(signal_in),//待測(cè)頻率輸入
.?pulse_width(pulse_width),//輸出脈寬
.?duty_cycle(duty_cycle)//輸出占空比
);
endmodule

module?frequency_detect(
input?clk_in,//輸入100M基準(zhǔn)時(shí)鐘
input?reset_p,//復(fù)位信號(hào)
input?signal_in,//待測(cè)頻率輸入
output?[31:0]total_frequency,//輸出頻率
output?[31:0]total_cycle//輸出周期
);
//parameter?count_1s=32'd100_000_000;//1s所需計(jì)數(shù)周期數(shù)(仿真時(shí)用下一句)
parameter?count_1s=32'd1000;//仿真時(shí)用該句,實(shí)際應(yīng)為上一句(仿真時(shí)為減小仿真時(shí)間,將閘門開啟時(shí)間減小為10us)


reg?[31:0]?door_1s_cnt=32'd0;//閘門信號(hào)1s開啟一次
always@(posedge?clk_in)
	if(reset_p==1)
		door_1s_cnt<=32'd0;
	else
		if(door_1s_cnt==count_1s)
			door_1s_cnt<=32'd0;
		else
			door_1s_cnt<=door_1s_cnt+32'd1;

reg?door_1s=0;
always@(posedge?clk_in)
	if(door_1s_cnt==count_1s)
		door_1s<=~door_1s;//閘門信號(hào)1s開啟一次

		
reg?[31:0]?CNT1=32'd0;//基準(zhǔn)時(shí)鐘計(jì)數(shù)器
reg?[31:0]?CNT2=32'd0;//待測(cè)頻率計(jì)數(shù)器
reg?[31:0]?CNT1_buf=32'd0;//基準(zhǔn)時(shí)鐘計(jì)數(shù)器寄存器
reg?[31:0]?CNT2_buf=32'd0;//待測(cè)頻率計(jì)數(shù)器寄存器

設(shè)計(jì)文檔(文檔點(diǎn)擊可下載):

1. 工程文件

2. 程序文件

3. 原理圖文件

4. 程序編譯

5. Testbench

6. 仿真圖

6.1整體仿真圖

仿真圖可看出測(cè)得占空比duty_cycle=20%;脈寬pulse_width=200ns,周期total_cycle=1001ns,頻率total_frequency=999000Hz,其中頻率誤差較大(實(shí)際應(yīng)為1000000Hz,誤差999Hz)這是因?yàn)榉抡鏁r(shí)為減小仿真時(shí)間,使用的閘門信號(hào)為10us,閘門實(shí)際應(yīng)為1s,減小了100000倍。

6.2局部細(xì)節(jié),被測(cè)信號(hào)脈寬200ns,測(cè)試結(jié)果為200,正確

6.3局部細(xì)節(jié),被測(cè)信號(hào)周期1000ns,測(cè)試結(jié)果為1001ns,誤差1ns。(誤差與頻率一樣,可以通過增大閘門減小誤差)

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

  • 1-23100R23U1318.doc
    下載

相關(guān)推薦