Hallo zusammen,
ich bin in Sachen Verilog noch Einsteiger und habe eine Frage bzgl.
Testbenches: Ich möchte eine Testbench schreiben, die temporär einen
Clock generiert, falls bestimmte Bedingungen erfüllt sind. Der "normale"
Ansatz der Clockerzeugung ist entweder ein always- oder ein
initial-Block mit forever-Statement. Jetzt möchte ich aber neben dem
eigentlichen Systemtakt einen weiteren Takt generieren, der nur dann
aktiv ist, falls bspw. eine Variable gesetzt ist. Dieser zusätzliche
Takt soll quasi ein Input des FPGAs sein.
Funktioniert das mit einem always-Block? Mein erster Gedanke war
folgender:
1 | always begin : clock_generation
|
2 | if (clock_active == 0)
|
3 | disable clock_generation;
|
4 | #Tclk temp_clock = ~temp_clock;
|
5 | end
|
Das disable-Statement sollte praktisch den Rest des always-Blocks
überspringen. Leider klappt das so nicht, der Simulator (ISim) bricht
ab, weil die Speicherauslastung zu hoch ist.
Kann mir hier jemand weiterhelfen bzw. einen Gedankenanstoß geben, wie
man so etwas realisieren kann?
Vielen Dank!