diff options
Diffstat (limited to 'util/tlm/sc_master_port.cc')
-rw-r--r-- | util/tlm/sc_master_port.cc | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/util/tlm/sc_master_port.cc b/util/tlm/sc_master_port.cc index 5f3950260..630243359 100644 --- a/util/tlm/sc_master_port.cc +++ b/util/tlm/sc_master_port.cc @@ -329,9 +329,15 @@ SCMasterPort::recvTimingResp(PacketPtr pkt) sc_assert(pkt->isResponse()); - // pay for annotaded transport delays - auto delay = - sc_core::sc_time::from_value(pkt->payloadDelay + pkt->headerDelay); + /* + * Pay for annotated transport delays. + * + * See recvTimingReq in sc_slave_port.cc for a detailed description. + */ + auto delay = sc_core::sc_time::from_value(pkt->payloadDelay); + // reset the delays + pkt->payloadDelay = 0; + pkt->headerDelay = 0; auto tlmSenderState = dynamic_cast<TlmSenderState*>(pkt->popSenderState()); sc_assert(tlmSenderState != nullptr); |