要求在else之后结束的未知Verilog错误 模块空白( 输入[7:0]r1, 输入[7:0]g1, 输入[7:0]b1, 输入en1, 输出寄存器[7:0]r2, 输出寄存器[7:0]g2, 输出寄存器[7:0]b2, 输出en2 ); 始终@(*) 开始 如果(48
这是用于阈值的,我希望它能够检测人类肤色,并将其变为白色,将其他颜色变为黑色。有两个问题:要求在else之后结束的未知Verilog错误 模块空白( 输入[7:0]r1, 输入[7:0]g1, 输入[7:0]b1, 输入en1, 输出寄存器[7:0]r2, 输出寄存器[7:0]g2, 输出寄存器[7:0]b2, 输出en2 ); 始终@(*) 开始 如果(48,verilog,Verilog,这是用于阈值的,我希望它能够检测人类肤色,并将其变为白色,将其他颜色变为黑色。有两个问题: if else中的条件可能取决于输入,而不是输出 就像在C、Java等语言中一样,您需要在if else之后执行{},而在Verilog中,您需要begin end才能执行多个操作 您的代码应该如下所示: module blank( input[7:0]r1, input[7:0]g1, input[7:0]b1, input en1, output reg[7:0] r2, ou
if else
中的条件可能取决于输入,而不是输出if else
之后执行{}
,而在Verilog中,您需要begin end
才能执行多个操作module blank(
input[7:0]r1,
input[7:0]g1,
input[7:0]b1,
input en1,
output reg[7:0] r2,
output reg[7:0] g2,
output reg[7:0] b2,
output en2
);
always @(*)
begin
if ( 48 < r2 < 255 && 0 < g2 < 223 && 0 < b2 < 196 )
r2 = 255;
g2 = 255;
b2 = 255;
else
r2 = 0;
g2 = 0;
b2 = 0;
end
endmodule
始终@(*)
开始
如果(48
有两个问题:
if else
中的条件可能取决于输入,而不是输出if else
之后执行{}
,而在Verilog中,您需要begin end
才能执行多个操作module blank(
input[7:0]r1,
input[7:0]g1,
input[7:0]b1,
input en1,
output reg[7:0] r2,
output reg[7:0] g2,
output reg[7:0] b2,
output en2
);
always @(*)
begin
if ( 48 < r2 < 255 && 0 < g2 < 223 && 0 < b2 < 196 )
r2 = 255;
g2 = 255;
b2 = 255;
else
r2 = 0;
g2 = 0;
b2 = 0;
end
endmodule
始终@(*)
开始
如果(48
我同意Qui的评论,但还有一个问题。看起来您是一名Python程序员,认为48
会检查r1是否在48和255之间。这在Verilog中不起作用。相反,它将检查r1是否大于48,并由此产生0或1。然后,它将根据255检查0或1,这将始终为真。我重写了这个等式:
always @(*)
begin
if ( 48 < r1 && ... && b1 < 196 ) begin
r2 = 255;
g2 = 255;
b2 = 255;
end else begin
r2 = 0;
g2 = 0;
b2 = 0;
end
end
始终@(*)
开始
如果(48
我同意Qui的评论,但还有一个问题。看起来您是一名Python程序员,认为48
会检查r1是否在48和255之间。这在Verilog中不起作用。相反,它将检查r1是否大于48,并由此产生0或1。然后,它将根据255检查0或1,这将始终为真。我重写了这个等式:
always @(*)
begin
if ( 48 < r1 && ... && b1 < 196 ) begin
r2 = 255;
g2 = 255;
b2 = 255;
end else begin
r2 = 0;
g2 = 0;
b2 = 0;
end
end
始终@(*)
开始
如果(48
您得到的实际错误是什么?错误(10170):文本“else”附近blank.v(21)处的Verilog HDL语法错误;预期“结束”您有begin
,但您忘记了end
,但是您的代码还有其他问题。底部有end和endmodule,我忘了在代码中添加它抱歉!但是错误仍然是一样的,您得到的实际错误是什么?错误(10170):Verilog HDL语法错误位于blank.v(21)文本“else”附近;预期“结束”您有begin
,但您忘记了end
,但是您的代码还有其他问题。底部有end和endmodule,我忘了在代码中添加它抱歉!但是错误仍然是samethanks guy的帮助,仍然有一些错误,但是一旦我添加了assign en2=en1,错误就解决了:)感谢guy的帮助,仍然有一些错误,但是一旦我添加assign en2=en1,错误就解决了:)