From 1891cfd79a95febc4a113f745e265b13489a342e Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Tue, 21 Jul 2015 13:22:08 -0400 Subject: [PATCH] Fix rounding in trace , bug946. --- Changes | 2 ++ include/verilated_vcd_c.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Changes b/Changes index d8a4ebd6f..3f2244a83 100644 --- a/Changes +++ b/Changes @@ -13,6 +13,8 @@ indicates the contributor was also the author of the fix; Thanks! **** Fix dpi imports inside generates. [Michael Tresidder] +**** Fix rounding in trace $timescale, bug946. [Frederic Requin] + * Verilator 3.874 2015-06-06 diff --git a/include/verilated_vcd_c.cpp b/include/verilated_vcd_c.cpp index 5c3468d25..d891a6d1b 100644 --- a/include/verilated_vcd_c.cpp +++ b/include/verilated_vcd_c.cpp @@ -378,7 +378,7 @@ string VerilatedVcd::doubleToTimescale (double value) { else if (value>=1e-12) { suffixp="ps"; value *= 1e12; } else if (value>=1e-15) { suffixp="fs"; value *= 1e15; } else if (value>=1e-18) { suffixp="as"; value *= 1e18; } - char valuestr[100]; sprintf(valuestr,"%d%s",(int)(value), suffixp); + char valuestr[100]; sprintf(valuestr,"%3.0f%s", value, suffixp); return valuestr; // Gets converted to string, so no ref to stack }