a generate
блок используется только для генерации регулярных операторов verilog, таких как экземпляры модулей, всегда блоки, операторы присваивания, ... Это своего рода предварительная обработка.
Итак, ваше назначение должно быть юридическим подтверждением, например,
generate
for (y = -off; y < off; y=y+1) begin
for (x = -off; x < off; x=x+1) begin
always @* // <-- something like this.
guassian_kernel[((((y+off)*ks)+x+off+1)*fs)-1:(((y+off)*ks)+x+off)] = x*y;
end
end
endgenerate