Ich frage mich, ob ich ein Missverständnis über die uvm-Methodik des Monitors run_phase Aufgabe habe. Das DUT sendet mehrere Takte mit Daten aus, die der Monitor überwacht und überprüft, wobei die verschiedenen Taktdomänen getrennt bleiben. So sieht meine laufen Phase Aufgabe wieuvm Monitor Methodik & run_phase
forever begin
fork
begin @(posedge clk1) begin
..code to capture data..
end end
begin @(posedge clk2) begin
..code to capture data in this domain...
end end
join_any
disable fork;
Mein ‚Problem‘ ist, wenn CLK1 und CLK2 ausgerichtet sind, dann nur eine der posedge Anweisungen ausgeführt wird. Zusätzlich, wenn ich möchte, dass mein Monitor einige andere Operationen an einer dritten asynchronen Domäne ausführt, sagen wir, bei einem Vielfachen von clk1 oder clk2 gibt es ein Problem, wenn die dritte Domäne mit clk1 oder clk2 aufläuft.
Wie soll der Monitor in mehreren Uhr-Domänen in seiner Run-Phase für immer Schleife funktionieren?