Verilog: Zugriff auf Variable vor ihrer Definition

Gast #5557260
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??)
Gast #5557325
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.
Gast #5557400
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.