diff --git a/Changes b/Changes index dc12d607a..7e75f225d 100644 --- a/Changes +++ b/Changes @@ -32,6 +32,8 @@ The contributors that suggested a given feature are shown in []. Thanks! **** Fix huge case statement performance. Closes #1644. [Julien Margetts] +**** Fix tracing -1 index arrays. Closes #2090. [Yutetsu Takatsukasa] + * Verilator 4.024 2019-12-08 diff --git a/include/verilated_fst_c.cpp b/include/verilated_fst_c.cpp index 0bac106ff..976e171e7 100644 --- a/include/verilated_fst_c.cpp +++ b/include/verilated_fst_c.cpp @@ -118,7 +118,7 @@ void VerilatedFst::declDTypeEnum(int dtypenum, const char* name, vluint32_t elem void VerilatedFst::declSymbol(vluint32_t code, const char* name, int dtypenum, fstVarDir vardir, fstVarType vartype, - int arraynum, vluint32_t len) { + bool array, int arraynum, vluint32_t len) { std::pair p = m_code2symbol.insert(std::make_pair(code, static_cast(NULL))); std::istringstream nameiss(name); @@ -153,8 +153,7 @@ void VerilatedFst::declSymbol(vluint32_t code, const char* name, std::stringstream name_ss; name_ss << symbol_name; - if (arraynum >= 0) - name_ss << "(" << arraynum << ")"; + if (array) name_ss << "(" << arraynum << ")"; std::string name_str = name_ss.str(); if (dtypenum > 0) { diff --git a/include/verilated_fst_c.h b/include/verilated_fst_c.h index e539161ba..eda522554 100644 --- a/include/verilated_fst_c.h +++ b/include/verilated_fst_c.h @@ -60,7 +60,7 @@ private: VL_UNCOPYABLE(VerilatedFst); void declSymbol(vluint32_t code, const char* name, int dtypenum, fstVarDir vardir, fstVarType vartype, - int arraynum, vluint32_t len); + bool array, int arraynum, vluint32_t len); // helpers std::vector m_valueStrBuffer; public: @@ -103,33 +103,33 @@ public: /// Inside dumping routines, declare a signal void declBit(vluint32_t code, const char* name, int dtypenum, fstVarDir vardir, fstVarType vartype, - int arraynum) { - declSymbol(code, name, dtypenum, vardir, vartype, arraynum, 1); + bool array, int arraynum) { + declSymbol(code, name, dtypenum, vardir, vartype, array, arraynum, 1); } void declBus(vluint32_t code, const char* name, int dtypenum, fstVarDir vardir, fstVarType vartype, - int arraynum, int msb, int lsb) { - declSymbol(code, name, dtypenum, vardir, vartype, arraynum, msb - lsb + 1); + bool array, int arraynum, int msb, int lsb) { + declSymbol(code, name, dtypenum, vardir, vartype, array, arraynum, msb - lsb + 1); } void declDouble(vluint32_t code, const char* name, int dtypenum, fstVarDir vardir, fstVarType vartype, - int arraynum) { - declSymbol(code, name, dtypenum, vardir, vartype, arraynum, 2); + bool array, int arraynum) { + declSymbol(code, name, dtypenum, vardir, vartype, array, arraynum, 2); } void declFloat(vluint32_t code, const char* name, int dtypenum, fstVarDir vardir, fstVarType vartype, - int arraynum) { - declSymbol(code, name, dtypenum, vardir, vartype, arraynum, 1); + bool array, int arraynum) { + declSymbol(code, name, dtypenum, vardir, vartype, array, arraynum, 1); } void declQuad(vluint32_t code, const char* name, int dtypenum, fstVarDir vardir, fstVarType vartype, - int arraynum, int msb, int lsb) { - declSymbol(code, name, dtypenum, vardir, vartype, arraynum, msb - lsb + 1); + bool array, int arraynum, int msb, int lsb) { + declSymbol(code, name, dtypenum, vardir, vartype, array, arraynum, msb - lsb + 1); } void declArray(vluint32_t code, const char* name, int dtypenum, fstVarDir vardir, fstVarType vartype, - int arraynum, int msb, int lsb) { - declSymbol(code, name, dtypenum, vardir, vartype, arraynum, msb - lsb + 1); + bool array, int arraynum, int msb, int lsb) { + declSymbol(code, name, dtypenum, vardir, vartype, array, arraynum, msb - lsb + 1); } /// Inside dumping routines, dump one signal if it has changed diff --git a/include/verilated_vcd_c.cpp b/include/verilated_vcd_c.cpp index c21c8f1b9..42b930f05 100644 --- a/include/verilated_vcd_c.cpp +++ b/include/verilated_vcd_c.cpp @@ -525,7 +525,7 @@ void VerilatedVcd::module(const std::string& name) { } void VerilatedVcd::declare(vluint32_t code, const char* name, const char* wirep, - int arraynum, bool tri, bool bussed, int msb, int lsb) { + bool array, int arraynum, bool tri, bool bussed, int msb, int lsb) { if (!code) { VL_FATAL_MT(__FILE__, __LINE__, "", "Internal: internal trace problem, code 0 is illegal"); } @@ -584,7 +584,7 @@ void VerilatedVcd::declare(vluint32_t code, const char* name, const char* wirep, } decl += " "; decl += basename; - if (arraynum>=0) { + if (array) { sprintf(buf, "(%d)", arraynum); decl += buf; hiername += buf; @@ -597,26 +597,42 @@ void VerilatedVcd::declare(vluint32_t code, const char* name, const char* wirep, m_namemapp->insert(std::make_pair(hiername,decl)); } -void VerilatedVcd::declBit (vluint32_t code, const char* name, int arraynum) -{ declare(code, name, "wire", arraynum, false, false, 0, 0); } -void VerilatedVcd::declBus (vluint32_t code, const char* name, int arraynum, int msb, int lsb) -{ declare(code, name, "wire", arraynum, false, true, msb, lsb); } -void VerilatedVcd::declQuad (vluint32_t code, const char* name, int arraynum, int msb, int lsb) -{ declare(code, name, "wire", arraynum, false, true, msb, lsb); } -void VerilatedVcd::declArray (vluint32_t code, const char* name, int arraynum, int msb, int lsb) -{ declare(code, name, "wire", arraynum, false, true, msb, lsb); } -void VerilatedVcd::declTriBit (vluint32_t code, const char* name, int arraynum) -{ declare(code, name, "wire", arraynum, true, false, 0, 0); } -void VerilatedVcd::declTriBus (vluint32_t code, const char* name, int arraynum, int msb, int lsb) -{ declare(code, name, "wire", arraynum, true, true, msb, lsb); } -void VerilatedVcd::declTriQuad (vluint32_t code, const char* name, int arraynum, int msb, int lsb) -{ declare(code, name, "wire", arraynum, true, true, msb, lsb); } -void VerilatedVcd::declTriArray (vluint32_t code, const char* name, int arraynum, int msb, int lsb) -{ declare(code, name, "wire", arraynum, true, true, msb, lsb); } -void VerilatedVcd::declFloat (vluint32_t code, const char* name, int arraynum) -{ declare(code, name, "real", arraynum, false, false, 31, 0); } -void VerilatedVcd::declDouble (vluint32_t code, const char* name, int arraynum) -{ declare(code, name, "real", arraynum, false, false, 63, 0); } +void VerilatedVcd::declBit(vluint32_t code, const char* name, bool array, int arraynum) { + declare(code, name, "wire", array, arraynum, false, false, 0, 0); +} +void VerilatedVcd::declBus(vluint32_t code, const char* name, bool array, int arraynum, int msb, + int lsb) { + declare(code, name, "wire", array, arraynum, false, true, msb, lsb); +} +void VerilatedVcd::declQuad(vluint32_t code, const char* name, bool array, int arraynum, int msb, + int lsb) { + declare(code, name, "wire", array, arraynum, false, true, msb, lsb); +} +void VerilatedVcd::declArray(vluint32_t code, const char* name, bool array, int arraynum, int msb, + int lsb) { + declare(code, name, "wire", array, arraynum, false, true, msb, lsb); +} +void VerilatedVcd::declTriBit(vluint32_t code, const char* name, bool array, int arraynum) { + declare(code, name, "wire", array, arraynum, true, false, 0, 0); +} +void VerilatedVcd::declTriBus(vluint32_t code, const char* name, bool array, int arraynum, int msb, + int lsb) { + declare(code, name, "wire", array, arraynum, true, true, msb, lsb); +} +void VerilatedVcd::declTriQuad(vluint32_t code, const char* name, bool array, int arraynum, + int msb, int lsb) { + declare(code, name, "wire", array, arraynum, true, true, msb, lsb); +} +void VerilatedVcd::declTriArray(vluint32_t code, const char* name, bool array, int arraynum, + int msb, int lsb) { + declare(code, name, "wire", array, arraynum, true, true, msb, lsb); +} +void VerilatedVcd::declFloat(vluint32_t code, const char* name, bool array, int arraynum) { + declare(code, name, "real", array, arraynum, false, false, 31, 0); +} +void VerilatedVcd::declDouble(vluint32_t code, const char* name, bool array, int arraynum) { + declare(code, name, "real", array, arraynum, false, false, 63, 0); +} //============================================================================= diff --git a/include/verilated_vcd_c.h b/include/verilated_vcd_c.h index 89f6f7c7c..835af7b71 100644 --- a/include/verilated_vcd_c.h +++ b/include/verilated_vcd_c.h @@ -125,8 +125,8 @@ private: void printStr(const char* str); void printQuad(vluint64_t n); void printTime(vluint64_t timeui); - void declare(vluint32_t code, const char* name, const char* wirep, - int arraynum, bool tri, bool bussed, int msb, int lsb); + void declare(vluint32_t code, const char* name, const char* wirep, bool array, int arraynum, + bool tri, bool bussed, int msb, int lsb); void dumpHeader(); void dumpPrep(vluint64_t timeui); @@ -201,16 +201,16 @@ public: /// Inside dumping routines, declare a module void module(const std::string& name); /// Inside dumping routines, declare a signal - void declBit (vluint32_t code, const char* name, int arraynum); - void declBus (vluint32_t code, const char* name, int arraynum, int msb, int lsb); - void declQuad (vluint32_t code, const char* name, int arraynum, int msb, int lsb); - void declArray (vluint32_t code, const char* name, int arraynum, int msb, int lsb); - void declTriBit (vluint32_t code, const char* name, int arraynum); - void declTriBus (vluint32_t code, const char* name, int arraynum, int msb, int lsb); - void declTriQuad (vluint32_t code, const char* name, int arraynum, int msb, int lsb); - void declTriArray (vluint32_t code, const char* name, int arraynum, int msb, int lsb); - void declDouble (vluint32_t code, const char* name, int arraynum); - void declFloat (vluint32_t code, const char* name, int arraynum); + void declBit( vluint32_t code, const char* name, bool array, int arraynum); + void declBus( vluint32_t code, const char* name, bool array, int arraynum, int msb, int lsb); + void declQuad( vluint32_t code, const char* name, bool array, int arraynum, int msb, int lsb); + void declArray( vluint32_t code, const char* name, bool array, int arraynum, int msb, int lsb); + void declTriBit( vluint32_t code, const char* name, bool array, int arraynum); + void declTriBus( vluint32_t code, const char* name, bool array, int arraynum, int msb, int lsb); + void declTriQuad( vluint32_t code, const char* name, bool array, int arraynum, int msb, int lsb); + void declTriArray(vluint32_t code, const char* name, bool array, int arraynum, int msb, int lsb); + void declDouble( vluint32_t code, const char* name, bool array, int arraynum); + void declFloat( vluint32_t code, const char* name, bool array, int arraynum); // ... other module_start for submodules (based on cell name) /// Inside dumping routines, dump one signal diff --git a/src/V3EmitC.cpp b/src/V3EmitC.cpp index 94c4c1e4a..ff4156267 100644 --- a/src/V3EmitC.cpp +++ b/src/V3EmitC.cpp @@ -3062,13 +3062,13 @@ class EmitCTrace : EmitCStmts { } // Range if (nodep->arrayRange().ranged()) { - puts(",(i+"+cvtToStr(nodep->arrayRange().lo())+")"); + puts(", true,(i+" + cvtToStr(nodep->arrayRange().lo()) + ")"); } else { - puts(",-1"); + puts(", false,-1"); } - if (!nodep->dtypep()->basicp()->isDouble() // When float/double no longer have widths this can go - && nodep->bitRange().ranged()) { - puts(","+cvtToStr(nodep->bitRange().left())+","+cvtToStr(nodep->bitRange().right())); + if (!nodep->dtypep()->basicp()->isDouble() && nodep->bitRange().ranged()) { + puts(", " + cvtToStr(nodep->bitRange().left()) + "," + + cvtToStr(nodep->bitRange().right())); } puts(");"); } diff --git a/test_regress/t/t_trace_complex.out b/test_regress/t/t_trace_complex.out index 1ca5bf69b..e3693b40b 100644 --- a/test_regress/t/t_trace_complex.out +++ b/test_regress/t/t_trace_complex.out @@ -1,49 +1,52 @@ $version Generated by VerilatedVcd $end -$date Wed May 1 19:09:18 2019 +$date Wed Jan 8 07:23:20 2020 $end $timescale 1ns $end $scope module top $end - $var wire 1 < clk $end + $var wire 1 /" 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 32 $ cyc [31:0] $end - $var real 64 3 v_arr_real(0) $end - $var real 64 5 v_arr_real(1) $end - $var wire 2 * v_arrp [2:1] $end - $var wire 4 + v_arrp_arrp [3:0] $end - $var wire 4 , v_arrp_strp [3:0] $end - $var wire 1 = v_arru(1) $end - $var wire 1 > 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 ? v_arru_arru(3)(1) $end - $var wire 1 @ v_arru_arru(3)(2) $end - $var wire 1 A v_arru_arru(4)(1) $end - $var wire 1 B v_arru_arru(4)(2) $end - $var wire 2 / v_arru_strp(3) [1:0] $end - $var wire 2 0 v_arru_strp(4) [1:0] $end - $var wire 3 9 v_enumb [2:0] $end - $var wire 32 7 v_enumed [31:0] $end - $var wire 32 8 v_enumed2 [31:0] $end - $var real 64 1 v_real $end - $var wire 64 % v_str32x2 [63:0] $end - $var wire 2 ' v_strp [1:0] $end - $var wire 4 ( v_strp_strp [3:0] $end - $var wire 2 ) v_unip_strp [1:0] $end + $var wire 1 /" 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 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 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 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 32 e! v_enumed [31:0] $end + $var wire 32 m! v_enumed2 [31:0] $end + $var real 64 5! v_real $end + $var wire 64 3 v_str32x2 [63:0] $end + $var wire 2 C v_strp [1:0] $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 C PARAM [31:0] $end + $var wire 32 !# PARAM [31:0] $end $upscope $end $scope module p3 $end - $var wire 32 D PARAM [31:0] $end + $var wire 32 )# 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 @@ -53,164 +56,167 @@ $enddefinitions $end #0 1# -b00000000000000000000000000000000 $ -b0000000000000000000000000000000000000000000000000000000011111111 % -b00 ' -b0000 ( -b00 ) -b00 * -b0000 + -b0000 , -b00 - -b00 . -b00 / -b00 0 -r0 1 -r0 3 -r0 5 -b00000000000000000000000000000000 7 -b00000000000000000000000000000000 8 -b000 9 -b00000000000000000000000000000000 : -b00000000000000000000000000000000 ; -0< -0= -0> -0? -0@ -0A -0B -b00000000000000000000000000000010 C -b00000000000000000000000000000011 D +b00000000000000000000000000000000 + +b0000000000000000000000000000000000000000000000000000000011111111 3 +b00 C +b0000 K +b00 S +b00 [ +b0000 c +b0000 k +b00 s +b00 t +b00 %! +b00 -! +r0 5! +r0 E! +r0 G! +b00000000000000000000000000000000 e! +b00000000000000000000000000000000 m! +b000 u! +b00000000000000000000000000000000 }! +b00000000000000000000000000000000 '" +0/" +07" +08" +0G" +0O" +0W" +0_" +b00000000 g" +b00000000 h" +b00000000 i" +b00000000000000000000000000000010 !# +b00000000000000000000000000000011 )# #10 -b00000000000000000000000000000001 $ -b0000000000000000000000000000000100000000000000000000000011111110 % -b11 ' -b1111 ( -b11 ) -b11 * -b1111 + -b1111 , -b11 - -b11 . -b11 / -b11 0 -r0.1 1 -r0.2 3 -r0.3 5 -b00000000000000000000000000000001 7 -b00000000000000000000000000000010 8 -b111 9 -b00000000000000000000000000000101 : -b00000000000000000000000000000101 ; -1< +b00000000000000000000000000000001 + +b0000000000000000000000000000000100000000000000000000000011111110 3 +b11 C +b1111 K +b11 S +b11 [ +b1111 c +b1111 k +b11 s +b11 t +b11 %! +b11 -! +r0.1 5! +r0.2 E! +r0.3 G! +b00000000000000000000000000000001 e! +b00000000000000000000000000000010 m! +b111 u! +b00000000000000000000000000000101 }! +b00000000000000000000000000000101 '" +1/" #15 -0< +0/" #20 -b00000000000000000000000000000010 $ -b0000000000000000000000000000001000000000000000000000000011111101 % -b00 ' -b0000 ( -b00 ) -b00 * -b0000 + -b0000 , -b00 - -b00 . -b00 / -b00 0 -r0.2 1 -r0.4 3 -r0.6 5 -b00000000000000000000000000000010 7 -b00000000000000000000000000000100 8 -b110 9 -1< +b00000000000000000000000000000010 + +b0000000000000000000000000000001000000000000000000000000011111101 3 +b00 C +b0000 K +b00 S +b00 [ +b0000 c +b0000 k +b00 s +b00 t +b00 %! +b00 -! +r0.2 5! +r0.4 E! +r0.6 G! +b00000000000000000000000000000010 e! +b00000000000000000000000000000100 m! +b110 u! +1/" #25 -0< +0/" #30 -b00000000000000000000000000000011 $ -b0000000000000000000000000000001100000000000000000000000011111100 % -b11 ' -b1111 ( -b11 ) -b11 * -b1111 + -b1111 , -b11 - -b11 . -b11 / -b11 0 -r0.3 1 -r0.6000000000000001 3 -r0.8999999999999999 5 -b00000000000000000000000000000011 7 -b00000000000000000000000000000110 8 -b101 9 -1< +b00000000000000000000000000000011 + +b0000000000000000000000000000001100000000000000000000000011111100 3 +b11 C +b1111 K +b11 S +b11 [ +b1111 c +b1111 k +b11 s +b11 t +b11 %! +b11 -! +r0.3 5! +r0.6000000000000001 E! +r0.8999999999999999 G! +b00000000000000000000000000000011 e! +b00000000000000000000000000000110 m! +b101 u! +1/" #35 -0< +0/" #40 -b00000000000000000000000000000100 $ -b0000000000000000000000000000010000000000000000000000000011111011 % -b00 ' -b0000 ( -b00 ) -b00 * -b0000 + -b0000 , -b00 - -b00 . -b00 / -b00 0 -r0.4 1 -r0.8 3 -r1.2 5 -b00000000000000000000000000000100 7 -b00000000000000000000000000001000 8 -b100 9 -1< +b00000000000000000000000000000100 + +b0000000000000000000000000000010000000000000000000000000011111011 3 +b00 C +b0000 K +b00 S +b00 [ +b0000 c +b0000 k +b00 s +b00 t +b00 %! +b00 -! +r0.4 5! +r0.8 E! +r1.2 G! +b00000000000000000000000000000100 e! +b00000000000000000000000000001000 m! +b100 u! +1/" #45 -0< +0/" #50 -b00000000000000000000000000000101 $ -b0000000000000000000000000000010100000000000000000000000011111010 % -b11 ' -b1111 ( -b11 ) -b11 * -b1111 + -b1111 , -b11 - -b11 . -b11 / -b11 0 -r0.5 1 -r1 3 -r1.5 5 -b00000000000000000000000000000101 7 -b00000000000000000000000000001010 8 -b011 9 -1< +b00000000000000000000000000000101 + +b0000000000000000000000000000010100000000000000000000000011111010 3 +b11 C +b1111 K +b11 S +b11 [ +b1111 c +b1111 k +b11 s +b11 t +b11 %! +b11 -! +r0.5 5! +r1 E! +r1.5 G! +b00000000000000000000000000000101 e! +b00000000000000000000000000001010 m! +b011 u! +1/" #55 -0< +0/" #60 -b00000000000000000000000000000110 $ -b0000000000000000000000000000011000000000000000000000000011111001 % -b00 ' -b0000 ( -b00 ) -b00 * -b0000 + -b0000 , -b00 - -b00 . -b00 / -b00 0 -r0.6 1 -r1.2 3 -r1.8 5 -b00000000000000000000000000000110 7 -b00000000000000000000000000001100 8 -b010 9 -1< +b00000000000000000000000000000110 + +b0000000000000000000000000000011000000000000000000000000011111001 3 +b00 C +b0000 K +b00 S +b00 [ +b0000 c +b0000 k +b00 s +b00 t +b00 %! +b00 -! +r0.6 5! +r1.2 E! +r1.8 G! +b00000000000000000000000000000110 e! +b00000000000000000000000000001100 m! +b010 u! +1/" diff --git a/test_regress/t/t_trace_complex.v b/test_regress/t/t_trace_complex.v index 22f744289..803148e86 100644 --- a/test_regress/t/t_trace_complex.v +++ b/test_regress/t/t_trace_complex.v @@ -65,6 +65,8 @@ module t (clk); typedef enum logic [2:0] { BZERO=0, BONE, BTWO, BTHREE } enumb_t; enumb_t v_enumb; + logic [7:0] unpacked_array[-2:0]; + p #(.PARAM(2)) p2 (); p #(.PARAM(3)) p3 (); diff --git a/test_regress/t/t_trace_complex_fst.out b/test_regress/t/t_trace_complex_fst.out index 6850fcf49..09140eaf7 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 May 1 19:09:18 2019 + Wed Jan 8 07:26:16 2020 $end $version @@ -41,21 +41,24 @@ $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 $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 @ PARAM $end $upscope $end $upscope $end $scope module $unit $end -$var bit 1 > global_bit $end +$var bit 1 A global_bit $end $upscope $end $upscope $end $enddefinitions $end @@ -85,14 +88,17 @@ b0000000000000000000000000000000000000000000000000000000011111111 6 b00000000000000000000000000000000 7 b00000000000000000000000000000000 8 b000 9 -b00000000000000000000000000000000 : -b00000000000000000000000000000000 ; -b00000000000000000000000000000010 < -b00000000000000000000000000000011 = -1> +b00000000 : +b00000000 ; +b00000000 < +b00000000000000000000000000000000 = +b00000000000000000000000000000000 > +b00000000000000000000000000000010 ? +b00000000000000000000000000000011 @ +1A #10 -b00000000000000000000000000000101 ; -b00000000000000000000000000000101 : +b00000000000000000000000000000101 > +b00000000000000000000000000000101 = b111 9 b00000000000000000000000000000010 8 b00000000000000000000000000000001 7 @@ -134,14 +140,14 @@ b0000000000000000000000000000001000000000000000000000000011111101 6 b00000000000000000000000000000010 7 b00000000000000000000000000000100 8 b110 9 -b00000000000000000000000000000101 : -b00000000000000000000000000000101 ; +b00000000000000000000000000000101 = +b00000000000000000000000000000101 > #25 0! #30 1! -b00000000000000000000000000000101 ; -b00000000000000000000000000000101 : +b00000000000000000000000000000101 > +b00000000000000000000000000000101 = b101 9 b00000000000000000000000000000110 8 b00000000000000000000000000000011 7 @@ -182,14 +188,14 @@ b0000000000000000000000000000010000000000000000000000000011111011 6 b00000000000000000000000000000100 7 b00000000000000000000000000001000 8 b100 9 -b00000000000000000000000000000101 : -b00000000000000000000000000000101 ; +b00000000000000000000000000000101 = +b00000000000000000000000000000101 > #45 0! #50 1! -b00000000000000000000000000000101 ; -b00000000000000000000000000000101 : +b00000000000000000000000000000101 > +b00000000000000000000000000000101 = b011 9 b00000000000000000000000000001010 8 b00000000000000000000000000000101 7 @@ -230,5 +236,5 @@ b0000000000000000000000000000011000000000000000000000000011111001 6 b00000000000000000000000000000110 7 b00000000000000000000000000001100 8 b010 9 -b00000000000000000000000000000101 : -b00000000000000000000000000000101 ; +b00000000000000000000000000000101 = +b00000000000000000000000000000101 > diff --git a/test_regress/t/t_trace_complex_params.out b/test_regress/t/t_trace_complex_params.out index 2f0975e10..ca5eeb36d 100644 --- a/test_regress/t/t_trace_complex_params.out +++ b/test_regress/t/t_trace_complex_params.out @@ -1,49 +1,52 @@ $version Generated by VerilatedVcd $end -$date Wed May 1 19:09:21 2019 +$date Wed Jan 8 07:26:16 2020 $end $timescale 1ns $end $scope module top $end - $var wire 1 < clk $end + $var wire 1 /" 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 32 $ cyc [31:0] $end - $var real 64 3 v_arr_real(0) $end - $var real 64 5 v_arr_real(1) $end - $var wire 2 * v_arrp [2:1] $end - $var wire 4 + v_arrp_arrp [3:0] $end - $var wire 4 , v_arrp_strp [3:0] $end - $var wire 1 = v_arru(1) $end - $var wire 1 > 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 ? v_arru_arru(3)(1) $end - $var wire 1 @ v_arru_arru(3)(2) $end - $var wire 1 A v_arru_arru(4)(1) $end - $var wire 1 B v_arru_arru(4)(2) $end - $var wire 2 / v_arru_strp(3) [1:0] $end - $var wire 2 0 v_arru_strp(4) [1:0] $end - $var wire 3 9 v_enumb [2:0] $end - $var wire 32 7 v_enumed [31:0] $end - $var wire 32 8 v_enumed2 [31:0] $end - $var real 64 1 v_real $end - $var wire 64 % v_str32x2 [63:0] $end - $var wire 2 ' v_strp [1:0] $end - $var wire 4 ( v_strp_strp [3:0] $end - $var wire 2 ) v_unip_strp [1:0] $end + $var wire 1 /" 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 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 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 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 32 e! v_enumed [31:0] $end + $var wire 32 m! v_enumed2 [31:0] $end + $var real 64 5! v_real $end + $var wire 64 3 v_str32x2 [63:0] $end + $var wire 2 C v_strp [1:0] $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 C PARAM [31:0] $end + $var wire 32 !# PARAM [31:0] $end $upscope $end $scope module p3 $end - $var wire 32 D PARAM [31:0] $end + $var wire 32 )# 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 @@ -53,164 +56,167 @@ $enddefinitions $end #0 1# -b00000000000000000000000000000000 $ -b0000000000000000000000000000000000000000000000000000000011111111 % -b00 ' -b0000 ( -b00 ) -b00 * -b0000 + -b0000 , -b00 - -b00 . -b00 / -b00 0 -r0 1 -r0 3 -r0 5 -b00000000000000000000000000000000 7 -b00000000000000000000000000000000 8 -b000 9 -b00000000000000000000000000000000 : -b00000000000000000000000000000000 ; -0< -0= -0> -0? -0@ -0A -0B -b00000000000000000000000000000010 C -b00000000000000000000000000000011 D +b00000000000000000000000000000000 + +b0000000000000000000000000000000000000000000000000000000011111111 3 +b00 C +b0000 K +b00 S +b00 [ +b0000 c +b0000 k +b00 s +b00 t +b00 %! +b00 -! +r0 5! +r0 E! +r0 G! +b00000000000000000000000000000000 e! +b00000000000000000000000000000000 m! +b000 u! +b00000000000000000000000000000000 }! +b00000000000000000000000000000000 '" +0/" +07" +08" +0G" +0O" +0W" +0_" +b00000000 g" +b00000000 h" +b00000000 i" +b00000000000000000000000000000010 !# +b00000000000000000000000000000011 )# #10 -b00000000000000000000000000000001 $ -b0000000000000000000000000000000100000000000000000000000011111110 % -b11 ' -b1111 ( -b11 ) -b11 * -b1111 + -b1111 , -b11 - -b11 . -b11 / -b11 0 -r0.1 1 -r0.2 3 -r0.3 5 -b00000000000000000000000000000001 7 -b00000000000000000000000000000010 8 -b111 9 -b00000000000000000000000000000101 : -b00000000000000000000000000000101 ; -1< +b00000000000000000000000000000001 + +b0000000000000000000000000000000100000000000000000000000011111110 3 +b11 C +b1111 K +b11 S +b11 [ +b1111 c +b1111 k +b11 s +b11 t +b11 %! +b11 -! +r0.1 5! +r0.2 E! +r0.3 G! +b00000000000000000000000000000001 e! +b00000000000000000000000000000010 m! +b111 u! +b00000000000000000000000000000101 }! +b00000000000000000000000000000101 '" +1/" #15 -0< +0/" #20 -b00000000000000000000000000000010 $ -b0000000000000000000000000000001000000000000000000000000011111101 % -b00 ' -b0000 ( -b00 ) -b00 * -b0000 + -b0000 , -b00 - -b00 . -b00 / -b00 0 -r0.2 1 -r0.4 3 -r0.6 5 -b00000000000000000000000000000010 7 -b00000000000000000000000000000100 8 -b110 9 -1< +b00000000000000000000000000000010 + +b0000000000000000000000000000001000000000000000000000000011111101 3 +b00 C +b0000 K +b00 S +b00 [ +b0000 c +b0000 k +b00 s +b00 t +b00 %! +b00 -! +r0.2 5! +r0.4 E! +r0.6 G! +b00000000000000000000000000000010 e! +b00000000000000000000000000000100 m! +b110 u! +1/" #25 -0< +0/" #30 -b00000000000000000000000000000011 $ -b0000000000000000000000000000001100000000000000000000000011111100 % -b11 ' -b1111 ( -b11 ) -b11 * -b1111 + -b1111 , -b11 - -b11 . -b11 / -b11 0 -r0.3 1 -r0.6000000000000001 3 -r0.8999999999999999 5 -b00000000000000000000000000000011 7 -b00000000000000000000000000000110 8 -b101 9 -1< +b00000000000000000000000000000011 + +b0000000000000000000000000000001100000000000000000000000011111100 3 +b11 C +b1111 K +b11 S +b11 [ +b1111 c +b1111 k +b11 s +b11 t +b11 %! +b11 -! +r0.3 5! +r0.6000000000000001 E! +r0.8999999999999999 G! +b00000000000000000000000000000011 e! +b00000000000000000000000000000110 m! +b101 u! +1/" #35 -0< +0/" #40 -b00000000000000000000000000000100 $ -b0000000000000000000000000000010000000000000000000000000011111011 % -b00 ' -b0000 ( -b00 ) -b00 * -b0000 + -b0000 , -b00 - -b00 . -b00 / -b00 0 -r0.4 1 -r0.8 3 -r1.2 5 -b00000000000000000000000000000100 7 -b00000000000000000000000000001000 8 -b100 9 -1< +b00000000000000000000000000000100 + +b0000000000000000000000000000010000000000000000000000000011111011 3 +b00 C +b0000 K +b00 S +b00 [ +b0000 c +b0000 k +b00 s +b00 t +b00 %! +b00 -! +r0.4 5! +r0.8 E! +r1.2 G! +b00000000000000000000000000000100 e! +b00000000000000000000000000001000 m! +b100 u! +1/" #45 -0< +0/" #50 -b00000000000000000000000000000101 $ -b0000000000000000000000000000010100000000000000000000000011111010 % -b11 ' -b1111 ( -b11 ) -b11 * -b1111 + -b1111 , -b11 - -b11 . -b11 / -b11 0 -r0.5 1 -r1 3 -r1.5 5 -b00000000000000000000000000000101 7 -b00000000000000000000000000001010 8 -b011 9 -1< +b00000000000000000000000000000101 + +b0000000000000000000000000000010100000000000000000000000011111010 3 +b11 C +b1111 K +b11 S +b11 [ +b1111 c +b1111 k +b11 s +b11 t +b11 %! +b11 -! +r0.5 5! +r1 E! +r1.5 G! +b00000000000000000000000000000101 e! +b00000000000000000000000000001010 m! +b011 u! +1/" #55 -0< +0/" #60 -b00000000000000000000000000000110 $ -b0000000000000000000000000000011000000000000000000000000011111001 % -b00 ' -b0000 ( -b00 ) -b00 * -b0000 + -b0000 , -b00 - -b00 . -b00 / -b00 0 -r0.6 1 -r1.2 3 -r1.8 5 -b00000000000000000000000000000110 7 -b00000000000000000000000000001100 8 -b010 9 -1< +b00000000000000000000000000000110 + +b0000000000000000000000000000011000000000000000000000000011111001 3 +b00 C +b0000 K +b00 S +b00 [ +b0000 c +b0000 k +b00 s +b00 t +b00 %! +b00 -! +r0.6 5! +r1.2 E! +r1.8 G! +b00000000000000000000000000000110 e! +b00000000000000000000000000001100 m! +b010 u! +1/" diff --git a/test_regress/t/t_trace_complex_params_fst.out b/test_regress/t/t_trace_complex_params_fst.out index 3389037da..366add463 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 May 1 19:09:23 2019 + Wed Jan 8 07:26:17 2020 $end $version @@ -41,21 +41,24 @@ $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 $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 @ PARAM $end $upscope $end $upscope $end $scope module $unit $end -$var bit 1 > global_bit $end +$var bit 1 A global_bit $end $upscope $end $upscope $end $enddefinitions $end @@ -85,14 +88,17 @@ b0000000000000000000000000000000000000000000000000000000011111111 6 b00000000000000000000000000000000 7 b00000000000000000000000000000000 8 b000 9 -b00000000000000000000000000000000 : -b00000000000000000000000000000000 ; -b00000000000000000000000000000010 < -b00000000000000000000000000000011 = -1> +b00000000 : +b00000000 ; +b00000000 < +b00000000000000000000000000000000 = +b00000000000000000000000000000000 > +b00000000000000000000000000000010 ? +b00000000000000000000000000000011 @ +1A #10 -b00000000000000000000000000000101 ; -b00000000000000000000000000000101 : +b00000000000000000000000000000101 > +b00000000000000000000000000000101 = b111 9 b00000000000000000000000000000010 8 b00000000000000000000000000000001 7 @@ -134,14 +140,14 @@ b0000000000000000000000000000001000000000000000000000000011111101 6 b00000000000000000000000000000010 7 b00000000000000000000000000000100 8 b110 9 -b00000000000000000000000000000101 : -b00000000000000000000000000000101 ; +b00000000000000000000000000000101 = +b00000000000000000000000000000101 > #25 0! #30 1! -b00000000000000000000000000000101 ; -b00000000000000000000000000000101 : +b00000000000000000000000000000101 > +b00000000000000000000000000000101 = b101 9 b00000000000000000000000000000110 8 b00000000000000000000000000000011 7 @@ -182,14 +188,14 @@ b0000000000000000000000000000010000000000000000000000000011111011 6 b00000000000000000000000000000100 7 b00000000000000000000000000001000 8 b100 9 -b00000000000000000000000000000101 : -b00000000000000000000000000000101 ; +b00000000000000000000000000000101 = +b00000000000000000000000000000101 > #45 0! #50 1! -b00000000000000000000000000000101 ; -b00000000000000000000000000000101 : +b00000000000000000000000000000101 > +b00000000000000000000000000000101 = b011 9 b00000000000000000000000000001010 8 b00000000000000000000000000000101 7 @@ -230,5 +236,5 @@ b0000000000000000000000000000011000000000000000000000000011111001 6 b00000000000000000000000000000110 7 b00000000000000000000000000001100 8 b010 9 -b00000000000000000000000000000101 : -b00000000000000000000000000000101 ; +b00000000000000000000000000000101 = +b00000000000000000000000000000101 > diff --git a/test_regress/t/t_trace_complex_structs.out b/test_regress/t/t_trace_complex_structs.out index 22b81efdb..ba955aa5e 100644 --- a/test_regress/t/t_trace_complex_structs.out +++ b/test_regress/t/t_trace_complex_structs.out @@ -1,83 +1,86 @@ $version Generated by VerilatedVcd $end -$date Wed May 1 19:09:26 2019 +$date Wed Jan 8 07:26:19 2020 $end $timescale 1ns $end $scope module top $end - $var wire 1 G clk $end + $var wire 1 )# clk $end $scope module $unit $end $var wire 1 # global_bit $end $upscope $end $scope module t $end - $var wire 1 G clk $end - $var wire 32 $ cyc [31:0] $end - $var real 64 > v_arr_real(0) $end - $var real 64 @ v_arr_real(1) $end - $var wire 2 / v_arrp [2:1] $end - $var wire 2 0 v_arrp_arrp(3) [1:0] $end - $var wire 2 1 v_arrp_arrp(4) [1:0] $end - $var wire 1 H v_arru(1) $end - $var wire 1 I v_arru(2) $end - $var wire 2 6 v_arru_arrp(3) [2:1] $end - $var wire 2 7 v_arru_arrp(4) [2:1] $end - $var wire 1 J v_arru_arru(3)(1) $end - $var wire 1 K v_arru_arru(3)(2) $end - $var wire 1 L v_arru_arru(4)(1) $end - $var wire 1 M v_arru_arru(4)(2) $end - $var wire 3 D v_enumb [2:0] $end - $var wire 32 B v_enumed [31:0] $end - $var wire 32 C v_enumed2 [31:0] $end - $var real 64 < v_real $end + $var wire 1 )# 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 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_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 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 E b [31:0] $end + $var wire 32 w" b [31:0] $end $scope module unnamedblk2 $end - $var wire 32 F a [31:0] $end + $var wire 32 !# a [31:0] $end $upscope $end $upscope $end $scope module v_arrp_strp(3) $end - $var wire 1 3 b0 $end - $var wire 1 2 b1 $end + $var wire 1 E! b0 $end + $var wire 1 =! b1 $end $upscope $end $scope module v_arrp_strp(4) $end - $var wire 1 5 b0 $end - $var wire 1 4 b1 $end + $var wire 1 U! b0 $end + $var wire 1 M! b1 $end $upscope $end $scope module v_arru_strp(3) $end - $var wire 1 9 b0 $end - $var wire 1 8 b1 $end + $var wire 1 u! b0 $end + $var wire 1 m! b1 $end $upscope $end $scope module v_arru_strp(4) $end - $var wire 1 ; b0 $end - $var wire 1 : b1 $end + $var wire 1 '" b0 $end + $var wire 1 }! b1 $end $upscope $end $scope module v_str32x2(0) $end - $var wire 32 % data [31:0] $end + $var wire 32 3 data [31:0] $end $upscope $end $scope module v_str32x2(1) $end - $var wire 32 & data [31:0] $end + $var wire 32 ; data [31:0] $end $upscope $end $scope module v_strp $end - $var wire 1 ( b0 $end - $var wire 1 ' b1 $end + $var wire 1 K b0 $end + $var wire 1 C b1 $end $upscope $end $scope module v_strp_strp $end $scope module x0 $end - $var wire 1 , b0 $end - $var wire 1 + b1 $end + $var wire 1 k b0 $end + $var wire 1 c b1 $end $upscope $end $scope module x1 $end - $var wire 1 * b0 $end - $var wire 1 ) b1 $end + $var wire 1 [ b0 $end + $var wire 1 S b1 $end $upscope $end $upscope $end $scope module v_unip_strp $end $scope module x0 $end - $var wire 1 . b0 $end - $var wire 1 - b1 $end + $var wire 1 { b0 $end + $var wire 1 s b1 $end $upscope $end $scope module x1 $end - $var wire 1 . b0 $end - $var wire 1 - b1 $end + $var wire 1 { b0 $end + $var wire 1 s b1 $end $upscope $end $upscope $end $upscope $end @@ -87,246 +90,249 @@ $enddefinitions $end #0 1# -b00000000000000000000000000000000 $ -b00000000000000000000000011111111 % -b00000000000000000000000000000000 & -0' -0( -0) -0* -0+ -0, -0- -0. -b00 / -b00 0 -b00 1 -02 -03 -04 -05 -b00 6 -b00 7 -08 -09 -0: -0; -r0 < -r0 > -r0 @ -b00000000000000000000000000000000 B -b00000000000000000000000000000000 C -b000 D -b00000000000000000000000000000000 E -b00000000000000000000000000000000 F -0G -0H -0I -0J +b00000000000000000000000000000000 + +b00000000000000000000000011111111 3 +b00000000000000000000000000000000 ; +0C 0K -0L -0M +0S +0[ +0c +0k +0s +0{ +b00 %! +b00 -! +b00 5! +0=! +0E! +0M! +0U! +b00 ]! +b00 ^! +0m! +0u! +0}! +0'" +r0 /" +r0 ?" +r0 A" +b00000000000000000000000000000000 _" +b00000000000000000000000000000000 g" +b000 o" +b00000000000000000000000000000000 w" +b00000000000000000000000000000000 !# +0)# +01# +02# +0A# +0I# +0Q# +0Y# +b00000000 a# +b00000000 b# +b00000000 c# #10 -b00000000000000000000000000000001 $ -b00000000000000000000000011111110 % -b00000000000000000000000000000001 & -1' -1( -1) -1* -1+ -1, -1- -1. -b11 / -b11 0 -b11 1 -12 -13 -14 -15 -b11 6 -b11 7 -18 -19 -1: -1; -r0.1 < -r0.2 > -r0.3 @ -b00000000000000000000000000000001 B -b00000000000000000000000000000010 C -b111 D -b00000000000000000000000000000101 E -b00000000000000000000000000000101 F -1G +b00000000000000000000000000000001 + +b00000000000000000000000011111110 3 +b00000000000000000000000000000001 ; +1C +1K +1S +1[ +1c +1k +1s +1{ +b11 %! +b11 -! +b11 5! +1=! +1E! +1M! +1U! +b11 ]! +b11 ^! +1m! +1u! +1}! +1'" +r0.1 /" +r0.2 ?" +r0.3 A" +b00000000000000000000000000000001 _" +b00000000000000000000000000000010 g" +b111 o" +b00000000000000000000000000000101 w" +b00000000000000000000000000000101 !# +1)# #15 -0G +0)# #20 -b00000000000000000000000000000010 $ -b00000000000000000000000011111101 % -b00000000000000000000000000000010 & -0' -0( -0) -0* -0+ -0, -0- -0. -b00 / -b00 0 -b00 1 -02 -03 -04 -05 -b00 6 -b00 7 -08 -09 -0: -0; -r0.2 < -r0.4 > -r0.6 @ -b00000000000000000000000000000010 B -b00000000000000000000000000000100 C -b110 D -1G +b00000000000000000000000000000010 + +b00000000000000000000000011111101 3 +b00000000000000000000000000000010 ; +0C +0K +0S +0[ +0c +0k +0s +0{ +b00 %! +b00 -! +b00 5! +0=! +0E! +0M! +0U! +b00 ]! +b00 ^! +0m! +0u! +0}! +0'" +r0.2 /" +r0.4 ?" +r0.6 A" +b00000000000000000000000000000010 _" +b00000000000000000000000000000100 g" +b110 o" +1)# #25 -0G +0)# #30 -b00000000000000000000000000000011 $ -b00000000000000000000000011111100 % -b00000000000000000000000000000011 & -1' -1( -1) -1* -1+ -1, -1- -1. -b11 / -b11 0 -b11 1 -12 -13 -14 -15 -b11 6 -b11 7 -18 -19 -1: -1; -r0.3 < -r0.6000000000000001 > -r0.8999999999999999 @ -b00000000000000000000000000000011 B -b00000000000000000000000000000110 C -b101 D -1G +b00000000000000000000000000000011 + +b00000000000000000000000011111100 3 +b00000000000000000000000000000011 ; +1C +1K +1S +1[ +1c +1k +1s +1{ +b11 %! +b11 -! +b11 5! +1=! +1E! +1M! +1U! +b11 ]! +b11 ^! +1m! +1u! +1}! +1'" +r0.3 /" +r0.6000000000000001 ?" +r0.8999999999999999 A" +b00000000000000000000000000000011 _" +b00000000000000000000000000000110 g" +b101 o" +1)# #35 -0G +0)# #40 -b00000000000000000000000000000100 $ -b00000000000000000000000011111011 % -b00000000000000000000000000000100 & -0' -0( -0) -0* -0+ -0, -0- -0. -b00 / -b00 0 -b00 1 -02 -03 -04 -05 -b00 6 -b00 7 -08 -09 -0: -0; -r0.4 < -r0.8 > -r1.2 @ -b00000000000000000000000000000100 B -b00000000000000000000000000001000 C -b100 D -1G +b00000000000000000000000000000100 + +b00000000000000000000000011111011 3 +b00000000000000000000000000000100 ; +0C +0K +0S +0[ +0c +0k +0s +0{ +b00 %! +b00 -! +b00 5! +0=! +0E! +0M! +0U! +b00 ]! +b00 ^! +0m! +0u! +0}! +0'" +r0.4 /" +r0.8 ?" +r1.2 A" +b00000000000000000000000000000100 _" +b00000000000000000000000000001000 g" +b100 o" +1)# #45 -0G +0)# #50 -b00000000000000000000000000000101 $ -b00000000000000000000000011111010 % -b00000000000000000000000000000101 & -1' -1( -1) -1* -1+ -1, -1- -1. -b11 / -b11 0 -b11 1 -12 -13 -14 -15 -b11 6 -b11 7 -18 -19 -1: -1; -r0.5 < -r1 > -r1.5 @ -b00000000000000000000000000000101 B -b00000000000000000000000000001010 C -b011 D -1G +b00000000000000000000000000000101 + +b00000000000000000000000011111010 3 +b00000000000000000000000000000101 ; +1C +1K +1S +1[ +1c +1k +1s +1{ +b11 %! +b11 -! +b11 5! +1=! +1E! +1M! +1U! +b11 ]! +b11 ^! +1m! +1u! +1}! +1'" +r0.5 /" +r1 ?" +r1.5 A" +b00000000000000000000000000000101 _" +b00000000000000000000000000001010 g" +b011 o" +1)# #55 -0G +0)# #60 -b00000000000000000000000000000110 $ -b00000000000000000000000011111001 % -b00000000000000000000000000000110 & -0' -0( -0) -0* -0+ -0, -0- -0. -b00 / -b00 0 -b00 1 -02 -03 -04 -05 -b00 6 -b00 7 -08 -09 -0: -0; -r0.6 < -r1.2 > -r1.8 @ -b00000000000000000000000000000110 B -b00000000000000000000000000001100 C -b010 D -1G +b00000000000000000000000000000110 + +b00000000000000000000000011111001 3 +b00000000000000000000000000000110 ; +0C +0K +0S +0[ +0c +0k +0s +0{ +b00 %! +b00 -! +b00 5! +0=! +0E! +0M! +0U! +b00 ]! +b00 ^! +0m! +0u! +0}! +0'" +r0.6 /" +r1.2 ?" +r1.8 A" +b00000000000000000000000000000110 _" +b00000000000000000000000000001100 g" +b010 o" +1)# diff --git a/test_regress/t/t_trace_complex_structs_fst.out b/test_regress/t/t_trace_complex_structs_fst.out index 93e8f6d7a..a3e68df29 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 May 1 19:09:29 2019 + Wed Jan 8 07:26:20 2020 $end $version @@ -81,15 +81,18 @@ $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 unnamedblk1 $end -$var integer 32 F b $end +$var integer 32 I b $end $scope module unnamedblk2 $end -$var integer 32 G a $end +$var integer 32 J a $end $upscope $end $upscope $end $upscope $end $scope module $unit $end -$var bit 1 H global_bit $end +$var bit 1 K global_bit $end $upscope $end $upscope $end $enddefinitions $end @@ -131,12 +134,15 @@ b00000000000000000000000000000000 B b00000000000000000000000000000000 C b00000000000000000000000000000000 D b000 E -b00000000000000000000000000000000 F -b00000000000000000000000000000000 G -1H +b00000000 F +b00000000 G +b00000000 H +b00000000000000000000000000000000 I +b00000000000000000000000000000000 J +1K #10 -b00000000000000000000000000000101 G -b00000000000000000000000000000101 F +b00000000000000000000000000000101 J +b00000000000000000000000000000101 I b111 E b00000000000000000000000000000010 D b00000000000000000000000000000001 C @@ -202,14 +208,14 @@ b00000000000000000000000000000010 B b00000000000000000000000000000010 C b00000000000000000000000000000100 D b110 E -b00000000000000000000000000000101 F -b00000000000000000000000000000101 G +b00000000000000000000000000000101 I +b00000000000000000000000000000101 J #25 0! #30 1! -b00000000000000000000000000000101 G -b00000000000000000000000000000101 F +b00000000000000000000000000000101 J +b00000000000000000000000000000101 I b101 E b00000000000000000000000000000110 D b00000000000000000000000000000011 C @@ -274,14 +280,14 @@ b00000000000000000000000000000100 B b00000000000000000000000000000100 C b00000000000000000000000000001000 D b100 E -b00000000000000000000000000000101 F -b00000000000000000000000000000101 G +b00000000000000000000000000000101 I +b00000000000000000000000000000101 J #45 0! #50 1! -b00000000000000000000000000000101 G -b00000000000000000000000000000101 F +b00000000000000000000000000000101 J +b00000000000000000000000000000101 I b011 E b00000000000000000000000000001010 D b00000000000000000000000000000101 C @@ -346,5 +352,5 @@ b00000000000000000000000000000110 B b00000000000000000000000000000110 C b00000000000000000000000000001100 D b010 E -b00000000000000000000000000000101 F -b00000000000000000000000000000101 G +b00000000000000000000000000000101 I +b00000000000000000000000000000101 J