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/] [perl_gui/] [lib/] [perl/] [graph.pl] - Diff between revs 42 and 43

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 42 Rev 43
Line 14... Line 14...
        my @charts=@{$charts_ref};
        my @charts=@{$charts_ref};
        my $notebook = Gtk2::Notebook->new;
        my $notebook = Gtk2::Notebook->new;
        $notebook->set_scrollable(TRUE);
        $notebook->set_scrollable(TRUE);
        $notebook->can_focus(FALSE);
        $notebook->can_focus(FALSE);
 
 
 
        #check if we ned to save all graph results
 
        my $save_all_status = $self->object_get_attribute ("graph_save","save_all_result");
 
        $save_all_status=0 if (!defined $save_all_status);
 
        $self->object_add_attribute ("graph_save","save_all_result",0);
 
        if ($save_all_status ==1){
 
                my $save_path = $self->object_get_attribute ('sim_param','ALL_RESULT_DIR');
 
                if (-d $save_path){
 
                        my $results_path = "$save_path/all_results";
 
                        rmtree("$results_path");
 
                        mkpath("$results_path",1,01777);
 
                        save_all_results($self,$pageref,$charts_ref,$results_path);
 
 
 
                }
 
        }
 
 
        foreach my $page (@pages){
        foreach my $page (@pages){
                my @selects;
                my @selects;
                my $page_id= "P$page->{page_num}";
                my $page_id= "P$page->{page_num}";
                my $active = $self->object_get_attribute ($page_id,'active');
                my $active = $self->object_get_attribute ($page_id,'active');
Line 68... Line 81...
 
 
 
 
}
}
 
 
 
 
 
sub save_all_results{
 
        my ($self,$pageref,$charts_ref,$results_path)=@_;
 
        my @pages=@{$pageref};
 
        my @charts=@{$charts_ref};
 
        foreach my $chart (@charts){
 
                        my $result_name= "$chart->{result_name}";
 
                        my $charttype=  "$chart->{type}";
 
 
 
                        if($charttype eq '2D_line'){
 
                                my $file_name = "$results_path/${result_name}.txt";
 
                                write_graph_results_in_file($self,$file_name,$result_name,undef,$charttype);
 
                                next;
 
                        };#3d
 
 
 
                        my @ratios;
 
                        my @x;
 
 
 
 
 
                        my @samples =$self->object_get_attribute_order("samples");
 
                        foreach my $sample (@samples){
 
 
 
                                my $ref=$self->object_get_attribute ($sample,$result_name);
 
                                if(defined $ref){
 
                                        @ratios=get_uniq_keys($ref,@ratios);
 
 
 
                                }
 
 
 
                                foreach my $ratio (@ratios){
 
 
 
                                        my @results;
 
                                        foreach my $sample2 (@samples){
 
                                                my $ref=$self->object_get_attribute ($sample2,"$result_name");
 
                                                @x=get_uniq_keys($ref->{$ratio},@x) if(defined $ref);
 
 
 
                                        }
 
 
 
                                        my $i=1;
 
                                        foreach my $sample (@samples){
 
                                                my @y;
 
                                                my $ref=$self->object_get_attribute ($sample,"$result_name");
 
                                                if(defined $ref){
 
                                                        foreach my $v (@x){
 
                                                                my $w=$ref->{$ratio}->{$v};
 
                                                                push(@y,$w);
 
                                                        }#for v
 
                                                        $results[$i]=\@y if(scalar @x);
 
                                                        $i++;
 
                                                }#if
 
                                        }#sample
 
                                        $results[0]=\@x if(scalar @x);
 
                                        my $file_name = "$results_path/${result_name}_r$ratio.txt";
 
                                        write_graph_results_in_file($self,$file_name,$result_name,\@results,$charttype);
 
 
 
                                }#ratio
 
                        }#sample                                
 
        }#chart 
 
        #done saving clear the saving status
 
 
 
 
 
}
 
 
 
 
sub get_uniq_keys {
sub get_uniq_keys {
        my ($ref,@x)=@_;
        my ($ref,@x)=@_;
 
 
        if(defined $ref) {
        if(defined $ref) {
Line 363... Line 437...
 
 
                #$table->attach ($plus , 9, 10, $row, $row+1,'shrink','shrink',2,2); $row++;
                #$table->attach ($plus , 9, 10, $row, $row+1,'shrink','shrink',2,2); $row++;
                #$table->attach ($minues, 9, 10, $row, $row+1,'shrink','shrink',2,2); $row++;
                #$table->attach ($minues, 9, 10, $row, $row+1,'shrink','shrink',2,2); $row++;
                $table->attach ($setting, 9, 10, $row,  $row+1,'shrink','shrink',2,2); $row++;
                $table->attach ($setting, 9, 10, $row,  $row+1,'shrink','shrink',2,2); $row++;
                $table->attach ($save, 9, 10, $row,  $row+1,'shrink','shrink',2,2); $row++;
                $table->attach ($save, 9, 10, $row,  $row+1,'shrink','shrink',2,2); $row++;
 
 
                while ($row<10){
                while ($row<10){
 
 
                        my $tmp=gen_label_in_left('');
                        my $tmp=gen_label_in_left('');
                        $table->attach_defaults ($tmp, 9, 10, $row,  $row+1);$row++;
                        $table->attach_defaults ($tmp, 9, 10, $row,  $row+1);$row++;
                }
                }
Line 773... Line 848...
        my $table = def_table(10, 2, FALSE);
        my $table = def_table(10, 2, FALSE);
        my $row=0;
        my $row=0;
 
 
 
 
my @data=@$ref;
my @data=@$ref;
 
my $coltmp;
foreach my $d (@data) {
foreach my $d (@data) {
        $row=noc_param_widget ($self, $d->{label}, $d->{param_name}, $d->{default_val}, $d->{type}, $d->{content}, $d->{info}, $table,$row,1, $d->{param_parent}, $d->{ref_delay});
        #$row=noc_param_widget ($self, $d->{label}, $d->{param_name}, $d->{default_val}, $d->{type}, $d->{content}, $d->{info}, $table,$row,      1, $d->{param_parent}, $d->{ref_delay});
 
    ($row,$coltmp)=add_param_widget ($self, $d->{label}, $d->{param_name}, $d->{default_val}, $d->{type}, $d->{content}, $d->{info}, $table,$row,undef,1, $d->{param_parent}, $d->{ref_delay} ,undef,undef);
}
}
 
 
 
 
 
 
 
 
Line 807... Line 884...
 
 
sub write_image {
sub write_image {
        my ($self,$graph_name,$image)=@_;
        my ($self,$graph_name,$image)=@_;
        my $save=$self->object_get_attribute("graph_save","save");
        my $save=$self->object_get_attribute("graph_save","save");
 
 
 
 
        my $active_graph=$self->object_get_attribute("graph_save","graph_name");
        my $active_graph=$self->object_get_attribute("graph_save","graph_name");
        $save=0 if (!defined $save);
        $save=0 if (!defined $save);
        $active_graph = 0 if(!defined $active_graph);
        $active_graph = 0 if(!defined $active_graph);
 
 
        if ($save ==1 && $active_graph eq $graph_name){
        if ($save ==1 && $active_graph eq $graph_name){
Line 842... Line 918...
        my $save=$self->object_get_attribute("graph_save","save_result");
        my $save=$self->object_get_attribute("graph_save","save_result");
        my $active_graph=$self->object_get_attribute("graph_save","graph_name");
        my $active_graph=$self->object_get_attribute("graph_save","graph_name");
        $save=0 if (!defined $save);
        $save=0 if (!defined $save);
        $active_graph = 0 if(!defined $active_graph);
        $active_graph = 0 if(!defined $active_graph);
 
 
 
 
 
 
        if ($save ==1 && $active_graph eq $graph_name){
        if ($save ==1 && $active_graph eq $graph_name){
                my $file=$self->object_get_attribute("graph_save","name");
                my $file=$self->object_get_attribute("graph_save","name");
                my $ext=$self->object_get_attribute("graph_save","extension");
 
                $self->object_add_attribute("graph_save","save_result",0);
                $self->object_add_attribute("graph_save","save_result",0);
 
                write_graph_results_in_file($self,"$file.txt",$result_name,$result_ref,$charttype);
 
        }
 
}
 
 
                open( my $out, '>', "$file.txt");
sub write_graph_results_in_file{
 
        my ($self,$file_name,$result_name,$result_ref,$charttype)=@_;
 
 
 
        open( my $out, '>', $file_name);
                if (tell $out )
                if (tell $out )
                {
                {
                        warn "Cannot open $file.txt to write: $!";
                warn "Cannot open $file_name to write: $!";
 
                return;
                }
                }
                else
                else
                {
                {
                        if($charttype eq '2D_line'){
                        if($charttype eq '2D_line'){
 
                        write_2d_graph_results($self,$out,$result_name);
 
                } else{
 
                        write_3d_graph_results($self,$out,$result_ref);
 
                }
 
                close $out;
 
        }
 
}
 
 
 
 
 
sub write_2d_graph_results{
 
        my ($self,$out,$result_name)=@_;
                                my @samples =$self->object_get_attribute_order("samples");
                                my @samples =$self->object_get_attribute_order("samples");
                                foreach my $sample (@samples){
                                foreach my $sample (@samples){
                                                my $l_name= $self->object_get_attribute($sample,"line_name");
                                                my $l_name= $self->object_get_attribute($sample,"line_name");
                                                my $ref=$self->object_get_attribute ($sample,$result_name);
                                                my $ref=$self->object_get_attribute ($sample,$result_name);
                                                my @x;
                                                my @x;
                                                if(defined $ref) {
                                                if(defined $ref) {
 
 
                                                        print $out "$l_name\n";
                                                        print $out "$l_name\n";
                                                        foreach my $x (sort {$a<=>$b} keys %{$ref}) {
                                                        foreach my $x (sort {$a<=>$b} keys %{$ref}) {
                                                                my $y=$ref->{$x};
                                                                my $y=$ref->{$x};
                                                                print $out "\t$x , $y\n";
                                                                print $out "\t$x , $y\n";
                                                        }
                                                        }
                                                        print $out "\n\n";
                                                        print $out "\n\n";
                                                }
                                                }
                                        }#for
                                        }#for
                                } else{
 
                                        write_3d_graph_results($self,$out,$result_ref);
 
 
 
 
 
                                }
 
 
 
                        close $out;
 
                }
 
        }
 
}
}
 
 
 
 
sub write_3d_graph_results{
sub write_3d_graph_results{
        my ($self,$out,$result_ref)=@_;
        my ($self,$out,$result_ref)=@_;

powered by: WebSVN 2.1.0

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