交换位提升FPGA-PWM计数器的性能

文章:Stefaan Vanheesbeke

对FPGA计数器的规格简单的改变降低了用作DAC的PWM计数器的纹波。

当您需要一些模拟输出并且您的系统中有FPGA时,您可能会选择使用PWM模块和简单的低通滤波器,例如那些数字。FPGA的输出通常是具有固定频率,可变占空比的波形,计数器和数字比较器产生(清单1)。

[低通滤波器 ]
___figure 1:__ *简单的低通滤波器将PWM数字输出从FPGA改变为模拟电压电平。最大波纹发生在50%的占空比。*

假设使能高,计数器计算每个时钟周期,并且PWM输出的频率是时钟频率除以2计数位。您可以通过将其连接到预分频器来使用启用来降低输出频率。由于输出频率是固定的,因此滤波器易于计算,因为您知道最坏情况的涟漪发生在50%的占空比。所需的最大纹波和稳定时间的组合确定过滤器类型和RC(电阻/电容)值。

[FPGA输出]
__Listing 1:__ * FPGA输出。*

对代码进行了很小的变化清单1,可以提高PWM电路的性能。而在原始系统中,最大纹波电流发生在占空比50%,最小纹波电流发生在最小占空比,改进版本显示最大纹波等于标准版本的最小值。诀窍是产生最高的频率,但保持平均占空比恒定。输出脉冲的频率越高,滤波器的工作效果就越好。

[重新加热修改。]
__Listing 2:__ *重新加热修改*

修改到清单1包括将二进制比较器重新加热,并将所有位从左到右交换。MSB(大大有效位)变为LSB(最低有效位),LSB成为MSB,依此类推(清单2.)。您只做一个不需要额外的寄存器或逻辑的重新运行。

[仿真结果]
__Listing 3:__ *仿真结果。*

清单3.显示4位PWM发射的脉冲列车。在清单3.,您看到,在50%的占空比(值= 8,第二列),频率最大,等于时钟频率除以两个。在一些纹波的第一点出现(值= 1,第二列),与传统的PWM系统中完全相同的纹波 - 也就是说,脉冲系是相同的。

清单3显示了4位PWM发射的脉冲列车。在清单3中,您认为,在50%的占空比(值= 8,第二列),频率最大,等于时钟频率除以两个。在一些纹波的第一点出现(值= 1,第二列),与传统的PWM系统中完全相同的纹波 - 也就是说,脉冲系是相同的。

关于作者
Stefaan Vanheesbeke贡献了这篇文章。

本文是由编辑选择重新发布的设计理念。它是第一次在2007年9月13日发表在edn.com。

发表评论