размер поля в структуре - PullRequest
0 голосов
/ 01 июня 2018

Есть ли способ получить размер поля в структуре?Например, $ 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 голосов
/ 01 июня 2018

Вы не можете ссылаться на поле типа.Вы также не можете ссылаться на тип, прежде чем он будет определен.

Вы можете ссылаться на поле переменной или параметра.

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
...