首页 文章

如何在系统verilog中声明它的文件之外的类中使用枚举类型

提问于
浏览
1

所以我在bool_struct.sv中有以下代码:

typedef enum {false=0, true=1} bool;
class my_bool_class;
    bool my_bool_value;

    function new (bool initial_bool_value)
        my_bool_value = initial_bool_value;
    endfunction

endclass

在checker.sv中我想做以下事情:

class checker;
    my_bool_class bool_class_handle = new(true)
endclass

我的问题是,这会编译吗?我想新调用中的“true”将超出typedef的范围,所以它不会 . 如何在新的工作电话中获得“真实”?

1 回答

  • 1

    枚举类型的 typedef 声明所有标签以及同一级别的枚举(这就是为什么不能在同一范围内声明具有重叠标签的两个不同枚举的原因) .

    您应该始终做的是将 typedef 和类声明放在 package ,然后 import 将要使用的包 boolfalsetruemy_bool .

    http://go.mentor.com/package-import-versus-include

相关问题