【发布时间】:2017-12-19 04:09:36
【问题描述】:
在generate 块内,我有多个if 语句。当我在第一个 if 语句中声明一条线时 - 我不能在其他 if 语句中使用它
请参阅以下我的模块的精简示例:
module my_module
#(parameter integer NUM_X_PORTS = 1,
parameter integer NUM_Y_PORTS = 1)
(
// port declarations
);
generate
if (NUM_X_PORTS > 0) begin
wire [NUM_X_PORTS-1:0] x1;
// logic filled in here
end
if (NUM_Y_PORTS > 0) begin
wire [NUM_Y_PORTS-1:0] y1;
// logic filled in here
end
if ((NUM_X_PORTS > 0) && (NUM_Y_PORTS > 0)) begin
for (i=0; i<NUM_Y_PORTS; i=i+1) begin
assign z[i] = y1[i] & |x1; // I can't use x1 and y1 here
end
endgenerate
来自 VCS 和 nLint 的错误消息是标识符 x1 和 y1 尚未声明。
但它们已在之前生成的 if 语句中声明 - 这里有什么问题?
【问题讨论】:
标签: declaration verilog