Hallo zusammen,
gibt es in VHDL die Möglichkeit, in einer for...generate Konstruktion
if...then zu verwenden?
Gedacht habe ich mir das so:
1
generate_fulladders:foriin0to39generate
2
begin
3
fulladder:fulladder_comp
4
portmap(
5
ifi=0then
6
cin=>cin,
7
else
8
cin=>c(i-1),
9
endif;
10
11
ifi=39then
12
cout=>cout,
13
else
14
cout=>c(i),
15
endif;
16
17
a=>summand1(i),
18
b=>summand2(i),
19
s=>sum(i));
20
endgenerate;
Da bekomme ich ein "Syntax error near 'if'". Bei dem ersten if.
Vielleicht liegt es aber auch nicht am if sondern woanders und ich sehe
es nur nicht :-S
ja das ist das problem
das hier geht aber
generate_fulladders : for i in 0 to 39 generate
begin
if i = 0 generate
fulladder : fulladder_comp
port map(
cin => cin,
cout => c(i),
a => summand1(i),
b => summand2(i),
s => sum(i));
end generate
if i /= 0 generate
fulladder : fulladder_comp
port map(
cin => c(i-1),
cout => c(i),
a => summand1(i),
b => summand2(i),
s => sum(i));
end generate
end generate;
>> (Hast du bei dein einzelnen "end generate" Semikolons vergessen? Es geht> zwar weder mit noch ohne, aber das würde mich auch interessieren)
"(i /= 0) & (i /= 39)" scheint nach Murks aus weil & kein logisches UND
ist.
Dann hat das äußere generate ein begin nicht aber die inneren - das ist
auch ein indicator für Murks.
Bitte die fehlermeldungen mit ins posting aufnehmen.
MfG,
Die Fehlermeldung war nur "Syntax error near 'if'". Ganz ehrlich! ;) Mit
dem begin hast du natürlich recht, die habe ich jetzt raus genommen. Der
Fehler war aber, dass die inneren generates keinen Bezeichner (?)
hatten.
Damit geht's: