o

midas.passes

AutoILATransform

object AutoILATransform extends Transform with DependencyAPIMigration

Finds all FPGADebug annotations deployed throughout the circuit, and wires them to a single ILA instance at the top of the module hierarchy. The ILA is wrapped in a shim module that preserves the marked signal names and instance path names in its port list. The shim module instantiates the Xilinx IP only when SYNTHESIS is defined.

This emits an annotation pass generates annotations for two files:

  • A ip generation script (tcl) for the ILA IP
  • A verilog implementation for the ILA shim. This is verbatim verilog so as to permit using verilog preprocessor macros.

Caveats:

  • Targets labelled with the FPGADebug annotation must be synchronous to the simulator's host clock. In practice, the PlatformShim is the only location where it is possible to violate this assumption.
Linear Supertypes
DependencyAPIMigration, Transform, DependencyAPI[Transform], TransformLike[CircuitState], LazyLogging, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AutoILATransform
  2. DependencyAPIMigration
  3. Transform
  4. DependencyAPI
  5. TransformLike
  6. LazyLogging
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. case class ILAProbe(index: Int, width: Int, name: String, probeTriggers: Int) extends Product with Serializable

    Captures per-probe metadata used to build various files related to ILA generation and instantiation

    Captures per-probe metadata used to build various files related to ILA generation and instantiation

    index

    index of the probe on the ILA.

    width

    bit width of the probe

    name

    verilog-compatible string that will be used in the wrapper definition and describes the underlying signal being probed.

    probeTriggers

    specifies the number of comparators to be generated for this probe. This will be ignored if CONFIG.ALL_PROBE_SAME_MU_CNT is set.

  2. type InstPath = Seq[String]

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 asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  8. def execute(state: CircuitState): CircuitState
    Definition Classes
    AutoILATransform → Transform
  9. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  10. def getLogger: Logger
    Definition Classes
    LazyLogging
  11. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  12. def ilaWrapperFilename(annotations: Seq[Annotation]): String

    Generates the filename for the ila wrapper black box.

    Generates the filename for the ila wrapper black box.

    Can't easily emit verilog black boxes using Golden Gate's file emission system: If using a BBPath anno: the path to verilog may not exist when the BlackBoxSourceHelper runs If using a BBInline anno: the BlackBoxSource helper will write the file out itself. So, use the BBInline anno, and let firrtl do the file emission, but look up Golden Gate's OutputBaseFilename to be consistent.

    returns

    The filename of the wrapper

  13. def invalidates(a: Transform): Boolean
    Definition Classes
    AutoILATransform → DependencyAPIMigration → Transform → DependencyAPI
  14. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  15. val logger: Logger
    Attributes
    protected
    Definition Classes
    LazyLogging
  16. def name: String
    Definition Classes
    AutoILATransform → Transform → TransformLike
  17. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  18. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  19. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  20. def optionalPrerequisiteOf: Seq[Dependency[Emitter]]
    Definition Classes
    AutoILATransform → DependencyAPIMigration → Transform → DependencyAPI
  21. def optionalPrerequisites: Seq[Nothing]
    Definition Classes
    AutoILATransform → DependencyAPIMigration → Transform → DependencyAPI
  22. def prerequisites: Seq[TransformDependency]
    Definition Classes
    AutoILATransform → DependencyAPIMigration → Transform → DependencyAPI
  23. final def runTransform(state: CircuitState): CircuitState
    Definition Classes
    Transform
  24. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  25. def toString(): String
    Definition Classes
    AnyRef → Any
  26. def transform(state: CircuitState): CircuitState
    Definition Classes
    Transform → TransformLike
  27. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  28. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  29. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def dependents: Seq[Dependency[Transform]]
    Definition Classes
    DependencyAPI
    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Due to confusion, 'dependents' is being renamed to 'optionalPrerequisiteOf'. Override the latter instead.

  2. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated
  3. final def inputForm: CircuitForm
    Definition Classes
    DependencyAPIMigration
    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Use Dependency API methods for equivalent functionality. See: https://bit.ly/2Voppre

  4. final def outputForm: CircuitForm
    Definition Classes
    DependencyAPIMigration
    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Use Dependency API methods for equivalent functionality. See: https://bit.ly/2Voppre

Inherited from DependencyAPIMigration

Inherited from Transform

Inherited from DependencyAPI[Transform]

Inherited from TransformLike[CircuitState]

Inherited from LazyLogging

Inherited from AnyRef

Inherited from Any

Ungrouped