0
我試圖使這個示例代碼感亮度發現here的Verilog:採用PWM控制的LED
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。然後它在每個時鐘週期繼續將PWM設置爲自己的3位加上PWN_input。
究竟發生了什麼?爲什麼PWM的5位中只有4位正在使用,PWM_input的值是多少?
當實際控制LED時,它將LED設置爲PWM [4]。這是否與PWM [4:0]相同?還是它是一個獨立的價值?
好的,如果我想要顯示特定的強度等級(1-16),我該如何去做呢?我一直在嘗試將PWM_input設置爲[3:2],但我無法達到特定亮度級別。更具體地說,將PWM + PWM_input改爲PWM + PWM_input [3:3]的亮度等級爲16? 15點左右,會不會是[3:2]? – Broadway
亮度級別爲1-15或4'b001至4'b1111。對於這個特定的設計,沒有可預測的方式來將LED設置爲常開或常閉。我不知道你的意思是[3:2]。這是一個有點範圍。你的意思是4'b1100或12,即將位[3]和[2]設置爲1。 –