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