原创 PWM(脉冲宽度调制)控制器

2018-3-19 16:29 2777 19 7 分类: FPGA/CPLD

PWM(脉冲宽度调制)控制器

PWM相信对于大家来说已经不是什么陌生的东西了,初学FPGA的时候,大家都做过呼吸灯,里面用到的思想就是脉冲宽度调制。关于这方面的介绍,大家可以自行百度。

LED为例,改变它的亮度,我们的思想就是改变时钟的占空比。

正常亮度的LED灯的占空比是50%,时钟信号如下:

                                                                                                                       

1 50%占空比

改变时钟占空比为25%,时钟信号如下:

 

2 25%占空比

一个cycle里,高电平的比例变小了,在频率等其他条件不变的情况下,可以认为电压值变小,电流值也变小,假设LED信号低有效,那么小灯的亮度会比之前的亮度增加一半。

从上面我们知道,我们的目的就是改变时钟信号的占空比。以一百分为例。设置两个计数器,cnt_small(较小频率计数)cnt_big(较大频率计数),两个计数器分别从0-99循环计数,注意,较小频率的计数器cnt_smallcnt_big计数一个循环为加一条件:

If(cnt_big==d99)

cnt_small <= cnt_small + 1b1;

这样你就会得到如下的时序图

                                  图3 计数器关系时序图


接下来通过一个比较器,就可以得到占空比循环改变的PWM了。这一部分留给大家去思考怎么去做。将其中一个计数器改为固定值,就可以得到固定比例的PWM了。


文章评论1条评论)

登录后参与讨论

sdoizq 2018-3-20 09:37

双比较器构成
相关推荐阅读
洋仔 2023-03-07 19:51
时钟约束小练习
400m时钟使用sigma_delta算法产生(a)m的时钟使能clk_en,用来平滑156m时钟带来的vld(vld是有缺口的),然后使用400m时钟与clk_en进行时钟的2分频,产生clk_b,...
洋仔 2022-07-05 16:23
PRBS码型生成器&验证器结构
1.生成器结构2.验证器结构        PRBS Error :高电平有效,代表出错...
洋仔 2022-01-12 11:15
基于vcs+uvm+xilinx ip的仿真平台的半自动化搭建
1. 总体概述1.1软件环境   系         统:ubuntu 18.04&nbs...
洋仔 2021-12-24 09:35
Vivado仿真UVM
1.修改仿真配置在Settings->Simulation->1.1Target simulator为默认配置Vivado Simulator1.2在以下位置修改配置Compliation->xsim...
洋仔 2021-12-23 17:30
Vivado调用VCS仿真
1.编译仿真库Tools->Compile Simulation Libraries在Simulator executable path中添加vcs 仿真器可执行文件的位置2.修改仿真配置在Setti...
洋仔 2021-07-06 15:40
Vivado的一些tcl命令记录(待补充)
1.Report Clock Networks  report_clock_networks -name {network_1}2.分析设计中逻辑级数的分布  report_des...
我要评论
1
19
关闭 站长推荐上一条 /2 下一条