Ich beschäftige mich momentan damit, den aemb softcore auf einen xilinx zynq zu portieren (bin FPGA newbie). Darin kommt der folgende (in der simulation funktionierende) verilog code vor always @(posedge gclk) if (grst) begin /*AUTORESET*/ // Beginning of autoreset for uninitialized flops rDWBDO <= 32'h0; // End of automatics end else if (gena) begin rDWBDO <= #1 xDWBDO; end Was für eine Auswirkung hat das #1 bei rDWBDO <= #1 xDWBDO; auf die Synthese? In der Simulation bewirkt es, soweit ichs kapiere, eine Verzögerung um eine Zeiteinheit. Wofür kodiert man so, wenn gclk selbst (der steuernde Takt) mehrere Zeiteinheiten lang high bzw. low ist?
Die Synthese wird das intra-assignment delay ignorieren. Für diese Schreibweise kann es verschiedene Gründe geben. Der weitaus häufigste und schlechteste Grund ist die Visualisierung von Kausalitäten zwischen Signalen im Waveform Viewer. Entsprechendes gilt für VHDL.
Besten Dank, insbesondere für das Stichwort "intra assignment delay".
Marcus H. schrieb: > Entsprechendes gilt für VHDL. Ja, mit solchen symbolischen Delays kann man sich sauber was in die Tasche lügen. So ein "#1" entsprichtin VHDL in etwa eine "after 10 ns", und dann lies mal den Beitrag "Functional Simulation mit Modelsim" und den darin verlinkten Beitrag "Re: Frage zu Pseudozufallsgenerator!?"
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.