#!/usr/bin/env perl if (!$::Driver) { use FindBin; exec("$FindBin::Bin/bootstrap.pl", @ARGV, $0); die; } # DESCRIPTION: Verilator: Verilog Test driver/expect definition # # Copyright 2021 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(vltmt => 1); # Use a top file which we are sure to be parallelizable top_filename("t/t_gen_alw.v"); compile( v_flags2 => ["--dumpi-graph 6"], threads => 2 ); foreach my $dotname ("linkcells", "task_call", "gate_simp", "gate_opt", "acyc_simp", "orderg_pre", "orderg_acyc", "orderg_order", "orderg_domain", "ordermv_initial", "ordermv_hazards", "ordermv_contraction", "ordermv_transitive1", "orderg_done", "ordermv_transitive2", "schedule") { # Some files with identical prefix are generated multiple times during # Verilation. Ensure that at least one of each $dotname-prefixed file is generated. @dotFiles = glob("$Self->{obj_dir}/*$dotname.dot"); if (scalar @dotFiles == 0) { error("Found no dotfiles with pattern *$dotname.dot"); } foreach my $dotFilename (@dotFiles) { file_grep($dotFilename, qr/digraph v3graph/); } } ok(1); 1;