12fbf1245SXuan Hupackage utils 22fbf1245SXuan Hu 3*39c59369SXuan Huimport chisel3._ 4*39c59369SXuan Huimport chisel3.util._ 52fbf1245SXuan Huobject SeqUtils { 6*39c59369SXuan Hu type Seq2[+T] = Seq[Seq[T]] 7*39c59369SXuan Hu type Seq3[+T] = Seq2[Seq[T]] 8*39c59369SXuan Hu type MixedVec2[T <: Data] = MixedVec[MixedVec[T]] 9*39c59369SXuan Hu type MixedVec3[T <: Data] = MixedVec2[MixedVec[T]] 10*39c59369SXuan Hu 11*39c59369SXuan Hu def mapToMixedVec[T, A <: Data](in: Seq[T], f: T => A): MixedVec[A] = { 12*39c59369SXuan Hu MixedVec(in.map(f)) 13*39c59369SXuan Hu } 14*39c59369SXuan Hu 15*39c59369SXuan Hu def mapToMixedVec2[T, A <: Data](in: Seq2[T], f: T => A): MixedVec2[A] = { 16*39c59369SXuan Hu MixedVec(in.map(x => mapToMixedVec(x, f))) 17*39c59369SXuan Hu } 18*39c59369SXuan Hu 19*39c59369SXuan Hu def mapToMixedVec3[T, A <: Data](in: Seq3[T], f: T => A): MixedVec3[A] = { 20*39c59369SXuan Hu MixedVec(in.map(x => mapToMixedVec2(x, f))) 21*39c59369SXuan Hu } 222fbf1245SXuan Hu} 23