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(() {
la.valid.put(0);
la.addr.put(0);
la.trans.put(0);
la.attr.put(0);
la.ogv.put(0);
la.user?.put(0);
la.id?.put(0);
la.nse?.put(0);
la.priv?.put(0);
la.inst?.put(0);
la.pas?.put(0);
la.og?.put(0);
la.tlBlock?.put(0);
la.ident?.put(0);
la.mmuValid?.put(0);
la.mmuSecSid?.put(0);
la.mmuSid?.put(0);
la.mmuSsidV?.put(0);
la.mmuSsid?.put(0);
la.mmuAtSt?.put(0);
la.mmuFlow?.put(0);
la.mmuPasUnknown?.put(0);
la.mmuPm?.put(0);
la.loop?.put(0);
la.vc?.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;
}
}
}