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 --- 407 unchanged lines hidden (view full) --- 416{ 417 ::sc_core::at_negedge(s); 418} 419 420 421void 422next_trigger() 423{ |
424 sc_gem5::Process *p = sc_gem5::scheduler.current(); 425 p->setDynamic(nullptr); |
426} 427 428void |
429next_trigger(const sc_event &e) |
430{ |
431 sc_gem5::Process *p = sc_gem5::scheduler.current(); 432 p->setDynamic(new ::sc_gem5::SensitivityEvent(p, &e)); |
433} 434 435void |
436next_trigger(const sc_event_or_list &eol) |
437{ |
438 sc_gem5::Process *p = sc_gem5::scheduler.current(); 439 p->setDynamic(new ::sc_gem5::SensitivityEventOrList(p, &eol)); |
440} 441 442void |
443next_trigger(const sc_event_and_list &eal) |
444{ |
445 sc_gem5::Process *p = sc_gem5::scheduler.current(); 446 p->setDynamic(new ::sc_gem5::SensitivityEventAndList(p, &eal)); |
447} 448 449void |
450next_trigger(const sc_time &t) |
451{ |
452 sc_gem5::Process *p = sc_gem5::scheduler.current(); 453 p->setDynamic(new ::sc_gem5::SensitivityTimeout(p, t)); |
454} 455 456void 457next_trigger(double d, sc_time_unit u) 458{ 459 next_trigger(sc_time(d, u)); 460} 461 462void |
463next_trigger(const sc_time &t, const sc_event &e) |
464{ |
465 sc_gem5::Process *p = sc_gem5::scheduler.current(); 466 p->setDynamic(new ::sc_gem5::SensitivityTimeoutAndEvent(p, t, &e)); |
467} 468 469void 470next_trigger(double d, sc_time_unit u, const sc_event &e) 471{ 472 next_trigger(sc_time(d, u), e); 473} 474 475void |
476next_trigger(const sc_time &t, const sc_event_or_list &eol) |
477{ |
478 sc_gem5::Process *p = sc_gem5::scheduler.current(); 479 p->setDynamic( 480 new ::sc_gem5::SensitivityTimeoutAndEventOrList(p, t, &eol)); |
481} 482 483void 484next_trigger(double d, sc_time_unit u, const sc_event_or_list &eol) 485{ 486 next_trigger(sc_time(d, u), eol); 487} 488 489void |
490next_trigger(const sc_time &t, const sc_event_and_list &eal) |
491{ |
492 sc_gem5::Process *p = sc_gem5::scheduler.current(); 493 p->setDynamic( 494 new ::sc_gem5::SensitivityTimeoutAndEventAndList(p, t, &eal)); |
495} 496 497void 498next_trigger(double d, sc_time_unit u, const sc_event_and_list &eal) 499{ 500 next_trigger(sc_time(d, u), eal); 501} 502 503bool 504timed_out() 505{ 506 warn("%s not implemented.\n", __PRETTY_FUNCTION__); 507 return false; 508} 509 510 511void 512wait() 513{ |
514 sc_gem5::Process *p = sc_gem5::scheduler.current(); 515 p->setDynamic(nullptr); 516 sc_gem5::scheduler.yield(); |
517} 518 519void |
520wait(int n) |
521{ |
522 for (int i = 0; i < n; i++) 523 wait(); |
524} 525 526void |
527wait(const sc_event &e) |
528{ |
529 sc_gem5::Process *p = sc_gem5::scheduler.current(); 530 p->setDynamic(new ::sc_gem5::SensitivityEvent(p, &e)); 531 sc_gem5::scheduler.yield(); |
532} 533 534void |
535wait(const sc_event_or_list &eol) |
536{ |
537 sc_gem5::Process *p = sc_gem5::scheduler.current(); 538 p->setDynamic(new ::sc_gem5::SensitivityEventOrList(p, &eol)); 539 sc_gem5::scheduler.yield(); |
540} 541 542void |
543wait(const sc_event_and_list &eal) |
544{ |
545 sc_gem5::Process *p = sc_gem5::scheduler.current(); 546 p->setDynamic(new ::sc_gem5::SensitivityEventAndList(p, &eal)); 547 sc_gem5::scheduler.yield(); |
548} 549 550void |
551wait(const sc_time &t) |
552{ |
553 sc_gem5::Process *p = sc_gem5::scheduler.current(); 554 p->setDynamic(new ::sc_gem5::SensitivityTimeout(p, t)); 555 sc_gem5::scheduler.yield(); |
556} 557 558void 559wait(double d, sc_time_unit u) 560{ 561 wait(sc_time(d, u)); 562} 563 564void |
565wait(const sc_time &t, const sc_event &e) |
566{ |
567 sc_gem5::Process *p = sc_gem5::scheduler.current(); 568 p->setDynamic(new ::sc_gem5::SensitivityTimeoutAndEvent(p, t, &e)); 569 sc_gem5::scheduler.yield(); |
570} 571 572void 573wait(double d, sc_time_unit u, const sc_event &e) 574{ 575 wait(sc_time(d, u), e); 576} 577 578void |
579wait(const sc_time &t, const sc_event_or_list &eol) |
580{ |
581 sc_gem5::Process *p = sc_gem5::scheduler.current(); 582 p->setDynamic( 583 new ::sc_gem5::SensitivityTimeoutAndEventOrList(p, t, &eol)); 584 sc_gem5::scheduler.yield(); |
585} 586 587void 588wait(double d, sc_time_unit u, const sc_event_or_list &eol) 589{ 590 wait(sc_time(d, u), eol); 591} 592 593void |
594wait(const sc_time &t, const sc_event_and_list &eal) |
595{ |
596 sc_gem5::Process *p = sc_gem5::scheduler.current(); 597 p->setDynamic( 598 new ::sc_gem5::SensitivityTimeoutAndEventAndList(p, t, &eal)); 599 sc_gem5::scheduler.yield(); |
600} 601 602void 603wait(double d, sc_time_unit u, const sc_event_and_list &eal) 604{ 605 wait(sc_time(d, u), eal); 606} 607 --- 67 unchanged lines hidden --- |