From 8ca49d98c1c9d22795e9925e7b4ee2b622f073af Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Fri, 3 Jan 2025 19:15:03 -0500 Subject: [PATCH] Fix %p format output for real inside struct (#5713). --- Changes | 1 + include/verilated.cpp | 2 +- test_regress/t/t_class_format.out | 4 ++-- test_regress/t/t_class_format.v | 2 ++ 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Changes b/Changes index 94876c00b..64d01dec6 100644 --- a/Changes +++ b/Changes @@ -15,6 +15,7 @@ Verilator 5.033 devel * Fix V3Simulate constant reuse (#5709). [Geza Lore] * Fix man pages what-is section (#5710). [Ahmed El-Mahmoudy] +* Fix %p format output for real inside struct (#5713). Verilator 5.032 2025-01-01 diff --git a/include/verilated.cpp b/include/verilated.cpp index 15f3b10a9..a99d97dee 100644 --- a/include/verilated.cpp +++ b/include/verilated.cpp @@ -1898,7 +1898,7 @@ std::string VL_TO_STRING(CData lhs) { return VL_SFORMATF_N_NX("'h%0x", 0, 8, lhs std::string VL_TO_STRING(SData lhs) { return VL_SFORMATF_N_NX("'h%0x", 0, 16, lhs); } std::string VL_TO_STRING(IData lhs) { return VL_SFORMATF_N_NX("'h%0x", 0, 32, lhs); } std::string VL_TO_STRING(QData lhs) { return VL_SFORMATF_N_NX("'h%0x", 0, 64, lhs); } -std::string VL_TO_STRING(double lhs) { return VL_SFORMATF_N_NX("%d", 0, 64, lhs); } +std::string VL_TO_STRING(double lhs) { return VL_SFORMATF_N_NX("%g", 0, 64, lhs); } std::string VL_TO_STRING_W(int words, const WDataInP obj) { return VL_SFORMATF_N_NX("'h%0x", 0, words * VL_EDATASIZE, obj); } diff --git a/test_regress/t/t_class_format.out b/test_regress/t/t_class_format.out index dd9e17d2a..4fef2ba25 100644 --- a/test_regress/t/t_class_format.out +++ b/test_regress/t/t_class_format.out @@ -1,4 +1,4 @@ -''{b:'h1, i:'h2a, carray4:'{'h11, 'h22, 'h33, 'h44} , cwide:'{'h0, 'h0} , name:"object_name"}' -''{b:'h1, i:'h2a, carray4:'{'h911, 'h922, 'h933, 'h944} , cwide:'{'h0, 'h0} , name:"object_name"}' +''{b:'h1, i:'h2a, carray4:'{'h11, 'h22, 'h33, 'h44} , cwide:'{'h0, 'h0} , name:"object_name", r:2.2}' +''{b:'h1, i:'h2a, carray4:'{'h911, 'h922, 'h933, 'h944} , cwide:'{'h0, 'h0} , name:"object_name", r:2.2}' DEBUG: object_name (@0) message *-* All Finished *-* diff --git a/test_regress/t/t_class_format.v b/test_regress/t/t_class_format.v index ac11b68c0..8075e5bc0 100644 --- a/test_regress/t/t_class_format.v +++ b/test_regress/t/t_class_format.v @@ -17,6 +17,7 @@ class Cls; bit [15:0] carray4 [4]; bit [64:0] cwide[2]; string name; + real r; task debug(); $display("DEBUG: %s (@%0t) %s", this.name, $realtime, "message"); endtask @@ -28,6 +29,7 @@ module t (/*AUTOARG*/); c = new; c.b = '1; c.i = 42; + c.r = 2.2; c.name = "object_name"; c.carray4[0] = 16'h11;