Skip to content

Commit

Permalink
Fix VCD timestamps (#1469)
Browse files Browse the repository at this point in the history
* Fix VCD timestamps.

VCD simulation timestamps are integers.
eb71c31 changed them to doubles which
causes the files to be unreadable.

* Fix VCD byte values

no spaces allowed between b and the bits.  Value will be left-extended
with zeros.
  • Loading branch information
mx-shift authored Jun 21, 2024
1 parent 59d4760 commit b95c52d
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions cpp/scsimon/sm_vcd_report.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ static void vcd_output_if_changed_byte(ofstream &fp, uint8_t data, int pin, char
{
if (prev_value[pin] != data) {
prev_value[pin] = data;
fp << "b" << fmt::format("{0:8b}", data) << " " << symbol << endl;
fp << "b" << fmt::format("{0:b}", data) << " " << symbol << endl;
}
}

Expand Down Expand Up @@ -130,7 +130,7 @@ void scsimon_generate_value_change_dump(const string &filename, const vector<sha
<< "$end" << endl;

for (shared_ptr<DataSample> cur_sample : data_capture_array) {
vcd_ofstream << "#" << (double)cur_sample->GetTimestamp() * ScsiMon::ns_per_loop << endl;
vcd_ofstream << "#" << (uint64_t)((double)cur_sample->GetTimestamp() * ScsiMon::ns_per_loop) << endl;
vcd_output_if_changed_bool(vcd_ofstream, cur_sample->GetBSY(), PIN_BSY, SYMBOL_PIN_BSY);
vcd_output_if_changed_bool(vcd_ofstream, cur_sample->GetSEL(), PIN_SEL, SYMBOL_PIN_SEL);
vcd_output_if_changed_bool(vcd_ofstream, cur_sample->GetCD(), PIN_CD, SYMBOL_PIN_CD);
Expand Down

0 comments on commit b95c52d

Please sign in to comment.