scheduler.hh (13209:aad30faa966b) scheduler.hh (13244:deedec45898f)
1/*
2 * Copyright 2018 Google, Inc.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met: redistributions of source code must retain the above copyright
7 * notice, this list of conditions and the following disclaimer;
8 * redistributions in binary form must reproduce the above copyright

--- 217 unchanged lines hidden (view full) ---

226 {
227 Tick tick = delayed(delay);
228 if (tick < getCurTick())
229 tick = getCurTick();
230
231 // Delta notification/timeout.
232 if (delay.value() == 0) {
233 event->schedule(deltas, tick);
1/*
2 * Copyright 2018 Google, Inc.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
6 * met: redistributions of source code must retain the above copyright
7 * notice, this list of conditions and the following disclaimer;
8 * redistributions in binary form must reproduce the above copyright

--- 217 unchanged lines hidden (view full) ---

226 {
227 Tick tick = delayed(delay);
228 if (tick < getCurTick())
229 tick = getCurTick();
230
231 // Delta notification/timeout.
232 if (delay.value() == 0) {
233 event->schedule(deltas, tick);
234 scheduleReadyEvent();
234 if (!inEvaluate() && !inUpdate())
235 scheduleReadyEvent();
235 return;
236 }
237
238 // Timed notification/timeout.
239 TimeSlot *&ts = timeSlots[tick];
240 if (!ts) {
241 ts = new TimeSlot;
242 schedule(ts, tick);

--- 83 unchanged lines hidden (view full) ---

326 void oneCycle();
327
328 void schedulePause();
329 void scheduleStop(bool finish_delta);
330
331 enum Status
332 {
333 StatusOther = 0,
236 return;
237 }
238
239 // Timed notification/timeout.
240 TimeSlot *&ts = timeSlots[tick];
241 if (!ts) {
242 ts = new TimeSlot;
243 schedule(ts, tick);

--- 83 unchanged lines hidden (view full) ---

327 void oneCycle();
328
329 void schedulePause();
330 void scheduleStop(bool finish_delta);
331
332 enum Status
333 {
334 StatusOther = 0,
334 StatusDelta,
335 StatusEvaluate,
335 StatusUpdate,
336 StatusUpdate,
337 StatusDelta,
336 StatusTiming,
337 StatusPaused,
338 StatusStopped
339 };
340
341 bool elaborationDone() { return _elaborationDone; }
342 void elaborationDone(bool b) { _elaborationDone = b; }
343
344 bool paused() { return status() == StatusPaused; }
345 bool stopped() { return status() == StatusStopped; }
338 StatusTiming,
339 StatusPaused,
340 StatusStopped
341 };
342
343 bool elaborationDone() { return _elaborationDone; }
344 void elaborationDone(bool b) { _elaborationDone = b; }
345
346 bool paused() { return status() == StatusPaused; }
347 bool stopped() { return status() == StatusStopped; }
346 bool inDelta() { return status() == StatusDelta; }
348 bool inEvaluate() { return status() == StatusEvaluate; }
347 bool inUpdate() { return status() == StatusUpdate; }
349 bool inUpdate() { return status() == StatusUpdate; }
350 bool inDelta() { return status() == StatusDelta; }
348 bool inTiming() { return status() == StatusTiming; }
349
350 uint64_t changeStamp() { return _changeStamp; }
351
352 void throwToScMain(const ::sc_core::sc_report *r=nullptr);
353
354 Status status() { return _status; }
355 void status(Status s) { _status = s; }

--- 130 unchanged lines hidden ---
351 bool inTiming() { return status() == StatusTiming; }
352
353 uint64_t changeStamp() { return _changeStamp; }
354
355 void throwToScMain(const ::sc_core::sc_report *r=nullptr);
356
357 Status status() { return _status; }
358 void status(Status s) { _status = s; }

--- 130 unchanged lines hidden ---