Hallo Zusammen,
ich nutze Vivado 2015.1 HLS seit einiger Zeit.
Soweit funktioniert das recht gut.
Nun möchte ich eine IP erzeugen, die eine im Design konfigurierbare
Anzahl von Ausgängen hat.
Hier das vereinfachte Beispiel (ohne Funktion...):
1 | #define ANZAHL_AUSGAENGE 1
|
2 | void logic_io(ap_uint<ANZAHL_AUSGAENGE> *ausgaenge) {
|
3 | ...
|
4 | }
|
In VHDL nutzt man dafür "generic".
Leider kann ich VIVADO HLS nicht dazu bewegen, mir für mein "#define
ANZAHL_AUSGAENGE 3" einen generic-Eintrag anzulegen.
Es wird immer hart codiert "3" im VHDL-Code für die Breite eingetragen.
1 | entity jt_logic_io is
|
2 | generic (
|
3 | C_S_AXI_BUS_A_ADDR_WIDTH : INTEGER := 6;
|
4 | C_S_AXI_BUS_A_DATA_WIDTH : INTEGER := 32 );
|
5 | --> HIER hätte ich gerne "ANZAHL_AUSGAENGE" stehen***************
|
6 | port (
|
7 | ...
|
8 | ausgaenge_V : OUT STD_LOGIC_VECTOR (0 downto 0); --> leider ist die Breite des std_logic_vector fest und hängt nicht von einem generic ab...
|
9 | ...
|
10 | end;
|
Hier wird das Problem exakt beschrieben:
http://forums.xilinx.com/t5/High-Level-Synthesis-HLS/HLS-IP-Customization-parameters/td-p/567005
Es wird auch beschrieben, wie man solch ein generic (so verstehe ich es
zumindest...) in Vivado als customize block Option bekommt.
Aber was man in HLS tun muss steht hier leider nicht.
Ich habe schon einiges gegoogelt - vergeblich :-(
Hat jemand eine Idee?
Vorab vielen Dank.
Gruß,
Poolspieler