aboutsummaryrefslogtreecommitdiffstats
path: root/libraries/vendors/compile-uvvm.ps1
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/vendors/compile-uvvm.ps1')
-rw-r--r--libraries/vendors/compile-uvvm.ps1280
1 files changed, 0 insertions, 280 deletions
diff --git a/libraries/vendors/compile-uvvm.ps1 b/libraries/vendors/compile-uvvm.ps1
deleted file mode 100644
index fefd755a6..000000000
--- a/libraries/vendors/compile-uvvm.ps1
+++ /dev/null
@@ -1,280 +0,0 @@
-# ==============================================================================
-# Authors:
-# Patrick Lehmann
-#
-# ==============================================================================
-# Copyright (C) 2017-2021 Patrick Lehmann - Boetzingen, Germany
-# Copyright (C) 2015-2016 Patrick Lehmann - Dresden, Germany
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <gnu.org/licenses>.
-# ==============================================================================
-
-# .SYNOPSIS
-# Script to compile the UVVM libraries and verification models for GHDL on Windows.
-#
-# .DESCRIPTION
-# This CmdLet:
-# (1) creates a subdirectory in the current working directory
-# (2) compiles all UVVM packages
-#
-[CmdletBinding()]
-param(
- # Show the embedded help page(s).
- [switch]$Help = $false,
-
- # Compile all packages.
- [switch]$All = $false,
-
- # Compile all UVVM packages.
- [switch]$UVVM = $false,
- # Compile all UVVM Utility packages.
- [switch]$UVVM_Utilities = $false,
- # Compile all UVVM VVC Framework packages.
- [switch]$UVVM_VVC_Framework = $false,
- # Compile all UVVM Verification IPs (VIPs).
- [switch]$UVVM_VIP = $false,
- # Compile VIP: Avalon Memory Mapped
- [switch]$UVVM_VIP_Avalon_MM = $false,
- # Compile VIP: Avalon Stream
- [switch]$UVVM_VIP_Avalon_ST = $false,
- # Compile VIP: AXI
- [switch]$UVVM_VIP_AXI = $false,
- # Compile VIP: AXI-Lite
- [switch]$UVVM_VIP_AXI_Lite = $false,
- # Compile VIP: AXI-Stream
- [switch]$UVVM_VIP_AXI_Stream = $false,
- # Compile VIP: Clock Generator
- [switch]$UVVM_VIP_Clock_Generator = $false,
- # Compile VIP: Error Injection
- [switch]$UVVM_VIP_Error_Injection = $false,
- # Compile VIP: Ethernet
- [switch]$UVVM_VIP_Ethernet = $false,
- # Compile VIP: GMII
- [switch]$UVVM_VIP_GMII = $false,
- # Compile VIP: GPIO
- [switch]$UVVM_VIP_GPIO = $false,
- # Compile VIP: HVVC to VVC Bridge
- [switch]$UVVM_VIP_HVVC2VVC = $false,
- # Compile VIP: I2C
- [switch]$UVVM_VIP_I2C = $false,
- # Compile VIP: RGMII
- [switch]$UVVM_VIP_RGMII = $false,
- # Compile VIP: SBI (Simple Byte Interface)
- [switch]$UVVM_VIP_SBI = $false,
- # Compile VIP: Scoreboard
- [switch]$UVVM_VIP_Scoreboard = $false,
- # Compile VIP: Specifaction Coverage
- [switch]$UVVM_VIP_Spec_Cov = $false,
- # Compile VIP: SPI
- [switch]$UVVM_VIP_SPI = $false,
- # Compile VIP: UART
- [switch]$UVVM_VIP_UART = $false,
-
- # Clean up directory before analyzing.
- [switch]$Clean = $false,
-
- #Skip warning messages. (Show errors only.)
- [switch]$SuppressWarnings = $false,
- # Halt on errors.
- [switch]$HaltOnError = $false,
-
- # Set vendor library source directory.
- [string]$Source = "",
- # Set output directory name.
- [string]$Output = "",
- # Set GHDL binary directory.
- [string]$GHDL = ""
-)
-
-# ---------------------------------------------
-# save working directory
-$WorkingDir = Get-Location
-
-# set default values
-$EnableDebug = [bool]$PSCmdlet.MyInvocation.BoundParameters["Debug"]
-$EnableVerbose = [bool]$PSCmdlet.MyInvocation.BoundParameters["Verbose"] -or $EnableDebug
-
-# load modules from GHDL's 'vendors' library directory
-$EnableVerbose -and (Write-Host "Loading modules..." -ForegroundColor Gray ) | Out-Null
-$EnableDebug -and (Write-Host " Import-Module $PSScriptRoot\config.psm1 -Verbose:`$$false -Debug:`$$false -ArgumentList `"UVVM`"" -ForegroundColor DarkGray ) | Out-Null
-Import-Module $PSScriptRoot\config.psm1 -Verbose:$false -ArgumentList "UVVM"
-$EnableDebug -and (Write-Host " Import-Module $PSScriptRoot\shared.psm1 -Verbose:`$$false -Debug:`$$false -ArgumentList @(`"UVVM`", `"$WorkingDir`")" -ForegroundColor DarkGray ) | Out-Null
-Import-Module $PSScriptRoot\shared.psm1 -Verbose:$false -ArgumentList @("UVVM", "$WorkingDir")
-
-# Display help if no command was selected
-if ($Help -or (-not ($All -or $Clean -or
- ($UVVM -or ($UVVM_Utilities -or $UVVM_VVC_Framework)) -or
- ($UVVM_VIP -or ($UVVM_VIP_Avalon_MM -or $UVVM_VIP_Avalon_ST -or $UVVM_VIP_AXI -or $UVVM_VIP_AXI_Lite -or
- $UVVM_VIP_AXI_Stream -or $UVVM_VIP_Clock_Generator -or $UVVM_VIP_Error_Injection -or
- $UVVM_VIP_Ethernet -or $UVVM_VIP_GMII -or $UVVM_VIP_GPIO -or $UVVM_VIP_HVVC2VVC -or
- $UVVM_VIP_I2C -or $UVVM_VIP_RGMII -or $UVVM_VIP_SBI -or $UVVM_VIP_Scoreboard -or
- $UVVM_VIP_Spec_Cov -or $UVVM_VIP_SPI -or $UVVM_VIP_UART))
- )))
-{ Get-Help $MYINVOCATION.MyCommand.Path -Detailed
- Exit-CompileScript
-}
-
-if ($All)
-{ $UVVM = $true
- $UVVM_VIP = $true
-}
-if ($UVVM)
-{ $UVVM_Utilities = $true
- $UVVM_VVC_Framework = $true
-}
-if ($UVVM_VIP)
-{ $UVVM_VIP_Avalon_MM = $true
- $UVVM_VIP_Avalon_ST = $true
- $UVVM_VIP_AXI = $true
- $UVVM_VIP_AXI_Lite = $true
- $UVVM_VIP_AXI_Stream = $true
- $UVVM_VIP_Clock_Generator = $true
- $UVVM_VIP_Error_Injection = $true
- $UVVM_VIP_Ethernet = $true
- $UVVM_VIP_GMII = $true
- $UVVM_VIP_GPIO = $true
- $UVVM_VIP_HVVC2VVC = $true
- $UVVM_VIP_I2C = $true
- $UVVM_VIP_RGMII = $true
- $UVVM_VIP_SBI = $true
- $UVVM_VIP_Scoreboard = $true
- $UVVM_VIP_Spec_Cov = $true
- $UVVM_VIP_SPI = $true
- $UVVM_VIP_UART = $true
-}
-
-
-$SourceDirectory = Get-SourceDirectory $Source ""
-$DestinationDirectory = Get-DestinationDirectory $Output
-$GHDLBinary = Get-GHDLBinary $GHDL
-
-# create "uvvm" directory and change to it
-New-DestinationDirectory $DestinationDirectory
-cd $DestinationDirectory
-
-
-$VHDLVersion,$VHDLStandard,$VHDLFlavor = Get-VHDLVariables
-
-# define global GHDL Options
-$Analyze_Parameters = @(
- "--mb-comments",
- "-Wbinding",
- "-fexplicit",
- "-Wno-shared" # UVVM specific
-)
-if (-not $EnableDebug)
-{ $Analyze_Parameters += @(
- "-Wno-hide"
- )
-}
-if (-not ($EnableVerbose -or $EnableDebug))
-{ $Analyze_Parameters += @(
- "-Wno-others",
- "-Wno-static"
- )
-}
-$Analyze_Parameters += @(
- "--ieee=$VHDLFlavor",
- "--no-vital-checks",
- "--std=$VHDLStandard",
- "-frelaxed",
- "-P$DestinationDirectory"
-)
-
-
-$StopCompiling = $false
-$ErrorCount = 0
-
-# Cleanup directories
-# ==============================================================================
-if ($Clean)
-{ Write-Host "[ERROR]: '-Clean' is not implemented!" -ForegroundColor Red
- Exit-CompileScript -1
-
- Write-Host "Cleaning up vendor directory ..." -ForegroundColor Yellow
- rm *.cf
-}
-
-Write-Host "Reading VIP compile order files..." -ForegroundColor Cyan
-$VIP_Files = [ordered]@{}
-foreach ($VIPName in (Get-Content "$SourceDirectory\script\component_list.txt"))
-{ if ($VIPName.StartsWith("uvvm"))
- { $VIPVariable = $VIPName.Substring(5).ToUpper()
- $VIPVariable = $VIPVariable.Replace("UTIL", "Utilities")
- }
- elseif ($VIPName.StartsWith("bitvis"))
- { $VIPVariable = $VIPName.Substring(7).ToUpper()
- $VIPVariable = $VIPVariable.Replace("AXILITE", "AXI_LITE")
- $VIPVariable = $VIPVariable.Replace("AXISTREAM", "AXI_STREAM")
- $VIPVariable = $VIPVariable.Replace("HVVC_TO_VVC_BRIDGE", "HVVC2VVC")
- }
- $VIPVariable = "UVVM_$VIPVariable"
-
- $EnableVerbose -and (Write-Host " Found VIP: $VIPName" -ForegroundColor Gray ) | Out-Null
- $EnableDebug -and (Write-Host " Reading compile order from '$SourceDirectory\$VIPName\script\compile_order.txt'" -ForegroundColor DarkGray ) | Out-Null
-
- $VIPFiles = @()
- $CompileOrder = Get-Content "$SourceDirectory\$VIPName\script\compile_order.txt"
- foreach ($Line in $CompileOrder)
- { $Line = $Line.Trim()
- if ($Line -eq "")
- { continue }
- elseif ($Line.StartsWith("#"))
- { if ($Line.StartsWith("# library "))
- { $VIPName = $Line.Substring(10) }
- else
- { Write-Host "Unknown parser instruction in compile order file." -ForegroundColor Yellow }
- }
- else
- { $Path = Resolve-Path "$SourceDirectory\$VIPName\script\$Line"
- $VIPFiles += $Path
- }
- }
-
- if ($EnableDebug)
- { Write-Host " VHDL Library name: $VIPName" -ForegroundColor DarkGray
- foreach ($File in $VIPFiles)
- { Write-Host " $File" -ForegroundColor DarkGray }
- }
-
- $VIP_Files[$VIPName] = @{
- "Variable" = $VIPVariable;
- "Library" = $VIPName;
- "Files" = $VIPFiles
- }
-}
-
-
-# UVVM packages
-# ==============================================================================
-foreach ($vip in $VIP_Files.Keys)
-{ if ((-not $StopCompiling) -and (Get-Variable $VIP_Files[$vip]["Variable"] -ValueOnly))
- { $Library = $VIP_Files[$vip]["Library"]
- $SourceFiles = $VIP_Files[$vip]["Files"]
-
- $ErrorCount += Start-PackageCompilation $GHDLBinary $Analyze_Parameters $DestinationDirectory $Library $VHDLVersion $SourceFiles $SuppressWarnings $HaltOnError -Verbose:$EnableVerbose -Debug:$EnableDebug
- $StopCompiling = $HaltOnError -and ($ErrorCount -ne 0)
- }
-}
-
-Write-Host "--------------------------------------------------------------------------------"
-Write-Host "Compiling UVVM packages " -NoNewline
-if ($ErrorCount -gt 0)
-{ Write-Host "[FAILED]" -ForegroundColor Red
- Exit-CompileScript 1
-}
-else
-{ Write-Host "[SUCCESSFUL]" -ForegroundColor Green
- Exit-CompileScript
-}