add solutions
This commit is contained in:
107
zz-solutions/01-WaveformGenerator/Scripts/update_libero.pl
Normal file
107
zz-solutions/01-WaveformGenerator/Scripts/update_libero.pl
Normal file
@@ -0,0 +1,107 @@
|
||||
#!/usr/bin/perl
|
||||
# filename: update_libero.pl
|
||||
# created by: Corthay Francois & Zahno Silvan
|
||||
#
|
||||
#-------------------------------------------------------------------------------
|
||||
#
|
||||
# Description:
|
||||
# Updates the file references in the .prjx Actel project file
|
||||
# and launches the Libero project manager
|
||||
# Help Parameter : <?>
|
||||
# Parameter : update_libero.pl <Libero File Spec> <VHDL File Spec> <^PDC File Spec>
|
||||
#-------------------------------------------------------------------------------
|
||||
#
|
||||
# History:
|
||||
# V0.1 : cof 12.2013 -- Initial release
|
||||
# V0.2 : zas 08.2019 -- Changed actel to libero
|
||||
#
|
||||
################################################################################
|
||||
|
||||
$separator = '-' x 79;
|
||||
$indent = ' ' x 2;
|
||||
$verbose = 1;
|
||||
|
||||
$ENV{TZ} = ''; # needed to be able to run Synplify avoinding license error
|
||||
my $designerExe = "$ENV{LIBERO_HOME}\\Designer\\bin\\libero.exe";
|
||||
$liberoFileSpec = $ARGV[0];
|
||||
$vhdlFileSpec = $ARGV[1];
|
||||
$pdcFileSpec = $ARGV[2];
|
||||
|
||||
|
||||
if ($verbose == 1) {
|
||||
print "Script Parameters:\n";
|
||||
print " * liberoFileSpec: $liberoFileSpec\n";
|
||||
print " * vhdlFileSpec: $vhdlFileSpec\n";
|
||||
print " * pdcFileSpec: $pdcFileSpec\n";
|
||||
}
|
||||
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Project variables
|
||||
#
|
||||
$liberoWorkFileSpec = $liberoFileSpec . '.tmp';
|
||||
# source directory
|
||||
my $sourceDir = "$ENV{CONCAT_DIR}";
|
||||
my $projectDir = "$ENV{LIBERO_WORK_DIR}";
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Update paths in the project file
|
||||
#
|
||||
|
||||
if ($verbose == 1) {
|
||||
print "\n$separator\n";
|
||||
print "Updating file specifications in $liberoFileSpec\n";
|
||||
print $indent, "temporary file spec: $liberoWorkFileSpec\n";
|
||||
}
|
||||
my $line;
|
||||
|
||||
open(LiberoFile, $liberoFileSpec) || die "couldn't open $HDLFileSpec!";
|
||||
open(workFile, ">$liberoWorkFileSpec");
|
||||
while (chop($line = <LiberoFile>)) {
|
||||
# replace source path
|
||||
if ($line =~ m/DEFAULT_IMPORT_LOC/i) {
|
||||
$line =~ s/".*"/"$sourceDir"/;
|
||||
}
|
||||
# replace project path
|
||||
if ($line =~ m/ProjectLocation/i) {
|
||||
$line =~ s/".*"/"$projectDir"/;
|
||||
}
|
||||
# replace VHDL file spec
|
||||
if ($line =~ m/VALUE\s".*,hdl"/i) {
|
||||
$line =~ s/".*"/"$vhdlFileSpec,hdl"/;
|
||||
}
|
||||
# replace PDC file spec
|
||||
if ($line =~ m/VALUE\s".*\.pdc,pdc"/i) {
|
||||
$line =~ s/".*"/"$pdcFileSpec,pdc"/;
|
||||
}
|
||||
|
||||
print workFile ("$line\n");
|
||||
}
|
||||
|
||||
close(workFile);
|
||||
close(LiberoFile);
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# delete original file and rename temporary file
|
||||
#
|
||||
unlink($liberoFileSpec);
|
||||
rename($liberoWorkFileSpec, $liberoFileSpec);
|
||||
|
||||
if ($verbose == 1) {
|
||||
print "$separator\n";
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Launch Libero
|
||||
#
|
||||
|
||||
#if ($verbose == 1) {
|
||||
# print "\n";
|
||||
# print "launching $designerExe\n";
|
||||
# print $indent, "project file spec: $liberoFileSpec\n";
|
||||
# print "$separator\n";
|
||||
#}
|
||||
|
||||
#system("$designerExe $liberoFileSpec");
|
||||
Reference in New Issue
Block a user