forked from github/verilator
dc25e9b949
Firstly, we always use a byte array for fine grained activity flags instead of a bit vector (we used to use a byte array only if we had parallel mtasks). The byte vector can be set more cheaply in eval, closing about 1/3 of the gap in performance between compiling with or without --trace on SweRV EH1. The speed of tracing itself is not measurably different. Secondly, we prune the activity tracking such that if a set of activity flag combinations only guard a small number of signals, we will turn those signals into awayls traced signals. This avoids code which sometimes tests dozens of activity flags just to subsequently check one signal and dump it if it's value changed. We can just check the signal state straight instead, and not bother with the flags. This removes about 30% of activity flags in SweRV EH1, and makes both single threaded VCD and FST tracing 8-9% faster.
77 lines
1.6 KiB
Plaintext
77 lines
1.6 KiB
Plaintext
$version Generated by VerilatedVcd $end
|
|
$date Fri Jun 22 19:27:45 2018
|
|
$end
|
|
$timescale 1ps $end
|
|
|
|
$scope module top $end
|
|
$var wire 1 / clk $end
|
|
$scope module t $end
|
|
$var wire 32 % c1_count [31:0] $end
|
|
$var wire 1 # c1_start $end
|
|
$var wire 32 ( c3_count [31:0] $end
|
|
$var wire 1 ' c3_start $end
|
|
$var wire 1 / clk $end
|
|
$var wire 8 $ cyc [7:0] $end
|
|
$var wire 32 & s2_count [31:0] $end
|
|
$var wire 1 # s2_start $end
|
|
$scope module c1 $end
|
|
$var wire 32 % count [31:0] $end
|
|
$var wire 32 * runner [31:0] $end
|
|
$var wire 32 ) runnerm1 [31:0] $end
|
|
$var wire 1 # start $end
|
|
$upscope $end
|
|
$scope module c3 $end
|
|
$var wire 32 ( count [31:0] $end
|
|
$var wire 32 . runner [31:0] $end
|
|
$var wire 32 - runnerm1 [31:0] $end
|
|
$var wire 1 ' start $end
|
|
$upscope $end
|
|
$scope module s2 $end
|
|
$var wire 32 & count [31:0] $end
|
|
$var wire 32 , runner [31:0] $end
|
|
$var wire 32 + runnerm1 [31:0] $end
|
|
$var wire 1 # start $end
|
|
$upscope $end
|
|
$upscope $end
|
|
$upscope $end
|
|
$enddefinitions $end
|
|
|
|
|
|
#0
|
|
0#
|
|
b00000000 $
|
|
b00000000000000000000000000000000 %
|
|
b00000000000000000000000000000000 &
|
|
0'
|
|
b00000000000000000000000000000000 (
|
|
b11111111111111111111111111111111 )
|
|
b00000000000000000000000000000000 *
|
|
b11111111111111111111111111111111 +
|
|
b00000000000000000000000000000000 ,
|
|
b11111111111111111111111111111111 -
|
|
b00000000000000000000000000000000 .
|
|
0/
|
|
#10
|
|
b00000001 $
|
|
1/
|
|
#15
|
|
0/
|
|
#20
|
|
1#
|
|
b00000010 $
|
|
b00000000000000000000000000000011 %
|
|
b00000000000000000000000000000011 &
|
|
1'
|
|
b00000000000000000000000000000101 (
|
|
1/
|
|
#25
|
|
0/
|
|
#30
|
|
b00000011 $
|
|
1/
|
|
#35
|
|
0/
|
|
#40
|
|
1/
|
|
b00000100 $
|