Guten Abend, ich bin gerade dabei, eine komplexere Schaltung in Verilog zu programmieren. Zur Simulation verwende ich hierbei Modelsim. Um Zeit zu sparen verwende ich allerdings nicht die Post-Fit-Simulation, sondern die Functional Simualtion. Jedes Mal Quartus zu bemühen dauert mir einfach zulange. Nun zu meinem Problem: Evtl. habe ich einen Knoten im Kopf, mir macht das Lesen der Functional Simulation allerdings größte Probleme, weil die Reaktionen der abhängigen Signale ohne Verzögerung auf die unabhängigen Signale erfolgen. Gibt es eine Möglichkeit ein statisches Delay einzufügen um der Notwendigkeit der Post-Fit-Simulation zu entgehen? Vielen Dank Torsten
Modelsim schrieb: > Um Zeit zu sparen verwende ich allerdings nicht die Post-Fit-Simulation, > sondern die Functional Simualtion. Das ist die übliche Vorgehensweise. Ob das Timing passt, sagt einem die statische Timinganalyse. > Gibt es eine Möglichkeit ein statisches Delay einzufügen um der > Notwendigkeit der Post-Fit-Simulation zu entgehen? Leider kann ich dir das für Verilog nicht sagen, aber in VHDL ginge das, indem du einfach ein a <= b or c after 4 ns; schreiben würdest. ABER: lies dir zum Thema "symbolische Laufzeiten" mal diesen Post aus dem Beitrag "Re: Frage zu Pseudozufallsgenerator!?" durch. Dann WILLST du das gar nicht mehr. Denn die Nachteile und Probleme überwiegen! Ich vermute, für Verilog trifft die Problematik in ähnlicher Weise auch zu...
Hallo Lothar, vielen Dank für Deine Hinweise. Ich verwende nur synchrone Designs. Meine Problem bei der funktionalen Simulation ist, dass Aktion und Reaktion gleichzeitig sind. Mich macht das ganz kirre. Ich versuche mal ein Beispiel: always@(posedge clk) begin adr <= adr + 1; end always@(posedge clk) begin if(adr == 0) Mache irgendwas end Würde "adr", wie in der Realität auch nur ein paar ns später aktualisiert werden, hätte ich beim Lesen des Diagramms keine Sorgen. ( always@(posedge clk) begin #1; adr <= adr + 1; end ) Ich weiss, dass "#1" je nach timescale eine ns einfügt. Allerdings sind die Konsequenzen bei einem größerem Design nicht tragbar. Meine Frage zielt eher darauf ab, ob es nicht irgendwie möglich ist, Aktion und Reaktion mit einem statischen Delay sichtbar zu machen. Viele Grüße Torsten
Nochmal ;) always@(posedge clk) begin adr <= adr + 1; end Hier ändert sich adr gleichzeitig mit der positiven Flanke von clk. In einem realen Design würde sich adr aber erst nach einem gewissen Delay ändern. Oomph, schwer zu erklären. Ist das Delay (das wünsche ich mir grafisch) vorhanden, hätte ich keine Probleme. Die Gleichzeitigkeit der Änderung von clk UND der adr macht mir Probleme.
ich glaub er will nur das signal verzögern wenn ich mich richtig erinner geht das so in verilog (ich schreibe eigendl. nur VHDL) always@(posedge clk) begin adr <= adr + 1 #10; end das sollte das signal erst nach 10 zeiteinheiten zuweisen
Als ich mit VHDL und Modelsim angefangen habe, hat mich das auch immer irritiert. Aber man gewöhnt sich dran... :-)
Hi, user schrieb: > ich glaub er will nur das signal verzögern Modelsim schrieb: > always@(posedge clk) > begin > #1; > adr <= adr + 1; > end Nicht ganz. Das tue ich ja. dito schrieb: > Als ich mit VHDL und Modelsim angefangen habe, hat mich das auch immer > irritiert. Aber man gewöhnt sich dran... :-) Hmm. Bei mir stellt sich keine Gewöhnung ein. Liegt evtl. auch an mir in Verbindung mit Modelsim. Ausgesprochen spröde dieses Werkzeug.
Das ist doch völlig korrekt, an die Lesart muss man sich einfach gewöhnen. Zur Flanke ändert sih der Ausgang. Nicht die Taktflanke ist die Ursache für die Daten am Ausgang, sondern die Daten, die vor der Flanke am Eingang anlagen. Da das eine Bauteil-abhängige Zeit ist, wieviele ps oder gar ns danach das wirklich passiert, kannst du das gar nicht selbst sinnvoll angeben. Fang bitte bloß nich mit den statischen Delays in der Simulation an. Das macht man ausschließlich in der Testbench um externe Komponenten abzubilden.
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.