设计一个脉冲发生器,已知系统时钟为50MHz,生成脉冲宽度为1ms,脉冲间隔可调,最大间隔为1s

设计一个脉冲发生器,已知系统时钟为50MHz,生成脉冲宽度为1ms,脉冲间隔可调,最大间隔为1s

Design a pulse generator. The system clock is known to be 50MHz, the pulse width is 1ms, the pulse interval is adjustable, and the maximum interval is 1s.

module pulse_gen	
#(
	parameter N = 26,
parameter DUTY = 1000*50,
parameter PERIOD_MAX = 50*1000*1000	
)
(			//分频器,周期为div_param
	input clk,
	input reset_n,
	input [N-1:0] period_param,
	output reg div_out
);
	reg [N-1:0] cnt;
	always @(posedge clk or negedge reset_n)
		if(!reset_n)
			cnt <= 0;
		else if(cnt < period_param-1 && cnt < PERIOD_MAX-1)
			cnt <= cnt + 1'b1;
		else
			cnt <= 0;	
	always @(posedge clk or negedge reset_n)
		if(!reset_n)
			div_out <= 0;
		else if(cnt < DUTY-1)
			div_out <= 1'b1;
		else 
			div_out <= 0;
endmodule 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值