Пользовательские типы данных

Пользовательские типы данных

В SystemVerilog можно создавать свои типы данных:

  1. Typedef
  2. Enum
  3. Union
  4. Struct
  5. Class

Типы данных typedef

Новый тип данных можно создать с помощью typedef:

  1. typedef int MyIntType;

Объявление переменных этого типа:

  1. MyIntType a, b;

Пользовательский тип можно использовать до его определения:

  1. typedef foo;
  2. foo f = 1;
  3. typedef int foo;
Переменные типа enum должны быть определены до использования

Для идентификаторов пользовательских типов данных справедливы те же правила, что и для обычных идентификаторов данных, за исключением иерархического обращения. Обращение к идентификатору типа, определенного в интерфейсе, возможно только после его локального переопределения:

  1. interface intf_i;
  2. typedef int data_t;
  3. endinterface
  4. module sub(intf_i p)
  5. typedef p.data_t my_data_t;
  6. my_data_t data; // ’data’ будет типа int
  7. endmodule

Примеры создания различных пользовательских типов данных:

  1. typedef enum type_declaration_identifier;
  2. typedef struct type_declaration_identifier;
  3. typedef union type_declaration_identifier;
  4. typedef class type_declaration_identifier;
  5. typedef type_declaration_identifier;

Share this post