Initial commit
This commit is contained in:
		
							
								
								
									
										38
									
								
								10-PipelinedOperators/Scripts/cleanGenerated.bash
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										38
									
								
								10-PipelinedOperators/Scripts/cleanGenerated.bash
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,38 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| #================================================================================ | ||||
| # cleanGenerated.bash - Clean intermediate files form folder | ||||
| # | ||||
| base_directory="$(dirname "$(readlink -f "$0")")" | ||||
| pushd $base_directory | ||||
| base_directory="$base_directory/.." | ||||
|  | ||||
| SEPARATOR='--------------------------------------------------------------------------------' | ||||
| INDENT='  ' | ||||
|  | ||||
| echo "$SEPARATOR" | ||||
| echo "-- ${0##*/} Started!" | ||||
| echo "" | ||||
|  | ||||
| #------------------------------------------------------------------------------- | ||||
| # Remove generated and cache files | ||||
| # | ||||
| find $base_directory -type f -name '.cache.dat' | xargs -r rm -v | ||||
| find $base_directory -type f -name '*.bak' | xargs -r rm -v | ||||
| find $base_directory -type f -name '*.lck' | xargs -r rm -v | ||||
| find $base_directory -type f -name '*.vhd.info' | xargs -r rm -v | ||||
| find $base_directory -type f -name 'default_view' | xargs -r rm -v | ||||
| find $base_directory -type f -name '*_entity.vhd' | xargs -r rm -v | ||||
| find $base_directory -type f -name '*_struct.vhd' | xargs -r rm -v | ||||
| find $base_directory -type f -name '*_fsm.vhd' | xargs -r rm -v | ||||
| find $base_directory -type f -name '*.vhg' | xargs -r rm -v | ||||
| find $base_directory -type f -name '*.DS_Store' | xargs -r rm -v | ||||
| find $base_directory -type d -name '.xrf' | xargs -r rm -Rv | ||||
|  | ||||
| #------------------------------------------------------------------------------- | ||||
| # Exit | ||||
| # | ||||
| echo "" | ||||
| echo "-- ${0##*/} Finished!" | ||||
| echo "$SEPARATOR" | ||||
| popd | ||||
							
								
								
									
										42
									
								
								10-PipelinedOperators/Scripts/cleanGenerated.bat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								10-PipelinedOperators/Scripts/cleanGenerated.bat
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | ||||
| ::============================================================================== | ||||
| :: cleanGenerated.bat | ||||
| :: Clean intermediate files from folder | ||||
| :: | ||||
| :start | ||||
|   @echo off | ||||
|   setlocal | ||||
|   set cmd_location="%~dp0" | ||||
|   pushd %cmd_location% | ||||
|   set SEPARATOR="--------------------------------------------------------------------------------" | ||||
|   set INDENT="  " | ||||
|  | ||||
|   echo %SEPARATOR% | ||||
|   echo "-- %~nx0 Started!" | ||||
|   echo. | ||||
| ::------------------------------------------------------------------------------ | ||||
| :: Delete intermediate files | ||||
| :: | ||||
| set base_directory="%cmd_location:"=%.." | ||||
|  | ||||
| echo "Delete intermediate files in: %base_directory%" | ||||
| del /f /s /a %base_directory%\*cache.dat | ||||
| del /f /s /a %base_directory%\*.bak | ||||
| del /f /s /a %base_directory%\*.lck | ||||
| del /f /s /a %base_directory%\*.vhd.info | ||||
| del /f /s /a %base_directory%\default_view | ||||
| del /f /s /a %base_directory%\*_entity.vhd | ||||
| del /f /s /a %base_directory%\*_struct.vhd | ||||
| del /f /s /a %base_directory%\*_fsm.vhd | ||||
| del /f /s /a %base_directory%\*.vhg | ||||
| del /f /s /a %base_directory%\*.DS_Store | ||||
|  | ||||
| echo "Delete intermediate directories in: %base_directory%" | ||||
| for /d /r "%base_directory:"=%\" %%a in (.xrf\) do if exist "%%a" rmdir /s /q "%%a" | ||||
|  | ||||
| :end | ||||
|   echo. | ||||
|   echo "-- %~nx0 Finished!" | ||||
|   echo %SEPARATOR% | ||||
|   popd | ||||
|   endlocal | ||||
|   goto:eof | ||||
							
								
								
									
										39
									
								
								10-PipelinedOperators/Scripts/cleanScratch.bat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								10-PipelinedOperators/Scripts/cleanScratch.bat
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| ::============================================================================== | ||||
| :: cleanScratch.bat | ||||
| :: Clean scratch directory | ||||
| :: | ||||
| :start | ||||
|   @echo off | ||||
|   setlocal | ||||
|   set cmd_location="%~dp0" | ||||
|   pushd %cmd_location% | ||||
|   set SEPARATOR=-------------------------------------------------------------------------------- | ||||
|   set INDENT="  " | ||||
|  | ||||
|   echo %SEPARATOR% | ||||
|   echo -- %~nx0 Started! | ||||
|   echo. | ||||
|  | ||||
| ::------------------------------------------------------------------------------ | ||||
| :: Delete scratch directory | ||||
| :: | ||||
| if "%SCRATCH_DIR%" == "" ( | ||||
|   set SCRATCH_DIR=C:\temp\eda\ | ||||
| ) | ||||
|  | ||||
| echo Delete scratch directory %SCRATCH_DIR% | ||||
| if exist %SCRATCH_DIR% ( | ||||
|   echo    Scratch directory found, deleting! | ||||
|   rmdir /S /Q "%SCRATCH_DIR%" | ||||
| ) else ( | ||||
|   echo    Scratch directory not found! | ||||
| ) | ||||
|  | ||||
| :end | ||||
|   echo. | ||||
|   echo -- %~nx0 Finished! | ||||
|   echo %SEPARATOR% | ||||
|   echo. && echo. | ||||
|   popd | ||||
|   endlocal | ||||
|   goto:eof | ||||
							
								
								
									
										42
									
								
								10-PipelinedOperators/Scripts/generateSSHKey.bash
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								10-PipelinedOperators/Scripts/generateSSHKey.bash
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| #============================================================================== | ||||
| # generates an SSH key under default user location ~/.ssh/ | ||||
| # and add the public key to the clipboard | ||||
| # | ||||
| # the email could be given when calling the script or be prompted later | ||||
|  | ||||
| email='' | ||||
| filename=$(hostname) | ||||
| user=$(whoami) | ||||
|  | ||||
| usage='Usage: generateSSH.bash [-e email]' | ||||
|  | ||||
| # handle options | ||||
| while getopts 'e:v' flag; do | ||||
|   case "${flag}" in | ||||
|     e) email=${OPTARG};; | ||||
|   esac | ||||
| done | ||||
|  | ||||
| # if the mail is not given, prompt it | ||||
| if [ -z "$email" ] | ||||
| then | ||||
|       echo -n "Please enter your mail: " | ||||
|       read email | ||||
| fi | ||||
| # generates the key-couple | ||||
| # cat /dev/zero create an empty file to be filled by the key | ||||
| # then ssh-keygen is called with: | ||||
| # -q to call it silently (no verbose) | ||||
| # -N with empty string to set no-password | ||||
| # -t to specify the type of key | ||||
| # -C to set the user mail | ||||
| cat /dev/zero | ssh-keygen -q -N "" -t ed25519 -C "${user}@${filename}" -f ~/.ssh/$filename | ||||
|  | ||||
| # then copy the public key into the clipboard | ||||
| clip < ~/.ssh/${filename}.pub | ||||
|  | ||||
| # print output for user | ||||
| echo -e "\nThe keyfiles are generated under ~/.ssh/" | ||||
| echo -e "\nThe public key is in your clipboard, ready to be added to your Github account." | ||||
							
								
								
									
										154
									
								
								10-PipelinedOperators/Scripts/hdlDesigner.bash
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										154
									
								
								10-PipelinedOperators/Scripts/hdlDesigner.bash
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,154 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| #================================================================================ | ||||
| # hdl_designer.bash - Starts HDL designer | ||||
| # | ||||
| base_directory="$(dirname "$(readlink -f "$0")")" | ||||
| base_directory="$base_directory/.." | ||||
| pushd $base_directory | ||||
|  | ||||
| SEPARATOR='--------------------------------------------------------------------------------' | ||||
| INDENT='  ' | ||||
|  | ||||
| echo "$SEPARATOR" | ||||
| echo "-- ${0##*/} Started!" | ||||
| echo "" | ||||
|  | ||||
| #-------------------------------------------------------------------------------- | ||||
| # Parse command line options | ||||
| # | ||||
| command_switches='n:d:p:m:i:u:t:s:c:y:vh' | ||||
| usage='Usage: hdl_designer.bash [-v] [-h]' | ||||
| usage="$usage\n\t[-d designDirectory] [-u userPrefsDirectory]" | ||||
|                                                     # set name and base directory | ||||
| design_name=`basename $0 .bash` | ||||
| design_directory=`dirname ${BASH_SOURCE[0]}` | ||||
|  | ||||
| while getopts $command_switches options; do | ||||
|   case $options in | ||||
|     n ) design_name=$OPTARG;; | ||||
|     d ) design_directory=$OPTARG;; | ||||
|   esac | ||||
| done | ||||
|                                             # continue with preferences directory | ||||
| prefs_directory="$design_directory/Prefs" | ||||
|  | ||||
| OPTIND=1 | ||||
| while getopts $command_switches options; do | ||||
|   case $options in | ||||
|     n ) design_name=$OPTARG;; | ||||
|     d ) design_directory=$OPTARG;; | ||||
|     p ) prefs_directory=$OPTARG;; | ||||
|   esac | ||||
| done | ||||
|                                                    # finish with other parameters | ||||
| library_matchings="$design_name.hdp" | ||||
| library_matchings='hds.hdp' | ||||
| simulation_directory="$design_directory/Simulation" | ||||
| user_prefs_directory="$prefs_directory/hds_user-linux" | ||||
| team_prefs_directory="$prefs_directory/hds_team" | ||||
| scratch_directory='/tmp/eda/' | ||||
| synthesis_subdirectory="Board/ise" | ||||
| concat_directory="$design_directory/Board/concat" | ||||
|  | ||||
| OPTIND=1 | ||||
| while getopts $command_switches options; do | ||||
|   case $options in | ||||
|     n ) ;; | ||||
|     d ) ;; | ||||
|     m ) library_matchings=$OPTARG;; | ||||
|     i ) simulation_directory=$OPTARG;; | ||||
|     u ) user_prefs_directory=$OPTARG;; | ||||
|     t ) team_prefs_directory=$OPTARG;; | ||||
|     s ) scratch_directory=$OPTARG;; | ||||
|     c ) concat_directory=$OPTARG;; | ||||
|     y ) synthesis_subdirectory=$OPTARG;; | ||||
|     v ) verbose=1;; | ||||
|     h ) echo -e $usage | ||||
|           exit 1;; | ||||
|     * ) echo -e $usage | ||||
|           exit 1;; | ||||
|   esac | ||||
| done | ||||
|  | ||||
| design_directory=`realpath $design_directory` | ||||
| library_matchings=`realpath $prefs_directory/$library_matchings` | ||||
| simulation_directory=`realpath $simulation_directory` | ||||
| user_prefs_directory=`realpath $user_prefs_directory` | ||||
| team_prefs_directory=`realpath $team_prefs_directory` | ||||
| concat_directory=`realpath $concat_directory` | ||||
| mkdir -p $scratch_directory | ||||
| scratch_directory=`realpath $scratch_directory` | ||||
|  | ||||
| #================================================================================ | ||||
| # Main script | ||||
| # | ||||
|  | ||||
| #------------------------------------------------------------------------------- | ||||
| # System environment variables | ||||
| # | ||||
| export HDS_HOME=/usr/opt/HDS | ||||
| export MODELSIM_HOME=/usr/opt/Modelsim/modeltech/bin/ | ||||
| export SYNTHESIS_HOME=/usr/opt/Xilinx/ISE_DS/ISE | ||||
| export LC_ALL=C | ||||
| export LD_LIBRARY_PATH=/usr/openwin/lib:/usr/lib:/usr/dt/lib:/usr/opt/HDS/ezwave/lib:/usr/opt/HDS/bin | ||||
| export MGLS_HOME=/usr/opt/HDS/license/mgls | ||||
|  | ||||
| #------------------------------------------------------------------------------- | ||||
| # Project environment variables | ||||
| # | ||||
| export DESIGN_NAME=$design_name | ||||
| export HDS_LIBS=$library_matchings | ||||
| export HDS_USER_HOME="$user_prefs_directory" | ||||
| export HDS_TEAM_HOME=$team_prefs_directory | ||||
| export SIMULATION_DIR=$simulation_directory | ||||
| export SCRATCH_DIR=$scratch_directory | ||||
| export CONCAT_DIR=$concat_directory | ||||
| export SYNTHESIS_BASE_DIR=`realpath $design_directory/$synthesis_subdirectory` | ||||
| export SYNTHESIS_WORK_DIR=$scratch_directory/$synthesis_subdirectory | ||||
|  | ||||
| #------------------------------------------------------------------------------- | ||||
| # Display info | ||||
| # | ||||
| if [ -n "$verbose" ] ; then | ||||
|   echo "Environment variables:" | ||||
|   echo "${INDENT}Design name              is $DESIGN_NAME" | ||||
|   echo "${INDENT}Lib matchings file       is $HDS_LIBS" | ||||
|   echo "${INDENT}Simulation directory     is $SIMULATION_DIR" | ||||
|   echo "${INDENT}User prefs directory     is $HDS_USER_HOME" | ||||
|   echo "${INDENT}Team prefs directory     is $HDS_TEAM_HOME" | ||||
|   echo "${INDENT}Scratch directory        is $SCRATCH_DIR" | ||||
|   echo "${INDENT}Concat directory         is $CONCAT_DIR" | ||||
|   echo "${INDENT}HDS location             is $HDS_HOME" | ||||
|   echo "${INDENT}Modelsim location        is $MODELSIM_HOME" | ||||
|   echo "${INDENT}Synthesis app location   is $SYNTHESIS_HOME" | ||||
|   echo "${INDENT}Synthesis base directory is $SYNTHESIS_BASE_DIR" | ||||
|   echo "${INDENT}Synthesis work directory is $SYNTHESIS_WORK_DIR" | ||||
| fi | ||||
|  | ||||
| #------------------------------------------------------------------------------- | ||||
| # Copy synthesis data to scratch | ||||
| # | ||||
| if true; then | ||||
|   echo "Copying" | ||||
|   echo "${INDENT}$SYNTHESIS_BASE_DIR" | ||||
|   echo "${INDENT}-> $SYNTHESIS_WORK_DIR" | ||||
| fi | ||||
| if [ -e "$SYNTHESIS_BASE_DIR" ]; then | ||||
|   rm -Rf $SYNTHESIS_WORK_DIR | ||||
|   mkdir -p $SYNTHESIS_WORK_DIR | ||||
|   cp -pr $SYNTHESIS_BASE_DIR/* $SYNTHESIS_WORK_DIR/ | ||||
| fi | ||||
|  | ||||
| #------------------------------------------------------------------------------- | ||||
| # Launch application | ||||
| # | ||||
| hdl_designer & | ||||
|  | ||||
| #------------------------------------------------------------------------------- | ||||
| # Exit | ||||
| # | ||||
| echo "" | ||||
| echo "-- ${0##*/} Finished!" | ||||
| echo "$SEPARATOR" | ||||
| popd | ||||
							
								
								
									
										301
									
								
								10-PipelinedOperators/Scripts/hdlDesigner.bat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										301
									
								
								10-PipelinedOperators/Scripts/hdlDesigner.bat
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,301 @@ | ||||
| ::============================================================================== | ||||
| :: hdl_designer.bash - Starts HDL designer | ||||
| :: | ||||
| :start | ||||
|   setlocal EnableExtensions EnableDelayedExpansion | ||||
|   set cmd_location=%~dp0 | ||||
|   pushd %cmd_location% | ||||
|   set SEPARATOR=-------------------------------------------------------------------------------- | ||||
|   set INDENT="  " | ||||
|  | ||||
|   echo %SEPARATOR% | ||||
|   echo -- %~nx0 Started! | ||||
|   echo. | ||||
|  | ||||
| :: ----------------------------------------------------------------------------- | ||||
| :: Define default environment variables | ||||
| IF NOT DEFINED REQUIRE_LIBS SET "REQUIRE_LIBS=0" | ||||
| IF NOT DEFINED REQUIRE_HDS SET "REQUIRE_HDS=0" | ||||
| IF NOT DEFINED REQUIRE_MODELSIM SET "REQUIRE_MODELSIM=0" | ||||
| IF NOT DEFINED REQUIRE_ISE SET "REQUIRE_ISE=0" | ||||
| IF NOT DEFINED REQUIRE_LIBERO SET "REQUIRE_LIBERO=0" | ||||
| IF NOT DEFINED REQUIRE_DIAMOND SET "REQUIRE_DIAMOND=0" | ||||
| IF NOT DEFINED REQUIRE_ICECUBE2 SET "REQUIRE_ICECUBE2=0" | ||||
| :: | ||||
| ::remove trailing backslash | ||||
| if %cmd_location:~-1%==\ set design_directory=%design_directory:~0,-1% | ||||
|  | ||||
| set design_name=%~n0 | ||||
| set hpd_name=hds | ||||
|  | ||||
| if "%ISE_VERSION%"== "" ( | ||||
|   set ISE_VERSION=14.7 | ||||
| ) | ||||
| set prefs_directory="%design_directory:"=%\Prefs" | ||||
| set library_matchings="%hpd_name%.hdp" | ||||
| set simulation_directory="%design_directory:"=%\Simulation" | ||||
| set user_prefs_directory="%prefs_directory:"=%\hds_user" | ||||
| set team_prefs_directory="%prefs_directory:"=%\hds_team" | ||||
| if "%SCRATCH_DIR%" == "" ( | ||||
|   set scratch_directory=C:\temp\eda\%username% | ||||
| ) else ( | ||||
|   set scratch_directory=%SCRATCH_DIR% | ||||
| ) | ||||
|  | ||||
| set synthesis_subdirectory="" | ||||
| if %REQUIRE_ISE% == 1 ( | ||||
|   set synthesis_subdirectory="Board\ise" | ||||
| ) | ||||
| if %REQUIRE_LIBERO% == 1 ( | ||||
|   set synthesis_subdirectory="Board\libero" | ||||
| ) | ||||
| if %REQUIRE_DIAMOND% == 1 ( | ||||
|   set synthesis_subdirectory="Board\diamond" | ||||
| ) | ||||
| if %REQUIRE_ICECUBE2% == 1 ( | ||||
|   set synthesis_subdirectory="Board\icecube2" | ||||
| ) | ||||
| set concat_directory="%design_directory:"=%\Board\concat" | ||||
|  | ||||
| ::------------------------------------------------------------------------------ | ||||
| :: Parse command line options | ||||
| :: | ||||
| :parse | ||||
| set usage1="Usage: hdl_designer.bat [-v] [-h]" | ||||
| set usage2="                        [-n designName] [-d designDirectory]" | ||||
| set usage3="                        [-p prefsDirectory] [-u userPrefsDirectory] [-t teamPrefsDirectory]" | ||||
| set usage4="                        [-s scratchDirectory] [-c concatDirectory]" | ||||
| set usage5="                        [-y synthesisDirectory] [-m library_matchings]" | ||||
|  | ||||
| echo Search Commandline Parameters | ||||
| :parseloop | ||||
| if not "%1"=="" ( | ||||
|     if "%1"=="-v" ( | ||||
|         set VERBOSE=1 | ||||
|         echo %INDENT:"=%verbose enabled | ||||
|         shift | ||||
|     ) | ||||
|     if "%1"=="-h" ( | ||||
|         goto :HELP | ||||
|         shift | ||||
|     ) | ||||
|     if "%1"=="-n" ( | ||||
|         set design_name=%2 | ||||
|         echo %INDENT:"=%design_name=!design_name:"=! | ||||
|         shift & shift | ||||
|     ) | ||||
|     if "%1"=="-d" ( | ||||
|         set design_directory=%2 | ||||
|         echo %INDENT:"=%design_directory=!design_directory:"=! | ||||
|         shift & shift | ||||
|     ) | ||||
|     if "%1"=="-p" ( | ||||
|         set prefs_directory=%2 | ||||
|         echo %INDENT:"=%prefs_directory=!prefs_directory:"=! | ||||
|         shift & shift | ||||
|     ) | ||||
|     if "%1"=="-u" ( | ||||
|         set user_prefs_directory=%2 | ||||
|         echo %INDENT:"=%user_prefs_directory=%user_prefs_directory:"=% | ||||
|         shift & shift | ||||
|     ) | ||||
|     if "%1"=="-t" ( | ||||
|         set team_prefs_directory=%2 | ||||
|         echo %INDENT:"=%team_prefs_directory=%team_prefs_directory:"=% | ||||
|         shift & shift | ||||
|     ) | ||||
|     if "%1"=="-s" ( | ||||
|         set scratch_directory=%2 | ||||
|         echo %INDENT:"=%scratch_directory=%scratch_directory:"=% | ||||
|         shift & shift | ||||
|     ) | ||||
|     if "%1"=="-c" ( | ||||
|         set concat_directory=%2 | ||||
|         echo "%INDENT:"=%concat_directory=%concat_directory:"=% " | ||||
|         shift & shift | ||||
|     ) | ||||
|     if "%1"=="-y" ( | ||||
|         set synthesis_subdirectory=%2 | ||||
|         echo %INDENT:"=%synthesis_subdirectory=%synthesis_subdirectory:"=% | ||||
|         shift & shift | ||||
|     ) | ||||
|     if "%1"=="-m" ( | ||||
|         set set library_matchings="%2.hdp" | ||||
|         echo %INDENT:"=%library_matchings=%library_matchings:"=% | ||||
|         shift & shift | ||||
|     ) | ||||
|     goto :parseloop | ||||
| ) | ||||
| echo. | ||||
|  | ||||
| :: Setting all concurrent variables | ||||
| set prefs_directory="!design_directory:"=!\Prefs" | ||||
| set user_prefs_directory="!prefs_directory:"=!\hds_user" | ||||
| set team_prefs_directory="!prefs_directory:"=!\hds_team" | ||||
| set library_matchings=!prefs_directory:"=!\!library_matchings:"=! | ||||
| set simulation_directory="!design_directory:"=!\Simulation" | ||||
| set concat_directory="!design_directory:"=!\Board\concat" | ||||
|  | ||||
| :: Getting realpath | ||||
| :: TODO | ||||
|  | ||||
| :: create scratch dir | ||||
| if not exist "%scratch_directory%" ( | ||||
|   mkdir "%scratch_directory:"=%" | ||||
| ) | ||||
|  | ||||
| ::================================================================================ | ||||
| :: Main script | ||||
| :: | ||||
| echo. | ||||
| call "./searchPaths.bat" | ||||
|  | ||||
| ::------------------------------------------------------------------------------ | ||||
| :: Project environment variables | ||||
| :: | ||||
| set DESIGN_NAME=%design_name:"=% | ||||
| set HDS_LIBS=%library_matchings:"=% | ||||
| set HDS_USER_HOME=%user_prefs_directory:"=% | ||||
| set HDS_TEAM_HOME=%team_prefs_directory:"=% | ||||
| set SIMULATION_DIR=%simulation_directory:"=% | ||||
| :: Changing Slashed (Needed for Modelsim) | ||||
| set SIMULATION_DIR=%SIMULATION_DIR:\=/% | ||||
| set SCRATCH_DIR=%scratch_directory:"=% | ||||
| set CONCAT_DIR=%concat_directory:"=% | ||||
| set ISE_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% | ||||
| set ISE_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% | ||||
| set LIBERO_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% | ||||
| set LIBERO_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% | ||||
| set DIAMOND_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% | ||||
| set DIAMOND_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% | ||||
| set ICECUBE2_BASE_DIR=%design_directory:"=%\%synthesis_subdirectory:"=% | ||||
| set ICECUBE2_WORK_DIR=%scratch_directory:"=%\%DESIGN_NAME:"=%\%synthesis_subdirectory:"=% | ||||
|  | ||||
| ::------------------------------------------------------------------------------ | ||||
| :: Display info | ||||
| :: | ||||
| if !VERBOSE! == 1 ( | ||||
|   echo Program Parameters | ||||
|   echo %INDENT:"=%DESIGN_NAME     is %DESIGN_NAME:"=% | ||||
|   echo %INDENT:"=%HEI_LIBS_DIR    is %HEI_LIBS_DIR:"=% | ||||
|   echo %INDENT:"=%HDS_LIBS        is %HDS_LIBS:"=% | ||||
|   echo %INDENT:"=%SIMULATION_DIR  is %SIMULATION_DIR:"=% | ||||
|   echo %INDENT:"=%HDS_USER_HOME   is %HDS_USER_HOME:"=% | ||||
|   echo %INDENT:"=%HDS_TEAM_HOME   is %HDS_TEAM_HOME:"=% | ||||
|   echo %INDENT:"=%SCRATCH_DIR     is %SCRATCH_DIR:"=% | ||||
|   echo %INDENT:"=%CONCAT_DIR      is %CONCAT_DIR:"=% | ||||
|   if %REQUIRE_HDS% == 1 ( | ||||
|     echo %INDENT:"=%HDS_HOME        is %HDS_HOME:"=% | ||||
|   ) | ||||
|   if %REQUIRE_MODELSIM% == 1 ( | ||||
|     echo %INDENT:"=%MODELSIM_HOME   is %MODELSIM_HOME:"=% | ||||
|   ) | ||||
|   if %REQUIRE_ISE% == 1 ( | ||||
|     echo %INDENT:"=%ISE_HOME        is %ISE_HOME:"=% | ||||
|     echo %INDENT:"=%ISE_BASE_DIR    is %ISE_BASE_DIR:"=% | ||||
|     echo %INDENT:"=%ISE_WORK_DIR    is %ISE_WORK_DIR:"=% | ||||
|   ) | ||||
|   if %REQUIRE_LIBERO% == 1 ( | ||||
|     echo %INDENT:"=%LIBERO_HOME     is %LIBERO_HOME:"=% | ||||
|     echo %INDENT:"=%LIBERO_BASE_DIR is %LIBERO_BASE_DIR:"=% | ||||
|     echo %INDENT:"=%LIBERO_WORK_DIR is %LIBERO_WORK_DIR:"=% | ||||
|   ) | ||||
|   if %REQUIRE_DIAMOND% == 1 ( | ||||
|     echo %INDENT:"=%DIAMOND_HOME     is %DIAMOND_HOME:"=% | ||||
|     echo %INDENT:"=%DIAMOND_BASE_DIR is %DIAMOND_BASE_DIR:"=% | ||||
|     echo %INDENT:"=%DIAMOND_WORK_DIR is %DIAMOND_WORK_DIR:"=% | ||||
|   ) | ||||
|   if %REQUIRE_ICECUBE2% == 1 ( | ||||
|     echo %INDENT:"=%ICECUBE2_HOME     is %ICECUBE2_HOME:"=% | ||||
|     echo %INDENT:"=%ICECUBE2_BASE_DIR is %ICECUBE2_BASE_DIR:"=% | ||||
|     echo %INDENT:"=%ICECUBE2_WORK_DIR is %ICECUBE2_WORK_DIR:"=% | ||||
|   ) | ||||
|   echo. | ||||
| ) | ||||
|  | ||||
| ::------------------------------------------------------------------------------ | ||||
| :: Delete scratch directory | ||||
| :: | ||||
| echo. | ||||
| call "./cleanScratch.bat" | ||||
|  | ||||
| ::------------------------------------------------------------------------------ | ||||
| :: Copy synthesis data to scratch directory | ||||
| :: | ||||
| if %REQUIRE_ISE% == 1 ( | ||||
|   if exist %ISE_BASE_DIR% ( | ||||
|     echo %ISE_BASE_DIR:"=% | ||||
|     echo   -> %ISE_WORK_DIR:"=% | ||||
|     if exist %ISE_WORK_DIR% ( | ||||
|       rmdir /S /Q "%ISE_WORK_DIR%" | ||||
|     ) | ||||
|     mkdir "%ISE_WORK_DIR%" | ||||
|     xcopy /Y "%ISE_BASE_DIR%" "%ISE_WORK_DIR%\" | ||||
|   ) | ||||
| ) | ||||
|  | ||||
| if %REQUIRE_LIBERO% == 1 ( | ||||
|   if exist %LIBERO_BASE_DIR% ( | ||||
|     echo %LIBERO_BASE_DIR:"=% | ||||
|     echo   -> %LIBERO_BASE_DIR:"=% | ||||
|     if exist %LIBERO_WORK_DIR% ( | ||||
|       rmdir /S /Q "%LIBERO_WORK_DIR%" | ||||
|     ) | ||||
|     mkdir "%LIBERO_WORK_DIR%" | ||||
|     xcopy /S /Y "%LIBERO_BASE_DIR%" "%LIBERO_WORK_DIR%\" | ||||
|   ) | ||||
| ) | ||||
|  | ||||
| if %REQUIRE_DIAMOND% == 1 ( | ||||
|   if exist %DIAMOND_BASE_DIR% ( | ||||
|     echo %DIAMOND_BASE_DIR:"=% | ||||
|     echo   -> %DIAMOND_BASE_DIR:"=% | ||||
|     if exist %DIAMOND_WORK_DIR% ( | ||||
|       rmdir /S /Q "%DIAMOND_WORK_DIR%" | ||||
|     ) | ||||
|     mkdir "%DIAMOND_WORK_DIR%" | ||||
|     xcopy /S /Y "%DIAMOND_BASE_DIR%" "%DIAMOND_WORK_DIR%\" | ||||
|   ) | ||||
| ) | ||||
|  | ||||
| if %REQUIRE_ICECUBE2% == 1 ( | ||||
|   if exist %ICECUBE2_BASE_DIR% ( | ||||
|     echo %ICECUBE2_BASE_DIR:"=% | ||||
|     echo   -> %ICECUBE2_BASE_DIR:"=% | ||||
|     if exist %ICECUBE2_WORK_DIR% ( | ||||
|       rmdir /S /Q "%ICECUBE2_WORK_DIR%" | ||||
|     ) | ||||
|     mkdir "%ICECUBE2_WORK_DIR%" | ||||
|     xcopy /S /Y "%ICECUBE2_BASE_DIR%" "%ICECUBE2_WORK_DIR%\" | ||||
|   ) | ||||
| ) | ||||
|  | ||||
| ::------------------------------------------------------------------------------ | ||||
| :: Launch application | ||||
| :: | ||||
| echo -- Launching program | ||||
| ::echo %INDENT:"=%Waiting until programs finished... | ||||
| ::start /wait !HDS_HOME:"=!\bin\hdldesigner.exe | ||||
| %windir%\system32\cmd.exe /c start !HDS_HOME!\bin\hdldesigner.exe | ||||
| ::echo -- Finished... YOU CAN CLOSE THIS WINDOW NOW! | ||||
|  | ||||
| :end | ||||
|   echo. | ||||
|   echo -- %~nx0 Finished! | ||||
|   echo %SEPARATOR% | ||||
|   echo. && echo. | ||||
|   popd | ||||
|   endlocal | ||||
|   goto:eof | ||||
|  | ||||
| ::------------------------------------------------------------------------------ | ||||
| :: Helper Functions | ||||
| :: | ||||
| :HELP | ||||
|   echo. | ||||
|   echo %usage1:"=% | ||||
|   echo %usage2:"=% | ||||
|   echo %usage3:"=% | ||||
|   echo %usage4:"=% | ||||
|   echo %usage5:"=% | ||||
|   echo.&pause&goto:eof | ||||
							
								
								
									
										209
									
								
								10-PipelinedOperators/Scripts/searchPaths.bat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										209
									
								
								10-PipelinedOperators/Scripts/searchPaths.bat
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,209 @@ | ||||
| ::============================================================================== | ||||
| :: search_paths.bat - Search for Libraries and HDL Tools | ||||
| :: | ||||
|  | ||||
| :start | ||||
|   @echo off | ||||
|   set cmd_location="%~dp0" | ||||
|   pushd %cmd_location% | ||||
|   set SEPARATOR=-------------------------------------------------------------------------------- | ||||
|   set INDENT="  " | ||||
|  | ||||
|   echo %SEPARATOR% | ||||
|   echo -- %~nx0 Started! | ||||
|   echo. | ||||
|  | ||||
| echo Search HEI Library | ||||
| ::------------------------------------------------------------------------------ | ||||
| :: Search HEI library directory | ||||
| :: | ||||
| if !REQUIRE_LIBS! == 1 ( | ||||
|   if "%HEI_LIBS_DIR%" == "" ( | ||||
|     set HEI_LIBS_DIR=%design_directory:"=!%\Libs | ||||
|     if not exist !HEI_LIBS_DIR!\ ( | ||||
|       :: check at folder one level above project folder, as used on svn for boards libraries | ||||
|       set HEI_LIBS_DIR=%design_directory:"=!%\..\Libs | ||||
|       if not exist !HEI_LIBS_DIR!\ ( | ||||
|         :: check at folder one level above project folder, as used on svn for boards libraries | ||||
|         set HEI_LIBS_DIR=%design_directory:"=!%\..\..\Libs | ||||
|         if not exist !HEI_LIBS_DIR!\ ( | ||||
|           :: check on server, as used for ET labs | ||||
|           set HEI_LIBS_DIR=R:\ETE\Ele1_8132\ELN\Labs\Libraries | ||||
|           if not exist !HEI_LIBS_DIR!\ ( | ||||
|             :: check on server, as used for SI labs | ||||
|             set HEI_LIBS_DIR=R:\SYND\Ele_2131\ELN\Labs\Libraries | ||||
|             if not exist !HEI_LIBS_DIR!\ ( | ||||
|               echo "ERROR: No valid libraries found: please verify your project setup." | ||||
|               pause&goto:end | ||||
|             ) | ||||
|           ) | ||||
|         ) | ||||
|       ) | ||||
|     ) | ||||
|   ) | ||||
|   if exist !HEI_LIBS_DIR!\ ( | ||||
|     echo %INDENT:"=%Found HEI_LIBS_DIR   at !HEI_LIBS_DIR:"=! | ||||
|   ) else ( | ||||
|     echo %INDENT:"=%ERROR: No valid HEI_LIBS_DIR found: please verify your HEI_LIBS_DIR settings. | ||||
|     pause&goto:eof | ||||
|   ) | ||||
| ) | ||||
|  | ||||
|  | ||||
| echo Search Design Tools: HDL Designer, Modelsim, Xilinx ISE, Microsemi Libero, Lattice Diamond, Lattice IceCube2 | ||||
| ::------------------------------------------------------------------------------ | ||||
| :: Search HDL Designer directory | ||||
| :: | ||||
| if !REQUIRE_HDS! == 1 ( | ||||
|   if "%HDS_HOME%" == "" ( | ||||
|     set HDS_HOME=C:\eda\MentorGraphics\HDS | ||||
|     if not exist !HDS_HOME!\ ( | ||||
|       set HDS_HOME=C:\tools\eda\HDS | ||||
|       if not exist !HDS_HOME!\ ( | ||||
|         echo %INDENT:"=%ERROR: No valid installation of HDL-Designer found: please verify your HDS_HOME settings. | ||||
|         pause&goto:eof | ||||
|       ) | ||||
|     ) | ||||
|   ) | ||||
|   if exist !HDS_HOME! ( | ||||
|       echo %INDENT:"=%Found HDL-Designer   at !HDS_HOME! | ||||
|   ) else ( | ||||
|       echo %INDENT:"=%ERROR: No valid installation of HDL-Designer found: please verify your HDS_HOME settings. | ||||
|       pause&goto:eof | ||||
|   ) | ||||
| ) | ||||
|  | ||||
| ::------------------------------------------------------------------------------ | ||||
| :: Search Modelsim directory | ||||
| :: | ||||
| if !REQUIRE_MODELSIM! == 1 ( | ||||
|   if "%MODELSIM_HOME%" == "" ( | ||||
|     set MODELSIM_HOME=C:\eda\MentorGraphics\modelsim\win64 | ||||
|     if not exist !MODELSIM_HOME!\ ( | ||||
|       set MODELSIM_HOME=C:\eda\MentorGraphics\modelsim\win32 | ||||
|       if not exist !MODELSIM_HOME!\ ( | ||||
|         set MODELSIM_HOME=C:\tools\eda\Modelsim\win64 | ||||
|         if not exist !MODELSIM_HOME!\ ( | ||||
|           set MODELSIM_HOME=C:\tools\eda\Modelsim\win32 | ||||
|           if not exist !MODELSIM_HOME!\ ( | ||||
|             echo %INDENT:"=%ERROR: No valid installation of ModelSim found please verify your MODELSIM_HOME settings. | ||||
|             pause&goto:eof | ||||
|           ) | ||||
|         ) | ||||
|       ) | ||||
|     ) | ||||
|   ) | ||||
|   if exist !MODELSIM_HOME! ( | ||||
|     echo %INDENT:"=%Found ModelSim       at !MODELSIM_HOME:"=! | ||||
|   ) else ( | ||||
|     echo %INDENT:"=%ERROR: No valid installation of ModelSim found please verify your MODELSIM_HOME settings. | ||||
|     pause | ||||
|     goto:eof | ||||
|   ) | ||||
| ) | ||||
|  | ||||
| ::------------------------------------------------------------------------------ | ||||
| :: Search Xilinx ISE directory | ||||
| :: | ||||
|  | ||||
| if !REQUIRE_ISE! == 1 ( | ||||
|   if "%ISE_HOME%" == "" ( | ||||
|     set ISE_HOME=C:\eda\Xilinx\!ISE_VERSION:"=!\ISE_DS\ISE | ||||
|     if not exist !ISE_HOME!\ ( | ||||
|       set ISE_HOME=C:\tools\eda\Xilinx\!ISE_VERSION:"=!\ISE_DS\ISE | ||||
|       if not exist !ISE_HOME!\ ( | ||||
|         echo %INDENT:"=%ERROR: No valid installation of ISE found please verify your ISE_HOME settings. | ||||
|         pause&goto:eof | ||||
|       ) | ||||
|     ) | ||||
|   ) | ||||
|   if exist !ISE_HOME! ( | ||||
|     echo %INDENT:"=%Found ISE            at !ISE_HOME:"=! | ||||
|   ) else ( | ||||
|     echo %INDENT:"=%ERROR: No valid installation of ISE found please verify your ISE_HOME settings. | ||||
|     pause&goto:eof | ||||
|   ) | ||||
| ) | ||||
|  | ||||
| ::------------------------------------------------------------------------------ | ||||
| :: Search Microsemi Libero directory | ||||
| :: | ||||
| if %REQUIRE_LIBERO% == 1 ( | ||||
|   if "%LIBERO_HOME%" == "" ( | ||||
|     set LIBERO_HOME=C:\eda\Microsemi\Libero | ||||
|     if not exist !LIBERO_HOME!\ ( | ||||
|       set LIBERO_HOME=C:\tools\eda\Microsemi\Libero | ||||
|       if not exist !LIBERO_HOME!\ ( | ||||
|         echo %INDENT:"=%ERROR: No valid installation of Libero found please verify your LIBERO_HOME settings. | ||||
|         pause&goto:eof | ||||
|       ) | ||||
|     ) | ||||
|   ) | ||||
|   if exist !LIBERO_HOME! ( | ||||
|     echo %INDENT:"=%Found Libero         at !LIBERO_HOME:"=! | ||||
|   ) else ( | ||||
|     echo %INDENT:"=%ERROR: No valid installation of Libero found please verify your LIBERO_HOME settings. | ||||
|     pause | ||||
|     goto:eof | ||||
|   ) | ||||
| ) | ||||
|  | ||||
| ::------------------------------------------------------------------------------ | ||||
| :: Search Lattice Diamond directory | ||||
| :: | ||||
| if %REQUIRE_DIAMOND% == 1 ( | ||||
|   if "%DIAMOND_HOME%" == "" ( | ||||
|     set DIAMOND_HOME=C:\eda\lscc\diamond\3.12 | ||||
|     if not exist !DIAMOND_HOME!\ ( | ||||
|       set DIAMOND_HOME=C:\tools\eda\lscc\diamond\3.12 | ||||
|       if not exist !DIAMOND_HOME!\ ( | ||||
|         set DIAMOND_HOME=C:\lscc\diamond\3.12 | ||||
|         if not exist !DIAMOND_HOME!\ ( | ||||
|           echo %INDENT:"=%ERROR: No valid installation of Lattice Diamond found - please verify your DIAMOND_HOME settings. | ||||
|           pause&goto:eof | ||||
|         ) | ||||
|       ) | ||||
|     ) | ||||
|   ) | ||||
|   if exist !DIAMOND_HOME! ( | ||||
|     echo %INDENT:"=%Found Diamond        at !DIAMOND_HOME:"=! | ||||
|   ) else ( | ||||
|     echo %INDENT:"=%ERROR: No valid installation of Diamond found - please verify your DIAMOND_HOME settings. | ||||
|     pause | ||||
|     goto:eof | ||||
|   ) | ||||
| ) | ||||
|  | ||||
| ::------------------------------------------------------------------------------ | ||||
| :: Search Lattice IceCube2 directory | ||||
| :: | ||||
| if %REQUIRE_ICECUBE2% == 1 ( | ||||
|   if "%ICECUBE2_HOME%" == "" ( | ||||
|     set ICECUBE2_HOME=C:\eda\lscc\iCEcube2.2020.12 | ||||
|     if not exist !ICECUBE2_HOME!\ ( | ||||
|       set ICECUBE2_HOME=C:\tools\eda\lscc\iCEcube2.2020.12 | ||||
|       if not exist !ICECUBE2_HOME!\ ( | ||||
|         set ICECUBE2_HOME=C:\lscc\iCEcube2.2020.12 | ||||
|         if not exist !ICECUBE2_HOME!\ ( | ||||
|           echo %INDENT:"=%ERROR: No valid installation of Lattice IceCube2 found - please verify your ICECUBE2_HOME settings. | ||||
|           pause&goto:eof | ||||
|         ) | ||||
|       ) | ||||
|     ) | ||||
|   ) | ||||
|   if exist !ICECUBE2_HOME! ( | ||||
|     echo %INDENT:"=%Found IceCube2        at !ICECUBE2_HOME:"=! | ||||
|   ) else ( | ||||
|     echo %INDENT:"=%ERROR: No valid installation of IceCube2 found - please verify your ICECUBE2_HOME settings. | ||||
|     pause | ||||
|     goto:eof | ||||
|   ) | ||||
| ) | ||||
|  | ||||
| :end | ||||
|   echo. | ||||
|   echo -- %~nx0 Finished! | ||||
|   echo %SEPARATOR% | ||||
|   echo. && echo. | ||||
|   popd | ||||
|   goto:eof | ||||
							
								
								
									
										170
									
								
								10-PipelinedOperators/Scripts/trimLibs.pl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										170
									
								
								10-PipelinedOperators/Scripts/trimLibs.pl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,170 @@ | ||||
| #!/usr/bin/perl | ||||
| # ------------------------------------------------------------------------------ | ||||
| # trimLibs | ||||
| #   Comment regular libraries in an concatenated file | ||||
| #   Help Parameter : <?> | ||||
| #   Parameter : trimlibs.pl <Input File Name> <Output File Name> | ||||
| # ------------------------------------------------------------------------------ | ||||
| #  Authors: | ||||
| #    cof: [Fran<61>ois Corthay](francois.corthay@hevs.ch) | ||||
| #    guo: [Oliver A. Gubler](oliver.gubler@hevs.ch) | ||||
| #    zas: [Silvan Zahno](silvan.zahno@hevs.ch) | ||||
| #    gal: [Laurent Gauch] | ||||
| #    ama: [Amand Axel](axel.amand@hevs.ch) | ||||
| # ------------------------------------------------------------------------------ | ||||
| # Changelog: | ||||
| #   2023.05.16 : ama | ||||
| #     * Add: ice40 libs support | ||||
| #   2023.02.01 : ama | ||||
| #     * Add: ECP5U libs support | ||||
| #   2019.08.23 : cof | ||||
| #     * Comment "omment "FOR xxxx : yyy USE ENTITY zzz;"" instead all "For All ... work" lines | ||||
| #     * Seen problems in ELN_Kart | ||||
| #   2019.06.11 : zas | ||||
| #     * Comment "For All .... work."" instead all "For All" lines | ||||
| #     * Allow Outputfilename as Env var or as Script parameter | ||||
| #	  2015-08-25 : guo | ||||
| #	    * added unisim to the list of excluded libraries | ||||
| #   2015-05-08 : guo | ||||
| #     * added verbosity debug | ||||
| #     * changed this header | ||||
| #     * minor comment modifications | ||||
| #  2013-08-13 : zas guo | ||||
| #     Handle error if environment variable not found, character'pos('$') -> ') | ||||
| #     was found as env var, added exception | ||||
| #   2013-06-13 : cof zas guo | ||||
| #     Remove comments from testline | ||||
| #   2013-01-09 : cof  -- | ||||
| #     * Bugfix: no carriage return on commented "use" statements | ||||
| #     * Bugfix: more precise targeting of "library" statement | ||||
| #     * Bugfix: "Library" test after "use" test | ||||
| #   2012-04-27 : zas | ||||
| #     * Bugfix: on feature added in version 2011-06-10 | ||||
| #   2012-02-02 : zas | ||||
| #     * Write the output into a new file with the name defined in the | ||||
| #     * $DESIGN_NAME variable | ||||
| #   2012-01-23 : zas | ||||
| #     * Replaces $env_var_name by the value of the found environmemnt variable. | ||||
| #     * Mostly used to replace $SIMULATION_DIR for initialise bram's from a file | ||||
| #     * placed in the Simulation Directory | ||||
| #   2011-06-10 : zas | ||||
| #     Replaces | ||||
| #       library xxx;use xxx.yyy.all; | ||||
| #     with | ||||
| #       --library xxx; | ||||
| #       use work.yyy.all; | ||||
| #   2005...2011 : cof | ||||
| #     Improvements | ||||
| #   2005-01-29 : gal | ||||
| #	    initlial release | ||||
| # ------------------------------------------------------------------------------ | ||||
|  | ||||
| $separator = '-' x 79; | ||||
| $indent = ' ' x 2; | ||||
| $hdlInFileSpec = $ARGV[0]; | ||||
| if (defined $ARGV[1]) { | ||||
|   $hdlOutFileSpec = $ARGV[1]; | ||||
| } | ||||
| else { | ||||
|   $hdlOutFileSpec = 'trimmed.vhd'; | ||||
| } | ||||
|  | ||||
| $verbose = 1; | ||||
| $debug = 0; | ||||
|  | ||||
| #------------------------------------------------------------------------------- | ||||
| # program I/O files | ||||
| # | ||||
| $tempFileSpec = $hdlOutFileSpec . '.tmp'; | ||||
|  | ||||
| if ($verbose == 1) { | ||||
|   print "\n$separator\n"; | ||||
|   print "Trimming library declarations from $hdlInFileSpec to $hdlOutFileSpec\n"; | ||||
|   print $indent, "temporary file spec: $tempFileSpec\n"; | ||||
| } | ||||
|  | ||||
| #------------------------------------------------------------------------------- | ||||
| # read original file, edit and save to temporary file | ||||
| # | ||||
| my $line; | ||||
|  | ||||
| open(HDLFile, $hdlInFileSpec) || die "couldn't open $HDLFileSpec!"; | ||||
| open(tempFile, ">$tempFileSpec"); | ||||
| while (chop($line = <HDLFile>)) { | ||||
|  | ||||
|   # remove all comment for the test | ||||
|   my $testline = $line; | ||||
|   $testline =~ s/--.*//; | ||||
|  | ||||
|   # Replace 'use xxx.yyy' with 'use work.yyy', except if xxx is ieee or std or unisim or ecp5u or ice40 | ||||
|   if ($testline =~ m/use\s.*\.all\s*;/i) { | ||||
|     if ( not($testline =~ m/\bieee\./i) and | ||||
| 		 not($testline =~ m/\bstd\./i)  and | ||||
| 		 not($testline =~ m/\bunisim\./i) and | ||||
|      not($testline =~ m/\becp5u\./i) and | ||||
|      not($testline =~ m/ice40.*\./i)) { | ||||
|       # if there is any char before "use" except \s, insert new line \n | ||||
|       if ( ($testline =~ m/[^\s]\s*use/i) ) { | ||||
|         $line =~ s/use\s+.*?\./\nuse work./i; | ||||
|         if ($debug == 1) { | ||||
|           print "TEST0099: ", $testline, "\n" | ||||
|         } | ||||
|       } | ||||
|       else { | ||||
|         $line =~ s/use\s+.*?\./use work./i; | ||||
|         if ($debug == 1) { | ||||
|           print "TEST0105: ", $testline, "\n" | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   # Comment libraries which aren't ieee or std or unisim or ecp5u or ice40 | ||||
|   if (($testline =~ m/\slibrary\s+/i) or ($testline =~ m/\Alibrary\s+/i)) { | ||||
|     if ( not($testline =~ m/ieee/i) and | ||||
| 		 not($testline =~ m/std/i) and | ||||
| 		 not($testline =~ m/unisim/i) and | ||||
|      not($testline =~ m/ecp5u/i) and | ||||
|      not($testline =~ m/ice40/i)) { | ||||
|       $line = '-- ' . $line; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   # Comment "FOR xxxx : yyy USE ENTITY zzz; | ||||
|   if ($line =~ m/for\s+.+:.+\s+use\s+entity/i) { | ||||
|     $line = '-- ' . $line; | ||||
|   } | ||||
|  | ||||
|   # Search for $Env_Var_Names and replace them by the value of the env_var | ||||
|   if ($testline =~ m/(\$[^\s\/.'"\\]+)/i) { | ||||
|     $envvar = $1; | ||||
|     $envvar =~ s/^.//; | ||||
|     eval { | ||||
|       $line =~ s/\$$envvar/$ENV{$envvar}/; | ||||
|     }; | ||||
|     if ($@) { | ||||
|       print ("WARNING: Environment Variable not found: $envvar \n") | ||||
|     } | ||||
|  | ||||
|   } | ||||
|  | ||||
|   print tempFile ("$line\n"); | ||||
| } | ||||
|  | ||||
| close(tempFile); | ||||
| close(HDLFile); | ||||
|  | ||||
| #------------------------------------------------------------------------------- | ||||
| # delete original file and rename temporary file | ||||
| # | ||||
| unlink($hdlOutFileSpec); | ||||
| rename($tempFileSpec, $hdlOutFileSpec); | ||||
|  | ||||
| if ($verbose == 1) { | ||||
|   print "$separator\n"; | ||||
| } | ||||
|  | ||||
| #if ($verbose == 1) { | ||||
| #  print $indent, "Hit any <CR> to continue"; | ||||
| #  $dummy = <STDIN>; | ||||
| #} | ||||
							
								
								
									
										91
									
								
								10-PipelinedOperators/Scripts/update_ise.pl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								10-PipelinedOperators/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