Reply To: Configuring the AXI-Lite WSTRB
Why OSVVM™? › Forums › OSVVM › Configuring the AXI-Lite WSTRB › Reply To: Configuring the AXI-Lite WSTRB
Hey,
So this is an atypical use case for sure.
Usually I use the Axi4Lite VC as ‘normal’ and if, for instance, I was sending 32-bit data to some addresses I would do:
write(trans_rec, x”0000″, x”DEADBEEF”);
write(trans_rec, x”0004″, x”DEADBEEF”);
write(trans_rec, x”0008″, x”DEADBEEF”);
Where the base address is increasing by x”4″. to account for the 4 bytes of data being written to memory.
In this case the final destination for these writes increments by x”1″. So the writes look like:
write(trans_rec, x”0000″, x”DEADBEEF”); –WSTRB = 1111
write(trans_rec, x”0001″, x”DEADBEEF”); –WSTRB = 1110
write(trans_rec, x”0002″, x”DEADBEEF”); –WSTRB = 1100
write(trans_rec, x”0003″, x”DEADBEEF”); –WSTRB = 1000
write(trans_rec, x”0004″, x”DEADBEEF”); –WSTRB = 1111
But in doing this the WSTRB parameter is taking on the values listed as a comment above. The result being that only the upper bits corresponding to the WSTRB 1’s for sends to x”0001″, x”0002″, and x”0003″ are considered part of the write.
Could I ask where exactly you would need to or the WSTRB bits to so that as long as 1 bit is 1 the full send is valid? Would that need to occur within the OSVVM test bench or the VC itself?