OpenCores
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;

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.