summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Waterman2015-07-28 23:54:33 -0700
committerAndrew Waterman2015-07-28 23:54:33 -0700
commit6035ab90f10057561c679156a09087d638bf6cc9 (patch)
tree06ccd74b8d47faebc52dae0d1ed51d0fd38962b9 /src
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.
Diffstat (limited to 'src')
-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))