Another SystemVerilog Streaming Example: Size Mismatch
I had a packed struct who's size was not evenly divisible by 8 (it was one bit short, in fact) and I had an array of bytes that I needed to stream into it. The extra bits in the array of bytes were not relevant, so I tried just doing this:
But my simulator complained that my_array_of_bytes was bigger than the destination (my_struct). It took me longer to figure out than I'd like to admit that I just needed to do this:
That did the trick.
my_struct = {>>byte{my_array_of_bytes}};
But my simulator complained that my_array_of_bytes was bigger than the destination (my_struct). It took me longer to figure out than I'd like to admit that I just needed to do this:
bit extra_bit;
{my_struct, extra_bit} = {>>byte{my_array_of_bytes}};
That did the trick.
Comments