Inkrementieren Mehrere Genvars in Verilog-Anweisung Generieren
Ich versuche zu schaffen, ein multi-Stufen-Komparator in verilog und ich kann nicht herausfinden, wie man increment-mehrere genvars in einer einzigen Schleife generieren. Ich versuche das folgende:
genvar i,j;
//Level 1
generate
j=0;
for (i=0;i<128;i=i+1)
begin: level1Comp
assign ci1[i] = minw(tc[j],tc[j+1]);
j = j+2;
end
endgenerate
Und bekommen die folgende Fehlermeldung:
Error-[SE] Syntax error
Following verilog source has syntax error :
"encoder.v", 322: token is '='
j=0;
Weiss jemand wie man das Inkrement mehrere genvars in derselben generate-Anweisung? Oder zumindest gleichwertigen Funktionen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Unter der Annahme, dass
ci1
hat die Hälfte der Tiefe dertc
und Sie wollen, sagenci1[0] = min(tc[0], tc[1])
,ci[1] = min(tc[2], tc[3])
etc, sollten die folgenden arbeiten:Dies ist nicht zulässig, da ein erzeugen for-Schleife erstellt eine implizite localparam Anweisung für die loop-variable, und stellt die Elemente in der Schleife nur auf, dass localparam. Dies bedeutet, dass alle Elemente innerhalb der Schleife gültig sein muss, außerhalb der Schleife, wenn der genvar erklärt localparam.
wird
In diesem Fall könnten Sie erstellen eine 'Konstante' mit dem Wert abhängig von der genvar über eine explizit definierte parameter innerhalb der Schleife.