www.mikrocontroller.net

Forum: FPGA, VHDL & Co. [VHDL] Use vor jeder Entity, was ist mit Library?


Autor: Matthias Larisch (matze88)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

Ich lerne gerade VHDL fürs Studium. Das geht mehr oder minder gut, ich 
stehe jedenfalls noch direkt am Anfang und habe kurz 2 kleine Fragen:

Warum muss ich vor jeder Entity die use-Anweisung wiederholen? (Bsp: use 
ieee.std_logic_1164.ALL)

Und:
http://public.tfh-berlin.de/~haas/lehre/eda1/WS02/... dort 
(gegoogelt) steht, dass man die Library Anweisung (LIBRARY ieee) nur 1x 
pro Datei(zu Beginn) braucht; mein Quartus II hätte die aber ebenfalls 
gerne vor jeder Entity bzw. vor dem jeweiligen Use, da er sonst "object 
ieee is used but not declared" bringt.

Ich kann das ja nun hinnehmen; Aber warum ist das so?

Vielen Dank schonmal,

Matthias

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum Quartus das so braucht, weiss ich nicht, aber die meisten 
schreiben in eine Datei nur eine Entity.
Es wird normalerweise empfohlen, und man nennt die Datei gleich wie die 
Entity, Extension .vhd.

Autor: Matthias Larisch (matze88)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erklärt zwar nicht alles (aber vielleicht gibts ja auch keine Erklärung 
außer "Ist so"), aber immerhin weiß ich jetzt was Sache ist :-)

Dankeschön!

Matthias

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du koenntest die Files nicht unabhaengig von der Hauptentity 
compilieren/simulieren lassen. Das waere jetzt glaube ich der 
Hauptgrund, das ueberall reinzuschreiben.

Autor: nixda (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

das vhdl-lrm (language reference manual) definiert was vhdl ist (syntax 
und semantik). das lrm definiert sachen diskutiert aber nicht pro/cons 
bzw design entscheidungen warum es so ist. dies laeuft in den working 
groups zum standard:

die frage fuer dich heisst: fuer welchen scope gilt die "library clause" 
bzw die "use-clause"? grob gesprochen gelten use/library clause vom 
punkt nach der stelle im text bis an das ende der "declarative region" 
der design unit die zur declaration gehoert.

also zb. library+use vor der entity gilt auch fuer die architecture. 
library+use vor der architecture gilt nur fuer die architecture.


die library clause ermoeglicht es dir ueberhaupt auf sachen in einer 
library zuzugreifen. libraries stehen im lrm vhdl87-11.2

die use clause macht symbole in einem scope sichtbar ohne dass man den 
package/library noch mit angeben muss (vhdl87-10.4). dort ist auch genau 
definiert wie weit der scope der use cause reicht (bzw was bei 
konflikten passiert).

klingt abstrakt? einfach mal die lrm abschnitte lesen und die beispiele 
durchsehen. alternativ die lrm-faq im netz.

regards

Autor: Matthias Larisch (matze88)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank, vor allem an nixda (Gast), für die tolle Erklärung.

Ich habe das jetzt soweit verstanden und kann das so hinnehmen :-) Die 
Klausur ist inzwischen auch schon gelaufen (ging garnicht so weit ins 
VHDL Detail - nur ne simple 3-Prozess Modellierung einer Art 2-bit 
Zähler bzw. /4 Frequenzteiler) und an VHDL werde ich 
wohl/vll/hoffentlich trotzdem noch länger dran bleiben :-)

-Thema erledigt-
Matthias

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.