在Verilog中将整数分配给reg

Dem*_*act 7 verilog

我有这个Verilog代码的问题.基本上,它不会让我做Y = 3'di声明.基本上,我想要Y平等i.我很确定问题是i.那么,有没有办法在Verilog中做到这一点?此外,W是一个8位输入(换句话说,W[7:0]).

for (i = 7; i >= 0; i = i - 1)
begin
    if(W[i]) Y=3'di;
end
Run Code Online (Sandbox Code Playgroud)

谢谢.

Jef*_*ado 11

您可以使用括号选择位.

for (i = 7; i >= 0; i = i - 1)
begin
    if(W[i]) Y = i[2:0];
end
Run Code Online (Sandbox Code Playgroud)

但如果i声明为整数,则甚至不必要.然而,需要许多位Y自动匹配,您只需要LSB.