112027Sjungma@eit.uni-kl.de/***************************************************************************** 212027Sjungma@eit.uni-kl.de 312027Sjungma@eit.uni-kl.de Licensed to Accellera Systems Initiative Inc. (Accellera) under one or 412027Sjungma@eit.uni-kl.de more contributor license agreements. See the NOTICE file distributed 512027Sjungma@eit.uni-kl.de with this work for additional information regarding copyright ownership. 612027Sjungma@eit.uni-kl.de Accellera licenses this file to you under the Apache License, Version 2.0 712027Sjungma@eit.uni-kl.de (the "License"); you may not use this file except in compliance with the 812027Sjungma@eit.uni-kl.de License. You may obtain a copy of the License at 912027Sjungma@eit.uni-kl.de 1012027Sjungma@eit.uni-kl.de http://www.apache.org/licenses/LICENSE-2.0 1112027Sjungma@eit.uni-kl.de 1212027Sjungma@eit.uni-kl.de Unless required by applicable law or agreed to in writing, software 1312027Sjungma@eit.uni-kl.de distributed under the License is distributed on an "AS IS" BASIS, 1412027Sjungma@eit.uni-kl.de WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 1512027Sjungma@eit.uni-kl.de implied. See the License for the specific language governing 1612027Sjungma@eit.uni-kl.de permissions and limitations under the License. 1712027Sjungma@eit.uni-kl.de 1812027Sjungma@eit.uni-kl.de *****************************************************************************/ 1912027Sjungma@eit.uni-kl.de 2012027Sjungma@eit.uni-kl.de/***************************************************************************** 2112027Sjungma@eit.uni-kl.de 2212027Sjungma@eit.uni-kl.de sc_wait.h -- Wait() and related functions. 2312027Sjungma@eit.uni-kl.de 2412027Sjungma@eit.uni-kl.de Original Author: Stan Y. Liao, Synopsys, Inc. 2512027Sjungma@eit.uni-kl.de Martin Janssen, Synopsys, Inc. 2612027Sjungma@eit.uni-kl.de 2712027Sjungma@eit.uni-kl.de CHANGE LOG AT THE END OF THE FILE 2812027Sjungma@eit.uni-kl.de *****************************************************************************/ 2912027Sjungma@eit.uni-kl.de 3012027Sjungma@eit.uni-kl.de#ifndef SC_WAIT_H 3112027Sjungma@eit.uni-kl.de#define SC_WAIT_H 3212027Sjungma@eit.uni-kl.de 3312027Sjungma@eit.uni-kl.de 3412027Sjungma@eit.uni-kl.de#include "sysc/kernel/sc_simcontext.h" 3512027Sjungma@eit.uni-kl.de 3612027Sjungma@eit.uni-kl.denamespace sc_core { 3712027Sjungma@eit.uni-kl.de 3812027Sjungma@eit.uni-kl.declass sc_event; 3912027Sjungma@eit.uni-kl.declass sc_event_and_list; 4012027Sjungma@eit.uni-kl.declass sc_event_or_list; 4112027Sjungma@eit.uni-kl.declass sc_simcontext; 4212027Sjungma@eit.uni-kl.de 4312027Sjungma@eit.uni-kl.deextern sc_simcontext* sc_get_curr_simcontext(); 4412027Sjungma@eit.uni-kl.de 4512027Sjungma@eit.uni-kl.de// static sensitivity for SC_THREADs and SC_CTHREADs 4612027Sjungma@eit.uni-kl.de 4712027Sjungma@eit.uni-kl.deextern 4812027Sjungma@eit.uni-kl.devoid 4912027Sjungma@eit.uni-kl.dewait( sc_simcontext* = sc_get_curr_simcontext() ); 5012027Sjungma@eit.uni-kl.de 5112027Sjungma@eit.uni-kl.de 5212027Sjungma@eit.uni-kl.de// dynamic sensitivity for SC_THREADs and SC_CTHREADs 5312027Sjungma@eit.uni-kl.de 5412027Sjungma@eit.uni-kl.deextern 5512027Sjungma@eit.uni-kl.devoid 5612027Sjungma@eit.uni-kl.dewait( const sc_event&, 5712027Sjungma@eit.uni-kl.de sc_simcontext* = sc_get_curr_simcontext() ); 5812027Sjungma@eit.uni-kl.de 5912027Sjungma@eit.uni-kl.deextern 6012027Sjungma@eit.uni-kl.devoid 6112027Sjungma@eit.uni-kl.dewait( const sc_event_or_list&, 6212027Sjungma@eit.uni-kl.de sc_simcontext* = sc_get_curr_simcontext() ); 6312027Sjungma@eit.uni-kl.de 6412027Sjungma@eit.uni-kl.deextern 6512027Sjungma@eit.uni-kl.devoid 6612027Sjungma@eit.uni-kl.dewait( const sc_event_and_list&, 6712027Sjungma@eit.uni-kl.de sc_simcontext* = sc_get_curr_simcontext() ); 6812027Sjungma@eit.uni-kl.de 6912027Sjungma@eit.uni-kl.deextern 7012027Sjungma@eit.uni-kl.devoid 7112027Sjungma@eit.uni-kl.dewait( const sc_time&, 7212027Sjungma@eit.uni-kl.de sc_simcontext* = sc_get_curr_simcontext() ); 7312027Sjungma@eit.uni-kl.de 7412027Sjungma@eit.uni-kl.deinline 7512027Sjungma@eit.uni-kl.devoid 7612027Sjungma@eit.uni-kl.dewait( double v, sc_time_unit tu, 7712027Sjungma@eit.uni-kl.de sc_simcontext* simc = sc_get_curr_simcontext() ) 7812027Sjungma@eit.uni-kl.de{ 7912027Sjungma@eit.uni-kl.de wait( sc_time( v, tu, simc ), simc ); 8012027Sjungma@eit.uni-kl.de} 8112027Sjungma@eit.uni-kl.de 8212027Sjungma@eit.uni-kl.deextern 8312027Sjungma@eit.uni-kl.devoid 8412027Sjungma@eit.uni-kl.dewait( const sc_time&, 8512027Sjungma@eit.uni-kl.de const sc_event&, 8612027Sjungma@eit.uni-kl.de sc_simcontext* = sc_get_curr_simcontext() ); 8712027Sjungma@eit.uni-kl.de 8812027Sjungma@eit.uni-kl.deinline 8912027Sjungma@eit.uni-kl.devoid 9012027Sjungma@eit.uni-kl.dewait( double v, sc_time_unit tu, 9112027Sjungma@eit.uni-kl.de const sc_event& e, 9212027Sjungma@eit.uni-kl.de sc_simcontext* simc = sc_get_curr_simcontext() ) 9312027Sjungma@eit.uni-kl.de{ 9412027Sjungma@eit.uni-kl.de wait( sc_time( v, tu, simc ), e, simc ); 9512027Sjungma@eit.uni-kl.de} 9612027Sjungma@eit.uni-kl.de 9712027Sjungma@eit.uni-kl.deextern 9812027Sjungma@eit.uni-kl.devoid 9912027Sjungma@eit.uni-kl.dewait( const sc_time&, 10012027Sjungma@eit.uni-kl.de const sc_event_or_list&, 10112027Sjungma@eit.uni-kl.de sc_simcontext* = sc_get_curr_simcontext() ); 10212027Sjungma@eit.uni-kl.de 10312027Sjungma@eit.uni-kl.deinline 10412027Sjungma@eit.uni-kl.devoid 10512027Sjungma@eit.uni-kl.dewait( double v, sc_time_unit tu, 10612027Sjungma@eit.uni-kl.de const sc_event_or_list& el, 10712027Sjungma@eit.uni-kl.de sc_simcontext* simc = sc_get_curr_simcontext() ) 10812027Sjungma@eit.uni-kl.de{ 10912027Sjungma@eit.uni-kl.de wait( sc_time( v, tu, simc ), el, simc ); 11012027Sjungma@eit.uni-kl.de} 11112027Sjungma@eit.uni-kl.de 11212027Sjungma@eit.uni-kl.deextern 11312027Sjungma@eit.uni-kl.devoid 11412027Sjungma@eit.uni-kl.dewait( const sc_time&, 11512027Sjungma@eit.uni-kl.de const sc_event_and_list&, 11612027Sjungma@eit.uni-kl.de sc_simcontext* = sc_get_curr_simcontext() ); 11712027Sjungma@eit.uni-kl.de 11812027Sjungma@eit.uni-kl.deinline 11912027Sjungma@eit.uni-kl.devoid 12012027Sjungma@eit.uni-kl.dewait( double v, sc_time_unit tu, 12112027Sjungma@eit.uni-kl.de const sc_event_and_list& el, 12212027Sjungma@eit.uni-kl.de sc_simcontext* simc = sc_get_curr_simcontext() ) 12312027Sjungma@eit.uni-kl.de{ 12412027Sjungma@eit.uni-kl.de wait( sc_time( v, tu, simc ), el, simc ); 12512027Sjungma@eit.uni-kl.de} 12612027Sjungma@eit.uni-kl.de 12712027Sjungma@eit.uni-kl.de 12812027Sjungma@eit.uni-kl.de// static sensitivity for SC_METHODs 12912027Sjungma@eit.uni-kl.de 13012027Sjungma@eit.uni-kl.deextern 13112027Sjungma@eit.uni-kl.devoid 13212027Sjungma@eit.uni-kl.denext_trigger( sc_simcontext* = sc_get_curr_simcontext() ); 13312027Sjungma@eit.uni-kl.de 13412027Sjungma@eit.uni-kl.de 13512027Sjungma@eit.uni-kl.de// dynamic sensitivity for SC_METHODs 13612027Sjungma@eit.uni-kl.de 13712027Sjungma@eit.uni-kl.deextern 13812027Sjungma@eit.uni-kl.devoid 13912027Sjungma@eit.uni-kl.denext_trigger( const sc_event&, 14012027Sjungma@eit.uni-kl.de sc_simcontext* = sc_get_curr_simcontext() ); 14112027Sjungma@eit.uni-kl.de 14212027Sjungma@eit.uni-kl.deextern 14312027Sjungma@eit.uni-kl.devoid 14412027Sjungma@eit.uni-kl.denext_trigger( const sc_event_or_list&, 14512027Sjungma@eit.uni-kl.de sc_simcontext* = sc_get_curr_simcontext() ); 14612027Sjungma@eit.uni-kl.de 14712027Sjungma@eit.uni-kl.deextern 14812027Sjungma@eit.uni-kl.devoid 14912027Sjungma@eit.uni-kl.denext_trigger( const sc_event_and_list&, 15012027Sjungma@eit.uni-kl.de sc_simcontext* = sc_get_curr_simcontext() ); 15112027Sjungma@eit.uni-kl.de 15212027Sjungma@eit.uni-kl.deextern 15312027Sjungma@eit.uni-kl.devoid 15412027Sjungma@eit.uni-kl.denext_trigger( const sc_time&, 15512027Sjungma@eit.uni-kl.de sc_simcontext* = sc_get_curr_simcontext() ); 15612027Sjungma@eit.uni-kl.de 15712027Sjungma@eit.uni-kl.deinline 15812027Sjungma@eit.uni-kl.devoid 15912027Sjungma@eit.uni-kl.denext_trigger( double v, sc_time_unit tu, 16012027Sjungma@eit.uni-kl.de sc_simcontext* simc = sc_get_curr_simcontext() ) 16112027Sjungma@eit.uni-kl.de{ 16212027Sjungma@eit.uni-kl.de next_trigger( sc_time( v, tu, simc ), simc ); 16312027Sjungma@eit.uni-kl.de} 16412027Sjungma@eit.uni-kl.de 16512027Sjungma@eit.uni-kl.deextern 16612027Sjungma@eit.uni-kl.devoid 16712027Sjungma@eit.uni-kl.denext_trigger( const sc_time&, 16812027Sjungma@eit.uni-kl.de const sc_event&, 16912027Sjungma@eit.uni-kl.de sc_simcontext* = sc_get_curr_simcontext() ); 17012027Sjungma@eit.uni-kl.de 17112027Sjungma@eit.uni-kl.deinline 17212027Sjungma@eit.uni-kl.devoid 17312027Sjungma@eit.uni-kl.denext_trigger( double v, sc_time_unit tu, 17412027Sjungma@eit.uni-kl.de const sc_event& e, 17512027Sjungma@eit.uni-kl.de sc_simcontext* simc = sc_get_curr_simcontext() ) 17612027Sjungma@eit.uni-kl.de{ 17712027Sjungma@eit.uni-kl.de next_trigger( sc_time( v, tu, simc ), e, simc ); 17812027Sjungma@eit.uni-kl.de} 17912027Sjungma@eit.uni-kl.de 18012027Sjungma@eit.uni-kl.deextern 18112027Sjungma@eit.uni-kl.devoid 18212027Sjungma@eit.uni-kl.denext_trigger( const sc_time&, 18312027Sjungma@eit.uni-kl.de const sc_event_or_list&, 18412027Sjungma@eit.uni-kl.de sc_simcontext* = sc_get_curr_simcontext() ); 18512027Sjungma@eit.uni-kl.de 18612027Sjungma@eit.uni-kl.deinline 18712027Sjungma@eit.uni-kl.devoid 18812027Sjungma@eit.uni-kl.denext_trigger( double v, sc_time_unit tu, 18912027Sjungma@eit.uni-kl.de const sc_event_or_list& el, 19012027Sjungma@eit.uni-kl.de sc_simcontext* simc = sc_get_curr_simcontext() ) 19112027Sjungma@eit.uni-kl.de{ 19212027Sjungma@eit.uni-kl.de next_trigger( sc_time( v, tu, simc ), el, simc ); 19312027Sjungma@eit.uni-kl.de} 19412027Sjungma@eit.uni-kl.de 19512027Sjungma@eit.uni-kl.deextern 19612027Sjungma@eit.uni-kl.devoid 19712027Sjungma@eit.uni-kl.denext_trigger( const sc_time&, 19812027Sjungma@eit.uni-kl.de const sc_event_and_list&, 19912027Sjungma@eit.uni-kl.de sc_simcontext* = sc_get_curr_simcontext() ); 20012027Sjungma@eit.uni-kl.de 20112027Sjungma@eit.uni-kl.deinline 20212027Sjungma@eit.uni-kl.devoid 20312027Sjungma@eit.uni-kl.denext_trigger( double v, sc_time_unit tu, 20412027Sjungma@eit.uni-kl.de const sc_event_and_list& el, 20512027Sjungma@eit.uni-kl.de sc_simcontext* simc = sc_get_curr_simcontext() ) 20612027Sjungma@eit.uni-kl.de{ 20712027Sjungma@eit.uni-kl.de next_trigger( sc_time( v, tu, simc ), el, simc ); 20812027Sjungma@eit.uni-kl.de} 20912027Sjungma@eit.uni-kl.de 21012027Sjungma@eit.uni-kl.de 21112027Sjungma@eit.uni-kl.de// for SC_METHODs and SC_THREADs and SC_CTHREADs 21212027Sjungma@eit.uni-kl.de 21312027Sjungma@eit.uni-kl.deextern 21412027Sjungma@eit.uni-kl.debool 21512027Sjungma@eit.uni-kl.detimed_out( sc_simcontext* = sc_get_curr_simcontext() ); 21612027Sjungma@eit.uni-kl.de 21712027Sjungma@eit.uni-kl.de// misc. 21812027Sjungma@eit.uni-kl.de 21912027Sjungma@eit.uni-kl.deextern 22012027Sjungma@eit.uni-kl.devoid 22112027Sjungma@eit.uni-kl.desc_set_location( const char*, 22212027Sjungma@eit.uni-kl.de int, 22312027Sjungma@eit.uni-kl.de sc_simcontext* = sc_get_curr_simcontext() ); 22412027Sjungma@eit.uni-kl.de 22512027Sjungma@eit.uni-kl.de} // namespace sc_core 22612027Sjungma@eit.uni-kl.de 22712027Sjungma@eit.uni-kl.de/* 22812027Sjungma@eit.uni-kl.de$Log: sc_wait.h,v $ 22912027Sjungma@eit.uni-kl.deRevision 1.6 2011/08/26 20:46:11 acg 23012027Sjungma@eit.uni-kl.de Andy Goodrich: moved the modification log to the end of the file to 23112027Sjungma@eit.uni-kl.de eliminate source line number skew when check-ins are done. 23212027Sjungma@eit.uni-kl.de 23312027Sjungma@eit.uni-kl.deRevision 1.5 2011/02/18 20:27:14 acg 23412027Sjungma@eit.uni-kl.de Andy Goodrich: Updated Copyrights. 23512027Sjungma@eit.uni-kl.de 23612027Sjungma@eit.uni-kl.deRevision 1.4 2011/02/13 21:47:38 acg 23712027Sjungma@eit.uni-kl.de Andy Goodrich: update copyright notice. 23812027Sjungma@eit.uni-kl.de 23912027Sjungma@eit.uni-kl.deRevision 1.3 2011/01/18 20:10:45 acg 24012027Sjungma@eit.uni-kl.de Andy Goodrich: changes for IEEE1666_2011 semantics. 24112027Sjungma@eit.uni-kl.de 24212027Sjungma@eit.uni-kl.deRevision 1.2 2008/05/22 17:06:27 acg 24312027Sjungma@eit.uni-kl.de Andy Goodrich: updated copyright notice to include 2008. 24412027Sjungma@eit.uni-kl.de 24512027Sjungma@eit.uni-kl.deRevision 1.1.1.1 2006/12/15 20:20:05 acg 24612027Sjungma@eit.uni-kl.deSystemC 2.3 24712027Sjungma@eit.uni-kl.de 24812027Sjungma@eit.uni-kl.deRevision 1.2 2006/01/03 23:18:45 acg 24912027Sjungma@eit.uni-kl.deChanged copyright to include 2006. 25012027Sjungma@eit.uni-kl.de 25112027Sjungma@eit.uni-kl.deRevision 1.1.1.1 2005/12/19 23:16:44 acg 25212027Sjungma@eit.uni-kl.deFirst check in of SystemC 2.1 into its own archive. 25312027Sjungma@eit.uni-kl.de 25412027Sjungma@eit.uni-kl.deRevision 1.10 2005/07/30 03:45:05 acg 25512027Sjungma@eit.uni-kl.deChanges from 2.1, including changes for sc_process_handle. 25612027Sjungma@eit.uni-kl.de 25712027Sjungma@eit.uni-kl.deRevision 1.9 2005/04/04 00:16:08 acg 25812027Sjungma@eit.uni-kl.deChanges for directory name change to sys from systemc. 25912027Sjungma@eit.uni-kl.deChanges for sc_string going to std::string. 26012027Sjungma@eit.uni-kl.deChanges for sc_pvector going to std::vector. 26112027Sjungma@eit.uni-kl.deChanges for reference pools for bit and part selections. 26212027Sjungma@eit.uni-kl.deChanges for const sc_concatref support. 26312027Sjungma@eit.uni-kl.de 26412027Sjungma@eit.uni-kl.deRevision 1.6 2004/10/13 18:13:22 acg 26512027Sjungma@eit.uni-kl.desc_ver.h - updated version number. sc_wait.h remove inclusion of 26612027Sjungma@eit.uni-kl.desysc/kernel/sc_event.h because it is not necessary. 26712027Sjungma@eit.uni-kl.de 26812027Sjungma@eit.uni-kl.deRevision 1.5 2004/09/27 20:49:10 acg 26912027Sjungma@eit.uni-kl.deAndy Goodrich, Forte Design Systems, Inc. 27012027Sjungma@eit.uni-kl.de - Added a $Log comment so that CVS checkin comments appear in the 27112027Sjungma@eit.uni-kl.de checkout source. 27212027Sjungma@eit.uni-kl.de 27312027Sjungma@eit.uni-kl.de*/ 27412027Sjungma@eit.uni-kl.de 27512027Sjungma@eit.uni-kl.de#endif 27612027Sjungma@eit.uni-kl.de 27712027Sjungma@eit.uni-kl.de// Taf! 278