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


von Andreas (Gast)


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:
1
library ieee;
2
use ieee.std_logic_1164.all;
3
4
package Input_Sync_Comp is
5
generic (type Sync_Type);
6
    component Input_Sync is
7
        port(RST    : in  Std_Logic;
8
             CLK    : in  Std_Logic;
9
             Input  : in  Sync_Type;
10
             Output : out Sync_Type);
11
    end component Input_Sync;
12
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.

von Duke Scarring (Gast)


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.

von Andreas (Gast)


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.

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.