Verilog大虾能不能帮忙解释下这么句话是啥意思?
always @( posedge S_AXIS_ACLK )begin
if (fifo_wren)// && S_AXIS_TSTRB)
begin
stream_data_fifo <= S_AXIS_TDATA[(byte_index*8+7) -: 8];
end
end
如上,第5行,赋值里面这一个,里面,冒号之前的减号是啥意思? 可以编译通过么? S_AXIS_TDATA[(byte_index*8+7) -: 8] 等价于
S_AXIS_TDATA[(byte_index*8+7): ((byte_index*8+7)-8)]
---以前问来的
byte_index*8+7 左移3位,然后填充1,这种写法mark Mark一下 从S_AXIS_TDATA(byte_index*8+7)开始,往-方向数8个bit,把这八个bit赋值给stream_data_fifo。
这个是verilog 2001的标准,搜索Verilog2001和Verilog 1995的区别 一下就明白了。 本帖最后由 lanliang714 于 2016-12-18 20:21 编辑
+:向上增长
-:向下增长 学习了! VERILOG 学习了,MARK
页:
[1]