Packages

o

chisel3.stage

UseLegacyWidthBehavior

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
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. UseLegacyWidthBehavior
  2. Serializable
  3. Unserializable
  4. HasShellOptions
  5. ChiselOption
  6. NoTargetAnnotation
  7. Annotation
  8. Product
  9. Equals
  10. AnyRef
  11. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. 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
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  10. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. val options: Seq[ShellOption[Unit]]

    A sequence of options provided

    A sequence of options provided

    Definition Classes
    UseLegacyWidthBehaviorHasShellOptions
  16. def productElementName(n: Int): String
    Definition Classes
    Product
  17. def productElementNames: Iterator[String]
    Definition Classes
    Product
  18. def serialize: String

    Optional pretty print

    Optional pretty print

    Definition Classes
    Annotation
    Note

    rarely used

  19. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  20. 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
    NoTargetAnnotationAnnotation
  21. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  22. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  23. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from Serializable

Inherited from Unserializable

Inherited from HasShellOptions

Inherited from ChiselOption

Inherited from NoTargetAnnotation

Inherited from Annotation

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped