Class

Chisel.iotesters

SteppedHWIOTester

Related Doc: package iotesters

Permalink

abstract class SteppedHWIOTester extends HWIOTester

Use a UnitTester to construct a test harness for a chisel module this module will be canonically referred to as the device_under_test, often simply as c in a unit test, and also dut The UnitTester is used to put series of values (as chisel.Vec's) into the ports of the dut io which are INPUT At specified times it check the dut io OUTPUT ports to see that they match a specific value The vec's are assembled through the following API poke, expect and step, pokes

Source
SteppedHWIOTester.scala
Example:
  1. class Adder(width:Int) extends Module {
      val io = new Bundle {
        val in0 : UInt(INPUT, width=width)
        val in1 : UInt(INPUT, width=width)
        val out : UInt(OUTPUT, width=width)
      }
    }
    class AdderTester extends UnitTester {
      val device_under_test = Module( new Adder(32) )
      testBlock {
        poke(c.io.in0, 5)
        poke(c.io.in1, 7)
        expect(c.io.out, 12)
      }
    }
Linear Supertypes
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SteppedHWIOTester
  2. HWIOTester
  3. BasicTester
  4. Module
  5. Nameable
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new SteppedHWIOTester()

    Permalink

Type Members

  1. case class Step(input_map: HashMap[Data, BigInt], output_map: HashMap[Data, BigInt]) extends Product with Serializable

    Permalink
  2. type neededWireWraps = HashMap[StackTraceElement, ArrayBuffer[Data]]

    Permalink

    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

    Permalink
    Definition Classes
    HWIOTester

Concrete Value Members

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

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

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

    Permalink

    Connect io with matching names for two modules

    Connect io with matching names for two modules

    Definition Classes
    Module
  4. final def ==(arg0: Any): Boolean

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

    Permalink
    Definition Classes
    Module
  6. var _clock: Option[Clock]

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

    Permalink

    Add a clock to the module

    Add a clock to the module

    clock

    the clock to add

    Definition Classes
    Module
  8. def addDefaultReset: Unit

    Permalink

    Add a default reset to the module

    Add a default reset to the module

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

    Permalink

    Add a submodule to this module

    Add a submodule to this module

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

    Permalink

    Add a submodule to this module

    Add a submodule to this module

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

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

    Permalink

    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
  13. def addResetPin(r: Bool): Bool

    Permalink

    returns

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

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

    Permalink
    Definition Classes
    Module
  15. final def asInstanceOf[T0]: T0

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

    Permalink

    Add an assertion in the code generated by a backend.

    Add an assertion in the code generated by a backend.

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

    Permalink

    A breadth first search of the graph of nodes

    A breadth first search of the graph of nodes

    Definition Classes
    Module
  18. val children: ArrayBuffer[Module]

    Permalink
    Definition Classes
    Module
  19. def clock: Clock

    Permalink

    returns

    the implied clock for this module

    Definition Classes
    Module
  20. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. def createVectorsAndTestsForOutput(output_port: Data, counter: Counter): Unit

    Permalink
  22. def createVectorsForInput(input_port: Data, counter: Counter): Unit

    Permalink
  23. def debug(data: Aggregate): Unit

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

    Permalink

    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
  25. def dfs(visit: (Node) ⇒ Unit): Unit

    Permalink

    A depth first search of the graph of nodes

    A depth first search of the graph of nodes

    Definition Classes
    Module
  26. var enable_all_debug: Boolean

    Permalink
    Definition Classes
    HWIOTester
  27. var enable_printf_debug: Boolean

    Permalink
    Definition Classes
    HWIOTester
  28. var enable_scala_debug: Boolean

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

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

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

    Permalink
    Definition Classes
    BasicTester
  32. def expect(io_port: Data, bool_value: Boolean): Unit

    Permalink
  33. def expect(io_port: Data, value: BigInt): Unit

    Permalink
  34. def finalize(): Unit

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

    Permalink

    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
  36. def finish(): Unit

    Permalink
    Definition Classes
    SteppedHWIOTesterHWIOTesterBasicTester
  37. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  38. def getPathName(separator: String = "_"): String

    Permalink

    separator

    The separator to use for the path name

    returns

    the absolute path to a component instance from toplevel

    Definition Classes
    Module
  39. def getPathName: String

    Permalink

    returns

    the absolute path to a component instance from toplevel

    Definition Classes
    Module
  40. val hashCode: Int

    Permalink
    Definition Classes
    Module → AnyRef → Any
  41. def int(x: Bits): BigInt

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

    Permalink

    the I/O for this module

    the I/O for this module

    Definition Classes
    HWIOTesterBasicTesterModule
  43. var io_info: IOAccessor

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

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

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

    Permalink
    Definition Classes
    HWIOTester
  47. var moduleName: String

    Permalink

    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
  48. var name: String

    Permalink

    Name of the instance.

    Name of the instance.

    Definition Classes
    Nameable
  49. var named: Boolean

    Permalink

    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
  50. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  51. def nextIndex: Int

    Permalink
    Definition Classes
    Module
  52. final def notify(): Unit

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

    Permalink
    Definition Classes
    AnyRef
  54. lazy val params: Parameters

    Permalink
    Definition Classes
    Module
  55. var parent: Module

    Permalink
    Definition Classes
    Module
  56. def poke(io_port: Data, value: BigInt): Unit

    Permalink
  57. def popCount(n: Long): Int

    Permalink
    Definition Classes
    BasicTester
  58. def printf(message: String, args: Node*): Unit

    Permalink

    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
  59. def reset: Bool

    Permalink

    returns

    the implied reset for this module

    Definition Classes
    Module
  60. val rnd: Random

    Permalink
    Definition Classes
    HWIOTester
  61. val setDone: Bool

    Permalink
    Definition Classes
    BasicTester
  62. val setError: Bool

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

    Permalink

    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
  64. def setName(n: String): Unit

    Permalink

    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")
  65. def step(number_of_cycles: Int): Unit

    Permalink
  66. def stop(): Unit

    Permalink

    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
  67. def stripComponent(s: String): String

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

    Permalink
    Definition Classes
    AnyRef
  69. val test_actions: ArrayBuffer[Step]

    Permalink
  70. def toString(): String

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

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

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

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

    Permalink

    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