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(() {
    rIntf.valid.put(0);
    rIntf.id?.put(0);
    rIntf.addr.put(0);
    rIntf.len?.put(0);
    rIntf.size?.put(0);
    rIntf.burst?.put(0);
    rIntf.lock?.put(0);
    rIntf.cache?.put(0);
    rIntf.prot.put(0);
    rIntf.qos?.put(0);
    rIntf.region?.put(0);
    rIntf.user?.put(0);
    if (rIntf is Ace4RequestChannel) {
      (rIntf as Ace4RequestChannel).domain?.put(0);
      (rIntf as Ace4RequestChannel).bar?.put(0);
    }
  });

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

  while (!Simulator.simulationHasEnded) {
    if (pendingSeqItems.isNotEmpty) {
      await _drivePacket(pendingSeqItems.removeFirst());
    } else {
      await sIntf.clk.nextPosedge;
    }
  }
}