结构中字段的大小

时间:2018-05-31 22:33:36

标签: structure system-verilog bits

有没有办法获得结构中字段的大小?例如,$ bits不起作用。任何其他方法?

localparam L_DATA_BITS      = $bits(pkt_char_t.length);

typedef struct packed {
   logic [15:0]   checksum;
   logic [3:0]    offload_flags;
   logic          length_err;
   logic [13:0]   length;
   } pkt_char_t;

1 个答案:

答案 0 :(得分:0)

无法引用某个类型的字段。在定义之前,您也无法引用类型。

可以引用变量或参数的字段。

module top;
   typedef struct packed {
   logic [15:0]   checksum;
   logic [3:0]    offload_flags;
   logic          length_err;
   logic [13:0]   length;
   } pkt_char_t;

   pkt_char_t pkt_char;
   localparam int L_DATA_BITS =  $bits(pkt_char.length);
   initial $display(L_DATA_BITS);
endmodule