Fix trace signal names getting hashed (#2643).

This commit is contained in:
Wilson Snyder 2020-11-16 18:11:27 -05:00
parent 26c0e6ba00
commit 70b3a599ce
11 changed files with 1269 additions and 1229 deletions

View File

@ -5,10 +5,12 @@ The contributors that suggested a given feature are shown in []. Thanks!
* Verilator 4.105 devel * Verilator 4.105 devel
**** Fix trace signal names getting hashed (#2643). [Barbara Gigerl]
* Verilator 4.104 2020-11-14 * Verilator 4.104 2020-11-14
*** Support queue and associative array 'with' statements. (#2616) *** Support queue and associative array 'with' statements (#2616).
*** Support queue slicing (#2326). *** Support queue slicing (#2326).

View File

@ -127,8 +127,9 @@ string AstNode::encodeName(const string& namein) {
} }
// Shorten names // Shorten names
// TODO long term use VName in place of "string name" // TODO long term use VName in place of "string name"
VName vname(out); // Then we also won't need to save the table of hased values
out = vname.hashedName(); VName vname{out};
return vname.hashedName();
return out; return out;
} }
@ -161,7 +162,8 @@ string AstNode::dedotName(const string& namein) {
string AstNode::vcdName(const string& namein) { string AstNode::vcdName(const string& namein) {
// VCD tracing expects space to separate hierarchy // VCD tracing expects space to separate hierarchy
// Dots are reserved for dots the user put in the name // Dots are reserved for dots the user put in the name
string pretty = namein; // We earlier hashed all symbols, dehash them so user sees real name
string pretty{VName::dehash(namein)};
string::size_type pos; string::size_type pos;
while ((pos = pretty.find("__DOT__")) != string::npos) pretty.replace(pos, 7, " "); while ((pos = pretty.find("__DOT__")) != string::npos) pretty.replace(pos, 7, " ");
while ((pos = pretty.find('.')) != string::npos) pretty.replace(pos, 1, " "); while ((pos = pretty.find('.')) != string::npos) pretty.replace(pos, 1, " ");

View File

@ -25,6 +25,7 @@
size_t VName::s_minLength = 32; size_t VName::s_minLength = 32;
size_t VName::s_maxLength = 0; // Disabled size_t VName::s_maxLength = 0; // Disabled
std::map<string, string> VName::s_dehashMap;
//###################################################################### //######################################################################
// Wildcard // Wildcard
@ -377,6 +378,15 @@ void VHashSha256::selfTest() {
//###################################################################### //######################################################################
// VName // VName
string VName::dehash(const string& in) {
const string::size_type pos = in.find("__Vhsh");
if (VL_LIKELY(pos == string::npos)) return in;
const string vhsh = in.substr(pos);
const auto& it = s_dehashMap.find(vhsh);
UASSERT(it != s_dehashMap.end(), "String not in reverse hash map '" << vhsh << "'");
return in.substr(0, pos) + it->second;
}
string VName::hashedName() { string VName::hashedName() {
if (m_name == "") return ""; if (m_name == "") return "";
if (m_hashed != "") return m_hashed; // Memoized if (m_hashed != "") return m_hashed; // Memoized
@ -387,8 +397,10 @@ string VName::hashedName() {
VHashSha256 hash(m_name); VHashSha256 hash(m_name);
string suffix = "__Vhsh" + hash.digestSymbol(); string suffix = "__Vhsh" + hash.digestSymbol();
if (s_minLength < s_maxLength) { if (s_minLength < s_maxLength) {
s_dehashMap[suffix] = m_name.substr(s_minLength);
m_hashed = m_name.substr(0, s_minLength) + suffix; m_hashed = m_name.substr(0, s_minLength) + suffix;
} else { } else {
s_dehashMap[suffix] = m_name;
m_hashed = suffix; m_hashed = suffix;
} }
return m_hashed; return m_hashed;

View File

@ -22,6 +22,7 @@
// No V3 headers here - this is a base class for Vlc etc // No V3 headers here - this is a base class for Vlc etc
#include <map>
#include <string> #include <string>
#include <sstream> #include <sstream>
#include <vector> #include <vector>
@ -159,9 +160,11 @@ private:
class VName { class VName {
string m_name; string m_name;
string m_hashed; string m_hashed;
static std::map<string, string> s_dehashMap; // hashed -> original decoder
static size_t s_maxLength; // Length at which to start hashing static size_t s_maxLength; // Length at which to start hashing
static size_t s_minLength; // Length to preserve if over maxLength static size_t s_minLength; // Length to preserve if over maxLength
public: public:
// CONSTRUCTORS // CONSTRUCTORS
explicit VName(const string& name) explicit VName(const string& name)
@ -178,6 +181,7 @@ public:
// Length at which to start hashing, 0=disable // Length at which to start hashing, 0=disable
static void maxLength(size_t flag) { s_maxLength = flag; } static void maxLength(size_t flag) { s_maxLength = flag; }
static size_t maxLength() { return s_maxLength; } static size_t maxLength() { return s_maxLength; }
static string dehash(const string& in);
}; };
//###################################################################### //######################################################################

View File

@ -1,53 +1,54 @@
$version Generated by VerilatedVcd $end $version Generated by VerilatedVcd $end
$date Tue Jan 21 18:15:27 2020 $date Mon Nov 16 17:48:27 2020
$end $end
$timescale 1ps $end $timescale 1ps $end
$scope module top $end $scope module top $end
$var wire 1 7" clk $end $var wire 1 = clk $end
$scope module $unit $end $scope module $unit $end
$var wire 1 # global_bit $end $var wire 1 # global_bit $end
$upscope $end $upscope $end
$scope module t $end $scope module t $end
$var wire 1 7" clk $end $var wire 1 G LONGSTART_a_very_long_name_which_will_get_hashed_a_very_long_name_which_will_get_hashed_a_very_long_name_which_will_get_hashed_a_very_long_name_which_will_get_hashed_LONGEND $end
$var wire 32 + cyc [31:0] $end $var wire 1 = clk $end
$var wire 8 p" unpacked_array(-1) [7:0] $end $var wire 32 $ cyc [31:0] $end
$var wire 8 o" unpacked_array(-2) [7:0] $end $var wire 8 E unpacked_array(-1) [7:0] $end
$var wire 8 q" unpacked_array(0) [7:0] $end $var wire 8 D unpacked_array(-2) [7:0] $end
$var real 64 E! v_arr_real(0) $end $var wire 8 F unpacked_array(0) [7:0] $end
$var real 64 G! v_arr_real(1) $end $var real 64 1 v_arr_real(0) $end
$var wire 2 [ v_arrp [2:1] $end $var real 64 3 v_arr_real(1) $end
$var wire 4 c v_arrp_arrp [3:0] $end $var wire 2 ( v_arrp [2:1] $end
$var wire 4 k v_arrp_strp [3:0] $end $var wire 4 ) v_arrp_arrp [3:0] $end
$var wire 1 ?" v_arru(1) $end $var wire 4 * v_arrp_strp [3:0] $end
$var wire 1 @" v_arru(2) $end $var wire 1 > v_arru(1) $end
$var wire 2 s v_arru_arrp(3) [2:1] $end $var wire 1 ? v_arru(2) $end
$var wire 2 t v_arru_arrp(4) [2:1] $end $var wire 2 + v_arru_arrp(3) [2:1] $end
$var wire 1 O" v_arru_arru(3)(1) $end $var wire 2 , v_arru_arrp(4) [2:1] $end
$var wire 1 W" v_arru_arru(3)(2) $end $var wire 1 @ v_arru_arru(3)(1) $end
$var wire 1 _" v_arru_arru(4)(1) $end $var wire 1 A v_arru_arru(3)(2) $end
$var wire 1 g" v_arru_arru(4)(2) $end $var wire 1 B v_arru_arru(4)(1) $end
$var wire 2 %! v_arru_strp(3) [1:0] $end $var wire 1 C v_arru_arru(4)(2) $end
$var wire 2 -! v_arru_strp(4) [1:0] $end $var wire 2 - v_arru_strp(3) [1:0] $end
$var wire 3 u! v_enumb [2:0] $end $var wire 2 . v_arru_strp(4) [1:0] $end
$var wire 6 }! v_enumb2_str [5:0] $end $var wire 3 9 v_enumb [2:0] $end
$var wire 32 e! v_enumed [31:0] $end $var wire 6 : v_enumb2_str [5:0] $end
$var wire 32 m! v_enumed2 [31:0] $end $var wire 32 7 v_enumed [31:0] $end
$var real 64 5! v_real $end $var wire 32 8 v_enumed2 [31:0] $end
$var wire 64 3 v_str32x2 [63:0] $end $var real 64 / v_real $end
$var wire 2 C v_strp [1:0] $end $var wire 64 5 v_str32x2 [63:0] $end
$var wire 4 K v_strp_strp [3:0] $end $var wire 2 % v_strp [1:0] $end
$var wire 2 S v_unip_strp [1:0] $end $var wire 4 & v_strp_strp [3:0] $end
$var wire 2 ' v_unip_strp [1:0] $end
$scope module p2 $end $scope module p2 $end
$var wire 32 )# PARAM [31:0] $end $var wire 32 H PARAM [31:0] $end
$upscope $end $upscope $end
$scope module p3 $end $scope module p3 $end
$var wire 32 1# PARAM [31:0] $end $var wire 32 I PARAM [31:0] $end
$upscope $end $upscope $end
$scope module unnamedblk1 $end $scope module unnamedblk1 $end
$var wire 32 '" b [31:0] $end $var wire 32 ; b [31:0] $end
$scope module unnamedblk2 $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 $upscope $end
$upscope $end $upscope $end
@ -57,173 +58,174 @@ $enddefinitions $end
#0 #0
1# 1#
b00000000000000000000000000000000 + b00000000000000000000000000000000 $
b0000000000000000000000000000000000000000000000000000000011111111 3 b00 %
b00 C b0000 &
b0000 K b00 '
b00 S b00 (
b00 [ b0000 )
b0000 c b0000 *
b0000 k b00 +
b00 s b00 ,
b00 t b00 -
b00 %! b00 .
b00 -! r0 /
r0 5! r0 1
r0 E! r0 3
r0 G! b0000000000000000000000000000000000000000000000000000000011111111 5
b00000000000000000000000000000000 e! b00000000000000000000000000000000 7
b00000000000000000000000000000000 m! b00000000000000000000000000000000 8
b000 u! b000 9
b000000 }! b000000 :
b00000000000000000000000000000000 '" b00000000000000000000000000000000 ;
b00000000000000000000000000000000 /" b00000000000000000000000000000000 <
07" 0=
0?" 0>
0@" 0?
0O" 0@
0W" 0A
0_" 0B
0g" 0C
b00000000 o" b00000000 D
b00000000 p" b00000000 E
b00000000 q" b00000000 F
b00000000000000000000000000000010 )# 0G
b00000000000000000000000000000011 1# b00000000000000000000000000000010 H
b00000000000000000000000000000011 I
#10 #10
b00000000000000000000000000000001 + b00000000000000000000000000000001 $
b0000000000000000000000000000000100000000000000000000000011111110 3 b11 %
b11 C b1111 &
b1111 K b11 '
b11 S b11 (
b11 [ b1111 )
b1111 c b1111 *
b1111 k b11 +
b11 s b11 ,
b11 t b11 -
b11 %! b11 .
b11 -! r0.1 /
r0.1 5! r0.2 1
r0.2 E! r0.3 3
r0.3 G! b0000000000000000000000000000000100000000000000000000000011111110 5
b00000000000000000000000000000001 e! b00000000000000000000000000000001 7
b00000000000000000000000000000010 m! b00000000000000000000000000000010 8
b111 u! b111 9
b00000000000000000000000000000101 '" b00000000000000000000000000000101 ;
b00000000000000000000000000000101 /" b00000000000000000000000000000101 <
17" 1=
#15 #15
07" 0=
#20 #20
b00000000000000000000000000000010 + b00000000000000000000000000000010 $
b0000000000000000000000000000001000000000000000000000000011111101 3 b00 %
b00 C b0000 &
b0000 K b00 '
b00 S b00 (
b00 [ b0000 )
b0000 c b0000 *
b0000 k b00 +
b00 s b00 ,
b00 t b00 -
b00 %! b00 .
b00 -! r0.2 /
r0.2 5! r0.4 1
r0.4 E! r0.6 3
r0.6 G! b0000000000000000000000000000001000000000000000000000000011111101 5
b00000000000000000000000000000010 e! b00000000000000000000000000000010 7
b00000000000000000000000000000100 m! b00000000000000000000000000000100 8
b110 u! b110 9
b111111 }! b111111 :
17" 1=
#25 #25
07" 0=
#30 #30
b00000000000000000000000000000011 + b00000000000000000000000000000011 $
b0000000000000000000000000000001100000000000000000000000011111100 3 b11 %
b11 C b1111 &
b1111 K b11 '
b11 S b11 (
b11 [ b1111 )
b1111 c b1111 *
b1111 k b11 +
b11 s b11 ,
b11 t b11 -
b11 %! b11 .
b11 -! r0.3 /
r0.3 5! r0.6000000000000001 1
r0.6000000000000001 E! r0.8999999999999999 3
r0.8999999999999999 G! b0000000000000000000000000000001100000000000000000000000011111100 5
b00000000000000000000000000000011 e! b00000000000000000000000000000011 7
b00000000000000000000000000000110 m! b00000000000000000000000000000110 8
b101 u! b101 9
b110110 }! b110110 :
17" 1=
#35 #35
07" 0=
#40 #40
b00000000000000000000000000000100 + b00000000000000000000000000000100 $
b0000000000000000000000000000010000000000000000000000000011111011 3 b00 %
b00 C b0000 &
b0000 K b00 '
b00 S b00 (
b00 [ b0000 )
b0000 c b0000 *
b0000 k b00 +
b00 s b00 ,
b00 t b00 -
b00 %! b00 .
b00 -! r0.4 /
r0.4 5! r0.8 1
r0.8 E! r1.2 3
r1.2 G! b0000000000000000000000000000010000000000000000000000000011111011 5
b00000000000000000000000000000100 e! b00000000000000000000000000000100 7
b00000000000000000000000000001000 m! b00000000000000000000000000001000 8
b100 u! b100 9
b101101 }! b101101 :
17" 1=
#45 #45
07" 0=
#50 #50
b00000000000000000000000000000101 + b00000000000000000000000000000101 $
b0000000000000000000000000000010100000000000000000000000011111010 3 b11 %
b11 C b1111 &
b1111 K b11 '
b11 S b11 (
b11 [ b1111 )
b1111 c b1111 *
b1111 k b11 +
b11 s b11 ,
b11 t b11 -
b11 %! b11 .
b11 -! r0.5 /
r0.5 5! r1 1
r1 E! r1.5 3
r1.5 G! b0000000000000000000000000000010100000000000000000000000011111010 5
b00000000000000000000000000000101 e! b00000000000000000000000000000101 7
b00000000000000000000000000001010 m! b00000000000000000000000000001010 8
b011 u! b011 9
b100100 }! b100100 :
17" 1=
#55 #55
07" 0=
#60 #60
b00000000000000000000000000000110 + b00000000000000000000000000000110 $
b0000000000000000000000000000011000000000000000000000000011111001 3 b00 %
b00 C b0000 &
b0000 K b00 '
b00 S b00 (
b00 [ b0000 )
b0000 c b0000 *
b0000 k b00 +
b00 s b00 ,
b00 t b00 -
b00 %! b00 .
b00 -! r0.6 /
r0.6 5! r1.2 1
r1.2 E! r1.8 3
r1.8 G! b0000000000000000000000000000011000000000000000000000000011111001 5
b00000000000000000000000000000110 e! b00000000000000000000000000000110 7
b00000000000000000000000000001100 m! b00000000000000000000000000001100 8
b010 u! b010 9
b011011 }! b011011 :
17" 1=

View File

@ -8,21 +8,21 @@ bit global_bit;
module t (clk); module t (clk);
input clk; input clk;
integer cyc=0; integer cyc=0;
typedef struct packed { typedef struct packed {
bit b1; bit b1;
bit b0; bit b0;
} strp_t; } strp_t;
typedef struct packed { typedef struct packed {
strp_t x1; strp_t x1;
strp_t x0; strp_t x0;
} strp_strp_t; } strp_strp_t;
typedef union packed { typedef union packed {
strp_t x1; strp_t x1;
strp_t x0; strp_t x0;
} unip_strp_t; } unip_strp_t;
typedef bit [2:1] arrp_t; typedef bit [2:1] arrp_t;
@ -35,20 +35,20 @@ module t (clk);
typedef arrp_t arru_arrp_t [4:3]; typedef arrp_t arru_arrp_t [4:3];
typedef strp_t arru_strp_t [4:3]; typedef strp_t arru_strp_t [4:3];
strp_t v_strp; strp_t v_strp;
strp_strp_t v_strp_strp; strp_strp_t v_strp_strp;
unip_strp_t v_unip_strp; unip_strp_t v_unip_strp;
arrp_t v_arrp; arrp_t v_arrp;
arrp_arrp_t v_arrp_arrp; arrp_arrp_t v_arrp_arrp;
arrp_strp_t v_arrp_strp; arrp_strp_t v_arrp_strp;
arru_t v_arru; arru_t v_arru;
arru_arru_t v_arru_arru; arru_arru_t v_arru_arru;
arru_arrp_t v_arru_arrp; arru_arrp_t v_arru_arrp;
arru_strp_t v_arru_strp; arru_strp_t v_arru_strp;
real v_real; real v_real;
real v_arr_real [2]; real v_arr_real [2];
string v_string; string v_string;
string v_assoc[string]; string v_assoc[string];
initial v_assoc["key"] = "value"; initial v_assoc["key"] = "value";
@ -73,6 +73,8 @@ module t (clk);
logic [7:0] unpacked_array[-2:0]; logic [7:0] unpacked_array[-2:0];
bit LONGSTART_a_very_long_name_which_will_get_hashed_a_very_long_name_which_will_get_hashed_a_very_long_name_which_will_get_hashed_a_very_long_name_which_will_get_hashed_LONGEND;
p #(.PARAM(2)) p2 (); p #(.PARAM(2)) p2 ();
p #(.PARAM(3)) p3 (); p #(.PARAM(3)) p3 ();
@ -93,18 +95,18 @@ module t (clk);
v_enumb <= v_enumb - 1; v_enumb <= v_enumb - 1;
v_enumb2_str <= {v_enumb, v_enumb}; v_enumb2_str <= {v_enumb, v_enumb};
for (integer b=3; b<=4; b++) begin for (integer b=3; b<=4; b++) begin
v_arru[b] <= ~v_arru[b]; v_arru[b] <= ~v_arru[b];
v_arru_strp[b] <= ~v_arru_strp[b]; v_arru_strp[b] <= ~v_arru_strp[b];
v_arru_arrp[b] <= ~v_arru_arrp[b]; v_arru_arrp[b] <= ~v_arru_arrp[b];
for (integer a=3; a<=4; a++) begin for (integer a=3; a<=4; a++) begin
v_arru_arru[a][b] = ~v_arru_arru[a][b]; v_arru_arru[a][b] = ~v_arru_arru[a][b];
end end
end end
v_str32x2[0] <= v_str32x2[0] - 1; v_str32x2[0] <= v_str32x2[0] - 1;
v_str32x2[1] <= v_str32x2[1] + 1; v_str32x2[1] <= v_str32x2[1] + 1;
if (cyc == 5) begin if (cyc == 5) begin
$write("*-* All Finished *-*\n"); $write("*-* All Finished *-*\n");
$finish; $finish;
end end
end end
endmodule endmodule

View File

@ -1,5 +1,5 @@
$date $date
Sun Apr 19 04:15:26 2020 Mon Nov 16 17:51:08 2020
$end $end
$version $version
@ -45,193 +45,197 @@ $var logic 6 : v_enumb2_str $end
$var logic 8 ; unpacked_array(-2) $end $var logic 8 ; unpacked_array(-2) $end
$var logic 8 < unpacked_array(-1) $end $var logic 8 < unpacked_array(-1) $end
$var logic 8 = unpacked_array(0) $end $var logic 8 = unpacked_array(0) $end
$var bit 1 > LONGSTART_a_very_long_name_which_will_get_hashed_a_very_long_name_which_will_get_hashed_a_very_long_name_which_will_get_hashed_a_very_long_name_which_will_get_hashed_LONGEND $end
$scope module unnamedblk1 $end $scope module unnamedblk1 $end
$var integer 32 > b $end $var integer 32 ? b $end
$scope module unnamedblk2 $end $scope module unnamedblk2 $end
$var integer 32 ? a $end $var integer 32 @ a $end
$upscope $end $upscope $end
$upscope $end $upscope $end
$scope module p2 $end $scope module p2 $end
$var parameter 32 @ PARAM $end $var parameter 32 A PARAM $end
$upscope $end $upscope $end
$scope module p3 $end $scope module p3 $end
$var parameter 32 A PARAM $end $var parameter 32 B PARAM $end
$upscope $end $upscope $end
$upscope $end $upscope $end
$scope module $unit $end $scope module $unit $end
$var bit 1 B global_bit $end $var bit 1 C global_bit $end
$upscope $end $upscope $end
$upscope $end $upscope $end
$enddefinitions $end $enddefinitions $end
#0
$dumpvars $dumpvars
0! 1C
b00000000000000000000000000000000 " b00000000000000000000000000000011 B
b00 # b00000000000000000000000000000010 A
b0000 $ b00000000000000000000000000000000 @
b00 %
b00 &
b0000 '
b0000 (
0)
0*
0+
0,
0-
0.
b00 /
b00 0
b00 1
b00 2
r0 3
r0 4
r0 5
b0000000000000000000000000000000000000000000000000000000011111111 6
b00000000000000000000000000000000 7
b00000000000000000000000000000000 8
b000 9
b000000 :
b00000000 ;
b00000000 <
b00000000 =
b00000000000000000000000000000000 >
b00000000000000000000000000000000 ? b00000000000000000000000000000000 ?
b00000000000000000000000000000010 @ 0>
b00000000000000000000000000000011 A b00000000 =
1B b00000000 <
b00000000 ;
b000000 :
b000 9
b00000000000000000000000000000000 8
b00000000000000000000000000000000 7
b0000000000000000000000000000000000000000000000000000000011111111 6
r0 5
r0 4
r0 3
b00 2
b00 1
b00 0
b00 /
0.
0-
0,
0+
0*
0)
b0000 (
b0000 '
b00 &
b00 %
b0000 $
b00 #
b00000000000000000000000000000000 "
0!
$end
#10 #10
b00000000000000000000000000000101 ?
b00000000000000000000000000000101 >
b111 9
b00000000000000000000000000000010 8
b00000000000000000000000000000001 7
b0000000000000000000000000000000100000000000000000000000011111110 6
r0.3 5
r0.2 4
r0.1 3
b11 2
b11 1
b11 0
b11 /
b1111 (
b1111 '
b11 &
b11 %
b1111 $
b11 #
b00000000000000000000000000000001 "
1! 1!
b00000000000000000000000000000001 "
b11 #
b1111 $
b11 %
b11 &
b1111 '
b1111 (
b11 /
b11 0
b11 1
b11 2
r0.1 3
r0.2 4
r0.3 5
b0000000000000000000000000000000100000000000000000000000011111110 6
b00000000000000000000000000000001 7
b00000000000000000000000000000010 8
b111 9
b00000000000000000000000000000101 ?
b00000000000000000000000000000101 @
#15 #15
0! 0!
#20 #20
1! 1!
b00000000000000000000000000000010 "
b00 #
b0000 $
b00 %
b00 &
b0000 '
b0000 (
b00 /
b00 0
b00 1
b00 2
r0.2 3
r0.4 4
r0.6 5
b0000000000000000000000000000001000000000000000000000000011111101 6
b00000000000000000000000000000010 7
b00000000000000000000000000000100 8
b110 9 b110 9
b00000000000000000000000000000100 8
b00000000000000000000000000000010 7
b0000000000000000000000000000001000000000000000000000000011111101 6
r0.6 5
r0.4 4
r0.2 3
b00 2
b00 1
b00 0
b00 /
b0000 (
b0000 '
b00 &
b00 %
b0000 $
b00 #
b00000000000000000000000000000010 "
b111111 : b111111 :
#25 #25
0! 0!
#30 #30
1! 1!
b110110 : b110110 :
b101 9
b00000000000000000000000000000110 8
b00000000000000000000000000000011 7
b0000000000000000000000000000001100000000000000000000000011111100 6
r0.8999999999999999 5
r0.6000000000000001 4
r0.3 3
b11 2
b11 1
b11 0
b11 /
b1111 (
b1111 '
b11 &
b11 %
b1111 $
b11 #
b00000000000000000000000000000011 " b00000000000000000000000000000011 "
b11 #
b1111 $
b11 %
b11 &
b1111 '
b1111 (
b11 /
b11 0
b11 1
b11 2
r0.3 3
r0.6000000000000001 4
r0.8999999999999999 5
b0000000000000000000000000000001100000000000000000000000011111100 6
b00000000000000000000000000000011 7
b00000000000000000000000000000110 8
b101 9
#35 #35
0! 0!
#40 #40
1! 1!
b00000000000000000000000000000100 "
b00 #
b0000 $
b00 %
b00 &
b0000 '
b0000 (
b00 /
b00 0
b00 1
b00 2
r0.4 3
r0.8 4
r1.2 5
b0000000000000000000000000000010000000000000000000000000011111011 6
b00000000000000000000000000000100 7
b00000000000000000000000000001000 8
b100 9 b100 9
b00000000000000000000000000001000 8
b00000000000000000000000000000100 7
b0000000000000000000000000000010000000000000000000000000011111011 6
r1.2 5
r0.8 4
r0.4 3
b00 2
b00 1
b00 0
b00 /
b0000 (
b0000 '
b00 &
b00 %
b0000 $
b00 #
b00000000000000000000000000000100 "
b101101 : b101101 :
#45 #45
0! 0!
#50 #50
1! 1!
b100100 : b100100 :
b011 9
b00000000000000000000000000001010 8
b00000000000000000000000000000101 7
b0000000000000000000000000000010100000000000000000000000011111010 6
r1.5 5
r1 4
r0.5 3
b11 2
b11 1
b11 0
b11 /
b1111 (
b1111 '
b11 &
b11 %
b1111 $
b11 #
b00000000000000000000000000000101 " b00000000000000000000000000000101 "
b11 #
b1111 $
b11 %
b11 &
b1111 '
b1111 (
b11 /
b11 0
b11 1
b11 2
r0.5 3
r1 4
r1.5 5
b0000000000000000000000000000010100000000000000000000000011111010 6
b00000000000000000000000000000101 7
b00000000000000000000000000001010 8
b011 9
#55 #55
0! 0!
#60 #60
1! 1!
b00000000000000000000000000000110 "
b00 #
b0000 $
b00 %
b00 &
b0000 '
b0000 (
b00 /
b00 0
b00 1
b00 2
r0.6 3
r1.2 4
r1.8 5
b0000000000000000000000000000011000000000000000000000000011111001 6
b00000000000000000000000000000110 7
b00000000000000000000000000001100 8
b010 9 b010 9
b00000000000000000000000000001100 8
b00000000000000000000000000000110 7
b0000000000000000000000000000011000000000000000000000000011111001 6
r1.8 5
r1.2 4
r0.6 3
b00 2
b00 1
b00 0
b00 /
b0000 (
b0000 '
b00 &
b00 %
b0000 $
b00 #
b00000000000000000000000000000110 "
b011011 : b011011 :

View File

@ -1,53 +1,54 @@
$version Generated by VerilatedVcd $end $version Generated by VerilatedVcd $end
$date Tue Jan 21 18:15:28 2020 $date Mon Nov 16 17:51:08 2020
$end $end
$timescale 1ps $end $timescale 1ps $end
$scope module top $end $scope module top $end
$var wire 1 7" clk $end $var wire 1 = clk $end
$scope module $unit $end $scope module $unit $end
$var wire 1 # global_bit $end $var wire 1 # global_bit $end
$upscope $end $upscope $end
$scope module t $end $scope module t $end
$var wire 1 7" clk $end $var wire 1 G LONGSTART_a_very_long_name_which_will_get_hashed_a_very_long_name_which_will_get_hashed_a_very_long_name_which_will_get_hashed_a_very_long_name_which_will_get_hashed_LONGEND $end
$var wire 32 + cyc [31:0] $end $var wire 1 = clk $end
$var wire 8 p" unpacked_array(-1) [7:0] $end $var wire 32 $ cyc [31:0] $end
$var wire 8 o" unpacked_array(-2) [7:0] $end $var wire 8 E unpacked_array(-1) [7:0] $end
$var wire 8 q" unpacked_array(0) [7:0] $end $var wire 8 D unpacked_array(-2) [7:0] $end
$var real 64 E! v_arr_real(0) $end $var wire 8 F unpacked_array(0) [7:0] $end
$var real 64 G! v_arr_real(1) $end $var real 64 1 v_arr_real(0) $end
$var wire 2 [ v_arrp [2:1] $end $var real 64 3 v_arr_real(1) $end
$var wire 4 c v_arrp_arrp [3:0] $end $var wire 2 ( v_arrp [2:1] $end
$var wire 4 k v_arrp_strp [3:0] $end $var wire 4 ) v_arrp_arrp [3:0] $end
$var wire 1 ?" v_arru(1) $end $var wire 4 * v_arrp_strp [3:0] $end
$var wire 1 @" v_arru(2) $end $var wire 1 > v_arru(1) $end
$var wire 2 s v_arru_arrp(3) [2:1] $end $var wire 1 ? v_arru(2) $end
$var wire 2 t v_arru_arrp(4) [2:1] $end $var wire 2 + v_arru_arrp(3) [2:1] $end
$var wire 1 O" v_arru_arru(3)(1) $end $var wire 2 , v_arru_arrp(4) [2:1] $end
$var wire 1 W" v_arru_arru(3)(2) $end $var wire 1 @ v_arru_arru(3)(1) $end
$var wire 1 _" v_arru_arru(4)(1) $end $var wire 1 A v_arru_arru(3)(2) $end
$var wire 1 g" v_arru_arru(4)(2) $end $var wire 1 B v_arru_arru(4)(1) $end
$var wire 2 %! v_arru_strp(3) [1:0] $end $var wire 1 C v_arru_arru(4)(2) $end
$var wire 2 -! v_arru_strp(4) [1:0] $end $var wire 2 - v_arru_strp(3) [1:0] $end
$var wire 3 u! v_enumb [2:0] $end $var wire 2 . v_arru_strp(4) [1:0] $end
$var wire 6 }! v_enumb2_str [5:0] $end $var wire 3 9 v_enumb [2:0] $end
$var wire 32 e! v_enumed [31:0] $end $var wire 6 : v_enumb2_str [5:0] $end
$var wire 32 m! v_enumed2 [31:0] $end $var wire 32 7 v_enumed [31:0] $end
$var real 64 5! v_real $end $var wire 32 8 v_enumed2 [31:0] $end
$var wire 64 3 v_str32x2 [63:0] $end $var real 64 / v_real $end
$var wire 2 C v_strp [1:0] $end $var wire 64 5 v_str32x2 [63:0] $end
$var wire 4 K v_strp_strp [3:0] $end $var wire 2 % v_strp [1:0] $end
$var wire 2 S v_unip_strp [1:0] $end $var wire 4 & v_strp_strp [3:0] $end
$var wire 2 ' v_unip_strp [1:0] $end
$scope module p2 $end $scope module p2 $end
$var wire 32 )# PARAM [31:0] $end $var wire 32 H PARAM [31:0] $end
$upscope $end $upscope $end
$scope module p3 $end $scope module p3 $end
$var wire 32 1# PARAM [31:0] $end $var wire 32 I PARAM [31:0] $end
$upscope $end $upscope $end
$scope module unnamedblk1 $end $scope module unnamedblk1 $end
$var wire 32 '" b [31:0] $end $var wire 32 ; b [31:0] $end
$scope module unnamedblk2 $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 $upscope $end
$upscope $end $upscope $end
@ -57,173 +58,174 @@ $enddefinitions $end
#0 #0
1# 1#
b00000000000000000000000000000000 + b00000000000000000000000000000000 $
b0000000000000000000000000000000000000000000000000000000011111111 3 b00 %
b00 C b0000 &
b0000 K b00 '
b00 S b00 (
b00 [ b0000 )
b0000 c b0000 *
b0000 k b00 +
b00 s b00 ,
b00 t b00 -
b00 %! b00 .
b00 -! r0 /
r0 5! r0 1
r0 E! r0 3
r0 G! b0000000000000000000000000000000000000000000000000000000011111111 5
b00000000000000000000000000000000 e! b00000000000000000000000000000000 7
b00000000000000000000000000000000 m! b00000000000000000000000000000000 8
b000 u! b000 9
b000000 }! b000000 :
b00000000000000000000000000000000 '" b00000000000000000000000000000000 ;
b00000000000000000000000000000000 /" b00000000000000000000000000000000 <
07" 0=
0?" 0>
0@" 0?
0O" 0@
0W" 0A
0_" 0B
0g" 0C
b00000000 o" b00000000 D
b00000000 p" b00000000 E
b00000000 q" b00000000 F
b00000000000000000000000000000010 )# 0G
b00000000000000000000000000000011 1# b00000000000000000000000000000010 H
b00000000000000000000000000000011 I
#10 #10
b00000000000000000000000000000001 + b00000000000000000000000000000001 $
b0000000000000000000000000000000100000000000000000000000011111110 3 b11 %
b11 C b1111 &
b1111 K b11 '
b11 S b11 (
b11 [ b1111 )
b1111 c b1111 *
b1111 k b11 +
b11 s b11 ,
b11 t b11 -
b11 %! b11 .
b11 -! r0.1 /
r0.1 5! r0.2 1
r0.2 E! r0.3 3
r0.3 G! b0000000000000000000000000000000100000000000000000000000011111110 5
b00000000000000000000000000000001 e! b00000000000000000000000000000001 7
b00000000000000000000000000000010 m! b00000000000000000000000000000010 8
b111 u! b111 9
b00000000000000000000000000000101 '" b00000000000000000000000000000101 ;
b00000000000000000000000000000101 /" b00000000000000000000000000000101 <
17" 1=
#15 #15
07" 0=
#20 #20
b00000000000000000000000000000010 + b00000000000000000000000000000010 $
b0000000000000000000000000000001000000000000000000000000011111101 3 b00 %
b00 C b0000 &
b0000 K b00 '
b00 S b00 (
b00 [ b0000 )
b0000 c b0000 *
b0000 k b00 +
b00 s b00 ,
b00 t b00 -
b00 %! b00 .
b00 -! r0.2 /
r0.2 5! r0.4 1
r0.4 E! r0.6 3
r0.6 G! b0000000000000000000000000000001000000000000000000000000011111101 5
b00000000000000000000000000000010 e! b00000000000000000000000000000010 7
b00000000000000000000000000000100 m! b00000000000000000000000000000100 8
b110 u! b110 9
b111111 }! b111111 :
17" 1=
#25 #25
07" 0=
#30 #30
b00000000000000000000000000000011 + b00000000000000000000000000000011 $
b0000000000000000000000000000001100000000000000000000000011111100 3 b11 %
b11 C b1111 &
b1111 K b11 '
b11 S b11 (
b11 [ b1111 )
b1111 c b1111 *
b1111 k b11 +
b11 s b11 ,
b11 t b11 -
b11 %! b11 .
b11 -! r0.3 /
r0.3 5! r0.6000000000000001 1
r0.6000000000000001 E! r0.8999999999999999 3
r0.8999999999999999 G! b0000000000000000000000000000001100000000000000000000000011111100 5
b00000000000000000000000000000011 e! b00000000000000000000000000000011 7
b00000000000000000000000000000110 m! b00000000000000000000000000000110 8
b101 u! b101 9
b110110 }! b110110 :
17" 1=
#35 #35
07" 0=
#40 #40
b00000000000000000000000000000100 + b00000000000000000000000000000100 $
b0000000000000000000000000000010000000000000000000000000011111011 3 b00 %
b00 C b0000 &
b0000 K b00 '
b00 S b00 (
b00 [ b0000 )
b0000 c b0000 *
b0000 k b00 +
b00 s b00 ,
b00 t b00 -
b00 %! b00 .
b00 -! r0.4 /
r0.4 5! r0.8 1
r0.8 E! r1.2 3
r1.2 G! b0000000000000000000000000000010000000000000000000000000011111011 5
b00000000000000000000000000000100 e! b00000000000000000000000000000100 7
b00000000000000000000000000001000 m! b00000000000000000000000000001000 8
b100 u! b100 9
b101101 }! b101101 :
17" 1=
#45 #45
07" 0=
#50 #50
b00000000000000000000000000000101 + b00000000000000000000000000000101 $
b0000000000000000000000000000010100000000000000000000000011111010 3 b11 %
b11 C b1111 &
b1111 K b11 '
b11 S b11 (
b11 [ b1111 )
b1111 c b1111 *
b1111 k b11 +
b11 s b11 ,
b11 t b11 -
b11 %! b11 .
b11 -! r0.5 /
r0.5 5! r1 1
r1 E! r1.5 3
r1.5 G! b0000000000000000000000000000010100000000000000000000000011111010 5
b00000000000000000000000000000101 e! b00000000000000000000000000000101 7
b00000000000000000000000000001010 m! b00000000000000000000000000001010 8
b011 u! b011 9
b100100 }! b100100 :
17" 1=
#55 #55
07" 0=
#60 #60
b00000000000000000000000000000110 + b00000000000000000000000000000110 $
b0000000000000000000000000000011000000000000000000000000011111001 3 b00 %
b00 C b0000 &
b0000 K b00 '
b00 S b00 (
b00 [ b0000 )
b0000 c b0000 *
b0000 k b00 +
b00 s b00 ,
b00 t b00 -
b00 %! b00 .
b00 -! r0.6 /
r0.6 5! r1.2 1
r1.2 E! r1.8 3
r1.8 G! b0000000000000000000000000000011000000000000000000000000011111001 5
b00000000000000000000000000000110 e! b00000000000000000000000000000110 7
b00000000000000000000000000001100 m! b00000000000000000000000000001100 8
b010 u! b010 9
b011011 }! b011011 :
17" 1=

View File

@ -1,5 +1,5 @@
$date $date
Sun Apr 19 04:15:31 2020 Mon Nov 16 17:51:08 2020
$end $end
$version $version
@ -45,193 +45,197 @@ $var logic 6 : v_enumb2_str $end
$var logic 8 ; unpacked_array(-2) $end $var logic 8 ; unpacked_array(-2) $end
$var logic 8 < unpacked_array(-1) $end $var logic 8 < unpacked_array(-1) $end
$var logic 8 = unpacked_array(0) $end $var logic 8 = unpacked_array(0) $end
$var bit 1 > LONGSTART_a_very_long_name_which_will_get_hashed_a_very_long_name_which_will_get_hashed_a_very_long_name_which_will_get_hashed_a_very_long_name_which_will_get_hashed_LONGEND $end
$scope module unnamedblk1 $end $scope module unnamedblk1 $end
$var integer 32 > b $end $var integer 32 ? b $end
$scope module unnamedblk2 $end $scope module unnamedblk2 $end
$var integer 32 ? a $end $var integer 32 @ a $end
$upscope $end $upscope $end
$upscope $end $upscope $end
$scope module p2 $end $scope module p2 $end
$var parameter 32 @ PARAM $end $var parameter 32 A PARAM $end
$upscope $end $upscope $end
$scope module p3 $end $scope module p3 $end
$var parameter 32 A PARAM $end $var parameter 32 B PARAM $end
$upscope $end $upscope $end
$upscope $end $upscope $end
$scope module $unit $end $scope module $unit $end
$var bit 1 B global_bit $end $var bit 1 C global_bit $end
$upscope $end $upscope $end
$upscope $end $upscope $end
$enddefinitions $end $enddefinitions $end
#0
$dumpvars $dumpvars
0! 1C
b00000000000000000000000000000000 " b00000000000000000000000000000011 B
b00 # b00000000000000000000000000000010 A
b0000 $ b00000000000000000000000000000000 @
b00 %
b00 &
b0000 '
b0000 (
0)
0*
0+
0,
0-
0.
b00 /
b00 0
b00 1
b00 2
r0 3
r0 4
r0 5
b0000000000000000000000000000000000000000000000000000000011111111 6
b00000000000000000000000000000000 7
b00000000000000000000000000000000 8
b000 9
b000000 :
b00000000 ;
b00000000 <
b00000000 =
b00000000000000000000000000000000 >
b00000000000000000000000000000000 ? b00000000000000000000000000000000 ?
b00000000000000000000000000000010 @ 0>
b00000000000000000000000000000011 A b00000000 =
1B b00000000 <
b00000000 ;
b000000 :
b000 9
b00000000000000000000000000000000 8
b00000000000000000000000000000000 7
b0000000000000000000000000000000000000000000000000000000011111111 6
r0 5
r0 4
r0 3
b00 2
b00 1
b00 0
b00 /
0.
0-
0,
0+
0*
0)
b0000 (
b0000 '
b00 &
b00 %
b0000 $
b00 #
b00000000000000000000000000000000 "
0!
$end
#10 #10
b00000000000000000000000000000101 ?
b00000000000000000000000000000101 >
b111 9
b00000000000000000000000000000010 8
b00000000000000000000000000000001 7
b0000000000000000000000000000000100000000000000000000000011111110 6
r0.3 5
r0.2 4
r0.1 3
b11 2
b11 1
b11 0
b11 /
b1111 (
b1111 '
b11 &
b11 %
b1111 $
b11 #
b00000000000000000000000000000001 "
1! 1!
b00000000000000000000000000000001 "
b11 #
b1111 $
b11 %
b11 &
b1111 '
b1111 (
b11 /
b11 0
b11 1
b11 2
r0.1 3
r0.2 4
r0.3 5
b0000000000000000000000000000000100000000000000000000000011111110 6
b00000000000000000000000000000001 7
b00000000000000000000000000000010 8
b111 9
b00000000000000000000000000000101 ?
b00000000000000000000000000000101 @
#15 #15
0! 0!
#20 #20
1! 1!
b00000000000000000000000000000010 "
b00 #
b0000 $
b00 %
b00 &
b0000 '
b0000 (
b00 /
b00 0
b00 1
b00 2
r0.2 3
r0.4 4
r0.6 5
b0000000000000000000000000000001000000000000000000000000011111101 6
b00000000000000000000000000000010 7
b00000000000000000000000000000100 8
b110 9 b110 9
b00000000000000000000000000000100 8
b00000000000000000000000000000010 7
b0000000000000000000000000000001000000000000000000000000011111101 6
r0.6 5
r0.4 4
r0.2 3
b00 2
b00 1
b00 0
b00 /
b0000 (
b0000 '
b00 &
b00 %
b0000 $
b00 #
b00000000000000000000000000000010 "
b111111 : b111111 :
#25 #25
0! 0!
#30 #30
1! 1!
b110110 : b110110 :
b101 9
b00000000000000000000000000000110 8
b00000000000000000000000000000011 7
b0000000000000000000000000000001100000000000000000000000011111100 6
r0.8999999999999999 5
r0.6000000000000001 4
r0.3 3
b11 2
b11 1
b11 0
b11 /
b1111 (
b1111 '
b11 &
b11 %
b1111 $
b11 #
b00000000000000000000000000000011 " b00000000000000000000000000000011 "
b11 #
b1111 $
b11 %
b11 &
b1111 '
b1111 (
b11 /
b11 0
b11 1
b11 2
r0.3 3
r0.6000000000000001 4
r0.8999999999999999 5
b0000000000000000000000000000001100000000000000000000000011111100 6
b00000000000000000000000000000011 7
b00000000000000000000000000000110 8
b101 9
#35 #35
0! 0!
#40 #40
1! 1!
b00000000000000000000000000000100 "
b00 #
b0000 $
b00 %
b00 &
b0000 '
b0000 (
b00 /
b00 0
b00 1
b00 2
r0.4 3
r0.8 4
r1.2 5
b0000000000000000000000000000010000000000000000000000000011111011 6
b00000000000000000000000000000100 7
b00000000000000000000000000001000 8
b100 9 b100 9
b00000000000000000000000000001000 8
b00000000000000000000000000000100 7
b0000000000000000000000000000010000000000000000000000000011111011 6
r1.2 5
r0.8 4
r0.4 3
b00 2
b00 1
b00 0
b00 /
b0000 (
b0000 '
b00 &
b00 %
b0000 $
b00 #
b00000000000000000000000000000100 "
b101101 : b101101 :
#45 #45
0! 0!
#50 #50
1! 1!
b100100 : b100100 :
b011 9
b00000000000000000000000000001010 8
b00000000000000000000000000000101 7
b0000000000000000000000000000010100000000000000000000000011111010 6
r1.5 5
r1 4
r0.5 3
b11 2
b11 1
b11 0
b11 /
b1111 (
b1111 '
b11 &
b11 %
b1111 $
b11 #
b00000000000000000000000000000101 " b00000000000000000000000000000101 "
b11 #
b1111 $
b11 %
b11 &
b1111 '
b1111 (
b11 /
b11 0
b11 1
b11 2
r0.5 3
r1 4
r1.5 5
b0000000000000000000000000000010100000000000000000000000011111010 6
b00000000000000000000000000000101 7
b00000000000000000000000000001010 8
b011 9
#55 #55
0! 0!
#60 #60
1! 1!
b00000000000000000000000000000110 "
b00 #
b0000 $
b00 %
b00 &
b0000 '
b0000 (
b00 /
b00 0
b00 1
b00 2
r0.6 3
r1.2 4
r1.8 5
b0000000000000000000000000000011000000000000000000000000011111001 6
b00000000000000000000000000000110 7
b00000000000000000000000000001100 8
b010 9 b010 9
b00000000000000000000000000001100 8
b00000000000000000000000000000110 7
b0000000000000000000000000000011000000000000000000000000011111001 6
r1.8 5
r1.2 4
r0.6 3
b00 2
b00 1
b00 0
b00 /
b0000 (
b0000 '
b00 &
b00 %
b0000 $
b00 #
b00000000000000000000000000000110 "
b011011 : b011011 :

View File

@ -1,90 +1,91 @@
$version Generated by VerilatedVcd $end $version Generated by VerilatedVcd $end
$date Tue Jan 21 18:55:13 2020 $date Mon Nov 16 17:51:09 2020
$end $end
$timescale 1ps $end $timescale 1ps $end
$scope module top $end $scope module top $end
$var wire 1 9# clk $end $var wire 1 I clk $end
$scope module $unit $end $scope module $unit $end
$var wire 1 # global_bit $end $var wire 1 # global_bit $end
$upscope $end $upscope $end
$scope module t $end $scope module t $end
$var wire 1 9# clk $end $var wire 1 S LONGSTART_a_very_long_name_which_will_get_hashed_a_very_long_name_which_will_get_hashed_a_very_long_name_which_will_get_hashed_a_very_long_name_which_will_get_hashed_LONGEND $end
$var wire 32 + cyc [31:0] $end $var wire 1 I clk $end
$var wire 8 r# unpacked_array(-1) [7:0] $end $var wire 32 $ cyc [31:0] $end
$var wire 8 q# unpacked_array(-2) [7:0] $end $var wire 8 Q unpacked_array(-1) [7:0] $end
$var wire 8 s# unpacked_array(0) [7:0] $end $var wire 8 P unpacked_array(-2) [7:0] $end
$var real 64 ?" v_arr_real(0) $end $var wire 8 R unpacked_array(0) [7:0] $end
$var real 64 A" v_arr_real(1) $end $var real 64 < v_arr_real(0) $end
$var wire 2 %! v_arrp [2:1] $end $var real 64 > v_arr_real(1) $end
$var wire 2 -! v_arrp_arrp(3) [2:1] $end $var wire 2 - v_arrp [2:1] $end
$var wire 2 5! v_arrp_arrp(4) [2:1] $end $var wire 2 . v_arrp_arrp(3) [2:1] $end
$var wire 1 A# v_arru(1) $end $var wire 2 / v_arrp_arrp(4) [2:1] $end
$var wire 1 B# v_arru(2) $end $var wire 1 J v_arru(1) $end
$var wire 2 ]! v_arru_arrp(3) [2:1] $end $var wire 1 K v_arru(2) $end
$var wire 2 ^! v_arru_arrp(4) [2:1] $end $var wire 2 4 v_arru_arrp(3) [2:1] $end
$var wire 1 Q# v_arru_arru(3)(1) $end $var wire 2 5 v_arru_arrp(4) [2:1] $end
$var wire 1 Y# v_arru_arru(3)(2) $end $var wire 1 L v_arru_arru(3)(1) $end
$var wire 1 a# v_arru_arru(4)(1) $end $var wire 1 M v_arru_arru(3)(2) $end
$var wire 1 i# v_arru_arru(4)(2) $end $var wire 1 N v_arru_arru(4)(1) $end
$var wire 3 o" v_enumb [2:0] $end $var wire 1 O v_arru_arru(4)(2) $end
$var wire 32 _" v_enumed [31:0] $end $var wire 3 D v_enumb [2:0] $end
$var wire 32 g" v_enumed2 [31:0] $end $var wire 32 B v_enumed [31:0] $end
$var real 64 /" v_real $end $var wire 32 C v_enumed2 [31:0] $end
$var real 64 : v_real $end
$scope module unnamedblk1 $end $scope module unnamedblk1 $end
$var wire 32 )# b [31:0] $end $var wire 32 G b [31:0] $end
$scope module unnamedblk2 $end $scope module unnamedblk2 $end
$var wire 32 1# a [31:0] $end $var wire 32 H a [31:0] $end
$upscope $end $upscope $end
$upscope $end $upscope $end
$scope module v_arrp_strp(3) $end $scope module v_arrp_strp(3) $end
$var wire 1 E! b0 $end $var wire 1 1 b0 $end
$var wire 1 =! b1 $end $var wire 1 0 b1 $end
$upscope $end $upscope $end
$scope module v_arrp_strp(4) $end $scope module v_arrp_strp(4) $end
$var wire 1 U! b0 $end $var wire 1 3 b0 $end
$var wire 1 M! b1 $end $var wire 1 2 b1 $end
$upscope $end $upscope $end
$scope module v_arru_strp(3) $end $scope module v_arru_strp(3) $end
$var wire 1 u! b0 $end $var wire 1 7 b0 $end
$var wire 1 m! b1 $end $var wire 1 6 b1 $end
$upscope $end $upscope $end
$scope module v_arru_strp(4) $end $scope module v_arru_strp(4) $end
$var wire 1 '" b0 $end $var wire 1 9 b0 $end
$var wire 1 }! b1 $end $var wire 1 8 b1 $end
$upscope $end $upscope $end
$scope module v_enumb2_str $end $scope module v_enumb2_str $end
$var wire 3 w" a [2:0] $end $var wire 3 E a [2:0] $end
$var wire 3 !# b [2:0] $end $var wire 3 F b [2:0] $end
$upscope $end $upscope $end
$scope module v_str32x2(0) $end $scope module v_str32x2(0) $end
$var wire 32 3 data [31:0] $end $var wire 32 @ data [31:0] $end
$upscope $end $upscope $end
$scope module v_str32x2(1) $end $scope module v_str32x2(1) $end
$var wire 32 ; data [31:0] $end $var wire 32 A data [31:0] $end
$upscope $end $upscope $end
$scope module v_strp $end $scope module v_strp $end
$var wire 1 K b0 $end $var wire 1 & b0 $end
$var wire 1 C b1 $end $var wire 1 % b1 $end
$upscope $end $upscope $end
$scope module v_strp_strp $end $scope module v_strp_strp $end
$scope module x0 $end $scope module x0 $end
$var wire 1 k b0 $end $var wire 1 * b0 $end
$var wire 1 c b1 $end $var wire 1 ) b1 $end
$upscope $end $upscope $end
$scope module x1 $end $scope module x1 $end
$var wire 1 [ b0 $end $var wire 1 ( b0 $end
$var wire 1 S b1 $end $var wire 1 ' b1 $end
$upscope $end $upscope $end
$upscope $end $upscope $end
$scope module v_unip_strp $end $scope module v_unip_strp $end
$scope module x0 $end $scope module x0 $end
$var wire 1 { b0 $end $var wire 1 , b0 $end
$var wire 1 s b1 $end $var wire 1 + b1 $end
$upscope $end $upscope $end
$scope module x1 $end $scope module x1 $end
$var wire 1 { b0 $end $var wire 1 , b0 $end
$var wire 1 s b1 $end $var wire 1 + b1 $end
$upscope $end $upscope $end
$upscope $end $upscope $end
$upscope $end $upscope $end
@ -94,261 +95,262 @@ $enddefinitions $end
#0 #0
1# 1#
b00000000000000000000000000000000 + b00000000000000000000000000000000 $
b00000000000000000000000011111111 3 0%
b00000000000000000000000000000000 ; 0&
0C 0'
0(
0)
0*
0+
0,
b00 -
b00 .
b00 /
00
01
02
03
b00 4
b00 5
06
07
08
09
r0 :
r0 <
r0 >
b00000000000000000000000011111111 @
b00000000000000000000000000000000 A
b00000000000000000000000000000000 B
b00000000000000000000000000000000 C
b000 D
b000 E
b000 F
b00000000000000000000000000000000 G
b00000000000000000000000000000000 H
0I
0J
0K 0K
0L
0M
0N
0O
b00000000 P
b00000000 Q
b00000000 R
0S 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"
b000 w"
b000 !#
b00000000000000000000000000000000 )#
b00000000000000000000000000000000 1#
09#
0A#
0B#
0Q#
0Y#
0a#
0i#
b00000000 q#
b00000000 r#
b00000000 s#
#10 #10
b00000000000000000000000000000001 + b00000000000000000000000000000001 $
b00000000000000000000000011111110 3 1%
b00000000000000000000000000000001 ; 1&
1C 1'
1K 1(
1S 1)
1[ 1*
1c 1+
1k 1,
1s b11 -
1{ b11 .
b11 %! b11 /
b11 -! 10
b11 5! 11
1=! 12
1E! 13
1M! b11 4
1U! b11 5
b11 ]! 16
b11 ^! 17
1m! 18
1u! 19
1}! r0.1 :
1'" r0.2 <
r0.1 /" r0.3 >
r0.2 ?" b00000000000000000000000011111110 @
r0.3 A" b00000000000000000000000000000001 A
b00000000000000000000000000000001 _" b00000000000000000000000000000001 B
b00000000000000000000000000000010 g" b00000000000000000000000000000010 C
b111 o" b111 D
b00000000000000000000000000000101 )# b00000000000000000000000000000101 G
b00000000000000000000000000000101 1# b00000000000000000000000000000101 H
19# 1I
#15 #15
09# 0I
#20 #20
b00000000000000000000000000000010 + b00000000000000000000000000000010 $
b00000000000000000000000011111101 3 0%
b00000000000000000000000000000010 ; 0&
0C 0'
0K 0(
0S 0)
0[ 0*
0c 0+
0k 0,
0s b00 -
0{ b00 .
b00 %! b00 /
b00 -! 00
b00 5! 01
0=! 02
0E! 03
0M! b00 4
0U! b00 5
b00 ]! 06
b00 ^! 07
0m! 08
0u! 09
0}! r0.2 :
0'" r0.4 <
r0.2 /" r0.6 >
r0.4 ?" b00000000000000000000000011111101 @
r0.6 A" b00000000000000000000000000000010 A
b00000000000000000000000000000010 _" b00000000000000000000000000000010 B
b00000000000000000000000000000100 g" b00000000000000000000000000000100 C
b110 o" b110 D
b111 w" b111 E
b111 !# b111 F
19# 1I
#25 #25
09# 0I
#30 #30
b00000000000000000000000000000011 + b00000000000000000000000000000011 $
b00000000000000000000000011111100 3 1%
b00000000000000000000000000000011 ; 1&
1C 1'
1K 1(
1S 1)
1[ 1*
1c 1+
1k 1,
1s b11 -
1{ b11 .
b11 %! b11 /
b11 -! 10
b11 5! 11
1=! 12
1E! 13
1M! b11 4
1U! b11 5
b11 ]! 16
b11 ^! 17
1m! 18
1u! 19
1}! r0.3 :
1'" r0.6000000000000001 <
r0.3 /" r0.8999999999999999 >
r0.6000000000000001 ?" b00000000000000000000000011111100 @
r0.8999999999999999 A" b00000000000000000000000000000011 A
b00000000000000000000000000000011 _" b00000000000000000000000000000011 B
b00000000000000000000000000000110 g" b00000000000000000000000000000110 C
b101 o" b101 D
b110 w" b110 E
b110 !# b110 F
19# 1I
#35 #35
09# 0I
#40 #40
b00000000000000000000000000000100 + b00000000000000000000000000000100 $
b00000000000000000000000011111011 3 0%
b00000000000000000000000000000100 ; 0&
0C 0'
0K 0(
0S 0)
0[ 0*
0c 0+
0k 0,
0s b00 -
0{ b00 .
b00 %! b00 /
b00 -! 00
b00 5! 01
0=! 02
0E! 03
0M! b00 4
0U! b00 5
b00 ]! 06
b00 ^! 07
0m! 08
0u! 09
0}! r0.4 :
0'" r0.8 <
r0.4 /" r1.2 >
r0.8 ?" b00000000000000000000000011111011 @
r1.2 A" b00000000000000000000000000000100 A
b00000000000000000000000000000100 _" b00000000000000000000000000000100 B
b00000000000000000000000000001000 g" b00000000000000000000000000001000 C
b100 o" b100 D
b101 w" b101 E
b101 !# b101 F
19# 1I
#45 #45
09# 0I
#50 #50
b00000000000000000000000000000101 + b00000000000000000000000000000101 $
b00000000000000000000000011111010 3 1%
b00000000000000000000000000000101 ; 1&
1C 1'
1K 1(
1S 1)
1[ 1*
1c 1+
1k 1,
1s b11 -
1{ b11 .
b11 %! b11 /
b11 -! 10
b11 5! 11
1=! 12
1E! 13
1M! b11 4
1U! b11 5
b11 ]! 16
b11 ^! 17
1m! 18
1u! 19
1}! r0.5 :
1'" r1 <
r0.5 /" r1.5 >
r1 ?" b00000000000000000000000011111010 @
r1.5 A" b00000000000000000000000000000101 A
b00000000000000000000000000000101 _" b00000000000000000000000000000101 B
b00000000000000000000000000001010 g" b00000000000000000000000000001010 C
b011 o" b011 D
b100 w" b100 E
b100 !# b100 F
19# 1I
#55 #55
09# 0I
#60 #60
b00000000000000000000000000000110 + b00000000000000000000000000000110 $
b00000000000000000000000011111001 3 0%
b00000000000000000000000000000110 ; 0&
0C 0'
0K 0(
0S 0)
0[ 0*
0c 0+
0k 0,
0s b00 -
0{ b00 .
b00 %! b00 /
b00 -! 00
b00 5! 01
0=! 02
0E! 03
0M! b00 4
0U! b00 5
b00 ]! 06
b00 ^! 07
0m! 08
0u! 09
0}! r0.6 :
0'" r1.2 <
r0.6 /" r1.8 >
r1.2 ?" b00000000000000000000000011111001 @
r1.8 A" b00000000000000000000000000000110 A
b00000000000000000000000000000110 _" b00000000000000000000000000000110 B
b00000000000000000000000000001100 g" b00000000000000000000000000001100 C
b010 o" b010 D
b011 w" b011 E
b011 !# b011 F
19# 1I

View File

@ -1,5 +1,5 @@
$date $date
Sun Apr 19 04:15:33 2020 Mon Nov 16 17:51:13 2020
$end $end
$version $version
@ -90,275 +90,279 @@ $upscope $end
$var logic 8 H unpacked_array(-2) $end $var logic 8 H unpacked_array(-2) $end
$var logic 8 I unpacked_array(-1) $end $var logic 8 I unpacked_array(-1) $end
$var logic 8 J unpacked_array(0) $end $var logic 8 J unpacked_array(0) $end
$var bit 1 K LONGSTART_a_very_long_name_which_will_get_hashed_a_very_long_name_which_will_get_hashed_a_very_long_name_which_will_get_hashed_a_very_long_name_which_will_get_hashed_LONGEND $end
$scope module unnamedblk1 $end $scope module unnamedblk1 $end
$var integer 32 K b $end $var integer 32 L b $end
$scope module unnamedblk2 $end $scope module unnamedblk2 $end
$var integer 32 L a $end $var integer 32 M a $end
$upscope $end $upscope $end
$upscope $end $upscope $end
$upscope $end $upscope $end
$scope module $unit $end $scope module $unit $end
$var bit 1 M global_bit $end $var bit 1 N global_bit $end
$upscope $end $upscope $end
$upscope $end $upscope $end
$enddefinitions $end $enddefinitions $end
#0
$dumpvars $dumpvars
0! 1N
b00000000000000000000000000000000 " b00000000000000000000000000000000 M
0#
0$
0%
0&
0'
0(
0)
0*
b00 +
b00 ,
b00 -
0.
0/
00
01
02
03
04
05
06
07
b00 8
b00 9
0:
0;
0<
0=
r0 >
r0 ?
r0 @
b00000000000000000000000011111111 A
b00000000000000000000000000000000 B
b00000000000000000000000000000000 C
b00000000000000000000000000000000 D
b000 E
b000 F
b000 G
b00000000 H
b00000000 I
b00000000 J
b00000000000000000000000000000000 K
b00000000000000000000000000000000 L b00000000000000000000000000000000 L
1M 0K
b00000000 J
b00000000 I
b00000000 H
b000 G
b000 F
b000 E
b00000000000000000000000000000000 D
b00000000000000000000000000000000 C
b00000000000000000000000000000000 B
b00000000000000000000000011111111 A
r0 @
r0 ?
r0 >
0=
0<
0;
0:
b00 9
b00 8
07
06
05
04
03
02
01
00
0/
0.
b00 -
b00 ,
b00 +
0*
0)
0(
0'
0&
0%
0$
0#
b00000000000000000000000000000000 "
0!
$end
#10 #10
b00000000000000000000000000000101 L
b00000000000000000000000000000101 K
b111 E
b00000000000000000000000000000010 D
b00000000000000000000000000000001 C
b00000000000000000000000000000001 B
b00000000000000000000000011111110 A
r0.3 @
r0.2 ?
r0.1 >
1=
1<
1;
1:
b11 9
b11 8
11
10
1/
1.
b11 -
b11 ,
b11 +
1*
1)
1(
1'
1&
1%
1$
1#
b00000000000000000000000000000001 "
1! 1!
b00000000000000000000000000000001 "
1#
1$
1%
1&
1'
1(
1)
1*
b11 +
b11 ,
b11 -
1.
1/
10
11
b11 8
b11 9
1:
1;
1<
1=
r0.1 >
r0.2 ?
r0.3 @
b00000000000000000000000011111110 A
b00000000000000000000000000000001 B
b00000000000000000000000000000001 C
b00000000000000000000000000000010 D
b111 E
b00000000000000000000000000000101 L
b00000000000000000000000000000101 M
#15 #15
0! 0!
#20 #20
1! 1!
b00000000000000000000000000000010 "
0#
0$
0%
0&
0'
0(
0)
0*
b00 +
b00 ,
b00 -
0.
0/
00
01
b00 8
b00 9
0:
0;
0<
0=
r0.2 >
r0.4 ?
r0.6 @
b00000000000000000000000011111101 A
b00000000000000000000000000000010 B
b00000000000000000000000000000010 C
b00000000000000000000000000000100 D
b110 E b110 E
b111 G b00000000000000000000000000000100 D
b00000000000000000000000000000010 C
b00000000000000000000000000000010 B
b00000000000000000000000011111101 A
r0.6 @
r0.4 ?
r0.2 >
0=
0<
0;
0:
b00 9
b00 8
01
00
0/
0.
b00 -
b00 ,
b00 +
0*
0)
0(
0'
0&
0%
0$
0#
b00000000000000000000000000000010 "
b111 F b111 F
b111 G
#25 #25
0! 0!
#30 #30
1! 1!
b110 F
b110 G b110 G
b101 E b110 F
b00000000000000000000000000000110 D
b00000000000000000000000000000011 C
b00000000000000000000000000000011 B
b00000000000000000000000011111100 A
r0.8999999999999999 @
r0.6000000000000001 ?
r0.3 >
1=
1<
1;
1:
b11 9
b11 8
11
10
1/
1.
b11 -
b11 ,
b11 +
1*
1)
1(
1'
1&
1%
1$
1#
b00000000000000000000000000000011 " b00000000000000000000000000000011 "
1#
1$
1%
1&
1'
1(
1)
1*
b11 +
b11 ,
b11 -
1.
1/
10
11
b11 8
b11 9
1:
1;
1<
1=
r0.3 >
r0.6000000000000001 ?
r0.8999999999999999 @
b00000000000000000000000011111100 A
b00000000000000000000000000000011 B
b00000000000000000000000000000011 C
b00000000000000000000000000000110 D
b101 E
#35 #35
0! 0!
#40 #40
1! 1!
b00000000000000000000000000000100 "
0#
0$
0%
0&
0'
0(
0)
0*
b00 +
b00 ,
b00 -
0.
0/
00
01
b00 8
b00 9
0:
0;
0<
0=
r0.4 >
r0.8 ?
r1.2 @
b00000000000000000000000011111011 A
b00000000000000000000000000000100 B
b00000000000000000000000000000100 C
b00000000000000000000000000001000 D
b100 E b100 E
b101 G b00000000000000000000000000001000 D
b00000000000000000000000000000100 C
b00000000000000000000000000000100 B
b00000000000000000000000011111011 A
r1.2 @
r0.8 ?
r0.4 >
0=
0<
0;
0:
b00 9
b00 8
01
00
0/
0.
b00 -
b00 ,
b00 +
0*
0)
0(
0'
0&
0%
0$
0#
b00000000000000000000000000000100 "
b101 F b101 F
b101 G
#45 #45
0! 0!
#50 #50
1! 1!
b100 F
b100 G b100 G
b011 E b100 F
b00000000000000000000000000001010 D
b00000000000000000000000000000101 C
b00000000000000000000000000000101 B
b00000000000000000000000011111010 A
r1.5 @
r1 ?
r0.5 >
1=
1<
1;
1:
b11 9
b11 8
11
10
1/
1.
b11 -
b11 ,
b11 +
1*
1)
1(
1'
1&
1%
1$
1#
b00000000000000000000000000000101 " b00000000000000000000000000000101 "
1#
1$
1%
1&
1'
1(
1)
1*
b11 +
b11 ,
b11 -
1.
1/
10
11
b11 8
b11 9
1:
1;
1<
1=
r0.5 >
r1 ?
r1.5 @
b00000000000000000000000011111010 A
b00000000000000000000000000000101 B
b00000000000000000000000000000101 C
b00000000000000000000000000001010 D
b011 E
#55 #55
0! 0!
#60 #60
1! 1!
b00000000000000000000000000000110 "
0#
0$
0%
0&
0'
0(
0)
0*
b00 +
b00 ,
b00 -
0.
0/
00
01
b00 8
b00 9
0:
0;
0<
0=
r0.6 >
r1.2 ?
r1.8 @
b00000000000000000000000011111001 A
b00000000000000000000000000000110 B
b00000000000000000000000000000110 C
b00000000000000000000000000001100 D
b010 E b010 E
b011 G b00000000000000000000000000001100 D
b00000000000000000000000000000110 C
b00000000000000000000000000000110 B
b00000000000000000000000011111001 A
r1.8 @
r1.2 ?
r0.6 >
0=
0<
0;
0:
b00 9
b00 8
01
00
0/
0.
b00 -
b00 ,
b00 +
0*
0)
0(
0'
0&
0%
0$
0#
b00000000000000000000000000000110 "
b011 F b011 F
b011 G