- packing: 将一组数据(item中的某些域 da sa payload)打包到一个比特数组(bit流)中。
- unpacking:将一个比特数组拆解成一组数据(item中的某些域 da sa payload)。
内含动态数组
`ifndef GUARD_PACKET
`define GUARD_PACKET
`include "uvm.svh"
import uvm_pkg::* ;
//Define the enumerated types for packet types
typedef enum {
GOOD_FCS, BAD_FCS } fcs_kind_t;
class Packet extends uvm_sequence_item;
rand fcs_kind_t fcs_kind;
rand bit [7:0] length;
rand bit [7:0] da;
rand bit [7:0] sa;
rand bit [7:0] data[];
rand byte fcs;
constraint payload_size_c {
data.size inside {
[1 : 6]};}
constraint length_c {
length == data.size; }
function new(string name = "");
super.new