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

Subversion Repositories socgen

[/] [socgen/] [trunk/] [tools/] [verilog/] [gen_verilog] - Diff between revs 121 and 122

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

Rev 121 Rev 122
Line 87... Line 87...
    exit 1;
    exit 1;
  }
  }
 
 
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) ;
 
 
#############################################################################
#############################################################################
##
##
##
##
#############################################################################
#############################################################################
Line 123... Line 123...
   open TB_COMP_FILE,">$outfile" or die "unable to open $outfile";
   open TB_COMP_FILE,">$outfile" or die "unable to open $outfile";
 
 
   $outfile ="${home}/projects/${vendor}/${project}/ip/${component}/sim/xml/${variant}_dutg.design.xml";
   $outfile ="${home}/projects/${vendor}/${project}/ip/${component}/sim/xml/${variant}_dutg.design.xml";
   open TB_DESIGN_FILE,">$outfile" or die "unable to open $outfile";
   open TB_DESIGN_FILE,">$outfile" or die "unable to open $outfile";
 
 
 
 
   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: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";
Line 136... Line 144...
   print TB_COMP_FILE  "${component}\n";
   print TB_COMP_FILE  "${component}\n";
   print TB_COMP_FILE  "${version}_dut.params\n";
   print TB_COMP_FILE  "${version}_dut.params\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: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";
Line 221... Line 236...
foreach my $comp_view ($spirit_component_file->findnodes("//spirit:component/spirit:model/spirit:views/spirit:view/spirit:name[text() = '$view']"             ))
foreach my $comp_view ($spirit_component_file->findnodes("//spirit:component/spirit:model/spirit:views/spirit:view/spirit:name[text() = '$view']"             ))
   {
   {
   my($view_fileset_name)  = $comp_view->findnodes('../spirit:fileSetRef/spirit:localName/text()')->to_literal ;
   my($view_fileset_name)  = $comp_view->findnodes('../spirit:fileSetRef/spirit:localName/text()')->to_literal ;
   $outfile ="${home}${prefix}/${vendor}__${project}${lib_comp_sep}/${component}${comp_xml_sep}/${dest_dir}/${view}/${destination}";
   $outfile ="${home}${prefix}/${vendor}__${project}${lib_comp_sep}/${component}${comp_xml_sep}/${dest_dir}/${view}/${destination}";
   open DEST_FILE,">$outfile" or die "unable to open $outfile";
   open DEST_FILE,">$outfile" or die "unable to open $outfile";
   unless ($opt_fragment){     print DEST_FILE  "\n module \n\n  $variant \n ";}
   unless ($opt_fragment){     print DEST_FILE  "\n module \n\n  $main_module_name \n ";}
 
 
   #/*****************************************************************************/
   #/*****************************************************************************/
   #/*  wire_decs array holds all port and signal declarations                   */
   #/*  wire_decs array holds all port and signal declarations                   */
   #/*  :::name:::node_input_output:::wire_reg:::scaler_vector:::left:::right::: */
   #/*  :::name:::node_input_output:::wire_reg:::scaler_vector:::left:::right::: */
   #/*****************************************************************************/
   #/*****************************************************************************/
Line 730... Line 745...
        my($fff_cname)         = $bus_iface->findnodes('../spirit:name/text()')->to_literal ;
        my($fff_cname)         = $bus_iface->findnodes('../spirit:name/text()')->to_literal ;
        my($fff_vendor)        = $bus_iface->findnodes('../spirit:abstractionType/@spirit:vendor')->to_literal ;
        my($fff_vendor)        = $bus_iface->findnodes('../spirit:abstractionType/@spirit:vendor')->to_literal ;
        my($fff_library)       = $bus_iface->findnodes('../spirit:abstractionType/@spirit:library')->to_literal ;
        my($fff_library)       = $bus_iface->findnodes('../spirit:abstractionType/@spirit:library')->to_literal ;
        my($fff_name)          = $bus_iface->findnodes('../spirit:abstractionType/@spirit:name')->to_literal ;
        my($fff_name)          = $bus_iface->findnodes('../spirit:abstractionType/@spirit:name')->to_literal ;
        my($fff_version)       = $bus_iface->findnodes('../spirit:abstractionType/@spirit:version')->to_literal ;
        my($fff_version)       = $bus_iface->findnodes('../spirit:abstractionType/@spirit:version')->to_literal ;
        my $fff_variant_name   = "";
 
        if($fff_version)         {$fff_variant_name = "${fff_name}_${fff_version}";}
 
        else                     {$fff_variant_name = "${fff_name}";}
 
 
 
 
 
 
 
 
 
        foreach my $port_face ($spirit_component_file->findnodes('//spirit:component/spirit:busInterfaces/spirit:busInterface/spirit:portMaps/spirit:portMap/spirit:logicalPort'))
        foreach my $port_face ($spirit_component_file->findnodes('//spirit:component/spirit:busInterfaces/spirit:busInterface/spirit:portMaps/spirit:portMap/spirit:logicalPort'))
           {
           {
 
 
Line 756... Line 766...
 
 
           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_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 )";
 
 
 
 
 
 
             foreach my $abstr_view ($spirit_abstractor_file->findnodes("//spirit:abstractionDefinition/spirit:ports/spirit:port/spirit:logicalName[text() = '$fff_log_name']"))
             foreach my $abstr_view ($spirit_abstractor_file->findnodes("//spirit:abstractionDefinition/spirit:ports/spirit:port/spirit:logicalName[text() = '$fff_log_name']"))
                {
                {
Line 785... Line 797...
                  my $fff_dir = "";
                  my $fff_dir = "";
                  if   ($fff_direction  eq "in" )  {$fff_dir = "input" ;}
                  if   ($fff_direction  eq "in" )  {$fff_dir = "input" ;}
                  elsif($fff_direction  eq "out" ) {$fff_dir = "output" ;}
                  elsif($fff_direction  eq "out" ) {$fff_dir = "output" ;}
                  else                             {$fff_dir = $fff_direction;     }
                  else                             {$fff_dir = $fff_direction;     }
 
 
                  if($fff_left_value) { push @out_stack, ":::${depth}:::${fff_log_name}:::${fff_phy_name}:::${fff_dir}:::${fff_type_name}:::vector:::${fff_left_value}:::${$fff_right_value}:::"; }
                  if($fff_left_value ne "") { push @out_stack, ":::${depth}:::${fff_log_name}:::${fff_phy_name}:::${fff_dir}:::${fff_type_name}:::vector:::${fff_left_value}:::${$fff_right_value}:::"; }
                  else                { push @out_stack, ":::${depth}:::${fff_log_name}:::${fff_phy_name}:::${fff_dir}:::${fff_type_name}:::scaler:::none:::none:::";    }
                  else                { push @out_stack, ":::${depth}:::${fff_log_name}:::${fff_phy_name}:::${fff_dir}:::${fff_type_name}:::scaler:::none:::none:::";    }
 
 
 
 
                }
                }
             }
             }
Line 1145... Line 1157...
           my($component_name)      = $x_name  ->findnodes('../spirit:componentRef/@spirit:name')->to_literal ;
           my($component_name)      = $x_name  ->findnodes('../spirit:componentRef/@spirit:name')->to_literal ;
           my($version_name)        = $x_name  ->findnodes('../spirit:componentRef/@spirit:version')->to_literal ;
           my($version_name)        = $x_name  ->findnodes('../spirit:componentRef/@spirit:version')->to_literal ;
 
 
 
 
 
 
           my $variant_name   = "";
 
           if($version_name)  {$variant_name = "${component_name}_${version_name}";}
 
           else               {$variant_name = "${component_name}";}
 
 
 
           if( "$instance_name" eq  "$hierConn_comref_name"     )
           if( "$instance_name" eq  "$hierConn_comref_name"     )
             {
             {
 
 
 
 
 
 
Line 1274... Line 1282...
     #/**********************************************************************/
     #/**********************************************************************/
 
 
     foreach  my   $i_name ($spirit_design_file->findnodes("//spirit:design/nodes/node/spirit:name"))
     foreach  my   $i_name ($spirit_design_file->findnodes("//spirit:design/nodes/node/spirit:name"))
        {
        {
        my($node_name)  = $i_name ->findnodes('./text()')->to_literal ;
        my($node_name)  = $i_name ->findnodes('./text()')->to_literal ;
        my($left)            = $i_name ->findnodes('../spirit:wire/spirit:vector/spirit:left/text()')->to_literal ;
        my($node_left)       = $i_name ->findnodes('../spirit:wire/spirit:vector/spirit:left/text()')->to_literal ;
        my($right)           = $i_name ->findnodes('../spirit:wire/spirit:vector/spirit:right/text()')->to_literal ;
        my($node_right)      = $i_name ->findnodes('../spirit:wire/spirit:vector/spirit:right/text()')->to_literal ;
        my($type)            = $i_name ->findnodes('../spirit:wireTypeDefs/spirit:wireTypeDef/spirit:typeName/text()')->to_literal ;
        my($node_type)       = $i_name ->findnodes('../spirit:wireTypeDefs/spirit:wireTypeDef/spirit:typeName/text()')->to_literal ;
 
 
        if($left)      { push @wire_decs , ":::${node_name}:::${node_name}:::node:::${type}:::vector:::${left}:::${$right}:::none:::0:::${node_name}:::XXX:::${node_name}:::"; }
        if(  $node_left ne "" ) { push @wire_decs , ":::${node_name}:::${node_name}:::node:::${node_type}:::vector:::${node_left}:::${$node_right}:::none:::0:::${node_name}:::XXX:::${node_name}:::"; }
        else           { push @wire_decs , ":::${node_name}:::${node_name}:::node:::${type}:::scaler:::none:::none:::none:::0:::${node_name}:::XXX:::${node_name}:::";   }
        else                     { push @wire_decs , ":::${node_name}:::${node_name}:::node:::${node_type}:::scaler:::none:::none:::none:::0:::${node_name}:::XXX:::${node_name}:::";   }
 
 
        }
        }
 
 
 
 
 
 
Line 1468... Line 1476...
     push @instantiations  , "////////////////////////////////////////////////////////////////\n";
     push @instantiations  , "////////////////////////////////////////////////////////////////\n";
 
 
     foreach  my   $i_name ($spirit_design_file->findnodes("//spirit:design/spirit:componentInstances/spirit:componentInstance/spirit:instanceName"))
     foreach  my   $i_name ($spirit_design_file->findnodes("//spirit:design/spirit:componentInstances/spirit:componentInstance/spirit:instanceName"))
        {
        {
        my($instance_name)       = $i_name ->findnodes('./text()')->to_literal ;
        my($instance_name)       = $i_name ->findnodes('./text()')->to_literal ;
 
        my($vendor_name)         = $i_name  ->findnodes('../spirit:componentRef/@spirit:vendor')->to_literal ;
 
        my($library_name)        = $i_name  ->findnodes('../spirit:componentRef/@spirit:library')->to_literal ;
        my($component_name)      = $i_name  ->findnodes('../spirit:componentRef/@spirit:name')->to_literal ;
        my($component_name)      = $i_name  ->findnodes('../spirit:componentRef/@spirit:name')->to_literal ;
        my($version_name)        = $i_name  ->findnodes('../spirit:componentRef/@spirit:version')->to_literal ;
        my($version_name)        = $i_name  ->findnodes('../spirit:componentRef/@spirit:version')->to_literal ;
        my $variant_name   = "";
 
        if($version_name)  {$variant_name = "${component_name}_${version_name}";}
 
        else               {$variant_name = "${component_name}";}
 
 
 
        if($instance_name)
        my $module_name = yp::lib::get_module_name($vendor_name,$library_name,$component_name,$version_name) ;
          {
 
          push @instantiations  , "$variant_name\n";
 
 
 
#     print "$instance_name \n";
 
 
 
 
        if($instance_name)
 
          {
 
          push @instantiations  , "$module_name\n";
          $first = 1;
          $first = 1;
 
 
          foreach  my   $i_parameter ($spirit_design_file->findnodes("//spirit:componentInstance[spirit:instanceName/text() = '$instance_name']/spirit:configurableElementValues/spirit:configurableElementValue/\@spirit:referenceId"))
          foreach  my   $i_parameter ($spirit_design_file->findnodes("//spirit:componentInstance[spirit:instanceName/text() = '$instance_name']/spirit:configurableElementValues/spirit:configurableElementValue/\@spirit:referenceId"))
             {
             {
             my($foo_name)       = $i_parameter ->to_literal ;
             my($foo_name)       = $i_parameter ->to_literal ;
Line 1682... Line 1689...
 
 
               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();
                 my $spirit_abstractor_file    = $parser->parse_file(yp::lib::find_ipxact("spirit:abstractionDefinition",$mmm_vendor,$mmm_library,$mmm_name,$mmm_version));
                 print "XXXXXX  $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))
 
 
 
                ) || die "(OOPs $mmm_vendor $mmm_library $mmm_name $mmm_version )";
 
 
 
 
 
 
                 foreach my $abstr_view ($spirit_abstractor_file->findnodes("//spirit:abstractionDefinition/spirit:ports/spirit:port/spirit:logicalName[text() = '$rrr_log_name']"))
                 foreach my $abstr_view ($spirit_abstractor_file->findnodes("//spirit:abstractionDefinition/spirit:ports/spirit:port/spirit:logicalName[text() = '$rrr_log_name']"))
                    {
                    {
                    my($sss_m_dir)         = $abstr_view->findnodes('../spirit:wire/spirit:onMaster/spirit:direction/text()')->to_literal ;
                    my($sss_m_dir)         = $abstr_view->findnodes('../spirit:wire/spirit:onMaster/spirit:direction/text()')->to_literal ;
                    my($sss_s_dir)         = $abstr_view->findnodes('../spirit:wire/spirit:onSlave/spirit:direction/text()')->to_literal ;
                    my($sss_s_dir)         = $abstr_view->findnodes('../spirit:wire/spirit:onSlave/spirit:direction/text()')->to_literal ;
Line 1705... Line 1717...
                    my $rrr_dir = "";
                    my $rrr_dir = "";
                    if   ($rrr_direction  eq "in" )  {$rrr_dir = "input" ;}
                    if   ($rrr_direction  eq "in" )  {$rrr_dir = "input" ;}
                    elsif($rrr_direction  eq "out" ) {$rrr_dir = "output" ;}
                    elsif($rrr_direction  eq "out" ) {$rrr_dir = "output" ;}
                    else                             {$rrr_dir = $rrr_direction;     }
                    else                             {$rrr_dir = $rrr_direction;     }
 
 
                    if($rrr_left_value)
                    if($rrr_left_value ne "")
                        {
                        {
                        push @wire_decs , ":::${mmm_cname}_${rrr_log_name}:::${rrr_phy_name}:::${rrr_dir}:::${rrr_type_name}:::vector:::${rrr_left_value}:::${$rrr_right_value}:::none:::0:::${rrr_phy_name}:::XXX:::${rrr_log_name}:::";
                        push @wire_decs , ":::${mmm_cname}_${rrr_log_name}:::${rrr_phy_name}:::${rrr_dir}:::${rrr_type_name}:::vector:::${rrr_left_value}:::${$rrr_right_value}:::none:::0:::${rrr_phy_name}:::XXX:::${rrr_log_name}:::";
                        }
                        }
                      else
                      else
                        {
                        {
Line 1741... Line 1753...
 
 
        if    ($direction eq "in")  { $direction = "input";}
        if    ($direction eq "in")  { $direction = "input";}
        elsif ($direction eq "out") { $direction = "output";}
        elsif ($direction eq "out") { $direction = "output";}
 
 
 
 
        if($left)  { push @wire_decs , ":::${port_name}:::${port_name}:::${direction}:::${type}:::vector:::${left}:::${right}:::none:::0:::${port_name}:::XXX:::${port_name}:::";  }
        if($left ne "")  { push @wire_decs , ":::${port_name}:::${port_name}:::${direction}:::${type}:::vector:::${left}:::${right}:::none:::0:::${port_name}:::XXX:::${port_name}:::";  }
        else       { push @wire_decs , ":::${port_name}:::${port_name}:::${direction}:::${type}:::scaler:::none:::none:::none:::0:::${port_name}:::XXX:::${port_name}:::";          }
        else       { push @wire_decs , ":::${port_name}:::${port_name}:::${direction}:::${type}:::scaler:::none:::none:::none:::0:::${port_name}:::XXX:::${port_name}:::";          }
        }
        }
 
 
 
 
 
 

powered by: WebSVN 2.1.0

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