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
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
- Alphabetic
- By Inheritance
- OrderedDecoupledHWIOTester
- HWIOTester
- BasicTester
- LegacyModule
- ImplicitModule
- UserModule
- BaseModule
- HasId
- InstanceId
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new OrderedDecoupledHWIOTester()
Type Members
- class GlobalEventCounter extends AnyRef
- case class TestingEvent(port_values: Map[Data, BigInt], event_number: Int) extends Product with Serializable
Abstract Value Members
-
abstract
val
device_under_test: Module
- Definition Classes
- HWIOTester
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
IO[T <: core.Data](iodef: T): T
- Attributes
- protected
- Definition Classes
- BaseModule
-
def
_bindIoInPlace(iodef: core.Data): Unit
- Attributes
- protected
- Definition Classes
- BaseModule
-
var
_closed: Boolean
- Attributes
- protected
- Definition Classes
- BaseModule
-
def
_compatAutoWrapPorts(): Unit
- Definition Classes
- BaseModule
-
def
_compatIoPortBound(): Boolean
- Attributes
- protected
- Definition Classes
- LegacyModule
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
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
-
def
circuitName: String
- Attributes
- protected
- Definition Classes
- HasId
-
val
clock: core.Clock
- Definition Classes
- ImplicitModule
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
val
compileOptions: CompileOptions
- Definition Classes
- UserModule
- val control_port_to_input_values: HashMap[DecoupledIO[Data], ArrayBuffer[TestingEvent]]
- val decoupled_control_port_to_output_values: HashMap[DecoupledIO[Data], ArrayBuffer[TestingEvent]]
-
def
desiredName: String
- Definition Classes
- BaseModule
-
var
enable_all_debug: Boolean
- Definition Classes
- HWIOTester
-
var
enable_printf_debug: Boolean
- Definition Classes
- HWIOTester
-
var
enable_scala_debug: Boolean
- Definition Classes
- HWIOTester
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(that: Any): Boolean
- Definition Classes
- HasId → AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
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
- OrderedDecoupledHWIOTester → HWIOTester → BasicTester
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
getCommands: Seq[Command]
- Attributes
- protected
- Definition Classes
- UserModule
-
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
-
def
getIds: Seq[HasId]
- Attributes
- protected
- Definition Classes
- BaseModule
-
def
getModulePorts: Seq[core.Data]
- Attributes
- protected
- Definition Classes
- BaseModule
-
lazy val
getPorts: Seq[Port]
- Definition Classes
- UserModule
-
def
hashCode(): Int
- Definition Classes
- HasId → AnyRef → Any
- def inputEvent(pokes: (Data, BigInt)*): Unit
- val input_event_list: ArrayBuffer[Seq[(Data, BigInt)]]
-
def
instanceName: String
- Definition Classes
- BaseModule → HasId → InstanceId
-
val
io: Bundle
- Definition Classes
- BasicTester → LegacyModule
-
var
io_info: IOAccessor
- Definition Classes
- HWIOTester
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
logPrintfDebug(fmt: String, args: Bits*): Unit
- Definition Classes
- HWIOTester
-
def
logScalaDebug(msg: ⇒ String): Unit
- Definition Classes
- HWIOTester
-
final
val
name: String
- Definition Classes
- BaseModule
-
def
nameIds(rootClass: Class[_]): HashMap[HasId, String]
- Attributes
- protected
- Definition Classes
- LegacyModule → BaseModule
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def outputEvent(expects: (Data, BigInt)*): Unit
- val output_event_list: ArrayBuffer[Seq[(Data, BigInt)]]
-
var
override_clock: Option[core.Clock]
- Attributes
- protected
- Definition Classes
- LegacyModule
-
var
override_reset: Option[core.Bool]
- Attributes
- protected
- Definition Classes
- LegacyModule
-
def
parentModName: String
- Definition Classes
- HasId → InstanceId
-
def
parentPathName: String
- Definition Classes
- HasId → InstanceId
-
def
pathName: String
- Definition Classes
- HasId → InstanceId
-
def
popCount(n: Long): Int
- Definition Classes
- BasicTester
- val port_to_decoupled: HashMap[Data, DecoupledIO[Data]]
- val port_to_valid: HashMap[Data, ValidIO[Data]]
-
def
portsContains(elem: core.Data): Boolean
- Attributes
- protected
- Definition Classes
- BaseModule
-
def
portsSize: Int
- Attributes
- protected
- Definition Classes
- BaseModule
-
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
- def processOutputEvents(): Unit
-
val
reset: Reset
- Definition Classes
- ImplicitModule
-
val
rnd: Random.type
- Definition Classes
- HWIOTester
-
def
stop()(implicit sourceInfo: SourceInfo): Unit
- Definition Classes
- BasicTester
-
def
suggestName(name: ⇒ String): OrderedDecoupledHWIOTester.this.type
- Definition Classes
- HasId
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
final
def
toNamed: ModuleName
- Definition Classes
- BaseModule → InstanceId
-
def
toString(): String
- Definition Classes
- AnyRef → Any
- val valid_control_port_to_output_values: HashMap[ValidIO[Data], ArrayBuffer[TestingEvent]]
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
Deprecated Value Members
-
def
annotate(annotation: ChiselAnnotation): Unit
- Attributes
- protected
- Definition Classes
- BaseModule
- Annotations
- @deprecated
- Deprecated
(Since version 3.1) Use chisel3.experimental.annotate instead