sc_wait.h revision 12027
12568SN/A/***************************************************************************** 22568SN/A 32568SN/A Licensed to Accellera Systems Initiative Inc. (Accellera) under one or 42568SN/A more contributor license agreements. See the NOTICE file distributed 52568SN/A with this work for additional information regarding copyright ownership. 62568SN/A Accellera licenses this file to you under the Apache License, Version 2.0 72568SN/A (the "License"); you may not use this file except in compliance with the 82568SN/A License. You may obtain a copy of the License at 92568SN/A 102568SN/A http://www.apache.org/licenses/LICENSE-2.0 112568SN/A 122568SN/A Unless required by applicable law or agreed to in writing, software 132568SN/A distributed under the License is distributed on an "AS IS" BASIS, 142568SN/A WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 152568SN/A implied. See the License for the specific language governing 162568SN/A permissions and limitations under the License. 172568SN/A 182568SN/A *****************************************************************************/ 192568SN/A 202568SN/A/***************************************************************************** 212568SN/A 222568SN/A sc_wait.h -- Wait() and related functions. 232568SN/A 242568SN/A Original Author: Stan Y. Liao, Synopsys, Inc. 252568SN/A Martin Janssen, Synopsys, Inc. 262568SN/A 272665Ssaidi@eecs.umich.edu CHANGE LOG AT THE END OF THE FILE 282665Ssaidi@eecs.umich.edu *****************************************************************************/ 292665Ssaidi@eecs.umich.edu 302568SN/A#ifndef SC_WAIT_H 312568SN/A#define SC_WAIT_H 322568SN/A 332568SN/A 342568SN/A#include "sysc/kernel/sc_simcontext.h" 352568SN/A 362568SN/Anamespace sc_core { 373260Ssaidi@eecs.umich.edu 383260Ssaidi@eecs.umich.educlass sc_event; 392590SN/Aclass sc_event_and_list; 402568SN/Aclass sc_event_or_list; 413260Ssaidi@eecs.umich.educlass sc_simcontext; 422568SN/A 432641Sstever@eecs.umich.eduextern sc_simcontext* sc_get_curr_simcontext(); 442641Sstever@eecs.umich.edu 453262Srdreslin@umich.edu// static sensitivity for SC_THREADs and SC_CTHREADs 462641Sstever@eecs.umich.edu 472641Sstever@eecs.umich.eduextern 483262Srdreslin@umich.eduvoid 493262Srdreslin@umich.eduwait( sc_simcontext* = sc_get_curr_simcontext() ); 503262Srdreslin@umich.edu 513262Srdreslin@umich.edu 523262Srdreslin@umich.edu// dynamic sensitivity for SC_THREADs and SC_CTHREADs 533262Srdreslin@umich.edu 543335Srdreslin@umich.eduextern 553262Srdreslin@umich.eduvoid 563262Srdreslin@umich.eduwait( const sc_event&, 573262Srdreslin@umich.edu sc_simcontext* = sc_get_curr_simcontext() ); 582641Sstever@eecs.umich.edu 592641Sstever@eecs.umich.eduextern 602641Sstever@eecs.umich.eduvoid 612641Sstever@eecs.umich.eduwait( const sc_event_or_list&, 622641Sstever@eecs.umich.edu sc_simcontext* = sc_get_curr_simcontext() ); 632641Sstever@eecs.umich.edu 642641Sstever@eecs.umich.eduextern 652641Sstever@eecs.umich.eduvoid 662641Sstever@eecs.umich.eduwait( const sc_event_and_list&, 672641Sstever@eecs.umich.edu sc_simcontext* = sc_get_curr_simcontext() ); 682641Sstever@eecs.umich.edu 693262Srdreslin@umich.eduextern 703262Srdreslin@umich.eduvoid 713262Srdreslin@umich.eduwait( const sc_time&, 723262Srdreslin@umich.edu sc_simcontext* = sc_get_curr_simcontext() ); 733262Srdreslin@umich.edu 743262Srdreslin@umich.eduinline 753335Srdreslin@umich.eduvoid 763262Srdreslin@umich.eduwait( double v, sc_time_unit tu, 773262Srdreslin@umich.edu sc_simcontext* simc = sc_get_curr_simcontext() ) 783262Srdreslin@umich.edu{ 792641Sstever@eecs.umich.edu wait( sc_time( v, tu, simc ), simc ); 802641Sstever@eecs.umich.edu} 812641Sstever@eecs.umich.edu 822592SN/Aextern 832811Srdreslin@umich.eduvoid 842811Srdreslin@umich.eduwait( const sc_time&, 852811Srdreslin@umich.edu const sc_event&, 862811Srdreslin@umich.edu sc_simcontext* = sc_get_curr_simcontext() ); 872811Srdreslin@umich.edu 882811Srdreslin@umich.eduinline 892811Srdreslin@umich.eduvoid 902811Srdreslin@umich.eduwait( double v, sc_time_unit tu, 912811Srdreslin@umich.edu const sc_event& e, 923262Srdreslin@umich.edu sc_simcontext* simc = sc_get_curr_simcontext() ) 933262Srdreslin@umich.edu{ 943262Srdreslin@umich.edu wait( sc_time( v, tu, simc ), e, simc ); 953262Srdreslin@umich.edu} 963262Srdreslin@umich.edu 973262Srdreslin@umich.eduextern 983335Srdreslin@umich.eduvoid 993262Srdreslin@umich.eduwait( const sc_time&, 1003262Srdreslin@umich.edu const sc_event_or_list&, 1013262Srdreslin@umich.edu sc_simcontext* = sc_get_curr_simcontext() ); 1022811Srdreslin@umich.edu 1032811Srdreslin@umich.eduinline 1042811Srdreslin@umich.eduvoid 1052811Srdreslin@umich.eduwait( double v, sc_time_unit tu, 1062592SN/A const sc_event_or_list& el, 1072592SN/A sc_simcontext* simc = sc_get_curr_simcontext() ) 1082592SN/A{ 1092641Sstever@eecs.umich.edu wait( sc_time( v, tu, simc ), el, simc ); 1102641Sstever@eecs.umich.edu} 1112592SN/A 1122592SN/Aextern 1132592SN/Avoid 1142592SN/Await( const sc_time&, 1152592SN/A const sc_event_and_list&, 1162592SN/A sc_simcontext* = sc_get_curr_simcontext() ); 1172592SN/A 1182592SN/Ainline 1192592SN/Avoid 1202592SN/Await( double v, sc_time_unit tu, 1212592SN/A const sc_event_and_list& el, 1222592SN/A sc_simcontext* simc = sc_get_curr_simcontext() ) 1232641Sstever@eecs.umich.edu{ 1242641Sstever@eecs.umich.edu wait( sc_time( v, tu, simc ), el, simc ); 1252592SN/A} 1262592SN/A 1272592SN/A 1282592SN/A// static sensitivity for SC_METHODs 1292592SN/A 1302641Sstever@eecs.umich.eduextern 1312592SN/Avoid 1322592SN/Anext_trigger( sc_simcontext* = sc_get_curr_simcontext() ); 1332592SN/A 1342592SN/A 1352641Sstever@eecs.umich.edu// dynamic sensitivity for SC_METHODs 1362641Sstever@eecs.umich.edu 1372641Sstever@eecs.umich.eduextern 1383242Sgblack@eecs.umich.eduvoid 1392641Sstever@eecs.umich.edunext_trigger( const sc_event&, 1403242Sgblack@eecs.umich.edu sc_simcontext* = sc_get_curr_simcontext() ); 1412592SN/A 1423242Sgblack@eecs.umich.eduextern 1432592SN/Avoid 1442592SN/Anext_trigger( const sc_event_or_list&, 1452641Sstever@eecs.umich.edu sc_simcontext* = sc_get_curr_simcontext() ); 1462641Sstever@eecs.umich.edu 1472641Sstever@eecs.umich.eduextern 1483260Ssaidi@eecs.umich.eduvoid 1493260Ssaidi@eecs.umich.edunext_trigger( const sc_event_and_list&, 1503260Ssaidi@eecs.umich.edu sc_simcontext* = sc_get_curr_simcontext() ); 1513260Ssaidi@eecs.umich.edu 1523260Ssaidi@eecs.umich.eduextern 1533260Ssaidi@eecs.umich.eduvoid 1543260Ssaidi@eecs.umich.edunext_trigger( const sc_time&, 1553260Ssaidi@eecs.umich.edu sc_simcontext* = sc_get_curr_simcontext() ); 1563260Ssaidi@eecs.umich.edu 1573260Ssaidi@eecs.umich.eduinline 1583260Ssaidi@eecs.umich.eduvoid 1593260Ssaidi@eecs.umich.edunext_trigger( double v, sc_time_unit tu, 1603260Ssaidi@eecs.umich.edu sc_simcontext* simc = sc_get_curr_simcontext() ) 1613260Ssaidi@eecs.umich.edu{ 1623260Ssaidi@eecs.umich.edu next_trigger( sc_time( v, tu, simc ), simc ); 1633260Ssaidi@eecs.umich.edu} 1643260Ssaidi@eecs.umich.edu 1653260Ssaidi@eecs.umich.eduextern 1663260Ssaidi@eecs.umich.eduvoid 1673260Ssaidi@eecs.umich.edunext_trigger( const sc_time&, 1683260Ssaidi@eecs.umich.edu const sc_event&, 1693260Ssaidi@eecs.umich.edu sc_simcontext* = sc_get_curr_simcontext() ); 1703260Ssaidi@eecs.umich.edu 1713260Ssaidi@eecs.umich.eduinline 1723260Ssaidi@eecs.umich.eduvoid 1733260Ssaidi@eecs.umich.edunext_trigger( double v, sc_time_unit tu, 1743260Ssaidi@eecs.umich.edu const sc_event& e, 1753260Ssaidi@eecs.umich.edu sc_simcontext* simc = sc_get_curr_simcontext() ) 1763260Ssaidi@eecs.umich.edu{ 1773260Ssaidi@eecs.umich.edu next_trigger( sc_time( v, tu, simc ), e, simc ); 1783260Ssaidi@eecs.umich.edu} 1793260Ssaidi@eecs.umich.edu 1803260Ssaidi@eecs.umich.eduextern 1813260Ssaidi@eecs.umich.eduvoid 1823260Ssaidi@eecs.umich.edunext_trigger( const sc_time&, 1833260Ssaidi@eecs.umich.edu const sc_event_or_list&, 1843260Ssaidi@eecs.umich.edu sc_simcontext* = sc_get_curr_simcontext() ); 1853260Ssaidi@eecs.umich.edu 1863260Ssaidi@eecs.umich.eduinline 1873260Ssaidi@eecs.umich.eduvoid 1883260Ssaidi@eecs.umich.edunext_trigger( double v, sc_time_unit tu, 1893260Ssaidi@eecs.umich.edu const sc_event_or_list& el, 1903260Ssaidi@eecs.umich.edu sc_simcontext* simc = sc_get_curr_simcontext() ) 1913260Ssaidi@eecs.umich.edu{ 1923260Ssaidi@eecs.umich.edu next_trigger( sc_time( v, tu, simc ), el, simc ); 1933260Ssaidi@eecs.umich.edu} 1943260Ssaidi@eecs.umich.edu 1953260Ssaidi@eecs.umich.eduextern 1962641Sstever@eecs.umich.eduvoid 1973260Ssaidi@eecs.umich.edunext_trigger( const sc_time&, 1983260Ssaidi@eecs.umich.edu const sc_event_and_list&, 1993260Ssaidi@eecs.umich.edu sc_simcontext* = sc_get_curr_simcontext() ); 2003260Ssaidi@eecs.umich.edu 2013260Ssaidi@eecs.umich.eduinline 2023260Ssaidi@eecs.umich.eduvoid 2033260Ssaidi@eecs.umich.edunext_trigger( double v, sc_time_unit tu, 2043260Ssaidi@eecs.umich.edu const sc_event_and_list& el, 2053260Ssaidi@eecs.umich.edu sc_simcontext* simc = sc_get_curr_simcontext() ) 2063260Ssaidi@eecs.umich.edu{ 2073260Ssaidi@eecs.umich.edu next_trigger( sc_time( v, tu, simc ), el, simc ); 2083260Ssaidi@eecs.umich.edu} 2093260Ssaidi@eecs.umich.edu 2103260Ssaidi@eecs.umich.edu 2113260Ssaidi@eecs.umich.edu// for SC_METHODs and SC_THREADs and SC_CTHREADs 2123260Ssaidi@eecs.umich.edu 2133260Ssaidi@eecs.umich.eduextern 2143260Ssaidi@eecs.umich.edubool 2153260Ssaidi@eecs.umich.edutimed_out( sc_simcontext* = sc_get_curr_simcontext() ); 2163260Ssaidi@eecs.umich.edu 2173260Ssaidi@eecs.umich.edu// misc. 2183260Ssaidi@eecs.umich.edu 2193260Ssaidi@eecs.umich.eduextern 2203260Ssaidi@eecs.umich.eduvoid 2213260Ssaidi@eecs.umich.edusc_set_location( const char*, 2223260Ssaidi@eecs.umich.edu int, 2233260Ssaidi@eecs.umich.edu sc_simcontext* = sc_get_curr_simcontext() ); 2243260Ssaidi@eecs.umich.edu 2253260Ssaidi@eecs.umich.edu} // namespace sc_core 2263260Ssaidi@eecs.umich.edu 2273260Ssaidi@eecs.umich.edu/* 2283260Ssaidi@eecs.umich.edu$Log: sc_wait.h,v $ 2293260Ssaidi@eecs.umich.eduRevision 1.6 2011/08/26 20:46:11 acg 2303260Ssaidi@eecs.umich.edu Andy Goodrich: moved the modification log to the end of the file to 2313260Ssaidi@eecs.umich.edu eliminate source line number skew when check-ins are done. 2323260Ssaidi@eecs.umich.edu 2333260Ssaidi@eecs.umich.eduRevision 1.5 2011/02/18 20:27:14 acg 2343260Ssaidi@eecs.umich.edu Andy Goodrich: Updated Copyrights. 2353260Ssaidi@eecs.umich.edu 2363260Ssaidi@eecs.umich.eduRevision 1.4 2011/02/13 21:47:38 acg 2373260Ssaidi@eecs.umich.edu Andy Goodrich: update copyright notice. 238 239Revision 1.3 2011/01/18 20:10:45 acg 240 Andy Goodrich: changes for IEEE1666_2011 semantics. 241 242Revision 1.2 2008/05/22 17:06:27 acg 243 Andy Goodrich: updated copyright notice to include 2008. 244 245Revision 1.1.1.1 2006/12/15 20:20:05 acg 246SystemC 2.3 247 248Revision 1.2 2006/01/03 23:18:45 acg 249Changed copyright to include 2006. 250 251Revision 1.1.1.1 2005/12/19 23:16:44 acg 252First check in of SystemC 2.1 into its own archive. 253 254Revision 1.10 2005/07/30 03:45:05 acg 255Changes from 2.1, including changes for sc_process_handle. 256 257Revision 1.9 2005/04/04 00:16:08 acg 258Changes for directory name change to sys from systemc. 259Changes for sc_string going to std::string. 260Changes for sc_pvector going to std::vector. 261Changes for reference pools for bit and part selections. 262Changes for const sc_concatref support. 263 264Revision 1.6 2004/10/13 18:13:22 acg 265sc_ver.h - updated version number. sc_wait.h remove inclusion of 266sysc/kernel/sc_event.h because it is not necessary. 267 268Revision 1.5 2004/09/27 20:49:10 acg 269Andy Goodrich, Forte Design Systems, Inc. 270 - Added a $Log comment so that CVS checkin comments appear in the 271 checkout source. 272 273*/ 274 275#endif 276 277// Taf! 278