Marfel schrieb:
> ich möchte gerne eine for generate Loop bauen, in der ich bestimmte
> Componenten zusammenknote.
> Ich möchte jedoch nicht einen Index I von 0 bis ... verwenden, sondern
> nur bestimmte Werte, z.B. 1,3,6,8.
>
> Ist dies in VHDL irgendwie möglich?
Schleife über einen Aufzählungstyp resp array über range ist möglich,
also
1 | label_gen: for i in index_enum generate
|
2 | //..
|
3 | end generate;
|
Ist jetz nur die Frage wie man den Index bspw als enumeration definiert.
http://vhdl.renerta.com/mobile/source/vhd00026.htm
Der klassische Fall sind die Zustände einer FSM
1 | type enum_state is (OANS,ZWOA,DREIER);
|
Denen kannst du jetzt eine Zahl im Enumeration encoding zuweisen:
Example 2: http://fpgacenter.com/vhdl_dic/enumar.php
Damit sollte es gehen. Ob man integer in ein Aufzählungstyp packen kann,
also:
1 | type enum_by_numbers is (1,3,6,8);
|
musst du selbst ausprobieren. Was geht ist auch ein range als index,
alse
1 | subtype index_range is integer range 8 downto 0;
|
aber da stecken dann auch Zahlen drin du du nicht dabei wolltest.
MfG,