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

Subversion Repositories socgen

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /socgen/trunk/tools/sys
    from Rev 131 to Rev 133
    Reverse comparison

Rev 131 → Rev 133

/build_sw_master
55,7 → 55,9
use lib './tools';
use sys::lib;
use yp::lib;
use Parallel::ForkManager;
 
 
$OUTPUT_AUTOFLUSH = 1; # set autoflush of stdout to TRUE.
 
 
98,6 → 100,8
my $prefix = yp::lib::get_workspace();
$prefix = "/${prefix}";
 
my $number_of_cpus = yp::lib::get_number_of_cpus();
 
my @vendors = yp::lib::find_vendors();
 
foreach my $vendor (@vendors)
151,14 → 155,110
my $codeSet_library = $i_name ->findnodes('../socgen:library/text()')->to_literal ;
my $codeSet_component = $i_name ->findnodes('../socgen:component/text()')->to_literal ;
my $codeSet_version = $i_name ->findnodes('../socgen:version/text()')->to_literal ;
my $codeSet_prefix = "${prefix}/${vendor}__${library}/children";
 
print "$codeSet_name $codeSet_vendor $codeSet_library $codeSet_component $codeSet_version \n ";
 
$cmd ="./tools/sys/build_generate -prefix ${prefix}/${vendor}__${library}/children -vendor ${codeSet_vendor} -library ${codeSet_library} -component ${codeSet_component} -version ${codeSet_version} \n";
if (system($cmd)) {}
}
print "$codeSet_name $codeSet_prefix $codeSet_vendor $codeSet_library $codeSet_component $codeSet_version \n ";
 
 
 
 
 
 
 
 
 
##############################################################################
##
##############################################################################
 
 
 
my @cmd_list = ();
 
 
 
 
my $lib_comp_sep = yp::lib::find_lib_comp_sep($codeSet_vendor,$codeSet_library,$codeSet_component);
 
 
 
 
#/*********************************************************************************************/
#/ */
#/ Create filelists for simulation, synthesis and linting */
#/ */
#/ */
#/*********************************************************************************************/
 
my @filelist = yp::lib::parse_component_brothers("$codeSet_vendor","$codeSet_library","$codeSet_component","$codeSet_version");
 
foreach $line (@filelist)
{
$_ = $line;
if(/::(\S+)::(\S+)::(\S+)::(\S+)::/)
{
$new_library = $2;
$new_component = $3;
$new_vendor = $1;
$new_version = $4;
 
 
my $spirit_component_file = $parser->parse_file(yp::lib::find_ipxact_component($new_vendor,$new_library,$new_component,$new_version));
 
foreach my $i_name ($spirit_component_file->findnodes("//spirit:componentGenerator/spirit:name"))
{
my($gen_name) = $i_name ->findnodes('../spirit:name/text()')->to_literal ;
my($gen_generatorExe) = $i_name ->findnodes('../spirit:generatorExe/text()')->to_literal ;
my($gen_phase) = $i_name ->findnodes('../spirit:phase/text()')->to_literal ;
 
my $cmd;
$cmd = " -prefix $codeSet_prefix -vendor $codeSet_vendor -library $codeSet_library -component $codeSet_component -version $codeSet_version ";
foreach my $i_name ($spirit_component_file->findnodes("//spirit:componentGenerator[spirit:name/text() = '$gen_name']/spirit:parameters/spirit:parameter"))
{
my($gen_param) = $i_name ->findnodes('./spirit:value/text()')->to_literal ;
my($gen_param_name) = $i_name ->findnodes('./spirit:name/text()')->to_literal ;
if ($gen_param_name eq "in_pipe") {$cmd = "$cmd <${home}${codeSet_prefix}/${codeSet_vendor}__${codeSet_library}${lib_comp_sep}${codeSet_component}/${gen_param}";}
elsif($gen_param_name eq "out_pipe") {$cmd = "$cmd >${home}${codeSet_prefix}/${codeSet_vendor}__${codeSet_library}${lib_comp_sep}${codeSet_component}/${gen_param}";}
elsif($gen_param_name) {$cmd = "$cmd -${gen_param_name} $gen_param ";}
else {$cmd = "$cmd $gen_param";}
}
 
foreach my $i_name ($spirit_component_file->findnodes("//spirit:componentGenerator[spirit:name/text() = '$gen_name']/spirit:vendorExtensions/socgen:envIdentifier"))
{
my($gen_envidentifier) = $i_name ->findnodes('./text()')->to_literal ;
 
my $New_cmd = " ${gen_generatorExe} -envidentifier $gen_envidentifier ${cmd}\n";
if(${gen_generatorExe} )
{
push @cmd_list, "${gen_phase}::$New_cmd";
}
}
}
}
}
 
 
 
my $manager = new Parallel::ForkManager( $number_of_cpus );
@cmd_list = sys::lib::trim_sort(@cmd_list);
my $cmd;
my $phase;
 
foreach my $Cmd_line (@cmd_list)
{
( $phase,$cmd) = split( /\::/ , $Cmd_line);
$manager->start and next;
if (system($cmd)) {}
$manager->finish;
}
 
$manager->wait_all_children;
print "Software COMPLETE \n";
}
 
}
 
}
166,5 → 266,26
 
 
return(0);
}
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/build_hw_master
128,8 → 128,288
my @params = @_;
my $library = pop(@params);
my $vendor = pop(@params);
my $cmd ="./tools/sys/build_hw ${vendor} ${library} \n";
print "$cmd";
if(system($cmd)){}
 
 
 
 
 
 
my $prefix = yp::lib::get_workspace();
$prefix = "/${prefix}";
 
 
 
my @kids = ( );
my @filelist = ( );
my @cmd_list = ( );
 
my @components = yp::lib::find_components($vendor,$library);
 
foreach my $component (@components)
{
 
my $socgen_filename = yp::lib::find_componentConfiguration($vendor,$library,$component);
if($socgen_filename)
{
my $socgen_file = $parser->parse_file($socgen_filename);
 
#/*********************************************************************************************/
#/ files for simulation */
#/ */
#/*********************************************************************************************/
 
foreach my $i_name ($socgen_file->findnodes("//socgen:sim/socgen:testbenches/socgen:testbench/socgen:version"))
{
my $tb_version = $i_name ->findnodes('./text()')->to_literal ;
my $tb_variant = "${component}_${tb_version}";
 
foreach my $i_name ($socgen_file->findnodes("//socgen:testbench[socgen:variant/text() = '$tb_variant']/socgen:tools/socgen:tool"))
{
 
my $tb_tool = $i_name ->findnodes('./text()')->to_literal ;
 
if( ($tb_tool eq "icarus") || ($tb_tool eq "verilator") || ($tb_tool eq "rtl_check"))
 
{
@filelist = ( );
@filelist = yp::lib::parse_component_file("$vendor","$library","$component","$tb_version");
 
foreach $line (@filelist)
{
$_ = $line;
if(/::(\S+)::(\S+)::(\S+)::(\S+)::/)
{
$new_vendor = $1;
$new_proj = $2;
$new_comp = $3;
$new_version = $4;
}
if( ($vendor eq $new_vendor) && ( $library eq $new_proj) && ( $component eq $new_comp ) && ( $tb_version eq $new_version ) )
{
push @kids , "::${prefix}::${library}::${component}::${vendor}::${tb_version}::";
}
else
{
push @kids , "::${prefix}/${vendor}__${library}/children::${new_proj}::${new_comp}::${new_vendor}::${new_version}::";
}
}
}
 
 
if($tb_tool eq "coverage")
{
print " SIM COVERAGE testbench $vendor $library $component $tb_variant \n";
$cmd ="./tools/simulation/build_coverage -work_site $prefix -vendor $vendor -library $library -component $component -version $tb_version \n";
if (system($cmd)) {}
}
elsif($tb_tool eq "icarus")
{
print " SIM ICARUS testbench $vendor $library $component $tb_variant \n";
$cmd ="./tools/simulation/build_icarus_filelists -work_site $prefix -vendor $vendor -library $library -component $component -version $tb_version \n";
if (system($cmd)) {}
}
elsif($tb_tool eq "verilator")
{
print " SIM VERILATOR testbench $vendor $library $component $tb_variant \n";
$cmd ="./tools/simulation/build_verilator_filelists -work_site $prefix -vendor $vendor -library $library -component $component -version $tb_version \n";
if (system($cmd)) {}
}
elsif($tb_tool eq "rtl_check")
{
print " SIM RTL_CHECK testbench $vendor $library $component $tb_variant \n";
$cmd ="./tools/simulation/build_lint_filelists -work_site $prefix -vendor $vendor -library $library -component $component -version $tb_version \n";
if (system($cmd)) {}
}
}
 
}
 
 
#/*********************************************************************************************/
#/ files for synthesys */
#/ */
#/*********************************************************************************************/
 
foreach my $i_name ($socgen_file->findnodes("//socgen:syn/socgen:ise/socgen:chip/socgen:name"))
{
my $ise_name = $i_name ->findnodes('./text()')->to_literal ;
print " SYN ISE $vendor $library $component $ise_name \n";
 
@filelist = ( );
@filelist = yp::lib::parse_component_file("$vendor","$library","$component","$ise_name");
 
foreach $line (@filelist)
{
$_ = $line;
if(/::(\S+)::(\S+)::(\S+)::(\S+)::/)
{
$new_vendor = $1;
$new_proj = $2;
$new_comp = $3;
$new_version = $4;
}
 
if( ($vendor eq $new_vendor) && ( $library eq $new_proj) && ( $component eq $new_comp ) && ( $ise_name eq $new_version ) )
{
push @kids , "::${prefix}::${library}::${component}::${vendor}::${ise_name}::";
}
else
{
push @kids , "::${prefix}/${vendor}__${library}/children::${new_proj}::${new_comp}::${new_vendor}::${new_version}::";
}
}
}
 
}
}
 
 
 
 
#/**********************************************************************/
#/* */
#/* Sort out the duplicate names and then build the rtl for every */
#/* component needed for simulations or synthesys */
#/* */
#/**********************************************************************/
 
 
@kids = sys::lib::trim_sort(@kids);
foreach my $kid (@kids)
{
$_ = $kid;
 
if(/::(\S+)::(\S+)::(\S+)::(\S+)::(\S+)::/)
{
my $kid_prefix = $1;
my $kid_library = $2;
my $kid_component = $3;
my $kid_vendor = $4;
my $kid_version = $5;
 
 
 
 
 
 
 
#############################################################################
##
##
#############################################################################
 
 
 
 
my $lib_comp_sep = yp::lib::find_lib_comp_sep($kid_vendor,$kid_library,$kid_component);
 
 
 
 
 
 
 
 
 
#/*********************************************************************************************/
#/ */
#/ Create filelists for simulation, synthesis and linting */
#/ */
#/ */
#/*********************************************************************************************/
 
my @filelist = yp::lib::parse_component_brothers("$kid_vendor","$kid_library","$kid_component","$kid_version");
 
foreach $line (@filelist)
{
$_ = $line;
if(/::(\S+)::(\S+)::(\S+)::(\S+)::/)
{
$new_library = $2;
$new_component = $3;
$new_vendor = $1;
$new_version = $4;
 
 
my $spirit_component_file = $parser->parse_file(yp::lib::find_ipxact_component($new_vendor,$new_library,$new_component,$new_version));
 
foreach my $i_name ($spirit_component_file->findnodes("//spirit:componentGenerator/spirit:name"))
{
my($gen_name) = $i_name ->findnodes('../spirit:name/text()')->to_literal ;
my($gen_generatorExe) = $i_name ->findnodes('../spirit:generatorExe/text()')->to_literal ;
my($gen_phase) = $i_name ->findnodes('../spirit:phase/text()')->to_literal ;
 
 
my $cmd;
$cmd = " -prefix $kid_prefix -vendor $kid_vendor -library $kid_library -component $kid_component -version $kid_version ";
foreach my $i_name ($spirit_component_file->findnodes("//spirit:componentGenerator[spirit:name/text() = '$gen_name']/spirit:parameters/spirit:parameter"))
{
my($gen_param) = $i_name ->findnodes('./spirit:value/text()')->to_literal ;
my($gen_param_name) = $i_name ->findnodes('./spirit:name/text()')->to_literal ;
if ($gen_param_name eq "in_pipe") {$cmd = "$cmd <${home}${kid_prefix}/${kid_vendor}__${kid_library}${lib_comp_sep}${kid_component}/${gen_param}";}
elsif($gen_param_name eq "out_pipe") {$cmd = "$cmd >${home}${kid_prefixn}/${kid_vendor}__${kid_library}${lib_comp_sep}${kid_component}/${gen_param}";}
elsif($gen_param_name) {$cmd = "$cmd -${gen_param_name} $gen_param ";}
else {$cmd = "$cmd $gen_param";}
}
 
foreach my $i_name ($spirit_component_file->findnodes("//spirit:componentGenerator[spirit:name/text() = '$gen_name']/spirit:vendorExtensions/socgen:envIdentifier"))
{
my($gen_envidentifier) = $i_name ->findnodes('./text()')->to_literal ;
 
my $New_cmd = " ${gen_generatorExe} -envidentifier $gen_envidentifier ${cmd}\n";
if(${gen_generatorExe} )
{
push @cmd_list, "${gen_phase}::$New_cmd";
}
}
}
}
}
 
 
 
 
 
 
 
 
}
 
}
 
 
 
 
@cmd_list = sys::lib::trim_sort(@cmd_list);
my $cmd;
my $phase;
 
foreach my $Cmd_line (@cmd_list)
{
 
( $phase,$cmd) = split( /\::/ , $Cmd_line);
if (system($cmd)) {}
}
 
 
 
return(0);
}
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/build_generate
92,7 → 92,9
 
my $home = cwd();
 
my @cmd_list = ();
 
 
#############################################################################
##
##
101,9 → 103,7
 
 
 
#print "\n FFFFFFFFFFFF GENERATE $prefix $vendor $library $component $version \n" ;
 
 
my $parser = XML::LibXML->new();
 
my $lib_comp_sep = yp::lib::find_lib_comp_sep($vendor,$library,$component);
134,8 → 134,8
$new_component = $3;
$new_vendor = $1;
$new_version = $4;
# print " FFFFFFFFFFFFFFFF Brother $new_vendor $new_library $new_component $new_version \n" ;
 
 
my $spirit_component_file = $parser->parse_file(yp::lib::find_ipxact_component($new_vendor,$new_library,$new_component,$new_version));
 
foreach my $i_name ($spirit_component_file->findnodes("//spirit:componentGenerator/spirit:name"))
142,7 → 142,7
{
my($gen_name) = $i_name ->findnodes('../spirit:name/text()')->to_literal ;
my($gen_generatorExe) = $i_name ->findnodes('../spirit:generatorExe/text()')->to_literal ;
# print " FFFFFFFFFFFFFFFF $gen_name $gen_generatorExe \n" ;
my($gen_phase) = $i_name ->findnodes('../spirit:phase/text()')->to_literal ;
 
my $cmd;
$cmd = " -prefix $prefix -vendor $vendor -library $library -component $component -version $version ";
165,7 → 165,8
my $New_cmd = " ${gen_generatorExe} -envidentifier $gen_envidentifier ${cmd}\n";
if(${gen_generatorExe} )
{
if (system($New_cmd)) {}
push @cmd_list, "${gen_phase}::$New_cmd";
# if (system($New_cmd)) {}
}
}
}
172,10 → 173,21
}
}
 
@cmd_list = sys::lib::trim_sort(@cmd_list);
my $cmd;
my $phase;
 
foreach my $Cmd_line (@cmd_list)
{
 
( $phase,$cmd) = split( /\::/ , $Cmd_line);
 
if (system($cmd)) {}
}
 
 
 
 
1
 
 
/build_elab_master
55,6 → 55,7
use lib './tools';
use sys::lib;
use yp::lib;
use Parallel::ForkManager;
 
$OUTPUT_AUTOFLUSH = 1; # set autoflush of stdout to TRUE.
 
73,7 → 74,7
## Help option
##############################################################################
if ( $opt_h or $opt_help )
{ print "\n build_master";
{ print "\n build_elab_master";
print "\n";
exit 1;
}
93,6 → 94,12
#/* */
#/**********************************************************************/
 
my @elab_cmds = ();
my @des_cmds = ();
my @gen_cmds = ();
 
my $number_of_cpus = yp::lib::get_number_of_cpus();
 
my $home = cwd();
 
my $prefix = yp::lib::get_workspace();
113,7 → 120,7
my $library_status = yp::lib::get_library_status($vendor,$library);
if($library_status eq "active")
{
print "$vendor $library \n ";
# print "$vendor $library \n ";
run_vendor_library ( $vendor , $library)
}
}
139,11 → 146,57
{
my $socgen_file = $parser->parse_file($socgen_filename);
 
#print "ELAB_XXXXX build_master $vendor $library \n";
 
#/*********************************************************************************************/
#/ files for simulation */
#/ elaborate each testbench */
#/ */
#/*********************************************************************************************/
 
foreach my $j_name ($socgen_file->findnodes("//socgen:componentConfiguration/socgen:sim/socgen:testbenches/socgen:testbench/socgen:variant"))
{
my $testbench_variant = $j_name ->findnodes('./text()')->to_literal ;
my $testbench_version = $j_name ->findnodes('../socgen:version/text()')->to_literal ;
my $testbench_configuration = $j_name ->findnodes('../socgen:configuration/text()')->to_literal ;
my $testbench_instance = $j_name ->findnodes('../socgen:bus/socgen:instance/text()')->to_literal ;
my $testbench_bus_name = $j_name ->findnodes('../socgen:bus/socgen:bus_name/text()')->to_literal ;
 
 
if(defined $testbench_configuration )
{
$cmd ="./tools/verilog/elab_verilog -vendor ${vendor} -library ${library} -component ${component} -version ${testbench_version} -configuration configuration -env sim -tool testbenches -unit testbench \n";
}
else
{
$cmd ="./tools/verilog/elab_verilog -vendor ${vendor} -library ${library} -component ${component} -version ${testbench_version} -env sim -tool testbenches -unit testbench \n";
}
 
push @elab_cmds, $cmd;
 
$cmd ="./tools/verilog/gen_root -vendor ${vendor} -library ${library} -component ${component} -version ${testbench_version} \n ";
push @gen_cmds, $cmd;
 
$cmd ="./tools/verilog/gen_design -vendor ${vendor} -library ${library} -component ${component} -version ${testbench_version} \n ";
push @des_cmds, $cmd;
 
if ($testbench_instance)
{
$cmd ="./tools/verilog/trace_bus -prefix ${prefix} -vendor ${vendor} -library ${library} -component ${component} -version ${testbench_version} -path $testbench_instance -bus_name $testbench_bus_name ";
 
push @gen_cmds, $cmd;
}
}
 
 
 
 
 
 
#/*********************************************************************************************/
#/ elaborate for each test */
#/ */
#/*********************************************************************************************/
 
foreach my $i_name ($socgen_file->findnodes("//socgen:componentConfiguration/socgen:sim/socgen:icarus/socgen:test/socgen:name"))
{
my $test_name = $i_name ->findnodes('./text()')->to_literal ;
155,9 → 208,9
foreach my $j_name ($socgen_file->findnodes("//socgen:componentConfiguration/socgen:sim/socgen:testbenches/socgen:testbench/socgen:variant"))
{
my $testbench_variant = $j_name ->findnodes('./text()')->to_literal ;
my $testbench_version = $j_name ->findnodes('../socgen:version/text()')->to_literal ;
my $testbench_instance = $j_name ->findnodes('../socgen:bus/socgen:instance/text()')->to_literal ;
my $testbench_bus_name = $j_name ->findnodes('../socgen:bus/socgen:bus_name/text()')->to_literal ;
my $testbench_version = $j_name ->findnodes('../socgen:version/text()')->to_literal ;
my $testbench_instance = $j_name ->findnodes('../socgen:bus/socgen:instance/text()')->to_literal ;
my $testbench_bus_name = $j_name ->findnodes('../socgen:bus/socgen:bus_name/text()')->to_literal ;
 
 
if($test_variant eq $testbench_variant )
164,38 → 217,208
{
# print "YYYY $prefix $vendor $library $component $testbench_version $test_name \n ";
 
$cmd ="./tools/verilog/elab_verilog -prefix ${prefix} -vendor ${vendor} -library ${library} -component ${component} -version ${testbench_version} -env sim -tool icarus -unit test -name $test_name \n";
print "$cmd";
if (system($cmd)) {}
#print "ELAB_XXXXX test_variant $vendor $library \n";
 
 
$cmd ="./tools/verilog/elab_verilog -vendor ${vendor} -library ${library} -component ${component} -version ${testbench_version} -env sim -tool icarus -unit test -name $test_name \n";
# print "$cmd";
# if (system($cmd)) {}
push @elab_cmds, $cmd;
 
 
 
$cmd ="./tools/verilog/gen_root -vendor ${vendor} -library ${library} -component ${component} -version ${testbench_version} -name $test_name \n";
# print "$cmd";
# if (system($cmd)) {}
push @gen_cmds, $cmd;
 
$cmd ="./tools/verilog/gen_design -vendor ${vendor} -library ${library} -component ${component} -version ${testbench_version} -name $test_name \n";
# print "$cmd";
# if (system($cmd)) {}
push @des_cmds, $cmd;
 
 
 
 
if ($testbench_instance)
{
 
$cmd ="./tools/verilog/trace_bus -prefix ${prefix} -vendor ${vendor} -library ${library} -component ${component} -version ${testbench_version} -path $testbench_instance -bus_name $testbench_bus_name -test_name $test_name ";
$cmd ="./tools/verilog/trace_bus -prefix ${prefix} -vendor ${vendor} -library ${library} -component ${component} -version ${testbench_version} -path $testbench_instance -bus_name $testbench_bus_name -test_name $test_name ";
 
if (system($cmd)) {}
push @gen_cmds, $cmd;
}
}
 
}
}
 
}
 
 
 
#/*********************************************************************************************/
#/ elaborate each fpga */
#/ */
#/*********************************************************************************************/
 
foreach my $j_name ($socgen_file->findnodes("//socgen:componentConfiguration/socgen:syn/socgen:fpgas/socgen:fpga/socgen:variant"))
{
my $fpga_variant = $j_name ->findnodes('./text()')->to_literal ;
my $fpga_version = $j_name ->findnodes('../socgen:version/text()')->to_literal ;
my $fpga_configuration = $j_name ->findnodes('../socgen:configuration/text()')->to_literal ;
 
if(defined $fpga_configuration )
{
$cmd ="./tools/verilog/elab_verilog -vendor ${vendor} -library ${library} -component ${component} -version ${fpga_version} -configuration $fpga_configuration -env syn -tool fpgas -unit fpga \n";
}
else
{
$cmd ="./tools/verilog/elab_verilog -vendor ${vendor} -library ${library} -component ${component} -version ${fpga_version} -env syn -tool fpgas -unit fpga \n";
}
 
# push @elab_cmds, $cmd;
 
 
$cmd ="./tools/verilog/gen_root -vendor ${vendor} -library ${library} -component ${component} -version ${fpga_version} ";
# push @gen_cmds, $cmd;
 
$cmd ="./tools/verilog/gen_design -vendor ${vendor} -library ${library} -component ${component} -version ${fpga_version} ";
# push @des_cmds, $cmd;
}
 
 
 
 
#/*********************************************************************************************/
#/ elaborate for each chip */
#/ */
#/*********************************************************************************************/
 
foreach my $i_name ($socgen_file->findnodes("//socgen:componentConfiguration/socgen:syn/socgen:ise/socgen:chip/socgen:name"))
{
my $chip_name = $i_name ->findnodes('./text()')->to_literal ;
my $chip_variant = $i_name ->findnodes('../socgen:variant/text()')->to_literal ;
 
# print "XXXX $vendor $library $component $chip_variant $chip_name \n ";
 
 
foreach my $j_name ($socgen_file->findnodes("//socgen:componentConfiguration/socgen:syn/socgen:fpgas/socgen:fpga/socgen:variant"))
{
my $fpga_variant = $j_name ->findnodes('./text()')->to_literal ;
my $fpga_version = $j_name ->findnodes('../socgen:version/text()')->to_literal ;
 
 
if($chip_variant eq $fpga_variant )
{
# print "YYYY $prefix $vendor $library $component $fpga_version $chip_name \n ";
 
#print "ELAB_XXXXX test_variant $vendor $library \n";
 
 
$cmd ="./tools/verilog/elab_verilog -vendor ${vendor} -library ${library} -component ${component} -version ${fpga_version} -env syn -tool ise -unit chip -name $chip_name \n";
# print "$cmd";
 
push @elab_cmds, $cmd;
 
 
 
$cmd ="./tools/verilog/gen_root -vendor ${vendor} -library ${library} -component ${component} -version ${fpga_version} -name $chip_name \n";
# print "$cmd";
 
push @gen_cmds, $cmd;
 
$cmd ="./tools/verilog/gen_design -vendor ${vendor} -library ${library} -component ${component} -version ${fpga_version} -name $chip_name \n";
# print "$cmd";
 
push @des_cmds, $cmd;
 
 
 
 
 
}
 
}
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
}
 
 
}
 
 
 
return(0);
}
@elab_cmds = sys::lib::trim_sort(@elab_cmds);
@des_cmds = sys::lib::trim_sort(@des_cmds);
@gen_cmds = sys::lib::trim_sort(@gen_cmds);
 
 
 
#my $manager = new Parallel::ForkManager( $number_of_cpus );
 
 
 
foreach $cmd (@elab_cmds)
{
# $manager->start and next;
if (system($cmd)) {}
# $manager->finish;
}
 
#$manager->wait_all_children;
 
 
foreach $cmd (@des_cmds)
{
if (system($cmd)) {}
}
 
 
foreach $cmd (@gen_cmds)
{
# $manager->start and next;
if (system($cmd)) {}
# $manager->finish;
}
 
#$manager->wait_all_children;
 
 
 
 
 
 
return(0);
 
}
 
/workspace
207,18 → 207,18
foreach my $i_name ($socgen_file->findnodes("//socgen:syn/socgen:ise/socgen:chip/socgen:variant"))
{
my($chip_name) = $i_name ->findnodes('./text()')->to_literal ;
my($chip_variant) = $i_name ->findnodes('./text()')->to_literal ;
my($chip_target) = $i_name ->findnodes('../socgen:target/socgen:library/text()')->to_literal ;
my($chip_part) = $i_name ->findnodes('../socgen:target/socgen:part/text()')->to_literal ;
$outfile ="${home}${prefix}/${vendor}__${library}${lib_comp_sep}${component}/syn/ise/${chip_name}/Makefile";
$outfile ="${home}${prefix}/${vendor}__${library}${lib_comp_sep}${component}/syn/ise/${chip_variant}/Makefile";
open MAKSYNFILE,">$outfile" or die "unable to open $outfile";
print MAKSYNFILE "include ${home}/tools/bin/Makefile.root\n";
print MAKSYNFILE "Part=${chip_part}\n";
print MAKSYNFILE "board=${chip_target}\n";
print MAKSYNFILE "Design=${chip_name}\n";
my $path = "${home}${prefix}/${vendor}__${library}${lib_comp_sep}${component}/syn/ise/${chip_name}/target";
print MAKSYNFILE "Design=${chip_variant}\n";
my $path = "${home}${prefix}/${vendor}__${library}${lib_comp_sep}${component}/syn/ise/${chip_variant}/target";
mkdir $path,0755 unless( -e $path );
&sys::lib::link_dir( "${home}/tools/synthesys/targets/ip/${chip_target}", "${home}${prefix}/${vendor}__${library}${lib_comp_sep}${component}/syn/ise/${chip_name}/target" );
&sys::lib::link_dir( "${home}/tools/synthesys/targets/ip/${chip_target}", "${home}${prefix}/${vendor}__${library}${lib_comp_sep}${component}/syn/ise/${chip_variant}/target" );
}
}
 

powered by: WebSVN 2.1.0

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