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
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
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
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 ;-)
Hast du dich vertippt oder müsste es nicht busbreite anstatt portbreite heißen?
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
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.
MuePlus schrieb: > Das Problem habe ich jetzt gefunden, eine Lösung sehe ich aber leider > nicht. Verzichte auf Schematic und schreib den Code selbst. Duke
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.