Dieser Code macht ehrlich gesagt keinen Sinn.
Ihr aktueller Code besagt, dass basierend auf clk
der Wert clk
~clk
sein sollte. Wenn Sie <=
verwenden, geben Sie mindestens eine nicht blockierende Zuweisung an, was etwas mehr Sinn ergibt, aber immer noch nicht.
Wenn Sie einen Taktgenerator zur Simulation möchten, verwenden Sie die folgende in einem Anfangsblock (eine 10ns Zeit zu geben):
forever begin
#5 clk <= ~clk;
end
Wenn Sie einen Taktgenerator für FPGA-Synthese wollen, entweder schließen Sie einen physischen Oszillator Wenn Sie den Takteingang Ihres Geräts verwenden oder einen integrierten Oszillator verwenden (sofern auf Ihrem Gerät verfügbar). Sie können immer ein DCM/PLL/CMT/MMCM/wie auch immer Ihr FPGA es nennt, um die Taktfrequenz einzustellen.
Ist dieser Code für Synthese oder Simulation? Welchen Toolchain/Simulator/Synth-Tool/Compiler benutzen Sie? Was genau versuchen Sie zu erreichen, da Sie keine Verzögerung haben, bevor Sie den Wert von "clk" umdrehen und "always @ clk" verwenden? – hexafraction
Ich bevorzuge einfach als: 'initial clk = 0; immer # 10 clk = ~ clk; ' – rahulcodesinverilog