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_time.h -- The time class. 2312027Sjungma@eit.uni-kl.de 2412027Sjungma@eit.uni-kl.de Original Author: Martin Janssen, Synopsys, Inc., 2001-05-21 2512027Sjungma@eit.uni-kl.de 2612027Sjungma@eit.uni-kl.de CHANGE LOG AT THE END OF THE FILE 2712027Sjungma@eit.uni-kl.de *****************************************************************************/ 2812027Sjungma@eit.uni-kl.de 2912027Sjungma@eit.uni-kl.de 3012027Sjungma@eit.uni-kl.de#ifndef SC_TIME_H 3112027Sjungma@eit.uni-kl.de#define SC_TIME_H 3212027Sjungma@eit.uni-kl.de 3312027Sjungma@eit.uni-kl.de 3412027Sjungma@eit.uni-kl.de#include "sysc/datatypes/int/sc_nbdefs.h" 3512027Sjungma@eit.uni-kl.de#include "sysc/datatypes/fx/scfx_ieee.h" 3612027Sjungma@eit.uni-kl.de#include "sysc/utils/sc_iostream.h" 3712027Sjungma@eit.uni-kl.de 3812027Sjungma@eit.uni-kl.denamespace sc_core { 3912027Sjungma@eit.uni-kl.de 4012027Sjungma@eit.uni-kl.declass sc_simcontext; 4112027Sjungma@eit.uni-kl.de 4212027Sjungma@eit.uni-kl.de// friend operator declarations 4312027Sjungma@eit.uni-kl.de 4412027Sjungma@eit.uni-kl.de const sc_time operator + ( const sc_time&, const sc_time& ); 4512027Sjungma@eit.uni-kl.de const sc_time operator - ( const sc_time&, const sc_time& ); 4612027Sjungma@eit.uni-kl.de const sc_time operator * ( const sc_time&, double ); 4712027Sjungma@eit.uni-kl.de const sc_time operator * ( double, const sc_time& ); 4812027Sjungma@eit.uni-kl.de const sc_time operator / ( const sc_time&, double ); 4912027Sjungma@eit.uni-kl.de double operator / ( const sc_time&, const sc_time& ); 5012027Sjungma@eit.uni-kl.de 5112027Sjungma@eit.uni-kl.de 5212027Sjungma@eit.uni-kl.de// ---------------------------------------------------------------------------- 5312027Sjungma@eit.uni-kl.de// ENUM : sc_time_unit 5412027Sjungma@eit.uni-kl.de// 5512027Sjungma@eit.uni-kl.de// Enumeration of time units. 5612027Sjungma@eit.uni-kl.de// ---------------------------------------------------------------------------- 5712027Sjungma@eit.uni-kl.de 5812027Sjungma@eit.uni-kl.deenum sc_time_unit 5912027Sjungma@eit.uni-kl.de{ 6012027Sjungma@eit.uni-kl.de SC_FS = 0, 6112027Sjungma@eit.uni-kl.de SC_PS, 6212027Sjungma@eit.uni-kl.de SC_NS, 6312027Sjungma@eit.uni-kl.de SC_US, 6412027Sjungma@eit.uni-kl.de SC_MS, 6512027Sjungma@eit.uni-kl.de SC_SEC 6612027Sjungma@eit.uni-kl.de}; 6712027Sjungma@eit.uni-kl.de 6812027Sjungma@eit.uni-kl.de 6912027Sjungma@eit.uni-kl.de// ---------------------------------------------------------------------------- 7012027Sjungma@eit.uni-kl.de// CLASS : sc_time 7112027Sjungma@eit.uni-kl.de// 7212027Sjungma@eit.uni-kl.de// The time class. 7312027Sjungma@eit.uni-kl.de// ---------------------------------------------------------------------------- 7412027Sjungma@eit.uni-kl.de 7512027Sjungma@eit.uni-kl.declass sc_time 7612027Sjungma@eit.uni-kl.de{ 7712027Sjungma@eit.uni-kl.depublic: 7812027Sjungma@eit.uni-kl.de 7912027Sjungma@eit.uni-kl.de typedef sc_dt::uint64 value_type; 8012027Sjungma@eit.uni-kl.de 8112027Sjungma@eit.uni-kl.de // constructors 8212027Sjungma@eit.uni-kl.de 8312027Sjungma@eit.uni-kl.de sc_time(); 8412027Sjungma@eit.uni-kl.de sc_time( double, sc_time_unit ); 8512027Sjungma@eit.uni-kl.de sc_time( double, sc_time_unit, sc_simcontext* ); 8612027Sjungma@eit.uni-kl.de sc_time( const sc_time& ); 8712027Sjungma@eit.uni-kl.de 8812027Sjungma@eit.uni-kl.de static sc_time from_value( value_type ); 8912027Sjungma@eit.uni-kl.de 9012027Sjungma@eit.uni-kl.de // deprecated, use from_value(v) 9112027Sjungma@eit.uni-kl.de sc_time( double, bool scale ); 9212027Sjungma@eit.uni-kl.de sc_time( value_type, bool scale ); 9312027Sjungma@eit.uni-kl.de 9412027Sjungma@eit.uni-kl.de // assignment operator 9512027Sjungma@eit.uni-kl.de 9612027Sjungma@eit.uni-kl.de sc_time& operator = ( const sc_time& ); 9712027Sjungma@eit.uni-kl.de 9812027Sjungma@eit.uni-kl.de 9912027Sjungma@eit.uni-kl.de // conversion functions 10012027Sjungma@eit.uni-kl.de 10112027Sjungma@eit.uni-kl.de value_type value() const; // relative to the time resolution 10212027Sjungma@eit.uni-kl.de double to_double() const; // relative to the time resolution 10312027Sjungma@eit.uni-kl.de double to_default_time_units() const; 10412027Sjungma@eit.uni-kl.de double to_seconds() const; 10512027Sjungma@eit.uni-kl.de const std::string to_string() const; 10612027Sjungma@eit.uni-kl.de 10712027Sjungma@eit.uni-kl.de 10812027Sjungma@eit.uni-kl.de // relational operators 10912027Sjungma@eit.uni-kl.de 11012027Sjungma@eit.uni-kl.de bool operator == ( const sc_time& ) const; 11112027Sjungma@eit.uni-kl.de bool operator != ( const sc_time& ) const; 11212027Sjungma@eit.uni-kl.de bool operator < ( const sc_time& ) const; 11312027Sjungma@eit.uni-kl.de bool operator <= ( const sc_time& ) const; 11412027Sjungma@eit.uni-kl.de bool operator > ( const sc_time& ) const; 11512027Sjungma@eit.uni-kl.de bool operator >= ( const sc_time& ) const; 11612027Sjungma@eit.uni-kl.de 11712027Sjungma@eit.uni-kl.de 11812027Sjungma@eit.uni-kl.de // arithmetic operators 11912027Sjungma@eit.uni-kl.de 12012027Sjungma@eit.uni-kl.de sc_time& operator += ( const sc_time& ); 12112027Sjungma@eit.uni-kl.de sc_time& operator -= ( const sc_time& ); 12212027Sjungma@eit.uni-kl.de 12312027Sjungma@eit.uni-kl.de friend const sc_time operator + ( const sc_time&, const sc_time& ); 12412027Sjungma@eit.uni-kl.de friend const sc_time operator - ( const sc_time&, const sc_time& ); 12512027Sjungma@eit.uni-kl.de 12612027Sjungma@eit.uni-kl.de sc_time& operator *= ( double ); 12712027Sjungma@eit.uni-kl.de sc_time& operator /= ( double ); 12812027Sjungma@eit.uni-kl.de sc_time& operator %= ( const sc_time& ); 12912027Sjungma@eit.uni-kl.de 13012027Sjungma@eit.uni-kl.de friend const sc_time operator * ( const sc_time&, double ); 13112027Sjungma@eit.uni-kl.de friend const sc_time operator * ( double, const sc_time& ); 13212027Sjungma@eit.uni-kl.de friend const sc_time operator / ( const sc_time&, double ); 13312027Sjungma@eit.uni-kl.de friend double operator / ( const sc_time&, const sc_time& ); 13412027Sjungma@eit.uni-kl.de friend const sc_time operator % ( const sc_time&, const sc_time& ); 13512027Sjungma@eit.uni-kl.de 13612027Sjungma@eit.uni-kl.de 13712027Sjungma@eit.uni-kl.de // print function 13812027Sjungma@eit.uni-kl.de 13912027Sjungma@eit.uni-kl.de void print( ::std::ostream& os = std::cout ) const; 14012027Sjungma@eit.uni-kl.de 14112027Sjungma@eit.uni-kl.deprivate: 14212027Sjungma@eit.uni-kl.de 14312027Sjungma@eit.uni-kl.de value_type m_value; 14412027Sjungma@eit.uni-kl.de}; 14512027Sjungma@eit.uni-kl.de 14612027Sjungma@eit.uni-kl.de 14712027Sjungma@eit.uni-kl.de// print operator 14812027Sjungma@eit.uni-kl.de 14912027Sjungma@eit.uni-kl.deinline ::std::ostream& operator << ( ::std::ostream&, const sc_time& ); 15012027Sjungma@eit.uni-kl.de 15112027Sjungma@eit.uni-kl.de 15212027Sjungma@eit.uni-kl.de// IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 15312027Sjungma@eit.uni-kl.de 15412027Sjungma@eit.uni-kl.de// constructors 15512027Sjungma@eit.uni-kl.de 15612027Sjungma@eit.uni-kl.deinline 15712027Sjungma@eit.uni-kl.desc_time::sc_time() 15812027Sjungma@eit.uni-kl.de: m_value( 0 ) 15912027Sjungma@eit.uni-kl.de{} 16012027Sjungma@eit.uni-kl.de 16112027Sjungma@eit.uni-kl.deinline 16212027Sjungma@eit.uni-kl.desc_time::sc_time( const sc_time& t ) 16312027Sjungma@eit.uni-kl.de: m_value( t.m_value ) 16412027Sjungma@eit.uni-kl.de{} 16512027Sjungma@eit.uni-kl.de 16612027Sjungma@eit.uni-kl.de 16712027Sjungma@eit.uni-kl.de// assignment operator 16812027Sjungma@eit.uni-kl.de 16912027Sjungma@eit.uni-kl.deinline 17012027Sjungma@eit.uni-kl.desc_time& 17112027Sjungma@eit.uni-kl.desc_time::operator = ( const sc_time& t ) 17212027Sjungma@eit.uni-kl.de{ 17312027Sjungma@eit.uni-kl.de m_value = t.m_value; 17412027Sjungma@eit.uni-kl.de return *this; 17512027Sjungma@eit.uni-kl.de} 17612027Sjungma@eit.uni-kl.de 17712027Sjungma@eit.uni-kl.de 17812027Sjungma@eit.uni-kl.de// conversion functions 17912027Sjungma@eit.uni-kl.de 18012027Sjungma@eit.uni-kl.deinline 18112027Sjungma@eit.uni-kl.desc_time::value_type 18212027Sjungma@eit.uni-kl.desc_time::value() const // relative to the time resolution 18312027Sjungma@eit.uni-kl.de{ 18412027Sjungma@eit.uni-kl.de return m_value; 18512027Sjungma@eit.uni-kl.de} 18612027Sjungma@eit.uni-kl.de 18712027Sjungma@eit.uni-kl.de 18812027Sjungma@eit.uni-kl.deinline 18912027Sjungma@eit.uni-kl.dedouble 19012027Sjungma@eit.uni-kl.desc_time::to_double() const // relative to the time resolution 19112027Sjungma@eit.uni-kl.de{ 19212027Sjungma@eit.uni-kl.de return sc_dt::uint64_to_double( m_value ); 19312027Sjungma@eit.uni-kl.de} 19412027Sjungma@eit.uni-kl.de 19512027Sjungma@eit.uni-kl.de 19612027Sjungma@eit.uni-kl.de// relational operators 19712027Sjungma@eit.uni-kl.de 19812027Sjungma@eit.uni-kl.deinline 19912027Sjungma@eit.uni-kl.debool 20012027Sjungma@eit.uni-kl.desc_time::operator == ( const sc_time& t ) const 20112027Sjungma@eit.uni-kl.de{ 20212027Sjungma@eit.uni-kl.de return ( m_value == t.m_value ); 20312027Sjungma@eit.uni-kl.de} 20412027Sjungma@eit.uni-kl.de 20512027Sjungma@eit.uni-kl.deinline 20612027Sjungma@eit.uni-kl.debool 20712027Sjungma@eit.uni-kl.desc_time::operator != ( const sc_time& t ) const 20812027Sjungma@eit.uni-kl.de{ 20912027Sjungma@eit.uni-kl.de return ( m_value != t.m_value ); 21012027Sjungma@eit.uni-kl.de} 21112027Sjungma@eit.uni-kl.de 21212027Sjungma@eit.uni-kl.deinline 21312027Sjungma@eit.uni-kl.debool 21412027Sjungma@eit.uni-kl.desc_time::operator < ( const sc_time& t ) const 21512027Sjungma@eit.uni-kl.de{ 21612027Sjungma@eit.uni-kl.de return ( m_value < t.m_value ); 21712027Sjungma@eit.uni-kl.de} 21812027Sjungma@eit.uni-kl.de 21912027Sjungma@eit.uni-kl.deinline 22012027Sjungma@eit.uni-kl.debool 22112027Sjungma@eit.uni-kl.desc_time::operator <= ( const sc_time& t ) const 22212027Sjungma@eit.uni-kl.de{ 22312027Sjungma@eit.uni-kl.de return ( m_value <= t.m_value ); 22412027Sjungma@eit.uni-kl.de} 22512027Sjungma@eit.uni-kl.de 22612027Sjungma@eit.uni-kl.deinline 22712027Sjungma@eit.uni-kl.debool 22812027Sjungma@eit.uni-kl.desc_time::operator > ( const sc_time& t ) const 22912027Sjungma@eit.uni-kl.de{ 23012027Sjungma@eit.uni-kl.de return ( m_value > t.m_value ); 23112027Sjungma@eit.uni-kl.de} 23212027Sjungma@eit.uni-kl.de 23312027Sjungma@eit.uni-kl.deinline 23412027Sjungma@eit.uni-kl.debool 23512027Sjungma@eit.uni-kl.desc_time::operator >= ( const sc_time& t ) const 23612027Sjungma@eit.uni-kl.de{ 23712027Sjungma@eit.uni-kl.de return ( m_value >= t.m_value ); 23812027Sjungma@eit.uni-kl.de} 23912027Sjungma@eit.uni-kl.de 24012027Sjungma@eit.uni-kl.de 24112027Sjungma@eit.uni-kl.de// arithmetic operators 24212027Sjungma@eit.uni-kl.de 24312027Sjungma@eit.uni-kl.deinline 24412027Sjungma@eit.uni-kl.desc_time& 24512027Sjungma@eit.uni-kl.desc_time::operator += ( const sc_time& t ) 24612027Sjungma@eit.uni-kl.de{ 24712027Sjungma@eit.uni-kl.de m_value += t.m_value; 24812027Sjungma@eit.uni-kl.de return *this; 24912027Sjungma@eit.uni-kl.de} 25012027Sjungma@eit.uni-kl.de 25112027Sjungma@eit.uni-kl.deinline 25212027Sjungma@eit.uni-kl.desc_time& 25312027Sjungma@eit.uni-kl.desc_time::operator -= ( const sc_time& t ) 25412027Sjungma@eit.uni-kl.de{ 25512027Sjungma@eit.uni-kl.de m_value -= t.m_value; 25612027Sjungma@eit.uni-kl.de return *this; 25712027Sjungma@eit.uni-kl.de} 25812027Sjungma@eit.uni-kl.de 25912027Sjungma@eit.uni-kl.de 26012027Sjungma@eit.uni-kl.deinline 26112027Sjungma@eit.uni-kl.deconst sc_time 26212027Sjungma@eit.uni-kl.deoperator + ( const sc_time& t1, const sc_time& t2 ) 26312027Sjungma@eit.uni-kl.de{ 26412027Sjungma@eit.uni-kl.de return sc_time( t1 ) += t2; 26512027Sjungma@eit.uni-kl.de} 26612027Sjungma@eit.uni-kl.de 26712027Sjungma@eit.uni-kl.deinline 26812027Sjungma@eit.uni-kl.deconst sc_time 26912027Sjungma@eit.uni-kl.deoperator - ( const sc_time& t1, const sc_time& t2 ) 27012027Sjungma@eit.uni-kl.de{ 27112027Sjungma@eit.uni-kl.de return sc_time( t1 ) -= t2; 27212027Sjungma@eit.uni-kl.de} 27312027Sjungma@eit.uni-kl.de 27412027Sjungma@eit.uni-kl.de 27512027Sjungma@eit.uni-kl.deinline 27612027Sjungma@eit.uni-kl.desc_time& 27712027Sjungma@eit.uni-kl.desc_time::operator *= ( double d ) 27812027Sjungma@eit.uni-kl.de{ 27912027Sjungma@eit.uni-kl.de // linux bug workaround; don't change next two lines 28012027Sjungma@eit.uni-kl.de volatile double tmp = sc_dt::uint64_to_double( m_value ) * d + 0.5; 28112027Sjungma@eit.uni-kl.de m_value = SCAST<sc_dt::int64>( tmp ); 28212027Sjungma@eit.uni-kl.de return *this; 28312027Sjungma@eit.uni-kl.de} 28412027Sjungma@eit.uni-kl.de 28512027Sjungma@eit.uni-kl.deinline 28612027Sjungma@eit.uni-kl.desc_time& 28712027Sjungma@eit.uni-kl.desc_time::operator /= ( double d ) 28812027Sjungma@eit.uni-kl.de{ 28912027Sjungma@eit.uni-kl.de // linux bug workaround; don't change next two lines 29012027Sjungma@eit.uni-kl.de volatile double tmp = sc_dt::uint64_to_double( m_value ) / d + 0.5; 29112027Sjungma@eit.uni-kl.de m_value = SCAST<sc_dt::int64>( tmp ); 29212027Sjungma@eit.uni-kl.de return *this; 29312027Sjungma@eit.uni-kl.de} 29412027Sjungma@eit.uni-kl.de 29512027Sjungma@eit.uni-kl.deinline 29612027Sjungma@eit.uni-kl.desc_time& 29712027Sjungma@eit.uni-kl.desc_time::operator %= ( const sc_time& t ) 29812027Sjungma@eit.uni-kl.de{ 29912027Sjungma@eit.uni-kl.de m_value %= t.m_value; 30012027Sjungma@eit.uni-kl.de return *this; 30112027Sjungma@eit.uni-kl.de} 30212027Sjungma@eit.uni-kl.de 30312027Sjungma@eit.uni-kl.deinline 30412027Sjungma@eit.uni-kl.deconst sc_time 30512027Sjungma@eit.uni-kl.deoperator * ( const sc_time& t, double d ) 30612027Sjungma@eit.uni-kl.de{ 30712027Sjungma@eit.uni-kl.de sc_time tmp( t ); 30812027Sjungma@eit.uni-kl.de return tmp *= d; 30912027Sjungma@eit.uni-kl.de} 31012027Sjungma@eit.uni-kl.de 31112027Sjungma@eit.uni-kl.deinline 31212027Sjungma@eit.uni-kl.deconst sc_time 31312027Sjungma@eit.uni-kl.deoperator * ( double d, const sc_time& t ) 31412027Sjungma@eit.uni-kl.de{ 31512027Sjungma@eit.uni-kl.de sc_time tmp( t ); 31612027Sjungma@eit.uni-kl.de return tmp *= d; 31712027Sjungma@eit.uni-kl.de} 31812027Sjungma@eit.uni-kl.de 31912027Sjungma@eit.uni-kl.deinline 32012027Sjungma@eit.uni-kl.deconst sc_time 32112027Sjungma@eit.uni-kl.deoperator / ( const sc_time& t, double d ) 32212027Sjungma@eit.uni-kl.de{ 32312027Sjungma@eit.uni-kl.de sc_time tmp( t ); 32412027Sjungma@eit.uni-kl.de return tmp /= d; 32512027Sjungma@eit.uni-kl.de} 32612027Sjungma@eit.uni-kl.de 32712027Sjungma@eit.uni-kl.deinline 32812027Sjungma@eit.uni-kl.dedouble 32912027Sjungma@eit.uni-kl.deoperator / ( const sc_time& t1, const sc_time& t2 ) 33012027Sjungma@eit.uni-kl.de{ 33112027Sjungma@eit.uni-kl.de return ( t1.to_double() / t2.to_double() ); 33212027Sjungma@eit.uni-kl.de} 33312027Sjungma@eit.uni-kl.de 33412027Sjungma@eit.uni-kl.deinline 33512027Sjungma@eit.uni-kl.deconst sc_time 33612027Sjungma@eit.uni-kl.deoperator % ( const sc_time& t1, const sc_time& t2 ) 33712027Sjungma@eit.uni-kl.de{ 33812027Sjungma@eit.uni-kl.de sc_time tmp(t1); 33912027Sjungma@eit.uni-kl.de return tmp %= t2; 34012027Sjungma@eit.uni-kl.de} 34112027Sjungma@eit.uni-kl.de 34212027Sjungma@eit.uni-kl.de// print operator 34312027Sjungma@eit.uni-kl.de 34412027Sjungma@eit.uni-kl.deinline 34512027Sjungma@eit.uni-kl.de::std::ostream& 34612027Sjungma@eit.uni-kl.deoperator << ( ::std::ostream& os, const sc_time& t ) 34712027Sjungma@eit.uni-kl.de{ 34812027Sjungma@eit.uni-kl.de t.print( os ); 34912027Sjungma@eit.uni-kl.de return os; 35012027Sjungma@eit.uni-kl.de} 35112027Sjungma@eit.uni-kl.de 35212027Sjungma@eit.uni-kl.de 35312027Sjungma@eit.uni-kl.de// ---------------------------------------------------------------------------- 35412027Sjungma@eit.uni-kl.de// STRUCT : sc_time_params 35512027Sjungma@eit.uni-kl.de// 35612027Sjungma@eit.uni-kl.de// Struct that holds the time resolution and default time unit. 35712027Sjungma@eit.uni-kl.de// ---------------------------------------------------------------------------- 35812027Sjungma@eit.uni-kl.de 35912027Sjungma@eit.uni-kl.destruct sc_time_params 36012027Sjungma@eit.uni-kl.de{ 36112027Sjungma@eit.uni-kl.de double time_resolution; // in femto seconds 36212027Sjungma@eit.uni-kl.de bool time_resolution_specified; 36312027Sjungma@eit.uni-kl.de bool time_resolution_fixed; 36412027Sjungma@eit.uni-kl.de 36512027Sjungma@eit.uni-kl.de sc_time::value_type default_time_unit; // in time resolution 36612027Sjungma@eit.uni-kl.de bool default_time_unit_specified; 36712027Sjungma@eit.uni-kl.de 36812027Sjungma@eit.uni-kl.de sc_time_params(); 36912027Sjungma@eit.uni-kl.de ~sc_time_params(); 37012027Sjungma@eit.uni-kl.de}; 37112027Sjungma@eit.uni-kl.de 37212027Sjungma@eit.uni-kl.de 37312027Sjungma@eit.uni-kl.de// ---------------------------------------------------------------------------- 37412027Sjungma@eit.uni-kl.de 37512027Sjungma@eit.uni-kl.deextern const sc_time SC_ZERO_TIME; 37612027Sjungma@eit.uni-kl.de 37712027Sjungma@eit.uni-kl.de 37812027Sjungma@eit.uni-kl.de// functions for accessing the time resolution and default time unit 37912027Sjungma@eit.uni-kl.de 38012027Sjungma@eit.uni-kl.deextern void sc_set_time_resolution( double, sc_time_unit ); 38112027Sjungma@eit.uni-kl.deextern sc_time sc_get_time_resolution(); 38212027Sjungma@eit.uni-kl.de 38312027Sjungma@eit.uni-kl.deextern void sc_set_default_time_unit( double, sc_time_unit ); 38412027Sjungma@eit.uni-kl.deextern sc_time sc_get_default_time_unit(); 38512027Sjungma@eit.uni-kl.de 38612027Sjungma@eit.uni-kl.de} // namespace sc_core 38712027Sjungma@eit.uni-kl.de 38812027Sjungma@eit.uni-kl.de#endif 38912027Sjungma@eit.uni-kl.de 39012027Sjungma@eit.uni-kl.de// $Log: sc_time.h,v $ 39112027Sjungma@eit.uni-kl.de// Revision 1.5 2011/08/26 20:46:11 acg 39212027Sjungma@eit.uni-kl.de// Andy Goodrich: moved the modification log to the end of the file to 39312027Sjungma@eit.uni-kl.de// eliminate source line number skew when check-ins are done. 39412027Sjungma@eit.uni-kl.de// 39512027Sjungma@eit.uni-kl.de// Revision 1.4 2011/02/18 20:27:14 acg 39612027Sjungma@eit.uni-kl.de// Andy Goodrich: Updated Copyrights. 39712027Sjungma@eit.uni-kl.de// 39812027Sjungma@eit.uni-kl.de// Revision 1.3 2011/02/13 21:47:38 acg 39912027Sjungma@eit.uni-kl.de// Andy Goodrich: update copyright notice. 40012027Sjungma@eit.uni-kl.de// 40112027Sjungma@eit.uni-kl.de// Revision 1.2 2008/05/22 17:06:27 acg 40212027Sjungma@eit.uni-kl.de// Andy Goodrich: updated copyright notice to include 2008. 40312027Sjungma@eit.uni-kl.de// 40412027Sjungma@eit.uni-kl.de// Revision 1.1.1.1 2006/12/15 20:20:05 acg 40512027Sjungma@eit.uni-kl.de// SystemC 2.3 40612027Sjungma@eit.uni-kl.de// 40712027Sjungma@eit.uni-kl.de// Revision 1.4 2006/05/08 18:02:06 acg 40812027Sjungma@eit.uni-kl.de// Andy Goodrich: added David Long's forward declarations for friend 40912027Sjungma@eit.uni-kl.de// functions, methods, and operators to keep the Microsoft compiler happy. 41012027Sjungma@eit.uni-kl.de// 41112027Sjungma@eit.uni-kl.de// Revision 1.3 2006/01/13 18:44:30 acg 41212027Sjungma@eit.uni-kl.de// Added $Log to record CVS changes into the source. 41312027Sjungma@eit.uni-kl.de 41412027Sjungma@eit.uni-kl.de// Taf! 415