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 --- |