Ich möchte einen SystemVerilog-Code synthetisieren, der Verzögerung als # 1 geschrieben hat, aber der Synthesizer gibt Syntaxfehler, da Verzögerung nicht synthetisierbar ist. Ich möchte wissen, gibt es eine Möglichkeit, dass ich eine Verzögerung geben kann, die synthetisiert wird? Zum Beispiel ist dies eine SystemVerilog-Assertion in dem Code mit VerzögerungenSynthetisierbare Verzögerung in Verilog
assert Eigenschaft ((req1 == 0) ## 1 (req1 == 1) ## 1! (Req2 == 1) || (gnt1 == 0));
Wie kann ich dies synthetisieren, ohne sein Verhalten zu verlieren?
Ja, Sie haben Recht, die Eigenschaften im Code werden mit SystemVerilog Assertions angegeben. Ich versuche tatsächlich, den Hardwarebeschreibungscode in einen formal überprüfbaren Code umzuwandeln. Deshalb verwende ich Assertions, um Eigenschaften zu spezifizieren und sie an den Synthesizer zu übergeben, der zur Verifikation konvertiert wird. Der Synthesizer akzeptiert einfach nicht die verwendete Verzögerungssyntax, dh ## 1 in den Eigenschaften. Ist das oben Erwähnte der einzige Weg, die Verzögerung für den Synthesizer zu modellieren? – mii9
Sie können keine Eigenschaften synthetisieren, und ich vermute, dass Ihr formaler Prüfer nicht funktioniert. In meiner (begrenzten) Erfahrung mit formaler Verifikation nimmt das formale Tool Ihre Implementierung als eine Eingabe und HDL-Eigenschaften als eine andere. Somit werden die Eigenschaften nicht synthetisiert und können normal geschrieben werden. Vielleicht sollten Sie eine andere Frage stellen, in der Sie mehr Informationen darüber geben, welches Werkzeug Sie verwenden und wie Sie es verwenden möchten. – Hida