habe ich versucht, zwei verschiedene Synthesizern und beide
Code synthetisiert
reg [31:0] r1 = 32'hcafecafe;
Das ist nicht das, was ich erwartet hätte, da dieser Code in genau die gleiche Art und Weise wie Ihre RTL verhält sich nicht. In Ihrem RTL ist r1
bis zur ersten Taktflanke mit condition
high unbekannt, woraufhin der Wert 32'hcafecafe
angenommen wird. Der synthetisierte Ausgang hat vor dieser ersten Taktflanke bereits den Wert 32'hcafecafe
. Ich hätte erwartet, dass der Synthesizer-Ausgang 32 aktivierte D-Typ-Flipflops hätte, deren Eingänge an 32'hcafecafe
gebunden wären.
Ich vermutete die Frage zu fragen, ob 'condition' an eine Konstante 0 gebunden war und die Freigabe nie wahr ist. In diesem Fall muss "r1" immer noch * etwas * sein und der wahre Zweig des Konditionals scheint eine gute Wahl zu sein. Ich nehme an, dass 0 eine weitere gute Wahl wäre, aber ich denke, dass es zu diesem Zeitpunkt Sache des Compilers ist. –
Das passiert gerade, aber ich möchte, dass das Synthesewerkzeug auf ein Latch zurückgreift. Gibt es eine Möglichkeit, dass das Synthese-Tool eine Verriegelung und nichts anderes schließt? – a220599
@ a220599 Meinst du ein _latch_? Oder ein Flip-Flop? –