我有这个 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
谢谢。
最佳答案
您可以使用括号选择位。
for (i = 7; i >= 0; i = i - 1)
begin
if(W[i]) Y = i[2:0];
end
但是如果
i
被声明为一个整数,它甚至没有必要。无论多少位都适合 Y
自动,您只需要 LSB。关于verilog - 在Verilog中为reg分配整数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3951481/