Hi Leutz Ich habe heute folgenden Fall: Ich möchte ein Sub-Modul in einem übergeordneten Modul mehrere hundert Male als Component einbinden. Da dachte ich an "generate". Soweit so gut, nun möchte ich aber, dass die einzelnen Instanziierungen der Komponenten untereinander verbunden werden. Wie funktioniert das? thx for help greez Kiigass PS: Wo wir grad dabei sind: Kann ich die Komponenten auch einzeln ansprechen? Das ist nicht soo wichtig, wäre aber nice to have.
Gast
#2813719
Hi nimm std_logic_vector(en), hier kannst du deinen generate-Zählindex benutzen. Wenn du schon Vectoren hast, musst du dir mehrdimensionale Typen definieren. z.B. type irdendwas is array(max1 downto 0) of std_logic_vector(max2 downto 0); Gruß
franke schrieb: > Hi > > nimm std_logic_vector(en), hier kannst du deinen generate-Zählindex > benutzen. > > Wenn du schon Vectoren hast, musst du dir mehrdimensionale Typen > definieren. > z.B. type irdendwas is array(max1 downto 0) of std_logic_vector(max2 > downto 0); > > Gruß Danke dir! Das hat mich auf Ideen gebracht.
Hmm leider gibt es jetzt ein kleines Typenproblem beim port map. also beispielsweise:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
Da sagt er dann "type conversion does not match type std_logic_vector".
Gast
#2813811
Queck Silber schrieb: > type iwas is array(3 downto 0) of std_logic_vector(3 downto 0); dann schreib da mal sowas drunter:
1 | |
und binde das an die Komponente an
berndl schrieb: > Queck Silber schrieb: >> type iwas is array(3 downto 0) of std_logic_vector(3 downto 0); > > dann schreib da mal sowas drunter: >
1 | |
2 | |
> und binde das an die Komponente an
Danke für die Antwort, leider ist das Ergebnis folgende Fehlermeldung:
Type error near hugo ; current type iwas; expected type std_logic_vector
Edit: Ahh! Mom! Ich hab da grade was gefunden, wenn ich hugo indiziere
gibt es zumindest nicht sofort ne Fehlermeldung. Ich probier das kurz
und melde mich in wenigen Minuten wieder.
ja schade, edit geht nicht mehr, deshalb Doppelpost. Danke an euch beide für die Antworten. Die Antwort von Berndl hat das Problem gelöst. Soweit ich das bisher getestet hab, gibts keine weiteren Fehler.
Gast
#2814244
hmm...
interessant, vielleicht kann ja jemand klären..
von meinem Code entnommen:
type coef_result_1_type is array(0 to 15) of std_logic_vector(24 downto
0);
signal coef_result_1 : coef_result_1_type;
..
-- second adder stage
second_stage_adder: for i in 0 to 7 generate
inst_coef_adder: piped_adder_25b
port map(
DataA => coef_result_1(2*i),
DataB => coef_result_1(2*i+1),
..
geht ohne Probleme bei mir, auch drei dimensional.
Gruß
franke schrieb: > geht ohne Probleme bei mir, auch drei dimensional. Ja klar, du verbindest ja auch das Signal:
1 | |
2 | |
3 | |
Und nicht den Typ (wie Queck Silber das probierte):
1 | |
2 | |
Lothar Miller schrieb: > franke schrieb: >> geht ohne Probleme bei mir, auch drei dimensional. > Ja klar, du verbindest ja auch das Signal: >
1 | |
2 | |
3 | |
4 | |
> Und nicht den Typ (wie Queck Silber das probierte): >
1 | |
2 | |
3 | |
Ganz genau, aber mit Signalen funktionert es ja.
Queck Silber schrieb: > Ganz genau, aber mit Signalen funktionert es ja. Logisch, weil ja nur Signale über eine Port List weitergegeben werden können. Keinesfalls aber Typdefinitionen.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.