I’m using the OVM field automation macros and finding that the performance of the OVM packer is very poor.
First of all, the maximum packed size appears to be limited to OVM_STREAMBITS = 6000. This seems small for many common applications - (jumbo) ethernet frames or sonet frames to name a few. If you exceed this limit your packed output appears to be silently truncated.
Taking a quick look at the code I see that the pack_bytes method first packs to bits, then it manuallyconstructs bytes from there.
Is there a reason why the streaming capabilities of sv aren’t being used here? Am I wrong in thinking that this would be a more efficient implementation?
I suppose I can get around this by writing my own pack function, but that defeats the purpose of the macros.
Thanks,
Ryan