verilog这句怎么理解?
时间:12-12
整理:3721RD
点击:
在Synopsis某IP里看到这么一句 (其中a 和 b 都是wire [15:0] )
assign a[15:1] = (a[14:0] | b[14:0]);
assign a[15:1] = (a[14:0] | b[14:0]);
这不就是最简单的位或操作吗。。
a和b的每一位都向或,赋值给a
位或我当然知道 问题时 verilog的wire 还带这么玩的? 难道不是逻辑环吗?
我懂了 没仔细分析 他正好错1位赋值 最后a的值只由a[0]和b[14:0] 决定
分成每一比特再看看
等效代码:
for (ii = 1; ii < 16; ii = ii + 1) begin
a[ii] = a[ii-1] | b[ii-1];
end