diff options
| author | ducky | 2018-05-02 11:45:22 -0700 |
|---|---|---|
| committer | Richard Lin | 2018-07-04 18:39:28 -0500 |
| commit | b74034446223db6731c7e4f2eb362b3349efc8be (patch) | |
| tree | 317b55c2c2a11217dc452addb427e57bdac3a2c5 /chiselFrontend/src/main/scala/chisel3/core/Binding.scala | |
| parent | 3d8064a9f2fd49bffb402b91131087c19ca7d6fc (diff) | |
Infrastructure for bundle literals
Diffstat (limited to 'chiselFrontend/src/main/scala/chisel3/core/Binding.scala')
| -rw-r--r-- | chiselFrontend/src/main/scala/chisel3/core/Binding.scala | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/chiselFrontend/src/main/scala/chisel3/core/Binding.scala b/chiselFrontend/src/main/scala/chisel3/core/Binding.scala index d60fb723..ecec3676 100644 --- a/chiselFrontend/src/main/scala/chisel3/core/Binding.scala +++ b/chiselFrontend/src/main/scala/chisel3/core/Binding.scala @@ -1,6 +1,7 @@ package chisel3.core import chisel3.internal.Builder.{forcedModule} +import chisel3.internal.firrtl.LitArg object Binding { class BindingException(message: String) extends Exception(message) @@ -92,8 +93,6 @@ sealed trait ConstrainedBinding extends TopBinding { // A binding representing a data that cannot be (re)assigned to. sealed trait ReadOnlyBinding extends TopBinding -// TODO literal info here -case class LitBinding() extends UnconstrainedBinding with ReadOnlyBinding // TODO(twigg): Ops between unenclosed nodes can also be unenclosed // However, Chisel currently binds all op results to a module case class OpBinding(enclosure: UserModule) extends ConstrainedBinding with ReadOnlyBinding @@ -108,3 +107,9 @@ case class ChildBinding(parent: Data) extends Binding { // A DontCare element has a specific Binding, somewhat like a literal. // It is a source (RHS). It may only be connected/applied to sinks. case class DontCareBinding() extends UnconstrainedBinding + +sealed trait LitBinding extends UnconstrainedBinding with ReadOnlyBinding +// Literal binding attached to a element that is not part of a Bundle. +case class ElementLitBinding(litArg: LitArg) extends LitBinding +// Literal binding attached to the root of a Bundle, containing literal values of its children. +case class BundleLitBinding(litMap: Map[Data, LitArg]) extends LitBinding |
