Packages

object expose

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. expose
  2. AnyRef
  3. 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. def apply[T <: Data](signal: T): T

    The method expose allows one to bring to a wrapped module, signals from instantiated sub-modules so they can be tested by peek/poke chiseltest.

    The method expose allows one to bring to a wrapped module, signals from instantiated sub-modules so they can be tested by peek/poke chiseltest. This avoid cluttering the original module with signals that would be used only by the test harness.

    Usage:

    import chisel3._
    
    // This is the module and submodule to be tested
    class SubModule extends Module {
      val reg  = Reg(UInt(6.W))
      reg := 42.U
    }
    
    // Top module which instantiates the submodule
    class Top extends Module {
      val submodule = Module(new SubModule)
    }
    
    // Generate the main project Verilog
    object Proj extends App {
     (new chisel3.stage.ChiselStage).emitVerilog(
       new Top()
     )}

    Then in your spec, test the Top module with chiseltest and scalatest while exposing the signal from the submodule to the testbench:

    import chisel3._
    import chiseltest._
    import org.scalatest._
    
    import flatspec._
    import matchers.should._
    import chiseltest.experimental._
    
    // Here we create a wrapper extending the Top module adding the exposed signals
    class TopWrapper extends Top {
      // Expose the submodule "reg" Register
      val exposed_reg  = expose(submodule.reg)
    }
    
    it should "expose a submodule Reg by using BoringUtils" in {
      test(new TopWrapper) { c =>
        c.exposed_reg.expect(42.U)
      }
    }
    signal

    the signal to be exposed

    returns

    a signal with the same format to be tested on Top module's spec.

  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]) @IntrinsicCandidate() @native()
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  9. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  10. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @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
    @IntrinsicCandidate() @native()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  15. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  16. def toString(): String
    Definition Classes
    AnyRef → Any
  17. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  18. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  19. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

Inherited from AnyRef

Inherited from Any

Ungrouped