Public メソッド | |
wif_int64_trace (const sc_dt::int64 &object_, const std::string &name_, const std::string &wif_name_, int width_) | |
void | write (FILE *f) |
bool | changed () |
Protected 変数 | |
const sc_dt::int64 & | object |
sc_dt::int64 | old_value |
sc_dt::uint64 | mask |
sc_wif_trace.cpp の 230 行で定義されています。
sc_core::wif_int64_trace::wif_int64_trace | ( | const sc_dt::int64 & | object_, | |
const std::string & | name_, | |||
const std::string & | wif_name_, | |||
int | width_ | |||
) |
void sc_core::wif_int64_trace::write | ( | FILE * | f | ) | [virtual] |
sc_core::wif_traceを実装しています。
sc_wif_trace.cpp の 266 行で定義されています。
00267 { 00268 char buf[1000]; 00269 int bitindex; 00270 00271 // Check for overflow 00272 if ((object & mask) != (sc_dt::uint64)object) 00273 { 00274 for (bitindex = 0; bitindex < bit_width; bitindex++) 00275 { 00276 buf[bitindex]='0'; 00277 } 00278 } 00279 else 00280 { 00281 sc_dt::uint64 bit_mask = 1; 00282 bit_mask = bit_mask << (bit_width-1); 00283 for (bitindex = 0; bitindex < bit_width; bitindex++) 00284 { 00285 buf[bitindex] = (object & bit_mask)? '1' : '0'; 00286 bit_mask = bit_mask >> 1; 00287 } 00288 } 00289 buf[bitindex] = '\0'; 00290 std::fprintf(f, "assign %s \"%s\" ;\n", wif_name.c_str(), buf); 00291 old_value = object; 00292 }
bool sc_core::wif_int64_trace::changed | ( | ) | [virtual] |
sc_core::wif_traceを実装しています。
sc_wif_trace.cpp の 260 行で定義されています。
00261 { 00262 return object != old_value; 00263 }
const sc_dt::int64& sc_core::wif_int64_trace::object [protected] |
sc_wif_trace.cpp の 240 行で定義されています。
sc_dt::int64 sc_core::wif_int64_trace::old_value [protected] |
sc_wif_trace.cpp の 241 行で定義されています。
sc_dt::uint64 sc_core::wif_int64_trace::mask [protected] |
sc_wif_trace.cpp の 242 行で定義されています。