多输入和门的行为设计
Behavioral designing of a multiple input and gate
我试图连接 3 个 2 对 1 与门,以使用更行为化的设计获得 4 对 1 与门。
我不断收到错误,无法编译模块。
有人可以帮忙吗? (我知道使用 y = &x
的可能性,但我正在尝试不同的方法 :))
module and4_gateb(x, y);
input [3:0] x;
reg y;
output y;
integer i;
y = x[0];
initial begin
for(i=1; i<4; i= i+1) begin
y = y&x[i];
end
end
endmodule
您收到这些错误消息是因为您将 y
声明为 reg
,并且您需要在 initial
等程序块内对 reg
进行赋值.
在我修复了那个编译错误之后,我也收到了一个警告,因为你需要先将 y
声明为 output
,然后再将其声明为 reg
:
module and4_gateb(x, y);
input [3:0] x;
output y;
reg y;
integer i;
initial begin
y = x[0];
for(i=1; i<4; i= i+1) begin
y = y&x[i];
end
end
endmodule
这是一种使用 ANSI 样式声明来简化端口声明的方法:
module and4_gateb (
input [3:0] x,
output reg y
);
integer i;
initial begin
y = x[0];
for(i=1; i<4; i= i+1) begin
y = y&x[i];
end
end
endmodule
这种方式不太容易出错,因为你只需要提到每个信号一次(而不是 2 或 3 次)。
我试图连接 3 个 2 对 1 与门,以使用更行为化的设计获得 4 对 1 与门。 我不断收到错误,无法编译模块。
有人可以帮忙吗? (我知道使用 y = &x
的可能性,但我正在尝试不同的方法 :))
module and4_gateb(x, y);
input [3:0] x;
reg y;
output y;
integer i;
y = x[0];
initial begin
for(i=1; i<4; i= i+1) begin
y = y&x[i];
end
end
endmodule
您收到这些错误消息是因为您将 y
声明为 reg
,并且您需要在 initial
等程序块内对 reg
进行赋值.
在我修复了那个编译错误之后,我也收到了一个警告,因为你需要先将 y
声明为 output
,然后再将其声明为 reg
:
module and4_gateb(x, y);
input [3:0] x;
output y;
reg y;
integer i;
initial begin
y = x[0];
for(i=1; i<4; i= i+1) begin
y = y&x[i];
end
end
endmodule
这是一种使用 ANSI 样式声明来简化端口声明的方法:
module and4_gateb (
input [3:0] x,
output reg y
);
integer i;
initial begin
y = x[0];
for(i=1; i<4; i= i+1) begin
y = y&x[i];
end
end
endmodule
这种方式不太容易出错,因为你只需要提到每个信号一次(而不是 2 或 3 次)。