forked from github/verilator
e504e9aced
In V3Active, we try hard to turn `always @(a or b or c)` into an `always_comb` if the only variables read in the block are also in the sensitivity list. In addition, also allow this optimization when reading variables that are not in the sensitivity list, but are known to be constant/never changing after initialization. In particular lookup tables introduced by V3Table are covered by this. This can have a significant impact on designs that use the `always @(a or b or c)` style for combinational logic.
31 lines
958 B
Perl
Executable File
31 lines
958 B
Perl
Executable File
#!/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(simulator => 1);
|
|
|
|
compile(
|
|
verilator_flags2 => ["--stats"],
|
|
);
|
|
|
|
if ($Self->{vlt}) {
|
|
file_grep($Self->{stats}, qr/Optimizations, Tables created\s+(\d+)/i, 10);
|
|
file_grep($Self->{stats}, qr/Optimizations, Combined CFuncs\s+(\d+)/i, 8);
|
|
} elsif ($Self->{vltmt}) {
|
|
file_grep($Self->{stats}, qr/Optimizations, Tables created\s+(\d+)/i, 10);
|
|
file_grep($Self->{stats}, qr/Optimizations, Combined CFuncs\s+(\d+)/i, 9);
|
|
}
|
|
|
|
execute(
|
|
check_finished => 1,
|
|
);
|
|
|
|
ok(1);
|
|
1;
|