Chisel.iotesters

OrderedDecoupledHWIOTester

abstract class OrderedDecoupledHWIOTester extends HWIOTester

Base class supports implementation of test circuits of modules that use Decoupled inputs and either Decoupled or Valid outputs Multiple decoupled inputs are supported. Testers that subclass this will be strictly ordered. Input will flow into their devices asynchronously but in order they were generated be compared in the order they are generated

Source
OrderedDecoupledHWIOTester.scala
Example:
  1. class XTimesXTester extends [[OrderedDecoupledHWIOTester]] {
    val device_under_test = new XTimesY
    test_block {
      for {
        i <- 0 to 10
        j <- 0 to 10
      } {
        input_event(device_under_test.io.in.x -> i, device_under_test.in.y -> j)
        output_event(device_under_test.io.out.z -> i*j)
      }
    }
    }

    an input event is a series of values that will be gated into the decoupled input interface at the same time an output event is a series of values that will be tested at the same time

    independent small state machines are set up for input and output interface all inputs regardless of interfaces are submitted to the device under test in the order in which they were created likewise, all outputs regardless of which interface are tested in the same order that they were created

Linear Supertypes
Type Hierarchy Learn more about scaladoc diagrams
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. OrderedDecoupledHWIOTester
  2. HWIOTester
  3. BasicTester
  4. Module
  5. Nameable
  6. AnyRef
  7. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new OrderedDecoupledHWIOTester()

Type Members

  1. class GlobalEventCounter extends AnyRef

  2. case class TestingEvent(port_values: Map[Data, BigInt], event_number: Int) extends Product with Serializable

  3. type neededWireWraps = HashMap[StackTraceElement, ArrayBuffer[Data]]

    verifyWireWrap (Chisel3) - verify assignment semantics (type-only nodes must be wire-wrapped)

    verifyWireWrap (Chisel3) - verify assignment semantics (type-only nodes must be wire-wrapped)

    returns

    - HashMap of source lines (and associated nodes) requiring Wire() wrapping.

    Definition Classes
    Module

Abstract Value Members

  1. abstract val device_under_test: Module

    Definition Classes
    HWIOTester

Concrete Value Members

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

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. def <>(src: Module): Unit

    Connect io with matching names for two modules

    Connect io with matching names for two modules

    Definition Classes
    Module
  5. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  6. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  7. def IO[T <: Data](iodef: T): iodef.type

    Definition Classes
    Module
  8. var _clock: Option[Clock]

    Definition Classes
    Module
  9. def addClock(clock: Clock): Unit

    Add a clock to the module

    Add a clock to the module

    clock

    the clock to add

    Definition Classes
    Module
  10. def addDefaultReset: Unit

    Add a default reset to the module

    Add a default reset to the module

    Definition Classes
    Module
  11. def addModule[T <: Module](c: ⇒ T)(implicit p: Parameters = params): T

    Add a submodule to this module

    Add a submodule to this module

    Definition Classes
    Module
  12. def addModule[T <: Module](c: ⇒ T, f: PartialFunction[Any, Any]): T

    Add a submodule to this module

    Add a submodule to this module

    Definition Classes
    Module
  13. def addNode[T <: Node](node: T): T

    Definition Classes
    Module
  14. def addPin[T <: Data](pin: T, name: String = ""): T

    Add a pin with a name to the module

    Add a pin with a name to the module

    pin

    the I/O to add

    name

    A name for the pin

    Definition Classes
    Module
  15. def addResetPin(r: Bool): Bool

    returns

    the pin connected to the reset signal or creates a new one if no such pin exists

    Definition Classes
    Module
  16. def apply(name: String): Data

    Definition Classes
    Module
  17. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  18. def assert(cond: Bool, message: String = ""): Unit

    Add an assertion in the code generated by a backend.

    Add an assertion in the code generated by a backend.

    Definition Classes
    Module
  19. def bfs(visit: (Node) ⇒ Unit): Unit

    A breadth first search of the graph of nodes

    A breadth first search of the graph of nodes

    Definition Classes
    Module
  20. def checkAndGetCommonDecoupledOrValidParentPort(pokes: Seq[(Data, BigInt)], must_be_decoupled: Boolean = true, event_number: Int): Either[DecoupledIO[Data], ValidIO[Data]]

    Validate that all pokes ports are members of the same DecoupledIO makes a list of all decoupled parents based on the ports referenced in pokes

  21. val children: ArrayBuffer[Module]

    Definition Classes
    Module
  22. def clock: Clock

    returns

    the implied clock for this module

    Definition Classes
    Module
  23. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  24. val control_port_to_input_values: HashMap[DecoupledIO[Data], ArrayBuffer[TestingEvent]]

  25. def debug(data: Aggregate): Unit

    Definition Classes
    Module
  26. def debug(x: Node): Unit

    Insures a backend does not remove a signal because it is unreachable from the outputs.

    Insures a backend does not remove a signal because it is unreachable from the outputs.

    Definition Classes
    Module
  27. val decoupled_control_port_to_output_values: HashMap[DecoupledIO[Data], ArrayBuffer[TestingEvent]]

  28. def dfs(visit: (Node) ⇒ Unit): Unit

    A depth first search of the graph of nodes

    A depth first search of the graph of nodes

    Definition Classes
    Module
  29. var enable_all_debug: Boolean

    Definition Classes
    HWIOTester
  30. var enable_printf_debug: Boolean

    Definition Classes
    HWIOTester
  31. var enable_scala_debug: Boolean

    Definition Classes
    HWIOTester
  32. final def eq(arg0: AnyRef): Boolean

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

    Definition Classes
    Module → AnyRef → Any
  34. def error(message: String = ""): Unit

    Definition Classes
    BasicTester
  35. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  36. def findBinding(m: Node): Option[Binding]

    A method to trace the graph of nodes backwards looking at inputs

    A method to trace the graph of nodes backwards looking at inputs

    m

    Node to find bindings for

    returns

    nodes which have node m binded as their input

    Definition Classes
    Module
  37. def finish(): Unit

    this builds a circuit to load inputs and circuits to test outputs that are controlled by either a decoupled or valid

    this builds a circuit to load inputs and circuits to test outputs that are controlled by either a decoupled or valid

    Definition Classes
    OrderedDecoupledHWIOTesterHWIOTesterBasicTester
  38. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  39. def getCommonValidParentPort(expects: Seq[(Data, BigInt)], event_number: Int): Either[DecoupledIO[Data], ValidIO[Data]]

    Validate that all pokes ports are members of the same DecoupledIO or ValidIO makes a list of all decoupled parents based on the ports referenced in pokes

  40. def getPathName(separator: String = "_"): String

    separator

    The separator to use for the path name

    returns

    the absolute path to a component instance from toplevel

    Definition Classes
    Module
  41. def getPathName: String

    returns

    the absolute path to a component instance from toplevel

    Definition Classes
    Module
  42. val hashCode: Int

    Definition Classes
    Module → AnyRef → Any
  43. def inputEvent(pokes: (Data, BigInt)*): Unit

  44. val input_event_list: ArrayBuffer[Seq[(Data, BigInt)]]

  45. def int(x: Bits): BigInt

    Definition Classes
    HWIOTester
  46. val io: Bundle { ... /* 4 definitions in type refinement */ }

    the I/O for this module

    the I/O for this module

    Definition Classes
    HWIOTesterBasicTesterModule
  47. var io_info: IOAccessor

    Definition Classes
    HWIOTester
  48. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  49. def logPrintfDebug(fmt: String, args: Bits*): Unit

    Definition Classes
    HWIOTester
  50. def logScalaDebug(msg: ⇒ String): Unit

    Definition Classes
    HWIOTester
  51. var moduleName: String

    Name of the module this component generates (defaults to class name).

    Name of the module this component generates (defaults to class name).

    Definition Classes
    Module
  52. var name: String

    Name of the instance.

    Name of the instance.

    Definition Classes
    Nameable
  53. var named: Boolean

    named is used to indicate that name was set explicitly and should not be overriden

    named is used to indicate that name was set explicitly and should not be overriden

    Definition Classes
    Nameable
  54. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  55. def nextIndex: Int

    Definition Classes
    Module
  56. final def notify(): Unit

    Definition Classes
    AnyRef
  57. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  58. def outputEvent(expects: (Data, BigInt)*): Unit

  59. val output_event_list: ArrayBuffer[Seq[(Data, BigInt)]]

  60. lazy val params: Parameters

    Definition Classes
    Module
  61. var parent: Module

    Definition Classes
    Module
  62. def popCount(n: Long): Int

    Definition Classes
    BasicTester
  63. val port_to_decoupled: HashMap[Data, DecoupledIO[Data]]

  64. val port_to_valid: HashMap[Data, ValidIO[Data]]

  65. def printf(message: String, args: Node*): Unit

    Adds a printf to the module called each clock cycle

    Adds a printf to the module called each clock cycle

    message

    A c style sting to print out eg) %d, %x

    args

    Nodes whos data values should be printed

    Definition Classes
    Module
  66. def processInputEvents(): Unit

    iterate over recorded events, checking constraints on ports referenced, etc.

    iterate over recorded events, checking constraints on ports referenced, etc. use poke and expect to record

  67. def processOutputEvents(): Unit

  68. def reset: Bool

    returns

    the implied reset for this module

    Definition Classes
    Module
  69. val rnd: Random

    Definition Classes
    HWIOTester
  70. val setDone: Bool

    Definition Classes
    BasicTester
  71. val setError: Bool

    Definition Classes
    BasicTester
  72. def setModuleName(n: String): Unit

    Set the declaration name of the module to be string 'n'

    Set the declaration name of the module to be string 'n'

    Definition Classes
    Module
  73. def setName(n: String): Unit

    Set the name of this module to the string 'n'

    Set the name of this module to the string 'n'

    Definition Classes
    Nameable
    Example:
    1. my.io.node.setName("MY_IO_NODE")
  74. def stop(): Unit

    Ends the test reporting success.

    Ends the test reporting success.

    Does not fire when in reset (defined as the encapsulating Module's reset). If your definition of reset is not the encapsulating Module's reset, you will need to gate this externally.

    Definition Classes
    BasicTester
  75. def stripComponent(s: String): String

    Definition Classes
    Module
  76. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  77. def toString(): String

    Definition Classes
    Module → AnyRef → Any
  78. val valid_control_port_to_output_values: HashMap[ValidIO[Data], ArrayBuffer[TestingEvent]]

  79. final def wait(): Unit

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  82. def wires: Array[(String, Bits)]

    Get the I/O names and connections

    Get the I/O names and connections

    Definition Classes
    Module

Inherited from HWIOTester

Inherited from BasicTester

Inherited from Module

Inherited from Nameable

Inherited from AnyRef

Inherited from Any

Ungrouped