Forum: FPGA, VHDL & Co. Verilog: Zugriff auf Variable vor ihrer Definition


von Sigi (Gast)


Lesenswert?

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??)

von Andi (Gast)


Lesenswert?

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.

von Sigi (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.