參數最近,我遇到了以下問題:在軟件的Quartus我定義我的Verilog模塊如下:問題與的ModelSim
module module_name(
input [w1-1:0] in1,
input [w2-1:0] in2,
output [w1-1:0] out1
);
parameter w1 = 16;
parameter w2 = 8;
...
endmodule
此模塊沒有任何問題的編譯。但是,當我試圖在Modelsim(-Altera)10.3d中模擬該代碼時,出現以下錯誤:
(vlog-2730)未定義變量:'w1'。
(視頻博客-2388) 'IN1' 在此範圍內(MODULE_NAME)已經聲明
(視頻博客-2730)不確定變量: 'W2'。
...
標識必須用端口模式聲明:第1
標識必須用端口模式聲明:IN2
我發現了繞過這個問題與下面的代碼的方式:
module module_name(
in1,
in2,
out1
);
parameter w1 = 16;
parameter w2 = 8;
input [w1-1:0] in1;
input [w2-1:0] in2;
output [w1-1:0] out1;
...
endmodule
另一種方式也是使用下面的結構:
module module_name #(parameter w1 = 16, parameter w2 = 8)(
input [w1-1:0] in1,
input [w2-1:0] in2,
output [w1-1:0] out1
);
...
endmodule
但是:在使用此參數的輸入/輸出信號之後定義參數是否是非法的(Quartus建議不)?
看起來我正在尋找文檔中的錯誤位置(第6.20節)。謝謝。 – Qiu