[Anfängerfrage] Sind auch mehrere (verschiedene) Instanzen einer Komponente möglich?

Gast #3000953
Lesenswert?

Hallo,

ich habe einen einfachen Multiplexer mit einer über eine GENERIC MAP 
parametrierte Busbreite entworfen:

...
GENERIC (
  busbreite: natural := 32
);
PORT ( ...


In meinem Gesamtdesign benötige ich mehrere Instanzen davon. So weit 
funktioniert das auch.

Aber sobald ich zusätzlich noch eine Instanz mit einer anderen Busbreite 
erzeugen möchte, mault Quartus und besteht auf die in der ersten Instanz 
vereinbarte Busbreite.

Was mache ich (oder Quartus) falsch?

Schon einmal Danke
MuePlus
Gast #3001027
Lesenswert?

Mit Deiner Methode hast Du erstmal einen default-Wert vorgegeben.
Den must Du bei der Instanzierung ggf. überschreiben:
1
modul_inst0: modul
2
generic map (
3
  busbreite => 16
4
)
5
port map (
6
...
7
);

Duke
Gast #3001037
Lesenswert?

Eigentlich mache ich das ja:
1
inst0 : mux
2
GENERIC MAP(portbreite => 32
3
      )
4
PORT MAP(auswahl => sel0,
5
     ein1 => a,
6
     ein2 => b,
7
     aus => c);
8

9

10
inst1 : mux
11
GENERIC MAP(portbreite => 5
12
      )
13
PORT MAP(auswahl => sel1,
14
     ein1 => e,              --   <== Fehler in Zeile 43
15
     ein2 => f,
16
     aus => g);

Dummerweise sagt mir Quartus: Error (10344): VHDL expression error at 
muxtest.vhd(43): expression has 5 elements, but must have 32 elements

MuePlus
Gast #3001044
Lesenswert?

Wie sieht die Entity komplett aus? Wie sieht die Component Deklaration 
aus? Wie sind die Signale deklariert, die du mit den Instanzen verbinden 
möchtest?

Soll heißen: Es wäre leichter wenn man nicht nach jeder Codezeile 
einzeln fragen müsste, sondern gleich vollständigen Code zu Gesicht 
bekäme ;-)
Gast #3001181
Lesenswert?

Ich habe jetzt meinen Muxertest einmal auf das wesentliche reduziert und 
schon lässt er sich übersetzen.

Ich schaue mir daher noch einmal das "Umfeld" an. Dummerweise ist das 
ein von Quartus aus einem Shcematic generierter VHDL-Quelltext (sonst 
klappt die Simulation nicht).

Vielen Dank für die bisherige Hilfe. Nin jetzt einen großen Schritt 
weiter.

MuePlus
Gast #3001229
Lesenswert?

Mein Problem liegt in der automatischen Erzeugung der VHDL-Datei aus 
einem Schematic! Die Komponentenbeschreibung hat zwar noch einen 
GENERIC-Teil, dummerweise wird aber die Busbreite fest eingetragen. 
Damit hat eine spätere GENERIC MAP bei der Instanzierung keine Chance 
mehr.

Ich bin aber auf die Konvertierung aus der Schematik angewiesen, da ich 
laut Quartus-Hilfe nicht direkt aus einem Schematic in die Simulation 
per Modelsim gehen kann. Daher lasse ich mir dafür extra dafür eine 
VHDL-Datei aus dem Schematic erzeugen.

Das Problem habe ich jetzt gefunden, eine Lösung sehe ich aber leider 
nicht.

Installiert ist Quartus II 12 mit SP2.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren