Skip to content
Snippets Groups Projects
Commit 933cec71 authored by Eric Kooistra's avatar Eric Kooistra
Browse files

Succesfully added toolset 'rsp' to be able to use RadioHDL flow with ISE and...

Succesfully added toolset 'rsp' to be able to use RadioHDL flow with ISE and Modelsim for Lofar RSP board firmware development under Linux.
parent 65329c8b
No related branches found
No related tags found
No related merge requests found
toolset_name = rsp toolset_name = rsp
lib_root_dir = $RSP lib_root_dir = $RSP
technology_names = technology_names = ip_virtex4
build_dir = $HDL_BUILD_DIR build_dir = $HDL_BUILD_DIR
tool_name_sim = modelsim tool_name_sim = modelsim
tool_name_synth = ise tool_name_synth = ise
......
# Used by modelsim_config.py to create library paths in the HDL library project files
# VHDL # VHDL
#altera = $MODEL_TECH_ALTERA_LIB/vhdl_libs/altera unisim = $MODEL_TECH_XILINX_LIB/vhdl/unisim
#altera_lnsim = $MODEL_TECH_ALTERA_LIB/vhdl_libs/altera_lnsim unimacro = $MODEL_TECH_XILINX_LIB/vhdl/unimacro
#altera_mf = $MODEL_TECH_ALTERA_LIB/vhdl_libs/altera_mf simprim = $MODEL_TECH_XILINX_LIB/vhdl/simprim
#altgxbf = $MODEL_TECH_ALTERA_LIB/vhdl_libs/altgxb xilinxcorelib = $MODEL_TECH_XILINX_LIB/vhdl/XilinxCoreLib
#lpm = $MODEL_TECH_ALTERA_LIB/vhdl_libs/lpm secureip = $MODEL_TECH_XILINX_LIB/vhdl/secureip
#sgate = $MODEL_TECH_ALTERA_LIB/vhdl_libs/sgate aim = $MODEL_TECH_XILINX_LIB/vhdl/abel/aim
#stratix = $MODEL_TECH_ALTERA_LIB/vhdl_libs/stratix pls = $MODEL_TECH_XILINX_LIB/vhdl/abel/pls
#stratixgx = $MODEL_TECH_ALTERA_LIB/vhdl_libs/stratixgx cpld = $MODEL_TECH_XILINX_LIB/vhdl/cpld
#stratixiv = $MODEL_TECH_ALTERA_LIB/vhdl_libs/stratixiv
#stratixiv_hssi = $MODEL_TECH_ALTERA_LIB/vhdl_libs/stratixiv_hssi
#stratixiv_pcie_hip = $MODEL_TECH_ALTERA_LIB/vhdl_libs/stratixiv_pcie_hip
#altgxb = $MODEL_TECH_ALTERA_LIB/vhdl_libs/altgxb
#stratixgx_gxb = $MODEL_TECH_ALTERA_LIB/vhdl_libs/stratixgx_gxb
# Verilog # Verilog
#altera_ver = $MODEL_TECH_ALTERA_LIB/verilog_libs/altera_ver unisims_ver = $MODEL_TECH_XILINX_LIB/verilog/unisims_ver
#altera_lnsim_ver = $MODEL_TECH_ALTERA_LIB/verilog_libs/altera_lnsim_ver unimacro_ver = $MODEL_TECH_XILINX_LIB/verilog/unimacro_ver
#altera_mf_ver = $MODEL_TECH_ALTERA_LIB/verilog_libs/altera_mf_ver uni9000_ver = $MODEL_TECH_XILINX_LIB/verilog/uni9000_ver
#altgxb_ver = $MODEL_TECH_ALTERA_LIB/verilog_libs/altgxb_ver simprims_ver = $MODEL_TECH_XILINX_LIB/verilog/simprims_ver
#lpm_ver = $MODEL_TECH_ALTERA_LIB/verilog_libs/lpm_ver xilinxcorelib_ver = $MODEL_TECH_XILINX_LIB/verilog/XilinxCoreLib_ver
#sgate_ver = $MODEL_TECH_ALTERA_LIB/verilog_libs/sgate_ver aim_ver = $MODEL_TECH_XILINX_LIB/verilog/aim_ver
#stratix_ver = $MODEL_TECH_ALTERA_LIB/verilog_libs/stratix_ver cpld_ver = $MODEL_TECH_XILINX_LIB/verilog/cpld_ver
#stratixgx_ver = $MODEL_TECH_ALTERA_LIB/verilog_libs/stratixgx_ver
#stratixgx_gxb_ver = $MODEL_TECH_ALTERA_LIB/verilog_libs/stratixgx_gxb_ver
#stratixiigx_ver = $MODEL_TECH_ALTERA_LIB/verilog_libs/stratixiigx_ver
#stratixiigx_hssi_ver = $MODEL_TECH_ALTERA_LIB/verilog_libs/stratixiigx_hssi_ver
#stratixiv_ver = $MODEL_TECH_ALTERA_LIB/verilog_libs/stratixiv_ver
#stratixiv_hssi_ver = $MODEL_TECH_ALTERA_LIB/verilog_libs/stratixiv_hssi_ver
#stratixiv_pcie_hip_ver = $MODEL_TECH_ALTERA_LIB/verilog_libs/stratixiv_pcie_hip_ver
#stratixv_ver = $MODEL_TECH_ALTERA_LIB/verilog_libs/stratixv_ver
#stratixv_hssi_ver = $MODEL_TECH_ALTERA_LIB/verilog_libs/stratixv_hssi_ver
#stratixv_pcie_hip_ver = $MODEL_TECH_ALTERA_LIB/verilog_libs/stratixv_pcie_hip_ver
#!/bin/bash
###############################################################################
#
# Copyright (C) 2014
# ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/>
# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
#
# 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 3 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 <http://www.gnu.org/licenses/>.
#
###############################################################################
echo "Run ise_generic.sh"
# Derive generic ISE tool version related paths from $ISE_DIR that gets defined in ise_version.sh
# Add to the $PATH, only once to avoid double entries
pathadd ${ISE_DIR}/bin/lin
#WARNING:Place:957 - Placer has detected that XIL_PLACE_ALLOW_LOCAL_BUFG_ROUTING has been set. This environment variable
# has been deprecated. An ERROR in clock placement rules can be demoted to a WARNING by using the CLOCK_DEDICATED_ROUTE
# constraint on a specific component pin in the .ucf file.
#set XIL_PLACE_ALLOW_LOCAL_BUFG_ROUTING=1
# ERROR:Pack:1653 - At least one timing constraint is impossible to meet because
# component delays alone exceed the constraint. A timing constraint summary
# below shows the failing constraints (preceded with an Asterisk (*)). Please
# use the Timing Analyzer (GUI) or TRCE (command line) with the Mapped NCD and
# PCF files to identify which constraints and paths are failing because of the
# component delays alone. If the failing path(s) is mapped to Xilinx components
# as expected, consider relaxing the constraint. If it is not mapped to
# components as expected, re-evaluate your HDL and how synthesis is optimizing
# the path. To allow the tools to bypass this error, set the environment
# variable XIL_TIMING_ALLOW_IMPOSSIBLE to 1.
set XIL_TIMING_ALLOW_IMPOSSIBLE=1
#!/bin/bash
###############################################################################
#
# Copyright (C) 2016
# ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/>
# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
#
# 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 3 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 <http://www.gnu.org/licenses/>.
#
###############################################################################
ISE_VERSION=${1}
echo "Select ISE version: ${ISE_VERSION}"
# Set path to ISE version
export ISE_DIR=/home/software/Xilinx/ISE/${ISE_VERSION}/ISE
# Select the path to the technology libraries that is used in the [libraries] section of the modelsim.ini
export MODEL_TECH_XILINX_LIB=/home/software/modelsim_xilinx_libs/ise/${ISE_VERSION}
#!/bin/bash
###############################################################################
#
# Copyright (C) 2016
# ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/>
# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
#
# 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 3 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 <http://www.gnu.org/licenses/>.
#
###############################################################################
# General tool and project settings
# - use '. <script>.sh' to have the settings apply in this shell, otherwise they get lost when <script>.sh returns
# Tool settings for selected target "rsp"
. ${RADIOHDL}/tools/ise/set_ise ${1:-}
# Start the ISE GUI
ise
#!/bin/bash
###############################################################################
#
# Copyright (C) 2016
# ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/>
# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
#
# 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 3 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 <http://www.gnu.org/licenses/>.
#
###############################################################################
# Purpose: Map command line argument to a tool version
# Description:
# By using command line arguments like "rsp" to select the tool
# version it is easier to manage combinations of tool versions.
# General tool and project settings
# - use '. <script>.sh' to have the settings apply in this shell, otherwise they get lost when <script>.sh returns
# Select target
TOOLSET=${1:-}
echo "Make tool settings for RadioHDL with :"
echo " - Tool setting: ${TOOLSET}"
echo " - Site setting: ${SITE-}"
# Select tool version
if [ "${SITE-}" = "USN" ]; then
echo "Optionally use site dependent toolset for ${TOOLSET}"
else # default site
if [ "${TOOLSET}" = "rsp" ]; then
. ${RADIOHDL}/tools/ise/ise_version.sh 10.1.03
else
echo "error: unknown tool setting: ${TOOLSET} (choose 'rsp')"
exit 1
fi
fi
# Tool settings
. ${RADIOHDL}/tools/ise/ise_generic.sh
...@@ -64,6 +64,7 @@ else # default site ...@@ -64,6 +64,7 @@ else # default site
# Next line may be needed, but comment it if it yields ld.so errors # Next line may be needed, but comment it if it yields ld.so errors
export LD_PRELOAD=/home/software/freetype2/usr/lib/libfreetype.so export LD_PRELOAD=/home/software/freetype2/usr/lib/libfreetype.so
elif [ "${TOOLSET}" = "rsp" ]; then elif [ "${TOOLSET}" = "rsp" ]; then
. ${RADIOHDL}/tools/ise/ise_version.sh 10.1.03
. ${RADIOHDL}/tools/modelsim/modelsim_version.sh 6.6c . ${RADIOHDL}/tools/modelsim/modelsim_version.sh 6.6c
else else
echo "error: unknown tool setting: ${TOOLSET} (choose 'rsp', 'unb1', 'unb2' or 'unb2a')" echo "error: unknown tool setting: ${TOOLSET} (choose 'rsp', 'unb1', 'unb2' or 'unb2a')"
......
...@@ -16,6 +16,7 @@ Contents: ...@@ -16,6 +16,7 @@ Contents:
k) How to start Quartus for UNB k) How to start Quartus for UNB
l) UniBoard2 device family l) UniBoard2 device family
m) Upgrading the IP for new version of Quartus or for another device family m) Upgrading the IP for new version of Quartus or for another device family
n) How to use RadioHDL for Lofar RSP
3) HDL environment configuration files 3) HDL environment configuration files
a) Tools and libraries a) Tools and libraries
...@@ -128,6 +129,7 @@ direct definition in the .bashrc are: ...@@ -128,6 +129,7 @@ direct definition in the .bashrc are:
- the environment setup script can be kept in SVN - the environment setup script can be kept in SVN
- it makes it easier to ensure that all users apply the same RadioHDL environment settings, because all source the same environment setup script - it makes it easier to ensure that all users apply the same RadioHDL environment settings, because all source the same environment setup script
- it avoids that the .bashrc gets cluttered with various definitions - it avoids that the .bashrc gets cluttered with various definitions
- different versions of a tool can be started and run simultaneously
Some environment variables need to be set in the .bashrc, because they are not kept the setup script in SVN: Some environment variables need to be set in the .bashrc, because they are not kept the setup script in SVN:
...@@ -443,6 +445,65 @@ and the try to simulate a design, eg.: ...@@ -443,6 +445,65 @@ and the try to simulate a design, eg.:
- unb2_minimal - unb2_minimal
n) How to use RadioHDL for Lofar RSP
* The Lofar Station firmware is kept in a separate SVN repository at:
https://svn.astron.nl/Station
The firmware for the RSP board is kept in:
https://svn.astron.nl/Station/trunk/RSP
In setup_radiohdl.sh add the path to the local SVN checkout of the Station
firmware:
export RSP=${SVN}/../Station/trunk/RSP
and add ${RADIOHDL}/tools/ise to the PATH environment variable.
* To compile the Xilinx ISE10.1.03 models with Modelsim 6.6c under linux do:
The compxlib adds the Xilinx libraries to the [libraries] section in the
/home/software/Mentor/6.6c/modeltech/modelsim.ini file. Therefore make
sure to first copy this original installation modelsim.ini file, so that
we can restore it.
cd /home/software/modelsim_xilinx_libs/ise/10.1.03
sudo mkdir vhdl
sudo mkdir verilog
sudo /home/software/Xilinx/ISE/10.1/ISE/bin/lin/compxlib -s mti_se -f all -l vhdl -dir vhdl -p /home/software/Mentor/6.6c/modeltech/linux_x86_64
sudo /home/software/Xilinx/ISE/10.1/ISE/bin/lin/compxlib -s mti_se -f all -l verilog -dir verilog -p /home/software/Mentor/6.6c/modeltech/linux_x86_64
Use the library mappings in the modelsim.ini that was modified by compxlib
to create:
tools/ise/create hdl_libraries_ip_virtex4.txt
The modelsim_config.py using hdl_libraries_ip_virtex4.txt to map the Xilinx
library files in each HDL library project files. Therefore the central
mapping in the Modelsim installation modelsim.ini file is unwanted and not
needed.
* Create tools/hdltool_rsp.cfg HDL tool configuration dictionary file for toolset 'rsp'
* Create bash scripts to start up ISE based on the toolset 'rsp' in tools/ise:
run_ise
\--> set_ise
\--> ise_version.sh
\--> ise_generic.sh
This is similar as for other tools like Modelsim, Quartus. The advantage of
this approach is that the tool settings are only made when the tool is ran
and not in the .bashrc file. These bash scripts are kept in SVN and thus the
same tool settings are used by all engineers.
* To start the ISE GUI do:
> run_ise rsp &
* To start the Modelsim GUI do:
> run_modelsim rsp &
3) HDL environment configuration files 3) HDL environment configuration files
......
...@@ -52,6 +52,7 @@ export PATH=${PATH}:\ ...@@ -52,6 +52,7 @@ export PATH=${PATH}:\
${UPE}/base:\ ${UPE}/base:\
${UNB}/Firmware/software/build:\ ${UNB}/Firmware/software/build:\
${RADIOHDL}/tools/quartus:\ ${RADIOHDL}/tools/quartus:\
${RADIOHDL}/tools/ise:\
${RADIOHDL}/tools/modelsim ${RADIOHDL}/tools/modelsim
fi fi
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment