function bit [15:0] compute_crc16(const ref logic [7:0] bytes[],
input int unsigned offset = 0,
input integer len = -1);
logic [15:0] crc;
integer i;
if (len < 0) len = bytes.size() - offset;
crc = 16'hFFFF;
for (i = offset; i < offset+len && i < bytes.size(); i++) begin
// If any bit of the packed data is 'x', it
// will cause a run-time failure because of an
// invalid index in crc_table[]
if ((^bytes[i]) === 1'bx) begin
return 16'hXXXX;
end
crc = crc_table[crc[7:0] ^ bytes[i]] ^
input int unsigned offset = 0,
input integer len = -1);
logic [15:0] crc;
integer i;
if (len < 0) len = bytes.size() - offset;
crc = 16'hFFFF;
for (i = offset; i < offset+len && i < bytes.size(); i++) begin
// If any bit of the packed data is 'x', it
// will cause a run-time failure because of an
// invalid index in crc_table[]
if ((^bytes[i]) === 1'bx) begin
return 16'hXXXX;
end
crc = crc_table[crc[7:0] ^ bytes[i]] ^