Line 122... |
Line 122... |
mkdir $path,0755 unless( -e $path );
|
mkdir $path,0755 unless( -e $path );
|
$path = "${home}/${io_ports}/${vendor}__${library}";
|
$path = "${home}/${io_ports}/${vendor}__${library}";
|
mkdir $path,0755 unless( -e $path );
|
mkdir $path,0755 unless( -e $path );
|
$path = "${home}/${io_ports}/${vendor}__${library}/${component}";
|
$path = "${home}/${io_ports}/${vendor}__${library}/${component}";
|
mkdir $path,0755 unless( -e $path );
|
mkdir $path,0755 unless( -e $path );
|
$outfile ="${path}/${main_module_name}";
|
$path ="${path}/${main_module_name}";
|
|
mkdir $path,0755 unless( -e $path );
|
|
|
|
|
|
$outfile ="${path}/busses.txt";
|
|
|
if(-e ${outfile} )
|
if(-e ${outfile} )
|
{
|
{
|
# print " $outfile Exists, exiting \n";
|
# print " $outfile Exists, exiting \n";
|
exit 0
|
exit 0
|
Line 603... |
Line 607... |
if(${vector} eq "vector")
|
if(${vector} eq "vector")
|
{
|
{
|
unless( looks_like_number($left) ) { $left=0;}
|
unless( looks_like_number($left) ) { $left=0;}
|
}
|
}
|
uplift_busref(${hierConn_name},${log_name},${direction},"wire",${vector},${left},${right},"${hierConn_name}_${log_name}");
|
uplift_busref(${hierConn_name},${log_name},${direction},"wire",${vector},${left},${right},"${hierConn_name}_${log_name}");
|
|
|
|
$busses_db->db_put( "IXstance.${hierConn_comref_name}.${hierConn_busref_name}.${log_name}","${value}" );
|
|
|
}
|
}
|
elsif (($key eq "AbsDef.${hierConn_busref_name}.master"))
|
elsif (($key eq "AbsDef.${hierConn_busref_name}.master"))
|
{
|
{
|
( ${xx_vendor},${xx_library},${xx_name},${xx_version}) = split ':', $value;
|
( ${xx_vendor},${xx_library},${xx_name},${xx_version}) = split ':', $value;
|
$busses_db->db_put( "AbsDef.${hierConn_name}.master","${xx_vendor}:${xx_library}:${xx_name}:${xx_version}" );
|
$busses_db->db_put( "AbsDef.${hierConn_name}.master","${xx_vendor}:${xx_library}:${xx_name}:${xx_version}" );
|
$busses_db->db_put( "AbsDef.${hierConn_name}.interconnect","${hierConn_comref_name}..${hierConn_busref_name}::" );
|
$busses_db->db_put( "AbsDef.${hierConn_name}.interconnect","${hierConn_comref_name}..${hierConn_busref_name}::" );
|
|
$busses_db->db_put( "Instance.${hierConn_comref_name}.${hierConn_busref_name}","${hierConn_name}" );
|
|
|
}
|
}
|
elsif (($key eq "AbsDef.${hierConn_busref_name}.slave"))
|
elsif (($key eq "AbsDef.${hierConn_busref_name}.slave"))
|
{
|
{
|
( ${xx_vendor},${xx_library},${xx_name},${xx_version}) = split ':', $value;
|
( ${xx_vendor},${xx_library},${xx_name},${xx_version}) = split ':', $value;
|
$busses_db->db_put( "AbsDef.${hierConn_name}.slave","${xx_vendor}:${xx_library}:${xx_name}:${xx_version}" );
|
$busses_db->db_put( "AbsDef.${hierConn_name}.slave","${xx_vendor}:${xx_library}:${xx_name}:${xx_version}" );
|
$busses_db->db_put( "AbsDef.${hierConn_name}.interconnect","${hierConn_comref_name}..${hierConn_busref_name}::" );
|
$busses_db->db_put( "AbsDef.${hierConn_name}.interconnect","${hierConn_comref_name}..${hierConn_busref_name}::" );
|
|
$busses_db->db_put( "Instance.${hierConn_comref_name}.${hierConn_busref_name}","${hierConn_name}" );
|
}
|
}
|
|
|
|
|
|
|
|
|
|
|
}
|
}
|
|
|
my $status = $child_cursor->c_close() ;
|
my $status = $child_cursor->c_close() ;
|
$child_ports_db -> db_close();
|
$child_ports_db -> db_close();
|
}
|
}
|
Line 654... |
Line 659... |
|
|
my $repo_data;
|
my $repo_data;
|
$busses_db->db_get( "AbsDef.${lp_interconnect_name}.interconnect" , $repo_data );
|
$busses_db->db_get( "AbsDef.${lp_interconnect_name}.interconnect" , $repo_data );
|
$busses_db->db_put( "AbsDef.${lp_interconnect_name}.interconnect","${lp_componentref_name}..${lp_busref_name}::${repo_data}" );
|
$busses_db->db_put( "AbsDef.${lp_interconnect_name}.interconnect","${lp_componentref_name}..${lp_busref_name}::${repo_data}" );
|
$busses_db->db_put( "Instance.${lp_componentref_name}.${lp_busref_name}","${lp_interconnect_name}" );
|
$busses_db->db_put( "Instance.${lp_componentref_name}.${lp_busref_name}","${lp_interconnect_name}" );
|
|
|
}
|
}
|
|
|
|
|
|
|
|
|
Line 680... |
Line 684... |
my($hierConn_comref_name) = $i_name ->to_literal;
|
my($hierConn_comref_name) = $i_name ->to_literal;
|
my($hierConn_busref_name) = $i_name ->findnodes('../@spirit:busRef')->to_literal ;
|
my($hierConn_busref_name) = $i_name ->findnodes('../@spirit:busRef')->to_literal ;
|
my($hierConn_name) = $i_name ->findnodes('../../spirit:name/text()')->to_literal ;
|
my($hierConn_name) = $i_name ->findnodes('../../spirit:name/text()')->to_literal ;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#/*******************************************************************************/
|
#/*******************************************************************************/
|
#/* */
|
#/* */
|
#/* Read each interconnection and enter modified signals into wire_decs */
|
#/* Read each interconnection and enter modified signals into wire_decs */
|
#/* */
|
#/* */
|
#/*******************************************************************************/
|
#/*******************************************************************************/
|
Line 767... |
Line 764... |
|
|
if(($key eq "BusRef.${hierConn_busref_name}.${log_name}"))
|
if(($key eq "BusRef.${hierConn_busref_name}.${log_name}"))
|
{
|
{
|
# print "INTERCONN ${hierConn_name}_${log_name} $direction , $vector, $left , $right \n";
|
# print "INTERCONN ${hierConn_name}_${log_name} $direction , $vector, $left , $right \n";
|
uplift_busref(${hierConn_name},${log_name},"node","wire",${vector},${left},${right},"${hierConn_name}_${log_name}");
|
uplift_busref(${hierConn_name},${log_name},"node","wire",${vector},${left},${right},"${hierConn_name}_${log_name}");
|
|
|
|
$busses_db->db_put( "IXstance.${hierConn_comref_name}.${hierConn_busref_name}.${log_name}","${value}" );
|
|
|
|
|
|
|
}
|
}
|
elsif(($key eq "AbsDef.${hierConn_busref_name}.master"))
|
elsif(($key eq "AbsDef.${hierConn_busref_name}.master"))
|
{
|
{
|
$busses_db->db_put( "AbsDef.${hierConn_name}.node","$value" );
|
$busses_db->db_put( "AbsDef.${hierConn_name}.node","$value" );
|
}
|
}
|
Line 846... |
Line 848... |
#/* */
|
#/* */
|
#/* Read all adHocConnections and load instance connect info into array*/
|
#/* Read all adHocConnections and load instance connect info into array*/
|
#/* */
|
#/* */
|
#/**********************************************************************/
|
#/**********************************************************************/
|
|
|
|
|
|
|
foreach my $i_name ($spirit_design_file->findnodes('//spirit:adHocConnections/spirit:adHocConnection/spirit:internalPortReference/@spirit:componentRef'))
|
foreach my $i_name ($spirit_design_file->findnodes('//spirit:adHocConnections/spirit:adHocConnection/spirit:internalPortReference/@spirit:componentRef'))
|
{
|
{
|
my($componentRef_name) = $i_name ->to_literal;
|
my($componentRef_name) = $i_name ->to_literal;
|
my($int_portRef_name) = $i_name ->findnodes('../@spirit:portRef')->to_literal ;
|
|
my($adhocConnection_name) = $i_name ->findnodes('../../spirit:name/text()')->to_literal ;
|
my($adhocConnection_name) = $i_name ->findnodes('../../spirit:name/text()')->to_literal ;
|
|
my($tied_value) = $i_name ->findnodes('../../@spirit:tiedValue')->to_literal ;
|
|
my($int_portRef_name) = $i_name ->findnodes('../@spirit:portRef')->to_literal ;
|
my($ext_portRef_name) = $i_name ->findnodes('../../spirit:externalPortReference/@spirit:portRef')->to_literal ;
|
my($ext_portRef_name) = $i_name ->findnodes('../../spirit:externalPortReference/@spirit:portRef')->to_literal ;
|
my($left) = $i_name ->findnodes('../../spirit:externalPortReference/@spirit:left')->to_literal ;
|
my($left) = $i_name ->findnodes('../../spirit:externalPortReference/@spirit:left')->to_literal ;
|
my($right) = $i_name ->findnodes('../../spirit:externalPortReference/@spirit:right')->to_literal ;
|
my($right) = $i_name ->findnodes('../../spirit:externalPortReference/@spirit:right')->to_literal ;
|
|
|
|
|
if( $left ne "" )
|
if( $left ne "" )
|
{
|
{
|
if( $right eq "" ){ $right = $left; }
|
if( $right eq "" ){ $right = $left; }
|
$vector = "vector";
|
$vector = "vector";
|
}
|
}
|
Line 867... |
Line 873... |
$vector = "scaler";
|
$vector = "scaler";
|
$left = "none";
|
$left = "none";
|
$right = "none";
|
$right = "none";
|
}
|
}
|
|
|
|
|
|
|
|
if ( ${adhocConnection_name} eq "" ) { $adhocConnection_name = "***";}
|
|
if ( ${ext_portRef_name} eq "" ) { $ext_portRef_name = "***";}
|
|
|
|
|
|
#print "NNNNNNNNNN $componentRef_name $adhocConnection_name ||${tied_value}|| $int_portRef_name $ext_portRef_name $left $right \n";
|
|
|
|
if($tied_value )
|
|
{
|
|
$busses_db->db_put( "AdHoc_${componentRef_name}__${int_portRef_name}","${tied_value}:${ext_portRef_name}:${type}:${vector}:${left}:${right}" );
|
|
|
|
#print"NNNNNNNNNNNNN AdHoc_${componentRef_name}__${int_portRef_name} ${tied_value}:${ext_portRef_name}:${type}:${vector}:${left}:${right}\n" ;
|
|
|
|
}
|
|
else
|
|
{
|
|
$busses_db->db_put( "AdHoc_${componentRef_name}__${int_portRef_name}","${adhocConnection_name}:${ext_portRef_name}:${type}:${vector}:${left}:${right}" );
|
|
# print "NNNNNNNNN AdHoc_${componentRef_name}__${int_portRef_name} ${adhocConnection_name}:${ext_portRef_name}:${type}:${vector}:${left}:${right} \n" ;
|
|
|
|
|
$_ = ${adhocConnection_name};
|
$_ = ${adhocConnection_name};
|
if(/(\w+)/)
|
if(/(\w+)/)
|
{
|
{
|
$adhocConnection_name = $1;
|
$adhocConnection_name = $1;
|
unless( looks_like_number($adhocConnection_name) )
|
unless( looks_like_number($adhocConnection_name) )
|
{
|
{
|
# print "ADHOC_NODE ${adhocConnection_name} , node , wire , $vector, $left , $right \n";
|
# print "ADHOC_NODE ${adhocConnection_name} , node , wire , $vector, $left , $right \n";
|
uplift_busref("adhoc", ${adhocConnection_name} , "node" , "wire" , ${vector}, ${left} , ${right}, ${adhocConnection_name});
|
uplift_busref("adhoc", ${adhocConnection_name} , "node" , "wire" , ${vector}, ${left} , ${right}, ${adhocConnection_name});
|
}
|
}
|
}
|
}
|
|
|
|
}
|
|
|
|
|
}
|
}
|
}
|
}
|
|
|
|
|
|
|