首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Verilog:使用PWM控制LED的亮度

Verilog:使用PWM控制LED的亮度
EN

Stack Overflow用户
提问于 2016-09-14 12:23:14
回答 1查看 2.4K关注 0票数 0

我正在尝试理解这个示例代码发现的here

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module LED_PWM(clk, PWM_input, LED);
   input clk;
   input [3:0] PWM_input;     // 16 intensity levels
   output LED;

reg [4:0] PWM;
always @(posedge clk) PWM <= PWM[3:0]+PWM_input;

assign LED = PWM[4];
endmodule

首先,它创建4位寄存器PWM_input和5位寄存器PWM。然后在每个时钟周期将脉宽调制设置为等于自身的3位加上PWN_input。

这里到底发生了什么?为什么只使用了5位脉宽调制中的4位? PWM_input的值是多少?

当实际控制发光二极管时,它将发光二极管设置为PWM4。这与PWM4:0相同吗?或者它是一个独立的值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-14 15:08:36

PWM[4]本质上是4位加法器/累加器的进位位,该位用于打开/关闭发光二极管。PWM_input的值决定了指示灯打开和关闭的速度。如果这个例子写成这样可能会更清楚

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module LED_PWM( input clk,
                input [3:0] PWM_input, // 16 intensity levels
                output reg LED);

  reg [3:0] PWM; // internal accumulator

  always @(posedge clk) {LED,PWM} <= PWM + PWM_input;

endmodule
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39490369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文