5. Пользовательские типы данных
В SystemVerilog можно создавать свои типы данных:
- Typedef
- Enum
- Union
- Struct
- Class
Типы данных typedef
Новый тип данных можно создать с помощью typedef:
typedef int MyIntType;
Объявление переменных этого типа:
MyIntType a, b;
Пользовательский тип можно использовать до его определения:
typedef foo; foo f = 1; typedef int foo;Переменные типа enum должны быть определены до использования
Для идентификаторов пользовательских типов данных справедливы те же правила, что и для обычных идентификаторов данных, за исключением иерархического обращения. Обращение к идентификатору типа, определенного в интерфейсе, возможно только после его локального переопределения:
interface intf_i;
typedef int data_t;
endinterface
module sub(intf_i p)
typedef p.data_t my_data_t;
my_data_t data; // ’data’ будет типа int
endmodule
Примеры создания различных пользовательских типов данных:
typedef enum type_declaration_identifier; typedef struct type_declaration_identifier; typedef union type_declaration_identifier; typedef class type_declaration_identifier; typedef type_declaration_identifier;

Комментарии (0)