Hi, kann ich in Verilog (2001) auf eine WIRE- oder REG-Variable vor ihrer Definition zugreifen, d.h. ist z.B. wire b = a; wire a; erlaubt? Gibt es in Xilinx's ISE oder Altera's QuartusII entsprechende Syntheseeinstellungen um dies zu erlauben? (Hintergrund: ich habe ca. 50-60 Module, teils automatisch generiert, bei denen die Definitionen und Zugriffe wildest verschachtelt ist. Ich habe so den Verdacht, dass es sich dabei um SystemVerilog-Module handelt und es da erlaubt ist??)
Solange du das nicht mit:
1 | `default_nettype none |
unterbindest,sollte es funktionieren (jedenfalls bei Altera/Intel und Lattice). Du bekommst normalerweise eine Warnung für solche Fälle, aber keinen Error der die Synthese abbricht.
Danke für den Hinweis. Bei der Durchsuchung aller Modul- und Projektfiles ist mir aber nichts dergleichen aufgefallen. Ebenfalls seltsam für mich ist, dass es bei einem kleinen Modul funktioniert, bei den generierten aber nicht. Insgesammt habe ich 3 Varianten ausgemacht: - das oben beschriebene Szenario: mehrere Wires greifen auf noch nicht definierte Wires zu (=> implizite Definietion etc.). Durch Umstellung, soweit möglich, verschwinden die Fehlermeldungen (seltsam!?). - ein per Include verwendetes Netz, dass zum einen auf Wires des nutzenden Moduls zugreift als auch im nutzenden Modul auf Wires des Includefiles zugreift (für mich schwer zu behandeln, da hier extrem viele Überkreuzungen stattfinden) - mehrere gleichnahmige Includefiles in verschiedenen Verzeichnissen, wo ich glaube, dass da evtl. beim ein oder anderen File auf das falsche Includefile zugreift. Ganz seltsam ist, dass wenn ich alle Includefiles ins Hauptverzeichnis verschiebe nur noch wenige Fehlermeldungen auftreten. Die Probleme rund um Überkreuzungen verschwinden fast ganz? (Bem. ich habe auch versucht, die Includeverzeichnisse manuell zu setzen, dass klappt aber leider auch nur in einigen und nicht in allen Fällen. Ich habe mal ein kleines Projekt aufgesetzt und die Verzeichnisse manuell gesetzt, das ganze ohne Probleme. hm?) Ich weiss, dass ein solches Problem schlecht in einem Forum gelöst werden kann, aber vlt hat ja jemand ein ähnliches Problem schonmal gelöst.
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.