mirror of
https://github.com/verilator/verilator.git
synced 2025-04-06 04:32:39 +00:00
This patch adds some abstract enums to pass to the trace decl* APIs, so the VCD/FST specific code can be kept in verilated_{vcd,fst}_*.cc, and removed from V3Emit*. It also reworks the generation of the trace init functions (those that call 'decl*' for the signals) such that the scope hierarchy is traversed precisely once during initialization, which simplifies the FST writer. This later change also has the side effect of fixing tracing of nested interfaces when traced via an interface reference - see the change in the expected t_interface_ref_trace - which previously were missed.
369 lines
5.2 KiB
Plaintext
369 lines
5.2 KiB
Plaintext
$date
|
|
Tue Oct 24 11:01:27 2023
|
|
|
|
$end
|
|
$version
|
|
fstWriter
|
|
$end
|
|
$timescale
|
|
1ps
|
|
$end
|
|
$scope module top $end
|
|
$scope module $unit $end
|
|
$var bit 1 ! global_bit $end
|
|
$upscope $end
|
|
$var wire 1 " clk $end
|
|
$scope module t $end
|
|
$var wire 1 " clk $end
|
|
$var integer 32 # cyc [31:0] $end
|
|
$scope struct v_strp $end
|
|
$var bit 1 $ b1 $end
|
|
$var bit 1 % b0 $end
|
|
$upscope $end
|
|
$scope struct v_strp_strp $end
|
|
$scope struct x1 $end
|
|
$var bit 1 & b1 $end
|
|
$var bit 1 ' b0 $end
|
|
$upscope $end
|
|
$scope struct x0 $end
|
|
$var bit 1 ( b1 $end
|
|
$var bit 1 ) b0 $end
|
|
$upscope $end
|
|
$upscope $end
|
|
$scope union v_unip_strp $end
|
|
$scope struct x1 $end
|
|
$var bit 1 * b1 $end
|
|
$var bit 1 + b0 $end
|
|
$upscope $end
|
|
$scope struct x0 $end
|
|
$var bit 1 * b1 $end
|
|
$var bit 1 + b0 $end
|
|
$upscope $end
|
|
$upscope $end
|
|
$var bit 2 , v_arrp [2:1] $end
|
|
$var bit 2 - v_arrp_arrp[3] [2:1] $end
|
|
$var bit 2 . v_arrp_arrp[4] [2:1] $end
|
|
$scope struct v_arrp_strp[3] $end
|
|
$var bit 1 / b1 $end
|
|
$var bit 1 0 b0 $end
|
|
$upscope $end
|
|
$scope struct v_arrp_strp[4] $end
|
|
$var bit 1 1 b1 $end
|
|
$var bit 1 2 b0 $end
|
|
$upscope $end
|
|
$var bit 1 3 v_arru[1] $end
|
|
$var bit 1 4 v_arru[2] $end
|
|
$var bit 1 5 v_arru_arru[3][1] $end
|
|
$var bit 1 6 v_arru_arru[3][2] $end
|
|
$var bit 1 7 v_arru_arru[4][1] $end
|
|
$var bit 1 8 v_arru_arru[4][2] $end
|
|
$var bit 2 9 v_arru_arrp[3] [2:1] $end
|
|
$var bit 2 : v_arru_arrp[4] [2:1] $end
|
|
$scope struct v_arru_strp[3] $end
|
|
$var bit 1 ; b1 $end
|
|
$var bit 1 < b0 $end
|
|
$upscope $end
|
|
$scope struct v_arru_strp[4] $end
|
|
$var bit 1 = b1 $end
|
|
$var bit 1 > b0 $end
|
|
$upscope $end
|
|
$var real 64 ? v_real $end
|
|
$var real 64 @ v_arr_real[0] $end
|
|
$var real 64 A v_arr_real[1] $end
|
|
$scope struct v_str32x2[0] $end
|
|
$var logic 32 B data [31:0] $end
|
|
$upscope $end
|
|
$scope struct v_str32x2[1] $end
|
|
$var logic 32 C data [31:0] $end
|
|
$upscope $end
|
|
$attrbegin misc 07 t.enumed_t 4 ZERO ONE TWO THREE 00000000000000000000000000000000 00000000000000000000000000000001 00000000000000000000000000000010 00000000000000000000000000000011 1 $end
|
|
$attrbegin misc 07 "" 1 $end
|
|
$var int 32 D v_enumed [31:0] $end
|
|
$attrbegin misc 07 "" 1 $end
|
|
$var int 32 E v_enumed2 [31:0] $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 F v_enumb [2:0] $end
|
|
$scope struct v_enumb2_str $end
|
|
$attrbegin misc 07 "" 2 $end
|
|
$var logic 3 G a [2:0] $end
|
|
$attrbegin misc 07 "" 2 $end
|
|
$var logic 3 H b [2:0] $end
|
|
$upscope $end
|
|
$var logic 8 I unpacked_array[-2] [7:0] $end
|
|
$var logic 8 J unpacked_array[-1] [7:0] $end
|
|
$var logic 8 K unpacked_array[0] [7:0] $end
|
|
$var bit 1 L 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
|
|
$var integer 32 M b [31:0] $end
|
|
$scope module unnamedblk2 $end
|
|
$var integer 32 N a [31:0] $end
|
|
$upscope $end
|
|
$upscope $end
|
|
$upscope $end
|
|
$upscope $end
|
|
$enddefinitions $end
|
|
#0
|
|
$dumpvars
|
|
b00000000000000000000000000000000 N
|
|
b00000000000000000000000000000000 M
|
|
0L
|
|
b00000000 K
|
|
b00000000 J
|
|
b00000000 I
|
|
b000 H
|
|
b000 G
|
|
b000 F
|
|
b00000000000000000000000000000000 E
|
|
b00000000000000000000000000000000 D
|
|
b00000000000000000000000000000000 C
|
|
b00000000000000000000000011111111 B
|
|
r0 A
|
|
r0 @
|
|
r0 ?
|
|
0>
|
|
0=
|
|
0<
|
|
0;
|
|
b00 :
|
|
b00 9
|
|
08
|
|
07
|
|
06
|
|
05
|
|
04
|
|
03
|
|
02
|
|
01
|
|
00
|
|
0/
|
|
b00 .
|
|
b00 -
|
|
b00 ,
|
|
0+
|
|
0*
|
|
0)
|
|
0(
|
|
0'
|
|
0&
|
|
0%
|
|
0$
|
|
b00000000000000000000000000000000 #
|
|
0"
|
|
1!
|
|
$end
|
|
#10
|
|
1"
|
|
b00000000000000000000000000000001 #
|
|
1$
|
|
1%
|
|
1&
|
|
1'
|
|
1(
|
|
1)
|
|
1*
|
|
1+
|
|
b11 ,
|
|
b11 -
|
|
b11 .
|
|
1/
|
|
10
|
|
11
|
|
12
|
|
b11 9
|
|
b11 :
|
|
1;
|
|
1<
|
|
1=
|
|
1>
|
|
r0.1 ?
|
|
r0.2 @
|
|
r0.3 A
|
|
b00000000000000000000000011111110 B
|
|
b00000000000000000000000000000001 C
|
|
b00000000000000000000000000000001 D
|
|
b00000000000000000000000000000010 E
|
|
b111 F
|
|
b00000000000000000000000000000101 M
|
|
b00000000000000000000000000000101 N
|
|
#15
|
|
0"
|
|
#20
|
|
1"
|
|
b110 F
|
|
b00000000000000000000000000000100 E
|
|
b00000000000000000000000000000010 D
|
|
b00000000000000000000000000000010 C
|
|
b00000000000000000000000011111101 B
|
|
r0.6 A
|
|
r0.4 @
|
|
r0.2 ?
|
|
0>
|
|
0=
|
|
0<
|
|
0;
|
|
b00 :
|
|
b00 9
|
|
02
|
|
01
|
|
00
|
|
0/
|
|
b00 .
|
|
b00 -
|
|
b00 ,
|
|
0+
|
|
0*
|
|
0)
|
|
0(
|
|
0'
|
|
0&
|
|
0%
|
|
0$
|
|
b00000000000000000000000000000010 #
|
|
b111 G
|
|
b111 H
|
|
#25
|
|
0"
|
|
#30
|
|
1"
|
|
b110 H
|
|
b110 G
|
|
b00000000000000000000000000000011 #
|
|
1$
|
|
1%
|
|
1&
|
|
1'
|
|
1(
|
|
1)
|
|
1*
|
|
1+
|
|
b11 ,
|
|
b11 -
|
|
b11 .
|
|
1/
|
|
10
|
|
11
|
|
12
|
|
b11 9
|
|
b11 :
|
|
1;
|
|
1<
|
|
1=
|
|
1>
|
|
r0.3 ?
|
|
r0.6000000000000001 @
|
|
r0.8999999999999999 A
|
|
b00000000000000000000000011111100 B
|
|
b00000000000000000000000000000011 C
|
|
b00000000000000000000000000000011 D
|
|
b00000000000000000000000000000110 E
|
|
b101 F
|
|
#35
|
|
0"
|
|
#40
|
|
1"
|
|
b100 F
|
|
b00000000000000000000000000001000 E
|
|
b00000000000000000000000000000100 D
|
|
b00000000000000000000000000000100 C
|
|
b00000000000000000000000011111011 B
|
|
r1.2 A
|
|
r0.8 @
|
|
r0.4 ?
|
|
0>
|
|
0=
|
|
0<
|
|
0;
|
|
b00 :
|
|
b00 9
|
|
02
|
|
01
|
|
00
|
|
0/
|
|
b00 .
|
|
b00 -
|
|
b00 ,
|
|
0+
|
|
0*
|
|
0)
|
|
0(
|
|
0'
|
|
0&
|
|
0%
|
|
0$
|
|
b00000000000000000000000000000100 #
|
|
b101 G
|
|
b101 H
|
|
#45
|
|
0"
|
|
#50
|
|
1"
|
|
b100 H
|
|
b100 G
|
|
b00000000000000000000000000000101 #
|
|
1$
|
|
1%
|
|
1&
|
|
1'
|
|
1(
|
|
1)
|
|
1*
|
|
1+
|
|
b11 ,
|
|
b11 -
|
|
b11 .
|
|
1/
|
|
10
|
|
11
|
|
12
|
|
b11 9
|
|
b11 :
|
|
1;
|
|
1<
|
|
1=
|
|
1>
|
|
r0.5 ?
|
|
r1 @
|
|
r1.5 A
|
|
b00000000000000000000000011111010 B
|
|
b00000000000000000000000000000101 C
|
|
b00000000000000000000000000000101 D
|
|
b00000000000000000000000000001010 E
|
|
b011 F
|
|
#55
|
|
0"
|
|
#60
|
|
1"
|
|
b010 F
|
|
b00000000000000000000000000001100 E
|
|
b00000000000000000000000000000110 D
|
|
b00000000000000000000000000000110 C
|
|
b00000000000000000000000011111001 B
|
|
r1.8 A
|
|
r1.2 @
|
|
r0.6 ?
|
|
0>
|
|
0=
|
|
0<
|
|
0;
|
|
b00 :
|
|
b00 9
|
|
02
|
|
01
|
|
00
|
|
0/
|
|
b00 .
|
|
b00 -
|
|
b00 ,
|
|
0+
|
|
0*
|
|
0)
|
|
0(
|
|
0'
|
|
0&
|
|
0%
|
|
0$
|
|
b00000000000000000000000000000110 #
|
|
b011 G
|
|
b011 H
|