mirror of
				https://github.com/Klagarge/Cursor.git
				synced 2025-10-31 05:59:18 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			92 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
| #!/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";
 | |
| }
 |