这是一个示例,如何定义枚举类型的2*n数组{s0,s1,s2,s3}:
typedef enum logic [N-1:0][1:0]{S0,S1,S2,S3} state_t; (*)
因此,上述2*n数组的每个元素都可以是S0或S1或S2或S3。
假设我将{s0,s1,s2,s3}定义为单独的枚举类型:
typedef enum {S0,S1,S2,S3} st_t;
那么我现在如何重写语句(*(?
是否可以按以下方式重新编写?
typedef enum st_t [N-1:0][1:0] state_t; (**)
谢谢!
正如Serge所建议的那样,这可能会起作用:
typedef enum {S0,S1,S2,S3} st_t;
typedef st_t [N-1:0][1:0] state_t;
除此之外,根据枚举类型,您也可以做类似的事情:
typedef enum logic [1:0] {S0,S1,S2,S3} st_t_new;
typedef st_t_new [N-1:0] state_t;