aboutsummaryrefslogtreecommitdiffstats
path: root/libraries/vendors/compile-uvvm.sh
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/vendors/compile-uvvm.sh')
-rwxr-xr-xlibraries/vendors/compile-uvvm.sh437
1 files changed, 0 insertions, 437 deletions
diff --git a/libraries/vendors/compile-uvvm.sh b/libraries/vendors/compile-uvvm.sh
deleted file mode 100755
index d33743a87..000000000
--- a/libraries/vendors/compile-uvvm.sh
+++ /dev/null
@@ -1,437 +0,0 @@
-#! /usr/bin/env bash
-# ==============================================================================
-# Authors:
-# Patrick Lehmann
-#
-# Bash Script (executable):
-# Script to compile the UVVM library for GHDL on Linux.
-#
-# Description:
-# - Creates a subdirectory in the current working directory
-# - Compiles all UVVM packages and verification IPs
-#
-# ==============================================================================
-# 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>.
-# ==============================================================================
-
-# Work around for Darwin (Mac OS)
-test greadlink --version > /dev/null 2>&1 && READLINK=greadlink || READLINK=readlink
-
-# Save working directory
-WorkingDir=$(pwd)
-ScriptDir="$(dirname $0)"
-ScriptDir="$($READLINK -f $ScriptDir)"
-
-# Source Bash utilities
-source $ScriptDir/../ansi_color.sh
-if [[ $? -ne 0 ]]; then echo 1>&2 -e "${COLORED_ERROR} While loading Bash utilities.${ANSI_NOCOLOR}" ; exit 1; fi
-
-
-# Command line argument processing
-COMMAND=1
-CLEAN=0
-COMPILE_UVVM=0
-COMPILE_UVVM_UTILITIES=0
-COMPILE_UVVM_VVC_FRAMEWORK=0
-COMPILE_UVVM_VIP=0
-COMPILE_UVVM_VIP_AVALON_MM=0
-COMPILE_UVVM_VIP_AVALON_ST=0
-COMPILE_UVVM_VIP_AXI=0
-COMPILE_UVVM_VIP_AXILITE=0
-COMPILE_UVVM_VIP_AXISTREAM=0
-COMPILE_UVVM_VIP_CLOCK_GENERATOR=0
-COMPILE_UVVM_VIP_ERROR_INJECTION=0
-COMPILE_UVVM_VIP_ETHERNET=0
-COMPILE_UVVM_VIP_GMII=0
-COMPILE_UVVM_VIP_GPIO=0
-COMPILE_UVVM_VIP_HVVC_TO_VVC_BRIDGE=0
-COMPILE_UVVM_VIP_I2C=0
-COMPILE_UVVM_VIP_RGMII=0
-COMPILE_UVVM_VIP_SBI=0
-COMPILE_UVVM_VIP_SCOREBOARD=0
-COMPILE_UVVM_VIP_SPEC_COV=0
-COMPILE_UVVM_VIP_SPI=0
-COMPILE_UVVM_VIP_UART=0
-VERBOSE=0
-DEBUG=0
-FILTERING=1
-SUPPRESS_WARNINGS=0
-HALT_ON_ERROR=0
-DestDir=""
-SrcDir=""
-while [[ $# -gt 0 ]]; do
- case "$1" in
- -c|--clean)
- COMMAND=3
- CLEAN=1
- ;;
- -a|--all)
- COMMAND=2
- ;;
- --uvvm)
- COMMAND=3
- COMPILE_UVVM=1
- ;;
- --uvvm-vip)
- COMMAND=3
- COMPILE_UVVM_VIP=1
- ;;
- --uvvm-utilities)
- COMMAND=3
- COMPILE_UVVM_UTILITIES=1
- ;;
- --uvvm-vvc-framework)
- COMMAND=3
- COMPILE_UVVM_VVC_FRAMEWORK=1
- ;;
- --uvvm-vip-avalon_mm)
- COMMAND=3
- COMPILE_UVVM_VIP_AVALON_MM=1
- ;;
- --uvvm-vip-avalon_st)
- COMMAND=3
- COMPILE_UVVM_VIP_AVALON_ST=1
- ;;
- --uvvm-vip-axi)
- COMMAND=3
- COMPILE_UVVM_VIP_AXI=1
- ;;
- --uvvm-vip-axi_lite)
- COMMAND=3
- COMPILE_UVVM_VIP_AXILITE=1
- ;;
- --uvvm-vip-axi_stream)
- COMMAND=3
- COMPILE_UVVM_VIP_AXISTREAM=1
- ;;
- --uvvm-vip-clock)
- COMMAND=3
- COMPILE_UVVM_VIP_CLOCK_GENERATOR=1
- ;;
- --uvvm-vip-error)
- COMMAND=3
- COMPILE_UVVM_VIP_ERROR_INJECTION=1
- ;;
- --uvvm-vip-ethernet)
- COMMAND=3
- COMPILE_UVVM_VIP_ETHERNET=1
- ;;
- --uvvm-vip-gmii)
- COMMAND=3
- COMPILE_UVVM_VIP_GMII=1
- ;;
- --uvvm-vip-gpio)
- COMMAND=3
- COMPILE_UVVM_VIP_GPIO=1
- ;;
- --uvvm-vip-hvvc2vvc)
- COMMAND=3
- COMPILE_UVVM_VIP_HVVC_TO_VVC_BRIDGE=1
- ;;
- --uvvm-vip-i2c)
- COMMAND=3
- COMPILE_UVVM_VIP_I2C=1
- ;;
- --uvvm-vip-rgmii)
- COMMAND=3
- COMPILE_UVVM_VIP_RGMII=1
- ;;
- --uvvm-vip-sbi)
- COMMAND=3
- COMPILE_UVVM_VIP_SBI=1
- ;;
- --uvvm-vip-spec)
- COMMAND=3
- COMPILE_UVVM_VIP_SPEC_COV=1
- ;;
- --uvvm-vip-spi)
- COMMAND=3
- COMPILE_UVVM_VIP_SPI=1
- ;;
- --uvvm-vip-scoreboard)
- COMMAND=3
- COMPILE_UVVM_VIP_SCOREBOARD=1
- ;;
- --uvvm-vip-uart)
- COMMAND=3
- COMPILE_UVVM_VIP_UART=1
- ;;
- -v|--verbose)
- VERBOSE=1
- ;;
- -d|--debug)
- VERBOSE=1
- DEBUG=1
- ;;
- -h|--help)
- COMMAND=0
- break
- ;;
- -n|--no-filter)
- FILTERING=0
- ;;
- -N|--no-warnings)
- SUPPRESS_WARNINGS=1
- ;;
- -H|--halt-on-error)
- HALT_ON_ERROR=1
- ;;
- --ghdl)
- GHDL="$2" # overwrite a potentially existing GHDL environment variable
- shift # skip argument
- ;;
- --source)
- SrcDir="$2"
- shift # skip argument
- ;;
- --output)
- DestDir="$2"
- shift # skip argument
- ;;
- *) # unknown option
- echo 1>&2 -e "\n${COLORED_ERROR} Unknown command line option '$1'.${ANSI_NOCOLOR}"
- COMMAND=0
- break
- ;;
- esac
- shift # parsed argument or value
-done
-
-ERRORCOUNT=0
-
-if [[ $COMMAND -le 1 ]]; then
- test $COMMAND -eq 1 && echo 1>&2 -e "\n${COLORED_ERROR} No command selected.${ANSI_NOCOLOR}"
- echo ""
- echo "Synopsis:"
- echo " A script to compile the simulation library 'uvvm' for GHDL on Linux."
- echo " A library folder 'uvvm/v08' will be created relative to the current"
- echo " working directory."
- echo ""
- echo " Use the adv. options or edit 'config.sh' to supply paths and default parameters."
- echo ""
- echo "Usage:"
- echo " compile-uvvm.sh [<verbosity>] <common command>|<library> [<options>] [<adv. options>]"
- echo ""
- echo "Common commands:"
- echo " -h --help Print this help page"
- echo " -c --clean Remove all generated files"
- echo ""
- echo "Libraries:"
- echo " -a --all Compile all libraries."
- echo " --uvvm Compile UVVM library packages."
- echo " --uvvm-vip Compile UVVM Verification IPs (VIPs)."
- echo ""
- echo "Common Packages:"
- echo " --uvvm-utilities UVVM utilities."
- echo " --uvvm-vvc-framework VHDL Verification Component (VVC) framework."
- echo ""
- echo "Verification IPs:"
- echo " --uvvm-vip-avalon_mm Altera/Intel Avalon Memory Mapped"
- echo " --uvvm-vip-avalon_st Altera/Intel Avalon Stream"
- echo " --uvvm-vip-axi ARM AMBA AXI4"
- echo " --uvvm-vip-axi_lite ARM AMBA AXI4-Lite"
- echo " --uvvm-vip-axi_stream ARM AMBA AXI4-Stream"
- echo " --uvvm-vip-clock Clock generator"
- echo " --uvvm-vip-error Error injection"
- echo " --uvvm-vip-ethernet Ethernet"
- echo " --uvvm-vip-gmii GMII"
- echo " --uvvm-vip-gpio General Purpose Input/Output (GPIO)"
- echo " --uvvm-vip-hvvc2vvc HVVC to VVC bridge"
- echo " --uvvm-vip-i2c Inter-Integrated Circuit (I²C)"
- echo " --uvvm-vip-rgmii RGMII"
- echo " --uvvm-vip-sbi Simple Bus Interface"
- echo " --uvvm-vip-scoreboard Scoreboard"
- echo " --uvvm-vip-spec Specification Coverage"
- echo " --uvvm-vip-spi Serial Peripheral Interface"
- echo " --uvvm-vip-uart Universal Asynchronous Receiver Transmitter (UART)"
- echo ""
- echo "Library compile options:"
- echo " -H --halt-on-error Halt on error(s)."
- echo ""
- echo "Advanced options:"
- echo " --ghdl <GHDL binary> Path to GHDL's executable, e.g. /usr/local/bin/ghdl"
- echo " --output <dir name> Name of the output directory, e.g. uvvm_util"
- echo " --source <Path to UVVM> Path to the sources."
- echo ""
- echo "Verbosity:"
- echo " -v --verbose Print verbose messages."
- echo " -d --debug Print debug messages."
- echo " -n --no-filter Disable output filtering scripts."
- echo " -N --no-warnings Suppress all warnings. Show only error messages."
- echo ""
- exit $COMMAND
-fi
-
-if [[ $COMMAND -eq 2 ]]; then
- COMPILE_UVVM=1
- COMPILE_UVVM_VIP=1
-fi
-if [[ $COMPILE_UVVM -eq 1 ]]; then
- COMPILE_UVVM_UTILITIES=1
- COMPILE_UVVM_VVC_FRAMEWORK=1
-fi
-if [[ $COMPILE_UVVM_VIP -eq 1 ]]; then
- COMPILE_UVVM_VIP_AVALON_MM=1
- COMPILE_UVVM_VIP_AVALON_ST=1
- COMPILE_UVVM_VIP_AXI=1
- COMPILE_UVVM_VIP_AXILITE=1
- COMPILE_UVVM_VIP_AXISTREAM=1
- COMPILE_UVVM_VIP_CLOCK_GENERATOR=1
- COMPILE_UVVM_VIP_ERROR_INJECTION=1
- COMPILE_UVVM_VIP_ETHERNET=1
- COMPILE_UVVM_VIP_GMII=1
- COMPILE_UVVM_VIP_GPIO=1
- COMPILE_UVVM_VIP_HVVC_TO_VVC_BRIDGE=1
- COMPILE_UVVM_VIP_I2C=1
- COMPILE_UVVM_VIP_RGMII=1
- COMPILE_UVVM_VIP_SBI=1
- COMPILE_UVVM_VIP_SCOREBOARD=1
- COMPILE_UVVM_VIP_SPEC_COV=1
- COMPILE_UVVM_VIP_SPI=1
- COMPILE_UVVM_VIP_UART=1
-fi
-
-
-# Source configuration file from GHDL's 'vendors' library directory
-echo -e "${ANSI_MAGENTA}Loading environment...${ANSI_NOCOLOR}"
-source $ScriptDir/config.sh
-if [[ $? -ne 0 ]]; then echo 1>&2 -e "${COLORED_ERROR} While loading configuration.${ANSI_NOCOLOR}" ; exit 1; fi
-source $ScriptDir/shared.sh
-if [[ $? -ne 0 ]]; then echo 1>&2 -e "${COLORED_ERROR} While loading further procedures.${ANSI_NOCOLOR}"; exit 1; fi
-
-# <= $VHDLVersion
-# <= $VHDLStandard
-# <= $VHDLFlavor
-GHDLSetup 2008
-
-# -> $SourceDirectories
-# -> $DestinationDirectories
-# -> $SrcDir
-# -> $DestDir
-# <= $SourceDirectory
-# <= $DestinationDirectory
-SetupDirectories UVVM "UVVM"
-
-# Create "uvvm" directory and change to it
-# => $DestinationDirectory
-CreateDestinationDirectory
-cd $DestinationDirectory
-
-
-# Extend global GHDL Options TODO: move to GHDLSetup
-Analyze_Parameters+=(
- -fexplicit
- -Wbinding
- -Wno-shared
-)
-if [[ $DEBUG -eq 0 ]]; then
- Analyze_Parameters+=(
- -Wno-hide
- )
-fi
-if [[ ! (VERBOSE -eq 1) && ($DEBUG -eq 1) ]]; then
- Analyze_Parameters+=(
- -Wno-others
- -Wno-static
- )
-fi
-Analyze_Parameters+=(
- --ieee=$VHDLFlavor
- --no-vital-checks
- --std=$VHDLStandard
- -frelaxed
- -P$DestinationDirectory
-)
-
-
-# Cleanup directory
-# ==============================================================================
-if [[ $CLEAN -eq 1 ]]; then
- echo -e "${ANSI_YELLOW}Cleaning up vendor directory ...${ANSI_NOCOLOR}"
- rm *.o 2> /dev/null
- rm *.cf 2> /dev/null
-fi
-
-
-# Read order of components
-# ==============================================================================
-test $VERBOSE -eq 1 && echo -e " ${ANSI_GRAY}Reading compile order files...${ANSI_NOCOLOR}"
-
-Components=()
-while IFS= read -r Component; do
- Component=${Component%\r}
- if [[ ${Component:0:2} != "# " ]]; then
- Components+=("$Component")
- fi
-done < <(cat "$SourceDirectory/script/component_list.txt")
-
-
-# Read libraries and Verification IPs
-# ==============================================================================
-VIPNames=()
-
-for ComponentName in "${Components[@]}"; do
- x="${ComponentName%%_*}"
- pos=${#x}+1
- l=${ComponentName:$pos}
- VIPName=${l^^}
- LibraryPath=$ComponentName
-
- VIPName=${VIPName//UTIL/UTILITIES}
- VIPName=${VIPName//AXILITE/AXI_LITE}
- VIPName=${VIPName//AXISTREAM/AXI_STREAM}
-
- test $VERBOSE -eq 1 && echo -e " ${ANSI_GRAY}Found VIP '$VIPName' in '$LibraryPath'.${ANSI_NOCOLOR}"
- test $DEBUG -eq 1 && echo -e " ${ANSI_DARK_GRAY}Reading compile order from '$SourceDirectory/$LibraryPath/script/compile_order.txt'${ANSI_NOCOLOR}"
-
- # Reading component's files
- StructName=$VIPName
- Files=()
-
- CompileOrderFile="$SourceDirectory/$LibraryPath/script/compile_order.txt"
- if [[ -f "$CompileOrderFile" ]]; then
- echo -e "${COLORED_ERROR} Compile order file '$CompileOrderFile' does not exist..${ANSI_NOCOLOR}"
- continue
- fi
-
- while IFS= read -r File; do
- File=${File%\r}
- if [[ ${File:0:2} == "# " ]]; then
- if [[ ${File:2:7} == "library" ]]; then
- LibraryName=${File:10}
- fi
- else
- Files+=("${File:3}")
- fi
- done < <(cat "$CompileOrderFile")
-
- CreateLibraryStruct $StructName $LibraryName $LibraryPath $VHDLVersion "${Files[@]}"
-
- VarName="COMPILE_UVVM_${VIPName}"
- test ${!VarName} -eq 1 && Libraries+=("$StructName")
-done
-
-# Compile components
-if [[ ${#Libraries[@]} -ne 0 ]]; then
- Compile "$SourceDirectory" "${Libraries[*]}"
-
- echo "--------------------------------------------------------------------------------"
- echo -e "Compiling UVVM packages and VIPs $(test $ERRORCOUNT -eq 0 && echo $COLORED_SUCCESSFUL || echo $COLORED_FAILED)"
-else
- echo -e "${COLORED_ERROR} Neither UVVM packages nor VIPs selected.${ANSI_NOCOLOR}"
- exit 2
-fi