搜索
bottom↓
回复: 2

verilong的呼吸灯程序,有些看不明白,请大家帮忙给解释下

[复制链接]

出0入0汤圆

发表于 2019-3-3 21:42:01 | 显示全部楼层 |阅读模式
别人的verilong的呼吸灯程序,有些看不明白,请大家帮忙给解释下做"///////////"标识的地方的程序,谢谢大家。

module breathing_led(
               
                input                wire                                clk,
                input                wire                                rst_n,
                output                reg                [3:0]                LED
        );

        reg [26:0] counter;
        reg [5:0] PWM_adjust;
        reg [6:0] PWM_width;

        always @ (posedge clk or negedge rst_n)
                begin
                        if(!rst_n)     
                                begin
                                        counter <= 0;
                                        LED[0] <= 0;
                                        LED[1] <= 0;
                                        LED[2] <= 0;
                                        LED[3] <= 0;        
                                end  
                        else
                                begin
                                        counter <= counter + 1;        //        时钟上升沿到来就自加一
                                        PWM_width <= PWM_width[5:0] + PWM_adjust;            ///////////
                                        if(counter[26])                                                        ///////////
                                                begin
                                                        PWM_adjust <=  counter[25:20];                 ///////////
                                                end            
                                        else
                                                begin
                                                        PWM_adjust <= ~counter[25:20];         ///////////
                                                end
                                       
                                        LED[0] <= PWM_width[6];                                         ///////////
                                        LED[1] <= PWM_width[6];
                                        LED[2] <= PWM_width[6];
                                        LED[3] <= PWM_width[6];            
                                end
                end
   
endmodule

阿莫论坛20周年了!感谢大家的支持与爱护!!

如果想吃一顿饺子,就得从冰箱里取出肉,剁馅儿,倒面粉、揉面、醒面,擀成皮儿,下锅……
一整个繁琐流程,就是为了出锅时那一嘴滚烫流油的热饺子。

如果这个过程,禁不住饿,零食下肚了,饺子出锅时也就不香了……《非诚勿扰3》

出0入0汤圆

 楼主| 发表于 2019-3-4 18:45:44 | 显示全部楼层
自己分析了一下,发现是根据counter的多位移位进行来调整占空比的。希望多多交流~

出0入0汤圆

发表于 2019-3-5 10:39:01 | 显示全部楼层
人对光和声音的强度感应为对数曲线,占空比移位对应到人眼就是线性增减
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-28 22:52

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表