From 3491ba89859e4b45b557485025ffe8cf5e298b54 Mon Sep 17 00:00:00 2001 From: Edward Wang Date: Tue, 21 Aug 2018 18:36:13 -0700 Subject: Implement varargs MixedVec API --- src/main/scala/chisel3/util/MixedVec.scala | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/main') diff --git a/src/main/scala/chisel3/util/MixedVec.scala b/src/main/scala/chisel3/util/MixedVec.scala index a687c4cd..ec15e23a 100644 --- a/src/main/scala/chisel3/util/MixedVec.scala +++ b/src/main/scala/chisel3/util/MixedVec.scala @@ -24,6 +24,13 @@ object MixedVecInit { } hetVecWire } + + /** + * Construct a new wire with the given bound values. + * This is analogous to [[chisel3.core.VecInit]]. + * @return MixedVec with given values assigned + */ + def apply[T <: Data](val0: T, vals: T*): MixedVec[T] = apply(val0 +: vals.toSeq) } object MixedVec { @@ -34,6 +41,19 @@ object MixedVec { */ def apply[T <: Data](eltsIn: Seq[T]): MixedVec[T] = new MixedVec(eltsIn) + /** + * Create a MixedVec from that holds the given types. + * The types passed to this constructor must be Chisel types. + * @return MixedVec with the given types. + */ + def apply[T <: Data](val0: T, vals: T*): MixedVec[T] = new MixedVec(val0 +: vals.toSeq) + + /** + * Create a new MixedVec from an unbound MixedVec type. + * @return MixedVec with the given types. + */ + def apply[T <: Data](mixedVec: MixedVec[T]): MixedVec[T] = new MixedVec(mixedVec.elts) + /** * Create a MixedVec from the type of the given Vec. * For example, given a Vec(2, UInt(8.W)), this creates MixedVec(Seq.fill(2){UInt(8.W)}). -- cgit v1.2.3