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/] [soc_gen.pl] - Diff between revs 23 and 24

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

Rev 23 Rev 24
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;}

powered by: WebSVN 2.1.0

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