aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/WIR.scala
diff options
context:
space:
mode:
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
+