Line 161... |
Line 161... |
$max=~ s/\D//g;
|
$max=~ s/\D//g;
|
$step=~ s/\D//g;
|
$step=~ s/\D//g;
|
my $spin=gen_spin($min,$max,$step);
|
my $spin=gen_spin($min,$max,$step);
|
$spin->set_value($value);
|
$spin->set_value($value);
|
$table->attach_defaults ($spin, 3, 4, $row, $row+1);
|
$table->attach_defaults ($spin, 3, 4, $row, $row+1);
|
$spin-> signal_connect("changed" => sub{$new_param_value{$p}=$spin->get_value_as_int();});
|
$spin-> signal_connect("value_changed" => sub{ $new_param_value{$p}=$spin->get_value_as_int(); });
|
|
|
# $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);
|
}
|
}
|
if (defined $info && $type ne "Fixed"){
|
if (defined $info && $type ne "Fixed"){
|
my $info_button=def_image_button('icons/help.png');
|
my $info_button=def_image_button('icons/help.png');
|
Line 747... |
Line 747... |
my $iter = $selection->get_selected;
|
my $iter = $selection->get_selected;
|
return unless defined $iter;
|
return unless defined $iter;
|
|
|
my ($category) = $model->get ($iter, CATRGORY_COLUMN);
|
my ($category) = $model->get ($iter, CATRGORY_COLUMN);
|
my ($module) = $model->get ($iter,MODULE_COLUMN );
|
my ($module) = $model->get ($iter,MODULE_COLUMN );
|
my $describ=$ip->get_describtion($category,$module);
|
my $describ=$ip->ip_get($category,$module,"description");
|
if($describ){
|
if($describ){
|
#print "$entry describtion is: $describ \n";
|
#print "$entry describtion is: $describ \n";
|
show_info($info,$describ);
|
show_info($info,$describ);
|
|
|
}
|
}
|
Line 816... |
Line 816... |
my $module =$soc->soc_get_module($id);
|
my $module =$soc->soc_get_module($id);
|
my $module_name =$soc->soc_get_module_name($id);
|
my $module_name =$soc->soc_get_module_name($id);
|
my $category =$soc->soc_get_category($id);
|
my $category =$soc->soc_get_category($id);
|
my $inst =$soc->soc_get_instance_name($id);
|
my $inst =$soc->soc_get_instance_name($id);
|
|
|
my @new=$ip->ip_get_files( $category,$module,$list_name);
|
my @new=$ip->ip_get_list( $category,$module,$list_name);
|
|
#print "@new\n";
|
foreach my $f(@new){
|
foreach my $f(@new){
|
my $n="$project_dir$f";
|
my $n="$project_dir$f";
|
if (!(-f "$n") && !(-f "$f" ) ){
|
if (!(-f "$n") && !(-f "$f" ) && !(-d "$n") && !(-d "$f" ) ){
|
$warnings=(defined $warnings)? "$warnings WARNING: Can not find \"$f\" which is required for \"$inst\" \n":"WARNING: Can not find \"$f\" which is required for \"$inst\"\n ";
|
$warnings=(defined $warnings)? "$warnings WARNING: Can not find \"$f\" which is required for \"$inst\" \n":"WARNING: Can not find \"$f\" which is required for \"$inst\"\n ";
|
|
|
}
|
}
|
|
|
|
|
Line 875... |
Line 876... |
mkpath("$target_dir/sw",1,0755);
|
mkpath("$target_dir/sw",1,0755);
|
|
|
#copy hdl codes in src_verilog
|
#copy hdl codes in src_verilog
|
|
|
my ($file_ref,$warnings)= get_all_files_list($soc,"hdl_files");
|
my ($file_ref,$warnings)= get_all_files_list($soc,"hdl_files");
|
foreach my $f(@{$file_ref}){
|
copy_file_and_folders($file_ref,$project_dir,"$target_dir/src_verilog/lib");
|
my $n="$project_dir$f";
|
|
if (-f "$n") {
|
|
copy ("$n","$target_dir/src_verilog/lib");
|
|
}elsif(-f "$f" ){
|
|
copy ("$f","$target_dir/src_verilog/lib");
|
|
|
|
}
|
|
|
|
|
|
}
|
|
show_info(\$info,$warnings) if(defined $warnings);
|
show_info(\$info,$warnings) if(defined $warnings);
|
|
|
|
|
#my @pathes=("$dir/../src_peripheral","$dir/../src_noc","$dir/../src_processor");
|
#my @pathes=("$dir/../src_peripheral","$dir/../src_noc","$dir/../src_processor");
|
#foreach my $p(@pathes){
|
#foreach my $p(@pathes){
|
Line 905... |
Line 897... |
|
|
move ("$dir/lib/verilog/$name.v","$target_dir/src_verilog/");
|
move ("$dir/lib/verilog/$name.v","$target_dir/src_verilog/");
|
|
|
|
|
|
|
# Write header files
|
# Write system.h and generated file
|
my $file_h=generate_header_file($soc);
|
generate_header_file($soc,$project_dir,$target_dir,$dir);
|
open(FILE, ">lib/verilog/$name.h") || die "Can not open: $!";
|
|
print FILE $file_h;
|
|
close(FILE) || die "Error closing file: $!";
|
|
move ("$dir/lib/verilog/$name.h","$target_dir/sw/");
|
|
|
|
# Write Software files
|
# Write Software files
|
($file_ref,$warnings)= get_all_files_list($soc,"sw_files");
|
($file_ref,$warnings)= get_all_files_list($soc,"sw_files");
|
|
copy_file_and_folders($file_ref,$project_dir,"$target_dir/sw");
|
|
|
|
# Write Software gen files
|
|
($file_ref,$warnings)= get_all_files_list($soc,"gen_sw_files");
|
foreach my $f(@{$file_ref}){
|
foreach my $f(@{$file_ref}){
|
my $name= basename($f);
|
#print "$f\n";
|
|
|
my $n="$project_dir$f";
|
|
if (-f "$n") { #copy file
|
|
copy ("$n","$target_dir/sw");
|
|
}elsif(-f "$f" ){
|
|
copy ("$f","$target_dir/sw");
|
|
|
|
}elsif (-d "$n") {#copy folder
|
|
dircopy ("$n","$target_dir/sw/$name");
|
|
}elsif(-d "$f" ){
|
|
dircopy ("$f","$target_dir/sw/$name");
|
|
|
|
}
|
}
|
|
|
|
|
}
|
|
# Write main.c file if not exist
|
# Write main.c file if not exist
|
my $n="$target_dir/sw/main.c";
|
my $n="$target_dir/sw/main.c";
|
if (!(-f "$n")) {
|
if (!(-f "$n")) {
|
# Write main.c
|
# Write main.c
|
open(FILE, ">$n") || die "Can not open: $!";
|
open(FILE, ">$n") || die "Can not open: $!";
|
Line 1234... |
Line 1215... |
my $label;
|
my $label;
|
my $valid=1;
|
my $valid=1;
|
my $info;
|
my $info;
|
if(is_hex($base_in) && is_hex($end_in)){
|
if(is_hex($base_in) && is_hex($end_in)){
|
my $size=(hex ($end_in) >= hex ($base_in))? hex ($end_in) - hex ($base_in) +1 : 0;
|
my $size=(hex ($end_in) >= hex ($base_in))? hex ($end_in) - hex ($base_in) +1 : 0;
|
my $size_text= $size==0 ? 'Error':
|
my $size_text= metric_conversion($size);
|
$size<(1 << 10)? $size:
|
|
$size<(1 << 20)? join (' ', ($size>>10,"K")) :
|
|
$size<(1 << 30)? join (' ', ($size>>20,"M")) :
|
|
join (' ', ($size>>30,"G")) ;
|
|
$label= gen_label_in_center($size_text);
|
$label= gen_label_in_center($size_text);
|
$$newbase_ref[$number]=hex($base_in);
|
$$newbase_ref[$number]=hex($base_in);
|
$$newend_ref[$number]=hex($end_in);
|
$$newend_ref[$number]=hex($end_in);
|
$info=check_entered_address($newbase_ref,$newend_ref,$connects_ref,$number);
|
$info=check_entered_address($newbase_ref,$newend_ref,$connects_ref,$number);
|
if(defined $info) {$valid=0;}
|
if(defined $info) {$valid=0;}
|