www.mikrocontroller.net

Forum: FPGA, VHDL & Co. generic types in VHDL


Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin!

Ich bin letztens auf folgendes Dokument über Type Generics in VHDL 
gestoßen:
www.accellera.org/apps/group_public/download.php/116/type-generics.ppt

Ich habe mir auf dieser Basis versucht eine Eingabesynchronisation mit 
folgendem Package zu schreiben:
library ieee;
use ieee.std_logic_1164.all;

package Input_Sync_Comp is
generic (type Sync_Type);
    component Input_Sync is
        port(RST    : in  Std_Logic;
             CLK    : in  Std_Logic;
             Input  : in  Sync_Type;
             Output : out Sync_Type);
    end component Input_Sync;
end Input_Sync_Comp;

Nachdem mein Compiler gemeckert hat, habe ich in verscheidenen Tutorials 
und Referenzen nach Type Generics gesucht und nichts weiter gefunden. 
Ada bietet dieses Feature ja an und VHDL basiert auf Ada. Ist dieses 
Feature nur in meinem Compiler (ghdl) nicht verfügbar, oder ist das 
Dokument nur ein Vorschlag für eine Erweiterung von VHDL?

Fehlermeldung ist diese hier:
input_sync_comp.vhdl:13:1: 'end' is expected instead of 'generic'
/usr/lib/ghdl/bin/ghdl: importation has failed due to compilation error

Da ich vermute, dass das bisher kein offizielles VHDL-Feature ist, 
bleibt auch noch die Frage, wie man mit anderen Methoden eine 
wiederverwendbare Synchonisation schreiben kann.

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Andreas:

Es gibt drei Arten von VHDL:

1. Der Standard (87, 93, 2002, etc.)
2. das was die Simulatoren davon umsetzen und
3. das was die Synthesetools davon umsetzen

Leider gibt es zwischen den drei Arten immer mal wieder Unterschide.
Accellera ist die Standardisierungsorganisation.

ghdl kann meiner Erfahrung nach ein paar (wenige, seltene) Konstrukte 
nicht verarbeiten. Modelsim ist da schon etwas näher am Standard.

Aber wichtig ist, was hinten rauskommt und dafür muß der Code durch das 
Synthesetool. Also muss man sich auf die größte gemeinsame Schnittmenge 
von VHDL begrenzen. Es nützt nichts schöne Konstrukte im Standard zu 
haben, wenn sie vom Tool-Hersteller nicht umgesetzt wurden :-(

Duke

P.S.: Im Zweifelsfall nochmal mit Modelsim probieren, wenn es denn im 
Standard ist.

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Antwort!

Dann werde ich das wohl weiterhin zu Fuß machen müssen.

Es wäre doch schön, wenn es mal eine Validierung für Synthetisierer und 
Simulator geben würde, die eine Minimalmenge der zu unterstützenden 
Funktionen aus dem Standard vorschreibt.

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.