Merge branch 'master' of ssh://git-verilator-wsnyder/git/verilator

This commit is contained in:
Wilson Snyder 2011-05-20 15:34:30 -04:00
commit 3fd2108b10
2 changed files with 68 additions and 51 deletions

View File

@ -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.

View File

@ -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}) {