クラス sc_core::vcd_uint64_trace

sc_core::vcd_uint64_traceに対する継承グラフ

Inheritance graph
[凡例]

すべてのメンバ一覧

Public メソッド

 vcd_uint64_trace (const sc_dt::uint64 &object, const std::string &name_, const std::string &vcd_name_, int width_)
void write (FILE *f)
bool changed ()

Protected 変数

const sc_dt::uint64object
sc_dt::uint64 old_value
sc_dt::uint64 mask


説明

sc_vcd_trace.cpp1420 行で定義されています。


コンストラクタとデストラクタ

sc_core::vcd_uint64_trace::vcd_uint64_trace ( const sc_dt::uint64 object,
const std::string &  name_,
const std::string &  vcd_name_,
int  width_ 
)

sc_vcd_trace.cpp1436 行で定義されています。

01440 : vcd_trace(name_, vcd_name_), object(object_)
01441 {
01442     bit_width = width_;
01443         mask = (sc_dt::uint64)-1;
01444         if ( bit_width < 64 ) mask = ~(mask << bit_width);
01445 
01446     vcd_var_typ_name = "wire";
01447     old_value = object;
01448 }


関数

void sc_core::vcd_uint64_trace::write ( FILE *  f  )  [virtual]

sc_core::vcd_traceを実装しています。

sc_vcd_trace.cpp1457 行で定義されています。

01458 {
01459     char rawdata[1000];
01460     char compdata[1000];
01461     int bitindex;
01462 
01463     // Check for overflow
01464     if ((object & mask) != object) 
01465         {
01466         for (bitindex = 0; bitindex < bit_width; bitindex++){
01467             rawdata[bitindex] = 'x';
01468         }
01469     }
01470     else
01471         {
01472         sc_dt::uint64 bit_mask = 1;
01473         bit_mask = bit_mask << (bit_width-1);
01474         for (bitindex = 0; bitindex < bit_width; bitindex++) 
01475                 {
01476             rawdata[bitindex] = (object & bit_mask)? '1' : '0';
01477             bit_mask = bit_mask >> 1;
01478         }
01479     }
01480     rawdata[bitindex] = '\0';
01481     compose_data_line(rawdata, compdata);
01482     std::fputs(compdata, f);
01483     old_value = object;
01484 }

bool sc_core::vcd_uint64_trace::changed (  )  [virtual]

sc_core::vcd_traceを実装しています。

sc_vcd_trace.cpp1451 行で定義されています。

01452 {
01453     return object != old_value;
01454 }


変数

sc_vcd_trace.cpp1430 行で定義されています。

sc_vcd_trace.cpp1431 行で定義されています。

sc_vcd_trace.cpp1432 行で定義されています。


このクラスの説明は次のファイルから生成されました:

SystemCに対してFri Jun 6 20:12:11 2008に生成されました。  doxygen 1.5.6