From 13bf0218e7e9fe3fb336a9fe5cd18d7e262e4a03 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Tue, 4 Aug 2015 00:27:43 -0700 Subject: Add better cloneTypeWidth and deprecate old one --- src/main/scala/Chisel/utils.scala | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/main/scala/Chisel/utils.scala') diff --git a/src/main/scala/Chisel/utils.scala b/src/main/scala/Chisel/utils.scala index b0255ef9..b1e6eb20 100644 --- a/src/main/scala/Chisel/utils.scala +++ b/src/main/scala/Chisel/utils.scala @@ -94,7 +94,10 @@ object Mux1H if (in.tail.isEmpty) in.head._2 else { val masked = in map {case (s, i) => Mux(s, i.toBits, Bits(0))} - in.head._2.fromBits(masked.reduceLeft(_|_)) + val width = + if (in.forall(_._2.knownWidth)) Some(in.map(_._2.getWidth).max) + else None + in.head._2.cloneTypeWidth(width).fromBits(masked.reduceLeft(_|_)) } } def apply[T <: Data](sel: UInt, in: Seq[T]): T = -- cgit v1.2.3