使用Verilog实现产生任意占空比PWM波的方法说明

电子说

1.3w人已加入

描述

实现思路

实现方法很简单,使用一个计数器一直计数,然后和两个值进行比较,一个值是高电平时间htime,一个值是周期period,在小于htime期间,输出高电平;大于h_time期间,输出低电平,到达周期period时,计数器清零。

端口说明

◆ clk:时钟信号

◆ nreset:复位信号,低电平复位,输出为0

◆ en:使能信号,高电平使能输出,低电平输出为0,

◆ period:PWM的周期,如主时钟96M,产生4MHz的波形,则period = 96/4 = 24

◆ htime:高电平的时间,如主时钟96M,产生4MHz,占空比25%的波形,则htime = 24 * 0.25 = 6

◆ pwm:PWM波输出

源程序

pwm_gen.v

实际应用

可产生任意占空的PWM波,若主时钟为96MHz。

◆ 产生4MHz,50%占空比:period = 24,h_time = 12;

◆ 产生3KHz,50%占空比:period = 32000,h_time = 16000;

◆ 产生宽度10us,间隔100us的脉冲信号:period = 10560,h_time = 960;

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分