verilog 死区编写问题
assignp1=pwm1&cmp1;
assigncmp1=(cnt1>=shiqu_cnt)?1'b1:1'b0;
assign ce1=(pwm1==1'b1)?1'b1:1'b0;
always@(posedge clk)
if(ce1) cnt1<=cnt1+16'd1;
else cnt1<=16'd0;
死区就是在产生的PWM波上加一段死区时间td,这里设置的td=2us,经过testbench测试波行正确。
但我有个问题,就是如果刚开始输入的PWM波高电平时间较短,即占空比小(比死区时间2us还小),那么这个程序就不对了,应该有加一个pwm死区保护最小脉宽程序,这个程序该怎么编写,是不是就是检测一下刚开始输入的PWM波高电平时间如果比死区时间2us小,就直接输出为低电平?
求大神吗帮忙了!如果有pwm死区保护最小脉宽程序,能直接发给我看看吗
奖励3积分