Recently I've noticed the following in the documentation for the AXI4-Stream protocol from ARM (found here):
Recommended assertion for TUSER as per ARM
I thought it was interesting that TUSER must be initialized during the deassertion of reset, contrary to other signals (such as TLAST, TDATA, TDEST, etc.), which need only be initialized after the assertion of TVALID. What is the reason for this? Do you know any practical case where it would be useful to have the value of TUSER set before the assertion of TVALID? I haven't found anything in the rest of the documentation that elucidates this.
I've found this detail while trying out an IP, and noticing it did not pass one of the checks in an AXI4-Stream protocol checker, which is this. I thought it was weird that the protocol demands TUSER to be initialized before the assertion of TVALID.