Hallo,
schon mal vorab Danke fürs lesen. Vorab: Ich arbeite mit yosys/icarus -g2012
Ich habe mir folgenden Typen kreiert:
typedef struct packed { // Going from highest bit (18) to lowest bit (0) logic [5:0] ledNo; // led to switch (1-64) logic [11:0] color; // color to choose rgb (4:4:4) logic status; // 0- off, 1- on } DebugInfo;
In meinem Modul übergebe ich diese natürlich vorab instantieerte Struktur als Input Parameter...
module visuMon( input logic i_clk25Mhz,
...
input DebugInfo i_debugInfo,
... );
// ... und lege in diesem Modul ein Array mit 64 Elementen dieser Struktur an (denke ich zumindest)...
DebugInfo _debugInfo[64];
// und möchte dann diesen Input parameter (i_debugInfo) in mein internes Array einfügen, wobei das Feld "ledNo" als Index auf das Array genutzt werden soll:
always @(posedge i_clk25Mhz) begin ... _debugInfo[i_debugInfo.ledNo-1]<=i_debugInfo; ... end
Ergebnis ist folgende Fehlermeldungen:
ERROR: Assert `!source_offset && !id2ast->range_swapped' failed in frontends/ast/genrtlil.cc:1604.
Ich denke ich habe da mit meinem C-Wissen SystemVerilog mal wieder fehlinterpretiert... Ich würde mich freuen, wenn mir jemand die Augen hier öffnen könnte...
Gruß, Bernd