Galat ini hanya terjadi pada perangkat lunak Quartus® II versi 6.0 (termasuk 6.0 SP1), jika desain menggunakan deklarasi localparam di dalam pernyataan menghasilkan, seperti pada contoh di bawah ini, karena perangkat lunak menegakkan beberapa aturan bahasa Verilog lebih ketat daripada semua versi lainnya.
generate
for (i = 0; i < WIDTH; i = i 8)
begin : my_loop
localparam j = i 7 > WIDTH-1 ? WIDTH-1 : i 7;
localparam k = BASE (i>>3); ...
endgenerate
Manual referensi bahasa Verilog (LRM) menyatakan aturan berikut:
Deklarasi modul dan item modul yang tidak diizinkan dalam pernyataan generate meliputi: parameter, parameter lokal, deklarasi input, deklarasi output, deklarasi keluaran, deklarasi keluaran, dan tentukan blok. 1364-2001 LRM 12.1.3
Untuk menghindari kesalahan dan mengimplementasikan fungsionalitas yang sama, masukkan pernyataan parameter lokal di dalam blok selalu seperti pada contoh di bawah ini:
generate for (i = 0; i < WIDTH; i = i 8) begin : my_loop always @(posedge clk or posedge reset) begin : my_params localparam j = i 7 > WIDTH-1 ? WIDTH-1 : i 7; localparam k = BASE i>>3); ... endgenerate