我有这个 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/

10-14 04:02