summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Waterman2015-07-28 23:54:33 -0700
committerAndrew Waterman2015-07-28 23:54:33 -0700
commit6035ab90f10057561c679156a09087d638bf6cc9 (patch)
tree06ccd74b8d47faebc52dae0d1ed51d0fd38962b9
parent6b272324836f9b53c9953f538def080975cb4a93 (diff)
toBits and fromBits must be inverse operations
For Vec and Bundle, toBits and fromBits got the flattening order wrong and so weren't inverses of each other.
-rw-r--r--src/main/scala/Chisel/Core.scala4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/main/scala/Chisel/Core.scala b/src/main/scala/Chisel/Core.scala
index 3e03b199..eadba100 100644
--- a/src/main/scala/Chisel/Core.scala
+++ b/src/main/scala/Chisel/Core.scala
@@ -337,7 +337,7 @@ abstract class Data(dirArg: Direction) extends Id {
def fromBits(n: Bits): this.type = {
var i = 0
val wire = Wire(this.cloneType)
- for (x <- wire.flatten.reverse) {
+ for (x <- wire.flatten) {
x := n(i + x.getWidth-1, i)
i += x.getWidth
}
@@ -962,7 +962,7 @@ class Bundle(dirArg: Direction = NO_DIR) extends Aggregate(dirArg) {
}
}
}
- elts sortWith (_._2._id < _._2._id)
+ elts sortWith (_._2._id > _._2._id)
}
override def collectElts =
sortedElts.foreach(e => setFieldForId(cid, e._2.cid, e._1))