Gast
#2966415
Hallo, Von vornherein es ist ist mein zweiter VHDL Versuch. Wenn ich die Schaltung in ISIM simulieren will kommt gar nicht raus. Was mache ich falsch? Danke im Voraus
|
Anzeige
|
Warum läuft die Simulation nicht?
Gast
#2966415
Hallo, Von vornherein es ist ist mein zweiter VHDL Versuch. Wenn ich die Schaltung in ISIM simulieren will kommt gar nicht raus. Was mache ich falsch? Danke im Voraus Weiss nicht, ob das mit dem concurrent statement für den Clock im Testbench geht. Ich generier sie jeweils so:
Auf jeden fall sollten mal mindestenst die Inputs sinnvolle Werte haben.
Gast
#2966471
Habe auch Standardroutine die vom Xilinx selbst generiert wurde probiert, hat es aber nicht gebracht. HILFE
Gast
#2966509
Hm, kann es sein, dass du nur deinen FULL_PWM.vhd simulierst und nicht die Testbench? Bei mir sieht die Simulation wie erwartet aus (siehe Anhang). Die PWM-Register sind übrigens undefiniert, bis der Counter zum ersten Mal auf 254 läuft (wird auch als Warnung in Isim ausgegeben). Gruss, Tschaebe Ich tippe auch auf einen falsch gesetzten Toplevel-Eintrag: du simulierst das PWM-Modul, nicht die Testbench.... :-o
Gast
#2968437
Danke ich probiere ma donnerstag
Gast
#2973232
>>Lothar Miller
Es war wirklich so. Danke.
Eine Frage hätte ich trotzdem: mach es Sinn in dem Fall Signal zu
benützen? Wäre Variable nicht bessere Alternative?
> mach es Sinn in dem Fall Signal zu benützen? Bei was? > Wäre Variable nicht bessere Alternative? Grundregel für Anfänger: Finger weg von Variablen. So ziemlich jede Nutzung von Variablen von Anfängern beruht auf falschen Annahmen bis zu totalem Unverständnis des Unterschieds Signal/Variable.
Gast
#2973461
>>Georg
ich meine es macht keinen Unterschied ob ich Signale oder Variable verwende. Oder liege da falsch? So im schnellen Codeüberflug würde es vermutlich einen (Timing-)Unterschied machen. Also Finger weg.
Gast
#2973529
Student schrieb:
> ich meine es macht keinen Unterschied ob ich Signale oder Variable > verwende. Oder liege da falsch? frage an Radio Eriwan... Wenn du ein als 'signal' deklariertes Signal mit einem 'concurrent' statement beschreibst, dann hast du halt ein Stueck Draht, das aus einem fliegenden Logikteil rauskommt. Wenn du es in einem getakteten Prozess verwendest,dann ist es der Ausgang eines FlipFlops. Bei concurrent also der D-Eingang eines FFs, bei process also der Q-Ausgang eines FFs. Und ein process ohne Takt, also nur mit Input-Parametern, ist nix anderes als ein concurrent statement, macht genau das gleiche... Eine Variable kannst du nur im 'process' definieren (von dem Unsinn mit shared variables mal abgesehen). Sie beschreibt einen Eingang eines FFs. Das kann auch in ein FF muenden, aber Vorsicht, die Reihenfolge der Zuweisungen spielt hier eine Rolle. Die Zuweisung an eine variable wird sofort wirksam, nicht erst wenn du das naechste Mal den process durchlauefst. Variablen sind, wenn sie nicht nur ausschliesslich als Zwischenwert an genau einer Stelle verwendet werden, ziemlich tueckisch. Und genau deshalb braucht man sie in >90% aller Faelle nicht! Lothar hat auf seiner Seite ein paar Beispiele die sehr lehrreich sind. Und da kann man sich noch weitere Gemeinheiten basteln... Also mein Rat: Vergiss 'variable'! Ich verwende die nur, wenn ich damit einen Ausdruck zusammen fassen kann und mir dafuer Tipparbeit spare. Und ich verwende sie nie als Speicherelement (aka FF). Und sogar in diesen paar Faellen koennte ich sie mit einem 'signal' sowie einer 'concurrent' Zuweisung ersetzen...
Gast
#2973535
PS: Variablen verwende ich exzessiv in Testbenches. Aber das ist etwas ganz anderes... Ich verweise gern auf den Beitrag "Variable vs Signal" Fazit: wenn schon Variablen, dann nur für temporäre Ergebnisse, niemals speichernd!
Gast
#2973843
Lothar Miller schrieb: > wenn schon Variablen, dann nur für temporäre Ergebnisse ich gehe da noch weiter: Wenn schon, dann fuer genau ein temporaeres Ergebniss!
Gast
#2974290
>>berndl, Lothar Miller
Leute, danke für so eine ausführliche Erklährung.
Gast
#2980665
berndl schrieb: > PS: Variablen verwende ich exzessiv in Testbenches. Aber das ist etwas > > ganz anderes... Variablen verwende ich nur zum zwischenzeitlichen Zusammenfassen von Signalen, wenn die Formulierung mit einer Zeile nicht funktioniert. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|