diff options
| author | Adam Izraelevitz | 2019-10-18 19:01:19 -0700 |
|---|---|---|
| committer | GitHub | 2019-10-18 19:01:19 -0700 |
| commit | fd981848c7d2a800a15f9acfbf33b57dd1c6225b (patch) | |
| tree | 3609a301cb0ec867deefea4a0d08425810b00418 /src/main/scala/firrtl/constraint/IsVar.scala | |
| parent | 973ecf516c0ef2b222f2eb68dc8b514767db59af (diff) | |
Upstream intervals (#870)
Major features:
- Added Interval type, as well as PrimOps asInterval, clip, wrap, and sqz.
- Changed PrimOp names: bpset -> setp, bpshl -> incp, bpshr -> decp
- Refactored width/bound inferencer into a separate constraint solver
- Added transforms to infer, trim, and remove interval bounds
- Tests for said features
Plan to be released with 1.3
Diffstat (limited to 'src/main/scala/firrtl/constraint/IsVar.scala')
| -rw-r--r-- | src/main/scala/firrtl/constraint/IsVar.scala | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/main/scala/firrtl/constraint/IsVar.scala b/src/main/scala/firrtl/constraint/IsVar.scala new file mode 100644 index 00000000..98396fa0 --- /dev/null +++ b/src/main/scala/firrtl/constraint/IsVar.scala @@ -0,0 +1,27 @@ +// See LICENSE for license details. + +package firrtl.constraint + +object IsVar { + def unapply(i: Constraint): Option[String] = i match { + case i: IsVar => Some(i.name) + case _ => None + } +} + +/** Extend to be a constraint variable */ +trait IsVar extends Constraint { + + def name: String + + override def serialize: String = name + + override def map(f: Constraint=>Constraint): Constraint = this + + override def reduce() = this + + val children = Vector() +} + +case class VarCon(name: String) extends IsVar + |
