Merge branch 'master' of ssh://git-verilator-wsnyder/git/verilator
This commit is contained in:
commit
3fd2108b10
|
|
@ -3296,25 +3296,30 @@ Brooks, Duane Galbi, Paul Wasson, and Wilson Snyder. Major testers include
|
||||||
Jeff Dutton, Ralf Karge, David Hewson, Wim Michiels, and Gene Weber.
|
Jeff Dutton, Ralf Karge, David Hewson, Wim Michiels, and Gene Weber.
|
||||||
|
|
||||||
Some of the people who have provided ideas and feedback for Verilator
|
Some of the people who have provided ideas and feedback for Verilator
|
||||||
include David Addison, Hans Van Antwerpen, Vasu Arasanipalai, Jens Arm, J
|
include: David Addison, Hans Van Antwerpen, Vasu Arasanipalai, Jens Arm, J
|
||||||
Baxter, Jeremy Bennett, David Black, Gregg Bouchard, Christopher Boumenot,
|
Baxter, Jeremy Bennett, David Black, Gregg Bouchard, Christopher Boumenot,
|
||||||
Byron Bradley, Bryan Brady, Lane Brooks, John Brownlee, Lawrence Butcher,
|
Nick Bowler, Byron Bradley, Bryan Brady, Lane Brooks, John Brownlee,
|
||||||
Chris Candler, Lauren Carlson, Donal Casey, Robert A. Clark, Allan
|
Lawrence Butcher, Chris Candler, Lauren Carlson, Donal Casey, Terry Chen,
|
||||||
Cochrane, Gunter Dannoritzer, Bernard Deadman, John Deroo, John Dickol,
|
Robert A. Clark, Allan Cochrane, Gunter Dannoritzer, Ashutosh Das, Bernard
|
||||||
Danny Ding, Alex Duller, Jeff Dutton, Robert Farrell, Eugen Fekete, Andrea
|
Deadman, John Deroo, John Dickol, Danny Ding, Ivan Djordjevic, Alex Duller,
|
||||||
Foletto, Bob Fredieu, Shankar Giri, Sam Gladstone, Chitlesh Goorah, Thomas
|
Jeff Dutton, Chandan Egbert, Joe Eiler, Ahmed El-Mahmoudy, Robert Farrell,
|
||||||
Hawkins, David Hewson, Jae Hossell, Ben Jackson, Mike Kagen, Guy-Armand
|
Eugen Fekete, Andrea Foletto, Bob Fredieu, Shankar Giri, Sam Gladstone,
|
||||||
Kamendje, Vasu Kandadi, Patricio Kaplan, Ralf Karge, Dan Katz, Sol Katzman,
|
Amir Gonnen, Chitlesh Goorah, Neil Hamilton, Thomas Hawkins, David Hewson,
|
||||||
Jonathan Kimmitt, Gernot Koch, Soon Koh, Steve Kolecki, Steve Lang,
|
Jae Hossell, Ben Jackson, Iztok Jeras, Mike Kagen, Guy-Armand Kamendje,
|
||||||
Stephane Laurent, Charlie Lind, Dan Lussier, Fred Ma, Duraid Madina, Mark
|
Vasu Kandadi, Patricio Kaplan, Ralf Karge, Dan Katz, Sol Katzman, Jonathan
|
||||||
Marshall, Wim Michiels, Dennis Muhlestein, John Murphy, Richard Myers,
|
Kimmitt, Gernot Koch, Soon Koh, Steve Kolecki, Steve Lang, Stephane
|
||||||
Dimitris Nalbantis, Paul Nitza, Pete Nixon, Lisa Noack, Mark Nodine,
|
Laurent, Christian Leber, Charlie Lind, Paul Liu, Dan Lussier, Fred Ma,
|
||||||
Andreas Olofsson, Niranjan Prabhu, Oleg Rodionov, John Sanguinetti, Mike
|
Duraid Madina, Mark Marshall, Jason McMullan, Wim Michiels, Dennis
|
||||||
Shinkarovsky, Rafael Shirakawa, Rodney Sinclair, Brian Small, Art Stamness,
|
Muhlestein, John Murphy, Richard Myers, Dimitris Nalbantis, Paul Nitza,
|
||||||
John Stroebel, Emerson Suguimoto, Renga Sundararajan, Stefan Thiede, Gary
|
Pete Nixon, Lisa Noack, Mark Nodine, Andreas Olofsson, Brad Parker, Dominic
|
||||||
Thomas, Steve Tong, Holger Waechtler, Shawn Wang, Greg Waters, Eugene
|
Plunkett, Niranjan Prabhu, Usha Priyadharshini, Oleg Rodionov, John
|
||||||
Weber, Leon Wildman, Gerald Williams, Jeff Winston, Johan Wouters, and Ding
|
Sanguinetti, Salman Sheikh, Mike Shinkarovsky, Rafael Shirakawa, Jeffrey
|
||||||
Xiaoliang.
|
Short, Rodney Sinclair, Brian Small, Alex Solomatnikov, Art Stamness, John
|
||||||
|
Stroebel, Emerson Suguimoto, Gene Sullivan, Renga Sundararajan, Stefan
|
||||||
|
Thiede, Gary Thomas, Steve Tong, Holger Waechtler, Stefan Wallentowitz,
|
||||||
|
Shawn Wang, Greg Waters, Eugene Weber, David Welch, Leon Wildman, Gerald
|
||||||
|
Williams, Trevor Williams, Jeff Winston, Joshua Wise, Johan Wouters, and
|
||||||
|
Ding Xiaoliang.
|
||||||
|
|
||||||
Thanks all.
|
Thanks all.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -409,11 +409,10 @@ sub read_status {
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
# Methods invoked by tests
|
# Methods invoked by tests
|
||||||
|
|
||||||
sub compile {
|
sub compile_vlt_flags {
|
||||||
my $self = (ref $_[0]? shift : $Self);
|
my $self = (ref $_[0]? shift : $Self);
|
||||||
my %param = (%{$self}, @_); # Default arguments are from $self
|
my %param = (%{$self}, @_); # Default arguments are from $self
|
||||||
return 1 if $self->errors || $self->skips;
|
return 1 if $self->errors || $self->skips;
|
||||||
$self->oprint("Compile\n");
|
|
||||||
|
|
||||||
my $checkflags = join(' ',@{$param{v_flags}},
|
my $checkflags = join(' ',@{$param{v_flags}},
|
||||||
@{$param{v_flags2}},
|
@{$param{v_flags2}},
|
||||||
|
|
@ -424,6 +423,48 @@ sub compile {
|
||||||
$self->{trace} = 1 if ($opt_trace || $checkflags =~ /-trace\b/);
|
$self->{trace} = 1 if ($opt_trace || $checkflags =~ /-trace\b/);
|
||||||
$self->{coverage} = 1 if ($checkflags =~ /-coverage\b/);
|
$self->{coverage} = 1 if ($checkflags =~ /-coverage\b/);
|
||||||
|
|
||||||
|
$opt_gdb="gdbrun" if defined $opt_gdb;
|
||||||
|
my @verilator_flags = @{$param{verilator_flags}};
|
||||||
|
unshift @verilator_flags, "--gdb $opt_gdb" if $opt_gdb;
|
||||||
|
unshift @verilator_flags, "--gdbbt" if $opt_gdbbt;
|
||||||
|
unshift @verilator_flags, @Opt_Driver_Verilator_Flags;
|
||||||
|
unshift @verilator_flags, "--x-assign unique"; # More likely to be buggy
|
||||||
|
unshift @verilator_flags, "--trace" if $opt_trace;
|
||||||
|
if (defined $opt_optimize) {
|
||||||
|
my $letters = "";
|
||||||
|
if ($opt_optimize =~ /[a-zA-Z]/) {
|
||||||
|
$letters = $opt_optimize;
|
||||||
|
} else { # Randomly turn on/off different optimizations
|
||||||
|
foreach my $l ('a'..'z') {
|
||||||
|
$letters .= ((rand() > 0.5) ? $l : uc $l);
|
||||||
|
}
|
||||||
|
unshift @verilator_flags, "--trace" if rand() > 0.5;
|
||||||
|
unshift @verilator_flags, "--coverage" if rand() > 0.5;
|
||||||
|
}
|
||||||
|
unshift @verilator_flags, "--O".$letters;
|
||||||
|
}
|
||||||
|
|
||||||
|
my @cmdargs = ("perl","../bin/verilator",
|
||||||
|
"--prefix ".$param{VM_PREFIX},
|
||||||
|
@verilator_flags,
|
||||||
|
@{$param{verilator_flags2}},
|
||||||
|
@{$param{v_flags}},
|
||||||
|
@{$param{v_flags2}},
|
||||||
|
$param{top_filename},
|
||||||
|
@{$param{v_other_filenames}},
|
||||||
|
($param{stdout_filename}?"> ".$param{stdout_filename}:""),
|
||||||
|
);
|
||||||
|
return @cmdargs;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub compile {
|
||||||
|
my $self = (ref $_[0]? shift : $Self);
|
||||||
|
my %param = (%{$self}, @_); # Default arguments are from $self
|
||||||
|
return 1 if $self->errors || $self->skips;
|
||||||
|
$self->oprint("Compile\n");
|
||||||
|
|
||||||
|
compile_vlt_flags(%param);
|
||||||
|
|
||||||
if ($param{atsim}) {
|
if ($param{atsim}) {
|
||||||
$self->_make_top();
|
$self->_make_top();
|
||||||
$self->_run(logfile=>"$self->{obj_dir}/atsim_compile.log",
|
$self->_run(logfile=>"$self->{obj_dir}/atsim_compile.log",
|
||||||
|
|
@ -483,37 +524,8 @@ sub compile {
|
||||||
cmd=>\@cmd);
|
cmd=>\@cmd);
|
||||||
}
|
}
|
||||||
if ($param{vlt}) {
|
if ($param{vlt}) {
|
||||||
$opt_gdb="gdbrun" if defined $opt_gdb;
|
my @cmdargs = $self->compile_vlt_flags(%param);
|
||||||
my @verilator_flags = @{$param{verilator_flags}};
|
|
||||||
unshift @verilator_flags, "--gdb $opt_gdb" if $opt_gdb;
|
|
||||||
unshift @verilator_flags, "--gdbbt" if $opt_gdbbt;
|
|
||||||
unshift @verilator_flags, @Opt_Driver_Verilator_Flags;
|
|
||||||
unshift @verilator_flags, "--x-assign unique"; # More likely to be buggy
|
|
||||||
unshift @verilator_flags, "--trace" if $opt_trace;
|
|
||||||
if (defined $opt_optimize) {
|
|
||||||
my $letters = "";
|
|
||||||
if ($opt_optimize =~ /[a-zA-Z]/) {
|
|
||||||
$letters = $opt_optimize;
|
|
||||||
} else { # Randomly turn on/off different optimizations
|
|
||||||
foreach my $l ('a'..'z') {
|
|
||||||
$letters .= ((rand() > 0.5) ? $l : uc $l);
|
|
||||||
}
|
|
||||||
unshift @verilator_flags, "--trace" if rand() > 0.5;
|
|
||||||
unshift @verilator_flags, "--coverage" if rand() > 0.5;
|
|
||||||
}
|
|
||||||
unshift @verilator_flags, "--O".$letters;
|
|
||||||
}
|
|
||||||
|
|
||||||
my @vlargs = ("perl","../bin/verilator",
|
|
||||||
"--prefix ".$self->{VM_PREFIX},
|
|
||||||
@verilator_flags,
|
|
||||||
@{$param{verilator_flags2}},
|
|
||||||
@{$param{v_flags}},
|
|
||||||
@{$param{v_flags2}},
|
|
||||||
$param{top_filename},
|
|
||||||
@{$param{v_other_filenames}},
|
|
||||||
($param{stdout_filename}?"> ".$param{stdout_filename}:""),
|
|
||||||
);
|
|
||||||
if ($self->sc_or_sp && !defined $ENV{SYSTEMC}) {
|
if ($self->sc_or_sp && !defined $ENV{SYSTEMC}) {
|
||||||
$self->skip("Test requires SystemC; ignore error since not installed\n");
|
$self->skip("Test requires SystemC; ignore error since not installed\n");
|
||||||
return 1;
|
return 1;
|
||||||
|
|
@ -526,7 +538,7 @@ sub compile {
|
||||||
$self->_run(logfile=>"$self->{obj_dir}/vlt_compile.log",
|
$self->_run(logfile=>"$self->{obj_dir}/vlt_compile.log",
|
||||||
fails=>$param{fails},
|
fails=>$param{fails},
|
||||||
expect=>$param{expect},
|
expect=>$param{expect},
|
||||||
cmd=>\@vlargs);
|
cmd=>\@cmdargs);
|
||||||
return 1 if $self->errors || $self->skips;
|
return 1 if $self->errors || $self->skips;
|
||||||
|
|
||||||
if (!$param{fails} && $param{verilator_make_gcc}) {
|
if (!$param{fails} && $param{verilator_make_gcc}) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue