aboutsummaryrefslogtreecommitdiffstats
path: root/libraries/vendors/compile-xilinx-ise.ps1
diff options
context:
space:
mode:
authorPatrick Lehmann <Patrick.Lehmann@tu-dresden.de>2016-06-07 20:54:10 +0200
committertgingold <tgingold@users.noreply.github.com>2016-06-07 20:54:10 +0200
commita41a009f2ebec350f0ebbcbf8353223a15cfa557 (patch)
tree44e1d7374c4aa7bea4f8541296f18c70b087682d /libraries/vendors/compile-xilinx-ise.ps1
parent20259a7f396e03c5bfce9237fd5732eb931e3d23 (diff)
downloadghdl-a41a009f2ebec350f0ebbcbf8353223a15cfa557.tar.gz
ghdl-a41a009f2ebec350f0ebbcbf8353223a15cfa557.tar.bz2
ghdl-a41a009f2ebec350f0ebbcbf8353223a15cfa557.zip
Paebbels/master (#75)
* Obviously, this is the initial commit on a .gitignore file. * Implemented vendor specific compile scripts for: Altera Quartus-II (tested with 15.0), Xilinx ISE (tested with 14.7) and OSVVM. * Minor fixes. * First version of a README file for the vendor specific library compile scripts. * Vendor specific simulation library compile scripts: Improved error handling by stream processing. Extracted configuration into a config.ps1 file. * Minor fixes. * Added Unisim SecureIP primitives. Added Unimacro library. * Fixed file encoding of compile-osvvm.ps1. Implemented a 'advanced functions' to restore ghdl warning/error messages as a one-liner. * Splitted Xilinx compile scripts into *-ise.ps1 and *-vivado.ps1. * Added compile script for VUnit. * Updated README.md for the vendor compile scripts. * Added file headers. Change config.ps1 and shared.ps1 to a PowerShell module (*.psm1). * Fixed embedded help pages in all compile scripts. * Fixed all errors in compile script for Vivado simulation libraries: *_retarget_VCOMP.vhd was missing. * First steps towards compile scripts for Linux. * Translated lines from Windows script to Linux script. * Step 3 - colors and basic control blocks. * Changed copyright line in file header. * Changed copyright line in file header. * Added colorizer rules. Added skip mode for existing object files. Added cleanup mode. * Disabled vital checks in Xilinx's simprim library. Fixed typo. * Added '-Clean' parameter to cleanup the directory before analyzing. * Added a new '-Help' switch to all compile scripts to show the embedded help page(s). * Generalized config.sh. Fixed some bugs in compile-xilinx-ise.sh. * Added command line argument parsing. * Fixed syntax errors on Linux. * Added --all option. Generalized GHDL parameters. * Added '--skip-largefile' option. * Added the 'stop compiling' feature (not working). * Updated README.md for vendor specific compile scripts. * Implemented a check if grcat is installed on the system. Added support to execute the script from an other directory. Changed file size test from 'du -b' to 'wc -b'. * Fixed exit code problem in pipes. Fixed word count problem. * Minor fixes. * Fixed possible syntax error. * Implemented vendor specific library compile script for OSVVM. * Implemented vendor specific library compile script for VUnit. * Enabled disabled messages. Fixed typos. * Implemented vendor specific library compile script for Xilinx Vivado. * Minor fixes. * Implemented vendor specific library compile script for Altera Quartus-II. * Applied chmod to all new compile scripts. * Minor fixes. * Fixed typos. * Implemented 'halt-on-error' feature. * Fixed relative path problem for grcat. * README updates. * Updated PoSh scripts for - IEEE library compilation (complib.ps1) - added VITAL2000 support for VHDL-2008 - minor fixes - vendor compile scripts - added VHDL93 and VHDL2008 switches to compile vendor libraries with VHDL-2008 - minor fixes * Updated vendor library compile scripts (Bash) for Linux, too. * Fixed error in vendor library compile scripts for osvvm and vunit. * Windows compile scripts for mcode backend: Reworked compile.ps1. * Changed default output directory to xilinx-ise and xilinx-vivado. * compile-altera.sh: Skip large files * Updated compile script for OSVVM. * Improved OSVVM compile script for Linux.
Diffstat (limited to 'libraries/vendors/compile-xilinx-ise.ps1')
-rw-r--r--libraries/vendors/compile-xilinx-ise.ps1146
1 files changed, 106 insertions, 40 deletions
diff --git a/libraries/vendors/compile-xilinx-ise.ps1 b/libraries/vendors/compile-xilinx-ise.ps1
index 7557a5129..610210f6c 100644
--- a/libraries/vendors/compile-xilinx-ise.ps1
+++ b/libraries/vendors/compile-xilinx-ise.ps1
@@ -47,25 +47,32 @@
[CmdletBinding()]
param(
# Compile all libraries and packages.
- [switch]$All = $null,
+ [switch]$All = $false,
# Compile the Xilinx simulation library.
- [switch]$Unisim = $false,
+ [switch]$Unisim = $false,
# Compile the Xilinx macro library.
- [switch]$Unimacro = $false,
+ [switch]$Unimacro = $false,
# Compile the Xilinx post-map simulation library.
- [switch]$Simprim = $false,
+ [switch]$Simprim = $false,
# Compile the Xilinx secureip library.
- [switch]$SecureIP = $false,
+ [switch]$SecureIP = $false,
+
+ # Set VHDL Standard to '93
+ [switch]$VHDL93 = $false,
+ # Set VHDL Standard to '08
+ [switch]$VHDL2008 = $false,
# Clean up directory before analyzing.
- [switch]$Clean = $false,
+ [switch]$Clean = $false,
# Skip warning messages. (Show errors only.)
[switch]$SuppressWarnings = $false,
+ # Halt on errors
+ [switch]$HaltOnError = $false,
# Show the embedded help page(s)
[switch]$Help = $false
@@ -96,8 +103,27 @@ elseif ($All -eq $true)
$Unimacro = $true
$SecureIP = $true
}
-$StopCompiling = $false
+if ($VHDL93 -eq $true)
+{ $VHDLStandard = "93c"
+ $VHDLFlavor = "synopsys"
+ $DestinationDir += ".v93"
+}
+elseif ($VHDL2008 -eq $true)
+{ $VHDLStandard = "08"
+ $VHDLFlavor = "standard"
+ $DestinationDir += ".v08"
+ Write-Host "Not all Xilinx primitives are VHDL-2008 compatible! Setting HaltOnError to FALSE." -ForegroundColor Red
+ $HaltOnError = $false
+}
+else
+{ $VHDLStandard = "93c"
+ $VHDLFlavor = "synopsys"
+ $DestinationDir += ".v93"
+}
+
+$StopCompiling = $false
+$ErrorCount = 0
# define global GHDL Options
$GlobalOptions = ("-a", "-fexplicit", "-frelaxed-rules", "--no-vital-checks", "--warn-binding", "--mb-comments")
@@ -120,8 +146,8 @@ if ($Clean)
if ((-not $StopCompiling) -and $Unisim)
{ Write-Host "Compiling library 'unisim' ..." -ForegroundColor Yellow
$Options = $GlobalOptions
- $Options += "--ieee=synopsys"
- $Options += "--std=93c"
+ $Options += "--ieee=$VHDLFlavor"
+ $Options += "--std=$VHDLStandard"
$Files = (
"$SourceDir\unisims\unisim_VPKG.vhd",
"$SourceDir\unisims\unisim_VCOMP.vhd")
@@ -129,23 +155,33 @@ if ((-not $StopCompiling) -and $Unisim)
{ Write-Host "Analyzing package '$File'" -ForegroundColor Cyan
$InvokeExpr = "ghdl.exe " + ($Options -join " ") + " --work=unisim " + $File + " 2>&1"
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings
- $StopCompiling = ($LastExitCode -ne 0)
- if ($StopCompiling) { break }
+ if ($LastExitCode -ne 0)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { $StopCompiling = $true
+ break
+ }
+ }
}
}
# compile unisim primitives
if ((-not $StopCompiling) -and $Unisim)
{ $Options = $GlobalOptions
- $Options += "--ieee=synopsys"
- $Options += "--std=93c"
+ $Options += "--ieee=$VHDLFlavor"
+ $Options += "--std=$VHDLStandard"
$Files = dir "$SourceDir\unisims\primitive\*.vhd*"
foreach ($File in $Files)
{ Write-Host "Analyzing primitive '$($File.FullName)'" -ForegroundColor Cyan
$InvokeExpr = "ghdl.exe " + ($Options -join " ") + " --work=unisim " + $File.FullName + " 2>&1"
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings
- $StopCompiling = ($LastExitCode -ne 0)
- if ($StopCompiling) { break }
+ if ($LastExitCode -ne 0)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { $StopCompiling = $true
+ break
+ }
+ }
}
}
@@ -153,15 +189,20 @@ if ((-not $StopCompiling) -and $Unisim)
if ((-not $StopCompiling) -and $Unisim -and $SecureIP)
{ Write-Host "Compiling library secureip primitives ..." -ForegroundColor Yellow
$Options = $GlobalOptions
- $Options += "--ieee=synopsys"
- $Options += "--std=93c"
+ $Options += "--ieee=$VHDLFlavor"
+ $Options += "--std=$VHDLStandard"
$Files = dir "$SourceDir\unisims\secureip\*.vhd*"
foreach ($File in $Files)
{ Write-Host "Analyzing primitive '$($File.FullName)'" -ForegroundColor Cyan
$InvokeExpr = "ghdl.exe " + ($Options -join " ") + " --work=secureip " + $File.FullName + " 2>&1"
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings
- $StopCompiling = ($LastExitCode -ne 0)
- #if ($StopCompiling) { break }
+ if ($LastExitCode -ne 0)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { $StopCompiling = $true
+ # break
+ }
+ }
}
}
@@ -171,31 +212,41 @@ if ((-not $StopCompiling) -and $Unisim -and $SecureIP)
if ((-not $StopCompiling) -and $Unimacro)
{ Write-Host "Compiling library 'unimacro' ..." -ForegroundColor Yellow
$Options = $GlobalOptions
- $Options += "--ieee=synopsys"
- $Options += "--std=93c"
+ $Options += "--ieee=$VHDLFlavor"
+ $Options += "--std=$VHDLStandard"
$Files = @(
"$SourceDir\unimacro\unimacro_VCOMP.vhd")
foreach ($File in $Files)
{ Write-Host "Analyzing package '$File'" -ForegroundColor Cyan
$InvokeExpr = "ghdl.exe " + ($Options -join " ") + " --work=unimacro " + $File + " 2>&1"
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings
- $StopCompiling = ($LastExitCode -ne 0)
- if ($StopCompiling) { break }
+ if ($LastExitCode -ne 0)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { $StopCompiling = $true
+ break
+ }
+ }
}
}
# compile unimacro macros
if ((-not $StopCompiling) -and $Unimacro)
{ $Options = $GlobalOptions
- $Options += "--ieee=synopsys"
- $Options += "--std=93c"
+ $Options += "--ieee=$VHDLFlavor"
+ $Options += "--std=$VHDLStandard"
$Files = dir "$SourceDir\unimacro\*_MACRO.vhd*"
foreach ($File in $Files)
{ Write-Host "Analyzing primitive '$($File.FullName)'" -ForegroundColor Cyan
$InvokeExpr = "ghdl.exe " + ($Options -join " ") + " --work=unimacro " + $File.FullName + " 2>&1"
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings
- $StopCompiling = ($LastExitCode -ne 0)
- if ($StopCompiling) { break }
+ if ($LastExitCode -ne 0)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { $StopCompiling = $true
+ break
+ }
+ }
}
}
@@ -205,8 +256,8 @@ if ((-not $StopCompiling) -and $Unimacro)
if ((-not $StopCompiling) -and $Simprim)
{ Write-Host "Compiling library 'simprim' ..." -ForegroundColor Yellow
$Options = $GlobalOptions
- $Options += "--ieee=synopsys"
- $Options += "--std=93c"
+ $Options += "--ieee=$VHDLFlavor"
+ $Options += "--std=$VHDLStandard"
$Files = (
"$SourceDir\simprims\simprim_Vpackage.vhd",
"$SourceDir\simprims\simprim_Vcomponents.vhd")
@@ -214,8 +265,13 @@ if ((-not $StopCompiling) -and $Simprim)
{ Write-Host "Analyzing package '$File'" -ForegroundColor Cyan
$InvokeExpr = "ghdl.exe " + ($Options -join " ") + " --work=simprim " + $File + " 2>&1"
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings
- $StopCompiling = ($LastExitCode -ne 0)
- if ($StopCompiling) { break }
+ if ($LastExitCode -ne 0)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { $StopCompiling = $true
+ break
+ }
+ }
}
}
@@ -223,15 +279,20 @@ if ((-not $StopCompiling) -and $Simprim)
if ((-not $StopCompiling) -and $Simprim)
{ Write-Host "Compiling library 'simprim' ..." -ForegroundColor Yellow
$Options = $GlobalOptions
- $Options += "--ieee=synopsys"
- $Options += "--std=93c"
+ $Options += "--ieee=$VHDLFlavor"
+ $Options += "--std=$VHDLStandard"
$Files = dir "$SourceDir\simprims\primitive\other\*.vhd*"
foreach ($File in $Files)
{ Write-Host "Analyzing primitive '$($File.FullName)'" -ForegroundColor Cyan
$InvokeExpr = "ghdl.exe " + ($Options -join " ") + " --work=simprim " + $File.FullName + " 2>&1"
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings
- $StopCompiling = ($LastExitCode -ne 0)
- #if ($StopCompiling) { break }
+ if ($LastExitCode -ne 0)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { $StopCompiling = $true
+ # break
+ }
+ }
}
}
@@ -239,21 +300,26 @@ if ((-not $StopCompiling) -and $Simprim)
if ((-not $StopCompiling) -and $Simprim -and $SecureIP)
{ Write-Host "Compiling secureip primitives ..." -ForegroundColor Yellow
$Options = $GlobalOptions
- $Options += "--ieee=synopsys"
- $Options += "--std=93c"
+ $Options += "--ieee=$VHDLFlavor"
+ $Options += "--std=$VHDLStandard"
$Files = dir "$SourceDir\simprims\secureip\other\*.vhd*"
foreach ($File in $Files)
{ Write-Host "Analyzing primitive '$($File.FullName)'" -ForegroundColor Cyan
$InvokeExpr = "ghdl.exe " + ($Options -join " ") + " --work=simprim " + $File.FullName + " 2>&1"
$ErrorRecordFound = Invoke-Expression $InvokeExpr | Restore-NativeCommandStream | Write-ColoredGHDLLine $SuppressWarnings
- $StopCompiling = ($LastExitCode -ne 0)
- #if ($StopCompiling) { break }
+ if ($LastExitCode -ne 0)
+ { $ErrorCount += 1
+ if ($HaltOnError)
+ { $StopCompiling = $true
+ # break
+ }
+ }
}
}
Write-Host "--------------------------------------------------------------------------------"
Write-Host "Compiling Xilinx ISE libraries " -NoNewline
-if ($StopCompiling)
+if ($ErrorCount -gt 0)
{ Write-Host "[FAILED]" -ForegroundColor Red }
else
{ Write-Host "[SUCCESSFUL]" -ForegroundColor Green }