diff options
| author | Andrew Waterman | 2015-07-28 23:54:33 -0700 |
|---|---|---|
| committer | Andrew Waterman | 2015-07-28 23:54:33 -0700 |
| commit | 6035ab90f10057561c679156a09087d638bf6cc9 (patch) | |
| tree | 06ccd74b8d47faebc52dae0d1ed51d0fd38962b9 | |
| parent | 6b272324836f9b53c9953f538def080975cb4a93 (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.scala | 4 |
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)) |
