我的Verilog代碼有問題。我有2個時鐘 - 一個100kHz,第二個10kHz。只有當10kHz爲高電平時,我纔想用100kHz頻率切換LED。但是我的產量仍然很低。這是我的代碼:Verilog等待函數說明
module LED_toggle(
input clock_100kHz,
input clock_10kHz,
output reg LED_PIN,
);
initial begin
LED_PIN <= 1'b0;
end
always begin
if(clock_10kHz) begin
LED_PIN = 1'b1;
@(posedge clock_100kHz);
LED_PIN = 1'b0;
@(posedge clock_100kHz);
end
else begin
LED_PIN = 1'b0;
end
end
endmodule
我知道我可以在其他的方式(在100kHz的邊緣像觸發器和檢查狀態OT 10kHz時)做到這一點,但我試着去理解爲什麼@(posedge clock_100kHz);不要像我所期望的那樣行事。我也嘗試等待(clock_100kHz)insted,但這也不起作用。
我敢肯定,我的時鐘都配置正確,因爲這個代碼工作像我期望:
module LED_toggle (
input clock_100kHz,
input clock_10kHz,
output reg LED_PIN,
);
initial begin
LED_PIN <= 1'b0;
end
always begin
if(clock_10kHz) begin
LED_PIN = ~LED_PIN;
end
else begin
LED_PIN = 1'b0;
end
end
endmodule
,但我試着去了解什麼是錯的我等待條件。