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;

若有問題可以評論,我儘量回覆,覺得有用就點個贊~


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章