当前位置:首页 > 新闻资讯 > FPGA之家动态 >

FPGA实验&计数器应用:脉冲宽度调制设计验证

时间:2024-07-29      来源:网络搜集 关于我们 0

一, 设计要求

产生一个周期为100ns目标信号,在初始时全部为低电平,每间隔100ns目标信号高电平拉高时间长度为20ns.

二, 设计分析

波形分析

判断cnt1小于等于cnt时,目标信号为低电平,

cnt1的值表示目标信号经过多少目标周期;

cnt表示计数目标信号的一个周期;

当目标信号全部变为高电平时,将目标信号的高电平持续时间每经过一个目标信号周期减少20ns;

目标信号周期

判断cnt小于等于cnt1时,目标信号为低电平,

将对目标信号的调制划分为两个部分:

第一个部分:目标信号由低电平全部转换为高电平,需要经过五个目标信号周期就全部变化为高电平,第六个目标信号周期目标信号全部为高电平;

第二个部分:目标信号的高电平持续时间减少,低电平持续时间增大,需要4个目标信号周期。

《利用有限状态机思想进行设计》

状态划分为两个状态:

第一个状态:占空比增大状态,执行的判断条件为:pwm = (cnt1<= cnt)?1’b0:1’b1;目标信号周期计数器cnt计数循环(0到4),判断目标信号经过多少个周期计数器cnt1,计数到5表示目标信号全部为高电平;状态跳转条件为:cnt1=5且cnt=4时;

第二个状态:占空比减小状态,执行的判断条件为:pwm = (cnt<= cnt1)?1’b0:1’b1;目标信号周期计数器cnt计数循环(0到4),判断目标信号经过多少个周期计数器cnt1,计数到3表示目标信号占空比为20%;状态跳转条件为:cnt1=3且cnt=4时;

状态转移图:

通过脉冲宽度调制设计方式,我们设计一个呼吸灯逻辑

led灯的变化形式为:灭——亮——灭,

控制led灯变化的信号逻辑为:高——低——高

高——低时间间隔2秒

低——高时间间隔2秒

控制Led灯的信号周期为20ms,每经过一个目标信号周期低电平或者高电平持续时间增加20us;


注明:本内容来源网络,不用于商业使用,禁止转载,如有侵权,请来信到邮箱:429562386ⓐqq.com 或联系本站客服处理,感谢配合!

用户登陆

    未注册用户登录后会自动为您创建账号

提交留言