URL
https://opencores.org/ocsvn/an-fpga-implementation-of-low-latency-noc-based-mpsoc/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk
Subversion Repositories an-fpga-implementation-of-low-latency-noc-based-mpsoc
[/] [an-fpga-implementation-of-low-latency-noc-based-mpsoc/] [trunk/] [mpsoc/] [Integration_test/] [Altera/] [src/] [extract.prl] - Rev 56
Compare with Previous | Blame | View Log
#!/usr/bin/perl -w
use Cwd qw(getcwd);
use IPC::Run qw( run start pump finish timeout );
my @HWs = (
"; Logic utilization ;",
"; Combinational ALUTs ;",
"; Memory ALUTs ;",
"; Dedicated logic registers ;",
"; Total block memory bits ;",
"; ALMs: partially or completely used ;",
"; M9K blocks ;"
);
my $csv="";
my %freq;
my %results;
sub extract_results {
my ($dir,$parent) =@_;
my @cat = qw( bash );
chdir "$dir";
print getcwd()."\n";
my ($in, $out, $err);
#Fmax
$in ='grep -R "; clk ; ;$" | sort';
run \@cat, \$in, \$out, \$err, timeout( 10 ) or die "grep: $?";
my @lines = split("\n",$out);
foreach my $l (@lines) {
my @f=split ('/',$l);
my $name= "${parent}_$f[0]";
@f=split (':',$l);
@f=split (';',$f[1]);
$f[1] =~ s/MHz//;
if(!defined $freq{$name}){
$freq{$name}=$f[1];
}else{#get the minum reported max frequency
$freq{$name}=$f[1] if($f[1]< $freq{$name});
}
}
foreach my $hw (@HWs){
my @cat = qw( bash );
my $in ="grep -R \"$hw\" | sort";
$hw =~ s/[\;]//g;
#$csv.="-,$hw\n";
$out=undef;
run \@cat, \$in, \$out, \$err, timeout( 10 ) or die "grep: $?";
@lines = split("\n",$out);
foreach my $l (@lines) {
unless ( index($l,".fit.rpt") >= 0){ next;}
my @f=split ('/',$l);
my $name= "${parent}_$f[0]";
my @ff = split (/\; /,$l);
my $val=$ff[2];
$val =~ s/,//g;
my @vv = split ("/",$val);
my $t =join(',',@vv);
#$csv.= "$name, $t \n" if (defined $val) ;
$results{$hw}{$name}=$t if (defined $val) ;
}
}
}
print "extract_results($ARGV[0],$ARGV[1]);\n";
extract_results($ARGV[0],$ARGV[1]);
$csv.=" , Fr_max\n";
foreach my $p (sort keys %freq){
$csv.= "$p, $freq{$p}, Fmax = $freq{$p} Mhz\n";
}
foreach my $p (sort keys %results){
my $ref = $results{$p};
my %r = %{$results{$p}} if (defined $ref) ;
$csv.= "\n\n\n\n" ;
$csv.="-,$p\n";
foreach my $p (sort keys %r){
$csv.= "$p, $r{$p} \n";
}
}
print "***************** results *****************\n";
print $csv;