diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/scala/Chisel/Data.scala | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/main/scala/Chisel/Data.scala b/src/main/scala/Chisel/Data.scala index 2ae9ec63..fa6e5729 100644 --- a/src/main/scala/Chisel/Data.scala +++ b/src/main/scala/Chisel/Data.scala @@ -93,8 +93,11 @@ abstract class Data(dirArg: Direction) extends HasId { def fromBits(n: Bits): this.type = { var i = 0 val wire = Wire(this.cloneType) + val bits = + if (n.width.known && n.width.get >= wire.width.get) n + else Wire(n.cloneTypeWidth(wire.width), init = n) for (x <- wire.flatten) { - x := n(i + x.getWidth-1, i) + x := bits(i + x.getWidth-1, i) i += x.getWidth } wire.asInstanceOf[this.type] |
