An annotation for strong enum instances that are not inside of Vecs
An annotation for strong enum instances that are not inside of Vecs
the enum instance being annotated
An annotation for enum types (rather than enum instances).
An annotation for enum types (rather than enum instances).
the name of the enum's type (e.g. "mypackage.MyEnum")
a map describing which integer values correspond to which enum names
An annotation for Vecs of strong enums.
An annotation for Vecs of strong enums.
The fields parameter deserves special attention, since it may be difficult to understand. Suppose you create a the following Vec:
VecInit(new Bundle { val e = MyEnum() val b = new Bundle { val inner_e = MyEnum() } val v = Vec(3, MyEnum()) }
Then, the fields parameter will be: Seq(Seq("e"), Seq("b", "inner_e"), Seq("v")). Note that for any Vec that doesn't contain Bundles, this field will simply be an empty Seq.
the Vec being annotated
the name of the enum's type (e.g. "mypackage.MyEnum")
a list of all chains of elements leading from the Vec instance to its inner enum fields.