Ich habe ein Problem mit meinem Verilog-Code. Ich habe 2 Uhren - eine 100 kHz, Sekunde 10 kHz. Ich möchte nur LED mit 100kHz Frequenz umschalten, wenn 10kHz HIGH ist. Aber meine Leistung ist immer noch niedrig. Dies ist mein Code:Verilog Wartefunktion Erklärung
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
Ich weiß, dass ich dies auf andere Weise (wie Trigger auf 100kHz Rand und Zustand ot 10kHz überprüfen) tun können, aber ich versuche zu verstehen, warum @ (posedge clock_100kHz); handle nicht wie ich es erwarte. Ich versuch auch zu warten (clock_100kHz), aber das funktioniert auch nicht.
Ich bin sicher, dass meine Uhren richtig konfiguriert sind, da dieser Code funktioniert wie ich erwarten:
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
aber ich versuche zu verstehen, was mit meiner Warte Bedingungen falsch ist.