在FPGA中PWM信号常用计数器和比较器产生:一个固定的周期,根据计数器比较值改变占空比(分母不变改变分子)。下面是一个使用累加器生成PWM信号的例子,高电平时间不变,通过改变脉冲周期(分子不变改变分母)的方式获得PWM信号。后面的方式代码简洁,并且能节省不少资源。
module
PWM(clk, PWM_in, PWM_out);
input
clk;
input
[7:0] PWM_in;
output
PWM_out;
reg
[8:0] PWM_accumulator;
always
@(
posedge
clk) PWM_accumulator <= PWM_accumulator[7:0] + PWM_in;
assign
PWM_out = PWM_accumulator[8];
endmodule
原文:http://www.fpga4fun.com/PWM_DAC.html
转载于:https://www.cnblogs.com/zhongzhe/archive/2012/03/26/2417485.html
相关资源:stm32的pwm生成程序