Пользовательские типы данных
В SystemVerilog можно создавать свои типы данных:
- Typedef
- Enum
- Union
- Struct
- Class
Типы данных typedef
Новый тип данных можно создать с помощью typedef:
- typedef int MyIntType;
Объявление переменных этого типа:
- MyIntType a, b;
Пользовательский тип можно использовать до его определения:
Переменные типа enum должны быть определены до использования
- typedef foo;
- foo f = 1;
- typedef int foo;
Для идентификаторов пользовательских типов данных справедливы те же правила, что и для обычных идентификаторов данных, за исключением иерархического обращения. Обращение к идентификатору типа, определенного в интерфейсе, возможно только после его локального переопределения:
- 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;