2c2
< * Copyright (c) 2011-2014 ARM Limited
---
> * Copyright (c) 2011-2015 ARM Limited
130,131c130,131
< calcPacketTiming(pkt);
< Tick packetFinishTime = curTick() + pkt->payloadDelay;
---
> // store the old header delay so we can restore it if needed
> Tick old_header_delay = pkt->headerDelay;
132a133,141
> // a request sees the frontend and forward latency
> Tick xbar_delay = (frontendLatency + forwardLatency) * clockPeriod();
>
> // set the packet header and payload delay
> calcPacketTiming(pkt, xbar_delay);
>
> // determine how long to be crossbar layer is busy
> Tick packetFinishTime = clockEdge(Cycles(1)) + pkt->payloadDelay;
>
148,149c157,158
< // undo the calculation so we can check for 0 again
< pkt->headerDelay = pkt->payloadDelay = 0;
---
> // restore the header delay as it is additive
> pkt->headerDelay = old_header_delay;
153c162
< clockEdge(headerCycles));
---
> clockEdge(Cycles(1)));
203,204c212,213
< calcPacketTiming(pkt);
< Tick packetFinishTime = curTick() + pkt->payloadDelay;
---
> // a response sees the response latency
> Tick xbar_delay = responseLatency * clockPeriod();
205a215,220
> // set the packet header and payload delay
> calcPacketTiming(pkt, xbar_delay);
>
> // determine how long to be crossbar layer is busy
> Tick packetFinishTime = clockEdge(Cycles(1)) + pkt->payloadDelay;
>