Gast
#430632
Ich habe ein VHDL-Modul geschrieben, das ich in verschiedenen Projekten einsetzen möchte. Je nach Projekt gibt es aber oft 2 oder 3 kleine Abweichungen innerhalb des Codes. Ich habe versucht dies über eine Konstante einzustellen, die ich vom Toplevel an die instanzierten Module übergebe. Dabei kann ich gewisse Abfragen im Code mit einbinden oder nicht bzw. zwischen zwei verschiedenen Zweigen entscheiden, je nach dem welcher in diesem Projekt synthetisiert werden soll. Innerhalb des VHDL-Moduls geht dies bei der Logik sehr gut. In einem Projekt werden in diesem Modul zwei Signale nicht unterstützt, d.h. es gibt sie überhaupt nicht. Nachfolgend eine kurze Darstellung was ich meine -> Beispielcode für so ein Modul. ENTITY module_abc IS GENERIC (constant Projekt_Type : std_logic_vector(2 downto 0)); PORT ( rst_i : in std_logic; clk : in std_logic; -- CLK18M : in std_logic; -- sig_x : in std_logic; sig_a : in std_logic_vector(7 downto 0); sig_b : in std_logic_vector(7 downto 0); sig_c : in std_logic_vector(7 downto 0); sig_erg : out std_logic_vector(7 downto 0); ... Nun würde ich gerne auf das Auskommentieren dieser beiden Signale verzichten und ähnlich wie in "C" ein #if (Projekt_Type ="010") einführen. Gibt es so etwas für bedingtes Synthetisieren auch in VHDL? Falls ja wiegeht das? Falls nein gibt es gute Vorschläge so etwas umzusetzen, damit das Modul wirklich unverändert in allen Projekten eingesetzt werden kann? Freue mich auf Eure Rückmeldungen :-)