Enums 作为输入或输出的枚举类型

Enums 作为输入或输出的枚举类型,enums,verilog,system-verilog,Enums,Verilog,System Verilog,在Systemveilog中,是否有任何方法可以将枚举类型变量传递给其他模块?也就是说,将枚举类型变量定义为输入或输出。是否有可用的示例?是的,您可以这样做,但需要在公共包中使用typedef,以使枚举分配兼容。然后,您可以像使用任何数据类型一样在端口中使用枚举 package myCommon; typedef enum {ONE,TWO} e_t; endpackage module first import myCommon::*; (output e_t p1); endmodule

在Systemveilog中,是否有任何方法可以将枚举类型变量传递给其他模块?也就是说,将枚举类型变量定义为输入或输出。是否有可用的示例?

是的,您可以这样做,但需要在公共包中使用
typedef
,以使枚举分配兼容。然后,您可以像使用任何数据类型一样在端口中使用枚举

package myCommon;
  typedef enum {ONE,TWO} e_t;
endpackage
module first import myCommon::*; (output e_t p1);
endmodule
module second import myCommon::*; (input e_t p2);
endmodule
module top;
  import myCommon::*;
  e_t e;
  first f(.p1(e));
  second s(.p2(e));
endmodule

IEEE标准1800-2012:有效。谢谢我想你指的是typedef enum{1,2}e\t;在代码中。顺便问一下,你知道这东西是怎么合成的吗?我想使用此枚举类型来指示不同的状态。在旧式编程中,我可以使用寄存器和参数来进行状态标记。我知道它将被合成为寄存器。但对于这一点,我不知道。我相信可以使用枚举变量作为状态寄存器,就像使用参数作为变量的值一样。除了您现在有wll这样的类型安全性,还有其他用于操作状态的枚举方法。