mikrocontroller.net

Forum: FPGA, VHDL & Co. Default Werte für Generics


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Fpga I. (fpga-ing)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

für meine VHDL Module nutze ich gerne Generics, um Parameter wie 
beispielsweise Bitbreiten, Betriebsmodi etc. zu definieren. Bisher habe 
ich neben dem Typen auch immer einen Default Wert mit angegeben.

Bei der Instantiierung weise ich den Generics jedoch immer feste Werte 
zu und verlasse mich nicht auf die Default Werte. Ob man die Default 
Werte für Generics überhaupt definieren sollte, bin ich mir aber nicht 
ganz schlüssig.

Vorteile:
 - Man sieht bei einem Modul gleich die "typischen" Werte, mit denen 
ggf. als erstes simuliert wurde.
 - Fügt man später ein Generic hinzu, bleibt der Code Lauffähig, auch 
wenn man die Instanzen nicht anpasst

Nachteile:
 - Da ich eh alle Generics bei der Instanziierung definiere, kommt der 
Default Wert nie zu Einsatz.
 - Ist ein Generic bei der Instanziierung nicht definiert, gibt es keine 
Fehlermeldung, d.h. vielleicht läuft mein Modul mit einer falschen 
Konfiguration.
 - Bei der Verwendung von Component gibt es verschiedene Stellen, bei 
denen ein Generic definiert werden kann: im VHDL Modul, in der Component 
Declaration, in der Component Instantiierung. Redundante Informationen 
sind potenzielle Fehlerquellen...

Die Argumente sprechen gegen die Default Werte bei Generics, dennoch 
habe ich das Gefühl, dass ein Code mit Default Werten die sauberere 
Implementierung ist. Woran ich das festmache, kann ich leider nicht so 
richtig fassen, es ist eher subjektiv...

Wie ist Eure Handhabung diesbezüglich?
Habt Ihr einen Codingstyle, der die Zuweisung von Default werten fordert 
oder verbietet?
Welche Argumente sprechen aus Eurer Perspektive für oder gegen Default 
Werte bei Generics?

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fpga I. schrieb:
> Wie ist Eure Handhabung diesbezüglich?
Sowohl als auch.

> Habt Ihr einen Codingstyle, der die Zuweisung von Default werten fordert
> oder verbietet?
Nein.

Ich mach oft einen Default-Wert hin, damit die Simulation läuft, da ich 
den Default nicht in der Testbench haben will.

> im VHDL Modul, in der Component Declaration, in der Component Instantiierung.
Die Component Declaration lasse ich gerne weg. Das Modul wird per
"instance_xx: entity library.module" instanziiert. Eine Stelle weniger, 
wo man Code bei Änderungen anfassen muß.

Duke

Autor: Fpga I. (fpga-ing)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Duke Scarring schrieb:
>> im VHDL Modul, in der Component Declaration, in der Component Instantiierung.
> Die Component Declaration lasse ich gerne weg. Das Modul wird per
> "instance_xx: entity library.module" instanziiert. Eine Stelle weniger,
> wo man Code bei Änderungen anfassen muß.

Das handhabe ich nach Möglichkeit ebenso, konnte aber noch nicht all 
meine Kunden umerziehen :-)

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.

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