run method

  1. @override
Future<void> run(
  1. Phase phase
)
override

Executes this Component's activities related to running the test.

Overrides of run must call super.run in an unawaited fashion. For example:

@override
Future<void> run(Phase phase) async {
  unawaited(super.run(phase));
  // New code goes here!
}

Implementation

@override
Future<void> run(Phase phase) async {
  unawaited(super.run(phase));

  Simulator.injectAction(() {
    trans.ready!.put(0);
  });

  // wait for reset to complete before driving anything
  await sys.resetN.nextPosedge;

  while (!Simulator.simulationHasEnded) {
    if (_disabled) {
      trans.ready!.put(0);
    } else {
      final next = Test.random!.nextDouble() < readyFrequency;
      trans.ready!.put(next);
    }

    await sys.clk.nextPosedge;
  }
}