zxq6 发表于 2016-12-18 11:08:15

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行,赋值里面这一个,里面,冒号之前的减号是啥意思?

yuyu87 发表于 2016-12-18 11:45:05

可以编译通过么?

zaldy30 发表于 2016-12-18 12:11:34

S_AXIS_TDATA[(byte_index*8+7) -: 8] 等价于
S_AXIS_TDATA[(byte_index*8+7): ((byte_index*8+7)-8)]
---以前问来的

RAMILE 发表于 2016-12-18 14:49:40

byte_index*8+7   左移3位,然后填充1,这种写法mark

fy_bk 发表于 2016-12-18 19:53:47

Mark一下

vipjph 发表于 2016-12-18 20:17:56

从S_AXIS_TDATA(byte_index*8+7)开始,往-方向数8个bit,把这八个bit赋值给stream_data_fifo。
这个是verilog 2001的标准,搜索Verilog2001和Verilog 1995的区别 一下就明白了。

lanliang714 发表于 2016-12-18 20:20:07

本帖最后由 lanliang714 于 2016-12-18 20:21 编辑

+:向上增长
-:向下增长

yf869778412 发表于 2016-12-19 08:12:05

学习了!

bad_fpga 发表于 2016-12-19 08:39:06

VERILOG 学习了,MARK
页: [1]
查看完整版本: Verilog大虾能不能帮忙解释下这么句话是啥意思?