diff options
Diffstat (limited to 'chiselFrontend/src/main/scala/chisel3/core/Binding.scala')
| -rw-r--r-- | chiselFrontend/src/main/scala/chisel3/core/Binding.scala | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/chiselFrontend/src/main/scala/chisel3/core/Binding.scala b/chiselFrontend/src/main/scala/chisel3/core/Binding.scala index 2b6f10f6..b09bab0e 100644 --- a/chiselFrontend/src/main/scala/chisel3/core/Binding.scala +++ b/chiselFrontend/src/main/scala/chisel3/core/Binding.scala @@ -88,11 +88,14 @@ sealed trait ConstrainedBinding extends TopBinding { def location = Some(enclosure) } +// 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 +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 +case class OpBinding(enclosure: UserModule) extends ConstrainedBinding with ReadOnlyBinding case class MemoryPortBinding(enclosure: UserModule) extends ConstrainedBinding case class PortBinding(enclosure: BaseModule) extends ConstrainedBinding case class RegBinding(enclosure: UserModule) extends ConstrainedBinding |
