OpenCores
URL https://opencores.org/ocsvn/socgen/socgen/trunk

Subversion Repositories socgen

[/] [socgen/] [trunk/] [tools/] [sys/] [soc_link_child] - Diff between revs 117 and 118

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

Rev 117 Rev 118
Line 69... Line 69...
 
 
Getopt::Long::config("require_order", "prefix=-");
Getopt::Long::config("require_order", "prefix=-");
GetOptions("h","help",
GetOptions("h","help",
           "vendor=s" => \$vendor,
           "vendor=s" => \$vendor,
           "project=s" => \$project,
           "project=s" => \$project,
           "lib_comp_sep=s" => \$lib_comp_sep,
 
           "component=s" => \$component,
           "component=s" => \$component,
           "version=s" => \$version
           "version=s" => \$version
) || die "(use '$program_name -h' for help)";
) || die "(use '$program_name -h' for help)";
 
 
 
 
##############################################################################
##############################################################################
## Help option
## Help option
##############################################################################
##############################################################################
if ( $opt_h or $opt_help  )
if ( $opt_h or $opt_help  )
   {
   {
   print "\n type soc_link_child  -vendor vendor_name -project project_name -lib_comp_sep /ip/ -component  component_name -comp_xml_sep /rtl/xml/   ";
   print "\n type soc_link_child  -vendor vendor_name -project project_name  -component  component_name -version  version_name   ";
   print "\n";
   print "\n";
   exit 1;
   exit 1;
   }
   }
 
 
 
 
Line 94... Line 93...
 
 
$home              = cwd();
$home              = cwd();
 
 
 
 
my $parser           = XML::LibXML->new();
my $parser           = XML::LibXML->new();
 
my $lib_comp_sep    = yp::lib::find_lib_comp_sep($vendor,$project);
 
 
 
 
 
my $variant;
 
 
 
if($version) {$variant = "${component}_${version}";}
 
else         {$variant = "${component}";}
 
 
 
 
 
 
 
#/*********************************************************************************************/
 
#/                                                                                            */
 
#/ link overlay projects                                                                      */
 
#/                                                                                            */
 
#/*********************************************************************************************/
 
 
 
 
 
 
 
 
 
my $socgen_ip_file     = $parser->parse_file(yp::lib::find_socgen("socgen:ip",$vendor,$project,$component));
 
 
 
 
 
 
 
foreach  my   $i_name ($socgen_ip_file->findnodes("//chips/chip[variant/text() = '$variant']"))
 
   {
 
   my($chip)  = $i_name ->findnodes('name/text()')->to_literal ;
 
   my($replace_vendor)  = $i_name ->findnodes('socgen:target/socgen:vendor/text()')->to_literal ;
 
   my($replace_library)  = $i_name ->findnodes('socgen:target/socgen:library/text()')->to_literal ;
 
 
 
   my @replace_components = yp::lib::find_components("spirit:component",$replace_vendor,$replace_library);
 
   foreach my $replace_component (@replace_components)
 
     {
 
#      print " VVVVVV  $replace_vendor $replace_library $replace_component \n" ;
 
      &link_child( $project,$replace_component, $replace_library );
 
     }
 
   }
 
 
 
 
 
 
 
 
 
 
Line 257... Line 292...
   my $project    = pop(@params);
   my $project    = pop(@params);
   my $vendor     = pop(@params);
   my $vendor     = pop(@params);
 
 
   $home = cwd();
   $home = cwd();
 
 
   my $spirit_component_file    = $parser->parse_file(yp::lib::find_ipxact("spirit:component",$vendor,$project,$component,$version));
 
   push(@filelist_hier,"::${project}::${component}::");
   push(@filelist_hier,"::${project}::${component}::");
 
 
 
   my $spirit_design_file = yp::lib::find_ipxact_design_file($vendor,$project,$component,$version );
 
   my $spirit_padring_design_file = yp::lib::find_ipxact_padring_design_file($vendor,$project,$component,$version );
 
 
 
 
foreach my $comp_view ($spirit_component_file->findnodes('//spirit:component/spirit:model/spirit:views/spirit:view'))
 
   {
 
   my($view_name)          = $comp_view->findnodes('./spirit:name/text()')->to_literal ;
 
   if($view_name eq "Hierarchical")
 
     {
 
     my($hier_ref_vendor)         = $comp_view->findnodes('./spirit:hierarchyRef/@spirit:vendor')->to_literal ;
 
     my($hier_ref_library)        = $comp_view->findnodes('./spirit:hierarchyRef/@spirit:library')->to_literal ;
 
     my($hier_ref_component)      = $comp_view->findnodes('./spirit:hierarchyRef/@spirit:name')->to_literal ;
 
     my($hier_ref_version)        = $comp_view->findnodes('./spirit:hierarchyRef/@spirit:version')->to_literal ;
 
     my $spirit_designCfg_file
 
      = $parser->parse_file(yp::lib::find_ipxact("spirit:designConfiguration",$hier_ref_vendor,$hier_ref_library,$hier_ref_component,$hier_ref_version ));
 
 
 
   foreach my $design_ref_view ($spirit_designCfg_file->findnodes('//spirit:designConfiguration'))
 
     {
 
     my($hier_xref_vendor)         = $design_ref_view->findnodes('./spirit:designRef/@spirit:vendor')->to_literal ;
 
     my($hier_xref_library)        = $design_ref_view->findnodes('./spirit:designRef/@spirit:library')->to_literal ;
 
     my($hier_xref_component)      = $design_ref_view->findnodes('./spirit:designRef/@spirit:name')->to_literal ;
 
     my($hier_xref_version)        = $design_ref_view->findnodes('./spirit:designRef/@spirit:version')->to_literal ;
 
     my $spirit_design_file
 
      = $parser->parse_file(yp::lib::find_ipxact("spirit:design",$hier_xref_vendor,$hier_xref_library,$hier_xref_component,$hier_xref_version ));
 
 
 
   #/*********************************************************************************************/
   #/*********************************************************************************************/
   #/                                                                                            */
   #/                                                                                            */
   #/  Create filelists for simulation, code coverage, linting and synthesis                     */
   #/  Create filelists for simulation, code coverage, linting and synthesis                     */
   #/                                                                                            */
   #/                                                                                            */
   #/                                                                                            */
   #/                                                                                            */
   #/*********************************************************************************************/
   #/*********************************************************************************************/
 
 
 
   if($spirit_design_file)
 
    {
   foreach  my   $i_name ($spirit_design_file->findnodes("//spirit:design/spirit:componentInstances/spirit:componentInstance/spirit:componentRef/\@spirit:vendor"))
   foreach  my   $i_name ($spirit_design_file->findnodes("//spirit:design/spirit:componentInstances/spirit:componentInstance/spirit:componentRef/\@spirit:vendor"))
         {
         {
         my($vendor_name)         = $i_name  ->to_literal ;
         my($vendor_name)         = $i_name  ->to_literal ;
         my($library_name)        = $i_name  ->findnodes('../@spirit:library')->to_literal ;
         my($library_name)        = $i_name  ->findnodes('../@spirit:library')->to_literal ;
         my($component_name)      = $i_name  ->findnodes('../@spirit:name')->to_literal ;
         my($component_name)      = $i_name  ->findnodes('../@spirit:name')->to_literal ;
         my($version_name)        = $i_name  ->findnodes('../@spirit:version')->to_literal ;
         my($version_name)        = $i_name  ->findnodes('../@spirit:version')->to_literal ;
 
 
 
 
         my  @filelist_sub = parse_hier("$vendor_name","$library_name","$component_name","$version_name");
         my  @filelist_sub = parse_hier("$vendor_name","$library_name","$component_name","$version_name");
         foreach $line (@filelist_sub) { push(@filelist_hier,"$line"); }
         foreach $line (@filelist_sub) { push(@filelist_hier,"$line"); }
 
        }
         }
         }
 
 
 
   if($spirit_padring_design_file)
 
    {
 
   foreach  my   $i_name ($spirit_padring_design_file->findnodes("//spirit:design/spirit:componentInstances/spirit:componentInstance/spirit:componentRef/\@spirit:vendor"))
 
        {
 
        my($vendor_name)         = $i_name  ->to_literal ;
 
        my($library_name)        = $i_name  ->findnodes('../@spirit:library')->to_literal ;
 
        my($component_name)      = $i_name  ->findnodes('../@spirit:name')->to_literal ;
 
        my($version_name)        = $i_name  ->findnodes('../@spirit:version')->to_literal ;
 
 
 
        my  @filelist_sub = parse_hier("$vendor_name","$library_name","$component_name","$version_name");
     }
        foreach $line (@filelist_sub) { push(@filelist_hier,"$line"); }
     }
     }
   }
   }
 
 
 
 
 
 

powered by: WebSVN 2.1.0

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