diff --git a/libraries/technology/ip_arria10/phy_10gbase_r/ip/compile_ip.tcl b/libraries/technology/ip_arria10/phy_10gbase_r/ip/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..0085fab2d1eeeb5ba244cdca6161b0e35ec76405
--- /dev/null
+++ b/libraries/technology/ip_arria10/phy_10gbase_r/ip/compile_ip.tcl
@@ -0,0 +1,111 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2014
+# ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/>
+# JIVE (Joint Institute for VLBI in Europe) <http://www.jive.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/>.
+#
+#------------------------------------------------------------------------------
+
+# This file is based on generated file mentor/msim_setup.tcl.
+# - the values for modelsim_search_libraries key in the hdllib.cfg follow from altera libraries vmap section in the msim_setup.tcl
+# - vmap for the IP specific libraries and compile all IP source files into those libraries similar as in the msim_setup.tcl
+# - replace QSYS_SIMDIR by IP_DIR
+# - if the testbench is also generated with QSYS then only the IP_TBDIR files are needed, because these also contain the source files.
+
+set IP_DIR   "$env(RADIOHDL)/libraries/technology/ip_arria10/phy_10gbase_r/ip/generated/sim"
+
+vlib ./work/
+
+vmap ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140 ./work/
+
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/altera_xcvr_functions.sv"                             -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/altera_xcvr_functions.sv"                      -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/alt_xcvr_resync.sv"                                   -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/alt_xcvr_resync.sv"                            -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_pcs.sv"                                      -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_pcs_ch.sv"                                   -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_pma.sv"                                      -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_pma_ch.sv"                                   -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_xcvr_avmm.sv"                                -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_xcvr_native.sv"                              -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_pcs.sv"                               -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_pcs_ch.sv"                            -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_pma.sv"                               -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_pma_ch.sv"                            -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_xcvr_avmm.sv"                         -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_xcvr_native.sv"                       -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_10g_rx_pcs_rbc.sv"                      -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_10g_tx_pcs_rbc.sv"                      -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_8g_rx_pcs_rbc.sv"                       -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_8g_tx_pcs_rbc.sv"                       -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_common_pcs_pma_interface_rbc.sv"        -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_common_pld_pcs_interface_rbc.sv"        -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_fifo_rx_pcs_rbc.sv"                     -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_fifo_tx_pcs_rbc.sv"                     -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_gen3_rx_pcs_rbc.sv"                     -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_gen3_tx_pcs_rbc.sv"                     -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_krfec_rx_pcs_rbc.sv"                    -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_krfec_tx_pcs_rbc.sv"                    -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_pipe_gen1_2_rbc.sv"                     -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_pipe_gen3_rbc.sv"                       -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_pma_rx_dfe_rbc.sv"                      -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_pma_rx_odi_rbc.sv"                      -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_pma_rx_sd_rbc.sv"                       -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_pma_tx_buf_rbc.sv"                      -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_pma_tx_cgb_rbc.sv"                      -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_pma_tx_ser_rbc.sv"                      -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_rx_pcs_pma_interface_rbc.sv"            -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_rx_pld_pcs_interface_rbc.sv"            -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_tx_pcs_pma_interface_rbc.sv"            -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/twentynm_hssi_tx_pld_pcs_interface_rbc.sv"            -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_10g_rx_pcs_rbc.sv"               -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_10g_tx_pcs_rbc.sv"               -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_8g_rx_pcs_rbc.sv"                -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_8g_tx_pcs_rbc.sv"                -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_common_pcs_pma_interface_rbc.sv" -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_common_pld_pcs_interface_rbc.sv" -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_fifo_rx_pcs_rbc.sv"              -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_fifo_tx_pcs_rbc.sv"              -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_gen3_rx_pcs_rbc.sv"              -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_gen3_tx_pcs_rbc.sv"              -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_krfec_rx_pcs_rbc.sv"             -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_krfec_tx_pcs_rbc.sv"             -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_pipe_gen1_2_rbc.sv"              -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_pipe_gen3_rbc.sv"                -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_pma_rx_dfe_rbc.sv"               -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_pma_rx_odi_rbc.sv"               -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_pma_rx_sd_rbc.sv"                -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_pma_tx_buf_rbc.sv"               -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_pma_tx_cgb_rbc.sv"               -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_pma_tx_ser_rbc.sv"               -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_rx_pcs_pma_interface_rbc.sv"     -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_rx_pld_pcs_interface_rbc.sv"     -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_tx_pcs_pma_interface_rbc.sv"     -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/twentynm_hssi_tx_pld_pcs_interface_rbc.sv"     -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/a10_avmm_h.sv"                                        -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/altera_xcvr_native_a10.sv"                            -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/alt_xcvr_native_avmm_nf.sv"                           -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/alt_xcvr_native_avmm_csr.sv"                          -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/alt_xcvr_native_prbs_accum.sv"                        -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/alt_xcvr_native_embedded_debug.sv"                    -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/a10_avmm_h.sv"                                 -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/altera_xcvr_native_a10.sv"                     -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/alt_xcvr_native_avmm_nf.sv"                    -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/alt_xcvr_native_avmm_csr.sv"                   -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/alt_xcvr_native_prbs_accum.sv"                 -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vlog -sv "$IP_DIR/../altera_xcvr_native_a10_140/sim/mentor/alt_xcvr_native_embedded_debug.sv"             -work ip_arria10_phy_10gbase_r_altera_xcvr_native_a10_140
+vcom     "$IP_DIR/ip_arria10_phy_10gbase_r.vhd"