我的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
,但我试着去了解什么是错的我等待条件。