Class

chisel3.core

BaseModule

Related Doc: package core

Permalink

abstract class BaseModule extends HasId

Abstract base class for Modules, an instantiable organizational unit for RTL.

Linear Supertypes
HasId, InstanceId, AnyRef, Any
Known Subclasses
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. BaseModule
  2. HasId
  3. InstanceId
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new BaseModule()

    Permalink

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. def IO[T <: Data](iodef: T): iodef.type

    Permalink

    This must wrap the datatype used to set the io field of any Module.

    This must wrap the datatype used to set the io field of any Module. i.e. All concrete modules must have defined io in this form: [lazy] val io[: io type] = IO(...[: io type])

    Items in [] are optional.

    The granted iodef WILL NOT be cloned (to allow for more seamless use of anonymous Bundles in the IO) and thus CANNOT have been bound to any logic. This will error if any node is bound (e.g. due to logic in a Bundle constructor, which is considered improper).

    Also registers a Data as a port, also performing bindings. Cannot be called once ports are requested (so that all calls to ports will return the same information). Internal API.

    TODO(twigg): Specifically walk the Data definition to call out which nodes are problematic.

    Attributes
    protected
  5. def _autoWrapPorts(): Unit

    Permalink

    Compatibility function.

    Compatibility function. Allows Chisel2 code which had ports without the IO wrapper to compile under Bindings checks. Does nothing in non-compatibility mode.

    Should NOT be used elsewhere. This API will NOT last.

    TODO: remove this, perhaps by removing Bindings checks in compatibility mode.

  6. var _closed: Boolean

    Permalink
    Attributes
    protected
  7. def annotate(annotation: ChiselAnnotation): Unit

    Permalink
    Attributes
    protected
  8. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  9. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  10. def desiredName: String

    Permalink

    Desired name of this module.

    Desired name of this module. Override this to give this module a custom, perhaps parametric, name.

  11. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  12. def equals(that: Any): Boolean

    Permalink
    Definition Classes
    HasId → AnyRef → Any
  13. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  14. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  15. def getIds: Seq[HasId]

    Permalink
    Attributes
    protected
  16. def getModulePorts: Seq[Data]

    Permalink
    Attributes
    protected
  17. def hashCode(): Int

    Permalink
    Definition Classes
    HasId → AnyRef → Any
  18. def instanceName: String

    Permalink

    Signal name (for simulation).

    Signal name (for simulation).

    Definition Classes
    BaseModule → HasId → InstanceId
  19. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  20. final val name: String

    Permalink

    Legalized name of this module.

  21. def nameIds(rootClass: Class[_]): HashMap[HasId, String]

    Permalink

    Called at the Module.apply(...) level after this Module has finished elaborating.

    Called at the Module.apply(...) level after this Module has finished elaborating. Returns a map of nodes -> names, for named nodes.

    Helper method.

    Attributes
    protected
  22. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  23. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  24. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  25. def parentModName: String

    Permalink
    Definition Classes
    HasId → InstanceId
  26. def parentPathName: String

    Permalink
    Definition Classes
    HasId → InstanceId
  27. def pathName: String

    Permalink
    Definition Classes
    HasId → InstanceId
  28. def portsContains(elem: Data): Boolean

    Permalink
    Attributes
    protected
  29. def portsSize: Int

    Permalink
    Attributes
    protected
  30. def suggestName(name: ⇒ String): BaseModule.this.type

    Permalink
    Definition Classes
    HasId
  31. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  32. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  33. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  34. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  35. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from HasId

Inherited from InstanceId

Inherited from AnyRef

Inherited from Any

Ungrouped