filter_20ms.v

来自「nios 嵌入式系统基础教程配套实验 定制基于AVALON总线的用户外设实验」· Verilog 代码 · 共 32 行

V
32
字号
module filter_20ms(clk,in,out);
input  clk;
input  in;
output out;

reg[19:0] cnt;
reg		  out_r;
always @(posedge clk)
begin
	if(in == 1'h1)     //一旦出现高电平即复位计数器
	begin
	    cnt <= 20'h0; //清0计数器
	    out_r <= 1'h1;//输出置1
	end
	else              //低电平开始计数
	begin
		if(cnt >= 20'd960000) //CLK=48M,约200us 
		begin
//		cnt <= 20'd960001;   //计数满后保持
		out_r <= 1'h0;     //低电平宽度大于200us时输出低电平
		end
		else            //低电平宽度小于200us时输出高电平
		begin
			cnt <= cnt + 20'h1;//计数器累加
			out_r <= 1'h1;     //
		end
	end
end

assign out = out_r;
endmodule

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?