当前位置:   article > 正文

verilog实现pwm呼吸灯_呼吸灯verilog代码

呼吸灯verilog代码

verilog实现pwm呼吸灯

一、简介

呼吸灯是指灯光在微电脑的控制之下完成由亮到暗的逐渐变化,感觉好像是人在呼吸。其广泛应用于手机之上,并成为各大品牌新款手机的卖点之一,起到一个通知提醒的作用。今天我们就用开发板实现一个呼吸灯。

二、代码设计

module pwm(
    input wire clk,
    input wire rst_n,

    output wire led
);
parameter COUNT1 = 6'd50;
parameter COUNT2 = 10'd1000;
parameter COUNT3 = 10'd1000;
reg[5:0] cnt1;
reg[9:0] cnt2;
reg[9:0] cnt3;
always @(posedge clk or negedge rst_n) begin
	if(~rst_n) begin
		cnt1 <=6'd0;
	end 
	else if(cnt1 == COUNT1 - 1)begin
		cnt1 <= 6'd0;
	end
	else begin
		cnt1 <= cnt1 + 1;
	end
end

always @(posedge clk or negedge rst_n) begin
	if(~rst_n) begin
		cnt2 <= 10'd0;
	end 
	else if(cnt1 == COUNT1 - 1)begin
		if(cnt2 == COUNT2 - 1)
			cnt2 <= 10'd0;
		else begin
			cnt2 <= cnt2 + 1;
		end
	end
	else begin
		cnt2 <= cnt2;	
	end
end

always @(posedge clk or negedge rst_n) begin
	if(~rst_n) begin
		cnt3 <= 10'd0;
	end 
	else if(cnt2 == COUNT2 - 1 && cnt1 == COUNT1 - 1)begin
		if(cnt3 == COUNT3 - 1)
			cnt3 <= 10'd0;
		else begin
			cnt3 <= cnt3 + 1;
		end
	end
	else begin
		cnt3 <= cnt3;	
	end
end

assign led = cnt3>cnt2?1:0;

endmodule
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59

三、仿真代码编写

module pwm_tb();
reg clk;
reg rst_n;

wire led;

parameter SYS_CLK = 20;
parameter TIME_US = 5;
parameter TIME_MS = 10;
parameter TIME_S = 10;

always #(SYS_CLK/2) clk = ~clk;

initial begin
	clk<=1'b0;
	rst_n<=1'b0;
	#(SYS_CLK*2);
	rst_n<=1'b1;
	#(2*(TIME_S+1)*(TIME_MS+1)*(TIME_US+1)*SYS_CLK);
	$stop;
end
pwm #(
		.COUNT1(TIME_US),
		.COUNT2(TIME_MS),
		.COUNT3(TIME_S)
	) inst_pwm (
		.clk   (clk),
		.rst_n (rst_n),
		.led   (led)
	);


endmodule
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

四、仿真结果

在这里插入图片描述

五、总结

verilog实现呼吸灯需要三个计数器来控制,达到呼吸灯的效果,总体来说不难

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/791163
推荐阅读
相关标签
  

闽ICP备14008679号