Fix FST tracing of enums inside structs.

This commit is contained in:
Wilson Snyder 2020-01-24 19:46:46 -05:00
parent 11380bc3b2
commit 8f0e8e0696
9 changed files with 267 additions and 187 deletions

View File

@ -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

View File

@ -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<int>(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;

View File

@ -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"

View File

@ -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];

View File

@ -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 ?

View File

@ -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"

View File

@ -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 ?

View File

@ -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#

View File

@ -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