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(() {
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;
}
}
}