在 Verilog 中将整数分配给 reg
我对这个 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
谢谢。
I have problems with this Verilog code. Basically, it won't let me do the Y = 3'di
statement. Basically, I want Y
to equal i
. I am pretty sure the problem is the i
. So, is there a way to do this in Verilog? Also, W
is an input with 8 bits (in other words, W[7:0]
).
for (i = 7; i >= 0; i = i - 1)
begin
if(W[i]) Y=3'di;
end
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用括号选择位。
但如果
i
被声明为整数,则甚至没有必要。无论多少位都会自动放入Y
中,而您只需要 LSB。You can select bits using brackets .
But it isn't even necessary if
i
was declared to be an integer. It will take however many bits fit inY
automatically and you only wanted the LSBs.您可能希望在此处使用
case
语句:这使得优先级对于代码的读者来说更加明显。
You might wish to use a
case
statement here:This makes the priority more obvious to readers of your code.
我发现最好使用状态机来执行“for-loop”例程。
像这样的事情:
希望这有帮助......
I have found that its better to use state machines to do "for-loop" routine.
Something like this:
Hope this helps...