此錯誤僅在 Quartus® II 軟體版本 6.0 (包括 6.0 SP1) 中發生,如果設計使用產生對帳單的內部本機param 聲明,例如如下範例,因為該軟體比所有其他版本更嚴格地執行某些 Verilog 語言規則。
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
Verilog 語言參考手冊 (LRM) 說明下列規則:
產生聲明中不允許的模組宣告與模組專案包括:參數、本機參數、輸入聲明、輸出宣告、輸出宣告與指定模組。1364-2001 LRM 12.1.3
為了避免錯誤並執行相同的功能,請將本機參數對帳單放在一個永遠的區塊內,如下列範例:
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