Enums SystemVerilog-使用枚举可以获得范围吗?

Enums SystemVerilog-使用枚举可以获得范围吗?,enums,verilog,system-verilog,Enums,Verilog,System Verilog,使用typedef枚举,您是否可以为未分配的值设置一个范围?例如: typedef bit [3:0] enum {BLUE = 4'h0, RED = 4'h1, OTHERS = 4'h2 to 4'hF}; 还是类似的?如果用户选择的值也未分配,会发生什么情况?枚举中不能有范围。不过,其余部分取决于您将如何使用它。例如,在案例陈述中: case(sel) BLUE: do-blue-function; RED: do-red-function; default: do-oth

使用typedef枚举,您是否可以为未分配的值设置一个范围?例如:

typedef bit [3:0] enum {BLUE = 4'h0, RED = 4'h1, OTHERS = 4'h2 to 4'hF};

还是类似的?如果用户选择的值也未分配,会发生什么情况?

枚举中不能有范围。不过,其余部分取决于您将如何使用它。例如,在案例陈述中:

case(sel)
  BLUE: do-blue-function;
  RED: do-red-function;
  default: do-other-function;
endcase

枚举中不能有范围。不过,其余部分取决于您将如何使用它。例如,在案例陈述中:

case(sel)
  BLUE: do-blue-function;
  RED: do-red-function;
  default: do-other-function;
endcase

系统Verilog中的枚举值可能超出范围。如果选择四状态类型作为基类型,则这在使用枚举描述FSM时特别有用,例如:

逻辑
的默认类型是
x
,因此默认情况下,上面的变量
状态
将具有值
3'bxxx
。因此,通过使用四状态基类型,我们可以对未初始化状态进行建模,以检查FSM是否已正确重置


因此,您会问“如果用户选择一个未赋值的值,会发生什么情况?”变量将具有该值,并且,如Serge的
案例中的
示例中所示,in将不等于任何已定义的枚举值。

System Verilog中的枚举值可能超出范围。如果选择四状态类型作为基类型,则这在使用枚举描述FSM时特别有用,例如:

逻辑
的默认类型是
x
,因此默认情况下,上面的变量
状态
将具有值
3'bxxx
。因此,通过使用四状态基类型,我们可以对未初始化状态进行建模,以检查FSM是否已正确重置

因此,您会问“如果用户选择一个未赋值的值,会发生什么情况?”变量将具有该值,并且,如Serge的
案例
示例中所示,in将不等于任何定义的枚举值