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 29 and 30

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

Rev 29 Rev 30
Line 179... Line 179...
        my @socs=$mpsoc->mpsoc_get_soc_list();
        my @socs=$mpsoc->mpsoc_get_soc_list();
        foreach my $soc_name (@socs){
        foreach my $soc_name (@socs){
                my %param_value;
                my %param_value;
                my $top=$mpsoc->mpsoc_get_soc($soc_name);
                my $top=$mpsoc->mpsoc_get_soc($soc_name);
                my @insts=$top->top_get_all_instances();
                my @insts=$top->top_get_all_instances();
                my @exceptions=('ni0');
                my @exceptions=get_NI_instance_list($top);
                @insts=get_diff_array(\@insts,\@exceptions);
                @insts=get_diff_array(\@insts,\@exceptions);
                foreach my $inst (@insts){
                foreach my $inst (@insts){
                        my @params=$top->top_get_parameter_list($inst);
                        my @params=$top->top_get_parameter_list($inst);
                        foreach my $p (@params){
                        foreach my $p (@params){
                                my  ($default,$type,$content,$info,$global_param,$redefine)=$top->top_get_parameter($inst,$p);
                                my  ($default,$type,$content,$info,$global_param,$redefine)=$top->top_get_parameter($inst,$p);
Line 219... Line 219...
                my $top=$soc->soc_get_top();
                my $top=$soc->soc_get_top();
                if (defined $top){
                if (defined $top){
                        my @instance_list=$top->top_get_all_instances();
                        my @instance_list=$top->top_get_all_instances();
                        #check if the soc has ni port
                        #check if the soc has ni port
                        foreach my $instanc(@instance_list){
                        foreach my $instanc(@instance_list){
                                my $module=$top->top_get_def_of_instance($instanc,'module');
                                my $category=$top->top_get_def_of_instance($instanc,'category');
                                if($module eq 'ni')
                                if($category eq 'NoC')
                                {
                                {
                                        my $name=$soc->object_get_attribute('soc_name');
                                        my $name=$soc->object_get_attribute('soc_name');
                                        $mpsoc->mpsoc_add_soc($name,$top);
                                        $mpsoc->mpsoc_add_soc($name,$top);
                                        #print" $name\n";
                                        #print" $name\n";
                                }
                                }
Line 249... Line 249...
        return $mpsoc->mpsoc_get_soc_list;
        return $mpsoc->mpsoc_get_soc_list;
 
 
 
 
 
 
}
}
 
 
 
 
 
sub get_NI_instance_list {
 
        my $top=shift;
 
        my @nis;
 
        my @instance_list=$top->top_get_all_instances();
 
        #check if the soc has ni port
 
        foreach my $instanc(@instance_list){
 
                        my $category=$top->top_get_def_of_instance($instanc,'category');
 
                         push(@nis,$instanc) if($category eq 'NoC') ;
 
        }
 
        return @nis;
 
}
 
 
####################
####################
# get_conflict_decision
# get_conflict_decision
###########################
###########################
sub b_box{
sub b_box{
# create a new button
# create a new button
Line 417... Line 431...
        my %param_value=(defined $tile) ? $top->top_get_custom_soc_param($tile)  : $top->top_get_default_soc_param();
        my %param_value=(defined $tile) ? $top->top_get_custom_soc_param($tile)  : $top->top_get_default_soc_param();
 
 
 
 
 
 
        my @insts=$top->top_get_all_instances();
        my @insts=$top->top_get_all_instances();
        my @exceptions=('ni0');
        my @exceptions=get_NI_instance_list($top);
        @insts=get_diff_array(\@insts,\@exceptions);
        @insts=get_diff_array(\@insts,\@exceptions);
        foreach my $inst (@insts){
        foreach my $inst (@insts){
                my @params=$top->top_get_parameter_list($inst);
                my @params=$top->top_get_parameter_list($inst);
                foreach my $p (@params){
                foreach my $p (@params){
                        my  ($default,$type,$content,$info,$global_param,$redefine)=$top->top_get_parameter($inst,$p);
                        my  ($default,$type,$content,$info,$global_param,$redefine)=$top->top_get_parameter($inst,$p);
Line 962... Line 976...
                         $label="Class $i Permitted VCs";
                         $label="Class $i Permitted VCs";
                         $param="Cn_$i";
                         $param="Cn_$i";
                         $type="Check-box";
                         $type="Check-box";
                         $content=$v;
                         $content=$v;
                         $info="Select the permitted VCs which the message class $i can be sent via them.";
                         $info="Select the permitted VCs which the message class $i can be sent via them.";
                         $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,'class_param',undef);
 
 
 
 
                }
                }
 
 
 
 
Line 991... Line 1005...
        $label="Add pipeline reg after crossbar";
        $label="Add pipeline reg after crossbar";
        $param="ADD_PIPREG_AFTER_CROSSBAR";
        $param="ADD_PIPREG_AFTER_CROSSBAR";
        $type="Check-box";
        $type="Check-box";
        $content=1;
        $content=1;
        $default="1\'b0";
        $default="1\'b0";
        $info="If ebabled it adds a pipline register at the output port of the router.";
        $info="If enabeled it adds a pipline register at the output port of the router.";
        $row=noc_param_widget ($mpsoc,$label,$param, $default,$type,$content,$info, $table,$row,$adv_set,'noc_param');
        $row=noc_param_widget ($mpsoc,$label,$param, $default,$type,$content,$info, $table,$row,$adv_set,'noc_param');
 
 
 
 
 
 
 
 
Line 1175... Line 1189...
                #update core id
                #update core id
                $soc->object_add_attribute('global_param','CORE_ID',$tile_num);
                $soc->object_add_attribute('global_param','CORE_ID',$tile_num);
                #update NoC param
                #update NoC param
                #my %nocparam = %{$mpsoc->object_get_attribute('noc_param',undef)};
                #my %nocparam = %{$mpsoc->object_get_attribute('noc_param',undef)};
                my $nocparam =$mpsoc->object_get_attribute('noc_param',undef);
                my $nocparam =$mpsoc->object_get_attribute('noc_param',undef);
                $soc->soc_add_instance_param('ni0' ,$nocparam );
                my $top=$mpsoc->mpsoc_get_soc($soc_name);
 
                my @nis=get_NI_instance_list($top);
 
                $soc->soc_add_instance_param($nis[0] ,$nocparam );
                #foreach my $p ( sort keys %nocparam ) {
                #foreach my $p ( sort keys %nocparam ) {
 
 
                #       print "$p = $nocparam{$p} \n";
                #       print "$p = $nocparam{$p} \n";
                #}
                #}
 
 

powered by: WebSVN 2.1.0

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