Кто-нибудь знает, как увеличить несколько genvars в одном генерации
утверждение?
Это недопустимо, поскольку цикл create for создает неявный оператор localparam для переменной цикла и разрабатывает элементы цикла на основе только этого localparam. Это означает, что любые элементы внутри цикла должны быть действительными вне цикла, если genvar был объявлен как localparam.
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
становится
//Done for each value of i
genvar j;
localparam integer i = i_for_each_iteration;
j=0; //Not valid outside a procedural context so modelsim complains
assign ci1[i] = minw(tc[j],tc[j+1]);
j = j+2; //Also not valid outside a procedural context
В этом случае вы можете создать «постоянное» значение, зависящее от genvar, используя явный параметр внутри цикла.
genvar i;
//Level 1
generate
for (i=0;i<128;i=i+1)
begin: level1Comp
localparam integer j = i*2;
assign ci1[i] = minw(tc[j],tc[j+1]);
end
endgenerate