From 8f0e8e06965beac7b786801d0880876ce5f60bb1 Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Fri, 24 Jan 2020 19:46:46 -0500 Subject: [PATCH] Fix FST tracing of enums inside structs. --- Changes | 2 + src/V3TraceDecl.cpp | 24 +++-- test_regress/t/t_trace_complex.out | 83 +++++++++-------- test_regress/t/t_trace_complex.v | 6 ++ test_regress/t/t_trace_complex_fst.out | 48 ++++++---- test_regress/t/t_trace_complex_params.out | 83 +++++++++-------- test_regress/t/t_trace_complex_params_fst.out | 48 ++++++---- test_regress/t/t_trace_complex_structs.out | 92 +++++++++++-------- .../t/t_trace_complex_structs_fst.out | 68 +++++++++----- 9 files changed, 267 insertions(+), 187 deletions(-) diff --git a/Changes b/Changes index f05df3bfe..f5ff1a104 100644 --- a/Changes +++ b/Changes @@ -25,6 +25,8 @@ The contributors that suggested a given feature are shown in []. Thanks! **** Fix VPI scope naming for public modules. [Nandu Raj] +**** Fix FST tracing of enums inside structs. [fsiegle] + * Verilator 4.026 2020-01-11 diff --git a/src/V3TraceDecl.cpp b/src/V3TraceDecl.cpp index f32650f5c..2ab19efc4 100644 --- a/src/V3TraceDecl.cpp +++ b/src/V3TraceDecl.cpp @@ -224,7 +224,7 @@ private: else m_traValuep = new AstVarRef(nodep->fileline(), nodep, false); { // Recurse into data type of the signal; the visitors will call addTraceDecl() - iterate(varp->dtypeSkipRefp()); + iterate(varp->dtypep()->skipRefToEnump()); } // Cleanup if (m_traValuep) VL_DO_CLEAR(m_traValuep->deleteTree(), m_traValuep = NULL); @@ -237,12 +237,12 @@ private: // VISITORS - Data types when tracing virtual void visit(AstConstDType* nodep) VL_OVERRIDE { if (m_traVscp) { - iterate(nodep->subDTypep()->skipRefp()); + iterate(nodep->subDTypep()->skipRefToEnump()); } } virtual void visit(AstRefDType* nodep) VL_OVERRIDE { if (m_traVscp) { - iterate(nodep->subDTypep()->skipRefp()); + iterate(nodep->subDTypep()->skipRefToEnump()); } } virtual void visit(AstUnpackArrayDType* nodep) VL_OVERRIDE { @@ -250,18 +250,18 @@ private: if (m_traVscp) { if (static_cast(nodep->arrayUnpackedElements()) > v3Global.opt.traceMaxArray()) { addIgnore("Wide memory > --trace-max-array ents"); - } else if (VN_IS(nodep->subDTypep()->skipRefp(), BasicDType) // Nothing lower than this array - && m_traVscp->dtypep()->skipRefp() == nodep) { // Nothing above this array + } else if (VN_IS(nodep->subDTypep()->skipRefToEnump(), BasicDType) // Nothing lower than this array + && m_traVscp->dtypep()->skipRefToEnump() == nodep) { // Nothing above this array // Simple 1-D array, use existing V3EmitC runtime loop rather than unrolling // This will put "(index)" at end of signal name for us - if (m_traVscp->dtypep()->skipRefp()->isString()) { + if (m_traVscp->dtypep()->skipRefToEnump()->isString()) { addIgnore("Unsupported: strings"); } else { addTraceDecl(nodep->declRange(), 0); } } else { // Unroll now, as have no other method to get right signal names - AstNodeDType* subtypep = nodep->subDTypep()->skipRefp(); + AstNodeDType* subtypep = nodep->subDTypep()->skipRefToEnump(); for (int i=nodep->lsb(); i<=nodep->msb(); ++i) { string oldShowname = m_traShowname; AstNode* oldValuep = m_traValuep; @@ -271,6 +271,7 @@ private: m_traValuep->cloneTree(true), i - nodep->lsb()); + m_traValuep->dtypep(subtypep); iterate(subtypep); VL_DO_CLEAR(m_traValuep->deleteTree(), m_traValuep = NULL); } @@ -288,7 +289,7 @@ private: // a much faster way to trace addTraceDecl(VNumRange(), nodep->width()); } else { - AstNodeDType* subtypep = nodep->subDTypep()->skipRefp(); + AstNodeDType* subtypep = nodep->subDTypep()->skipRefToEnump(); for (int i=nodep->lsb(); i<=nodep->msb(); ++i) { string oldShowname = m_traShowname; AstNode* oldValuep = m_traValuep; @@ -297,6 +298,7 @@ private: m_traValuep = new AstSel(nodep->fileline(), m_traValuep->cloneTree(true), (i - nodep->lsb())*subtypep->width(), subtypep->width()); + m_traValuep->dtypep(subtypep); iterate(subtypep); VL_DO_CLEAR(m_traValuep->deleteTree(), m_traValuep = NULL); } @@ -319,7 +321,7 @@ private: } else { for (AstMemberDType* itemp = nodep->membersp(); itemp; itemp=VN_CAST(itemp->nextp(), MemberDType)) { - AstNodeDType* subtypep = itemp->subDTypep()->skipRefp(); + AstNodeDType* subtypep = itemp->subDTypep()->skipRefToEnump(); string oldShowname = m_traShowname; AstNode* oldValuep = m_traValuep; { @@ -328,6 +330,7 @@ private: m_traValuep = new AstSel(nodep->fileline(), m_traValuep->cloneTree(true), itemp->lsb(), subtypep->width()); + m_traValuep->dtypep(subtypep); iterate(subtypep); VL_DO_CLEAR(m_traValuep->deleteTree(), m_traValuep = NULL); } else { // Else union, replicate fields @@ -350,6 +353,9 @@ private: } } } + virtual void visit(AstEnumDType* nodep) VL_OVERRIDE { + iterate(nodep->skipRefp()); + } virtual void visit(AstNodeDType* nodep) VL_OVERRIDE { // Note more specific dtypes above if (!m_traVscp) return; diff --git a/test_regress/t/t_trace_complex.out b/test_regress/t/t_trace_complex.out index e3693b40b..1c37ae59f 100644 --- a/test_regress/t/t_trace_complex.out +++ b/test_regress/t/t_trace_complex.out @@ -1,35 +1,36 @@ $version Generated by VerilatedVcd $end -$date Wed Jan 8 07:23:20 2020 +$date Tue Jan 21 18:15:27 2020 $end $timescale 1ns $end $scope module top $end - $var wire 1 /" clk $end + $var wire 1 7" clk $end $scope module $unit $end $var wire 1 # global_bit $end $upscope $end $scope module t $end - $var wire 1 /" clk $end + $var wire 1 7" clk $end $var wire 32 + cyc [31:0] $end - $var wire 8 h" unpacked_array(-1) [7:0] $end - $var wire 8 g" unpacked_array(-2) [7:0] $end - $var wire 8 i" unpacked_array(0) [7:0] $end + $var wire 8 p" unpacked_array(-1) [7:0] $end + $var wire 8 o" unpacked_array(-2) [7:0] $end + $var wire 8 q" unpacked_array(0) [7:0] $end $var real 64 E! v_arr_real(0) $end $var real 64 G! v_arr_real(1) $end $var wire 2 [ v_arrp [2:1] $end $var wire 4 c v_arrp_arrp [3:0] $end $var wire 4 k v_arrp_strp [3:0] $end - $var wire 1 7" v_arru(1) $end - $var wire 1 8" v_arru(2) $end + $var wire 1 ?" v_arru(1) $end + $var wire 1 @" v_arru(2) $end $var wire 2 s v_arru_arrp(3) [2:1] $end $var wire 2 t v_arru_arrp(4) [2:1] $end - $var wire 1 G" v_arru_arru(3)(1) $end - $var wire 1 O" v_arru_arru(3)(2) $end - $var wire 1 W" v_arru_arru(4)(1) $end - $var wire 1 _" v_arru_arru(4)(2) $end + $var wire 1 O" v_arru_arru(3)(1) $end + $var wire 1 W" v_arru_arru(3)(2) $end + $var wire 1 _" v_arru_arru(4)(1) $end + $var wire 1 g" v_arru_arru(4)(2) $end $var wire 2 %! v_arru_strp(3) [1:0] $end $var wire 2 -! v_arru_strp(4) [1:0] $end $var wire 3 u! v_enumb [2:0] $end + $var wire 6 }! v_enumb2_str [5:0] $end $var wire 32 e! v_enumed [31:0] $end $var wire 32 m! v_enumed2 [31:0] $end $var real 64 5! v_real $end @@ -38,15 +39,15 @@ $timescale 1ns $end $var wire 4 K v_strp_strp [3:0] $end $var wire 2 S v_unip_strp [1:0] $end $scope module p2 $end - $var wire 32 !# PARAM [31:0] $end - $upscope $end - $scope module p3 $end $var wire 32 )# PARAM [31:0] $end $upscope $end + $scope module p3 $end + $var wire 32 1# PARAM [31:0] $end + $upscope $end $scope module unnamedblk1 $end - $var wire 32 }! b [31:0] $end + $var wire 32 '" b [31:0] $end $scope module unnamedblk2 $end - $var wire 32 '" a [31:0] $end + $var wire 32 /" a [31:0] $end $upscope $end $upscope $end $upscope $end @@ -74,20 +75,21 @@ r0 G! b00000000000000000000000000000000 e! b00000000000000000000000000000000 m! b000 u! -b00000000000000000000000000000000 }! +b000000 }! b00000000000000000000000000000000 '" -0/" +b00000000000000000000000000000000 /" 07" -08" -0G" +0?" +0@" 0O" 0W" 0_" -b00000000 g" -b00000000 h" -b00000000 i" -b00000000000000000000000000000010 !# -b00000000000000000000000000000011 )# +0g" +b00000000 o" +b00000000 p" +b00000000 q" +b00000000000000000000000000000010 )# +b00000000000000000000000000000011 1# #10 b00000000000000000000000000000001 + b0000000000000000000000000000000100000000000000000000000011111110 3 @@ -107,11 +109,11 @@ r0.3 G! b00000000000000000000000000000001 e! b00000000000000000000000000000010 m! b111 u! -b00000000000000000000000000000101 }! b00000000000000000000000000000101 '" -1/" +b00000000000000000000000000000101 /" +17" #15 -0/" +07" #20 b00000000000000000000000000000010 + b0000000000000000000000000000001000000000000000000000000011111101 3 @@ -131,9 +133,10 @@ r0.6 G! b00000000000000000000000000000010 e! b00000000000000000000000000000100 m! b110 u! -1/" +b111111 }! +17" #25 -0/" +07" #30 b00000000000000000000000000000011 + b0000000000000000000000000000001100000000000000000000000011111100 3 @@ -153,9 +156,10 @@ r0.8999999999999999 G! b00000000000000000000000000000011 e! b00000000000000000000000000000110 m! b101 u! -1/" +b110110 }! +17" #35 -0/" +07" #40 b00000000000000000000000000000100 + b0000000000000000000000000000010000000000000000000000000011111011 3 @@ -175,9 +179,10 @@ r1.2 G! b00000000000000000000000000000100 e! b00000000000000000000000000001000 m! b100 u! -1/" +b101101 }! +17" #45 -0/" +07" #50 b00000000000000000000000000000101 + b0000000000000000000000000000010100000000000000000000000011111010 3 @@ -197,9 +202,10 @@ r1.5 G! b00000000000000000000000000000101 e! b00000000000000000000000000001010 m! b011 u! -1/" +b100100 }! +17" #55 -0/" +07" #60 b00000000000000000000000000000110 + b0000000000000000000000000000011000000000000000000000000011111001 3 @@ -219,4 +225,5 @@ r1.8 G! b00000000000000000000000000000110 e! b00000000000000000000000000001100 m! b010 u! -1/" +b011011 }! +17" diff --git a/test_regress/t/t_trace_complex.v b/test_regress/t/t_trace_complex.v index 803148e86..bf8e184ea 100644 --- a/test_regress/t/t_trace_complex.v +++ b/test_regress/t/t_trace_complex.v @@ -64,6 +64,11 @@ module t (clk); enumed_t v_enumed2; typedef enum logic [2:0] { BZERO=0, BONE, BTWO, BTHREE } enumb_t; enumb_t v_enumb; + typedef struct packed { + enumb_t a; + enumb_t b; + } enumb2_str_t; + enumb2_str_t v_enumb2_str; logic [7:0] unpacked_array[-2:0]; @@ -85,6 +90,7 @@ module t (clk); v_enumed <= v_enumed + 1; v_enumed2 <= v_enumed2 + 2; v_enumb <= v_enumb - 1; + v_enumb2_str <= {v_enumb, v_enumb}; for (integer b=3; b<=4; b++) begin v_arru[b] <= ~v_arru[b]; v_arru_strp[b] <= ~v_arru_strp[b]; diff --git a/test_regress/t/t_trace_complex_fst.out b/test_regress/t/t_trace_complex_fst.out index 09140eaf7..57e86c1b7 100644 --- a/test_regress/t/t_trace_complex_fst.out +++ b/test_regress/t/t_trace_complex_fst.out @@ -1,5 +1,5 @@ $date - Wed Jan 8 07:26:16 2020 + Tue Jan 21 18:08:49 2020 $end $version @@ -41,24 +41,25 @@ $var logic 32 8 v_enumed2 $end $attrbegin misc 07 t.enumb_t 4 BZERO BONE BTWO BTHREE 000 001 010 011 2 $end $attrbegin misc 07 "" 2 $end $var logic 3 9 v_enumb $end -$var logic 8 : unpacked_array(-2) $end -$var logic 8 ; unpacked_array(-1) $end -$var logic 8 < unpacked_array(0) $end +$var logic 6 : v_enumb2_str $end +$var logic 8 ; unpacked_array(-2) $end +$var logic 8 < unpacked_array(-1) $end +$var logic 8 = unpacked_array(0) $end $scope module unnamedblk1 $end -$var integer 32 = b $end +$var integer 32 > b $end $scope module unnamedblk2 $end -$var integer 32 > a $end +$var integer 32 ? a $end $upscope $end $upscope $end $scope module p2 $end -$var parameter 32 ? PARAM $end +$var parameter 32 @ PARAM $end $upscope $end $scope module p3 $end -$var parameter 32 @ PARAM $end +$var parameter 32 A PARAM $end $upscope $end $upscope $end $scope module $unit $end -$var bit 1 A global_bit $end +$var bit 1 B global_bit $end $upscope $end $upscope $end $enddefinitions $end @@ -88,17 +89,19 @@ b0000000000000000000000000000000000000000000000000000000011111111 6 b00000000000000000000000000000000 7 b00000000000000000000000000000000 8 b000 9 -b00000000 : +b000000 : b00000000 ; b00000000 < -b00000000000000000000000000000000 = +b00000000 = b00000000000000000000000000000000 > -b00000000000000000000000000000010 ? -b00000000000000000000000000000011 @ -1A +b00000000000000000000000000000000 ? +b00000000000000000000000000000010 @ +b00000000000000000000000000000011 A +1B #10 +b00000000000000000000000000000101 ? b00000000000000000000000000000101 > -b00000000000000000000000000000101 = +b000000 : b111 9 b00000000000000000000000000000010 8 b00000000000000000000000000000001 7 @@ -140,14 +143,16 @@ b0000000000000000000000000000001000000000000000000000000011111101 6 b00000000000000000000000000000010 7 b00000000000000000000000000000100 8 b110 9 -b00000000000000000000000000000101 = +b111111 : b00000000000000000000000000000101 > +b00000000000000000000000000000101 ? #25 0! #30 1! +b00000000000000000000000000000101 ? b00000000000000000000000000000101 > -b00000000000000000000000000000101 = +b110110 : b101 9 b00000000000000000000000000000110 8 b00000000000000000000000000000011 7 @@ -188,14 +193,16 @@ b0000000000000000000000000000010000000000000000000000000011111011 6 b00000000000000000000000000000100 7 b00000000000000000000000000001000 8 b100 9 -b00000000000000000000000000000101 = +b101101 : b00000000000000000000000000000101 > +b00000000000000000000000000000101 ? #45 0! #50 1! +b00000000000000000000000000000101 ? b00000000000000000000000000000101 > -b00000000000000000000000000000101 = +b100100 : b011 9 b00000000000000000000000000001010 8 b00000000000000000000000000000101 7 @@ -236,5 +243,6 @@ b0000000000000000000000000000011000000000000000000000000011111001 6 b00000000000000000000000000000110 7 b00000000000000000000000000001100 8 b010 9 -b00000000000000000000000000000101 = +b011011 : b00000000000000000000000000000101 > +b00000000000000000000000000000101 ? diff --git a/test_regress/t/t_trace_complex_params.out b/test_regress/t/t_trace_complex_params.out index ca5eeb36d..aacfd2769 100644 --- a/test_regress/t/t_trace_complex_params.out +++ b/test_regress/t/t_trace_complex_params.out @@ -1,35 +1,36 @@ $version Generated by VerilatedVcd $end -$date Wed Jan 8 07:26:16 2020 +$date Tue Jan 21 18:15:28 2020 $end $timescale 1ns $end $scope module top $end - $var wire 1 /" clk $end + $var wire 1 7" clk $end $scope module $unit $end $var wire 1 # global_bit $end $upscope $end $scope module t $end - $var wire 1 /" clk $end + $var wire 1 7" clk $end $var wire 32 + cyc [31:0] $end - $var wire 8 h" unpacked_array(-1) [7:0] $end - $var wire 8 g" unpacked_array(-2) [7:0] $end - $var wire 8 i" unpacked_array(0) [7:0] $end + $var wire 8 p" unpacked_array(-1) [7:0] $end + $var wire 8 o" unpacked_array(-2) [7:0] $end + $var wire 8 q" unpacked_array(0) [7:0] $end $var real 64 E! v_arr_real(0) $end $var real 64 G! v_arr_real(1) $end $var wire 2 [ v_arrp [2:1] $end $var wire 4 c v_arrp_arrp [3:0] $end $var wire 4 k v_arrp_strp [3:0] $end - $var wire 1 7" v_arru(1) $end - $var wire 1 8" v_arru(2) $end + $var wire 1 ?" v_arru(1) $end + $var wire 1 @" v_arru(2) $end $var wire 2 s v_arru_arrp(3) [2:1] $end $var wire 2 t v_arru_arrp(4) [2:1] $end - $var wire 1 G" v_arru_arru(3)(1) $end - $var wire 1 O" v_arru_arru(3)(2) $end - $var wire 1 W" v_arru_arru(4)(1) $end - $var wire 1 _" v_arru_arru(4)(2) $end + $var wire 1 O" v_arru_arru(3)(1) $end + $var wire 1 W" v_arru_arru(3)(2) $end + $var wire 1 _" v_arru_arru(4)(1) $end + $var wire 1 g" v_arru_arru(4)(2) $end $var wire 2 %! v_arru_strp(3) [1:0] $end $var wire 2 -! v_arru_strp(4) [1:0] $end $var wire 3 u! v_enumb [2:0] $end + $var wire 6 }! v_enumb2_str [5:0] $end $var wire 32 e! v_enumed [31:0] $end $var wire 32 m! v_enumed2 [31:0] $end $var real 64 5! v_real $end @@ -38,15 +39,15 @@ $timescale 1ns $end $var wire 4 K v_strp_strp [3:0] $end $var wire 2 S v_unip_strp [1:0] $end $scope module p2 $end - $var wire 32 !# PARAM [31:0] $end - $upscope $end - $scope module p3 $end $var wire 32 )# PARAM [31:0] $end $upscope $end + $scope module p3 $end + $var wire 32 1# PARAM [31:0] $end + $upscope $end $scope module unnamedblk1 $end - $var wire 32 }! b [31:0] $end + $var wire 32 '" b [31:0] $end $scope module unnamedblk2 $end - $var wire 32 '" a [31:0] $end + $var wire 32 /" a [31:0] $end $upscope $end $upscope $end $upscope $end @@ -74,20 +75,21 @@ r0 G! b00000000000000000000000000000000 e! b00000000000000000000000000000000 m! b000 u! -b00000000000000000000000000000000 }! +b000000 }! b00000000000000000000000000000000 '" -0/" +b00000000000000000000000000000000 /" 07" -08" -0G" +0?" +0@" 0O" 0W" 0_" -b00000000 g" -b00000000 h" -b00000000 i" -b00000000000000000000000000000010 !# -b00000000000000000000000000000011 )# +0g" +b00000000 o" +b00000000 p" +b00000000 q" +b00000000000000000000000000000010 )# +b00000000000000000000000000000011 1# #10 b00000000000000000000000000000001 + b0000000000000000000000000000000100000000000000000000000011111110 3 @@ -107,11 +109,11 @@ r0.3 G! b00000000000000000000000000000001 e! b00000000000000000000000000000010 m! b111 u! -b00000000000000000000000000000101 }! b00000000000000000000000000000101 '" -1/" +b00000000000000000000000000000101 /" +17" #15 -0/" +07" #20 b00000000000000000000000000000010 + b0000000000000000000000000000001000000000000000000000000011111101 3 @@ -131,9 +133,10 @@ r0.6 G! b00000000000000000000000000000010 e! b00000000000000000000000000000100 m! b110 u! -1/" +b111111 }! +17" #25 -0/" +07" #30 b00000000000000000000000000000011 + b0000000000000000000000000000001100000000000000000000000011111100 3 @@ -153,9 +156,10 @@ r0.8999999999999999 G! b00000000000000000000000000000011 e! b00000000000000000000000000000110 m! b101 u! -1/" +b110110 }! +17" #35 -0/" +07" #40 b00000000000000000000000000000100 + b0000000000000000000000000000010000000000000000000000000011111011 3 @@ -175,9 +179,10 @@ r1.2 G! b00000000000000000000000000000100 e! b00000000000000000000000000001000 m! b100 u! -1/" +b101101 }! +17" #45 -0/" +07" #50 b00000000000000000000000000000101 + b0000000000000000000000000000010100000000000000000000000011111010 3 @@ -197,9 +202,10 @@ r1.5 G! b00000000000000000000000000000101 e! b00000000000000000000000000001010 m! b011 u! -1/" +b100100 }! +17" #55 -0/" +07" #60 b00000000000000000000000000000110 + b0000000000000000000000000000011000000000000000000000000011111001 3 @@ -219,4 +225,5 @@ r1.8 G! b00000000000000000000000000000110 e! b00000000000000000000000000001100 m! b010 u! -1/" +b011011 }! +17" diff --git a/test_regress/t/t_trace_complex_params_fst.out b/test_regress/t/t_trace_complex_params_fst.out index 366add463..1dc90cb57 100644 --- a/test_regress/t/t_trace_complex_params_fst.out +++ b/test_regress/t/t_trace_complex_params_fst.out @@ -1,5 +1,5 @@ $date - Wed Jan 8 07:26:17 2020 + Tue Jan 21 18:15:28 2020 $end $version @@ -41,24 +41,25 @@ $var logic 32 8 v_enumed2 $end $attrbegin misc 07 t.enumb_t 4 BZERO BONE BTWO BTHREE 000 001 010 011 2 $end $attrbegin misc 07 "" 2 $end $var logic 3 9 v_enumb $end -$var logic 8 : unpacked_array(-2) $end -$var logic 8 ; unpacked_array(-1) $end -$var logic 8 < unpacked_array(0) $end +$var logic 6 : v_enumb2_str $end +$var logic 8 ; unpacked_array(-2) $end +$var logic 8 < unpacked_array(-1) $end +$var logic 8 = unpacked_array(0) $end $scope module unnamedblk1 $end -$var integer 32 = b $end +$var integer 32 > b $end $scope module unnamedblk2 $end -$var integer 32 > a $end +$var integer 32 ? a $end $upscope $end $upscope $end $scope module p2 $end -$var parameter 32 ? PARAM $end +$var parameter 32 @ PARAM $end $upscope $end $scope module p3 $end -$var parameter 32 @ PARAM $end +$var parameter 32 A PARAM $end $upscope $end $upscope $end $scope module $unit $end -$var bit 1 A global_bit $end +$var bit 1 B global_bit $end $upscope $end $upscope $end $enddefinitions $end @@ -88,17 +89,19 @@ b0000000000000000000000000000000000000000000000000000000011111111 6 b00000000000000000000000000000000 7 b00000000000000000000000000000000 8 b000 9 -b00000000 : +b000000 : b00000000 ; b00000000 < -b00000000000000000000000000000000 = +b00000000 = b00000000000000000000000000000000 > -b00000000000000000000000000000010 ? -b00000000000000000000000000000011 @ -1A +b00000000000000000000000000000000 ? +b00000000000000000000000000000010 @ +b00000000000000000000000000000011 A +1B #10 +b00000000000000000000000000000101 ? b00000000000000000000000000000101 > -b00000000000000000000000000000101 = +b000000 : b111 9 b00000000000000000000000000000010 8 b00000000000000000000000000000001 7 @@ -140,14 +143,16 @@ b0000000000000000000000000000001000000000000000000000000011111101 6 b00000000000000000000000000000010 7 b00000000000000000000000000000100 8 b110 9 -b00000000000000000000000000000101 = +b111111 : b00000000000000000000000000000101 > +b00000000000000000000000000000101 ? #25 0! #30 1! +b00000000000000000000000000000101 ? b00000000000000000000000000000101 > -b00000000000000000000000000000101 = +b110110 : b101 9 b00000000000000000000000000000110 8 b00000000000000000000000000000011 7 @@ -188,14 +193,16 @@ b0000000000000000000000000000010000000000000000000000000011111011 6 b00000000000000000000000000000100 7 b00000000000000000000000000001000 8 b100 9 -b00000000000000000000000000000101 = +b101101 : b00000000000000000000000000000101 > +b00000000000000000000000000000101 ? #45 0! #50 1! +b00000000000000000000000000000101 ? b00000000000000000000000000000101 > -b00000000000000000000000000000101 = +b100100 : b011 9 b00000000000000000000000000001010 8 b00000000000000000000000000000101 7 @@ -236,5 +243,6 @@ b0000000000000000000000000000011000000000000000000000000011111001 6 b00000000000000000000000000000110 7 b00000000000000000000000000001100 8 b010 9 -b00000000000000000000000000000101 = +b011011 : b00000000000000000000000000000101 > +b00000000000000000000000000000101 ? diff --git a/test_regress/t/t_trace_complex_structs.out b/test_regress/t/t_trace_complex_structs.out index ba955aa5e..3344bd9e1 100644 --- a/test_regress/t/t_trace_complex_structs.out +++ b/test_regress/t/t_trace_complex_structs.out @@ -1,40 +1,40 @@ $version Generated by VerilatedVcd $end -$date Wed Jan 8 07:26:19 2020 +$date Tue Jan 21 18:55:13 2020 $end $timescale 1ns $end $scope module top $end - $var wire 1 )# clk $end + $var wire 1 9# clk $end $scope module $unit $end $var wire 1 # global_bit $end $upscope $end $scope module t $end - $var wire 1 )# clk $end + $var wire 1 9# clk $end $var wire 32 + cyc [31:0] $end - $var wire 8 b# unpacked_array(-1) [7:0] $end - $var wire 8 a# unpacked_array(-2) [7:0] $end - $var wire 8 c# unpacked_array(0) [7:0] $end + $var wire 8 r# unpacked_array(-1) [7:0] $end + $var wire 8 q# unpacked_array(-2) [7:0] $end + $var wire 8 s# unpacked_array(0) [7:0] $end $var real 64 ?" v_arr_real(0) $end $var real 64 A" v_arr_real(1) $end $var wire 2 %! v_arrp [2:1] $end - $var wire 2 -! v_arrp_arrp(3) [1:0] $end - $var wire 2 5! v_arrp_arrp(4) [1:0] $end - $var wire 1 1# v_arru(1) $end - $var wire 1 2# v_arru(2) $end + $var wire 2 -! v_arrp_arrp(3) [2:1] $end + $var wire 2 5! v_arrp_arrp(4) [2:1] $end + $var wire 1 A# v_arru(1) $end + $var wire 1 B# v_arru(2) $end $var wire 2 ]! v_arru_arrp(3) [2:1] $end $var wire 2 ^! v_arru_arrp(4) [2:1] $end - $var wire 1 A# v_arru_arru(3)(1) $end - $var wire 1 I# v_arru_arru(3)(2) $end - $var wire 1 Q# v_arru_arru(4)(1) $end - $var wire 1 Y# v_arru_arru(4)(2) $end + $var wire 1 Q# v_arru_arru(3)(1) $end + $var wire 1 Y# v_arru_arru(3)(2) $end + $var wire 1 a# v_arru_arru(4)(1) $end + $var wire 1 i# v_arru_arru(4)(2) $end $var wire 3 o" v_enumb [2:0] $end $var wire 32 _" v_enumed [31:0] $end $var wire 32 g" v_enumed2 [31:0] $end $var real 64 /" v_real $end $scope module unnamedblk1 $end - $var wire 32 w" b [31:0] $end + $var wire 32 )# b [31:0] $end $scope module unnamedblk2 $end - $var wire 32 !# a [31:0] $end + $var wire 32 1# a [31:0] $end $upscope $end $upscope $end $scope module v_arrp_strp(3) $end @@ -53,6 +53,10 @@ $timescale 1ns $end $var wire 1 '" b0 $end $var wire 1 }! b1 $end $upscope $end + $scope module v_enumb2_str $end + $var wire 3 w" a [2:0] $end + $var wire 3 !# b [2:0] $end + $upscope $end $scope module v_str32x2(0) $end $var wire 32 3 data [31:0] $end $upscope $end @@ -120,18 +124,20 @@ r0 A" b00000000000000000000000000000000 _" b00000000000000000000000000000000 g" b000 o" -b00000000000000000000000000000000 w" -b00000000000000000000000000000000 !# -0)# -01# -02# +b000 w" +b000 !# +b00000000000000000000000000000000 )# +b00000000000000000000000000000000 1# +09# 0A# -0I# +0B# 0Q# 0Y# -b00000000 a# -b00000000 b# -b00000000 c# +0a# +0i# +b00000000 q# +b00000000 r# +b00000000 s# #10 b00000000000000000000000000000001 + b00000000000000000000000011111110 3 @@ -163,11 +169,11 @@ r0.3 A" b00000000000000000000000000000001 _" b00000000000000000000000000000010 g" b111 o" -b00000000000000000000000000000101 w" -b00000000000000000000000000000101 !# -1)# +b00000000000000000000000000000101 )# +b00000000000000000000000000000101 1# +19# #15 -0)# +09# #20 b00000000000000000000000000000010 + b00000000000000000000000011111101 3 @@ -199,9 +205,11 @@ r0.6 A" b00000000000000000000000000000010 _" b00000000000000000000000000000100 g" b110 o" -1)# +b111 w" +b111 !# +19# #25 -0)# +09# #30 b00000000000000000000000000000011 + b00000000000000000000000011111100 3 @@ -233,9 +241,11 @@ r0.8999999999999999 A" b00000000000000000000000000000011 _" b00000000000000000000000000000110 g" b101 o" -1)# +b110 w" +b110 !# +19# #35 -0)# +09# #40 b00000000000000000000000000000100 + b00000000000000000000000011111011 3 @@ -267,9 +277,11 @@ r1.2 A" b00000000000000000000000000000100 _" b00000000000000000000000000001000 g" b100 o" -1)# +b101 w" +b101 !# +19# #45 -0)# +09# #50 b00000000000000000000000000000101 + b00000000000000000000000011111010 3 @@ -301,9 +313,11 @@ r1.5 A" b00000000000000000000000000000101 _" b00000000000000000000000000001010 g" b011 o" -1)# +b100 w" +b100 !# +19# #55 -0)# +09# #60 b00000000000000000000000000000110 + b00000000000000000000000011111001 3 @@ -335,4 +349,6 @@ r1.8 A" b00000000000000000000000000000110 _" b00000000000000000000000000001100 g" b010 o" -1)# +b011 w" +b011 !# +19# diff --git a/test_regress/t/t_trace_complex_structs_fst.out b/test_regress/t/t_trace_complex_structs_fst.out index a3e68df29..fd26fc14c 100644 --- a/test_regress/t/t_trace_complex_structs_fst.out +++ b/test_regress/t/t_trace_complex_structs_fst.out @@ -1,5 +1,5 @@ $date - Wed Jan 8 07:26:20 2020 + Tue Jan 21 18:55:14 2020 $end $version @@ -81,18 +81,24 @@ $var logic 32 D v_enumed2 $end $attrbegin misc 07 t.enumb_t 4 BZERO BONE BTWO BTHREE 000 001 010 011 2 $end $attrbegin misc 07 "" 2 $end $var logic 3 E v_enumb $end -$var logic 8 F unpacked_array(-2) $end -$var logic 8 G unpacked_array(-1) $end -$var logic 8 H unpacked_array(0) $end +$scope module v_enumb2_str $end +$attrbegin misc 07 "" 2 $end +$var logic 3 F a $end +$attrbegin misc 07 "" 2 $end +$var logic 3 G b $end +$upscope $end +$var logic 8 H unpacked_array(-2) $end +$var logic 8 I unpacked_array(-1) $end +$var logic 8 J unpacked_array(0) $end $scope module unnamedblk1 $end -$var integer 32 I b $end +$var integer 32 K b $end $scope module unnamedblk2 $end -$var integer 32 J a $end +$var integer 32 L a $end $upscope $end $upscope $end $upscope $end $scope module $unit $end -$var bit 1 K global_bit $end +$var bit 1 M global_bit $end $upscope $end $upscope $end $enddefinitions $end @@ -134,15 +140,19 @@ b00000000000000000000000000000000 B b00000000000000000000000000000000 C b00000000000000000000000000000000 D b000 E -b00000000 F -b00000000 G +b000 F +b000 G b00000000 H -b00000000000000000000000000000000 I -b00000000000000000000000000000000 J -1K +b00000000 I +b00000000 J +b00000000000000000000000000000000 K +b00000000000000000000000000000000 L +1M #10 -b00000000000000000000000000000101 J -b00000000000000000000000000000101 I +b00000000000000000000000000000101 L +b00000000000000000000000000000101 K +b000 G +b000 F b111 E b00000000000000000000000000000010 D b00000000000000000000000000000001 C @@ -208,14 +218,18 @@ b00000000000000000000000000000010 B b00000000000000000000000000000010 C b00000000000000000000000000000100 D b110 E -b00000000000000000000000000000101 I -b00000000000000000000000000000101 J +b111 F +b111 G +b00000000000000000000000000000101 K +b00000000000000000000000000000101 L #25 0! #30 1! -b00000000000000000000000000000101 J -b00000000000000000000000000000101 I +b00000000000000000000000000000101 L +b00000000000000000000000000000101 K +b110 G +b110 F b101 E b00000000000000000000000000000110 D b00000000000000000000000000000011 C @@ -280,14 +294,18 @@ b00000000000000000000000000000100 B b00000000000000000000000000000100 C b00000000000000000000000000001000 D b100 E -b00000000000000000000000000000101 I -b00000000000000000000000000000101 J +b101 F +b101 G +b00000000000000000000000000000101 K +b00000000000000000000000000000101 L #45 0! #50 1! -b00000000000000000000000000000101 J -b00000000000000000000000000000101 I +b00000000000000000000000000000101 L +b00000000000000000000000000000101 K +b100 G +b100 F b011 E b00000000000000000000000000001010 D b00000000000000000000000000000101 C @@ -352,5 +370,7 @@ b00000000000000000000000000000110 B b00000000000000000000000000000110 C b00000000000000000000000000001100 D b010 E -b00000000000000000000000000000101 I -b00000000000000000000000000000101 J +b011 F +b011 G +b00000000000000000000000000000101 K +b00000000000000000000000000000101 L