mirror of
https://github.com/Klagarge/Cursor.git
synced 2025-08-03 13:23:09 +00:00
Initial commit
This commit is contained in:
91
Scripts/update_ise.pl
Normal file
91
Scripts/update_ise.pl
Normal file
@@ -0,0 +1,91 @@
|
||||
#!/usr/bin/perl
|
||||
# ------------------------------------------------------------------------------
|
||||
# update_ise
|
||||
# replace ucf and vhd filelocation and name in the Xilinx xise project file
|
||||
# Help Parameter : <?>
|
||||
# Parameter : update_ise.pl <ISE File Spec> <VHDL File Spec> <UCF File Spec>
|
||||
# ------------------------------------------------------------------------------
|
||||
# Changelog:
|
||||
# 2019-06-12 : zas
|
||||
# * All parameters given with agruments instead of env variables
|
||||
# 2015-05-26 : guo
|
||||
# * update to environment from HELS v.15.0526
|
||||
# 2012-05-27 : cof
|
||||
# * Initial release
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
$separator = '-' x 79;
|
||||
$indent = ' ' x 2;
|
||||
|
||||
$iseFileSpec = $ARGV[0];
|
||||
$vhdlFileSpec = $ARGV[1];
|
||||
$ucfFileSpec = $ARGV[2];
|
||||
|
||||
$verbose = 1;
|
||||
|
||||
if ($verbose == 1) {
|
||||
print "Script Parameters:\n";
|
||||
print " * iseFileSpec: $iseFileSpec\n";
|
||||
print " * vhdlFileSpec: $vhdlFileSpec\n";
|
||||
print " * ucfFileSpec: $ucfFileSpec\n";
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# program I/O files
|
||||
#
|
||||
$tempFileSpec = $iseFileSpec . '.tmp';
|
||||
|
||||
if ($verbose == 1) {
|
||||
print "\n$separator\n";
|
||||
print "Updating file specifications in $iseFileSpec\n";
|
||||
print $indent, "temporary file spec: $tempFileSpec\n";
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# read original file, edit and save to temporary file
|
||||
#
|
||||
my $line;
|
||||
|
||||
open(ISEFile, $iseFileSpec) || die "couldn't open $iseFileSpec!";
|
||||
open(tempFile, ">$tempFileSpec");
|
||||
while (chop($line = <ISEFile>)) {
|
||||
# replace VHDL files
|
||||
if ($line =~ m/FILE_VHDL/i) {
|
||||
$line =~ s/<file\s+xil_pn\:name=.*?".+?"/<file xil_pn:name="$vhdlFileSpec"/ig;
|
||||
}
|
||||
# replace EDIF files
|
||||
if ($line =~ m/FILE_EDIF/i) {
|
||||
$line =~ s/<file\s+xil_pn\:name=.*?".+?"/<file xil_pn:name="$edifFileSpec"/ig;
|
||||
}
|
||||
# replace UCF files
|
||||
if ($line =~ m/FILE_UCF/i) {
|
||||
$line =~ s/<file\s+xil_pn\:name=.*?".+?"/<file xil_pn:name="$ucfFileSpec"/ig;
|
||||
}
|
||||
# Implementation Top files
|
||||
if ($line =~ m/\.vhd"/i) {
|
||||
$line =~ s/<property\s+xil_pn:name="Implementation\s+Top\s+File"\s+xil_pn\:value=".+?"/<property xil_pn:name="Implementation Top File" xil_pn:value="$vhdlFileSpec"/ig;
|
||||
}
|
||||
if ($line =~ m/\.edf"/i) {
|
||||
$line =~ s/<property\s+xil_pn:name="Implementation\s+Top\s+File"\s+xil_pn\:value=".+?"/<property xil_pn:name="Implementation Top File" xil_pn:value="$edifFileSpec"/ig;
|
||||
}
|
||||
# replace UCF binding
|
||||
if ($line =~ m/\.ucf"/i) {
|
||||
$line =~ s/<binding\s+(.+)\s+xil_pn\:name=.*?".+?"/<binding $1 xil_pn:name="$ucfFileSpec"/ig;
|
||||
}
|
||||
|
||||
print tempFile ("$line\n");
|
||||
}
|
||||
|
||||
close(tempFile);
|
||||
close(ISEFile);
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# delete original file and rename temporary file
|
||||
#
|
||||
unlink($iseFileSpec);
|
||||
rename($tempFileSpec, $iseFileSpec);
|
||||
|
||||
if ($verbose == 1) {
|
||||
print "$separator\n";
|
||||
}
|
Reference in New Issue
Block a user