aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/WIR.scala
diff options
context:
space:
mode:
authorazidar2016-01-29 18:14:41 -0800
committerazidar2016-02-09 18:55:25 -0800
commit0181686fe4bdf24f9e22f406c43dbeb98789cb8b (patch)
tree1b99f826c9f58a9119e030a0ec53de3b9a002c2f /src/main/scala/firrtl/WIR.scala
parente2177899c82e464f853e4daf8d23c11d27ca5157 (diff)
WIP. Got to-working-ir working
Diffstat (limited to 'src/main/scala/firrtl/WIR.scala')
-rw-r--r--src/main/scala/firrtl/WIR.scala36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/main/scala/firrtl/WIR.scala b/src/main/scala/firrtl/WIR.scala
new file mode 100644
index 00000000..27ec5516
--- /dev/null
+++ b/src/main/scala/firrtl/WIR.scala
@@ -0,0 +1,36 @@
+
+package firrtl
+
+import scala.collection.Seq
+import Utils._
+
+
+trait Kind
+case class WireKind() extends Kind
+case class PoisonKind() extends Kind
+case class RegKind() extends Kind
+case class InstanceKind() extends Kind
+case class PortKind() extends Kind
+case class NodeKind() extends Kind
+case class MemKind(ports:Seq[String]) extends Kind
+case class ExpKind() extends Kind
+
+trait Gender
+case object MALE extends Gender
+case object FEMALE extends Gender
+case object BIGENDER extends Gender
+case object UNKNOWNGENDER extends Gender
+
+case class BoolType() extends Type { UIntType(IntWidth(1)) }
+case class WRef(name:String,tpe:Type,kind:Kind,gender:Gender) extends Expression
+case class WSubField(exp:Expression,name:String,tpe:Type,gender:Gender) extends Expression
+case class WSubIndex(exp:Expression,value:BigInt,tpe:Type,gender:Gender) extends Expression
+case class WSubAccess(exp:Expression,index:Expression,tpe:Type,gender:Gender) extends Expression
+case class WVoid() extends Expression
+case class WInvalid() extends Expression
+
+case class WDefInstance(info:Info,name:String,module:String,tpe:Type) extends Stmt
+
+//case class IntWidth(width: BigInt) extends Width
+//case object UnknownWidth extends Width
+