As per spec, the burst length of wrap type should be 2,4,8 or 16. But at the same time it is also mentioned that burst length= AxLEN[7:0] +1, to accommodate the extended burst length of the INCR burst type in AXI4.
If my burst length value is 2 i.e [00000010] for wrap type, is 1 is implicitly added in this if not the we need to add it?
Explain this issue asap.
thanks in advance
Nothing is implicit.
Burst length = AxLEN[7:0] + 1
Depending on whether you are building an AXI Master/Slave, you need to make sure that the "Burst length" # of beats should be written out (for WR) or read in (for RD).
If you are using IP(s), then those IPs should exhibit this behavior.
If the burst type is WRAP you can only have AxLEN=8'b00000001 (2 transfer), 8'b00000011 (4 transfers), 8'b00000111 (8 transfers) or 8'b00001111 (16 transfers).
8'b00000010 indicates 3 transfers, so would be illegal for a wrapping burst.
The value encoded on AxLEN[7:0] requires you to add 1 to get the actual number of transfers, so giving you a range of between 1 and 256 transfers for INCR transactions (0 to 255 transfers would not make sense).