Verilog设计一个秒脉冲发生器(FPGA)

本文提供用Verilog设计秒脉冲发生器的代码,且在Basys2开发板上验证通过,本代码产生的脉冲周期为1s,可通过改变if语句中的m的判定值来改变脉冲周期。

代码如下:

module pps_1(
    input wire clr,//手动复位
	 input wire clk,//外部时钟,所用时钟为50MHz,周期近似为20ns
	 output reg q//脉冲信号
    );
	 
	 reg [25:0] m;//用于时间计数
	 //reg n;
	 //initial n=0;
	 initial m=26'b0;
	 
	 always@(posedge clk or posedge clr)//计数,若m=25000000,q取非
	 begin
	 if(clr==1)
	   m<=0;
	 else if(m==25000001)//可通过更改条件值改变脉冲周期
	   m<=0;
	 else
	   m<=(m+1);	
	 end
	 
	 always@(posedge clk)
	 begin
	   if(m==25000000) //可通过更改条件值改变脉冲周期
	     q<=!q;
	   else
	     q<=q;
	 end
	 

endmodule

约束条件如下:

NET"clr"LOC=P11;
NET"clk"LOC=B8;
NET"q"LOC=M5;

若有问题可以评论,我尽量回复,觉得有用就点个赞~


你可能感兴趣的:(Verilog,Verilog,秒脉冲,FPGA)