From b74034446223db6731c7e4f2eb362b3349efc8be Mon Sep 17 00:00:00 2001 From: ducky Date: Wed, 2 May 2018 11:45:22 -0700 Subject: Infrastructure for bundle literals --- chiselFrontend/src/main/scala/chisel3/core/Binding.scala | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'chiselFrontend/src/main/scala/chisel3/core/Binding.scala') 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 -- cgit v1.2.3