summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjackbackrack2015-07-07 10:59:32 -0700
committerjackbackrack2015-07-07 10:59:32 -0700
commit0774d0c7fe842fad66735c4984951098b35798c3 (patch)
treec9546c2de52db6eaac197ee963cb7e144702b4bd
parente125a232e6ffcd36f20a2baf73460186ea71f5c0 (diff)
change MInt to BitPat
-rw-r--r--src/main/scala/Core.scala15
-rw-r--r--src/main/scala/utils.scala4
2 files changed, 9 insertions, 10 deletions
diff --git a/src/main/scala/Core.scala b/src/main/scala/Core.scala
index a67c5046..870d1bee 100644
--- a/src/main/scala/Core.scala
+++ b/src/main/scala/Core.scala
@@ -234,7 +234,6 @@ case class DefUInt(val id: String, val value: BigInt, val width: Int) extends De
case class DefSInt(val id: String, val value: BigInt, val width: Int) extends Definition;
case class DefFlo(val id: String, val value: Float) extends Definition;
case class DefDbl(val id: String, val value: Double) extends Definition;
-case class DefMInt(val id: String, val value: String, val width: Int) extends Definition;
case class DefPrim(val id: String, val kind: Kind, val op: PrimOp, val args: Array[Arg], val lits: Array[BigInt]) extends Definition;
case class DefWire(val id: String, val kind: Kind) extends Definition;
case class DefRegister(val id: String, val kind: Kind) extends Definition;
@@ -550,7 +549,7 @@ trait VecLike[T <: Data] extends collection.IndexedSeq[T] {
import Literal._
-class MInt(val value: String, val width: Int) extends Data(NO_DIR) {
+class BitPat(val value: String, val width: Int) extends Data(NO_DIR) {
def cloneTypeWidth(width: Int): this.type = cloneType
def collectElts: Unit = { }
override def dir: Direction = NO_DIR
@@ -559,8 +558,8 @@ class MInt(val value: String, val width: Int) extends Data(NO_DIR) {
override def getWidth: Int = width
override def flatten: Array[Bits] = Array[Bits](Bits(0))
override def cloneType: this.type =
- new MInt(value, width).asInstanceOf[this.type]
- def fromInt(x: BigInt): MInt = MInt(x.toString(2), -1).asInstanceOf[this.type]
+ new BitPat(value, width).asInstanceOf[this.type]
+ def fromInt(x: BigInt): BitPat = BitPat(x.toString(2), -1).asInstanceOf[this.type]
val (bits, mask, swidth) = parseLit(value)
def zEquals(other: Bits): Bool =
(Bits(toLitVal(mask, 2)) & other) === Bits(toLitVal(bits, 2))
@@ -568,13 +567,13 @@ class MInt(val value: String, val width: Int) extends Data(NO_DIR) {
def != (other: Bits): Bool = !zEquals(other)
}
-object MInt {
+object BitPat {
def mintLit(n: String, width: Int) = {
assert(n(0) == 'b', "BINARY MINTS ONLY")
- new MInt(n.substring(1, n.length), width)
+ new BitPat(n.substring(1, n.length), width)
}
- def apply(value: String, width: Int): MInt = mintLit(value, width)
- def apply(value: String): MInt = apply(value, -1)
+ def apply(value: String, width: Int): BitPat = mintLit(value, width)
+ def apply(value: String): BitPat = apply(value, -1)
}
abstract class Element(dirArg: Direction, val width: Int) extends Data(dirArg) {
diff --git a/src/main/scala/utils.scala b/src/main/scala/utils.scala
index f3642822..0fb275d6 100644
--- a/src/main/scala/utils.scala
+++ b/src/main/scala/utils.scala
@@ -187,7 +187,7 @@ object MuxCase {
}
object ListLookup {
- def apply[T <: Data](addr: UInt, default: List[T], mapping: Array[(MInt, List[T])]): List[T] = {
+ def apply[T <: Data](addr: UInt, default: List[T], mapping: Array[(BitPat, List[T])]): List[T] = {
val map = mapping.map(m => (m._1 === addr, m._2))
default.zipWithIndex map { case (d, i) =>
map.foldRight(d)((m, n) => Mux(m._1, m._2(i), n))
@@ -196,7 +196,7 @@ object ListLookup {
}
object Lookup {
- def apply[T <: Bits](addr: UInt, default: T, mapping: Seq[(MInt, T)]): T =
+ def apply[T <: Bits](addr: UInt, default: T, mapping: Seq[(BitPat, T)]): T =
ListLookup(addr, List(default), mapping.map(m => (m._1, List(m._2))).toArray).head
}