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/] [mpsoc_gen.pl] - Diff between revs 30 and 32

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

Rev 30 Rev 32
Line 40... Line 40...
 
 
}
}
 
 
 
 
sub noc_param_widget{
sub noc_param_widget{
         my ($mpsoc,$name,$param, $default,$type,$content,$info, $table,$row,$show,$attribut1,$ref_delay)=@_;
         my ($mpsoc,$name,$param, $default,$type,$content,$info, $table,$row,$show,$attribut1,$ref_delay,$new_status)=@_;
         my $label =gen_label_in_left(" $name");
         my $label =gen_label_in_left(" $name");
         my $widget;
         my $widget;
         my $value=$mpsoc->object_get_attribute($attribut1,$param);
         my $value=$mpsoc->object_get_attribute($attribut1,$param);
         if(! defined $value) {
         if(! defined $value) {
                        $mpsoc->object_add_attribute($attribut1,$param,$default);
                        $mpsoc->object_add_attribute($attribut1,$param,$default);
                        $mpsoc->object_add_attribute_order($attribut1,$param);
                        $mpsoc->object_add_attribute_order($attribut1,$param);
                        $value=$default;
                        $value=$default;
         }
         }
 
         if(! defined $new_status){
 
                $new_status='ref';
 
         }
         if ($type eq "Entry"){
         if ($type eq "Entry"){
                $widget=gen_entry($value);
                $widget=gen_entry($value);
                $widget-> signal_connect("changed" => sub{
                $widget-> signal_connect("changed" => sub{
                        my $new_param_value=$widget->get_text();
                        my $new_param_value=$widget->get_text();
                        $mpsoc->object_add_attribute($attribut1,$param,$new_param_value);
                        $mpsoc->object_add_attribute($attribut1,$param,$new_param_value);
                        set_gui_status($mpsoc,"ref",$ref_delay) if(defined $ref_delay);
                        set_gui_status($mpsoc,$new_status,$ref_delay) if(defined $ref_delay);
 
 
 
 
                });
                });
 
 
 
 
Line 75... Line 77...
                #print " my $pos=get_item_pos($value, @combo_list);\n";
                #print " my $pos=get_item_pos($value, @combo_list);\n";
                 $widget=gen_combo(\@combo_list, $pos);
                 $widget=gen_combo(\@combo_list, $pos);
                 $widget-> signal_connect("changed" => sub{
                 $widget-> signal_connect("changed" => sub{
                 my $new_param_value=$widget->get_active_text();
                 my $new_param_value=$widget->get_active_text();
                 $mpsoc->object_add_attribute($attribut1,$param,$new_param_value);
                 $mpsoc->object_add_attribute($attribut1,$param,$new_param_value);
                 set_gui_status($mpsoc,"ref",$ref_delay) if(defined $ref_delay);
                 set_gui_status($mpsoc,$new_status,$ref_delay) if(defined $ref_delay);
 
 
 
 
                 });
                 });
 
 
         }
         }
Line 92... Line 94...
                  $widget=gen_spin($min,$max,$step);
                  $widget=gen_spin($min,$max,$step);
                  $widget->set_value($value);
                  $widget->set_value($value);
                  $widget-> signal_connect("value_changed" => sub{
                  $widget-> signal_connect("value_changed" => sub{
                  my $new_param_value=$widget->get_value_as_int();
                  my $new_param_value=$widget->get_value_as_int();
                  $mpsoc->object_add_attribute($attribut1,$param,$new_param_value);
                  $mpsoc->object_add_attribute($attribut1,$param,$new_param_value);
                  set_gui_status($mpsoc,"ref",$ref_delay) if(defined $ref_delay);
                  set_gui_status($mpsoc,$new_status,$ref_delay) if(defined $ref_delay);
 
 
                  });
                  });
 
 
                 # $box=def_label_spin_help_box ($param,$info, $value,$min,$max,$step, 2);
                 # $box=def_label_spin_help_box ($param,$info, $value,$min,$max,$step, 2);
         }
         }
Line 135... Line 137...
                                        if($check[$i]->get_active()) {$new_val="${new_val}1" ;}
                                        if($check[$i]->get_active()) {$new_val="${new_val}1" ;}
                                        else {$new_val="${new_val}0" ;}
                                        else {$new_val="${new_val}0" ;}
                                }
                                }
                                $mpsoc->object_add_attribute($attribut1,$param,$new_val);
                                $mpsoc->object_add_attribute($attribut1,$param,$new_val);
                                #print "\$new_val=$new_val\n";
                                #print "\$new_val=$new_val\n";
                                set_gui_status($mpsoc,"ref",$ref_delay) if(defined $ref_delay);
                                set_gui_status($mpsoc,$new_status,$ref_delay) if(defined $ref_delay);
                        });
                        });
                }
                }
 
 
 
 
 
 
 
 
        }
        }
        elsif ( $type eq "DIR_path"){
        elsif ( $type eq "DIR_path"){
                        $widget =get_dir_in_object ($mpsoc,$attribut1,$param,$value,'ref',10);
                        $widget =get_dir_in_object ($mpsoc,$attribut1,$param,$value,'ref',10);
                        set_gui_status($mpsoc,"ref",$ref_delay) if(defined $ref_delay);
                        set_gui_status($mpsoc,$new_status,$ref_delay) if(defined $ref_delay);
        }
        }
 
 
 
 
 
 
        else {
        else {
Line 891... Line 893...
 
 
 
 
 
 
        #Fully and partially adaptive routing setting
        #Fully and partially adaptive routing setting
                my $route=$mpsoc->object_get_attribute('noc_param',"ROUTE_NAME");
                my $route=$mpsoc->object_get_attribute('noc_param',"ROUTE_NAME");
                if($route ne '"XY"' and $route ne '"TRANC_XY"' ){
 
                        $label="Congestion index";
                        $label="Congestion index";
                        $param="CONGESTION_INDEX";
                        $param="CONGESTION_INDEX";
                        $type="Spin-button";
                        $type="Spin-button";
                        $content="0,12,1";
                        $content="0,12,1";
                        $info="Congestion index determines how congestion information is collected from neighboring routers. Please refer to the usere manual for more information";
                        $info="Congestion index determines how congestion information is collected from neighboring routers. Please refer to the usere manual for more information";
                    $default=3;
                    $default=3;
 
                if($route ne '"XY"' and $route ne '"TRANC_XY"' ){
                        $row=noc_param_widget ($mpsoc,$label,$param, $default,$type,$content,$info, $table,$row,$adv_set,'noc_param',undef);
                        $row=noc_param_widget ($mpsoc,$label,$param, $default,$type,$content,$info, $table,$row,$adv_set,'noc_param',undef);
 
 
 
                } else {
 
                        $row=noc_param_widget ($mpsoc,$label,$param, $default,$type,$content,$info, $table,$row,0,'noc_param',undef);
                }
                }
                #Fully adaptive routing setting
                #Fully adaptive routing setting
                if( $route eq '"TRANC_DUATO"' or $route eq '"DUATO"'  ){
 
                         my $v=$mpsoc->object_get_attribute('noc_param',"V");
                         my $v=$mpsoc->object_get_attribute('noc_param',"V");
                         $label="Select Escap VC";
                         $label="Select Escap VC";
                         $param="ESCAP_VC_MASK";
                         $param="ESCAP_VC_MASK";
                         $type="Check-box";
                         $type="Check-box";
                         $content=$v;
                         $content=$v;
Line 914... Line 919...
                         for (my $i=1; $i<=$v-1; $i++){$default=  "${default}0";}
                         for (my $i=1; $i<=$v-1; $i++){$default=  "${default}0";}
                         $default=  "${default}1";
                         $default=  "${default}1";
 
 
 
 
                         $info="Select the escap VC for fully adaptive routing.";
                         $info="Select the escap VC for fully adaptive routing.";
 
                if( $route eq '"TRANC_DUATO"' or $route eq '"DUATO"'  ){
                         $row=noc_param_widget ($mpsoc,$label,$param, $default,$type,$content,$info, $table,$row,$adv_set, 'noc_param',undef);
                         $row=noc_param_widget ($mpsoc,$label,$param, $default,$type,$content,$info, $table,$row,$adv_set, 'noc_param',undef);
 
 
                 }
                 }
 
                else{
 
                         $row=noc_param_widget ($mpsoc,$label,$param, $default,$type,$content,$info, $table,$row,0, 'noc_param',undef);
 
                }
 
 
        # VC reallocation type
        # VC reallocation type
                $label=($router_type eq '"VC_BASED"')? 'VC reallocation type': 'Queue reallocation type';
                $label=($router_type eq '"VC_BASED"')? 'VC reallocation type': 'Queue reallocation type';
                $param='VC_REALLOCATION_TYPE';
                $param='VC_REALLOCATION_TYPE';
                $info="VC reallocation type: If set as atomic only empty VCs can be allocated for new packets. Whereas, in non-atomic a non-empty VC which has received the last packet tail flit can accept a new  packet";
                $info="VC reallocation type: If set as atomic only empty VCs can be allocated for new packets. Whereas, in non-atomic a non-empty VC which has received the last packet tail flit can accept a new  packet";
Line 930... Line 939...
                $row=noc_param_widget ($mpsoc,$label,$param, $default,$type,$content,$info, $table,$row,$adv_set,'noc_param',undef);
                $row=noc_param_widget ($mpsoc,$label,$param, $default,$type,$content,$info, $table,$row,$adv_set,'noc_param',undef);
 
 
 
 
 
 
 
 
        if ($router_type eq '"VC_BASED"'){
 
        #vc/sw allocator type
        #vc/sw allocator type
                $label = 'VC/SW combination type';
                $label = 'VC/SW combination type';
                $param='COMBINATION_TYPE';
                $param='COMBINATION_TYPE';
                $default='"COMB_NONSPEC"';
                $default='"COMB_NONSPEC"';
                $content='"BASELINE","COMB_SPEC1","COMB_SPEC2","COMB_NONSPEC"';
                $content='"BASELINE","COMB_SPEC1","COMB_SPEC2","COMB_NONSPEC"';
                $type='Combo-box';
                $type='Combo-box';
                $info="The joint VC/ switch allocator type. using canonical combination is not recommanded";
                $info="The joint VC/ switch allocator type. using canonical combination is not recommanded";
 
        if ($router_type eq '"VC_BASED"'){
                $row=noc_param_widget ($mpsoc,$label,$param, $default,$type,$content,$info, $table,$row,$adv_set,'noc_param',undef);
                $row=noc_param_widget ($mpsoc,$label,$param, $default,$type,$content,$info, $table,$row,$adv_set,'noc_param',undef);
 
 
 
        } else{
 
                 $row=noc_param_widget ($mpsoc,$label,$param, $default,$type,$content,$info, $table,$row,0,'noc_param',undef);
 
 
        }
        }
 
 
        # Crossbar mux type 
        # Crossbar mux type 
                $label='Crossbar mux type';
                $label='Crossbar mux type';
                $param='MUX_TYPE';
                $param='MUX_TYPE';

powered by: WebSVN 2.1.0

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