Derzeit habe ich eine „Adder“-Entität mit zwei Architekturen: (1) RippleCarryAdder (2) CarryLookAheadAdder.
Ich habe alle Definitionen wie folgt in einer einzigen VHDL-Datei abgelegt:
entity adder is
generic (N: integer := 16);
Port ( Cin : in STD_LOGIC;
x : in std_logic_vector (N - 1 downto 0);
y : in std_logic_vector (N - 1 downto 0);
s : out std_logic_vector (N - 1 downto 0);
Cout : out STD_LOGIC);
end adder;
architecture RippleCarryAdder of adder is
begin
...
end RippleCarryAdder;
architecture CarryLookAheadAdder of adder is
begin
...
end CarryLookAheadAdder
Unter Verwendung von ISE 14.7 Xilinx kann ich sehen, dass das Tool Schwierigkeiten hat, zwei Architekturen, die der Entität „Adder“ zugeordnet sind, richtig zu unterscheiden. Es erkennt nur die letzte in der Datei angegebene Architektur (in diesem Fall 'CarryLookAheadAdder').
Ich denke, es gibt etwas mit der Dateidomäne oder vielleicht einige Regeln, die die Architekturdeklaration regeln, die mir nicht bekannt sind. Seltsam, dass die VHDL-Dokumentation nicht über mehrere Architekturen und Dateistrukturen gesprochen hat. Sollte ich zwei Dateien verwenden und die Entity-Deklaration in beide kopieren? Können Sie auf eine Seite verweisen, auf der mehrere von Xilinx ISE unterstützte Architekturformate richtig beschrieben werden? (Zum Beispiel wird das Konfigurationsschlüsselwort nicht unterstützt und ich muss auf ein anderes Format für gebundene Architekturen zurückgreifen.)
Ich habe noch nie etwas davon versucht, und ich habe ISE seit Jahren nicht mehr verwendet. Ich weiß nicht, ob es funky Konfigurationen unterstützt, und es würde mich ehrlich gesagt nicht überraschen, wenn dies nicht der Fall wäre. Wie alle anderen schon sagten, würde ich vorschlagen, auf Vivado umzusteigen
Ok ich glaube ich habe die richtige Antwort bekommen:
Wir können „entity“ in eine separate Datei und „architecture1“ in eine andere Datei und „architecture2“ wieder in eine andere Datei einfügen. Wir werden also 3 separate Dateien haben. Hier spielt die Reihenfolge der Zusammenstellung eine Rolle. Zuerst muss die Datei kompiliert werden, die die 'Entity'-Definition enthält, und dann die Architekturen. Xilinx ISE verfügt über eine Option, mit der Sie die Reihenfolge der Kompilierung manuell festlegen können. Wir können auch alle drei in einer einzigen Datei zusammenfassen, Entität kommt zuerst und Architekturen folgen.
ISE 8.1i bis 14.7 unterstützt mehrere Architekturen und Konfigurationen nicht RICHTIG. Die einzigen Setups, die ich richtig hinbekommen habe, sind:
--stack-size=nnnn
Option, die jetzt veraltet ist. Wenn Sie bereits ghdl-0.34dev verwenden, sollten Sie dies mit testcase unter github.com/tgingold/ghdl/issues melden (stellen Sie klar, dass es sich um ein Problem mit der Windows-Version handelt).
user_1818839
Adder1 : entity work.my_ent(my_arch1) generic map () port map ();
. Andernfalls ist es möglicherweise an der Zeit, Konfigurationen zu lernen.Dr. Ehsan Ali
user_1818839
Dr. Ehsan Ali
Claudio Avi Chami
Dr. Ehsan Ali
user_1818839