简洁的PWM控制器

59 篇文章 4 订阅
46 篇文章 8 订阅

直接在value里面输入1-98就可以改变占空比,实现PWM调制。改变PRE_DIV参数,可以根据不同clk设置不同的PWM频率。
再次分享。
 

 

module pwm_ctlr#(parameter pre_div=1000)(

input clk,

input [6:0] value,

output reg  pwm

);

reg [20:0] delay_cntr ;always @ (posedge clk )delay_cntr <= (delay_cntr==(pre_div-1))?0:(delay_cntr +1);

reg [6:0] c;

always @(posedge clk) if (delay_cntr==0) c<=(c==99)?0:(c+1);

always @(posedge clk) if (c==0)pwm <=1;else if (c==value) pwm <=0;

endmodule








module test_fans_ctlr(

input clk,

output  pwm,pwm1

);




pwm_ctlr fans_ctlr(

.clk(clk),

.value(50),

.pwm(pwm)

);




assign pwm1=pwm;




endmodule

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值