run method
- 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(() {
aw.valid.put(0);
aw.addr.put(0);
aw.len?.put(0);
aw.size?.put(0);
aw.burst?.put(0);
aw.qos?.put(0);
aw.id?.put(0);
aw.idUnq?.put(0);
aw.prot?.put(0);
aw.nse?.put(0);
aw.priv?.put(0);
aw.inst?.put(0);
aw.pas?.put(0);
aw.cache?.put(0);
aw.region?.put(0);
aw.mecId?.put(0);
aw.trace?.put(0);
aw.loop?.put(0);
aw.mmuValid?.put(0);
aw.mmuSecSid?.put(0);
aw.mmuSid?.put(0);
aw.mmuSsidV?.put(0);
aw.mmuSsid?.put(0);
aw.mmuAtSt?.put(0);
aw.mmuFlow?.put(0);
aw.mmuPasUnknown?.put(0);
aw.mmuPm?.put(0);
aw.nsaId?.put(0);
aw.pbha?.put(0);
aw.subSysId?.put(0);
aw.actV?.put(0);
aw.act?.put(0);
aw.lock?.put(0);
aw.atOp?.put(0);
aw.mpam?.put(0);
aw.tagOp?.put(0);
aw.snoop?.put(0);
aw.user?.put(0);
aw.domain?.put(0);
aw.stashNid?.put(0);
aw.stashNidEn?.put(0);
aw.stashLPid?.put(0);
aw.stashLPidEn?.put(0);
aw.cmo?.put(0);
});
// wait for reset to complete before driving anything
await sys.resetN.nextPosedge;
while (!Simulator.simulationHasEnded) {
if (pendingSeqItems.isNotEmpty) {
await _drivePacket(pendingSeqItems.removeFirst());
} else {
await sys.clk.nextPosedge;
}
}
}