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

Subversion Repositories socgen

[/] [socgen/] [trunk/] [tools/] [verilog/] [gen_verilog] - Diff between revs 124 and 125

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

Rev 124 Rev 125
Line 75... Line 75...
           "configuration=s" => \$configuration,
           "configuration=s" => \$configuration,
           "fragment","no_port","local_parameters","tb"
           "fragment","no_port","local_parameters","tb"
) || 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 gen_verilog -view {sim/syn}  -prefix /work -vendor vendor_name -project project_name  -component component_name  -version version_name -fragment -no_port -local_parameters -destination destination -configuration configuration -dest_dir  ../verilog";
  { print "\n gen_verilog -view {sim/syn}  -prefix /work -vendor vendor_name -project project_name  -component component_name  -version version_name -fragment -no_port -local_parameters -destination destination -configuration configuration -dest_dir  ../verilog";
Line 89... Line 88...
 
 
print "\n  GEN_verilog  $view  $prefix $vendor $project $component $version    $dest_dir  $destination \n";
print "\n  GEN_verilog  $view  $prefix $vendor $project $component $version    $dest_dir  $destination \n";
 
 
my $main_module_name = yp::lib::get_module_name($vendor,$project,$component,$version) ;
my $main_module_name = yp::lib::get_module_name($vendor,$project,$component,$version) ;
 
 
 
 
 
 
 
 
#############################################################################
#############################################################################
##
##
##
##
#############################################################################
#############################################################################
 
 
Line 102... Line 104...
 if($version)       {$variant   = "${component}_${version}";}
 if($version)       {$variant   = "${component}_${version}";}
 else               {$variant   = "${component}";}
 else               {$variant   = "${component}";}
 
 
 
 
 
 
#if( ($prefix eq "/work") ){$opt_tb = 1;}
 
 
my $lib_comp_sep    = yp::lib::find_lib_comp_sep($vendor,$project);
 
my $comp_xml_sep    = yp::lib::find_ipxact_component_path("spirit:component",$vendor,$project,$component,$version);
 
 
 
 
 
 
 
 
 
my $parser = XML::LibXML->new();
 
 
 
 
 
my $path  = "${home}${prefix}/${vendor}__${project}${lib_comp_sep}/${component}${comp_xml_sep}/${dest_dir}";
 
mkdir $path,0755             unless( -e $path );
 
 
 
my $path  = "${home}${prefix}/${vendor}__${project}${lib_comp_sep}/${component}${comp_xml_sep}/${dest_dir}/${view}";
 
mkdir $path,0755             unless( -e $path );
 
 
 
my   @filelist_hier     =       ();
 
my   @instantiations    =       ();
 
my   @parameters        =       ();
 
my   %parameter_values  =       ();
 
 
 
print  "  Building verilog for ${project} ${component}  ${variant} \n  ";
 
my $sogen_file               = $parser->parse_file(yp::lib::find_socgen("socgen:componentConfiguration",$vendor,$project,$component));
 
my $spirit_component_file    = $parser->parse_file(yp::lib::find_ipxact("spirit:component",$vendor,$project,$component,$version));
 
 
 
 
 
 
 
my $lib_sim_sep              = $sogen_file->findnodes("//socgen:componentConfiguration/socgen:sim/socgen:library_path/text()")->to_literal;
 
 
 
#print "XXXXXXX \n";
 
#print "XXXXXXX.  ${home}/projects/${vendor}/${project}/ip/${component}/sim \n";
 
#print "XXXXXXX   ${home}/projects/${vendor}/${project}${lib_sim_sep} \n";
 
 
 
 
 
 
 
 
 
#if( ($prefix eq "/work")  && ($lib_sim_sep)         ){$opt_tb = 1;}
 
 
 
 
if($opt_tb )
if($opt_tb )
{
{
   print "Creating testbench for   $vendor $project $component  $version \n";
   print "Creating testbench for   $vendor $project $component  $version \n";
 
 
 
 
   my $path  ="${home}/projects/${vendor}/${project}/ip/${component}/sim";
   my $path  ="${home}/projects/${vendor}/${project}${lib_sim_sep}";
   mkdir $path,0755             unless( -e $path );
   mkdir $path,0755             unless( -e $path );
 
 
   my $path  ="${home}/projects/${vendor}/${project}/ip/${component}/sim/testbenches";
   my $path  ="${home}/projects/${vendor}/${project}${lib_sim_sep}/testbenches";
   mkdir $path,0755             unless( -e $path );
   mkdir $path,0755             unless( -e $path );
 
 
      $path  ="${home}/projects/${vendor}/${project}/ip/${component}/sim/testbenches/xml";
      $path  ="${home}/projects/${vendor}/${project}${lib_sim_sep}/testbenches/xml";
   mkdir $path,0755             unless( -e $path );
   mkdir $path,0755             unless( -e $path );
 
 
 
 
   $outfile ="${home}/projects/${vendor}/${project}/ip/${component}/sim/testbenches/xml/${variant}_dut.params.xml";
   $outfile ="${home}/projects/${vendor}/${project}/ip/${component}/sim/testbenches/xml/${variant}_dut.params.xml";
   open TB_COMP_FILE,">$outfile" or die "unable to open $outfile";
   open TB_COMP_FILE,">$outfile" or die "unable to open $outfile";
Line 137... Line 175...
   print TB_COMP_FILE  "// regen by adding -tb to gen_verilog script      //\n";
   print TB_COMP_FILE  "// regen by adding -tb to gen_verilog script      //\n";
   print TB_COMP_FILE  "//                                                //\n";
   print TB_COMP_FILE  "//                                                //\n";
   print TB_COMP_FILE  "-->                                                 \n";
   print TB_COMP_FILE  "-->                                                 \n";
   print TB_COMP_FILE  "
   print TB_COMP_FILE  "
   print TB_COMP_FILE  "xmlns:spirit=\"http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009\"\n";
   print TB_COMP_FILE  "xmlns:spirit=\"http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009\"\n";
 
   print TB_COMP_FILE  "xmlns:socgen=\"http://opencores.org\"\n";
   print TB_COMP_FILE  "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n";
   print TB_COMP_FILE  "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n";
   print TB_COMP_FILE  "xsi:schemaLocation=\"http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009\n";
   print TB_COMP_FILE  "xsi:schemaLocation=\"http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009\n";
   print TB_COMP_FILE  "http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009/index.xsd\">\n";
   print TB_COMP_FILE  "http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009/index.xsd\">\n";
   print TB_COMP_FILE  "${vendor}\n";
   print TB_COMP_FILE  "${vendor}\n";
   print TB_COMP_FILE  "${project}\n";
   print TB_COMP_FILE  "${project}\n";
Line 156... Line 195...
   print TB_DESIGN_FILE  "// regen by adding -tb to gen_verilog script      //\n";
   print TB_DESIGN_FILE  "// regen by adding -tb to gen_verilog script      //\n";
   print TB_DESIGN_FILE  "//                                                //\n";
   print TB_DESIGN_FILE  "//                                                //\n";
   print TB_DESIGN_FILE  "-->                                                 \n";
   print TB_DESIGN_FILE  "-->                                                 \n";
   print TB_DESIGN_FILE  "
   print TB_DESIGN_FILE  "
   print TB_DESIGN_FILE  "xmlns:spirit=\"http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009\"\n";
   print TB_DESIGN_FILE  "xmlns:spirit=\"http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009\"\n";
 
   print TB_DESIGN_FILE  "xmlns:socgen=\"http://opencores.org\"\n";
   print TB_DESIGN_FILE  "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n";
   print TB_DESIGN_FILE  "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n";
   print TB_DESIGN_FILE  "xsi:schemaLocation=\"http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009\n";
   print TB_DESIGN_FILE  "xsi:schemaLocation=\"http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009\n";
   print TB_DESIGN_FILE  "http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009/index.xsd\">\n";
   print TB_DESIGN_FILE  "http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009/index.xsd\">\n";
   print TB_DESIGN_FILE  "${vendor}\n";
   print TB_DESIGN_FILE  "${vendor}\n";
   print TB_DESIGN_FILE  "${project}\n";
   print TB_DESIGN_FILE  "${project}\n";
   print TB_DESIGN_FILE  "${component}\n";
   print TB_DESIGN_FILE  "${component}\n";
   print TB_DESIGN_FILE  "${version}_dutg.design\n";
   print TB_DESIGN_FILE  "${version}_dutg.design\n";
 
 
 
 
 
 
 
 
 
 
}
}
 
 
 
 
my $lib_comp_sep    = yp::lib::find_lib_comp_sep($vendor,$project);
 
my $comp_xml_sep    = yp::lib::find_ipxact_component_path("spirit:component",$vendor,$project,$component,$version);
 
 
 
my $parser = XML::LibXML->new();
 
 
 
 
 
my $path  = "${home}${prefix}/${vendor}__${project}${lib_comp_sep}/${component}${comp_xml_sep}/${dest_dir}";
 
mkdir $path,0755             unless( -e $path );
 
 
 
my $path  = "${home}${prefix}/${vendor}__${project}${lib_comp_sep}/${component}${comp_xml_sep}/${dest_dir}/${view}";
 
mkdir $path,0755             unless( -e $path );
 
 
 
my   @filelist_hier     =       ();
 
my   @instantiations    =       ();
 
my   @parameters        =       ();
 
my   %parameter_values  =       ();
 
 
 
print  "  Building verilog for ${project} ${component}  ${variant} \n  ";
 
my $sogen_file                  = $parser->parse_file(yp::lib::find_socgen("socgen:componentConfiguration",$vendor,$project,$component));
 
my $spirit_component_file           = $parser->parse_file(yp::lib::find_ipxact("spirit:component",$vendor,$project,$component,$version));
 
 
 
 
 
 
 
 
 
     #/**********************************************************************/
     #/**********************************************************************/
     #/*                                                                    */
     #/*                                                                    */
     #/* if configuration set then read parameters from socgen:componentConfiguration file      */
     #/* if configuration set then read parameters from socgen:componentConfiguration file      */
     #/*                                                                    */
     #/*                                                                    */
     #/**********************************************************************/
     #/**********************************************************************/
Line 293... Line 305...
          $q_depth               = $9;
          $q_depth               = $9;
          $q_phy_name            = $10;
          $q_phy_name            = $10;
          $q_busref_name         = $11;
          $q_busref_name         = $11;
          $q_abslog_name         = $12;
          $q_abslog_name         = $12;
 
 
 
 
 
 
 
 
         push ( @decl_names,$q_index);
         push ( @decl_names,$q_index);
 
 
 
 
          if(  $decl_pnames{$q_index})
          if(  $decl_pnames{$q_index})
            {
            {
Line 574... Line 583...
     #/*                                                                    */
     #/*                                                                    */
     #/* Add parameters  to comp      */
     #/* Add parameters  to comp      */
     #/*                                                                    */
     #/*                                                                    */
     #/**********************************************************************/
     #/**********************************************************************/
print TB_COMP_FILE    "\n\n";
print TB_COMP_FILE    "\n\n";
 
print TB_COMP_FILE    "                                                  \n";
#print TB_COMP_FILE    "                                                  \n";
print TB_COMP_FILE    "                                   \n";
#print TB_COMP_FILE    "                                   \n";
print TB_COMP_FILE    "                                                 \n";
#print TB_COMP_FILE    "                                                 \n";
print TB_COMP_FILE    "              Dut                                   \n";
#print TB_COMP_FILE    "              Dut                                   \n";
print TB_COMP_FILE    "                                                 \n";
#print TB_COMP_FILE    "                                                 \n";
print TB_COMP_FILE    "              
#print TB_COMP_FILE    "              
print TB_COMP_FILE    "                                   spirit:library=\"${project}\"                                    \n";
#print TB_COMP_FILE    "                                   spirit:library=\"${project}\"                                    \n";
print TB_COMP_FILE    "                                   spirit:name=\"${component}\"                                    \n";
#print TB_COMP_FILE    "                                   spirit:name=\"${component}\"                                    \n";
print TB_COMP_FILE    "                                   spirit:version=\"${version}_dutg.design\"/>                                   \n";
#print TB_COMP_FILE    "                                   spirit:version=\"${version}_dutg.design\"/>                                   \n";
print TB_COMP_FILE    "                                                 \n";
#print TB_COMP_FILE    "                                                 \n";
print TB_COMP_FILE    "                                         \n";
#print TB_COMP_FILE    "                                         \n";
 
 
 
 
 
 
 
print TB_COMP_FILE    "\n";
print TB_COMP_FILE    "\n";
 
 
 
 
 
 
 
 
Line 702... Line 707...
 
 
 
 
 
 
#/*********************************************************************************************/
#/*********************************************************************************************/
#/                                                                                            */
#/                                                                                            */
#/                                                                                            */
#/ this routine does not follow busses down into componentRef                                 */
#/                                                                                            */
#/                                                                                            */
#/                                                                                            */
#/                                                                                            */
#/                                                                                            */
#/                                                                                            */
#/                                                                                            */
#/                                                                                            */
#/*********************************************************************************************/
#/*********************************************************************************************/
Line 728... Line 733...
 
 
   my @out_stack  = ();
   my @out_stack  = ();
 
 
 
 
   my $spirit_component_file    = $parser->parse_file(yp::lib::find_ipxact("spirit:component",$vendor,$project,$component,$version));
   my $spirit_component_file    = $parser->parse_file(yp::lib::find_ipxact("spirit:component",$vendor,$project,$component,$version));
   my @spirit_design_files       = yp::lib::find_ipxact_design_files($vendor,$project,$component,$version);
 
 
 
 
 
   my $busInterfaceTest = 0;
   my $busInterfaceTest = 0;
 
 
   my @mas_slave;
   my @mas_slave;
Line 769... Line 774...
 
 
           if(  ( $fff_xxx_name  eq  $busref) && (  $busref eq   $fff_cname  )       )
           if(  ( $fff_xxx_name  eq  $busref) && (  $busref eq   $fff_cname  )       )
             {
             {
             $busInterfaceTest = 1;
             $busInterfaceTest = 1;
             my $busdef_parser = XML::LibXML->new();
             my $busdef_parser = XML::LibXML->new();
#print "XXX  $fff_vendor $fff_library $fff_name $fff_version  \n";
 
 
 
 
             my $spirit_abstractor_filename     = yp::lib::find_ipxact("spirit:abstractionDefinition",$fff_vendor,$fff_library,$fff_name,$fff_version);
 
 
 
             unless($spirit_abstractor_filename){
 
              print "  $fff_vendor $fff_library $fff_name $fff_version  \n";
 
 
 
            }
 
 
 
 
             my $spirit_abstractor_file     = ($parser->parse_file(yp::lib::find_ipxact("spirit:abstractionDefinition",$fff_vendor,$fff_library,$fff_name,$fff_version))
             my $spirit_abstractor_file     = ($parser->parse_file(yp::lib::find_ipxact("spirit:abstractionDefinition",$fff_vendor,$fff_library,$fff_name,$fff_version))
 
 
 
 
                ) || die "(OOPs $fff_vendor $fff_library $fff_name $fff_version )";
                ) || die "(OOPs $fff_vendor $fff_library $fff_name $fff_version )";
 
 
Line 822... Line 836...
                              @out_stack      = sys::lib::trim_sort(@out_stack);
                              @out_stack      = sys::lib::trim_sort(@out_stack);
                              return(@out_stack);
                              return(@out_stack);
                              }
                              }
 
 
 
 
 
     my @spirit_design_files       = yp::lib::find_ipxact_design_files($vendor,$project,$component,$version);
 
 
     foreach  my   $sd_file (@spirit_design_files)
     foreach  my   $sd_file (@spirit_design_files)
     {
     {
 
 
 
     $_ = $sd_file;
 
        if(/:::(\S+):::(\S+):::(\S+):::(\S+):::/)
 
          {
 
          $q_vendor            = $1;
 
          $q_library           = $2;
 
          $q_design            = $3;
 
          $q_version           = $4;
 
          $sd_file             = $parser->parse_file(yp::lib::find_ipxact("spirit:design",$q_vendor,$q_library,$q_design,$q_version));
 
          }
 
 
     foreach  my   $x_name ($sd_file->findnodes('//spirit:hierConnections/spirit:hierConnection/@spirit:interfaceRef'))
     foreach  my   $x_name ($sd_file->findnodes('//spirit:hierConnections/spirit:hierConnection/@spirit:interfaceRef'))
        {
        {
        my($hierConn_name)                   = $x_name ->to_literal ;
        my($hierConn_name)                   = $x_name ->to_literal ;
        my($hierConn_comref_name)            = $x_name ->findnodes('../spirit:interface/@spirit:componentRef')->to_literal ;
        my($hierConn_comref_name)            = $x_name ->findnodes('../spirit:interface/@spirit:componentRef')->to_literal ;
Line 892... Line 915...
   {
   {
   my @params     = @_;
   my @params     = @_;
   my $spirit_component_file      = pop(@params);
   my $spirit_component_file      = pop(@params);
 
 
   print "\n";
   print "\n";
   foreach my $new_comp ($spirit_component_file->findnodes("//spirit:component/spirit:vendor"))
 
    {
 
    my($new_vendor)          = $new_comp->findnodes('./text()')->to_literal ;
 
    my($new_library)         = $new_comp->findnodes('../spirit:library/text()')->to_literal ;
 
    my($new_name)            = $new_comp->findnodes('../spirit:name/text()')->to_literal ;
 
    my($new_version)         = $new_comp->findnodes('../spirit:version/text()')->to_literal ;
 
#    print "XXXXXX  $new_vendor $new_library $new_name $new_version  COMPONENT \n";
 
    }
 
 
 
 
 
  foreach my $new_comp ($spirit_component_file->findnodes("//spirit:component/spirit:model/spirit:views/spirit:view/spirit:hierarchyRef"))
 
 
 
 
 
 
 
 
  foreach my $new_comp ($spirit_component_file->findnodes("//spirit:component/spirit:model/spirit:views/spirit:view/spirit:vendorExtensions/spirit:componentRef"))
    {
    {
            my($new_vendor)        = $new_comp->findnodes('./@spirit:vendor')->to_literal ;
            my($new_vendor)        = $new_comp->findnodes('./@spirit:vendor')->to_literal ;
            my($new_library)       = $new_comp->findnodes('./@spirit:library')->to_literal ;
            my($new_library)       = $new_comp->findnodes('./@spirit:library')->to_literal ;
            my($new_name)          = $new_comp->findnodes('./@spirit:name')->to_literal ;
            my($new_name)          = $new_comp->findnodes('./@spirit:name')->to_literal ;
            my($new_version)       = $new_comp->findnodes('./@spirit:version')->to_literal ;
            my($new_version)       = $new_comp->findnodes('./@spirit:version')->to_literal ;
 
            parse_design_files($parser->parse_file(yp::lib::find_ipxact("spirit:component",$new_vendor,$new_library,$new_name,$new_version )) );
 
   }
 
 
 
 
           my $foo = yp::lib::find_file_type($new_vendor,$new_library,$new_name,$new_version) ;
 
 
 
#              print "XXXXXZ  $new_vendor $new_library $new_name $new_version $foo\n";
 
 
 
     if($foo eq "spirit:component")
  foreach my $new_comp ($spirit_component_file->findnodes("//spirit:component/spirit:model/spirit:views/spirit:view/spirit:hierarchyRef"))
     {
     {
        parse_design_files($parser->parse_file(yp::lib::find_ipxact("spirit:component",$new_vendor,$new_library,$new_name,$new_version )) );
            my($new_vendor)        = $new_comp->findnodes('./@spirit:vendor')->to_literal ;
     }
            my($new_library)       = $new_comp->findnodes('./@spirit:library')->to_literal ;
 
            my($new_name)          = $new_comp->findnodes('./@spirit:name')->to_literal ;
 
            my($new_version)       = $new_comp->findnodes('./@spirit:version')->to_literal ;
 
            my $hier_ref_type = yp::lib::find_file_type($new_vendor,$new_library,$new_name,$new_version) ;
 
 
 
 
 
 
     elsif($foo eq "spirit:design")
     if($hier_ref_type eq "spirit:component")
     {
     {
        parse_design_file($parser->parse_file(yp::lib::find_ipxact("spirit:design",$new_vendor,$new_library,$new_name,$new_version )) );
 
#              print "XXXXXA+  $new_vendor $new_library $new_name $new_version \n";
 
 
 
      }
      }
 
 
     elsif($foo eq "spirit:designConfiguration")
 
 
     elsif($hier_ref_type eq "spirit:designConfiguration")
     {
     {
 
 
        my $spirit_designCfg_file
        my $spirit_designCfg_file
         = $parser->parse_file(yp::lib::find_ipxact("spirit:designConfiguration",$new_vendor,$new_library,$new_name,$new_version ));
         = $parser->parse_file(yp::lib::find_ipxact("spirit:designConfiguration",$new_vendor,$new_library,$new_name,$new_version ));
 
 
        foreach my $design_ref_view ($spirit_designCfg_file->findnodes('//spirit:designConfiguration'))
        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 ;
            $new_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 ;
            $new_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 ;
            $new_name            = $design_ref_view->findnodes('./spirit:designRef/@spirit:name')->to_literal ;
           my($hier_xref_version)        = $design_ref_view->findnodes('./spirit:designRef/@spirit:version')->to_literal ;
            $new_version         = $design_ref_view->findnodes('./spirit:designRef/@spirit:version')->to_literal ;
          parse_design_file($parser->parse_file(yp::lib::find_ipxact("spirit:design",$hier_xref_vendor,$hier_xref_library,$hier_xref_component,$hier_xref_version)));
            $hier_ref_type       = "spirit:design" ;
#           print "XXXXXA-  $hier_xref_vendor $hier_xref_library $hier_xref_component $hier_xref_version \n";
 
           }
           }
     }
     }
 
 
 
 
 
    if($hier_ref_type eq "spirit:design")
 
     {
 
        parse_design_file($parser->parse_file(yp::lib::find_ipxact("spirit:design",$new_vendor,$new_library,$new_name,$new_version )) );
 
      }
 
 
 
 
 
 
 
 
 
 
  }
  }
 
 
}
}
 
 
 
 
Line 971... Line 1003...
   {
   {
   my @params     = @_;
   my @params     = @_;
   my $spirit_component_file      = pop(@params);
   my $spirit_component_file      = pop(@params);
 
 
   print "\n";
   print "\n";
   foreach my $new_comp ($spirit_component_file->findnodes("//spirit:component/spirit:vendor"))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  foreach my $new_comp ($spirit_component_file->findnodes("//spirit:component/spirit:model/spirit:views/spirit:view/spirit:vendorExtensions/spirit:componentRef"))
    {
    {
    my($new_vendor)          = $new_comp->findnodes('./text()')->to_literal ;
            my($new_vendor)        = $new_comp->findnodes('./@spirit:vendor')->to_literal ;
    my($new_library)         = $new_comp->findnodes('../spirit:library/text()')->to_literal ;
            my($new_library)       = $new_comp->findnodes('./@spirit:library')->to_literal ;
    my($new_name)            = $new_comp->findnodes('../spirit:name/text()')->to_literal ;
            my($new_name)          = $new_comp->findnodes('./@spirit:name')->to_literal ;
    my($new_version)         = $new_comp->findnodes('../spirit:version/text()')->to_literal ;
            my($new_version)       = $new_comp->findnodes('./@spirit:version')->to_literal ;
#    print "xXXXXX  $new_vendor $new_library $new_name $new_version  COMPONENT \n";
            process_design_files($parser->parse_file(yp::lib::find_ipxact("spirit:component",$new_vendor,$new_library,$new_name,$new_version )) );
    }
    }
 
 
 
 
 
 
 
 
 
 
 
 
  foreach my $new_comp ($spirit_component_file->findnodes("//spirit:component/spirit:model/spirit:views/spirit:view/spirit:hierarchyRef"))
  foreach my $new_comp ($spirit_component_file->findnodes("//spirit:component/spirit:model/spirit:views/spirit:view/spirit:hierarchyRef"))
    {
    {
            my($new_vendor)        = $new_comp->findnodes('./@spirit:vendor')->to_literal ;
            my($new_vendor)        = $new_comp->findnodes('./@spirit:vendor')->to_literal ;
            my($new_library)       = $new_comp->findnodes('./@spirit:library')->to_literal ;
            my($new_library)       = $new_comp->findnodes('./@spirit:library')->to_literal ;
            my($new_name)          = $new_comp->findnodes('./@spirit:name')->to_literal ;
            my($new_name)          = $new_comp->findnodes('./@spirit:name')->to_literal ;
            my($new_version)       = $new_comp->findnodes('./@spirit:version')->to_literal ;
            my($new_version)       = $new_comp->findnodes('./@spirit:version')->to_literal ;
 
            my $hier_ref_type = yp::lib::find_file_type($new_vendor,$new_library,$new_name,$new_version) ;
 
 
 
 
           my $foo = yp::lib::find_file_type($new_vendor,$new_library,$new_name,$new_version) ;
     if($hier_ref_type eq "spirit:component")
 
 
#              print "xXXXXZ  $new_vendor $new_library $new_name $new_version $foo\n";
 
 
 
     if($foo eq "spirit:component")
 
     {
     {
        process_design_files($parser->parse_file(yp::lib::find_ipxact("spirit:component",$new_vendor,$new_library,$new_name,$new_version )) );
 
     }
     }
 
 
     elsif($foo eq "spirit:design")
 
     {
 
        process_design_file($parser->parse_file(yp::lib::find_ipxact("spirit:design",$new_vendor,$new_library,$new_name,$new_version )) );
 
#              print "xXXXXA+  $new_vendor $new_library $new_name $new_version \n";
 
 
 
      }
 
 
 
     elsif($foo eq "spirit:designConfiguration")
     elsif($hier_ref_type eq "spirit:designConfiguration")
     {
     {
 
 
        my $spirit_designCfg_file
        my $spirit_designCfg_file
         = $parser->parse_file(yp::lib::find_ipxact("spirit:designConfiguration",$new_vendor,$new_library,$new_name,$new_version ));
         = $parser->parse_file(yp::lib::find_ipxact("spirit:designConfiguration",$new_vendor,$new_library,$new_name,$new_version ));
 
 
        foreach my $design_ref_view ($spirit_designCfg_file->findnodes('//spirit:designConfiguration'))
        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 ;
           ($new_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 ;
           ($new_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 ;
           ($new_name)           = $design_ref_view->findnodes('./spirit:designRef/@spirit:name')->to_literal ;
           my($hier_xref_version)        = $design_ref_view->findnodes('./spirit:designRef/@spirit:version')->to_literal ;
           ($new_version)        = $design_ref_view->findnodes('./spirit:designRef/@spirit:version')->to_literal ;
          process_design_file($parser->parse_file(yp::lib::find_ipxact("spirit:design",$hier_xref_vendor,$hier_xref_library,$hier_xref_component,$hier_xref_version)));
           $hier_ref_type = "spirit:design";
#           print "xXXXXA-  $hier_xref_vendor $hier_xref_library $hier_xref_component $hier_xref_version \n";
 
           }
           }
     }
     }
 
 
 
 
 
     if($hier_ref_type eq "spirit:design")
 
     {
 
        process_design_file($parser->parse_file(yp::lib::find_ipxact("spirit:design",$new_vendor,$new_library,$new_name,$new_version )) );
 
 
 
 
 
      }
 
 
 
 
 
 
  }
  }
 
 
}
}
 
 
 
 
Line 1622... Line 1666...
 
 
 
 
 
 
 
 
 
 
foreach my $new_comp ($spirit_component_file->findnodes("//spirit:component/spirit:model/spirit:views/spirit:view/spirit:hierarchyRef"))
foreach my $new_comp ($spirit_component_file->findnodes("//spirit:component/spirit:model/spirit:views/spirit:view/spirit:vendorExtensions/spirit:componentRef"))
   {
   {
            my($new_vendor)        = $new_comp->findnodes('./@spirit:vendor')->to_literal ;
            my($new_vendor)        = $new_comp->findnodes('./@spirit:vendor')->to_literal ;
            my($new_library)       = $new_comp->findnodes('./@spirit:library')->to_literal ;
            my($new_library)       = $new_comp->findnodes('./@spirit:library')->to_literal ;
            my($new_name)          = $new_comp->findnodes('./@spirit:name')->to_literal ;
            my($new_name)          = $new_comp->findnodes('./@spirit:name')->to_literal ;
            my($new_version)       = $new_comp->findnodes('./@spirit:version')->to_literal ;
            my($new_version)       = $new_comp->findnodes('./@spirit:version')->to_literal ;
 
    my $hier_ref_type = yp::lib::find_file_type($new_vendor,$new_library,$new_name,$new_version) ;
            my $foo = yp::lib::find_file_type($new_vendor,$new_library,$new_name,$new_version) ;
    if($hier_ref_type eq "spirit:component")
 
 
     if($foo eq "spirit:component")
 
     {
     {
     my $spirit_sub_component_file           = $parser->parse_file(yp::lib::find_ipxact("spirit:component",$new_vendor,$new_library,$new_name,$new_version));
     my $spirit_sub_component_file           = $parser->parse_file(yp::lib::find_ipxact("spirit:component",$new_vendor,$new_library,$new_name,$new_version));
     parse_component_file($spirit_sub_component_file);
     parse_component_file($spirit_sub_component_file);
     }
     }
 
 
     elsif($foo eq "spirit:design")
 
     {
 
 
 
 
 
      }
      }
 
 
     elsif($foo eq "spirit:designConfiguration")
 
     {
 
 
 
        my $spirit_designCfg_file
 
         = $parser->parse_file(yp::lib::find_ipxact("spirit:designConfiguration",$new_vendor,$new_library,$new_name,$new_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));
 
 
 
#              print "XXXXXA  $hier_xref_vendor $hier_xref_library $hier_xref_component $hier_xref_version \n";
 
           }
 
     }
 
 
 
  }
 
 
 
 
 
 
 
     #/**********************************************************************/
     #/**********************************************************************/
     #/*                                                                    */
     #/*                                                                    */
Line 1703... Line 1722...
 
 
               if(   $mmm_cname  eq  $rrr_int_name )
               if(   $mmm_cname  eq  $rrr_int_name )
                 {
                 {
 
 
                 my $busdef_parser = XML::LibXML->new();
                 my $busdef_parser = XML::LibXML->new();
#                 print "XXXXXX  $mmm_vendor $mmm_library $mmm_name $mmm_version  \n";
 
 
 
 
                 my $spirit_abstractor_filename    = yp::lib::find_ipxact("spirit:abstractionDefinition",$mmm_vendor,$mmm_library,$mmm_name,$mmm_version);
 
 
 
                 unless($spirit_abstractor_filename)
 
 
 
                 {print "  $mmm_vendor $mmm_library $mmm_name $mmm_version  \n";
 
}
 
 
                 my $spirit_abstractor_file    = ($parser->parse_file(yp::lib::find_ipxact("spirit:abstractionDefinition",$mmm_vendor,$mmm_library,$mmm_name,$mmm_version))
                 my $spirit_abstractor_file    = ($parser->parse_file(yp::lib::find_ipxact("spirit:abstractionDefinition",$mmm_vendor,$mmm_library,$mmm_name,$mmm_version))
 
 
                ) || die "(OOPs $mmm_vendor $mmm_library $mmm_name $mmm_version )";
                ) || die "(OOPs $mmm_vendor $mmm_library $mmm_name $mmm_version )";
 
 
 
 

powered by: WebSVN 2.1.0

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