Forum: FPGA, VHDL & Co. architecture in VHDL auswählen


von Jeanette (Gast)


Lesenswert?

Hallo zusammen,

ich habe zu folgender Beispiel Entity:
1
library ieee;
2
use ieee.std_logic_1164.all;
3
4
entity even_detector is
5
  port ( a : in std_logic_vector ( 2 downto 0);
6
       even : out std_logic
7
  );
8
end even_detector;

zwei verschiedene architekturen:
1
architecture sop_arch of even_detector is
2
  signal p1, p2, p3, p4 : std_logic;
3
begin
4
  even <= (p1 or p2) or (p3 or p4);
5
  p1 <= (not a(2)) and (not a(1)) and (not a(0));
6
  p2 <= (not a(2)) and a(1) and a(0);
7
  p3 <= a(2) and (not a(1)) and a(0);
8
  p4 <= a(2) and a(1) and (not a(0));
9
end sop_arch;

und
1
architecture xor_arch of even_detector is
2
3
begin
4
    even <= not(a(2) xor a(1) xor a(0));
5
end xor_arch;

Wie kann ich in VHDL eine der beiden Architekturen für die Synthese 
auswählen, ohne zusätzlich eine TOP Entity/Architecture mit 
Komponenteninstanzierung erstellen zu müssen.

Geht das überhaupt ?

Liebe Grüsse
Jeanette

von Rufus (Gast)


Lesenswert?

Schau mal unter dem Begriff "configuration" nach. Dass ist was du 
suchst.

von Duke Scarring (Gast)


Lesenswert?

Rufus schrieb:
> Schau mal unter dem Begriff "configuration" nach. Dass ist was du
> suchst.
Als ich das vor Jahren mal probiert habe, wollte Xilinx/XST das nicht 
fressen. Vielleicht sieht es heute anders aus.

Duke

von Jeanette (Gast)


Lesenswert?

Hi,

bei einer Configuration muss aber ein Komponentenname angegeben werden. 
Den gibts aber nur durch eine zusätzliche TOP Entity/Architekture 
Kombination mit Komponenteninstanzierung.

Mit configartion statements kriegs ich es so nicht hin :-(

Jeanette

von Duke Scarring (Gast)


Lesenswert?

Jeanette schrieb:
> Mit configartion statements kriegs ich es so nicht hin :-(
Dann gäbe es noch die Variante mit if ... generate [1].

Duke

[1] http://de.wikibooks.org/wiki/VHDL#generate

von user (Gast)


Lesenswert?

configuration add32_test_config of add32_test is
    for circuits -- of add32_test
      for all: add32
        use entity WORK.add32(circuits);
      end for;
    end for;
  end configuration add32_test_config;

von Jeanette (Gast)


Lesenswert?

das würde bei mir dann für Auswahl xor_arch so aussehen:
1
configuration demo_config of even_detector is
2
  for xor_arch
3
    for all: ???? -- Komponenten name hab ich doch keinen!!!
4
      use entity work.even_detector(xor_arch);
5
    end for;
6
  end for;
7
end demo_config;

welchen Komponenten Name soll ich da nehmen ?

Grüsse
Jeanette

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.