case object UseLegacyWidthBehavior extends NoTargetAnnotation with ChiselOption with HasShellOptions with Unserializable with Product with Serializable
Use legacy Chisel width behavior.
This should only be used for checking for unexpected semantic changes when bumping to Chisel 7.0.0.
Use as CLI option --use-legacy-width
.
There are two width bugs fixed in Chisel 7.0 that could affect the semantics of user code. Enabling this option will restore the old, buggy behavior, described below:
1. The width of shift-right when shift amount is >= the width of the argument
When this option is enabled, the behavior is as follows:
- Calling
.getWidth
on the resulting value will report the width as 0. - The width of the resulting value will be treated as 1-bit for generating Verilog.
2. The width of ChiselEnum
values
When this option is enabled, the behavior is as follows:
- Calling
.getWidth
on a specific ChiselEnum value will give the width needed to encode the enum. This is the minimum width needed to encode the maximum value encoded by the enum. - The resulting FIRRTL will have the minimum width needed to encode the literal value for just that specific enum value.
- Source
- ChiselAnnotations.scala
- Alphabetic
- By Inheritance
- UseLegacyWidthBehavior
- Serializable
- Unserializable
- HasShellOptions
- ChiselOption
- NoTargetAnnotation
- Annotation
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def addOptions(p: OptionParser[AnnotationSeq]): Unit
Add all shell (command line) options to an option parser
Add all shell (command line) options to an option parser
- p
an option parser
- Definition Classes
- HasShellOptions
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- val options: Seq[ShellOption[Unit]]
A sequence of options provided
A sequence of options provided
- Definition Classes
- UseLegacyWidthBehavior → HasShellOptions
- def productElementName(n: Int): String
- Definition Classes
- Product
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- def serialize: String
Optional pretty print
Optional pretty print
- Definition Classes
- Annotation
- Note
rarely used
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def update(renames: RenameMap): Seq[NoTargetAnnotation]
Update the target based on how signals are renamed
Update the target based on how signals are renamed
- Definition Classes
- NoTargetAnnotation → Annotation
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
This is the documentation for Chisel.
Package structure
The chisel3 package presents the public API of Chisel. It contains the concrete core types
UInt
,SInt
,Bool
,Clock
, andReg
, the abstract typesBits
,Aggregate
, andData
, and the aggregate typesBundle
andVec
.The Chisel package is a compatibility layer that attempts to provide chisel2 compatibility in chisel3.
Utility objects and methods are found in the
util
package.The
testers
package defines the basic interface for chisel testers.