Tests: Add verilator_gantt no-proc test.

This commit is contained in:
Wilson Snyder 2021-10-02 10:05:59 -04:00
parent 20af8a36a7
commit f5c9deecb8
5 changed files with 82 additions and 2 deletions

View File

@ -11,12 +11,12 @@ if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); di
scenarios(dist => 1);
run(cmd => ["cd $Self->{obj_dir} && $ENV{VERILATOR_ROOT}/bin/verilator_gantt"
. " $Self->{t_dir}/t_gantt_io.dat > gantt.log"],
. " $Self->{t_dir}/$Self->{name}.dat > gantt.log"],
check_finished => 0);
files_identical("$Self->{obj_dir}/gantt.log", $Self->{golden_filename});
vcd_identical("$Self->{obj_dir}/profile_threads.vcd", "$Self->{t_dir}/t_gantt_io_vcd.out");
vcd_identical("$Self->{obj_dir}/profile_threads.vcd", "$Self->{t_dir}/$Self->{name}.vcd.out");
ok(1);
1;

View File

@ -0,0 +1,24 @@
VLPROFTHREAD 1.1 # Verilator thread profile dump version 1.1
VLPROF arg --threads 2
VLPROF arg +verilator+prof+threads+start+2
VLPROF arg +verilator+prof+threads+window+2
VLPROF stat yields 0
VLPROF eval start 595 elapsed 11655 cpu 19 on thread 1
VLPROF eval_loop start 945 elapsed 11235 cpu 19 on thread 1
VLPROF mtask 6 start 2695 elapsed 210 predict_start 0 predict_cost 30 cpu 19 on thread 1
VLPROF mtask 10 start 9695 elapsed 175 predict_start 196 predict_cost 30 cpu 19 on thread 1
VLPROF eval start 13720 elapsed 8610 cpu 19 on thread 1
VLPROF eval_loop start 14000 elapsed 8085 cpu 19 on thread 1
VLPROF mtask 6 start 15610 elapsed 210 predict_start 0 predict_cost 30 cpu 19 on thread 1
VLPROF mtask 10 start 21700 elapsed 175 predict_start 196 predict_cost 30 cpu 19 on thread 1
VLPROF mtask 5 start 5495 elapsed 595 predict_start 0 predict_cost 30 cpu 10 on thread 2
VLPROF mtask 7 start 6300 elapsed 595 predict_start 30 predict_cost 30 cpu 10 on thread 2
VLPROF mtask 8 start 7490 elapsed 1050 predict_start 60 predict_cost 107 cpu 10 on thread 2
VLPROF mtask 9 start 9135 elapsed 595 predict_start 167 predict_cost 30 cpu 10 on thread 2
VLPROF mtask 11 start 10255 elapsed 805 predict_start 197 predict_cost 30 cpu 10 on thread 2
VLPROF mtask 5 start 18375 elapsed 595 predict_start 0 predict_cost 30 cpu 10 on thread 2
VLPROF mtask 7 start 19145 elapsed 175 predict_start 30 predict_cost 30 cpu 10 on thread 2
VLPROF mtask 8 start 19670 elapsed 140 predict_start 60 predict_cost 107 cpu 10 on thread 2
VLPROF mtask 9 start 20650 elapsed 70 predict_start 167 predict_cost 30 cpu 10 on thread 2
VLPROF mtask 11 start 21140 elapsed 105 predict_start 197 predict_cost 30 cpu 10 on thread 2
VLPROF stat ticks 23415

View File

@ -0,0 +1,36 @@
Verilator Gantt report
Argument settings:
+verilator+prof+threads+start+2
+verilator+prof+threads+window+2
--threads 2
Analysis:
Total threads = 2
Total mtasks = 7
Total cpus used = 2
Total yields = 0
Total evals = 2
Total eval loops = 2
Total eval time = 21875 rdtsc ticks
Longest mtask time = 1190 rdtsc ticks
All-thread mtask time = 5495 rdtsc ticks
Longest-thread efficiency = 5.4%
All-thread efficiency = 12.6%
All-thread speedup = 0.3
Prediction (what Verilator used for scheduling):
All-thread efficiency = 63.2%
All-thread speedup = 1.3
Statistics:
min log(p2e) = -3.681 from mtask 5 (predict 30, elapsed 1190)
max log(p2e) = -2.409 from mtask 8 (predict 107, elapsed 1190)
mean = -2.992
stddev = 0.459
e ^ stddev = 1.583
CPUs:
cpu 10: cpu_time=4725
cpu 19: cpu_time=770

View File

@ -0,0 +1,20 @@
#!/usr/bin/env perl
if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); die; }
# DESCRIPTION: Verilator: Verilog Test driver/expect definition
#
# Copyright 2003 by Wilson Snyder. This program is free software; you
# can redistribute it and/or modify it under the terms of either the GNU
# Lesser General Public License Version 3 or the Perl Artistic License
# Version 2.0.
# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
scenarios(dist => 1);
run(cmd => ["cd $Self->{obj_dir} && $ENV{VERILATOR_ROOT}/bin/verilator_gantt"
. " --no-vcd $Self->{t_dir}/$Self->{name}.dat > gantt.log"],
check_finished => 0);
files_identical("$Self->{obj_dir}/gantt.log", $Self->{golden_filename});
ok(1);
1;