diff --git a/applications/lofar2/designs/lofar2_unb2b_adc/hdllib.cfg b/applications/lofar2/designs/lofar2_unb2b_adc/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..68048b09ca51ee3bdd1be86fb24a382f38b0475d
--- /dev/null
+++ b/applications/lofar2/designs/lofar2_unb2b_adc/hdllib.cfg
@@ -0,0 +1,23 @@
+hdl_lib_name = lofar2_unb2b_adc
+hdl_library_clause_name = lofar2_unb2b_adc_lib
+hdl_lib_uses_synth = common technology mm unb2b_board dp eth tech_tse tr_10GbE diagnostics diag tech_jesd204b
+hdl_lib_uses_sim = 
+hdl_lib_technology = ip_arria10_e1sg
+
+synth_files =
+    src/vhdl/qsys_lofar2_unb2b_adc_pkg.vhd
+    src/vhdl/lofar2_unb2b_adc_pkg.vhd
+    src/vhdl/mmm_lofar2_unb2b_adc.vhd
+    src/vhdl/lofar2_unb2b_adc.vhd
+    
+test_bench_files = 
+    tb/vhdl/tb_lofar2_unb2b_adc.vhd
+
+
+[modelsim_project_file]
+modelsim_copy_files = 
+
+
+[quartus_project_file]
+quartus_copy_files =
+
diff --git a/applications/lofar2/designs/lofar2_unb2b_adc/quartus/lofar2_unb2b_adc.sdc b/applications/lofar2/designs/lofar2_unb2b_adc/quartus/lofar2_unb2b_adc.sdc
new file mode 100644
index 0000000000000000000000000000000000000000..e0a8d1b58168ab6b944a51e297c8478e8c28fac5
--- /dev/null
+++ b/applications/lofar2/designs/lofar2_unb2b_adc/quartus/lofar2_unb2b_adc.sdc
@@ -0,0 +1 @@
+#Placeholder
diff --git a/applications/lofar2/designs/lofar2_unb2b_adc/quartus/lofar2_unb2b_adc_pins.tcl b/applications/lofar2/designs/lofar2_unb2b_adc/quartus/lofar2_unb2b_adc_pins.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..da85c19f6523141cbbe5eb02ad1bd1dc0e4f2fdb
--- /dev/null
+++ b/applications/lofar2/designs/lofar2_unb2b_adc/quartus/lofar2_unb2b_adc_pins.tcl
@@ -0,0 +1,23 @@
+###############################################################################
+#
+# 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/>.
+#
+###############################################################################
+
+source $::env(RADIOHDL_WORK)/boards/uniboard2b/libraries/unb2b_board/quartus/pinning/unb2b_minimal_pins.tcl
+source $::env(RADIOHDL_WORK)/boards/uniboard2b/libraries/unb2b_board/quartus/pinning/unb2b_jesd204b_pins.tcl
diff --git a/applications/lofar2/designs/lofar2_unb2b_adc/revisions/lofar2_unb2b_adc_full/hdllib.cfg b/applications/lofar2/designs/lofar2_unb2b_adc/revisions/lofar2_unb2b_adc_full/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..768c2d6fb33db36c272c76b6829cc510a40b772b
--- /dev/null
+++ b/applications/lofar2/designs/lofar2_unb2b_adc/revisions/lofar2_unb2b_adc_full/hdllib.cfg
@@ -0,0 +1,73 @@
+hdl_lib_name = lofar2_unb2b_adc_full
+hdl_library_clause_name = lofar2_unb2b_adc_full_lib
+hdl_lib_uses_synth = common mm technology unb2b_board lofar2_unb2b_adc 
+hdl_lib_uses_sim = 
+hdl_lib_technology = ip_arria10_e1sg
+                     
+ synth_files =
+    # ../../src/vhdl/qsys_lofar2_unb2b_adc_pkg.vhd
+    # ../../src/vhdl/lofar2_unb2b_adc_pkg.vhd
+    # ../../src/vhdl/mmm_lofar2_unb2b_adc.vhd
+    # ../../src/vhdl/lofar2_unb2b_adc.vhd
+    lofar2_unb2b_adc_full.vhd
+
+test_bench_files = 
+    tb_lofar2_unb2b_adc_full.vhd
+
+
+
+[modelsim_project_file]
+modelsim_copy_files =
+# Pinning design only intended for synthesis
+
+
+[quartus_project_file]
+synth_top_level_entity =
+
+quartus_copy_files =
+    ../../quartus .
+    ../../src/hex hex
+
+quartus_qsf_files =
+    $RADIOHDL_WORK/boards/uniboard2b/libraries/unb2c_board/quartus/unb2c_board.qsf
+
+quartus_sdc_pre_files =
+    ../../quartus/lofar_unb2b_adc.sdc
+
+quartus_sdc_files =
+    $RADIOHDL_WORK/boards/uniboard2b/libraries/unb2b_board/quartus/unb2b_board.sdc
+
+quartus_tcl_files =
+    ../../quartus/lofar_unb2b_adc_pins.tcl
+
+quartus_vhdl_files = 
+
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar_unb2b_adc_full/qsys_lofar_unb2b_adc/qsys_lofar_unb2b_adc.qip
+
+quartus_ip_files =
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_avs_eth_0.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_avs_common_mm_0.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_avs_common_mm_1.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_clk_0.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_cpu_0.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_jtag_uart_0.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_onchip_memory2_0.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_pio_pps.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_pio_system_info.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_pio_wdi.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_reg_dpmm_ctrl.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_reg_dpmm_data.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_reg_epcs.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_reg_fpga_temp_sens.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_reg_fpga_voltage_sens.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_reg_mmdp_ctrl.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_reg_mmdp_data.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_reg_remu.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_reg_unb_pmbus.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_reg_unb_sens.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_reg_wdi.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_rom_system_info.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_timer_0.ip
+
+nios2_app_userflags = -DCOMPILE_FOR_GEN2_UNB2
diff --git a/applications/lofar2/designs/lofar2_unb2b_adc/revisions/lofar2_unb2b_adc_full/lofar2_unb2b_adc_full.vhd b/applications/lofar2/designs/lofar2_unb2b_adc/revisions/lofar2_unb2b_adc_full/lofar2_unb2b_adc_full.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..e810bce975968990b22cd00ec74f8f24b6c184bb
--- /dev/null
+++ b/applications/lofar2/designs/lofar2_unb2b_adc/revisions/lofar2_unb2b_adc_full/lofar2_unb2b_adc_full.vhd
@@ -0,0 +1,136 @@
+-------------------------------------------------------------------------------
+--
+-- Copyright (C) 2015
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+LIBRARY IEEE, common_lib, unb2b_board_lib, technology_lib, diag_lib, dp_lib, tech_jesd204b_lib, lofar2_unb2b_adc_lib;
+USE IEEE.STD_LOGIC_1164.ALL;
+USE IEEE.NUMERIC_STD.ALL;
+USE common_lib.common_pkg.ALL;
+USE common_lib.common_mem_pkg.ALL;
+USE technology_lib.technology_pkg.ALL;
+USE unb2b_board_lib.unb2b_board_pkg.ALL;
+USE diag_lib.diag_pkg.ALL;
+USE dp_lib.dp_stream_pkg.ALL;
+
+ENTITY lofar2_unb2b_adc_full IS
+  GENERIC (
+    g_design_name      : STRING  := "lofar2_unb2b_adc_full";
+    g_design_note      : STRING  := "Lofar2 adc with one node";
+    g_sim              : BOOLEAN := FALSE; --Overridden by TB
+    g_sim_unb_nr       : NATURAL := 0;
+    g_sim_node_nr      : NATURAL := 0;
+    g_stamp_date       : NATURAL := 0;  -- Date (YYYYMMDD) -- set by QSF
+    g_stamp_time       : NATURAL := 0;  -- Time (HHMMSS)   -- set by QSF
+    g_revision_id      : STRING := ""   -- revision ID     -- set by QSF
+  );
+  PORT (
+    -- GENERAL
+    CLK          : IN    STD_LOGIC; -- System Clock
+    PPS          : IN    STD_LOGIC; -- System Sync
+    WDI          : OUT   STD_LOGIC; -- Watchdog Clear
+    INTA         : INOUT STD_LOGIC; -- FPGA interconnect line
+    INTB         : INOUT STD_LOGIC; -- FPGA interconnect line
+
+    -- Others
+    VERSION      : IN    STD_LOGIC_VECTOR(c_unb2b_board_aux.version_w-1 DOWNTO 0);
+    ID           : IN    STD_LOGIC_VECTOR(c_unb2b_board_aux.id_w-1 DOWNTO 0);
+    TESTIO       : INOUT STD_LOGIC_VECTOR(c_unb2b_board_aux.testio_w-1 DOWNTO 0);
+    
+    -- I2C Interface to Sensors
+    SENS_SC      : INOUT STD_LOGIC;
+    SENS_SD      : INOUT STD_LOGIC;
+  
+    PMBUS_SC     : INOUT STD_LOGIC;
+    PMBUS_SD     : INOUT STD_LOGIC;
+    PMBUS_ALERT  : IN    STD_LOGIC := '0';
+
+    -- 1GbE Control Interface
+    ETH_CLK      : IN    STD_LOGIC;
+    ETH_SGIN     : IN    STD_LOGIC_VECTOR(c_unb2b_board_nof_eth-1 DOWNTO 0);
+    ETH_SGOUT    : OUT   STD_LOGIC_VECTOR(c_unb2b_board_nof_eth-1 DOWNTO 0);
+
+    -- LEDs
+    QSFP_LED     : OUT   STD_LOGIC_VECTOR(c_unb2b_board_tr_qsfp_nof_leds-1 DOWNTO 0);
+
+     -- back transceivers
+    BCK_RX       : IN    STD_LOGIC_VECTOR((c_unb2b_board_tr_jesd204b.bus_w * c_unb2b_board_tr_jesd204b.nof_bus)-1 downto 0);
+    BCK_REF_CLK  : IN    STD_LOGIC; -- Use as JESD204B_REFCLK
+ 
+    -- jesd204b syncronization signals
+    JESD204B_SYSREF : IN    STD_LOGIC;
+    JESD204B_SYNC   : OUT   STD_LOGIC_VECTOR((c_unb2b_board_tr_jesd204b.nof_bus * c_unb2b_board_tr_jesd204b.bus_w)-1 DOWNTO 0)
+  );
+END lofar2_unb2b_adc_full;
+
+
+ARCHITECTURE str OF lofar2_unb2b_adc_full IS
+
+BEGIN
+
+  u_revision : ENTITY lofar2_unb2b_adc_lib.lofar2_unb2b_adc
+  GENERIC MAP (
+    g_design_name => g_design_name,
+    g_design_note => g_design_note,
+    g_sim         => g_sim,
+    g_sim_unb_nr  => g_sim_unb_nr,
+    g_sim_node_nr => g_sim_node_nr,
+    g_stamp_date  => g_stamp_date,
+    g_stamp_time  => g_stamp_time,
+    g_revision_id => g_revision_id
+  )
+  PORT MAP (
+    -- GENERAL
+    CLK          => CLK,
+    PPS          => PPS,
+    WDI          => WDI,
+    INTA         => INTA,
+    INTB         => INTB,
+
+    -- Others
+    VERSION      => VERSION,
+    ID           => ID,
+    TESTIO       => TESTIO,
+
+    -- I2C Interface to Sensors
+    SENS_SC      => SENS_SC,
+    SENS_SD      => SENS_SD,
+
+    PMBUS_SC     => PMBUS_SC,
+    PMBUS_SD     => PMBUS_SD,
+    PMBUS_ALERT  => PMBUS_ALERT,
+
+    -- 1GbE Control Interface
+    ETH_clk      => ETH_clk,
+    ETH_SGIN     => ETH_SGIN,
+    ETH_SGOUT    => ETH_SGOUT,
+
+    -- LEDs
+    QSFP_LED     => QSFP_LED,
+
+    -- back transceivers
+    BCK_RX       => BCK_RX,
+    BCK_REF_CLK  => BCK_REF_CLK,
+  
+    -- jesd204b syncronization signals
+    JESD204B_SYSREF => JESD204B_SYSREF,
+    JESD204B_SYNC   => JESD204B_SYNC
+  );
+END str;
diff --git a/applications/lofar2/designs/lofar2_unb2b_adc/revisions/lofar2_unb2b_adc_full/tb_lofar2_unb2b_adc_full.vhd b/applications/lofar2/designs/lofar2_unb2b_adc/revisions/lofar2_unb2b_adc_full/tb_lofar2_unb2b_adc_full.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..0d7d95d1718b5b3b6ddd4ff389fbef3bce83dc85
--- /dev/null
+++ b/applications/lofar2/designs/lofar2_unb2b_adc/revisions/lofar2_unb2b_adc_full/tb_lofar2_unb2b_adc_full.vhd
@@ -0,0 +1,167 @@
+-------------------------------------------------------------------------------
+--
+-- Copyright (C) 2018
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+-- Author: Jonathan Hargreaves
+-- Purpose: Tb to show that lofar2_unb2b_adc_full can simulate
+-- Description:
+--   Must use c_sim = TRUE to speed up simulation
+--   This is a compile-only test bench
+-- Usage:
+--   Load sim    # check that design can load in vsim
+--   > as 10     # check that the hierarchy for g_design_name is complete
+--   > run -a    # check that design can simulate some us without error
+
+LIBRARY IEEE, common_lib, unb2b_board_lib, i2c_lib;
+USE IEEE.std_logic_1164.ALL;
+USE IEEE.numeric_std.ALL;
+USE common_lib.common_pkg.ALL;
+USE unb2b_board_lib.unb2b_board_pkg.ALL;
+USE common_lib.tb_common_pkg.ALL;
+
+ENTITY tb_lofar2_unb2b_adc_full IS
+END tb_lofar2_unb2b_adc_full;
+
+ARCHITECTURE tb OF tb_lofar2_unb2b_adc_full IS
+
+  CONSTANT c_sim             : BOOLEAN := TRUE;
+  CONSTANT c_unb_nr          : NATURAL := 0; -- UniBoard 0
+  CONSTANT c_node_nr         : NATURAL := 0; -- Back node 3
+  CONSTANT c_id              : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000";
+  CONSTANT c_version         : STD_LOGIC_VECTOR(1 DOWNTO 0) := "00";
+  CONSTANT c_fw_version      : t_unb2b_board_fw_version := (1, 0);
+
+  CONSTANT c_eth_clk_period  : TIME := 8 ns;  -- 125 MHz XO on UniBoard
+  CONSTANT c_ext_clk_period  : TIME := 5 ns;
+  CONSTANT c_bck_ref_clk_period  : TIME := 5 ns;
+  CONSTANT c_pps_period      : NATURAL := 1000;
+
+  -- Tb
+  SIGNAL tb_end              : STD_LOGIC := '0';
+  SIGNAL sim_done            : STD_LOGIC := '0';
+
+  -- DUT
+  SIGNAL ext_clk             : STD_LOGIC := '0';
+  SIGNAL pps                 : STD_LOGIC := '0';
+  SIGNAL pps_rst             : STD_LOGIC := '0';
+
+  SIGNAL WDI                 : STD_LOGIC;
+  SIGNAL INTA                : STD_LOGIC;
+  SIGNAL INTB                : STD_LOGIC;
+
+  SIGNAL eth_clk             : STD_LOGIC := '0';
+  SIGNAL eth_txp             : STD_LOGIC_VECTOR(c_unb2b_board_nof_eth-1 downto 0);
+  SIGNAL eth_rxp             : STD_LOGIC_VECTOR(c_unb2b_board_nof_eth-1 downto 0);
+
+  SIGNAL sens_scl            : STD_LOGIC;
+  SIGNAL sens_sda            : STD_LOGIC;
+  SIGNAL pmbus_scl           : STD_LOGIC;
+  SIGNAL pmbus_sda           : STD_LOGIC;
+
+  -- back transceivers
+  SIGNAL bck_rx              : STD_LOGIC_VECTOR((c_unb2b_board_tr_jesd204b.bus_w * c_unb2b_board_tr_jesd204b.nof_bus)-1 downto 0);
+  SIGNAL bck_ref_clk         : STD_LOGIC := '1';
+
+  -- jesd204b syncronization signals
+  SIGNAL jesd204b_sysref     : STD_LOGIC;
+  SIGNAL jesd204b_sync       : STD_LOGIC_VECTOR((c_unb2b_board_tr_jesd204b.nof_bus * c_unb2b_board_tr_jesd204b.bus_w)-1 DOWNTO 0);
+
+
+BEGIN
+
+
+  ----------------------------------------------------------------------------
+  -- System setup
+  ----------------------------------------------------------------------------
+  ext_clk <= NOT ext_clk AFTER c_ext_clk_period/2;  -- External clock (200 MHz)
+  eth_clk <= NOT eth_clk AFTER c_eth_clk_period/2;  -- Ethernet ref clock (125 MHz)
+  bck_ref_clk <= NOT bck_ref_clk AFTER c_bck_ref_clk_period/2;  -- JESD sample clock (200MHz) 
+
+  INTA <= 'H';  -- pull up
+  INTB <= 'H';  -- pull up
+
+  sens_scl <= 'H';  -- pull up
+  sens_sda <= 'H';  -- pull up
+  pmbus_scl <= 'H';  -- pull up
+  pmbus_sda <= 'H';  -- pull up
+
+  ------------------------------------------------------------------------------
+  -- External PPS
+  ------------------------------------------------------------------------------  
+  proc_common_gen_pulse(1, c_pps_period, '1', pps_rst, ext_clk, pps);
+  jesd204b_sysref <= pps;
+
+  ------------------------------------------------------------------------------
+  -- DUT
+  ------------------------------------------------------------------------------
+  u_lofar_unb2b_adc_full : ENTITY work.lofar2_unb2b_adc_full
+  GENERIC MAP (
+    g_sim         => c_sim,
+    g_sim_unb_nr  => c_unb_nr,
+    g_sim_node_nr => c_node_nr
+  )
+  PORT MAP (
+    -- GENERAL
+    CLK          => ext_clk,
+    PPS          => pps,
+    WDI          => WDI,
+    INTA         => INTA,
+    INTB         => INTB,
+
+    -- Others
+    VERSION      => c_version,
+    ID           => c_id,
+    TESTIO       => open,
+
+    -- I2C Interface to Sensors
+    SENS_SC      => sens_scl,
+    SENS_SD      => sens_sda,
+
+    PMBUS_SC     => pmbus_scl,
+    PMBUS_SD     => pmbus_sda,
+    PMBUS_ALERT  => open,
+
+    -- 1GbE Control Interface
+    ETH_CLK      => eth_clk,
+    ETH_SGIN     => eth_rxp,
+    ETH_SGOUT    => eth_txp,
+
+    -- LEDs
+    QSFP_LED     => open,
+
+    -- back transceivers
+    BCK_RX       => bck_rx,
+    BCK_REF_CLK  => bck_ref_clk,
+  
+    -- jesd204b syncronization signals
+    JESD204B_SYSREF => jesd204b_sysref,
+    JESD204B_SYNC   => jesd204b_sync
+  );
+
+
+  ------------------------------------------------------------------------------
+  -- Simulation end
+  ------------------------------------------------------------------------------
+  sim_done <= '0', '1' AFTER 1 us;
+
+  proc_common_stop_simulation(TRUE, ext_clk, sim_done, tb_end);
+
+END tb;
\ No newline at end of file
diff --git a/applications/lofar2/designs/lofar2_unb2b_adc/revisions/lofar2_unb2b_adc_one_node/hdllib.cfg b/applications/lofar2/designs/lofar2_unb2b_adc/revisions/lofar2_unb2b_adc_one_node/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..a26f0fb9ee70e88b0cadb265c7292943f5c3dccb
--- /dev/null
+++ b/applications/lofar2/designs/lofar2_unb2b_adc/revisions/lofar2_unb2b_adc_one_node/hdllib.cfg
@@ -0,0 +1,71 @@
+hdl_lib_name = lofar2_unb2b_adc_one_node
+hdl_library_clause_name = lofar2_unb2b_adc_one_node_lib
+hdl_lib_uses_synth = common mm technology unb2b_board lofar2_unb2b_adc 
+hdl_lib_uses_sim = 
+hdl_lib_technology = ip_arria10_e1sg
+                     
+ synth_files =
+    # ../../src/vhdl/qsys_lofar2_unb2b_adc_pkg.vhd
+    # ../../src/vhdl/lofar2_unb2b_adc_pkg.vhd
+    # ../../src/vhdl/mmm_lofar2_unb2b_adc.vhd
+    # ../../src/vhdl/lofar2_unb2b_adc.vhd
+    lofar2_unb2b_adc_one_node.vhd
+
+test_bench_files = 
+    tb_lofar2_unb2b_adc_one_node.vhd
+
+
+[modelsim_project_file]
+modelsim_copy_files =
+
+
+[quartus_project_file]
+synth_top_level_entity =
+
+quartus_copy_files =
+    ../../quartus .
+    ../../src/hex hex
+
+quartus_qsf_files =
+    $RADIOHDL_WORK/boards/uniboard2b/libraries/unb2c_board/quartus/unb2c_board.qsf
+
+quartus_sdc_pre_files =
+    ../../quartus/lofar_unb2b_adc.sdc
+
+quartus_sdc_files =
+    $RADIOHDL_WORK/boards/uniboard2b/libraries/unb2b_board/quartus/unb2b_board.sdc
+
+quartus_tcl_files =
+    ../../quartus/lofar_unb2b_adc_pins.tcl
+
+quartus_vhdl_files =
+
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar_unb2b_adc_one_node/qsys_lofar_unb2b_adc/qsys_lofar_unb2b_adc.qip
+
+quartus_ip_files =
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_avs_eth_0.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_avs_common_mm_0.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_avs_common_mm_1.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_clk_0.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_cpu_0.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_jtag_uart_0.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_onchip_memory2_0.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_pio_pps.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_pio_system_info.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_pio_wdi.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_reg_dpmm_ctrl.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_reg_dpmm_data.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_reg_epcs.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_reg_fpga_temp_sens.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_reg_fpga_voltage_sens.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_reg_mmdp_ctrl.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_reg_mmdp_data.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_reg_remu.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_reg_unb_pmbus.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_reg_unb_sens.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_reg_wdi.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_rom_system_info.ip
+    $RADIOHDL_BUILD_DIR/unb2b/quartus/lofar2_unb2b_adc/ip/qsys_unb2b_minimal/qsys_unb2b_minimal_timer_0.ip
+
+nios2_app_userflags = -DCOMPILE_FOR_GEN2_UNB2
diff --git a/applications/lofar2/designs/lofar2_unb2b_adc/revisions/lofar2_unb2b_adc_one_node/lofar2_unb2b_adc_one_node.vhd b/applications/lofar2/designs/lofar2_unb2b_adc/revisions/lofar2_unb2b_adc_one_node/lofar2_unb2b_adc_one_node.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..fb8620a8e577df42cefdb9b52c92669070589e73
--- /dev/null
+++ b/applications/lofar2/designs/lofar2_unb2b_adc/revisions/lofar2_unb2b_adc_one_node/lofar2_unb2b_adc_one_node.vhd
@@ -0,0 +1,136 @@
+-------------------------------------------------------------------------------
+--
+-- Copyright (C) 2015
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+LIBRARY IEEE, common_lib, unb2b_board_lib, technology_lib, diag_lib, dp_lib, tech_jesd204b_lib, lofar2_unb2b_adc_lib;
+USE IEEE.STD_LOGIC_1164.ALL;
+USE IEEE.NUMERIC_STD.ALL;
+USE common_lib.common_pkg.ALL;
+USE common_lib.common_mem_pkg.ALL;
+USE technology_lib.technology_pkg.ALL;
+USE unb2b_board_lib.unb2b_board_pkg.ALL;
+USE diag_lib.diag_pkg.ALL;
+USE dp_lib.dp_stream_pkg.ALL;
+
+ENTITY lofar2_unb2b_adc_one_node IS
+  GENERIC (
+    g_design_name      : STRING  := "lofar2_unb2b_adc_one_node";
+    g_design_note      : STRING  := "Lofar2 adc with one node";
+    g_sim              : BOOLEAN := FALSE; --Overridden by TB
+    g_sim_unb_nr       : NATURAL := 0;
+    g_sim_node_nr      : NATURAL := 0;
+    g_stamp_date       : NATURAL := 0;  -- Date (YYYYMMDD) -- set by QSF
+    g_stamp_time       : NATURAL := 0;  -- Time (HHMMSS)   -- set by QSF
+    g_revision_id      : STRING := ""   -- revision ID     -- set by QSF
+  );
+  PORT (
+    -- GENERAL
+    CLK          : IN    STD_LOGIC; -- System Clock
+    PPS          : IN    STD_LOGIC; -- System Sync
+    WDI          : OUT   STD_LOGIC; -- Watchdog Clear
+    INTA         : INOUT STD_LOGIC; -- FPGA interconnect line
+    INTB         : INOUT STD_LOGIC; -- FPGA interconnect line
+
+    -- Others
+    VERSION      : IN    STD_LOGIC_VECTOR(c_unb2b_board_aux.version_w-1 DOWNTO 0);
+    ID           : IN    STD_LOGIC_VECTOR(c_unb2b_board_aux.id_w-1 DOWNTO 0);
+    TESTIO       : INOUT STD_LOGIC_VECTOR(c_unb2b_board_aux.testio_w-1 DOWNTO 0);
+    
+    -- I2C Interface to Sensors
+    SENS_SC      : INOUT STD_LOGIC;
+    SENS_SD      : INOUT STD_LOGIC;
+  
+    PMBUS_SC     : INOUT STD_LOGIC;
+    PMBUS_SD     : INOUT STD_LOGIC;
+    PMBUS_ALERT  : IN    STD_LOGIC := '0';
+
+    -- 1GbE Control Interface
+    ETH_CLK      : IN    STD_LOGIC;
+    ETH_SGIN     : IN    STD_LOGIC_VECTOR(c_unb2b_board_nof_eth-1 DOWNTO 0);
+    ETH_SGOUT    : OUT   STD_LOGIC_VECTOR(c_unb2b_board_nof_eth-1 DOWNTO 0);
+
+    -- LEDs
+    QSFP_LED     : OUT   STD_LOGIC_VECTOR(c_unb2b_board_tr_qsfp_nof_leds-1 DOWNTO 0);
+
+     -- back transceivers
+    BCK_RX       : IN    STD_LOGIC_VECTOR((c_unb2b_board_tr_jesd204b.bus_w * c_unb2b_board_tr_jesd204b.nof_bus)-1 downto 0);
+    BCK_REF_CLK  : IN    STD_LOGIC; -- Use as JESD204B_REFCLK
+ 
+    -- jesd204b syncronization signals
+    JESD204B_SYSREF : IN    STD_LOGIC;
+    JESD204B_SYNC   : OUT   STD_LOGIC_VECTOR((c_unb2b_board_tr_jesd204b.nof_bus * c_unb2b_board_tr_jesd204b.bus_w)-1 DOWNTO 0)
+  );
+END lofar2_unb2b_adc_one_node;
+
+
+ARCHITECTURE str OF lofar2_unb2b_adc_one_node IS
+
+BEGIN
+
+  u_revision : ENTITY lofar2_unb2b_adc_lib.lofar2_unb2b_adc
+  GENERIC MAP (
+    g_design_name => g_design_name,
+    g_design_note => g_design_note,
+    g_sim         => g_sim,
+    g_sim_unb_nr  => g_sim_unb_nr,
+    g_sim_node_nr => g_sim_node_nr,
+    g_stamp_date  => g_stamp_date,
+    g_stamp_time  => g_stamp_time,
+    g_revision_id => g_revision_id
+  )
+  PORT MAP (
+    -- GENERAL
+    CLK          => CLK,
+    PPS          => PPS,
+    WDI          => WDI,
+    INTA         => INTA,
+    INTB         => INTB,
+
+    -- Others
+    VERSION      => VERSION,
+    ID           => ID,
+    TESTIO       => TESTIO,
+
+    -- I2C Interface to Sensors
+    SENS_SC      => SENS_SC,
+    SENS_SD      => SENS_SD,
+
+    PMBUS_SC     => PMBUS_SC,
+    PMBUS_SD     => PMBUS_SD,
+    PMBUS_ALERT  => PMBUS_ALERT,
+
+    -- 1GbE Control Interface
+    ETH_clk      => ETH_clk,
+    ETH_SGIN     => ETH_SGIN,
+    ETH_SGOUT    => ETH_SGOUT,
+
+    -- LEDs
+    QSFP_LED     => QSFP_LED,
+
+    -- back transceivers
+    BCK_RX       => BCK_RX,
+    BCK_REF_CLK  => BCK_REF_CLK,
+  
+    -- jesd204b syncronization signals
+    JESD204B_SYSREF => JESD204B_SYSREF,
+    JESD204B_SYNC   => JESD204B_SYNC
+  );
+END str;
diff --git a/applications/lofar2/designs/lofar2_unb2b_adc/revisions/lofar2_unb2b_adc_one_node/tb_lofar2_unb2b_adc_one_node.vhd b/applications/lofar2/designs/lofar2_unb2b_adc/revisions/lofar2_unb2b_adc_one_node/tb_lofar2_unb2b_adc_one_node.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..03102523a4f927f9a723dc282bd60d425e59c157
--- /dev/null
+++ b/applications/lofar2/designs/lofar2_unb2b_adc/revisions/lofar2_unb2b_adc_one_node/tb_lofar2_unb2b_adc_one_node.vhd
@@ -0,0 +1,167 @@
+-------------------------------------------------------------------------------
+--
+-- Copyright (C) 2018
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+-- Author: Jonathan Hargreaves
+-- Purpose: Tb to show that lofar2_unb2b_adc_one_node can simulate
+-- Description:
+--   Must use c_sim = TRUE to speed up simulation
+--   This is a compile-only test bench
+-- Usage:
+--   Load sim    # check that design can load in vsim
+--   > as 10     # check that the hierarchy for g_design_name is complete
+--   > run -a    # check that design can simulate some us without error
+
+LIBRARY IEEE, common_lib, unb2b_board_lib, i2c_lib;
+USE IEEE.std_logic_1164.ALL;
+USE IEEE.numeric_std.ALL;
+USE common_lib.common_pkg.ALL;
+USE unb2b_board_lib.unb2b_board_pkg.ALL;
+USE common_lib.tb_common_pkg.ALL;
+
+ENTITY tb_lofar2_unb2b_adc_one_node IS
+END tb_lofar2_unb2b_adc_one_node;
+
+ARCHITECTURE tb OF tb_lofar2_unb2b_adc_one_node IS
+
+  CONSTANT c_sim             : BOOLEAN := TRUE;
+  CONSTANT c_unb_nr          : NATURAL := 0; -- UniBoard 0
+  CONSTANT c_node_nr         : NATURAL := 0; -- Back node 3
+  CONSTANT c_id              : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000";
+  CONSTANT c_version         : STD_LOGIC_VECTOR(1 DOWNTO 0) := "00";
+  CONSTANT c_fw_version      : t_unb2b_board_fw_version := (1, 0);
+
+  CONSTANT c_eth_clk_period  : TIME := 8 ns;  -- 125 MHz XO on UniBoard
+  CONSTANT c_ext_clk_period  : TIME := 5 ns;
+  CONSTANT c_bck_ref_clk_period  : TIME := 5 ns;
+  CONSTANT c_pps_period      : NATURAL := 1000;
+
+  -- Tb
+  SIGNAL tb_end              : STD_LOGIC := '0';
+  SIGNAL sim_done            : STD_LOGIC := '0';
+
+  -- DUT
+  SIGNAL ext_clk             : STD_LOGIC := '0';
+  SIGNAL pps                 : STD_LOGIC := '0';
+  SIGNAL pps_rst             : STD_LOGIC := '0';
+
+  SIGNAL WDI                 : STD_LOGIC;
+  SIGNAL INTA                : STD_LOGIC;
+  SIGNAL INTB                : STD_LOGIC;
+
+  SIGNAL eth_clk             : STD_LOGIC := '0';
+  SIGNAL eth_txp             : STD_LOGIC_VECTOR(c_unb2b_board_nof_eth-1 downto 0);
+  SIGNAL eth_rxp             : STD_LOGIC_VECTOR(c_unb2b_board_nof_eth-1 downto 0);
+
+  SIGNAL sens_scl            : STD_LOGIC;
+  SIGNAL sens_sda            : STD_LOGIC;
+  SIGNAL pmbus_scl           : STD_LOGIC;
+  SIGNAL pmbus_sda           : STD_LOGIC;
+
+  -- back transceivers
+  SIGNAL bck_rx              : STD_LOGIC_VECTOR((c_unb2b_board_tr_jesd204b.bus_w * c_unb2b_board_tr_jesd204b.nof_bus)-1 downto 0);
+  SIGNAL bck_ref_clk         : STD_LOGIC := '1';
+
+  -- jesd204b syncronization signals
+  SIGNAL jesd204b_sysref     : STD_LOGIC;
+  SIGNAL jesd204b_sync       : STD_LOGIC_VECTOR((c_unb2b_board_tr_jesd204b.nof_bus * c_unb2b_board_tr_jesd204b.bus_w)-1 DOWNTO 0);
+
+
+BEGIN
+
+
+  ----------------------------------------------------------------------------
+  -- System setup
+  ----------------------------------------------------------------------------
+  ext_clk <= NOT ext_clk AFTER c_ext_clk_period/2;  -- External clock (200 MHz)
+  eth_clk <= NOT eth_clk AFTER c_eth_clk_period/2;  -- Ethernet ref clock (125 MHz)
+  bck_ref_clk <= NOT bck_ref_clk AFTER c_bck_ref_clk_period/2;  -- JESD sample clock (200MHz) 
+
+  INTA <= 'H';  -- pull up
+  INTB <= 'H';  -- pull up
+
+  sens_scl <= 'H';  -- pull up
+  sens_sda <= 'H';  -- pull up
+  pmbus_scl <= 'H';  -- pull up
+  pmbus_sda <= 'H';  -- pull up
+
+  ------------------------------------------------------------------------------
+  -- External PPS
+  ------------------------------------------------------------------------------  
+  proc_common_gen_pulse(1, c_pps_period, '1', pps_rst, ext_clk, pps);
+  jesd204b_sysref <= pps;
+
+  ------------------------------------------------------------------------------
+  -- DUT
+  ------------------------------------------------------------------------------
+  u_lofar_unb2b_adc_one_node : ENTITY work.lofar2_unb2b_adc_one_node
+  GENERIC MAP (
+    g_sim         => c_sim,
+    g_sim_unb_nr  => c_unb_nr,
+    g_sim_node_nr => c_node_nr
+  )
+  PORT MAP (
+    -- GENERAL
+    CLK          => ext_clk,
+    PPS          => pps,
+    WDI          => WDI,
+    INTA         => INTA,
+    INTB         => INTB,
+
+    -- Others
+    VERSION      => c_version,
+    ID           => c_id,
+    TESTIO       => open,
+
+    -- I2C Interface to Sensors
+    SENS_SC      => sens_scl,
+    SENS_SD      => sens_sda,
+
+    PMBUS_SC     => pmbus_scl,
+    PMBUS_SD     => pmbus_sda,
+    PMBUS_ALERT  => open,
+
+    -- 1GbE Control Interface
+    ETH_CLK      => eth_clk,
+    ETH_SGIN     => eth_rxp,
+    ETH_SGOUT    => eth_txp,
+
+    -- LEDs
+    QSFP_LED     => open,
+
+    -- back transceivers
+    BCK_RX       => bck_rx,
+    BCK_REF_CLK  => bck_ref_clk,
+  
+    -- jesd204b syncronization signals
+    JESD204B_SYSREF => jesd204b_sysref,
+    JESD204B_SYNC   => jesd204b_sync
+  );
+
+
+  ------------------------------------------------------------------------------
+  -- Simulation end
+  ------------------------------------------------------------------------------
+  sim_done <= '0', '1' AFTER 1 us;
+
+  proc_common_stop_simulation(TRUE, ext_clk, sim_done, tb_end);
+
+END tb;
\ No newline at end of file
diff --git a/applications/lofar2/designs/lofar2_unb2b_adc/src/vhdl/lofar2_unb2b_adc.vhd b/applications/lofar2/designs/lofar2_unb2b_adc/src/vhdl/lofar2_unb2b_adc.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..c76f0c9a933305a65da4d5efc905b888f923ca46
--- /dev/null
+++ b/applications/lofar2/designs/lofar2_unb2b_adc/src/vhdl/lofar2_unb2b_adc.vhd
@@ -0,0 +1,617 @@
+-------------------------------------------------------------------------------
+--
+-- Copyright (C) 2015
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+LIBRARY IEEE, common_lib, unb2b_board_lib, technology_lib, diag_lib, dp_lib, tech_jesd204b_lib;
+USE IEEE.STD_LOGIC_1164.ALL;
+USE IEEE.NUMERIC_STD.ALL;
+USE common_lib.common_pkg.ALL;
+USE common_lib.common_mem_pkg.ALL;
+USE technology_lib.technology_pkg.ALL;
+USE unb2b_board_lib.unb2b_board_pkg.ALL;
+USE unb2b_board_lib.unb2b_board_peripherals_pkg.ALL;
+USE diag_lib.diag_pkg.ALL;
+USE dp_lib.dp_stream_pkg.ALL;
+USE work.lofar2_unb2b_adc_pkg.ALL;
+
+ENTITY lofar2_unb2b_adc IS
+  GENERIC (
+    g_design_name      : STRING  := "lofar2_unb2b_adc";
+    g_design_note      : STRING  := "UNUSED";
+    g_technology       : NATURAL := c_tech_arria10_e1sg;
+    g_sim              : BOOLEAN := FALSE; --Overridden by TB
+    g_sim_unb_nr       : NATURAL := 0;
+    g_sim_node_nr      : NATURAL := 0;
+    g_sim_model_ddr    : BOOLEAN := FALSE;
+    g_stamp_date       : NATURAL := 0;  -- Date (YYYYMMDD) -- set by QSF
+    g_stamp_time       : NATURAL := 0;  -- Time (HHMMSS)   -- set by QSF
+    g_revision_id      : STRING  := "";  -- revision ID     -- set by QSF
+    g_factory_image    : BOOLEAN := FALSE;
+    g_protect_addr_range: BOOLEAN := FALSE
+  );
+  PORT (
+    -- GENERAL
+    CLK          : IN    STD_LOGIC; -- System Clock
+    PPS          : IN    STD_LOGIC; -- System Sync
+    WDI          : OUT   STD_LOGIC; -- Watchdog Clear
+    INTA         : INOUT STD_LOGIC; -- FPGA interconnect line
+    INTB         : INOUT STD_LOGIC; -- FPGA interconnect line
+
+    -- Others
+    VERSION      : IN    STD_LOGIC_VECTOR(c_unb2b_board_aux.version_w-1 DOWNTO 0);
+    ID           : IN    STD_LOGIC_VECTOR(c_unb2b_board_aux.id_w-1 DOWNTO 0);
+    TESTIO       : INOUT STD_LOGIC_VECTOR(c_unb2b_board_aux.testio_w-1 DOWNTO 0);
+    
+    -- I2C Interface to Sensors
+    SENS_SC      : INOUT STD_LOGIC;
+    SENS_SD      : INOUT STD_LOGIC;
+  
+    PMBUS_SC     : INOUT STD_LOGIC;
+    PMBUS_SD     : INOUT STD_LOGIC;
+    PMBUS_ALERT  : IN    STD_LOGIC := '0';
+
+    -- 1GbE Control Interface
+    ETH_CLK      : IN    STD_LOGIC;
+    ETH_SGIN     : IN    STD_LOGIC_VECTOR(c_unb2b_board_nof_eth-1 DOWNTO 0);
+    ETH_SGOUT    : OUT   STD_LOGIC_VECTOR(c_unb2b_board_nof_eth-1 DOWNTO 0);
+
+    -- LEDs
+    QSFP_LED     : OUT   STD_LOGIC_VECTOR(c_unb2b_board_tr_qsfp_nof_leds-1 DOWNTO 0);
+
+     -- back transceivers
+    BCK_RX       : IN    STD_LOGIC_VECTOR((c_unb2b_board_tr_jesd204b.bus_w * c_unb2b_board_tr_jesd204b.nof_bus)-1 downto 0);
+    BCK_REF_CLK  : IN    STD_LOGIC; -- Use as JESD204B_REFCLK
+ 
+    -- jesd204b syncronization signals
+    JESD204B_SYSREF : IN    STD_LOGIC;
+    JESD204B_SYNC   : OUT   STD_LOGIC_VECTOR((c_unb2b_board_tr_jesd204b.nof_bus * c_unb2b_board_tr_jesd204b.bus_w)-1 DOWNTO 0)
+  );
+END lofar2_unb2b_adc;
+
+
+ARCHITECTURE str OF lofar2_unb2b_adc IS
+
+  -- Revision parameters
+  CONSTANT c_revision_select        : t_lofar2_unb2b_adc_config := func_sel_revision_rec(g_design_name);
+  CONSTANT c_nof_streams_jesd204b   : NATURAL := c_revision_select.nof_streams_jesd204b; -- IP is set up for 12 streams
+  CONSTANT c_nof_streams_db         : NATURAL := c_revision_select.nof_streams_db;       -- Streams of raw samples to record in db
+  CONSTANT c_nof_streams_input      : NATURAL := c_revision_select.nof_streams_input;    -- Streams actually passed through for processing
+
+  -- Firmware version x.y
+  CONSTANT c_fw_version             : t_unb2b_board_fw_version := (1, 1);
+  CONSTANT c_mm_clk_freq            : NATURAL := c_unb2b_board_mm_clk_freq_100M;
+  CONSTANT c_lofar2_sample_clk_freq : NATURAL := 200 * 10**6;  -- alternate 160MHz. TODO: Use to check PPS
+
+  -- Waveform Generator
+  CONSTANT c_wg_buf_directory       : STRING := "data/";
+  CONSTANT c_wg_buf_dat_w           : NATURAL := c_unb2b_board_peripherals_mm_reg_default.ram_diag_wg_dat_w;
+  CONSTANT c_wg_buf_addr_w          : NATURAL := c_unb2b_board_peripherals_mm_reg_default.ram_diag_wg_adr_w;
+  SIGNAL wg_out_ovr                 : STD_LOGIC_VECTOR(c_nof_streams_input-1 DOWNTO 0);    
+  SIGNAL wg_out_val                 : STD_LOGIC_VECTOR(c_nof_streams_input-1 DOWNTO 0);    
+  SIGNAL wg_out_data                : STD_LOGIC_VECTOR(c_nof_streams_input*c_wg_buf_dat_w-1 DOWNTO 0);    
+  SIGNAL wg_out_sync                : STD_LOGIC_VECTOR(c_nof_streams_input-1 DOWNTO 0);    
+  SIGNAL wg_sosi_arr                : t_dp_sosi_arr(c_nof_streams_input-1 DOWNTO 0);    
+  SIGNAL mux_sosi_arr               : t_dp_sosi_arr(c_nof_streams_input-1 DOWNTO 0);         
+  SIGNAL nxt_mux_sosi_arr           : t_dp_sosi_arr(c_nof_streams_input-1 DOWNTO 0);
+
+  -- bsn monitor
+  SIGNAL bsn_sosi_arr               : t_dp_sosi_arr(c_nof_streams_jesd204b-1 DOWNTO 0) := (others => c_dp_sosi_rst);
+
+  -- System
+  SIGNAL cs_sim                     : STD_LOGIC;
+  SIGNAL xo_ethclk                  : STD_LOGIC;
+  SIGNAL xo_rst                     : STD_LOGIC;
+  SIGNAL xo_rst_n                   : STD_LOGIC;
+  SIGNAL mm_clk                     : STD_LOGIC;
+  SIGNAL mm_rst                     : STD_LOGIC;
+  
+  SIGNAL st_rst                     : STD_LOGIC;
+  SIGNAL st_clk                     : STD_LOGIC;
+  SIGNAL st_pps                     : STD_LOGIC;
+
+  SIGNAL dp_rst                     : STD_LOGIC;
+  SIGNAL dp_clk                     : STD_LOGIC;
+
+  -- PIOs
+  SIGNAL pout_wdi                   : STD_LOGIC;
+
+  -- WDI override
+  SIGNAL reg_wdi_mosi               : t_mem_mosi;
+  SIGNAL reg_wdi_miso               : t_mem_miso;
+
+  -- PPSH
+  SIGNAL reg_ppsh_mosi              : t_mem_mosi;
+  SIGNAL reg_ppsh_miso              : t_mem_miso;
+  
+  -- UniBoard system info
+  SIGNAL reg_unb_system_info_mosi   : t_mem_mosi;
+  SIGNAL reg_unb_system_info_miso   : t_mem_miso;
+  SIGNAL rom_unb_system_info_mosi   : t_mem_mosi;
+  SIGNAL rom_unb_system_info_miso   : t_mem_miso;
+
+  -- UniBoard I2C sens
+  SIGNAL reg_unb_sens_mosi          : t_mem_mosi;
+  SIGNAL reg_unb_sens_miso          : t_mem_miso;
+
+  -- pm bus
+  SIGNAL reg_unb_pmbus_mosi         : t_mem_mosi;
+  SIGNAL reg_unb_pmbus_miso         : t_mem_miso;
+
+  -- FPGA sensors
+  SIGNAL reg_fpga_temp_sens_mosi     : t_mem_mosi;
+  SIGNAL reg_fpga_temp_sens_miso     : t_mem_miso;
+  SIGNAL reg_fpga_voltage_sens_mosi  : t_mem_mosi;
+  SIGNAL reg_fpga_voltage_sens_miso  : t_mem_miso;
+
+  -- eth1g
+  SIGNAL eth1g_mm_rst               : STD_LOGIC;
+  SIGNAL eth1g_tse_mosi             : t_mem_mosi;  -- ETH TSE MAC registers
+  SIGNAL eth1g_tse_miso             : t_mem_miso;
+  SIGNAL eth1g_reg_mosi             : t_mem_mosi;  -- ETH control and status registers
+  SIGNAL eth1g_reg_miso             : t_mem_miso;
+  SIGNAL eth1g_reg_interrupt        : STD_LOGIC;   -- Interrupt
+  SIGNAL eth1g_ram_mosi             : t_mem_mosi;  -- ETH rx frame and tx frame memory
+  SIGNAL eth1g_ram_miso             : t_mem_miso;
+
+  -- EPCS read
+  SIGNAL reg_dpmm_data_mosi         : t_mem_mosi;
+  SIGNAL reg_dpmm_data_miso         : t_mem_miso;
+  SIGNAL reg_dpmm_ctrl_mosi         : t_mem_mosi;
+  SIGNAL reg_dpmm_ctrl_miso         : t_mem_miso;
+
+  -- EPCS write
+  SIGNAL reg_mmdp_data_mosi         : t_mem_mosi;
+  SIGNAL reg_mmdp_data_miso         : t_mem_miso;
+  SIGNAL reg_mmdp_ctrl_mosi         : t_mem_mosi;
+  SIGNAL reg_mmdp_ctrl_miso         : t_mem_miso;
+
+  -- EPCS status/control
+  SIGNAL reg_epcs_mosi              : t_mem_mosi;
+  SIGNAL reg_epcs_miso              : t_mem_miso;
+
+  -- Remote Update
+  SIGNAL reg_remu_mosi              : t_mem_mosi;
+  SIGNAL reg_remu_miso              : t_mem_miso;
+
+  -- JESD
+  SIGNAL jesd204b_mosi              : t_mem_mosi;
+  SIGNAL jesd204b_miso              : t_mem_miso;
+
+  -- WG
+  SIGNAL reg_wg_mosi_arr            : t_mem_mosi_arr(c_nof_streams_input-1 DOWNTO 0);
+  SIGNAL reg_wg_miso_arr            : t_mem_miso_arr(c_nof_streams_input-1 DOWNTO 0);
+  SIGNAL ram_wg_mosi_arr            : t_mem_mosi_arr(c_nof_streams_input-1 DOWNTO 0);
+  SIGNAL ram_wg_miso_arr            : t_mem_miso_arr(c_nof_streams_input-1 DOWNTO 0);
+
+  -- BSN MONITOR
+  SIGNAL reg_bsn_monitor_mosi       : t_mem_mosi;
+  SIGNAL reg_bsn_monitor_miso       : t_mem_miso;
+
+  -- QSFP leds
+  SIGNAL qsfp_green_led_arr         : STD_LOGIC_VECTOR(c_unb2b_board_tr_qsfp.nof_bus-1 DOWNTO 0);
+  SIGNAL qsfp_red_led_arr           : STD_LOGIC_VECTOR(c_unb2b_board_tr_qsfp.nof_bus-1 DOWNTO 0);
+
+  -- JESD signals
+  SIGNAL ram_diag_data_buf_jesd_mosi    : t_mem_mosi;
+  SIGNAL ram_diag_data_buf_jesd_miso    : t_mem_miso;
+  SIGNAL reg_diag_data_buf_jesd_mosi    : t_mem_mosi;
+  SIGNAL reg_diag_data_buf_jesd_miso    : t_mem_miso;
+  SIGNAL diag_data_buf_snk_in_arr       : t_dp_sosi_arr(c_nof_streams_db-1 DOWNTO 0);
+  SIGNAL jesd204b_rx_src_out_arr        : t_dp_sosi_arr(c_nof_streams_jesd204b-1 DOWNTO 0);
+  SIGNAL jesd204b_frame_clk             : STD_LOGIC;
+
+  -------------------------------------------------------------------------------
+  -- DP sync checker / insert
+  -------------------------------------------------------------------------------
+  CONSTANT c_nof_clk_per_blk         : NATURAL := 1024;
+  CONSTANT c_nof_blk_per_sync        : NATURAL := 800000;
+  CONSTANT c_nof_clk_per_sync        : NATURAL := c_nof_blk_per_sync * 256;  -- = 800000 * 256
+  CONSTANT c_bsn_sync_timeout        : NATURAL := (c_nof_clk_per_sync * 10)/8; -- *10/8 as margin
+
+
+
+BEGIN
+
+  -----------------------------------------------------------------------------
+  -- General control function
+  -----------------------------------------------------------------------------
+  u_ctrl : ENTITY unb2b_board_lib.ctrl_unb2b_board
+  GENERIC MAP (
+    g_sim                => g_sim,
+    g_technology         => g_technology,
+    g_design_name        => g_design_name,
+    g_design_note        => g_design_note,
+    g_stamp_date         => g_stamp_date,
+    g_stamp_time         => g_stamp_time, 
+    g_revision_id        => g_revision_id, 
+    g_fw_version         => c_fw_version,
+    g_mm_clk_freq        => c_mm_clk_freq,
+    g_eth_clk_freq       => c_unb2b_board_eth_clk_freq_125M,
+    g_aux                => c_unb2b_board_aux,
+    g_factory_image      => g_factory_image,
+    g_protect_addr_range => g_protect_addr_range,
+    g_dp_clk_use_pll     => FALSE
+  )
+  PORT MAP (
+    -- Clock an reset signals
+    cs_sim                   => cs_sim,
+    xo_ethclk                => xo_ethclk,
+    xo_rst                   => xo_rst,
+    xo_rst_n                 => xo_rst_n,
+
+    mm_clk                   => mm_clk,
+    mm_rst                   => mm_rst,
+
+    dp_rst                   => dp_rst,
+    dp_clk                   => dp_clk,              -- Can be external 200MHz, or PLL generated
+    dp_pps                   => st_pps,
+    dp_rst_in                => st_rst,
+    dp_clk_in                => jesd204b_frame_clk,
+    
+    -- Toggle WDI
+    pout_wdi                 => pout_wdi,
+
+    -- MM buses
+    -- REMU
+    reg_remu_mosi            => reg_remu_mosi,
+    reg_remu_miso            => reg_remu_miso,
+
+    -- EPCS read
+    reg_dpmm_data_mosi       => reg_dpmm_data_mosi,
+    reg_dpmm_data_miso       => reg_dpmm_data_miso,
+    reg_dpmm_ctrl_mosi       => reg_dpmm_ctrl_mosi,
+    reg_dpmm_ctrl_miso       => reg_dpmm_ctrl_miso,
+
+    -- EPCS write
+    reg_mmdp_data_mosi       => reg_mmdp_data_mosi,
+    reg_mmdp_data_miso       => reg_mmdp_data_miso,
+    reg_mmdp_ctrl_mosi       => reg_mmdp_ctrl_mosi,
+    reg_mmdp_ctrl_miso       => reg_mmdp_ctrl_miso,
+
+    -- EPCS status/control
+    reg_epcs_mosi            => reg_epcs_mosi,
+    reg_epcs_miso            => reg_epcs_miso,
+
+    -- . Manual WDI override
+    reg_wdi_mosi             => reg_wdi_mosi,
+    reg_wdi_miso             => reg_wdi_miso,
+    
+    -- . System_info
+    reg_unb_system_info_mosi => reg_unb_system_info_mosi,
+    reg_unb_system_info_miso => reg_unb_system_info_miso, 
+    rom_unb_system_info_mosi => rom_unb_system_info_mosi,
+    rom_unb_system_info_miso => rom_unb_system_info_miso, 
+    
+    -- . UniBoard I2C sensors
+    reg_unb_sens_mosi        => reg_unb_sens_mosi,
+    reg_unb_sens_miso        => reg_unb_sens_miso,    
+    
+    -- . FPGA sensors
+    reg_fpga_temp_sens_mosi  => reg_fpga_temp_sens_mosi,
+    reg_fpga_temp_sens_miso  => reg_fpga_temp_sens_miso,
+    reg_fpga_voltage_sens_mosi  => reg_fpga_voltage_sens_mosi,
+    reg_fpga_voltage_sens_miso  => reg_fpga_voltage_sens_miso,
+
+    reg_unb_pmbus_mosi       => reg_unb_pmbus_mosi,
+    reg_unb_pmbus_miso       => reg_unb_pmbus_miso,
+
+    -- . PPSH
+    reg_ppsh_mosi            => reg_ppsh_mosi,
+    reg_ppsh_miso            => reg_ppsh_miso,
+    
+    -- eth1g
+    eth1g_mm_rst             => eth1g_mm_rst,
+    eth1g_tse_mosi           => eth1g_tse_mosi,
+    eth1g_tse_miso           => eth1g_tse_miso,
+    eth1g_reg_mosi           => eth1g_reg_mosi,
+    eth1g_reg_miso           => eth1g_reg_miso,
+    eth1g_reg_interrupt      => eth1g_reg_interrupt,
+    eth1g_ram_mosi           => eth1g_ram_mosi,
+    eth1g_ram_miso           => eth1g_ram_miso,
+        
+    -- FPGA pins
+    -- . General
+    CLK                      => jesd204b_frame_clk,
+    PPS                      => PPS,
+    WDI                      => WDI,
+    INTA                     => INTA,
+    INTB                     => INTB,
+    -- . Others
+    VERSION                  => VERSION,
+    ID                       => ID,
+    TESTIO                   => TESTIO,
+    -- . I2C Interface to Sensors
+    SENS_SC                  => SENS_SC,
+    SENS_SD                  => SENS_SD,
+    -- PM bus
+    PMBUS_SC                 => PMBUS_SC,
+    PMBUS_SD                 => PMBUS_SD,
+    PMBUS_ALERT              => PMBUS_ALERT,
+
+    -- . 1GbE Control Interface
+    ETH_clk                  => ETH_CLK,
+    ETH_SGIN                 => ETH_SGIN,
+    ETH_SGOUT                => ETH_SGOUT
+  );
+
+  -----------------------------------------------------------------------------
+  -- MM master
+  -----------------------------------------------------------------------------
+  u_mmm : ENTITY work.mmm_lofar2_unb2b_adc
+  GENERIC MAP (
+    g_sim         => g_sim,
+    g_sim_unb_nr  => g_sim_unb_nr,
+    g_sim_node_nr => g_sim_node_nr
+   )
+  PORT MAP(  
+    mm_rst                   => mm_rst,
+    mm_clk                   => mm_clk,       
+
+    -- PIOs
+    pout_wdi                 => pout_wdi,
+
+    -- Manual WDI override
+    reg_wdi_mosi             => reg_wdi_mosi,
+    reg_wdi_miso             => reg_wdi_miso,
+
+    -- system_info
+    reg_unb_system_info_mosi => reg_unb_system_info_mosi,
+    reg_unb_system_info_miso => reg_unb_system_info_miso,
+    rom_unb_system_info_mosi => rom_unb_system_info_mosi,
+    rom_unb_system_info_miso => rom_unb_system_info_miso, 
+
+    -- UniBoard I2C sensors
+    reg_unb_sens_mosi        => reg_unb_sens_mosi,
+    reg_unb_sens_miso        => reg_unb_sens_miso, 
+
+    reg_unb_pmbus_mosi       => reg_unb_pmbus_mosi,
+    reg_unb_pmbus_miso       => reg_unb_pmbus_miso,
+ 
+    -- FPGA sensors
+    reg_fpga_temp_sens_mosi  => reg_fpga_temp_sens_mosi,
+    reg_fpga_temp_sens_miso  => reg_fpga_temp_sens_miso,
+    reg_fpga_voltage_sens_mosi  => reg_fpga_voltage_sens_mosi,
+    reg_fpga_voltage_sens_miso  => reg_fpga_voltage_sens_miso,
+
+    -- PPSH
+    reg_ppsh_mosi            => reg_ppsh_mosi,
+    reg_ppsh_miso            => reg_ppsh_miso, 
+  
+    -- eth1g
+    eth1g_mm_rst             => eth1g_mm_rst,
+    eth1g_tse_mosi           => eth1g_tse_mosi,
+    eth1g_tse_miso           => eth1g_tse_miso,
+    eth1g_reg_mosi           => eth1g_reg_mosi,
+    eth1g_reg_miso           => eth1g_reg_miso,
+    eth1g_reg_interrupt      => eth1g_reg_interrupt,
+    eth1g_ram_mosi           => eth1g_ram_mosi,
+    eth1g_ram_miso           => eth1g_ram_miso,
+
+    -- EPCS read
+    reg_dpmm_data_mosi       => reg_dpmm_data_mosi,
+    reg_dpmm_data_miso       => reg_dpmm_data_miso,
+    reg_dpmm_ctrl_mosi       => reg_dpmm_ctrl_mosi,
+    reg_dpmm_ctrl_miso       => reg_dpmm_ctrl_miso,
+
+    -- EPCS write
+    reg_mmdp_data_mosi       => reg_mmdp_data_mosi,
+    reg_mmdp_data_miso       => reg_mmdp_data_miso,
+    reg_mmdp_ctrl_mosi       => reg_mmdp_ctrl_mosi,
+    reg_mmdp_ctrl_miso       => reg_mmdp_ctrl_miso,
+
+    -- EPCS status/control
+    reg_epcs_mosi            => reg_epcs_mosi,
+    reg_epcs_miso            => reg_epcs_miso,
+
+    -- Remote Update
+    reg_remu_mosi            => reg_remu_mosi,
+    reg_remu_miso            => reg_remu_miso,
+
+    --
+    ram_diag_data_buf_jesd_mosi => ram_diag_data_buf_jesd_mosi,
+    ram_diag_data_buf_jesd_miso => ram_diag_data_buf_jesd_miso,
+    reg_diag_data_buf_jesd_mosi => reg_diag_data_buf_jesd_mosi,
+    reg_diag_data_buf_jesd_miso => reg_diag_data_buf_jesd_miso,
+
+    jesd204b_mosi            => jesd204b_mosi,
+    jesd204b_miso            => jesd204b_miso
+  );
+
+  
+  -----------------------------------------------------------------------------
+  -- JESD204B IP (ADC Handler)
+  -----------------------------------------------------------------------------
+  
+  u_jesd204b: ENTITY tech_jesd204b_lib.tech_jesd204b 
+  GENERIC MAP(
+    g_sim                => g_sim,                
+    g_sim_level          => 1,          
+    g_nof_channels       => c_nof_streams_jesd204b    
+  )
+  PORT MAP(
+    jesd204b_refclk      => BCK_REF_CLK,   
+    jesd204b_sysref      => JESD204B_SYSREF,   
+    jesd204b_sync_n_arr  => JESD204B_SYNC,   
+  
+    rx_src_out_arr       => jesd204b_rx_src_out_arr,          
+    jesd204b_frame_clk   => jesd204b_frame_clk,          
+  
+    -- MM
+    mm_clk               => mm_clk,           
+    mm_rst               => mm_rst,           
+  
+    jesd204b_mosi        => jesd204b_mosi,         
+    jesd204b_miso        => jesd204b_miso,         
+  
+     -- Serial
+    serial_tx_arr        => open,
+    serial_rx_arr        => BCK_RX(c_nof_streams_jesd204b-1 downto 0)
+  );
+
+
+  gen_jesd_mon_in : FOR i IN 0 TO c_nof_streams_db-1 GENERATE
+    diag_data_buf_snk_in_arr(i).data(15 downto 0) <= jesd204b_rx_src_out_arr(i).data(15 downto 0);
+    diag_data_buf_snk_in_arr(i).valid <= jesd204b_rx_src_out_arr(i).valid;
+    diag_data_buf_snk_in_arr(i).sop   <= '0';
+    diag_data_buf_snk_in_arr(i).eop   <= '0';
+    diag_data_buf_snk_in_arr(i).err   <= (OTHERS=>'0');
+  END GENERATE;
+
+
+  -----------------------------------------------------------------------------
+  -- Diagnostic Data Buffer (Records 8192 raw ADC samples after the PPS)
+  -----------------------------------------------------------------------------
+
+  u_diag_data_buffer : ENTITY diag_lib.mms_diag_data_buffer
+  GENERIC MAP (
+    g_technology   => g_technology,
+    g_nof_streams  => c_nof_streams_db,
+    g_data_w       => 16,
+    g_buf_nof_data => 8192, --8192,
+    g_buf_use_sync => TRUE, -- when TRUE start filling the buffer at the in_sync, else after the last word was read
+    g_use_rx_seq   => FALSE
+  )
+  PORT MAP (
+    mm_rst            => mm_rst,
+    mm_clk            => mm_clk,
+    dp_rst            => st_rst,
+    dp_clk            => jesd204b_frame_clk,
+
+    ram_data_buf_mosi => ram_diag_data_buf_jesd_mosi,
+    ram_data_buf_miso => ram_diag_data_buf_jesd_miso,
+    reg_data_buf_mosi => reg_diag_data_buf_jesd_mosi,
+    reg_data_buf_miso => reg_diag_data_buf_jesd_miso,
+
+    in_sosi_arr       => diag_data_buf_snk_in_arr,
+    in_sync           => st_pps
+  );
+
+  -----------------------------------------------------------------------------
+  -- WG (Test Signal Generator)
+  -----------------------------------------------------------------------------
+
+  gen_wg : FOR I IN 0 TO c_nof_streams_input-1 GENERATE
+    u_sp : ENTITY diag_lib.mms_diag_wg_wideband
+    GENERIC MAP (
+      g_cross_clock_domain => TRUE,
+      g_buf_dir            => c_wg_buf_directory,
+
+      -- Wideband parameters
+      g_wideband_factor    => 1, 
+
+      -- Basic WG parameters, see diag_wg.vhd for their meaning
+      g_buf_dat_w          => c_wg_buf_dat_w,
+      g_buf_addr_w         => c_wg_buf_addr_w,
+      g_calc_support       => TRUE,
+      g_calc_gain_w        => 1,
+      g_calc_dat_w         => c_wg_buf_dat_w
+    )
+    PORT MAP (
+      -- Memory-mapped clock domain
+      mm_rst              => mm_rst,
+      mm_clk              => mm_clk,
+
+      reg_mosi            => reg_wg_mosi_arr(I),
+      reg_miso            => reg_wg_miso_arr(I),
+
+      buf_mosi            => ram_wg_mosi_arr(I),
+      buf_miso            => ram_wg_miso_arr(I),
+
+      -- Streaming clock domain
+      st_rst              => dp_rst,
+      st_clk              => jesd204b_frame_clk,
+      st_restart          => st_pps,
+
+      out_ovr             => wg_out_ovr(I downto I),
+      out_val             => wg_out_val(I downto I),
+      out_dat             => wg_out_data((I+1)*c_wg_buf_dat_w-1 downto I*c_wg_buf_dat_w),
+      out_sync            => wg_out_sync(I downto I)
+    );
+
+    wg_sosi_arr(I).err(0) <= wg_out_ovr(I);
+    wg_sosi_arr(I).valid <= wg_out_val(I);
+    wg_sosi_arr(I).data(c_wg_buf_dat_w-1 downto 0) <= wg_out_data((I+1)*c_wg_buf_dat_w-1 downto I*c_wg_buf_dat_w);
+    wg_sosi_arr(I).sync <= wg_out_sync(I);
+
+  END GENERATE;
+
+
+
+  -----------------------------------------------------------------------------
+  -- ADC/WG Mux (Input Select)
+  -----------------------------------------------------------------------------
+  
+  gen_mux : FOR I IN 0 TO c_nof_streams_input-1 GENERATE
+    p_sosi : PROCESS(jesd204b_rx_src_out_arr, wg_sosi_arr)
+    BEGIN
+      -- Valid is forced to '1' here for dp_shiftram.
+      nxt_mux_sosi_arr(I).valid <= '1';
+
+      -- Default use the ADUH data
+      nxt_mux_sosi_arr(I).data  <= jesd204b_rx_src_out_arr(I).data;
+      IF wg_sosi_arr(I).valid='1' THEN
+        -- Valid WG data overrules ADUH data
+        nxt_mux_sosi_arr(I).data <= wg_sosi_arr(I).data;
+      END IF;
+    END PROCESS;
+  END GENERATE;
+
+  p_reg_mux : PROCESS(st_rst, jesd204b_frame_clk)
+  BEGIN
+    IF st_rst='1' THEN
+      mux_sosi_arr  <= (OTHERS=>c_dp_sosi_rst);
+    ELSIF rising_edge(jesd204b_frame_clk) THEN
+      mux_sosi_arr  <= nxt_mux_sosi_arr;
+    END IF;
+  END PROCESS;
+
+
+  ---------------------------------------------------------------------------------------
+  -- BSN monitor (Block Checker)
+  ---------------------------------------------------------------------------------------
+  u_bsn_monitor : ENTITY dp_lib.mms_dp_bsn_monitor
+  GENERIC MAP (
+    g_nof_streams        => c_nof_streams_jesd204b,
+    g_sync_timeout       => c_bsn_sync_timeout,
+    g_bsn_w              => 51, --c_apertif_bsn_w,
+    g_log_first_bsn      => FALSE
+  )
+  PORT MAP (
+    -- Memory-mapped clock domain
+    mm_rst      => mm_rst,
+    mm_clk      => mm_clk,
+    reg_mosi    => reg_bsn_monitor_mosi,
+    reg_miso    => reg_bsn_monitor_miso,
+
+    -- Streaming clock domain
+    dp_rst      => dp_rst,
+    dp_clk      => dp_clk,
+    in_siso_arr => (OTHERS=>c_dp_siso_rdy),
+    in_sosi_arr => bsn_sosi_arr
+  );
+
+  -- only connect the channels actually used
+
+  gen_bsn_monitor_inputs : FOR I IN 0 TO c_nof_streams_input-1 GENERATE
+    bsn_sosi_arr(I) <= mux_sosi_arr(I);
+  END GENERATE;
+
+END str;
diff --git a/applications/lofar2/designs/lofar2_unb2b_adc/src/vhdl/lofar2_unb2b_adc_pkg.vhd b/applications/lofar2/designs/lofar2_unb2b_adc/src/vhdl/lofar2_unb2b_adc_pkg.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..fc8463eea473048d1e0e849e4cf13cc592863185
--- /dev/null
+++ b/applications/lofar2/designs/lofar2_unb2b_adc/src/vhdl/lofar2_unb2b_adc_pkg.vhd
@@ -0,0 +1,62 @@
+--------------------------------------------------------------------------------
+--
+-- Copyright (C) 2015
+-- 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/>.
+--
+--------------------------------------------------------------------------------
+
+LIBRARY IEEE, common_lib;
+USE IEEE.STD_LOGIC_1164.ALL;
+USE IEEE.numeric_std.ALL;
+USE common_lib.common_pkg.ALL;
+
+PACKAGE lofar2_unb2b_adc_pkg IS
+
+ -----------------------------------------------------------------------------
+  -- Revision control
+  -----------------------------------------------------------------------------
+
+  TYPE t_lofar2_unb2b_adc_config IS RECORD
+    nof_streams_jesd204b           : NATURAL;  
+    nof_streams_db                 : NATURAL;  
+    nof_streams_input              : NATURAL;  
+  END RECORD;
+
+  --                                                          nofjesd, nofdb, nofinput  
+  CONSTANT c_one_node         : t_lofar2_unb2b_adc_config := (     12,     2,        1 );
+  CONSTANT c_full             : t_lofar2_unb2b_adc_config := (     12,     2,       12 );
+
+  -- Function to select the revision configuration. 
+  FUNCTION func_sel_revision_rec(g_design_name : STRING) RETURN t_lofar2_unb2b_adc_config;
+
+
+END lofar2_unb2b_adc_pkg;
+
+
+PACKAGE BODY lofar2_unb2b_adc_pkg IS
+
+  FUNCTION func_sel_revision_rec(g_design_name : STRING) RETURN t_lofar2_unb2b_adc_config IS
+  BEGIN
+    IF    g_design_name = "lofar2_unb2b_adc_one_node"    THEN RETURN c_one_node;
+    ELSIF g_design_name = "lofar2_unb2b_adc_full"        THEN RETURN c_full;
+    ELSE  RETURN c_one_node;
+    END IF;
+  END;
+
+
+END lofar2_unb2b_adc_pkg;
+
diff --git a/applications/lofar2/designs/lofar2_unb2b_adc/src/vhdl/mmm_lofar2_unb2b_adc.vhd b/applications/lofar2/designs/lofar2_unb2b_adc/src/vhdl/mmm_lofar2_unb2b_adc.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..03e1e6bd65e9e5e3d2eba1e2c43ee68957a1797d
--- /dev/null
+++ b/applications/lofar2/designs/lofar2_unb2b_adc/src/vhdl/mmm_lofar2_unb2b_adc.vhd
@@ -0,0 +1,337 @@
+-------------------------------------------------------------------------------
+--
+-- Copyright (C) 2015
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+LIBRARY IEEE, common_lib, unb2b_board_lib, mm_lib;
+USE IEEE.STD_LOGIC_1164.ALL;
+USE IEEE.NUMERIC_STD.ALL;
+USE common_lib.common_pkg.ALL;
+USE common_lib.common_mem_pkg.ALL;
+USE unb2b_board_lib.unb2b_board_pkg.ALL;
+USE unb2b_board_lib.unb2b_board_peripherals_pkg.ALL;
+USE mm_lib.mm_file_pkg.ALL;
+USE mm_lib.mm_file_unb_pkg.ALL;
+USE work.qsys_lofar2_unb2b_adc_pkg.ALL;
+
+
+ENTITY mmm_lofar2_unb2b_adc IS
+  GENERIC (
+    g_sim         : BOOLEAN := FALSE; --FALSE: use QSYS; TRUE: use mm_file I/O
+    g_sim_unb_nr  : NATURAL := 0;
+    g_sim_node_nr : NATURAL := 0
+  );
+  PORT (
+    mm_rst                   : IN  STD_LOGIC;
+    mm_clk                   : IN  STD_LOGIC;
+
+    pout_wdi                 : OUT STD_LOGIC;
+                             
+    -- Manual WDI override
+    reg_wdi_mosi             : OUT t_mem_mosi;
+    reg_wdi_miso             : IN  t_mem_miso;
+                             
+    -- system_info
+    reg_unb_system_info_mosi : OUT t_mem_mosi;
+    reg_unb_system_info_miso : IN  t_mem_miso;
+    rom_unb_system_info_mosi : OUT t_mem_mosi;
+    rom_unb_system_info_miso : IN  t_mem_miso;
+                             
+    -- UniBoard I2C sensors
+    reg_unb_sens_mosi        : OUT t_mem_mosi; 
+    reg_unb_sens_miso        : IN  t_mem_miso; 
+                             
+    reg_fpga_temp_sens_mosi   : OUT t_mem_mosi;
+    reg_fpga_temp_sens_miso   : IN  t_mem_miso;
+    reg_fpga_voltage_sens_mosi: OUT t_mem_mosi;
+    reg_fpga_voltage_sens_miso: IN  t_mem_miso;
+
+    reg_unb_pmbus_mosi       : OUT t_mem_mosi;
+    reg_unb_pmbus_miso       : IN  t_mem_miso;
+
+    -- PPSH
+    reg_ppsh_mosi            : OUT t_mem_mosi; 
+    reg_ppsh_miso            : IN  t_mem_miso; 
+                             
+    -- eth1g
+    eth1g_mm_rst             : OUT STD_LOGIC;
+    eth1g_tse_mosi           : OUT t_mem_mosi;  
+    eth1g_tse_miso           : IN  t_mem_miso;  
+    eth1g_reg_mosi           : OUT t_mem_mosi;  
+    eth1g_reg_miso           : IN  t_mem_miso;  
+    eth1g_reg_interrupt      : IN  STD_LOGIC; 
+    eth1g_ram_mosi           : OUT t_mem_mosi;  
+    eth1g_ram_miso           : IN  t_mem_miso;
+
+    -- EPCS read
+    reg_dpmm_data_mosi       : OUT t_mem_mosi;
+    reg_dpmm_data_miso       : IN  t_mem_miso;
+    reg_dpmm_ctrl_mosi       : OUT t_mem_mosi;
+    reg_dpmm_ctrl_miso       : IN  t_mem_miso;
+
+    -- EPCS write
+    reg_mmdp_data_mosi       : OUT t_mem_mosi;
+    reg_mmdp_data_miso       : IN  t_mem_miso;
+    reg_mmdp_ctrl_mosi       : OUT t_mem_mosi;
+    reg_mmdp_ctrl_miso       : IN  t_mem_miso;
+
+    -- EPCS status/control
+    reg_epcs_mosi            : OUT t_mem_mosi;
+    reg_epcs_miso            : IN  t_mem_miso;
+
+    -- Remote Update
+    reg_remu_mosi            : OUT t_mem_mosi;
+    reg_remu_miso            : IN  t_mem_miso;
+
+    -- Jesd control
+    jesd204b_mosi            : OUT t_mem_mosi;
+    jesd204b_miso            : IN  t_mem_miso;
+
+    -- JESD databuffer
+    ram_diag_data_buf_jesd_mosi   : OUT t_mem_mosi;
+    ram_diag_data_buf_jesd_miso   : IN  t_mem_miso;
+    reg_diag_data_buf_jesd_mosi   : OUT t_mem_mosi;
+    reg_diag_data_buf_jesd_miso   : IN  t_mem_miso
+  );
+END mmm_lofar2_unb2b_adc;
+
+ARCHITECTURE str OF mmm_lofar2_unb2b_adc IS
+
+  CONSTANT c_sim_node_nr   : NATURAL := g_sim_node_nr;
+  CONSTANT c_sim_node_type : STRING(1 TO 2):= "FN";
+
+  SIGNAL i_reset_n         : STD_LOGIC;
+
+BEGIN
+
+  ----------------------------------------------------------------------------
+  -- MM <-> file I/O for simulation. The files are created in $UPE/sim.
+  ----------------------------------------------------------------------------
+  gen_mm_file_io : IF g_sim = TRUE GENERATE
+
+    u_mm_file_reg_unb_system_info : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "PIO_SYSTEM_INFO")
+                                               PORT MAP(mm_rst, mm_clk, reg_unb_system_info_mosi, reg_unb_system_info_miso );
+
+    u_mm_file_rom_unb_system_info : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "ROM_SYSTEM_INFO")
+                                               PORT MAP(mm_rst, mm_clk, rom_unb_system_info_mosi, rom_unb_system_info_miso );
+
+    u_mm_file_reg_wdi             : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_WDI")
+                                               PORT MAP(mm_rst, mm_clk, reg_wdi_mosi, reg_wdi_miso );
+
+    u_mm_file_reg_unb_sens        : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_UNB_SENS")
+                                               PORT MAP(mm_rst, mm_clk, reg_unb_sens_mosi, reg_unb_sens_miso );
+
+    u_mm_file_reg_unb_pmbus       : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_UNB_PMBUS")
+                                               PORT MAP(mm_rst, mm_clk, reg_unb_pmbus_mosi, reg_unb_pmbus_miso );
+
+    u_mm_file_reg_fpga_temp_sens  : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_FPGA_TEMP_SENS")
+                                               PORT MAP(mm_rst, mm_clk, reg_fpga_temp_sens_mosi, reg_fpga_temp_sens_miso );
+
+    u_mm_file_reg_fpga_voltage_sens :  mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "REG_FPGA_VOLTAGE_SENS")
+                                               PORT MAP(mm_rst, mm_clk, reg_fpga_voltage_sens_mosi, reg_fpga_voltage_sens_miso );
+
+    u_mm_file_reg_ppsh            : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "PIO_PPS")
+                                               PORT MAP(mm_rst, mm_clk, reg_ppsh_mosi, reg_ppsh_miso );
+
+    -- Note: the eth1g RAM and TSE buses are only required by unb_osy on the NIOS as they provide the ethernet<->MM gateway.
+    u_mm_file_reg_eth             : mm_file GENERIC MAP(mmf_unb_file_prefix(g_sim_unb_nr, c_sim_node_nr, c_sim_node_type) & "AVS_ETH_0_MMS_REG")
+                                               PORT MAP(mm_rst, mm_clk, eth1g_reg_mosi, eth1g_reg_miso );
+
+    ----------------------------------------------------------------------------
+    -- Procedure that polls a sim control file that can be used to e.g. get
+    -- the simulation time in ns
+    ----------------------------------------------------------------------------
+    mmf_poll_sim_ctrl_file(mm_clk, c_mmf_unb_file_path & "sim.ctrl", c_mmf_unb_file_path & "sim.stat");
+
+  END GENERATE;
+
+  i_reset_n <= NOT mm_rst;
+  ----------------------------------------------------------------------------
+  -- QSYS for synthesis
+  ----------------------------------------------------------------------------
+  gen_qsys : IF g_sim = FALSE GENERATE
+    u_qsys : qsys_lofar2_unb2b_adc
+    PORT MAP (
+
+      clk_clk                                   => mm_clk,
+      reset_reset_n                             => i_reset_n,
+
+      -- the_pio_wdi: toggled by NIOS II application unb_osy. Connects to WDI via ctrl_unb2b_board.
+      pio_wdi_external_connection_export        => pout_wdi,
+
+      avs_eth_0_reset_export                    => eth1g_mm_rst,
+      avs_eth_0_clk_export                      => OPEN,
+      avs_eth_0_tse_address_export              => eth1g_tse_mosi.address(c_unb2b_board_peripherals_mm_reg_default.reg_tse_adr_w-1 DOWNTO 0),
+      avs_eth_0_tse_write_export                => eth1g_tse_mosi.wr,
+      avs_eth_0_tse_read_export                 => eth1g_tse_mosi.rd,
+      avs_eth_0_tse_writedata_export            => eth1g_tse_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      avs_eth_0_tse_readdata_export             => eth1g_tse_miso.rddata(c_word_w-1 DOWNTO 0),
+      avs_eth_0_tse_waitrequest_export          => eth1g_tse_miso.waitrequest,
+      avs_eth_0_reg_address_export              => eth1g_reg_mosi.address(c_unb2b_board_peripherals_mm_reg_default.reg_eth_adr_w-1 DOWNTO 0),
+      avs_eth_0_reg_write_export                => eth1g_reg_mosi.wr,
+      avs_eth_0_reg_read_export                 => eth1g_reg_mosi.rd,
+      avs_eth_0_reg_writedata_export            => eth1g_reg_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      avs_eth_0_reg_readdata_export             => eth1g_reg_miso.rddata(c_word_w-1 DOWNTO 0),
+      avs_eth_0_ram_address_export              => eth1g_ram_mosi.address(c_unb2b_board_peripherals_mm_reg_default.ram_eth_adr_w-1 DOWNTO 0),
+      avs_eth_0_ram_write_export                => eth1g_ram_mosi.wr,
+      avs_eth_0_ram_read_export                 => eth1g_ram_mosi.rd,
+      avs_eth_0_ram_writedata_export            => eth1g_ram_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      avs_eth_0_ram_readdata_export             => eth1g_ram_miso.rddata(c_word_w-1 DOWNTO 0),
+      avs_eth_0_irq_export                      => eth1g_reg_interrupt,
+
+      reg_unb_sens_reset_export                 => OPEN,
+      reg_unb_sens_clk_export                   => OPEN,
+      reg_unb_sens_address_export               => reg_unb_sens_mosi.address(c_unb2b_board_peripherals_mm_reg_default.reg_unb_sens_adr_w-1 DOWNTO 0),
+      reg_unb_sens_write_export                 => reg_unb_sens_mosi.wr,
+      reg_unb_sens_writedata_export             => reg_unb_sens_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      reg_unb_sens_read_export                  => reg_unb_sens_mosi.rd,
+      reg_unb_sens_readdata_export              => reg_unb_sens_miso.rddata(c_word_w-1 DOWNTO 0),
+
+      reg_unb_pmbus_reset_export                => OPEN,
+      reg_unb_pmbus_clk_export                  => OPEN,
+      reg_unb_pmbus_address_export              => reg_unb_pmbus_mosi.address(c_unb2b_board_peripherals_mm_reg_default.reg_unb_pmbus_adr_w-1 DOWNTO 0),
+      reg_unb_pmbus_write_export                => reg_unb_pmbus_mosi.wr,
+      reg_unb_pmbus_writedata_export            => reg_unb_pmbus_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      reg_unb_pmbus_read_export                 => reg_unb_pmbus_mosi.rd,
+      reg_unb_pmbus_readdata_export             => reg_unb_pmbus_miso.rddata(c_word_w-1 DOWNTO 0),
+
+      reg_fpga_temp_sens_reset_export           => OPEN,
+      reg_fpga_temp_sens_clk_export             => OPEN,
+      reg_fpga_temp_sens_address_export         => reg_fpga_temp_sens_mosi.address(c_unb2b_board_peripherals_mm_reg_default.reg_fpga_temp_sens_adr_w-1 DOWNTO 0),
+      reg_fpga_temp_sens_write_export           => reg_fpga_temp_sens_mosi.wr,
+      reg_fpga_temp_sens_writedata_export       => reg_fpga_temp_sens_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      reg_fpga_temp_sens_read_export            => reg_fpga_temp_sens_mosi.rd,
+      reg_fpga_temp_sens_readdata_export        => reg_fpga_temp_sens_miso.rddata(c_word_w-1 DOWNTO 0),
+
+      reg_fpga_voltage_sens_reset_export        => OPEN,
+      reg_fpga_voltage_sens_clk_export          => OPEN,
+      reg_fpga_voltage_sens_address_export      => reg_fpga_voltage_sens_mosi.address(c_unb2b_board_peripherals_mm_reg_default.reg_fpga_voltage_sens_adr_w-1 DOWNTO 0),
+      reg_fpga_voltage_sens_write_export        => reg_fpga_voltage_sens_mosi.wr,
+      reg_fpga_voltage_sens_writedata_export    => reg_fpga_voltage_sens_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      reg_fpga_voltage_sens_read_export         => reg_fpga_voltage_sens_mosi.rd,
+      reg_fpga_voltage_sens_readdata_export     => reg_fpga_voltage_sens_miso.rddata(c_word_w-1 DOWNTO 0),
+
+      rom_system_info_reset_export              => OPEN,
+      rom_system_info_clk_export                => OPEN,
+      rom_system_info_address_export            => rom_unb_system_info_mosi.address(c_unb2b_board_peripherals_mm_reg_default.rom_unb_system_info_adr_w-1 DOWNTO 0), 
+      rom_system_info_write_export              => rom_unb_system_info_mosi.wr,
+      rom_system_info_writedata_export          => rom_unb_system_info_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      rom_system_info_read_export               => rom_unb_system_info_mosi.rd,
+      rom_system_info_readdata_export           => rom_unb_system_info_miso.rddata(c_word_w-1 DOWNTO 0),
+
+      pio_system_info_reset_export              => OPEN,
+      pio_system_info_clk_export                => OPEN,
+      pio_system_info_address_export            => reg_unb_system_info_mosi.address(c_unb2b_board_peripherals_mm_reg_default.reg_unb_system_info_adr_w-1 DOWNTO 0), 
+      pio_system_info_write_export              => reg_unb_system_info_mosi.wr,
+      pio_system_info_writedata_export          => reg_unb_system_info_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      pio_system_info_read_export               => reg_unb_system_info_mosi.rd,
+      pio_system_info_readdata_export           => reg_unb_system_info_miso.rddata(c_word_w-1 DOWNTO 0),
+
+      pio_pps_reset_export                      => OPEN,
+      pio_pps_clk_export                        => OPEN,
+      pio_pps_address_export                    => reg_ppsh_mosi.address(c_unb2b_board_peripherals_mm_reg_default.reg_ppsh_adr_w-1 DOWNTO 0),
+      pio_pps_write_export                      => reg_ppsh_mosi.wr,
+      pio_pps_writedata_export                  => reg_ppsh_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      pio_pps_read_export                       => reg_ppsh_mosi.rd,
+      pio_pps_readdata_export                   => reg_ppsh_miso.rddata(c_word_w-1 DOWNTO 0),
+
+      reg_wdi_reset_export                      => OPEN,
+      reg_wdi_clk_export                        => OPEN,
+      reg_wdi_address_export                    => reg_wdi_mosi.address(0 DOWNTO 0),
+      reg_wdi_write_export                      => reg_wdi_mosi.wr,
+      reg_wdi_writedata_export                  => reg_wdi_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      reg_wdi_read_export                       => reg_wdi_mosi.rd,
+      reg_wdi_readdata_export                   => reg_wdi_miso.rddata(c_word_w-1 DOWNTO 0),
+
+      reg_remu_reset_export                     => OPEN,
+      reg_remu_clk_export                       => OPEN,
+      reg_remu_address_export                   => reg_remu_mosi.address(c_unb2b_board_peripherals_mm_reg_default.reg_remu_adr_w-1 DOWNTO 0),
+      reg_remu_write_export                     => reg_remu_mosi.wr,
+      reg_remu_writedata_export                 => reg_remu_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      reg_remu_read_export                      => reg_remu_mosi.rd,
+      reg_remu_readdata_export                  => reg_remu_miso.rddata(c_word_w-1 DOWNTO 0),
+
+      jesd204b_reset_export                     => OPEN,
+      jesd204b_clk_export                       => OPEN,
+      jesd204b_address_export                   => jesd204b_mosi.address(11 DOWNTO 0),
+      jesd204b_write_export                     => jesd204b_mosi.wr,
+      jesd204b_writedata_export                 => jesd204b_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      jesd204b_read_export                      => jesd204b_mosi.rd,
+      jesd204b_readdata_export                  => jesd204b_miso.rddata(c_word_w-1 DOWNTO 0),
+
+      reg_epcs_reset_export                     => OPEN,
+      reg_epcs_clk_export                       => OPEN,
+      reg_epcs_address_export                   => reg_epcs_mosi.address(c_unb2b_board_peripherals_mm_reg_default.reg_epcs_adr_w-1 DOWNTO 0),
+      reg_epcs_write_export                     => reg_epcs_mosi.wr,
+      reg_epcs_writedata_export                 => reg_epcs_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      reg_epcs_read_export                      => reg_epcs_mosi.rd,
+      reg_epcs_readdata_export                  => reg_epcs_miso.rddata(c_word_w-1 DOWNTO 0),
+
+      reg_dpmm_ctrl_reset_export                => OPEN,
+      reg_dpmm_ctrl_clk_export                  => OPEN,
+      reg_dpmm_ctrl_address_export              => reg_dpmm_ctrl_mosi.address(0 DOWNTO 0),
+      reg_dpmm_ctrl_write_export                => reg_dpmm_ctrl_mosi.wr,
+      reg_dpmm_ctrl_writedata_export            => reg_dpmm_ctrl_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      reg_dpmm_ctrl_read_export                 => reg_dpmm_ctrl_mosi.rd,
+      reg_dpmm_ctrl_readdata_export             => reg_dpmm_ctrl_miso.rddata(c_word_w-1 DOWNTO 0),
+
+      reg_mmdp_data_reset_export                => OPEN,
+      reg_mmdp_data_clk_export                  => OPEN,
+      reg_mmdp_data_address_export              => reg_mmdp_data_mosi.address(0 DOWNTO 0),
+      reg_mmdp_data_write_export                => reg_mmdp_data_mosi.wr,
+      reg_mmdp_data_writedata_export            => reg_mmdp_data_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      reg_mmdp_data_read_export                 => reg_mmdp_data_mosi.rd,
+      reg_mmdp_data_readdata_export             => reg_mmdp_data_miso.rddata(c_word_w-1 DOWNTO 0),
+
+      reg_dpmm_data_reset_export                => OPEN,
+      reg_dpmm_data_clk_export                  => OPEN,
+      reg_dpmm_data_address_export              => reg_dpmm_data_mosi.address(0 DOWNTO 0),
+      reg_dpmm_data_read_export                 => reg_dpmm_data_mosi.rd,
+      reg_dpmm_data_readdata_export             => reg_dpmm_data_miso.rddata(c_word_w-1 DOWNTO 0),
+      reg_dpmm_data_write_export                => reg_dpmm_data_mosi.wr,
+      reg_dpmm_data_writedata_export            => reg_dpmm_data_mosi.wrdata(c_word_w-1 DOWNTO 0),
+
+      reg_mmdp_ctrl_reset_export                => OPEN,
+      reg_mmdp_ctrl_clk_export                  => OPEN,
+      reg_mmdp_ctrl_address_export              => reg_mmdp_ctrl_mosi.address(0 DOWNTO 0),
+      reg_mmdp_ctrl_read_export                 => reg_mmdp_ctrl_mosi.rd,
+      reg_mmdp_ctrl_readdata_export             => reg_mmdp_ctrl_miso.rddata(c_word_w-1 DOWNTO 0),
+      reg_mmdp_ctrl_write_export                => reg_mmdp_ctrl_mosi.wr,
+      reg_mmdp_ctrl_writedata_export            => reg_mmdp_ctrl_mosi.wrdata(c_word_w-1 DOWNTO 0),
+
+
+      ram_diag_data_buf_jesd_clk_export         => OPEN,
+      ram_diag_data_buf_jesd_reset_export       => OPEN,
+      ram_diag_data_buf_jesd_address_export     => ram_diag_data_buf_jesd_mosi.address(17-1 DOWNTO 0),
+      ram_diag_data_buf_jesd_write_export       => ram_diag_data_buf_jesd_mosi.wr,
+      ram_diag_data_buf_jesd_writedata_export   => ram_diag_data_buf_jesd_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      ram_diag_data_buf_jesd_read_export        => ram_diag_data_buf_jesd_mosi.rd,
+      ram_diag_data_buf_jesd_readdata_export    => ram_diag_data_buf_jesd_miso.rddata(c_word_w-1 DOWNTO 0),
+
+      reg_diag_data_buf_jesd_reset_export       => OPEN,
+      reg_diag_data_buf_jesd_clk_export         => OPEN,
+      reg_diag_data_buf_jesd_address_export     => reg_diag_data_buf_jesd_mosi.address(12-1 DOWNTO 0),
+      reg_diag_data_buf_jesd_write_export       => reg_diag_data_buf_jesd_mosi.wr,
+      reg_diag_data_buf_jesd_writedata_export   => reg_diag_data_buf_jesd_mosi.wrdata(c_word_w-1 DOWNTO 0),
+      reg_diag_data_buf_jesd_read_export        => reg_diag_data_buf_jesd_mosi.rd,
+      reg_diag_data_buf_jesd_readdata_export    => reg_diag_data_buf_jesd_miso.rddata(c_word_w-1 DOWNTO 0)
+
+    );
+  END GENERATE;
+END str;
diff --git a/applications/lofar2/designs/lofar2_unb2b_adc/src/vhdl/qsys_lofar2_unb2b_adc_pkg.vhd b/applications/lofar2/designs/lofar2_unb2b_adc/src/vhdl/qsys_lofar2_unb2b_adc_pkg.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..35aec5cc67d11350b30d0534a25038c460e8e217
--- /dev/null
+++ b/applications/lofar2/designs/lofar2_unb2b_adc/src/vhdl/qsys_lofar2_unb2b_adc_pkg.vhd
@@ -0,0 +1,179 @@
+-------------------------------------------------------------------------------
+--
+-- Copyright (C) 2015
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+LIBRARY IEEE;
+USE IEEE.STD_LOGIC_1164.ALL;
+
+PACKAGE qsys_lofar2_unb2b_adc_pkg IS
+
+  -----------------------------------------------------------------------------
+  -- this component declaration is copy-pasted from Quartus QSYS builder generated file:
+  -- $RADIOHDL_WORK/build/unb2b/quartus/unb2b_test_ddr/qsys_unb2b_test/sim/qsys_unb2b_test.vhd
+  -----------------------------------------------------------------------------
+  
+    component qsys_lofar2_unb2b_adc is
+        port (
+            avs_eth_0_clk_export                                         : out std_logic;                                        -- export
+            avs_eth_0_irq_export                                         : in  std_logic                     := 'X';             -- export
+            avs_eth_0_ram_address_export                                 : out std_logic_vector(9 downto 0);                     -- export
+            avs_eth_0_ram_read_export                                    : out std_logic;                                        -- export
+            avs_eth_0_ram_readdata_export                                : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            avs_eth_0_ram_write_export                                   : out std_logic;                                        -- export
+            avs_eth_0_ram_writedata_export                               : out std_logic_vector(31 downto 0);                    -- export
+            avs_eth_0_reg_address_export                                 : out std_logic_vector(3 downto 0);                     -- export
+            avs_eth_0_reg_read_export                                    : out std_logic;                                        -- export
+            avs_eth_0_reg_readdata_export                                : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            avs_eth_0_reg_write_export                                   : out std_logic;                                        -- export
+            avs_eth_0_reg_writedata_export                               : out std_logic_vector(31 downto 0);                    -- export
+            avs_eth_0_reset_export                                       : out std_logic;                                        -- export
+            avs_eth_0_tse_address_export                                 : out std_logic_vector(9 downto 0);                     -- export
+            avs_eth_0_tse_read_export                                    : out std_logic;                                        -- export
+            avs_eth_0_tse_readdata_export                                : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            avs_eth_0_tse_waitrequest_export                             : in  std_logic                     := 'X';             -- export
+            avs_eth_0_tse_write_export                                   : out std_logic;                                        -- export
+            avs_eth_0_tse_writedata_export                               : out std_logic_vector(31 downto 0);                    -- export
+            clk_clk                                                      : in  std_logic                     := 'X';             -- clk
+            jesd204b_address_export                                       : out std_logic_vector(11 downto 0);                     -- export
+            jesd204b_clk_export                                           : out std_logic;                                        -- export
+            jesd204b_read_export                                          : out std_logic;                                        -- export
+            jesd204b_readdata_export                                      : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            jesd204b_reset_export                                         : out std_logic;                                        -- export
+            jesd204b_write_export                                         : out std_logic;                                        -- export
+            jesd204b_writedata_export                                     : out std_logic_vector(31 downto 0);                    -- export
+            pio_pps_address_export                                       : out std_logic_vector(0 downto 0);                     -- export
+            pio_pps_clk_export                                           : out std_logic;                                        -- export
+            pio_pps_read_export                                          : out std_logic;                                        -- export
+            pio_pps_readdata_export                                      : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            pio_pps_reset_export                                         : out std_logic;                                        -- export
+            pio_pps_write_export                                         : out std_logic;                                        -- export
+            pio_pps_writedata_export                                     : out std_logic_vector(31 downto 0);                    -- export
+            pio_system_info_address_export                               : out std_logic_vector(4 downto 0);                     -- export
+            pio_system_info_clk_export                                   : out std_logic;                                        -- export
+            pio_system_info_read_export                                  : out std_logic;                                        -- export
+            pio_system_info_readdata_export                              : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            pio_system_info_reset_export                                 : out std_logic;                                        -- export
+            pio_system_info_write_export                                 : out std_logic;                                        -- export
+            pio_system_info_writedata_export                             : out std_logic_vector(31 downto 0);                    -- export
+            pio_wdi_external_connection_export                           : out std_logic;                                        -- export
+            reg_dpmm_ctrl_address_export                                 : out std_logic_vector(0 downto 0);                     -- export
+            reg_dpmm_ctrl_clk_export                                     : out std_logic;                                        -- export
+            reg_dpmm_ctrl_read_export                                    : out std_logic;                                        -- export
+            reg_dpmm_ctrl_readdata_export                                : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            reg_dpmm_ctrl_reset_export                                   : out std_logic;                                        -- export
+            reg_dpmm_ctrl_write_export                                   : out std_logic;                                        -- export
+            reg_dpmm_ctrl_writedata_export                               : out std_logic_vector(31 downto 0);                    -- export
+            reg_dpmm_data_address_export                                 : out std_logic_vector(0 downto 0);                     -- export
+            reg_dpmm_data_clk_export                                     : out std_logic;                                        -- export
+            reg_dpmm_data_read_export                                    : out std_logic;                                        -- export
+            reg_dpmm_data_readdata_export                                : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            reg_dpmm_data_reset_export                                   : out std_logic;                                        -- export
+            reg_dpmm_data_write_export                                   : out std_logic;                                        -- export
+            reg_dpmm_data_writedata_export                               : out std_logic_vector(31 downto 0);                    -- export
+            reg_epcs_address_export                                      : out std_logic_vector(2 downto 0);                     -- export
+            reg_epcs_clk_export                                          : out std_logic;                                        -- export
+            reg_epcs_read_export                                         : out std_logic;                                        -- export
+            reg_epcs_readdata_export                                     : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            reg_epcs_reset_export                                        : out std_logic;                                        -- export
+            reg_epcs_write_export                                        : out std_logic;                                        -- export
+            reg_epcs_writedata_export                                    : out std_logic_vector(31 downto 0);                    -- export
+            reg_fpga_temp_sens_address_export                            : out std_logic_vector(2 downto 0);                     -- export
+            reg_fpga_temp_sens_clk_export                                : out std_logic;                                        -- export
+            reg_fpga_temp_sens_read_export                               : out std_logic;                                        -- export
+            reg_fpga_temp_sens_readdata_export                           : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            reg_fpga_temp_sens_reset_export                              : out std_logic;                                        -- export
+            reg_fpga_temp_sens_write_export                              : out std_logic;                                        -- export
+            reg_fpga_temp_sens_writedata_export                          : out std_logic_vector(31 downto 0);                    -- export
+            reg_fpga_voltage_sens_address_export                         : out std_logic_vector(3 downto 0);                     -- export
+            reg_fpga_voltage_sens_clk_export                             : out std_logic;                                        -- export
+            reg_fpga_voltage_sens_read_export                            : out std_logic;                                        -- export
+            reg_fpga_voltage_sens_readdata_export                        : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            reg_fpga_voltage_sens_reset_export                           : out std_logic;                                        -- export
+            reg_fpga_voltage_sens_write_export                           : out std_logic;                                        -- export
+            reg_fpga_voltage_sens_writedata_export                       : out std_logic_vector(31 downto 0);                    -- export
+            reg_mmdp_ctrl_address_export                                 : out std_logic_vector(0 downto 0);                     -- export
+            reg_mmdp_ctrl_clk_export                                     : out std_logic;                                        -- export
+            reg_mmdp_ctrl_read_export                                    : out std_logic;                                        -- export
+            reg_mmdp_ctrl_readdata_export                                : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            reg_mmdp_ctrl_reset_export                                   : out std_logic;                                        -- export
+            reg_mmdp_ctrl_write_export                                   : out std_logic;                                        -- export
+            reg_mmdp_ctrl_writedata_export                               : out std_logic_vector(31 downto 0);                    -- export
+            reg_mmdp_data_address_export                                 : out std_logic_vector(0 downto 0);                     -- export
+            reg_mmdp_data_clk_export                                     : out std_logic;                                        -- export
+            reg_mmdp_data_read_export                                    : out std_logic;                                        -- export
+            reg_mmdp_data_readdata_export                                : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            reg_mmdp_data_reset_export                                   : out std_logic;                                        -- export
+            reg_mmdp_data_write_export                                   : out std_logic;                                        -- export
+            reg_mmdp_data_writedata_export                               : out std_logic_vector(31 downto 0);                    -- export
+            reg_remu_address_export                                      : out std_logic_vector(2 downto 0);                     -- export
+            reg_remu_clk_export                                          : out std_logic;                                        -- export
+            reg_remu_read_export                                         : out std_logic;                                        -- export
+            reg_remu_readdata_export                                     : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            reg_remu_reset_export                                        : out std_logic;                                        -- export
+            reg_remu_write_export                                        : out std_logic;                                        -- export
+            reg_remu_writedata_export                                    : out std_logic_vector(31 downto 0);                    -- export
+            reg_unb_pmbus_address_export                                 : out std_logic_vector(5 downto 0);                     -- export
+            reg_unb_pmbus_clk_export                                     : out std_logic;                                        -- export
+            reg_unb_pmbus_read_export                                    : out std_logic;                                        -- export
+            reg_unb_pmbus_readdata_export                                : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            reg_unb_pmbus_reset_export                                   : out std_logic;                                        -- export
+            reg_unb_pmbus_write_export                                   : out std_logic;                                        -- export
+            reg_unb_pmbus_writedata_export                               : out std_logic_vector(31 downto 0);                    -- export
+            reg_unb_sens_address_export                                  : out std_logic_vector(5 downto 0);                     -- export
+            reg_unb_sens_clk_export                                      : out std_logic;                                        -- export
+            reg_unb_sens_read_export                                     : out std_logic;                                        -- export
+            reg_unb_sens_readdata_export                                 : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            reg_unb_sens_reset_export                                    : out std_logic;                                        -- export
+            reg_unb_sens_write_export                                    : out std_logic;                                        -- export
+            reg_unb_sens_writedata_export                                : out std_logic_vector(31 downto 0);                    -- export
+            reg_wdi_address_export                                       : out std_logic_vector(0 downto 0);                     -- export
+            reg_wdi_clk_export                                           : out std_logic;                                        -- export
+            reg_wdi_read_export                                          : out std_logic;                                        -- export
+            reg_wdi_readdata_export                                      : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            reg_wdi_reset_export                                         : out std_logic;                                        -- export
+            reg_wdi_write_export                                         : out std_logic;                                        -- export
+            reg_wdi_writedata_export                                     : out std_logic_vector(31 downto 0);                    -- export
+            reset_reset_n                                                : in  std_logic                     := 'X';             -- reset_n
+            rom_system_info_address_export                               : out std_logic_vector(9 downto 0);                     -- export
+            rom_system_info_clk_export                                   : out std_logic;                                        -- export
+            rom_system_info_read_export                                  : out std_logic;                                        -- export
+            rom_system_info_readdata_export                              : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            rom_system_info_reset_export                                 : out std_logic;                                        -- export
+            rom_system_info_write_export                                 : out std_logic;                                        -- export
+            rom_system_info_writedata_export                             : out std_logic_vector(31 downto 0);                     -- export
+            ram_diag_data_buf_jesd_address_export                        : out std_logic_vector(16 downto 0);                    -- export
+            ram_diag_data_buf_jesd_clk_export                            : out std_logic;                                        -- export
+            ram_diag_data_buf_jesd_read_export                           : out std_logic;                                        -- export
+            ram_diag_data_buf_jesd_readdata_export                       : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            ram_diag_data_buf_jesd_reset_export                          : out std_logic;                                        -- export
+            ram_diag_data_buf_jesd_write_export                          : out std_logic;                                        -- export
+            ram_diag_data_buf_jesd_writedata_export                      : out std_logic_vector(31 downto 0);                    -- export
+            reg_diag_data_buf_jesd_address_export                        : out std_logic_vector(11 downto 0);                     -- export
+            reg_diag_data_buf_jesd_clk_export                            : out std_logic;                                        -- export
+            reg_diag_data_buf_jesd_read_export                           : out std_logic;                                        -- export
+            reg_diag_data_buf_jesd_readdata_export                       : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+            reg_diag_data_buf_jesd_reset_export                          : out std_logic;                                        -- export
+            reg_diag_data_buf_jesd_write_export                          : out std_logic;                                        -- export
+            reg_diag_data_buf_jesd_writedata_export                      : out std_logic_vector(31 downto 0)                    -- export
+        );
+    end component qsys_lofar2_unb2b_adc;
+
+END qsys_lofar2_unb2b_adc_pkg;
+
diff --git a/applications/lofar2/designs/lofar2_unb2b_adc/tb/vhdl/tb_lofar2_unb2b_adc.vhd b/applications/lofar2/designs/lofar2_unb2b_adc/tb/vhdl/tb_lofar2_unb2b_adc.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..566beaf9a88a8c014e5a138be5d3e6e8077ec04d
--- /dev/null
+++ b/applications/lofar2/designs/lofar2_unb2b_adc/tb/vhdl/tb_lofar2_unb2b_adc.vhd
@@ -0,0 +1,169 @@
+-------------------------------------------------------------------------------
+--
+-- Copyright (C) 2018
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+-- Author: Jonathan Hargreaves
+-- Purpose: Tb to show that lofar2_unb2b_adc can simulate
+-- Description:
+--   Must use c_sim = TRUE to speed up simulation
+--   This is a compile-only test bench
+-- Usage:
+--   Load sim    # check that design can load in vsim
+--   > as 10     # check that the hierarchy for g_design_name is complete
+--   > run -a    # check that design can simulate some us without error
+
+LIBRARY IEEE, common_lib, unb2b_board_lib, i2c_lib;
+USE IEEE.std_logic_1164.ALL;
+USE IEEE.numeric_std.ALL;
+USE common_lib.common_pkg.ALL;
+USE unb2b_board_lib.unb2b_board_pkg.ALL;
+USE common_lib.tb_common_pkg.ALL;
+
+ENTITY tb_lofar2_unb2b_adc IS
+END tb_lofar2_unb2b_adc;
+
+ARCHITECTURE tb OF tb_lofar2_unb2b_adc IS
+
+  CONSTANT c_sim             : BOOLEAN := TRUE;
+  CONSTANT c_unb_nr          : NATURAL := 0; -- UniBoard 0
+  CONSTANT c_node_nr         : NATURAL := 0; -- Back node 3
+  CONSTANT c_id              : STD_LOGIC_VECTOR(7 DOWNTO 0) := "00000000";
+  CONSTANT c_version         : STD_LOGIC_VECTOR(1 DOWNTO 0) := "00";
+  CONSTANT c_fw_version      : t_unb2b_board_fw_version := (1, 0);
+
+  CONSTANT c_eth_clk_period  : TIME := 8 ns;  -- 125 MHz XO on UniBoard
+  CONSTANT c_ext_clk_period  : TIME := 5 ns;
+  CONSTANT c_bck_ref_clk_period  : TIME := 5 ns;
+  CONSTANT c_pps_period      : NATURAL := 1000;
+
+  -- Tb
+  SIGNAL tb_end              : STD_LOGIC := '0';
+  SIGNAL sim_done            : STD_LOGIC := '0';
+
+  -- DUT
+  SIGNAL ext_clk             : STD_LOGIC := '0';
+  SIGNAL pps                 : STD_LOGIC := '0';
+  SIGNAL pps_rst             : STD_LOGIC := '0';
+
+  SIGNAL WDI                 : STD_LOGIC;
+  SIGNAL INTA                : STD_LOGIC;
+  SIGNAL INTB                : STD_LOGIC;
+
+  SIGNAL eth_clk             : STD_LOGIC := '0';
+  SIGNAL eth_txp             : STD_LOGIC_VECTOR(c_unb2b_board_nof_eth-1 downto 0);
+  SIGNAL eth_rxp             : STD_LOGIC_VECTOR(c_unb2b_board_nof_eth-1 downto 0);
+
+  SIGNAL sens_scl            : STD_LOGIC;
+  SIGNAL sens_sda            : STD_LOGIC;
+  SIGNAL pmbus_scl           : STD_LOGIC;
+  SIGNAL pmbus_sda           : STD_LOGIC;
+
+  -- back transceivers
+  SIGNAL bck_rx              : STD_LOGIC_VECTOR((c_unb2b_board_tr_jesd204b.bus_w * c_unb2b_board_tr_jesd204b.nof_bus)-1 downto 0);
+  SIGNAL bck_ref_clk         : STD_LOGIC := '1';
+
+  -- jesd204b syncronization signals
+  SIGNAL jesd204b_sysref     : STD_LOGIC;
+  SIGNAL jesd204b_sync       : STD_LOGIC_VECTOR((c_unb2b_board_tr_jesd204b.nof_bus * c_unb2b_board_tr_jesd204b.bus_w)-1 DOWNTO 0);
+
+
+BEGIN
+
+
+  ----------------------------------------------------------------------------
+  -- System setup
+  ----------------------------------------------------------------------------
+  ext_clk <= NOT ext_clk AFTER c_ext_clk_period/2;  -- External clock (200 MHz)
+  eth_clk <= NOT eth_clk AFTER c_eth_clk_period/2;  -- Ethernet ref clock (125 MHz)
+  bck_ref_clk <= NOT bck_ref_clk AFTER c_bck_ref_clk_period/2;  -- JESD sample clock (200MHz) 
+
+  INTA <= 'H';  -- pull up
+  INTB <= 'H';  -- pull up
+
+  sens_scl <= 'H';  -- pull up
+  sens_sda <= 'H';  -- pull up
+  pmbus_scl <= 'H';  -- pull up
+  pmbus_sda <= 'H';  -- pull up
+
+  ------------------------------------------------------------------------------
+  -- External PPS
+  ------------------------------------------------------------------------------  
+  proc_common_gen_pulse(1, c_pps_period, '1', pps_rst, ext_clk, pps);
+  jesd204b_sysref <= pps;
+
+  ------------------------------------------------------------------------------
+  -- DUT
+  ------------------------------------------------------------------------------
+  u_lofar_unb2b_adc : ENTITY work.lofar2_unb2b_adc
+  GENERIC MAP (
+    g_design_name => "lofar2_unb2b_adc_one_node",
+    g_design_note => "Lofar2 adc with one node",
+    g_sim         => c_sim,
+    g_sim_unb_nr  => c_unb_nr,
+    g_sim_node_nr => c_node_nr
+  )
+  PORT MAP (
+    -- GENERAL
+    CLK          => ext_clk,
+    PPS          => pps,
+    WDI          => WDI,
+    INTA         => INTA,
+    INTB         => INTB,
+
+    -- Others
+    VERSION      => c_version,
+    ID           => c_id,
+    TESTIO       => open,
+
+    -- I2C Interface to Sensors
+    SENS_SC      => sens_scl,
+    SENS_SD      => sens_sda,
+
+    PMBUS_SC     => pmbus_scl,
+    PMBUS_SD     => pmbus_sda,
+    PMBUS_ALERT  => open,
+
+    -- 1GbE Control Interface
+    ETH_CLK      => eth_clk,
+    ETH_SGIN     => eth_rxp,
+    ETH_SGOUT    => eth_txp,
+
+    -- LEDs
+    QSFP_LED     => open,
+
+    -- back transceivers
+    BCK_RX       => bck_rx,
+    BCK_REF_CLK  => bck_ref_clk,
+  
+    -- jesd204b syncronization signals
+    JESD204B_SYSREF => jesd204b_sysref,
+    JESD204B_SYNC   => jesd204b_sync
+  );
+
+
+  ------------------------------------------------------------------------------
+  -- Simulation end
+  ------------------------------------------------------------------------------
+  sim_done <= '0', '1' AFTER 1 us;
+
+  proc_common_stop_simulation(TRUE, ext_clk, sim_done, tb_end);
+
+END tb;
\ No newline at end of file
diff --git a/applications/lofar2/doc/prestudy/desp_howtools_erko.txt b/applications/lofar2/doc/prestudy/desp_howtools_erko.txt
index 458e54aca357f71bf09309c3c58d2416fdcd3184..aa73321a0a64b83db5e414ee41c5a4f02ef5de62 100755
--- a/applications/lofar2/doc/prestudy/desp_howtools_erko.txt
+++ b/applications/lofar2/doc/prestudy/desp_howtools_erko.txt
@@ -1,7 +1,90 @@
+* RadioHDL with GIT (LOFAR2.0)
+* RadioHDL with SVN (APERTIF/ARTS)
 * GIT workflow
 * Confluence
 * Polarion
 * Latex
+* Markdown
+
+*******************************************************************************
+* RadioHDL with GIT
+*******************************************************************************
+
+# Setup vendor specific environment variables in .bashrc
+
+  * bashrc defines root directories that contain one or more versions of tool installations
+    - define MENTOR_DIR : modelsim installations
+    - define ALTERA_DIR : altera installations
+    - define MODELSIM_ALTERA_LIBS_DIR  : compiled modelsim simulation libraries for altera components
+
+    - LM_LICENSE_FILE=<our_license@our_compagny>
+
+# Setup RadioHDL development environment for hdl/. The hdl/libraries, hdl/boards and hdl/applications are
+# developed simultaneously and therefor in one git hdl/ repository
+
+> cd ~/git/hdl
+
+> . ./init_hdl.sh    
+
+  * init_hdl.sh defines:
+    - RADIOHDL_WORK directory for where the source code resides
+    - RADIOHDL_BUILD_DIR directory for where the targets will be build
+    - HDL_IOFILE_SIM_DIR=${RADIOHDL_BUILD_DIR}/sim for simulating with Modelsim using file IO
+  
+  * init_hdl.sh copies git user_components.ipx into Altera dir's
+    - cp ${RADIOHDL_WORK}/hdl_user_components.ipx $altera_dir/ip/altera/user_components.ipx
+  
+  * init_hdl.sh automatically also sources ../radiohdl/init_radiohdl.sh if necessary
+
+
+source also radiohdl tools
+. ../radiohdl/init_radiohdl.sh
+
+  * init_radiohdl.sh defines:
+    - RADIOHDL_GEAR directory of where the init_radiohdl.sh is located
+    - RADIOHDL_BUILD_DIR = ${RADIOHDL_BUILD_DIR}/build if not already defined
+    - RADIOHDL_CONFIG = ${RADIOHDL_GEAR}/config if not already defined
+                                
+  * init_radiohdl.sh extends:
+    - PATH with ${RADIOHDL_GEAR}/core
+                ${RADIOHDL_GEAR}/quartus
+                ${RADIOHDL_GEAR}/modelsim
+    - PYTHONPATH with ${RADIOHDL_GEAR}/core
+                      ${RADIOHDL_GEAR}/components
+    
+                                    
+> compile_altera_simlibs unb1   # creates build/unb1/hdl_libraries_ip_stratixiv.txt
+                                # creates build/quartus/<tool version> simulation models that need to be moved
+                                # manually to $MODELSIM_ALTERA_LIBS_DIR/<tool version>
+                                
+> generate_ip_libs unb1         # creates build/unb1/qmegawiz/
+                                # creates build/unb1/quartus_sh --> empty dir, why is it there?
+                                
+> quartus_config unb1           # creates build/unb1/quartus/<hdllib libraries> for synthesis
+                                # creates build/unb1/quartus/technology_select_pkg.vhd
+                                
+> modelsim_config unb1          # creates build/unb1/modelsim/<hdllib libraries> for simulation
+                                # creates build/unb1/modelsim/modelsim_project_files.txt for Modelsim commands.do
+                                # creates build/unb1/modelsim/technology_select_pkg.vhd
+                                
+> run_qsys unb1 unb1_minimal_qsys   # creates QSYS block in build/unb1/quartus/unb1_minimal_qsys
+> run_qcomp unb1 unb1_minimal_qsys  # creates 
+
+> run_modelsim unb1 &
+
+
+*******************************************************************************
+* RadioHDL with SVN
+*******************************************************************************
+
+echo "Uniboard trunk is selected"
+export SVN=${HOME}/svnroot/UniBoard_FP7
+#Setup RadioHDL environment for UniBoard2 and and new Uniboard1 applications
+. ${SVN}/RadioHDL/trunk/tools/setup_radiohdl.sh
+# Support old UniBoard environment (including Aarfaac and Paasar)
+. ${SVN}/RadioHDL/trunk/tools/setup_unb.sh
+
+
 
 *******************************************************************************
 * GIT workflow
@@ -28,6 +111,7 @@ cd ~/git
 git init  # start new repo at this dir, creates .git/
 git clone # get and start with existing repo
 git clone git@git.astron.nl:desp/args.git
+git clone git@git.astron.nl:desp/sampy.git
 
 git status # what is in stage area and what is modified
 
@@ -41,24 +125,24 @@ v git commit
 * history # .git repository with entire commit graph
 
 # To use a repo
-git add <dir>/<file>    # add to stage area, set for commit. Cannot add empty dir, need empty file in it
-git add .               # add all new and modified to stageing area
-git diff                # diff between file in working tree and staging area
-git diff --staged # diff between file in staging area and history
-git rm <filename> # remove file from working tree and stage the delete
+git add <dir>/<file>       # add to stage area, set for commit. Cannot add empty dir, need empty file in it
+git add .                  # add all new and modified to stageing area
+git diff                   # diff between file in working tree and staging area
+git diff --staged          # diff between file in staging area and history
+git rm <filename>          # remove file from working tree and stage the delete
 git checkout -- <filename> # revert a working tree change
-git reset               # clear stage area
-git reset HEAD <filename> # revert staged change
-git log -- <filename> # show history of file
+git reset                  # clear stage area
+git reset HEAD <filename>  # revert staged change
+git log -- <filename>      # show history of file
 git checkout <version hash> -- s2 # retrieve file from history into staged area and working tree
 
 
 Part 2:
 
-git commit -m "" # commit what is in stage area
-git commit -a -m "" # add to stage area and commit what is in stage area
+git commit -m ""           # commit what is in stage area
+git commit -a -m ""        # add to stage area and commit what is in stage area
 alias graph="git log --all --decorate --oneline --graph"
-git branch <branch name> # creat branch
+git branch <branch name>   # creat branch
 git branch # show branches
 git checkout <branch name> # change working tree and stage area to branch
 git checkout master
@@ -114,12 +198,44 @@ git status
 # delete branch and fetch npstream if the pull request was accepted
 git remote remove <remote name> # remove a remote repo
 
+Review process
+
+* Jira ticket defines the work to be done
+* coder works on branch with Jira ticket number
+* manually run regression test to test the changes (for Casacore SW the merge
+  request makes github automatically issue a regression test in the cloud)
+* coder does merge request to reviewer
+* gitlab will warn if the branch will lead to a merge conflict, the coder then
+  first has to fix the merge conflict by merging the master to the branch.
+  The merge can use merging or rebasing, Ger typically uses merging.
+* reviewer reviews the code per line and in general comments in gitlab GUI,
+  so no need to pull the branch locally
+* Use 'Open in Web IDE' button to see max about 10 changes, Use 'Changes' menu
+  to see all changes. Green is new file, orange is change file, + is new lines
+  - is removed lines.
+* coder does updates on branch until both coder and reviewer are ok, they are
+  notified by gitlab
+* when review is done then the reviewer does the merge.
+* the merge automatically deletes the branch (if selected to do so in gitlab)
+  locally the coder manually needs to delete the branch
+* Use Jira tag in commit message to have link between GIT and Jira. The link
+  was made via Settings/Intergations/Jira
+
+Note:
+* In github a merge request is called a pull request
+* Default a pull pulls the master. Typically it is not necessary to pull a 
+  branch because the reviewer does not need to compile and run the code and
+  because typically only one coder works on a branch.
+
+
 
 
 *******************************************************************************
 * Confluence:
 *******************************************************************************
 - space tools menu links onder om secties the ordenen.
+- space tools menu, content tools, custom export to PDF --> to export multiple
+  pages to PDF and to preserve th ASTRON logo in the export
 
 
 *******************************************************************************
@@ -140,4 +256,59 @@ git remote remove <remote name> # remove a remote repo
 
 
 
-                       .
\ No newline at end of file
+*******************************************************************************
+* Markdown
+*******************************************************************************
+
+Text will wrap.
+
+Backslash is escape chararcter.
+
+# Heading 1
+## Heading 2
+### Heading 3
+#### Heading 4
+##### Heading 5
+###### Heading 6
+
+Horizontal rules three or more of ***, ___, ---
+
+*italic*
+_italic_
+**bold**
+__bold__
+**bold and _bolditalic_**    combined
+`boxed`
+~~strike through~~
+
+Block quotes (alinea with an indent bar):
+> Block text will wrap
+
+Unordered list using *, -, +, indent >= 1 space
+* Main item 1
+* Main item 2          
+ * sub item 2a  use 2 trailing spaces for return inside paragraph
+ * sub item 2b
+ 
+Ordered list 
+1. Main item 1
+2. Main item 2          
+ 2.1 sub item 2a
+ 2.2 sub item 2b
+           
+Images  
+![Logo](path to image file)
+![Logo](web link to image file)
+![Logo][image1]
+
+[image1]:web link to image file
+
+Links:
+[ASTRON]:https://www.astron.nl
+
+Table:
+|col1 | col2| Col3 |    column titles
+|---|:---:|--:|    >= 3 dashes, colon for left, center, right align
+| row text | row text | row text|
+| row text | row text | row text|
+
diff --git a/applications/lofar2/doc/prestudy/desp_radiohdl_article.txt b/applications/lofar2/doc/prestudy/desp_radiohdl_article.txt
index c1e615ead14324c22bcd41e7781a71960a1b5f44..58b182f243ea6b85dd967e1df00f1145376b0f47 100644
--- a/applications/lofar2/doc/prestudy/desp_radiohdl_article.txt
+++ b/applications/lofar2/doc/prestudy/desp_radiohdl_article.txt
@@ -14,28 +14,9 @@ The name RadioHDL reflects that it was first used for HDL development in FPGA pr
 astronomy, but it can be used for any HDL development project.
 
 
-*******************************************************************************
-* 2) User guide topics
-*******************************************************************************
-
-a) Introduction:
-
-RadioHDL is a highly flexible automated build environment for HDL source code. The HDL is 
-organized in HDL libraries. The parameters for HDL libraries, the build
-tools and target FPGA are kept in configuration files. The configuration files and source
-code are the inputs for the RadioHDL tool. The output is a build target that depends on
-which build tool is used. The build target can e.g. be a project file for Modelsim to 
-simulate the HDL, a project file for Quartus to synthesize the HDL, a report log from a 
-regression test that simulated the HDL. Fig 1 shows the build flow from source to target.
-The config files and source files are kept in a directory tree under version control, while
-the target files are build in a separete build directory tree.
-
-  config files\
-               --> tool specific --> target files --> Vendor tool --> target files
-  source files/    config script
-
-Fig 1. RadioHDL flow from source to target (see 30_FWbuild_Eric, SKA Hongkong)
-
+Technology independence
+- Using sim models
+- c_technology = sim or using g_sim?
 
 The HDL libraries provide a hierarchy that promotes code reuse. The top level component that
 can run on an FPGA is also a HDL library. Technology dependent IP for e.g. PLL, RAM, FIFO,
@@ -58,128 +39,34 @@ of HDL libraries.
 
 Fig 2. Organize firmware in libraries (see 30_FWbuild_Eric, SKA Hongkong)
 
+
 Features:
-- RadioHDL gear scripting based on Python 3.x
-- Configuration files to define the sources and how to build them
+- RadioHDL scripting based on Python 3.x
+- Configuration files to define the sources and how to automatically build them
 - Separation of source files and build result files
 - All HDL organised in HDL libraries that
   . provide hierarchical structure and promote reuse
+  . can be used to build different revisions of the same source code based on generics
   . allow separation of technology dependent libraries, board specific libraries, general
     libraries and application specific libraries
-  . can be used to build different revisions of the same source code based on generics
   . can include local test benches to verify the library in a regression test
 
-Pro:
-- Uniform way of using tools and building code
 
-Con:
-- Maintain tool to keep up with changes in Vendor tool versions
-- Initial effort to support new tools or tools from different vendors
-- It can be difficult to support vendor specific features. If these features are rarely used
-  or requrie human intervention, then it may be not worth the effort or even impossible to
-  sautomate the use of these features by adding a key to the config file.
 
-b) Quick start:
-- Using sim models
-- c_technology = sim or using g_sim?
 
+*******************************************************************************
+* Open issues:
+*******************************************************************************
+- Support more roots in RADIOHDL_WORK for searching HDL libraries 
+- Central HDL_IO_FILE_SIM_DIR = build/sim --> Project local sim dir
+- avs_eth_coe.vhd per tool version? Because copying avs_eth_coe_<buildset>_hw.tcl to $HDL_BUILD_DIR
+  copies the last <buildset>, using more than one buildset at a time gices conflicts.
+- RadioHDL improvements requested by CSIRO for Vivado
 
-c) Config files:
-  The configuration files define key-value pairs, like a dictionary in Python. There are three
-  different kinds of configuration files:
-  
-  hdl_buildset_<buildset_name>.cfg 
-    . A central hdl_buildset_<name> build configuration file defines the combination of sources,
-      FPGA type and version and tool versions that are needed to build target FPGA type (board)
-      and type and version of the tools for synthesis, simulation.
-    . defines a combination of board, FPGA, tools (sythesis, simulation) and IP libraries
-      versions
-    . one central config file per buildset located at $RADIOHDL_CONFIG
-    . buildset name is typically an abbreviation that identifies the target board hardware and
-      a version, e.g. 'unb1' for a version 1 of a board called UniBoard. If the same board is 
-      used but with another set of tool versions, then that may be identified by e.g. 'unb1a'.
-  
-  hdl_tool_<tool_name>.cfg 
-    . A central hdl_tool_<name>.cfg tool configuration file that defines central setting for
-      that tool. Typical tools are e.g. Modelsim for simulation and Quartus for synthesis, but
-      other tool vendors can also be supported and other tools like a reggression test that
-      runs a set of test benches for a set of HDL libraries.
-    . defines tool specific settings e.g.
-    
-        tool config file           used for tool
-        hdl_tool_modelsim.cfg      Modelsim simulator
-        hdl_tool_quartus.cfg       Quartus synthesis, SOPC, QSYS, IP generation, user settings
-        
-        
-    . one central per tool located at $RADIOHDL_CONFIG
-    
-  hdllib.cfg :
-    . Each HDL Library has a local hdllib.cfg configuration file that defines the sources and
-      supported tools
-    . many, each local per HDL library in a sub directory of $RADIOHDL_WORK
-    . the HDL library cam define module library with VHDL that is reused in other lirbaries or
-      a top level library with a top level entity that maps on the IO of the FPGA.
-    . typically the HDL library points to sources that are located in the same directory or in
-      its sub directories, however absolute paths to sources are also allowed
-    . the hdllib.cfg can be divided into sections to group keys that are used for a specific
-      target. The section headers are identified between square brackets [section_name],
-      similar as in a Windows ini file. The first part of a hdllib.cfg file has no section 
-      header as these keys are available for all target scripts. The keys within a section are
-      applicable to the corresponding tool script. E.g:
-        
-        section name              used by tool script
-        [modelsim_project_file]   modelsim_config.py
-        [quartus_project_file]    quartus_config.py
-          
 
-d) Environment setup
-
-* Operating system
-  RadioHDL supports both Windows and Linux operating systems. The following tools need to be 
-  availabel in order to build target files (TBC):
-  - Make (available in /bin for win32 platforms)
-  - Python 3.x
-  - Python libraries (numpy, pylatex, yaml) 
-
-* Environment variables
-
-  .bashrc
-  - ALTERA_DIR               is set to where Altera tool version is installed (i.e. Quartus)
-  - MENTOR_DIR               is set to where Mentor tool version is installed (i.e. Modelsim)
-  - MODELSIM_ALTERA_LIBS_DIR is set to where the compiled Altera tool versions HDL libraries
-                             for simulation with Modelsim are stored
-
-  init_<my_project>.sh
-  - RADIOHDL_WORK      is set to location of this init_<my_project>.sh and defines the root
-                       directory from where all HDL libraries source files (hdllib.cfg) can be
-                       found
-    
-  - RADIOHDL_BUILD_DIR is set to ${RADIOHDL_WORK}/build and defines where all build results will
-                       be put
-  - HDL_IOFILE_SIM_DIR is set to ${RADIOHDL_BUILD_DIR}/sim and defines where Modelsim simulation
-                       will keep temporary file IO files.
-  
-  init_radiohdl.sh
-  - RADIOHDL_GEAR   is set to location of this init_radiohdl.sh and defines the root directory
-                    of where the RadioHDL tool is installed.
-  - RADIOHDL_CONFIG is set to ${RADIOHDL_GEAR}/config if not already defined by the user and
-                    defines where the central configuration scripts for buildsets (unb1, unb2b)
-                    and tools (modelsim, quartus) are kept.
-                    
-  Environment variables for build tools (e.g. modelsim, quartus) are set automatically (TBC)
-    MODEL_TECH_DIR
-    
-
-* Environment files
-
-  Altera hdl_user_components.ipx:
-  This hdl_user_components.ipx defines where Quartus QSYS searches for user components. The 
-  init_<my_project>.sh copies hdl_user_components.ipx from $RADIOHDL_WORK to
-  ${ALTERA_DIR}/ip/altera/user_components.ipx. 
-
-
-
-f) Source directory structure
+*******************************************************************************
+* Source directory structure
+*******************************************************************************
 
 RadioHDL requires that:
 
@@ -252,107 +139,15 @@ The technology/ directory contains several technology dependent libraries of ven
 pre generated and then wrapped by a technology agnostic wrapper entity. These wrapper entities
 are then used by the other libraries.
 
-g) Build directory structure
-
-The build directory structure contains created files and copied files and is located at
-
-  $RADIOHDL_BUILD_DIR/<hdltool_name>/                             for hdl_tool_<name>.cfg
-  $RADIOHDL_BUILD_DIR/<buildset_name>/<tool_name>/                for hdl_tool_<name>.cfg
-  $RADIOHDL_BUILD_DIR/<buildset_name>/<tool_name>/<hdllib_name>/  for hdllib.cfg per hdl_tool_<name>.cfg
-
-      
-      
-h) Top level HDL library:
-
-A top level HDL library is defined as a HDL library that contains a top level entity and 
-configuration parameters to synthesize it to an FPGA image that can run on an FPGA.
-A top level HDL library should not be reused in other HDL libraries, to avoid confusion
-that can occur due to conflicting or duplicate source files.
-
 
 
 *******************************************************************************
-* Run RadioHDL with GIT
-
-bashrc:
-- define ALTERA_DIR
-
-> cd ~/git/hdl
-> . ./init_hdl.sh               # setup development environment for hdl/
-                                # hdl/libraries, hdl/boards and hdl/applications are developed simultaneously and therefor in one git hdl/ repository
-                                # automatically also sources ../radiohdl/init_radiohdl.sh if necessary
-
-defines:
-- RADIOHDL_WORK directory for where the source code resides
-- RADIOHDL_BUILD_DIR directory for where the targets will be build
-- HDL_IOFILE_SIM_DIR=${RADIOHDL_BUILD_DIR}/sim for simulating with Modelsim using file IO
-
-copy: git user_componets.ipx into Altera dir's
-- cp ${RADIOHDL_WORK}/hdl_user_components.ipx $altera_dir/ip/altera/user_components.ipx
-
-source also radiohdl tools
-. ../radiohdl/init_radiohdl.sh
-                                
-                                
-> compile_altera_simlibs unb1   # creates build/unb1/hdl_libraries_ip_stratixiv.txt
-                                # creates build/quartus/<tool version> simulation models that need to be moved to /home/software/modelsim_altera_libs
-> generate_ip_libs unb1         # creates build/unb1/qmegawiz/
-                                # creates build/unb1/quartus_sh --> empty dir, why is it there?
-> quartus_config unb1           # creates build/unb1/quartus/<hdllib libraries> for synthesis
-                                # creates build/unb1/quartus/technology_select_pkg.vhd
-> modelsim_config unb1          # creates build/unb1/modelsim/<hdllib libraries> for simulation
-                                # creates build/unb1/modelsim/modelsim_project_files.txt for Modelsim commands.do
-                                # creates build/unb1/modelsim/technology_select_pkg.vhd
-> run_qsys unb1 unb1_minimal_qsys
-
-> run_modelsim unb1 &
-
-
-*******************************************************************************
-* Run RadioHDL with SVN
-
-echo "Uniboard trunk is selected"
-export SVN=${HOME}/svnroot/UniBoard_FP7
-#Setup RadioHDL environment for UniBoard2 and and new Uniboard1 applications
-. ${SVN}/RadioHDL/trunk/tools/setup_radiohdl.sh
-# Support old UniBoard environment (including Aarfaac and Paasar)
-. ${SVN}/RadioHDL/trunk/tools/setup_unb.sh
-
-
+* Simulation using file IO
 *******************************************************************************
-* 2) User guide topics
 
+HDL_IOFILE_SIM_DIR is set to ${RADIOHDL_BUILD_DIR}/sim and defines where Modelsim simulation
+                   will keep temporary file IO files.
 
 
-*******************************************************************************
-* 3) Programmers guide topics
-*******************************************************************************
-
-RadioHDL gear directory structure
-$RADIOHDL_GEAR/config   # central config files for buildsets and tools
-              /core     # RadioHDL gear scripts
-              /doc      # manuals
-              /ise      # scripts for Xilinx ISE, Impact tools
-              /modelsim # scripts for Mentor Modelsim tool
-              /quartus  # scripts for Altera Quartus, SOPC, QSYS tools
-              
-              init_radiohdl.sh   # Initialize RadioHDL for a project at $RADIOHDL_WORK
-              
-              generic.sh  # Collection of useful functions
-              
-              # Scripts to adopt RadioHDL configuration parameters as environment variables
-              # or paths
-              set_config_path         # expand config paths
-              set_config_variable     # export config variables
-              set_hdllib_variable     # export hdllib variables
 
-
-*******************************************************************************
-* Open issues:
-*******************************************************************************
-- Support more roots in RADIOHDL_WORK for searching HDL libraries 
-- Central HDL_IO_FILE_SIM_DIR = build/sim --> Project local sim dir
-- avs_eth_coe.vhd per tool version? Because copying avs_eth_coe_<buildset>_hw.tcl to $HDL_BUILD_DIR
-  copies the last <buildset>, using more than one buildset at a time gices conflicts.
-- RadioHDL improvements requested by CSIRO for Vivado
       
\ No newline at end of file
diff --git a/applications/lofar2/doc/prestudy/station2_opc_ua.txt b/applications/lofar2/doc/prestudy/station2_opc_ua.txt
index db67c5a8e2222658e6e5641ced90c8d899ac5504..4849ea331193e4644edbdfaa88221318dd24ccea 100644
--- a/applications/lofar2/doc/prestudy/station2_opc_ua.txt
+++ b/applications/lofar2/doc/prestudy/station2_opc_ua.txt
@@ -76,3 +76,16 @@ Needed:
 
 
 
+The tasks of the SDP OPC-UA server are:
+
+* Translate between OPC-UA interface at Station Control side and Gemini protocol over UDP/IP at
+  UniBoard2 side
+* Obtain the named register map of the FPGA firmware from a definition in YAML (the schema for
+  the description in YAML is defined in ARGS = automatic register generation system).
+* Present the registers per FPGA for the array of FPGAs as data points in OPC-UA. This could be
+  generated automatically based on the regmap description in YAML for each FPGA
+* Present registers that are distributed over an array of FPGAs as a single array of data points
+  in OPC-UA (e.g. for beamformer weights, crosslet statistics). This abstracts away the notion
+  of which FPGA takes care of which signal inputs, instead all signal inputs are represented as 
+  a single array. This is probably a manually written software layer / add-on in the SDP
+  OPC-CU server.
diff --git a/applications/lofar2/doc/prestudy/station2_sdp_firmware_planning.txt b/applications/lofar2/doc/prestudy/station2_sdp_firmware_planning.txt
index 996c96c67ca1d4d6a3049dd9f464709a0f90d904..c60e1a01773a116726a96e3cfc5a3a2ec7bc35f1 100755
--- a/applications/lofar2/doc/prestudy/station2_sdp_firmware_planning.txt
+++ b/applications/lofar2/doc/prestudy/station2_sdp_firmware_planning.txt
@@ -2,14 +2,16 @@
 * Rules
 *******************************************************************************
 
-1) Continuously plan 4 sprint ahead
-   After initial planning for thge whole project (at PDR) it remains necessary to keep on adapting
-   / fine tuning the planning per quarter, so about 4 sprints ahead. This concerns not only time
-   but also expectations, interfaces and work
+1) Continuously plan increment of 4 sprint ahead
+   After initial planning for thge whole project (at PDR) it remains necessary
+   to keep on adapting / fine tuning the planning per quarter, so about 4
+   sprints ahead. This concerns not only time but also expectations, interfaces
+   and work
 2) Guard the architecture
-   New projects / functionality must be judges by an architect (team) to decide on how it will fir
-   in the existing architecture, or how the architecture will be adapted. This may change the
-   requirements on the new project/ function. It also means that ad hoc solutions are not allowed.
+   New projects / functionality must be judges by an architect (team) to decide
+   on how it will fit in the existing architecture, or how the architecture
+   will be adapted. This may change the requirements on the new project/
+   function. It also means that ad hoc solutions are not allowed.
 3) Complete set of documentation of finished product
    Important for maintenance and extensions.
 
@@ -20,30 +22,35 @@
 *******************************************************************************
 
 1 year = 40 weeks = 1600 hours, so each Quarter has 10 weeks.
-1 week = 100% project allocation, bruto 40 hours, netto 40 * 0.8 = 32 hours = 4 days
+1 week = 100% project allocation, bruto 40 hours, netto 40 * 0.8 = 32 hours =
+         4 days
 sprint = 100% project allocation, bruto  3 weeks, netto 12 days.
 
-The week/hour estimates concern time that is booked on the project. For example if a tasks has
-alloacted 1 week, then:
+The week/hour estimates concern time that is booked on the project. For
+example if a tasks has alloacted 1 week, then:
 - 40 hours will be booked on the project
 - the lead time (doorlooptijd) wiil be about 1/0.8 = 1.25 longer
- 
-There are 52 / 3 = 17 sprints in a year, so about 4 sprints per Quarter. Hence each sprint can
-contain about 10 / 4 = 2.5 weeks of booked work per person at 100% project allocation.
 
-With e.g. 230 weeks and 3 persons allocated 100%, then the project lead time will be:
+There are 52 / 3 = 17 sprints in a year, so about 4 sprints per Quarter. Hence
+each sprint can contain about 10 / 4 = 2.5 weeks of booked work per person at
+100% project allocation.
+
+With e.g. 230 weeks and 3 persons allocated 100%, then the project lead time
+will be:
 
   230 (booked weeks) / 40 (weeks/year) / 3 (persons) * 1.25 (netto) = 2.4 years
-  
-This then means that with the SDP work starting 1 jan 2020 it can complete mid 2022.
+
+This then means that with the SDP work starting 1 jan 2020 it can complete mid
+2022.
 
 
 *******************************************************************************
 * L3 integration test platforms towards CDR
 *******************************************************************************
 
-1) Laboratory tests
-Objectives: Verification of (parts of) individyual elements and their interfaces
+1) Lab Test Station (LTS) - First-light Mai 2020
+Objectives: Verification of (parts of) individyual elements and their 
+            interfaces
 - 1 UniBoard2 Rev 2 (use different FPGA on same UniBoard for FW, SW tests)
 Setups for:
 - SW
@@ -53,16 +60,19 @@ Setups for:
 - Complete signal chain
 
 2) Dwingeloo Test Station (DTS) - First-light Sep 2020
-Objectives: Verify that a complete signal chain using the first iteration of L3 hardware design
-            shows no serious issues and that it can be reliably installed in a LOFAR station.
+Objectives: Verify that a complete signal chain using the first iteration of
+            L3 hardware design shows no serious issues and that it can be
+            reliably installed in a LOFAR station.
 - 1 UniBoard2 Rev 2
 - First iteration of electronic boards --> 2 UniBoard2 Rev 3a
 
 3) Prototype Test Station (PTS) - First-light Mai 2021
-Objectives: Verify Station L2 requirements through testing and analysis, and provide evidence to
-            the CDR review panel that the designs ensure compliance with all L2 requirements.
+Objectives: Verify Station L2 requirements through testing and analysis, and
+            provide evidence to the CDR review panel that the designs ensure
+            compliance with all L2 requirements.
 - Second iteration of electronic boards --> 4 UniBoard2 Rev 3b
-- 4 UniBoard2 Rev 3b in two subracks (one for LBA with 32 RCU2, one for HBA with 32 RCU2)
+- 4 UniBoard2 Rev 3b in two subracks (one for LBA with 32 RCU2, one for HBA
+  with 32 RCU2)
 - Output to CEP for correlation with other stations
 
 
@@ -72,16 +82,18 @@ Objectives: Verify Station L2 requirements through testing and analysis, and pro
 
 0) Station PDR close out 31 jan 2020
 
-1) Station DDR ? 2020
+1) Station DDR Dec 2020
 
 2) Station CDR Dec 2021
-Objectives: Compliance with all L2 requirements, all risks mitigated, ready for production
+Objectives: Compliance with all L2 requirements, all risks mitigated, ready
+            for production
 
 Relevant project dates:
 -  5-2020 Station DDR ?
 -  9-2020 first light DTS (will use Rev 2, and 4 RCUs with JESD ADC)
 - 10-2020 Working UniBoard2 Rev 3a
--  5-2021 first light PTS (can use 2x Rev 3a, but goal is to use 4x Rev 3b, 32 RCU2_L, 32 RCU2_H)
+-  5-2021 first light PTS (can use 2x Rev 3a, but goal is to use 4x Rev 3b,
+          32 RCU2_L, 32 RCU2_H)
 -  7-2021 Working UniBoard2 Rev 3b
 - 12-2021 Station CDR
 -  6-2022 Station rollout start
@@ -96,7 +108,8 @@ Includes design, implementation, verification on HW, technical commissioning.
 
 v1  v2
        Infrastructure
-10  20   - Development environment using GIT, RadioHDL, updating existing components
+10  20   - Development environment using GIT, RadioHDL, updating existing
+           components
 20   .   - BSP using Gemini Protocol, ARGS
 10   .   - Ethernet access (OSI 1-4)
 10  20   - Ring access
@@ -107,7 +120,8 @@ v1  v2
  0  30   - Subband filterbank (oversampled)
 10   .   - Beamformer
 20   .   - Subband correlator
-25   .   - Transient buffer (DDR4 interface, subband select and DM >= 0, packet format, M&C,
+25   .   - Transient buffer (DDR4 interface, subband select and DM >= 0,
+           packet format, M&C,
            RW access via M&C)
 20   .   - Transient detection
 20   .   - Subband offload
@@ -119,23 +133,24 @@ v1  v2
      5   - Design revisions and lab tests
     15   - Technical commissioning
 
-         
-v1 : 10 + 20 + 10 + 10 + 15 + 20 + 10 + 20 + 25 + 20 + 20 + 35 = 215 bruto weeks --> 215 / 40
-     = 5.4 FTE ~ 3 people each 2 years
+
+v1 : 10 + 20 + 10 + 10 + 15 + 20 + 10 + 20 + 25 + 20 + 20 + 35 = 215 bruto
+     weeks --> 215 / 40 = 5.4 FTE ~ 3 people each 2 years
 v2 : 10 less for critically sampled PFB
      10 more for updating existing components
      10 more for ring access
      30 for oversampled PFB
       . consider unb2c test part of SDP FW integration and of SDP HW
-     15 technical commisioning relies on proper Systems Engineering, otherwise may become
-        50 weeks
+     15 technical commisioning relies on proper Systems Engineering,
+        otherwise may become 50 weeks
 
 ==> EK, JH: v1 estimate of April 2019 is still valid as v2 on 10 Oct 2019.
 
 v3 :
 
    Infrastructure
-20   - Development environment using GIT, RadioHDL, updating existing components
+20   - Development environment using GIT, RadioHDL, updating existing
+       components
  5   - unb2c FPGA pinning
 10   - unb2c FPGA interface test designs
 20   - Board Support Package using Gemini Protocol and ARGS
@@ -159,10 +174,12 @@ v3 :
  5   - Technical commissioning Prototype Station
 
 All:
-20 + 5 + 10 + 20 + 20 + 10 + 15 + 10 + 20 + 10 + 25 + 20 + 20 + 30 +  0 + 10 + 5 + 5 = 255
+20 + 5 + 10 + 20 + 20 + 10 + 15 + 10 + 20 + 10 + 25 + 20 + 20 + 30 + 
+ 0 + 10 + 5 + 5 = 255
 
 No oversampled filterbank:
-20 + 5 + 10 + 20 + 20 + 10 + 15 + 10 + 20 + 10 + 25 + 20 + 20 +       0 + 10 + 5 + 5 = 225
+20 + 5 + 10 + 20 + 20 + 10 + 15 + 10 + 20 + 10 + 25 + 20 + 20 +
+ 0 + 10 + 5 + 5 = 225
 
 
 
@@ -182,12 +199,13 @@ Changed tasks:
 Firmware FPGA images:
 - the SDP has one main firmware design unb2c_sdp,
 - the integrated design of SDP is revision unb2c_sdp_station,
-- per task there are revisions of unb2c_sdp that contain subsets of the SDP functionality,
+- per task there are revisions of unb2c_sdp that contain subsets of the SDP
+  functionality,
 
 
 Deliverables (D) = an item, product : items that are needed for a milestone
-Milestones (M) = a moment in time, achievement : 'cake moments' when you demonstrate or review
-                 deliverables as part of a larger system
+Milestones (M) = a moment in time, achievement : 'cake moments' when you
+                 demonstrate or review deliverables as part of a larger system
 - integration passed
 - review passed
 
@@ -198,19 +216,21 @@ Below is the planning in weeks per task, the work includes:
 - Firmware that runs on UniBoard2
 
 weeks task   description
-10    T5.1   Maintain firmware development environment (GIT, RadioHDL, HDL libraries)
+10    T5.1   Maintain firmware development environment (GIT, RadioHDL, HDL
+             libraries)
 30    T5.2a  UniBoard2 board hardware
 10    T5.2b  UniBoard2 test firmware (enable mass production of UniBoard2)
-20    T5.3a  UniBoard2 board support package (BSP, M&C via Gemini Protocol, use ARGS for doc,
-             C, VHDL)                                                               
+20    T5.3a  UniBoard2 board support package (BSP, M&C via Gemini Protocol,
+             use ARGS for doc, C, VHDL)
       T5.3b  SW driver for GP
 10    T5.4   Network access via 10GbE (support ARP and ping)
 20    T5.5   Ring access using test data and BSN monitor (support ring)
-20    T5.6   Detailed design SDP firmware (Required documents: SDP RS, FW detailed design,
-             ICDs, FW manual)
-15    T5.7   ADC input and timestamp (RCU2 interface, capture timestamped data for offline
-             analysis)
-10    T5.8   Subband filterbank (Fsub, critically sampled, calibrated subbands, SST)
+20    T5.6   Detailed design SDP firmware (Required documents: SDP RS, FW
+             detailed design, ICDs, FW manual)
+15    T5.7   ADC input and timestamp (RCU2 interface, capture timestamped
+             data for offline analysis)
+10    T5.8   Subband filterbank (Fsub, critically sampled, calibrated
+             subbands, SST)
 20    T5.9   Subband correlator (XC, one subband per 1 s integration)
 10    T5.10  Beamformer (BF, BST, beamlet output to CEP)
 25    T5.11  Transient buffer (TB, ADC data, subband data)
@@ -221,11 +241,13 @@ Milestone : SDP ready for CDR:
 All major technical UniBoard2 hardware and SDP firmware risks are mitigated:
 
 - by design
-- SDP hardware and interfaces validated with at least two UniBoard2 using JTAG, firmware for BSP,
-  ring and ADC
-- Station validated using BF calibrated beamlet output to CEP and correlated with other Stations
+- SDP hardware and interfaces validated with at least two UniBoard2 using
+  JTAG, firmware for BSP, ring and ADC
+- Station validated using BF calibrated beamlet output to CEP and correlated
+  with other Stations
 
-The remaining tasks concern completing the applications that the firmware needs to perform.
+The remaining tasks concern completing the applications that the firmware
+needs to perform.
 
 weeks task   description
 20    T5.12  Transient detection (TDET)
@@ -237,23 +259,24 @@ weeks task   description
 
 
 Weeks Task  Person  Date    Platform  Deliverable description
-10    T5.1                            Maintain firmware development environment (GIT, RadioHDL,
+10    T5.1                            Maintain firmware development 
+                                      environment (GIT, RadioHDL,
                                       ARGS, HDL libraries)
-            PD                        * HDL libraries in git/hdl
-            PD                        * RadioHDL in git/radiohdl
-            PD                        * ARGS in git/args
-            PD                        - Maintain ARGS (e.g. for improved document generation)
-            DS                        - HDL libraries regression test in git/hdl repository
-            EK                        - Code review procedure using GIT, branches and Jira
-            EK                        - Updated RadioHDL user guide
-            EK                        - Updated RadioHDL programmers guide
-            EK                        - Paper on RadioHDL
-            EK                        - Updated ARGS user guide
-            EK                        - Design document for ARGS HDL code generation
-            EK                        - General HDL coding
-                                        . Paper on RTL coding style
-                                        . Global reset in sosi record
-                                        . Map between AXI bus and Avalon bus (both MM, ST)
+            PD      * HDL libraries in git/hdl
+            PD      * RadioHDL in git/radiohdl
+            PD      * ARGS in git/args
+            PD      - Maintain ARGS (e.g. for improved  document generation)
+            DS      - HDL libraries regression test in git/hdl repository
+            EK      - Code review procedure using GIT, branches and Jira
+            EK      - Updated RadioHDL user guide
+            EK      - Updated RadioHDL programmers guide
+            EK      - Paper on RadioHDL
+            EK      - Updated ARGS user guide
+            EK      - Design document for ARGS HDL code generation
+            EK      - General HDL coding
+                      . Paper on RTL coding style
+                      . Global reset in sosi record
+                      . Map between AXI bus and Avalon bus (both MM, ST)
 
 25    T5.2a                           UniBoard2 board hardware
    1        GS     12-2019            D UniBoard2 Detailed Design document
@@ -268,56 +291,75 @@ Weeks Task  Person  Date    Platform  Deliverable description
    3        GS      7-2021            D UniBoard2 production version Rev3b
             GS,JH   7-2021  Lab,PTS   M Working UniBoard2 Rev 3b
 
-10    T5.2b                           UniBoard2 test firmware + lab tests to enable mass
-                                      production of UniBoard2
+10    T5.2b                           UniBoard2 test firmware + lab tests to
+                                      enable mass production of UniBoard2
             JH      2-2020            D unb2c_test_pinning (using 10GbE)
-            JH      2-2020            D unb2c_test_pinning_jesd (using JESD204b)
-            JH      2-2020            D unb2c_heater (verify speed grade using clk = 256 MHz)
-            JH      2-2020  -         M Complete pinning + heater firmware package for unb2c
-
-                                      Test designs unb2c_test_* can be prepared using UCP BSP, but
-                                      aim to use GP BSP at 7-2020. Converting from UCP to GP
-                                      involves instantiating new GP BSP VHDL and using peek/poke
-                                      via CSIRO GP driver.
+            JH      2-2020            D unb2c_test_pinning_jesd (using
+                                        JESD204B)
+            JH      2-2020            D unb2c_heater (verify speed grade using
+                                        clk = 256 MHz)
+            JH      2-2020  -         M Complete pinning + heater firmware
+                                        package for unb2c
+
+                                      Test designs unb2c_test_* can be prepared
+                                      using UCP BSP, but aim to use GP BSP at
+                                      7-2020. Converting from UCP to GP
+                                      involves instantiating new GP BSP VHDL 
+                                      and using
+                                      peek/poke via CSIRO GP driver.
             JH      4-2020            D unb2c_test_ddr4 (both slots)
-            JH      4-2020            D unb2c_test_10GbE (front = QSFP + ring, back)
-            JH      4-2020            D unb2c_test_adc (= lofar2_unb2b_adc_one_node for unb2c)
-            PD      6-2020            D unb2c_minimal_gp (BSP) (= unb2b_minimal_gp for unb2c)
-                                        . 1GbE (two revisions, one for each port)
+            JH      4-2020            D unb2c_test_10GbE (front = QSFP + ring,
+                                        back)
+            JH      4-2020            D unb2c_test_adc (= 
+                                        lofar2_unb2b_adc_one_node for unb2c)
+            PD      6-2020            D unb2c_minimal_gp (BSP) (=
+                                        unb2b_minimal_gp for unb2c)
+                                        . 1GbE (two revisions, one for each
+                                          port)
                                         . PPS
                                         . Flash
                                         . internal FPGA monitor (temperature)
-            JH      6-2020            M Complete test + BSP firmware package for unb2c HW
-
-20    T5.3a                           UniBoard2 FW board support package (BSP, M&C via Gemini
-                                      Protocol (GP), use ARGS for doc, C, VHDL)
-            LH      2-2020            D Gemini LRU board for initial SW M&C tests
+            JH      6-2020            M Complete test + BSP firmware package
+                                        for unb2c HW
+
+20    T5.3a                           UniBoard2 FW board support package (BSP,
+                                      M&C via Gemini Protocol (GP), use ARGS
+                                      for doc, C, VHDL)
+            LH      2-2020            D Gemini LRU board for initial SW M&C
+                                        tests
             PD      5-2020            D unb2b_minimal_gp (BSP + M&C)
             PD      5-2020  Lab       M Working BSP unb2b_minimal_gp + SW M&C
-                                      Aim is to automate using ARGS, fallback is to do by hand:
-                   10-2020            D ARGS for VHDL slave generation (design in Task 5.1)
+                                      Aim is to automate using ARGS, fallback
+                                      is to do by hand:
+                   10-2020            D ARGS for VHDL slave generation (design
+                                        in Task 5.1)
 
 ?     T5.3b                           UniBoard2 SW driver
                    10-2020            d ARGS for SW driver generation
-                                        . CSIRO generates C header file for Gemini Protocol and
-                                          MM register map.
-
+                                        . CSIRO generates C header file for
+                                          Gemini Protocol and MM register map.
 
-10    T5.4                            Network access via 10GbE (support ARP request and ping
-                                      response)
-            RW      4-2020            D unb2c_network (10GbE + MAC statistics + ARP + ping + M&C)
+10    T5.4                            Network access via 10GbE (support ARP
+                                      request and ping response)
+            RW      4-2020            D unb2c_network (10GbE + MAC statistics
+                                        + ARP + ping + M&C)
 
-20    T5.5                            Ring access, transport and alignment (using BG)
+20    T5.5                            Ring access, transport and alignment
+                                     (using BG)
                                       D lofar2_unb2c_ring_sum
                                       D lofar2_unb2c_ring_mux
                                         . Control ring transport
-                                        . Monitor ring transport, latency, alignment and timing
+                                        . Monitor ring transport, latency, 
+                                          alignment and timing
                    12-2020  Lab       M Working ring + SW M&C
 
-20    T5.6                            Detailed design SDP (Required documents: SDP RS, FW detailed
+20    T5.6                            Detailed design SDP (Required documents:
+                                      SDP RS, FW detailed
                                       design, ICDs, FW manual)
-            EK                        D SDP requirements specification (for DDR, CDR)
-            EK                        D SDP architectural design document (for DDR, CDR)
+            EK                        D SDP requirements specification (for
+                                        DDR, CDR)
+            EK                        D SDP architectural design document (for
+                                        DDR, CDR)
                                         . toplevel structure of lofar2_unb2c
                                         . bsp
                                         . timing (+ ICD STF-SDP)
@@ -340,112 +382,137 @@ Weeks Task  Person  Date    Platform  Deliverable description
             EK                        d ICD RCU2S-SDP
             GS                        d ICD STF-SDP
             GS                        D ICD SDP-STCA
-            EK      6-2020  DDR       M Complete SDP document package for Station DDR
-            all    12-2021  CDR       M Complete SDP document package for Station CDR
-
-                                      D Test & verification report per firmware deliverable
-                                        . requirement + test case + result (readme.txt or doc)
-
-15    T5.7                            ADC input and timestamp (RCU2 interface, capture timestamped
-                                      data for offline analysis)
-                    2-2020  Lab       D lofar2_unb2b_adc_one_node (12 ADC + DB + M&C JESD + M&C)
-                                        . use data buffer (DB) to read captured samples via M&C
-                                        . on two nodes and power cycle to verify synchronisation
+            EK      6-2020  DDR       M Complete SDP document package for DDR
+            all    12-2021  CDR       M Complete SDP document package for CDR
+
+                                      D Test & verification report per firmware
+                                        deliverable
+                                        . requirement + test case + result
+                                          (readme.txt or doc)
+
+15    T5.7                            ADC input and timestamp (RCU2 interface,
+                                      capture timestamped data for offline
+                                      analysis)
+                    2-2020  Lab       D lofar2_unb2b_adc_one_node (12 ADC + DB
+                                        + M&C JESD + M&C)
+                                        . use data buffer (DB) to read captured
+                                          samples via M&C
+                                        . on two nodes and power cycle to
+                                          verify synchronisation
                     5-2020  Lab       D lofar2_unb2b_adc_full
                                         . waveform generator (WG)
                                         . timestamp (ToD, BSN)
                                         . delay buffer
                                         . statistics (mean, power, histogram))
-            JH      9-2020  DTS       M Working ADC input and timestamp + SW M&C
-
-10    T5.8                            Subband filterbank (Fsub, critically sampled, calibrated
-                                      subbands, SST)
-                    6-2020            D lofar2_unb2c_filterbank_sst (12 ADC + SST + M&C)
-                    9-2020            D lofar2_unb2c_filterbank_full (+ calibration weights)
+            JH      9-2020  DTS       M Working ADC input and timestamp + M&C
+
+10    T5.8                            Subband filterbank (Fsub, critically 
+                                      sampled, calibrated subbands, SST)
+                    6-2020            D lofar2_unb2c_filterbank_sst (12 ADC +
+                                        SST + M&C)
+                    9-2020            D lofar2_unb2c_filterbank_full (+
+                                        calibration weights)
                     9-2020  DTS       M Working subband filterbank + SW M&C
                                         . read and plot SST
                                         . control calibration weights
 
-15    T5.9                            Subband correlator (XC, one subband per 1 s integration)
-                    9-2020            D lofar2_unb2c_correlator_one_node (12 ADC + M&C)
+15    T5.9                            Subband correlator (XC, one subband per
+                                      1 s integration)
+                    9-2020            D lofar2_unb2c_correlator_one_node (12
+                                        ADC + M&C)
                                       D lofar2_unb2c_correlator_full (+ ring)
                     7-2021  PTS       M Working Subband correlator + SW M&C
                                         . control crosslet selection
-                                        . read and plot crosslet statistics (XST)
+                                        . read and plot crosslet statistics
+                                          (XST)
 
-15    T5.10                           Beamformer (BF, BST, beamlet output to CEP)
-                    9-2020  DTS       D lofar2_unb2c_output_one_input (1 ADC + output via 10GbE)
+15    T5.10                           Beamformer (BF, BST, beamlet output to
+                                      CEP)
+                    9-2020  DTS       D lofar2_unb2c_output_one_input (1 ADC +
+                                        output via 10GbE)
                                         . select subbands from one input
                                         . packetize subbands into packet
-                                        . control beamlet output (scaling, packetizing)
+                                        . control beamlet output (scaling,
+                                          packetizing)
             all     9-2020  DTS       M Entire signal chain available at DTS
                                         . XC for one node
                                         . BF output for one ADC input
-                                      D lofar2_unb2c_beamformer_output (12 ADC + BST + output via
-                                        10GbE + M&C)
+                                      D lofar2_unb2c_beamformer_output (12 ADC
+                                        + BST + output via 10GbE + M&C)
                                       D lofar2_unb2c_beamformer_full (+ ring)
                     7-2021  PTS       M Working Station beamformer + SW M&C
-                                        . read and plot beamlet statistics (BST)
-
-25    T5.11                           Transient buffer (TB, ADC data, subband data)
-                                      D lofar2_unb2c_transient_buffer_ddr4_access (direct read and
-                                        write of DDR4 via M&C)
-                                      D lofar2_unb2c_transient_buffer_one_node (12 ADC + setup,
-                                        write ADC data, freeze, read via M&C)
-                   12-2020  Lab       M Working Transient buffer and read DDR4 via M&C
-                    7-2021  Lab       D lofar2_unb2c_transient_buffer_output (+ read out via 10GbE)
-                    7-2021  PTS       D lofar2_unb2c_transient_buffer_full (+ ring)
-                   12-2021  PTS       M Working Transient buffer and read via 10GbE + SW M&C
+                                        . read and plot beamlet statistics
+                                          (BST)
+
+25    T5.11                           Transient buffer (TB, ADC data, subband
+                                      data)
+                                      D lofar2_unb2c_transient_buffer_ddr4_access
+                                        (direct read and write of DDR4 via M&C)
+                                      D lofar2_unb2c_transient_buffer_one_node
+                                        (12 ADC + setup, write ADC data, freeze,
+                                        read via M&C)
+                   12-2020  Lab       M Working Transient buffer and read DDR4
+                                        via M&C
+                    7-2021  Lab       D lofar2_unb2c_transient_buffer_output
+                                        (+ read out via 10GbE)
+                    7-2021  PTS       D lofar2_unb2c_transient_buffer_full (+
+                                        ring)
+                   12-2021  PTS       M Working Transient buffer and read via
+                                        10GbE + SW M&C
 
 20    T5.12                           Transient detection (TDET)
-                   12-2021  PTS       D lofar2_unb2c_transient_detection (12 ADC, detection and
-                                        trigger + M&C)
+                   12-2021  PTS       D lofar2_unb2c_transient_detection (12
+                                        ADC, detection and trigger + M&C)
                    12-2021  Rollout   M Working Transient detection + SW M&C
 
 20    T5.13                           Subband offload (SO) for AARTFAAC2.0
-                   12-2020  Lab       D lofar2_unb2c_subband_offload_output (12 ADC + packetized
-                                        output via 10GbE + M&C)
-                    6-2022  PTS       D lofar2_unb2c_subband_offload_full (+ ring)
+                   12-2020  Lab       D lofar2_unb2c_subband_offload_output (12
+                                        ADC + packetized output via 10GbE +
+                                        M&C)
+                    6-2022  PTS       D lofar2_unb2c_subband_offload_full (+
+                                        ring)
                     6-2022  Rollout   M Working Subband offload + SW M&C
 
 20    T5.14                           Station test and verification
-                   12-2021  PTS       D lofar2_unb2c_sdp_station (all BF, XC, TD, TDET, SO)
-                    6-2022  Rollout   M Operational Station Firmware (all BF, XC, TD, TDET, SO)
-                                        + SW M&C
+                   12-2021  PTS       D lofar2_unb2c_sdp_station (all BF, XC,
+                                        TD, TDET, SO)
+                    6-2022  Rollout   M Operational Station Firmware (all BF,
+                                        XC, TD, TDET, SO) + SW M&C
 
 SDP milestones:
 
-Weeks Task  Person  Date    Platform  Milestone description
+Person  Date    Platform  Milestone description
 
-            JH      2-2020  -         M Complete pinning + heater firmware package for unb2c
-            GS      4-2020            M Design review UniBoard2 Rev 3a
-            PD      5-2020  Lab       M Working BSP unb2b_minimal_gp + SW M&C
-            JH      6-2020            M Complete test + BSP firmware package for unb2c HW
+JH      2-2020  -         M Complete pinning + heater firmware package
+                            for unb2c
+GS      4-2020            M Design review UniBoard2 Rev 3a
+PD      5-2020  Lab       M Working BSP unb2b_minimal_gp + SW M&C
+JH      6-2020            M Complete test + BSP firmware package for unb2c HW
 
-            EK      6-2020  DDR       M Complete SDP document package for Station DDR
+EK      6-2020  DDR       M Complete SDP document package for Station DDR
 
-            JH      9-2020  DTS       M Working ADC input and timestamp + SW M&C
-                    9-2020  DTS       M Working subband filterbank + SW M&C
-            all     9-2020  DTS       M Entire signal chain available at DTS
-                                        . XC for one node
-                                        . BF output for one ADC input
-            GS,JH  10-2020  Lab       M Working UniBoard2 Rev 3a
+JH      9-2020  DTS       M Working ADC input and timestamp + SW M&C
+        9-2020  DTS       M Working subband filterbank + SW M&C
+all     9-2020  DTS       M Entire signal chain available at DTS
+                            . XC for one node
+                            . BF output for one ADC input
+GS,JH  10-2020  Lab       M Working UniBoard2 Rev 3a
 
-            GS     12-2020            M UniBoard2 Rev 3b review
-                   12-2020  Lab       M Working ring + SW M&C
-                   12-2020  Lab       M Working Transient buffer and read DDR4 via M&C
+GS     12-2020            M UniBoard2 Rev 3b review
+       12-2020  Lab       M Working ring + SW M&C
+       12-2020  Lab       M Working Transient buffer and read DDR4 via M&C
 
-            GS,JH   7-2021  Lab,PTS   M Working UniBoard2 Rev 3b
-                    7-2021  PTS       M Working Subband correlator + SW M&C
-                    7-2021  PTS       M Working Station beamformer + SW M&C
+GS,JH   7-2021  Lab,PTS   M Working UniBoard2 Rev 3b
+        7-2021  PTS       M Working Subband correlator + SW M&C
+        7-2021  PTS       M Working Station beamformer + SW M&C
 
-                   12-2021  PTS       M Working Transient buffer and read via 10gbE + SW M&C
-                   12-2021  PTS       M Working Transient detection + SW M&C
-            all    12-2021  CDR       M Complete SDP document package for Station CDR
+       12-2021  PTS       M Working Transient buffer and read via 10gbE + M&C
+       12-2021  PTS       M Working Transient detection + SW M&C
+all    12-2021  CDR       M Complete SDP document package for Station CDR
 
-                    6-2022  Rollout   M Working Subband offload + SW M&C
-                    6-2022  Rollout   M Operational Station Firmware (all BF, XC, TD, TDET, SO)
-                                        + SW M&C
+        6-2022  Rollout   M Working Subband offload + SW M&C
+        6-2022  Rollout   M Operational Station Firmware (all BF, XC, TD,
+                            TDET, SO) + SW M&C
 
 
 *******************************************************************************
@@ -454,14 +521,15 @@ Weeks Task  Person  Date    Platform  Milestone description
 
 - PDR estimates (dec 2019)
   SDP HW : Task 5.2a     :  25 weeks
-  SDP FW : Task 5.1-5.13 : 10 + 10 + 20 + 10 + 20 + 20 + 15 + 10 + 15 + 15 + 25 + 20 + 20 =
+  SDP FW : Task 5.1-5.13 : 10 + 10 + 20 + 10 + 20 + 20 + 15 + 10 + 15 + 15 +
+                           25 + 20 + 20 =
                            210 weeks
            Task 5.14     :  20 weeks
 
   ==> HW total  25 weeks
   ==> FW total 230 weeks
 
-- AAD estimnates (okt 2018)         
+- AAD estimnates (okt 2018)
   AAD FW : FW Application   : 4.8 FTE = 4.8 * 40 = 192 weeks
            FW Commissioning : 35 weeks  --> 192 + 35 = 230 weeks
            . I/O             20
@@ -472,48 +540,196 @@ Weeks Task  Person  Date    Platform  Milestone description
            . XC              20
            . TBB             60
            . FW for control  40
-             Sum: 20 + 30 + 30 + 10 + 20 + 20 + 60 + 40 = 230 with critical Fsub
-                  
+             Sum: 20 + 30 + 30 + 10 + 20 + 20 + 60 + 40 = 230 with critical
+                                                              Fsub
+
   weeks AAD       task   description
   10              T5.1   Maintain FW development environment
   25              T5.2a  UniBoard2 board hardware
-  10    20 I/O    T5.2b  UniBoard2 test firmware (enable mass production of UniBoard2)
-  20    30 BSP    T5.3a  UniBoard2 board support package                                        
+  10    20 I/O    T5.2b  UniBoard2 test firmware (enable mass production)
+  20    30 BSP    T5.3a  UniBoard2 board support package
                   T5.3b  SW driver for GP
   10              T5.4   Network access via 10GbE (support ARP and ping)
   20       BF/TBB T5.5   Ring access
   20              T5.6   Detailed design SDP firmware
   15    30 ADC    T5.7   ADC input and timestamp
-  10    10 Fsub   T5.8   Subband filterbank (Fsub, critically sampled, calibrated subbands, SST)
-  15              T5.9   Subband correlator (XC, one subband per 1 s integration)
+  10    10 Fsub   T5.8   Subband filterbank (Fsub, Ros=1, weights, SST)
+  15              T5.9   Subband correlator (XC, one subband per 1 s)
   15    20 BF     T5.10  Beamformer
   25    60 TBB    T5.11  Transient buffer (TB, ADC data, subband data)
   20       TBB    T5.12  Transient detection (TDET)
   20              T5.13  Subband offload (SO) for AARTFAAC2.0
-  20    35 Comm   T5.14  Station test and verification (using unb2c_sdp_station)
-  
-  The AAD estimates for I/O + BSP + ADC + Fsub + BF + TBB + FW control = 
+  20    35 Comm   T5.14  Station test and verification (using
+                         unb2c_sdp_station)
+
+  The AAD estimates for I/O + BSP + ADC + Fsub + BF + TBB + FW control =
   20 + 30 + 30 + 10 + 20 + 20 + 60 + 40 = 230 weeks with critical Fsub
   These tasks include detailed design and TBB includes TB + TDET.
 
-  JH,PD already spend about 30 weeks in 2019. 
+  JH,PD already spend about 30 weeks in 2019.
 
   ==> FW total 230 weeks, does not include
-      - PDR work on SDP in relation to rest if Station and LOFAR2.0 for ADD and SDP work package
-        management (EK spend about 30 weeks for this in 2019)
+      - PDR work on SDP in relation to rest if Station and LOFAR2.0 for ADD
+        and SDP work package management (EK spend about 30 weeks for this
+        in 2019)
       - Subband offload for AARTFAAC2.0 (about 20 weeks)
 
 - Comparision
-  
+
   The 'corrected' 2019 AAD estimate is:
-    
+
     2019 AAD estimate = 2018 AAD estimate - (planned 2019 work JH,PD)
                                           + (unplanned AARTFAAC2.0)
                       = 230 - 30 + 20 = 220
     2019 PDR estimate = 230
-    
-  So the difference is -10 weeks, which means that the 2019 PDR is about -10 / 230 = 5 % more
-  time then the 2018 AAD estimate.
 
+  So the difference is -10 weeks, which means that the 2019 PDR is about -10
+  / 230 = 5 % more time then the 2018 AAD estimate.
+
+
+*******************************************************************************
+* SDP effort estimates in LOFAR2.0 Station WP5 (since jan 2020)
+*
+* https://support.astron.nl/confluence/display/STAT/WP-5+SDP
+*
+*******************************************************************************
+
+  weeks  hours   name  task   description
+  10       400  PD/EK  T5.1   Maintain FW development environment
+  30      1200     GS  T5.2a  UniBoard2 board hardware
+  10       400     JH  T5.2b  UniBoard2 test firmware (enable mass production)
+  20       800     PD  T5.3a  UniBoard2 board support package
+                   LH  T5.3b  SW driver for GP
+  10       400     RW  T5.4   Network access via 10GbE (support ARP and ping)
+  20       800      -  T5.5   Ring access
+  20       800     EK  T5.6   Detailed design SDP firmware
+  15       600     JH  T5.7   ADC input and timestamp
+  10       400      -  T5.8   Subband filterbank (Fsub, R_os = 1, weigths, SST)
+  20       800      -  T5.9   Subband correlator (XC, one subband per 1 s)
+  10       400      -  T5.10  Beamformer
+  25      1000      -  T5.11  Transient buffer (TB, ADC data, subband data)
+  20       800      -  T5.12  Transient detection (TDET)
+    +        +
+  ---     ----
+ 220      8800
+
+  20      (800)     -  T5.13  Subband offload (SO) for AARTFAAC2.0
+  20       800      -  T5.14  Station test and verification after CDR (using
+                              unb2c_sdp_station)
+
+*******************************************************************************
+* Q1 = Increment 1 Lab Test Station (LTS)
+*******************************************************************************
 
+Main deliverables
+- EK: D19/20 SDP design documents for LTS
+- JH: D25 unb2b_adc_full
+- PD: D11 unb2b_minimal_gp (= BSP)
+- EK: D41 ICD SC-SDP for unb2b_minimal_gp
+- LH: D42 SDP OPC-UA server
+- RW: D10 10GbE arp, ping
+
+Current planning per person:
+
+RW:
+  Q1: finish unb2c_network for 10GbE with ARP request and ping response on HW
+
+GS: unb2c
+  - Production package proto unb2c (D9)
+
+JH: ADC ingest and timing
+  sp1: finish unb2b_test_adc_one_node (D8,24) using revisions
+       . unb2b arria10 libraries working in simulation, including tech_jesd
+  sp2: unb2b_test_adc_full (D25), includes timing, DB, WG, statistics and M&C
+  sp3: lab test integration of unb2b_test_adc_full (D25)
+  sp4: finish unb2c pinning and heater designs (D3,4,5) for Uniboard2
+       production package (D9)
+
+PD: BSP (= unb2b_minimal_gp)
+  sp1: ARP and ping on unb2b HW + use VHDL MM bus
+  sp2: Add Gemini Protocol (GP) firmware and read version in simulation
+  sp3: Gemini Protocol (GP) on hardware (D11)
+  sp4: lab test integration of unb2b_minimal_gp (D11)
+
+EK: Designs Documentation
+  sp1: Design documents for SDP in confluence
+       . top level, timing and ADC
+       . BSP (= unb2b_minimal_gp)
+       . prestudy note on oversampled filterbank
+  sp2: Assist with new VHDL:
+       . BSN source with BSN offset
+       . synchronous SOSI reset
+       . ADC and processing clock domains
+  sp3: Design documents for SDP in confluence
+       . ring
+       . correlator
+  sp4: Prepare for Q2
+
+LH: SDP-OPC-UA server
+  sp1: Investigate M&C software from CSIRO. Describe MM map of unb2b_minimal_gp
+       in ARGS yaml.
+  sp2: Investigate representation of MM map in OPC-UA. Draft design for SDP
+       OPC-UA server
+  sp3: Prototype of SDP OPC-UA server
+  sp4: lab test integration of SDP OPC-UA server with unb2b_minimal_gp
+
+Other:
+- synchronous sosi reset
+- rename g_revision_id into g_stamp_revision (unb2b, unb2c) and add it to unb1
+- remove g_technology from unb2b board designs, rely on c_technology_default
+
+-------------------------------------------------------------------------------
+-- BSP Detailed planning:
+-------------------------------------------------------------------------------
+
+BSP - PD
+1) arp, ping
+- extend eth1g module library
+- create unb2b_arp_ping design library
+  . no eth1g files in this dir
+  . check clk delata-cycle assignments in ctrl_unb2b_board
+  . use eth from eth lib (so not from eth1g, as long as it can remain the same)
+- unb2b_arp_ping + eth1g_master.vhd + tb_unb2b_arp_ping based on tb_eth.vhd
+- reply arp and ping in eth1g_master
+- toggle pout_wdi (used to be done by unb_osy)
+- pass on other traffic to external master
+- EK: fix g_sim = TRUE and g_sim_level = 1 in tb_eth.vhd (sim_tse.vhd)
+- EK: create common_mem_wait_request_adapter.vhd, necessary to access TSE port
+      via the MM bus.
+==> working unb2b_arp_ping in simulation
+==> working unb2b_arp_ping on HW
+
+2) gp_master = gemini protocol master
+- create gp library
+- extract gemini protocol master (gp_master) from CSIRO at Rx/Tx packet
+  interface
+- simulate gp_master in tb_gp_master with rx MM request and tx MM response to
+  simulate a MM access via GP to a MM slave reg
+==> working gp_master with tb_gp_master in simulation
+- integrate gp_master + eth1g_master in mmm_unb2b_arp_ping_gp
+==> working unb2b_arp_ping_gp in simulation
+==> working unb2b_arp_ping_gp on HW
+
+3) unb2b_minimal_gp
+- create unb2b_minimal_gp design library (so not a revision of unb2b_minimal)
+- integrate MM bus using common_mem_bus.vhd and common_mem_master_mux.vhd
+- manually connect all ctrl_unb2b_minimal slaves to the MM bus
+==> working unb2b_minimal_gp in simulation (at least compile, load, run 1 us)
+==> working unb2b_minimal_gp on HW
+
+4) MM bus from YAML
+- use unb2b_minimal_gp reg map in YAML and use this to automaticly generate
+  mmm_<design_name> MM bus
+
+
+*******************************************************************************
+* Q2 = Increment 2
+*******************************************************************************
 
+- finish unb2c_test designs
+- design document for SDP BF, BF output to CEP (D21)
+- design document for SDP Transient buffer
+- subband filterbank
+- subband correlator on one node
+- beamformer output to CEP
+- ring (C�dric Dumez-Viou ?)
diff --git a/applications/lofar2/doc/prestudy/station2_sdp_srs.txt b/applications/lofar2/doc/prestudy/station2_sdp_srs.txt
new file mode 100755
index 0000000000000000000000000000000000000000..773445b4e0a8069cfa1b9effeb458aacc4fad527
--- /dev/null
+++ b/applications/lofar2/doc/prestudy/station2_sdp_srs.txt
@@ -0,0 +1,141 @@
+LRU --> UniBoard2
+LOFAR2-4384 Hot replaceable LRUs
+LOFAR2-4196 Unique LRU ID number
+LOFAR2-4004 LRU physical label (Loaction, ID number, lifetime)
+LOFAR2-2229 Remote readout of ID number
+LOFAR2-3677 LRU lifetime >= 10 years
+LOFAR2-2232 Production pass/fail test
+LOFAR2-6726 Station mean time before failure > TBD years
+LOFAR2-2188 Station mean time to repair < 1 hour
+LOFAR2-3083 Information for configuration management tool
+LOFAR2-2202 CE approval
+LOFAR2-2258 Safety after failure
+LOFAR2-2166 Fire retardant
+LOFAR2-4483 Station manuals for maintainer
+
+System
+. General
+LOFAR2-4481 Station documentation of interfaces
+LOFAR2-4482 Station documentation of interfaces
+LOFAR2-4483 Station manuals for maintainer
+LOFAR2-2318 Station Modes
+LOFAR2-3187 Simultaneous existance of production modes
+LOFAR2-3269 Justification of single-points of failure
+LOFAR2-4000 Robustness: No single point of failure
+LOFAR2-4001 Graceful degradation
+. Monitor HW, FW and interfaces --> Ring, 1GbE, 10GbE, DDR4, PPS, JESD
+LOFAR2-3227 x--> 3248
+LOFAR2-3209 Monitoring in Hybernate State
+LOFAR2-3080 Monitoring in On State
+LOFAR2-3248 Self test to isolate failures down to LRU level
+LOFAR2-6727 Failure detection latency < TBD s
+LOFAR2-4369 Periodic monitoring interval: 1 s, 10 s or 300 s
+LOFAR2-2412 Station internal synchronization --> Timing
+LOFAR2-3578 HBA 170 to 230 MHz (nice to have) --> 160M
+LOFAR2-3304 Dual polarisation --> Form beamlets, SI mapping
+LOFAR2-3677 Life time > 10 years
+(LOFAR2-3195 Single central clock for RS and CS)
+LOFAR2-3976 Timing accuracy and budgets
+
+BSP
+LOFAR2-2371 Remote readout of software version number
+LOFAR2-4386 Remote reinstallation of SW, FW --> BSP
+LOFAR2-2179 Remote SW, FW update --> BSP
+LOFAR2-3176 Reconfiguration time: < 20 s --> BSP
+LOFAR2-3209 Monitoring in Hybernate State
+
+Ring
+LOFAR2-3269 Justification of single-points of failure
+LOFAR2-3248 Self test to isolate failures down to LRU level
+LOFAR2-4369 Periodic monitoring interval: 1 s, 10 s or 300 s
+LOFAR2-2412 Station internal synchronization --> Timing
+
+ADC and Timestamp
+LOFAR2-3129 Timestamp precision < 1 ns relative to TBC reference --> Timing, BSN source
+LOFAR2-2412 Station internal synchronization --> Timing, JESD204B, Sample delay buffer
+LOFAR2-4303 Beamform synchronized start at pulse from TD --> Timing, PPS
+LOFAR2-3220 Examine data at each processing step --> DB
+LOFAR2-3248 Station self-test --> WG, BSN scheduler
+LOFAR2-3225 Monitoring data quality --> JESD status, AST, DB
+
+Subband Filterbank
+LOFAR2-3206 RFI mitigation, minimize affect on (a)periodic celestial signals --> PFB
+LOFAR2-3578 HBA 170 to 230 MHz (nice to have) --> 160M
+LOFAR2-3203 LOFAR1 - LOFAR2.0 operation together --> PFB critically sampled
+LOFAR2-3305 Beamlet bandwidth 195k, 156k --> PFB
+LOFAR2-3099 Subband frequency grid --> PFB
+LOFAR2-3148 Subband stopband --> PFB
+LOFAR2-4490 Same beamlet spectral filter as in LOFAR1 --> PFB
+LOFAR2-2278 Alias free broadband --> PFB oversampled
+LOFAR2-3191 Calbration gain error, <= 0.2 % --> Subband weights
+LOFAR2-3961 Real time RFI detection --> SST
+LOFAR2-3225 Monitoring data quality --> SST
+LOFAR2-7519 Stand-alone Mode use LOFAR1 format for statistics --> SST
+
+Subband Correlator --> XST (one subband per one second for all inputs)
+LOFAR2-3626 Subband correlator mode
+LOFAR2-4053 Array correlation matrix (ACM)
+LOFAR2-4052 ACM Subband bandwidth 195k, 156k
+LOFAR2-3961 Real time RFI detection
+LOFAR2-4296 Monitoring correlate data quality
+LOFAR2-3220 Examine data at each processing step
+LOFAR2-7519 Stand-alone Mode use LOFAR1 format for statistics
+
+Beamformer
+LOFAR2-3421 Beamform mode --> Form beamlets
+LOFAR2-3098 LBA 488 independent beamlets  --> Form beamlets, Subband select
+LOFAR2-6996 HBA remote station 488, core station 976 independent beamlets --> Form beamlets, Subband select
+LOFAR2-4478 Station maximum beamwidth (single element beam) --> Form beamlets
+LOFAR2-3538 Beam tracking accuracy within TBC degrees --> Form beamlets
+LOFAR2-4495 Beamform accuracy HPBW  --> Form beamlets
+LOFAR2-3181 Temporal amplitude gain drift, rate <= 0.8 % radian/minute --> Form beamlets
+LOFAR2-2235 Temporal phase drift, rate <= 1 radian/minute --> Form beamlets
+LOFAR2-3191 Calbration gain error, <= 0.2 % --> Form beamlets
+LOFAR2-6582 Digital beamforming efficiency --> Form beamlets
+LOFAR2-3304 Dual polarisation --> Form beamlets
+LOFAR2-3960 Real-time RFI suppression in BF mode (nice to have)--> Form beamlets
+LOFAR2-3231 Control start/stop of RFI suppression in BF mode (nice to have) --> Form beamlets
+LOFAR2-3125 Beam repositioning latency <= 1 s --> Form beamlets
+LOFAR2-4303 Beamform synchronised start within TBD s --> Form beamlets
+LOFAR2-3961 Real-time RFI detection in BF mode (nice to have) --> BST
+LOFAR2-3317 Monitoring beamform data quality --> BST
+LOFAR2-7519 Stand-alone Mode use LOFAR1 format for statistics --> BST
+LOFAR2-3220 Examine data at each processing step --> Subband select
+LOFAR2-3305 Beamlet bandwidth 195k, 156k --> Output beamlets
+LOFAR2-3099 Beamlet frequency axis --> Output beamlets
+LOFAR2-3123 Flag repositioning of beam --> Output beamlets
+LOFAR2-2413 Beamlet output destination --> Output beamlets
+LOFAR2-5618 Beamlet output via UDP --> Output beamlets
+LOFAR2-6893 Beamlet output rate to CEP < 10 G (TBC) --> Output beamlets
+LOFAR2-6894 Beamlet output via UDP/IPv4 --> Output beamlets
+LOFAR2-7513 Stand-alone Mode beamlet output to SSU --> Output beamlets
+LOFAR2-7515 Stand-alone Mode output destination IP/UDP port --> Output beamlets
+LOFAR2-4299 Redirect station beamlet --> Output beamlets
+LOFAR2-4301 Start station beamlet output --> Output beamlets
+LOFAR2-4300 Stop station beamlet output --> Output beamlets
+LOFAR2-3220 Examine data at each processing step --> DB
+
+Transient buffer
+LOFAR2-3420 Transient buffer --> Buffer
+LOFAR2-2305 Buffer length >= 2.5 s --> Buffer
+LOFAR2-3220 Examine data at each processing step --> Buffer
+LOFAR2-3146 Store baseband or subband data --> Select and record
+LOFAR2-2295 Trade bandwidth for duration  --> Select and record
+LOFAR2-4039 Staggered range  --> Select and record
+LOFAR2-2299 Freeze latency <= 0.1 s --> Buffer
+LOFAR2-4509 Unfreeze buffer --> Buffer
+LOFAR2-3147 Freeze duration <= 20 min --> Select and readout
+LOFAR2-6894 Transient data output rate to CEP < 10 G (TBC) --> Select and readout
+LOFAR2-4510 Update destination of stream readout --> Select and readout
+LOFAR2-4038 Readout part of buffer --> Select and readout
+LOFAR2-4508 Control start stream readout of buffer --> Select and readout
+LOFAR2-4507 Control stop stream readout of buffer --> Select and readout
+LOFAR2-7512 Stand-alone Mode transient data output to SSU -->  Select and readout
+LOFAR2-7515 Stand-alone Mode output destination IP/UDP port --> Select and readout
+
+Transient detection
+LOFAR2-3144 Transient detection mode
+LOFAR2-2310 Send trigger to TM --> Trigger to SC
+
+Subband offload
+None
\ No newline at end of file
diff --git a/applications/lofar2/doc/prestudy/station2_sdp_timing.py b/applications/lofar2/doc/prestudy/station2_sdp_timing.py
new file mode 100644
index 0000000000000000000000000000000000000000..6ccf4022af17a6d0e8c8f2b8b5d5f8b72fb7ceb3
--- /dev/null
+++ b/applications/lofar2/doc/prestudy/station2_sdp_timing.py
@@ -0,0 +1,130 @@
+###############################################################################
+#
+# Copyright 2019
+# ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/>
+# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
+# 
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+###############################################################################
+
+# Author: Eric Kooistra
+
+"""Show PPS and SDP timing grid information for LOFAR2.0 Station
+
+Usage:
+> python station2_sdp_timing.py -h
+
+"""
+
+import argparse
+import math
+
+figNr = 1
+
+# Parse arguments to derive user parameters
+_parser = argparse.ArgumentParser('station2_sdp_timing')
+_parser.add_argument('-n', default=10, type=int, help='Number of seconds')
+_parser.add_argument('-f', default=200, type=int, help='Sample frequency in [MHz]')
+_parser.add_argument('-q', default=32, type=int, help='Oversampling rate 32/q')
+args = _parser.parse_args()
+
+Nsec = args.n
+fadc = args.f * 1000000              # ADC sample frequency in [Hz]
+Tadc = 1000. / args.f                # ADC sample period in [ns]
+p    = 32
+q    = args.q                        # Subband oversampling rate for Ros = p / q, where p = 32
+
+Nsub     = 512                       # Number of subbands
+Ncomplex = 2
+Nfft     = Nsub * Ncomplex           # Subband filterbank FFT size
+Nblk     = Nfft * q / p              # Subband period in [Tadc]
+Tsub     = Nblk * Tadc               # Subband period in [ns]
+
+# Check that Tsub can be expressed as an integer number of ns 
+result = 'PASSED'
+if int(Tsub) != Tsub:
+    print ''
+    result = 'WARNING'
+    print 'Warning: Tsub = %f ns, choose f such that Tsub is an integer number of ns' % Tsub
+
+print ''
+print '    SSN |      first                    ToD |                 |  nof BSN'
+print ' of PPS | BSN in PPS               at first |          offset |   in PPS'
+print '   grid |   interval *  Tsub =          BSN |          to PPS | interval'
+print '    [s] |               [ns]           [ns] |   [ns]   [Tadc] |         '
+print '--------+-----------------------------------+-----------------+---------'
+# BSN = Block Sequence Number of first block in this PPS interval
+BSN = 0
+nofBSN_hi = 0
+nofBSN_lo = 0
+prevToffset = 0
+for SSN in range(Nsec):
+    # SSN = Second Sequence Number of this PPS interval
+    
+    # Determine BSN of first block in next PPS interval
+    nextSSN = SSN + 1
+    nextBSN = math.ceil((1.0 * nextSSN * fadc) / Nblk)
+    
+    # Determine timing for this PPS interval
+    # . Time of Day at BSN in [ns]
+    ToD_ns = BSN * Tsub
+    
+    # . Offset of ToD at BSN relative to PPS in [Tadc]
+    Toffset = BSN * Nblk - SSN * fadc
+    # Note: ToD_ns - SSN * 1000000000 yields Toffset in [ns], but first
+    # derive Toffset in [Tadc] units. to avoid the division (which could
+    # lead to integer truncation but not for f = 160 or f = 200) that is
+    # used to calculate ToD_ns.
+    
+    # . Number of blocks in this PPS interval
+    nofBSN = nextBSN - BSN
+    # . Maintain count of number of BSN intervals with 1 extra BSN
+    if SSN == 0:
+        nofBSN_H = nofBSN
+        nofBSN_L = nofBSN
+        nofHiBSN = 1
+        nofLoBSN = 0
+    else:
+        if nofBSN_H == nofBSN:
+            nofHiBSN += 1
+        else:
+            nofBSN_L = nofBSN     # nofBSN_H = nofBSN_L + 1 by design
+            nofLoBSN += 1
+    # Print timing information
+    if Toffset == 0 and prevToffset != 0:
+        # insert divider row each time BSN grid coincides with PPS grid again
+        print '        |                                   |                 |         '
+    print '%7d | %10d * %5d = %12d | %6d %8d | %8d' % (SSN, BSN, Tsub, ToD_ns, Toffset*Tadc, Toffset, nofBSN)
+
+
+    # Prepare for next PPS interval
+    BSN = nextBSN
+    prevToffset = Toffset
+    
+print ''
+if nofBSN_H != nofBSN_L:
+    print 'nofBSN = %d occured %d time' % (nofBSN_H, nofHiBSN)
+    print 'nofBSN = %d occured %d time' % (nofBSN_L, nofLoBSN)
+    timeBSN    = (nofBSN_H * nofHiBSN + nofBSN_L * nofLoBSN)
+    timeBSN_ns = timeBSN * Tsub
+    timeSSN_ns = Nsec * 1000000000
+      
+    print 'time SSN = %d [ns]' % timeSSN_ns
+    print 'time BSN = %d [ns] = %d * %d + %d * %d = %d [Tsub]' % (timeBSN_ns, nofBSN_H, nofHiBSN, nofBSN_L, nofLoBSN, timeBSN)
+    if timeBSN_ns != timeSSN_ns:
+        result = 'WARNING'
+        print 'Warning: not an integer number of BSN in n PPS intervals, choose n multiple of q'
+print ''
+print result
+print ''
diff --git a/applications/lofar2/doc/prestudy/station2_sdp_timing.txt b/applications/lofar2/doc/prestudy/station2_sdp_timing.txt
index 060a82f7731524a05d4f8fbeb6e8e0cc5c0bdf3e..55318c326ce5f12271c164c31246f80b02aec64e 100644
--- a/applications/lofar2/doc/prestudy/station2_sdp_timing.txt
+++ b/applications/lofar2/doc/prestudy/station2_sdp_timing.txt
@@ -95,13 +95,13 @@ and any M&C upon the data, because:
 The actual resolution T_sub of the Station BSN in LOFAR2 depends on the ADC sample frequency and on the
 subband filterbank:
 
-  N_blk  T_adc    T_sub       T_sub_i
-  1024 * 5   ns = 5120   ns = 25600 [0.2 ns] for critical sampled filterbank at 200 MHz
-  1024 * 6.4 ns = 6553.6 ns = 32768 [0.2 ns] for critical sampled filterbank at 160 MHz
-   864 * 5   ns = 4320   ns = 21600 [0.2 ns] for oversampled filterbank R_os = 32/27 = 1.185 at 200 MHz
-   864 * 6.4 ns = 5529.6 ns = 27648 [0.2 ns] for oversampled filterbank R_os = 32/27 = 1.185 at 160 MHz
-   800 * 5   ns = 4000   ns = 20000 [0.2 ns] for oversampled filterbank R_os = 32/25 = 1.28 at 200 MHz
-   800 * 6.4 ns = 5120   ns = 25600 [0.2 ns] for oversampled filterbank R_os = 32/25 = 1.28 at 160 MHz
+  N_blk  T_adc    T_sub
+  1024 * 5    ns = 5120 ns for critical sampled filterbank at 200 MHz
+  1024 * 6.25 ns = 6400 ns for critical sampled filterbank at 160 MHz
+   864 * 5    ns = 4320 ns for oversampled filterbank R_os = 32/27 = 1.185 at 200 MHz
+   864 * 6.25 ns = 5400 ns for oversampled filterbank R_os = 32/27 = 1.185 at 160 MHz
+   800 * 5    ns = 4000 ns for oversampled filterbank R_os = 32/25 = 1.28 at 200 MHz
+   800 * 6.25 ns = 5000 ns for oversampled filterbank R_os = 32/25 = 1.28 at 160 MHz
 
 In LOFAR2 the timestamp should be independent of:
 
@@ -110,35 +110,39 @@ In LOFAR2 the timestamp should be independent of:
 
 If T_sub was fixed then T_sub could be used as timestamp resolution (like in APERTIF). However T_sub depends
 on the type of subband filterbank with a resolution of T_adc. If T_adc was fixed then T_adc could be used
-as timestamp resolution. However T_adc depends on the sample clock rate. Therefore the timestamp resolution
-needs to be as fine as the greatest common time resolution of T_adc = 5 ns and T_adc = 6.4 ns, which is 0.2 ns.
-A 64 bit timestamp with 0.2 ns resolution can count 2**64 / (365.25 * 24 * 3600 / 0.2e-9) = 116 years. Hence
-for t_epoch = 1970 this is until 2086, which is sufficient for the lifetime of LOFAR2.0. Internally in SDP
+as timestamp resolution. However T_adc depends on the sample clock rate. At most the timestamp resolution
+needs to be as fine as the greatest common time resolution of T_adc = 5 ns and T_adc = 6.25 ns, which is
+0.25 ns. However typical R_os = p/q have p is a power of 2 and p <= 64, because N_FFT = 1024 = 2**10. Hence
+N_FFT / p >= 16, so typical subband periods can always be expressed as a multiple of 16* 6.25 = 100 ns or 
+16 * 5 = 80 ns. Therefore the minimum required time stamp resolution is gcd(100, 80) = 20 ns. For human 
+readability choose 1 ns as timestamp resolution
+A 64 bit unsigned timestamp with 1 ns resolution can count 2**64 / (365.25 * 24 * 3600 / 1e-9) = 584 years.
+Hence for t_epoch = 1970 this is more than enough for the lifetime of LOFAR2.0. Internally in SDP
 firmware use the BSN to count T_sub. Externally at the SDP interface use timestamp values with a resolution
-of 0.2 ns such that they are:
+of 1 ns such that they are:
 
  * integer values, and
  * independent of the sample period.
 
-The actual timestamp in fractional seconds of 0.2 ns follows from:
+The actual timestamp in units of 1 ns follows from:
 
-  timestamp = Station BSN * T_sub_i * 0.2 [ns].
+  timestamp = Station BSN * T_sub [ns].
 
-The BSN and T_sub_i can be specified as:
+The BSN and T_sub can be specified as:
 
-- single 64 bit integer timestamp value of BSN * T_sub_i [0.2 ns]
-- two separate fields with an incrementing BSN and resolution given by T_sub_i [0.2 ns]
+- single 64 bit unsigned integer timestamp value of BSN * T_sub [ns]
+- two separate fields with an incrementing BSN and resolution given by T_sub [ns]
 
-To cover 116 years for a BSN with smallest T_sub = 4000 ns for R_os = 32/25 = 1.28 requires:
+To cover 100 years for a BSN with smallest T_sub = 4000 ns for R_os = 32/25 = 1.28 requires:
 
-  log2( 116 * (365.25 * 24 * 3600 / 4000e-9) ) = 49.7, so 50 bits
+  log2( 100 * (365.25 * 24 * 3600 / 4000e-9) ) = 49.7, so 50 bits
 
 Therefore allocate 64b in a packet header to send the BSN information. The BSN and timestamp are direcly
-related via T_sub_i, but the advantage of providing the BSN separately is that it increments by 1 for
+related via T_sub, but the advantage of providing the BSN separately is that it increments by 1 for
 each block period T_sub, so it can be used as block index.
 
-The range of T_sub is 4000 ns - 5120 ns, so the range of T_sub_i is 20000 - 25600. These T_sub_i values
-can be covered in a 16 bit number. Alternatively T_sub_i can be derived from the four possible
+The range of T_sub is 4000 ns - 5120 ns. These T_sub values
+can be covered in a 16 bit number. Alternatively T_sub can be derived from the four possible
 combinations of f_adc = 200M or 160M and R_os = 1 or 32/25, that can be represented with 2 bits.
 
 
@@ -148,7 +152,8 @@ combinations of f_adc = 200M or 160M and R_os = 1 or 32/25, that can be represen
 *******************************************************************************
 
 Together the initial BSN, counting blocks and the order of the data within a block uniquely define the timing
-of the data in a Station. However counting blocks is not sufficient to maintain the data timing, because:
+of the data in a Station. However counting blocks is not sufficient to maintain the data timing, because
+there can be gaps due to:
 
 - The data flow at the SDP input may be stopped and restarted,
 - at the external interfaces of the FPGAs in SDP it is possible that blocks of data get lost.
@@ -172,7 +177,7 @@ FPGA in the SDP firmware has a BSN source, that all run synchronously within a S
 Stations, because they have been started by the external PPS from the Timing Distributor (TD). The sync is a
 periodic signal with period larger than the maximum latency of the data within the SDP, to ensure
 that a sync at any FPGA refers to the same time instant. If somewhere in an FPGA the sync comes along, then
-the BSN can be recreated by directly using the BSN that was held at the sync by the BSN source and start
+the BSN can be recreated by directly using the BSN that was held at the sync by the local BSN source and start
 continue counting blocks from there.
 
 
diff --git a/applications/lofar2/doc/prestudy/station2_tmp.txt b/applications/lofar2/doc/prestudy/station2_tmp.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ca0bc98aa3b21ff967f93c1cc84cfa6a9da37800
--- /dev/null
+++ b/applications/lofar2/doc/prestudy/station2_tmp.txt
@@ -0,0 +1,37 @@
+Remaining texts that have not been used yet in official SDP detailed design documents
+
+*******************************************************************************
+* From station2_sdp_timing
+*******************************************************************************
+
+- It is not necessary to represent fine group delays of digital filters or analogue electronics and
+  cables in the BSN, because these delays are all accounted for after calibration.
+  . Course group delays and cable delay differences can be compensated for in steps to T_adc via the signal
+    input buffer of every ADC input in SDP.
+  . Fine group delay differences within a Station can be calibrated via the subband calibration weights.
+- Group delay differences between Stations need to be calibrated at CEP, and can be compensated at CEP or
+  at Station via the input buffers and the subband calibration weights.
+
+
+
+Key ideas:
+- Use Ethernet CRC and DP CRC to ensure detection of packet errors and to ensure error free blocks
+  within FPGA firmware
+
+
+  RCU2                          Subband        Ring
+                                PFB
+
+                        data            data
+  data ------> BSN    --------> Move, -------> Packet
+  PPSH ------> source   sync    DSP     sync   encoding
+                        BSN .........>  BSN    ring
+
+  Ring                                                            BF, XC
+             data                                         data            data
+  Packet   --------> Validate  --> Validate --> BSN     --------> Move, --------> Packet
+  decoding   sync    CRC           BSN          aligner   sync    DSP     sync    encoding
+  ring       BSN .......................................................> BSN     output
+
+
+
diff --git a/applications/lofar2/doc/prestudy/station2_to_do_erko.txt b/applications/lofar2/doc/prestudy/station2_to_do_erko.txt
index 76043159f701ae18e62399459f2c6925d4b30db5..36f4c6c73b1d3163e2cc3e592ec75841ed130086 100755
--- a/applications/lofar2/doc/prestudy/station2_to_do_erko.txt
+++ b/applications/lofar2/doc/prestudy/station2_to_do_erko.txt
@@ -59,6 +59,18 @@ Vijf principes:
 - data buffer on output beamlets --> histogram
    . buffer all beamlets per T_sub at sync
    . buffer one beamlet for some T_sub time series after sync
+- Created common_mem_bus and common_mem_master_mux to replace Qsys
+  . considered using Wishbone, but for our M&C using common_mem_bus is easier than wrapping a Wishbone bus
+  . add a common_arbiter to make a common_mem_master_arbiter using miso.waitrequest, however then it may
+    be necessary to reconsider wrapping a Wishbone bus.
+- Add support generating MM bus by wiring common_mem_bus to named mosi/miso slaves or arrays of slaves
+  from yaml with ARGS
+- g_sim
+  . define g_sim record
+  . use g_sim or consider sim models as a technology
+- lofar2_unb2c structure with design_name revisions and node_<> per device: bsp, ring_(bf, xc, tb, so),
+  node_(bf, xc, tb, so, tdet, adc, fb), ddr4_(0,1) for tb, offload_10g
+  
 
 - Use GIT
 - Understand AXI4 streaming (versus avalon, RL =0)
diff --git a/boards/uniboard1/designs/unb1_minimal/revisions/unb1_minimal_qsys/unb1_minimal_qsys.vhd b/boards/uniboard1/designs/unb1_minimal/revisions/unb1_minimal_qsys/unb1_minimal_qsys.vhd
index 7d773cb4b58a376f3a018ecc3768fd20a65d9cce..13e98516839df6a47d4299317c8db1f593a38820 100644
--- a/boards/uniboard1/designs/unb1_minimal/revisions/unb1_minimal_qsys/unb1_minimal_qsys.vhd
+++ b/boards/uniboard1/designs/unb1_minimal/revisions/unb1_minimal_qsys/unb1_minimal_qsys.vhd
@@ -33,7 +33,7 @@ ENTITY unb1_minimal_qsys IS
     g_sim_node_nr : NATURAL := 0;
     g_stamp_date  : NATURAL := 0;  -- Date (YYYYMMDD) -- set by QSF
     g_stamp_time  : NATURAL := 0;  -- Time (HHMMSS)   -- set by QSF
-    g_stamp_svn   : NATURAL := 0   -- SVN revision    -- set by QSF
+    g_stamp_svn   : INTEGER := 0   -- SVN revision    -- set by QSF
   );
   PORT (
     -- GENERAL
diff --git a/boards/uniboard1/designs/unb1_minimal/revisions/unb1_minimal_sopc/unb1_minimal_sopc.vhd b/boards/uniboard1/designs/unb1_minimal/revisions/unb1_minimal_sopc/unb1_minimal_sopc.vhd
index f9c05be8525cdf27dbf5704fc001855cc6f328d8..a34407ad4960989bbd2512642c76bd0e206413e2 100644
--- a/boards/uniboard1/designs/unb1_minimal/revisions/unb1_minimal_sopc/unb1_minimal_sopc.vhd
+++ b/boards/uniboard1/designs/unb1_minimal/revisions/unb1_minimal_sopc/unb1_minimal_sopc.vhd
@@ -33,7 +33,7 @@ ENTITY unb1_minimal_sopc IS
     g_sim_node_nr : NATURAL := 0;
     g_stamp_date  : NATURAL := 0;  -- Date (YYYYMMDD) -- set by QSF
     g_stamp_time  : NATURAL := 0;  -- Time (HHMMSS)   -- set by QSF
-    g_stamp_svn   : NATURAL := 0   -- SVN revision    -- set by QSF
+    g_stamp_svn   : INTEGER := 0   -- SVN revision    -- set by QSF
   );
   PORT (
     -- GENERAL
diff --git a/boards/uniboard1/designs/unb1_minimal/src/vhdl/unb1_minimal.vhd b/boards/uniboard1/designs/unb1_minimal/src/vhdl/unb1_minimal.vhd
index ea6ede36100b05b0e9e4868d556f1b66add17858..07df2214dbb138471ab58ef057fa143832ae06d5 100644
--- a/boards/uniboard1/designs/unb1_minimal/src/vhdl/unb1_minimal.vhd
+++ b/boards/uniboard1/designs/unb1_minimal/src/vhdl/unb1_minimal.vhd
@@ -36,7 +36,7 @@ ENTITY unb1_minimal IS
     g_sim_node_nr : NATURAL := 0;
     g_stamp_date  : NATURAL := 0;  -- Date (YYYYMMDD) -- set by QSF
     g_stamp_time  : NATURAL := 0;  -- Time (HHMMSS)   -- set by QSF
-    g_stamp_svn   : NATURAL := 0   -- SVN revision    -- set by QSF
+    g_stamp_svn   : INTEGER := 0   -- SVN revision    -- set by QSF
   );
   PORT (
     -- GENERAL
diff --git a/boards/uniboard1/libraries/unb1_board/src/vhdl/ctrl_unb1_board.vhd b/boards/uniboard1/libraries/unb1_board/src/vhdl/ctrl_unb1_board.vhd
index 2766d5fe865b84983293713d3822aca96e5b5e3f..bbaa9e82c3cebd6d0a5fec74844779ef584dbe1b 100644
--- a/boards/uniboard1/libraries/unb1_board/src/vhdl/ctrl_unb1_board.vhd
+++ b/boards/uniboard1/libraries/unb1_board/src/vhdl/ctrl_unb1_board.vhd
@@ -52,7 +52,7 @@ ENTITY ctrl_unb1_board IS
     g_fw_version      : t_unb1_board_fw_version := (0, 0);  -- firmware version x.y
     g_stamp_date      : NATURAL := 0;
     g_stamp_time      : NATURAL := 0;
-    g_stamp_svn       : NATURAL := 0;
+    g_stamp_svn       : INTEGER := 0;
     g_design_note     : STRING  := "UNUSED";
     g_mm_clk_freq     : NATURAL := c_unb1_board_mm_clk_freq_125M;  -- default use same MM clock as for TSE clock
     g_xo_clk_use_pll  : BOOLEAN := FALSE;
diff --git a/boards/uniboard1/libraries/unb1_board/src/vhdl/mms_unb1_board_system_info.vhd b/boards/uniboard1/libraries/unb1_board/src/vhdl/mms_unb1_board_system_info.vhd
index 4624cdc3d0e792ec69dbd69014333fb49dd524cb..3e1a8c454e5421ecc754ce6fd0c2bcaf5f3e5c37 100644
--- a/boards/uniboard1/libraries/unb1_board/src/vhdl/mms_unb1_board_system_info.vhd
+++ b/boards/uniboard1/libraries/unb1_board/src/vhdl/mms_unb1_board_system_info.vhd
@@ -34,7 +34,7 @@ ENTITY mms_unb1_board_system_info IS
     g_fw_version        : t_unb1_board_fw_version := c_unb1_board_fw_version;  -- firmware version x.y
     g_stamp_date        : NATURAL := 0;
     g_stamp_time        : NATURAL := 0;
-    g_stamp_svn         : NATURAL := 0;
+    g_stamp_svn         : INTEGER := 0;
     g_design_note       : STRING  := "";
     g_aux               : t_c_unb1_board_aux := c_unb1_board_aux;               -- aux contains the hardware version
     g_rom_version       : NATURAL := 1;
diff --git a/boards/uniboard1/libraries/unb1_board/src/vhdl/unb1_board_system_info_reg.vhd b/boards/uniboard1/libraries/unb1_board/src/vhdl/unb1_board_system_info_reg.vhd
index c16da3f61dc78d3cfbae0d97f4da5db75b51261a..f22b7364ce0575518d885dd9754e512bb259a3a8 100644
--- a/boards/uniboard1/libraries/unb1_board/src/vhdl/unb1_board_system_info_reg.vhd
+++ b/boards/uniboard1/libraries/unb1_board/src/vhdl/unb1_board_system_info_reg.vhd
@@ -56,7 +56,7 @@ ENTITY unb1_board_system_info_reg IS
     g_use_phy     : t_c_unb1_board_use_phy;
     g_stamp_date  : NATURAL := 0;
     g_stamp_time  : NATURAL := 0;
-    g_stamp_svn   : NATURAL := 0;
+    g_stamp_svn   : INTEGER := 0;
     g_design_note : STRING
   );
   PORT (
@@ -136,7 +136,7 @@ BEGIN
           sla_out.rddata(c_word_w-1 DOWNTO 0) <= TO_UVEC(g_stamp_time, c_word_w);
 
         ELSIF vA = c_nof_fixed_regs + c_nof_design_name_regs+2 THEN      
-          sla_out.rddata(c_word_w-1 DOWNTO 0) <= TO_UVEC(g_stamp_svn, c_word_w);
+          sla_out.rddata(c_word_w-1 DOWNTO 0) <= TO_SVEC(g_stamp_svn, c_word_w);
 
         ELSIF vA < c_nof_fixed_regs + c_nof_design_name_regs+c_nof_stamp_regs+c_nof_design_note_regs THEN      
           sla_out.rddata(c_word_w-1 DOWNTO 0) <= c_design_note(vA-c_nof_fixed_regs-c_nof_design_name_regs-c_nof_stamp_regs);
diff --git a/boards/uniboard2b/libraries/unb2b_board/src/vhdl/unb2b_board_pkg.vhd b/boards/uniboard2b/libraries/unb2b_board/src/vhdl/unb2b_board_pkg.vhd
index 18e01b37d7099eb2ed393c77ccf2b160ccdcb1bb..309816031d9c94b860c6f3b768c05ee894695609 100644
--- a/boards/uniboard2b/libraries/unb2b_board/src/vhdl/unb2b_board_pkg.vhd
+++ b/boards/uniboard2b/libraries/unb2b_board/src/vhdl/unb2b_board_pkg.vhd
@@ -86,6 +86,7 @@ PACKAGE unb2b_board_pkg IS
   --CONSTANT c_unb2b_board_tr_ring              : t_c_unb2b_board_tr := (2, 4, 0); -- per node: 2 buses with 12 channels (testing)
 
   CONSTANT c_unb2b_board_tr_qsfp              : t_c_unb2b_board_tr := (6, 4,  6); -- per node: 6 buses with 4 channels
+  CONSTANT c_unb2b_board_tr_jesd204b          : t_c_unb2b_board_tr := (1, 12,  0); -- per node: 1 buses with 12 channels
   CONSTANT c_unb2b_board_tr_qsfp_nof_leds     : NATURAL := c_unb2b_board_tr_qsfp.nof_bus * 2; -- 2 leds per qsfp
 
 
diff --git a/boards/uniboard2c/designs/unb2c_test/hdllib.cfg b/boards/uniboard2c/designs/unb2c_test/hdllib.cfg
index c604d6b3dec82e2fea0e877145b7499aff6e016d..bbdfc1189b860cd68db7f0ea7cee6d227c1fbd0b 100644
--- a/boards/uniboard2c/designs/unb2c_test/hdllib.cfg
+++ b/boards/uniboard2c/designs/unb2c_test/hdllib.cfg
@@ -1,8 +1,8 @@
 hdl_lib_name = unb2c_test
 hdl_library_clause_name = unb2c_test_lib
-hdl_lib_uses_synth = common technology mm unb2c_board unb2c_board_10gbe dp eth tech_tse tr_10GbE diagnostics diag tech_mac_10g io_ddr tech_ddr tech_jesd204b
+hdl_lib_uses_synth = common technology mm unb2c_board unb2c_board_10gbe dp eth tech_tse diagnostics diag tech_mac_10g io_ddr tech_ddr tech_jesd204b
 hdl_lib_uses_sim = 
-hdl_lib_technology = ip_arria10_e1sg
+hdl_lib_technology = ip_arria10_e2sg
 
 synth_files =
     src/vhdl/qsys_unb2c_test_pkg.vhd
@@ -81,7 +81,7 @@ quartus_ip_files =
     $RADIOHDL_BUILD_DIR/unb2c/quartus/unb2c_test/ip/qsys_unb2c_test/qsys_unb2c_test_reg_fpga_voltage_sens.ip
     $RADIOHDL_BUILD_DIR/unb2c/quartus/unb2c_test/ip/qsys_unb2c_test/qsys_unb2c_test_reg_io_ddr_MB_I.ip
     $RADIOHDL_BUILD_DIR/unb2c/quartus/unb2c_test/ip/qsys_unb2c_test/qsys_unb2c_test_reg_io_ddr_MB_II.ip
-    $RADIOHDL_BUILD_DIR/unb2c/quartus/unb2c_test/ip/qsys_unb2c_test/qsys_unb2c_test_reg_ip_arria10_e1sg_phy_10gbase_r_24.ip
+    $RADIOHDL_BUILD_DIR/unb2c/quartus/unb2c_test/ip/qsys_unb2c_test/qsys_unb2c_test_reg_ip_arria10_e2sg_phy_10gbase_r_24.ip
     $RADIOHDL_BUILD_DIR/unb2c/quartus/unb2c_test/ip/qsys_unb2c_test/qsys_unb2c_test_reg_mmdp_ctrl.ip
     $RADIOHDL_BUILD_DIR/unb2c/quartus/unb2c_test/ip/qsys_unb2c_test/qsys_unb2c_test_reg_mmdp_data.ip
     $RADIOHDL_BUILD_DIR/unb2c/quartus/unb2c_test/ip/qsys_unb2c_test/qsys_unb2c_test_reg_remu.ip
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_avs_eth_0.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_avs_eth_0.ip
index 79b3a5899b1efab4466b832471900e4670615d9d..56e97b15e1e0b335cf2d02c0529c486095dcccdd 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_avs_eth_0.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_avs_eth_0.ip
@@ -2113,7 +2113,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_avs_eth_1.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_avs_eth_1.ip
index 14fb3bb53152524ebc83e21155a8bf13c3a41b87..b23ec49091f682a0f5e44b3982163aa87e96dd37 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_avs_eth_1.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_avs_eth_1.ip
@@ -2113,7 +2113,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_clk_0.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_clk_0.ip
index def3b39e748641e1db877c1f052974478b2fccba..67fe610d38b05defeca85fe5c08eb96fb43a0c02 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_clk_0.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_clk_0.ip
@@ -262,7 +262,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_cpu_0.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_cpu_0.ip
index 7030c2957c1de49a420972a6bc07fbd40f7f1081..665ee5cc4ad7650e949d0755f460080610facb49 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_cpu_0.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_cpu_0.ip
@@ -2313,7 +2313,7 @@
         <spirit:parameter>
           <spirit:name>AUTO_DEVICE</spirit:name>
           <spirit:displayName>Auto DEVICE</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="AUTO_DEVICE">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="AUTO_DEVICE">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>AUTO_DEVICE_SPEEDGRADE</spirit:name>
@@ -2541,7 +2541,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_jtag_uart_0.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_jtag_uart_0.ip
index 3656763aafd97f62177662d57329682e40f3d930..e96f6999a725489632e7b549579b1496b69ca632 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_jtag_uart_0.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_jtag_uart_0.ip
@@ -678,7 +678,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_onchip_memory2_0.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_onchip_memory2_0.ip
index 690d861873e61f7fb7e05dd98dfdf5bde2ffb3e6..e4a43ca029a28e27f71a1a75f8bacf7ed58ebbda 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_onchip_memory2_0.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_onchip_memory2_0.ip
@@ -806,7 +806,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_pio_pps.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_pio_pps.ip
index 580d9b89d4be042002fea9ba57addde20382e6ee..0fc7cbf33f8af97e25758557de85c2ff965aee14 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_pio_pps.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_pio_pps.ip
@@ -794,7 +794,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_pio_system_info.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_pio_system_info.ip
index 0054f4857dbad25fb616f158f2f570388079ba77..f95fe0960b3ddfa1c03346453078542e5d3a304b 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_pio_system_info.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_pio_system_info.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_pio_wdi.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_pio_wdi.ip
index f9f52fb66ea835a57fbf3803c8870e0aeebf90d7..5df43787327a674a5e070f02e04a753164323c18 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_pio_wdi.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_pio_wdi.ip
@@ -691,7 +691,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_bg_10gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_bg_10gbe.ip
index 1b2cd68b36ff1d860ef27fc53e7bcbb9df9b569a..6aea5274b4741528600c9412363344b9ce184a51 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_bg_10gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_bg_10gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_bg_1gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_bg_1gbe.ip
index 1e88863e66442449801df642458b77160ac2e401..7ca9c88d947d5e1da6e375ee386b56abf20d3c76 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_bg_1gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_bg_1gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_data_buffer_10gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_data_buffer_10gbe.ip
index 221dbd74210ba6799e35dd4c041215008b409b8f..cb022f3b6626073aa25259f011db8a022b394de4 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_data_buffer_10gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_data_buffer_10gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_data_buffer_1gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_data_buffer_1gbe.ip
index 1b22cf98b50616faf453bd1e1a62f83a5a6d2d24..ff3598f395e39bc165cf2ea20092fa7615e19f84 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_data_buffer_1gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_data_buffer_1gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_data_buffer_ddr_MB_I.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_data_buffer_ddr_MB_I.ip
index 1f8d121c5078ff5d83cccd31b04bdd9e7cbf1794..1a44f7843747a5611896745aee1f1679c5c037a6 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_data_buffer_ddr_MB_I.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_data_buffer_ddr_MB_I.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_data_buffer_ddr_MB_II.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_data_buffer_ddr_MB_II.ip
index b7f61b668ebe6b554748a3bc9ff5915b0813eca2..cd7bc55d8ae014cca8107305fbde0c467a01db2f 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_data_buffer_ddr_MB_II.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_ram_diag_data_buffer_ddr_MB_II.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_bsn_monitor_10GbE.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_bsn_monitor_10GbE.ip
index cc0973228b8645d9a6f27622d706ab742e0e21db..04f110f0c02cc38eb4b00457721f0691de1f1cd8 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_bsn_monitor_10GbE.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_bsn_monitor_10GbE.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_bsn_monitor_1GbE.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_bsn_monitor_1GbE.ip
index bde41125cb554e849a01a5f81a318bfb57b9c246..3e2cb467b23ddcc63187b53948d8878482f29eb3 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_bsn_monitor_1GbE.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_bsn_monitor_1GbE.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_bg_10gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_bg_10gbe.ip
index 16d08a29c94694b6dfb461198de1be980a95cd8c..1080a40d91006bf08f30139739187e05add17765 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_bg_10gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_bg_10gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_bg_1gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_bg_1gbe.ip
index 272067b432c0649a645f7c3c892110a0f6ea3f57..bfbca94713a7218342aa1309b648ced44697ca93 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_bg_1gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_bg_1gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_data_buffer_10gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_data_buffer_10gbe.ip
index 8f1bce2aca9f02c115b4716c9e42a53d34896fce..a5461da32fa8bd6da549d5283b31c8adbfc045cf 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_data_buffer_10gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_data_buffer_10gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_data_buffer_1gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_data_buffer_1gbe.ip
index 75fa41020f308913848170f48225cdfb9f4f2c49..ee0c747a6650817daf21eef1cd884354a8b0e573 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_data_buffer_1gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_data_buffer_1gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_data_buffer_ddr_MB_I.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_data_buffer_ddr_MB_I.ip
index 0c935595baed1cc5406f09df539b0a8e7955a7df..5586ece584846027685a69d9bd4764df0b4a03a2 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_data_buffer_ddr_MB_I.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_data_buffer_ddr_MB_I.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_data_buffer_ddr_MB_II.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_data_buffer_ddr_MB_II.ip
index 570b43fe595d831dd1b38a9eeebb1e070e39113c..a619348527db6c9a85ddd4b8af9a83be71ee755b 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_data_buffer_ddr_MB_II.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_data_buffer_ddr_MB_II.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_rx_seq_10gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_rx_seq_10gbe.ip
index 678a37922be9cc41bf45a9ef4574ade9a0584d60..ff7aa05827ea2254a66028e71e33023960f0897e 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_rx_seq_10gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_rx_seq_10gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_rx_seq_1gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_rx_seq_1gbe.ip
index a4535c4328eadbb399b882958c07092f23765381..d2ea4df8fd5f1bb0bf6888d850c1142da64756eb 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_rx_seq_1gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_rx_seq_1gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_rx_seq_ddr_MB_I.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_rx_seq_ddr_MB_I.ip
index bdcb01edaff260fe25b19f196bb55ebb336f1b97..bce420f655b45e74eadace34b69803737b80b4fe 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_rx_seq_ddr_MB_I.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_rx_seq_ddr_MB_I.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_rx_seq_ddr_MB_II.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_rx_seq_ddr_MB_II.ip
index fa6ae6d891b5418f66318a38a4b2781dfe983fab..ad87fa441de9417783c1fc182378fce9a94b081e 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_rx_seq_ddr_MB_II.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_rx_seq_ddr_MB_II.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_tx_seq_10gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_tx_seq_10gbe.ip
index ab6bfb8d40c00b3683c89a41288f8b5340417cb4..eb4f52567f2cdf0c28147e7a4336ddad9e015e41 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_tx_seq_10gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_tx_seq_10gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_tx_seq_1gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_tx_seq_1gbe.ip
index d3288c52db8499909a58c48f56a10a5ce03c590e..6da44cfde4d3f39ef25bfc9f38dd82a803e5a705 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_tx_seq_1gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_tx_seq_1gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_tx_seq_ddr_MB_I.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_tx_seq_ddr_MB_I.ip
index 5c73f47a53bb8f0d1dbe33d0590c5d39ba0f4de3..67059b9b8c8e920cdabc6df41f728018578ae36e 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_tx_seq_ddr_MB_I.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_tx_seq_ddr_MB_I.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_tx_seq_ddr_MB_II.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_tx_seq_ddr_MB_II.ip
index 9de7b47f8bd32eef0e011476324b45cf293f6b7b..95ccea36ce1618bf0c6098ea2ff287354cac6276 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_tx_seq_ddr_MB_II.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_diag_tx_seq_ddr_MB_II.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_dpmm_ctrl.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_dpmm_ctrl.ip
index 308ac6c82035953f5754d874e65367633023abd9..3eea81d3935e70b0bd4945164c2be0bcda32ec48 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_dpmm_ctrl.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_dpmm_ctrl.ip
@@ -794,7 +794,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_dpmm_data.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_dpmm_data.ip
index 03355dbd5852a0f0be8995f53192e8397fb17e4e..809ee8b43b3857c8d0a4a934aca7b6d4ab2cf708 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_dpmm_data.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_dpmm_data.ip
@@ -794,7 +794,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_epcs.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_epcs.ip
index 461fbc6defd59ec65ca64e507bd7074e72b133d4..d74a6911c97529cac65fc254c85570ac0a1a9d37 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_epcs.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_epcs.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_eth10g_back0.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_eth10g_back0.ip
index cb2744cc6fa0f346873f6ac7566dd60c5b1f7a9e..b0197cdf337e3b6757f31d87620e759ddd1fba19 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_eth10g_back0.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_eth10g_back0.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_eth10g_back1.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_eth10g_back1.ip
index f4e565c6e06896e98aa1674d183717a721b3605c..407dac1a3c683d87275d1133fb637052abde1bdf 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_eth10g_back1.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_eth10g_back1.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_eth10g_qsfp_ring.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_eth10g_qsfp_ring.ip
index 1639d97cca7744f2ba8f8f3e0ac933236aed4292..d8fcadf6c2f8f2fd8e2d1f6e47a91c2fdac79980 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_eth10g_qsfp_ring.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_eth10g_qsfp_ring.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_fpga_temp_sens.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_fpga_temp_sens.ip
index 3eb45890c039c0110ee8875bbaa19e2eda4c4a3f..08f8ced715141ef3729445e4ccad40826451c4ad 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_fpga_temp_sens.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_fpga_temp_sens.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_fpga_voltage_sens.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_fpga_voltage_sens.ip
index 549550deb92a916730cc8b546f58823169f80db0..5ec970b45528feb8e5147639873c0415f6638ae7 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_fpga_voltage_sens.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_fpga_voltage_sens.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_io_ddr_MB_I.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_io_ddr_MB_I.ip
index beb34748b39567497aba541e0bb9fdfe59a23002..0622cc7bd349a5a20568cd8636d0b6bee6e23414 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_io_ddr_MB_I.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_io_ddr_MB_I.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_io_ddr_MB_II.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_io_ddr_MB_II.ip
index 444b2c5bb0b7d7b8a9de7af2205ee0c2cda29d8d..b3e47fcb999836498b1b9e9116c9b59a86ab40aa 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_io_ddr_MB_II.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_io_ddr_MB_II.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_ip_arria10_e1sg_phy_10gbase_r_24.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_ip_arria10_e1sg_phy_10gbase_r_24.ip
index 9b00700d1f9cf928e857c1e5e75561de03c7386d..bbee9e92f175f76ba0ac0152d97801a45b3c0262 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_ip_arria10_e1sg_phy_10gbase_r_24.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_ip_arria10_e1sg_phy_10gbase_r_24.ip
@@ -866,7 +866,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_mmdp_ctrl.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_mmdp_ctrl.ip
index 4acb70abf0d21bb813ef71c5574f69fab66d3768..07fdc0b62d9cbc47ed8235453233dbf650efecfa 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_mmdp_ctrl.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_mmdp_ctrl.ip
@@ -794,7 +794,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_mmdp_data.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_mmdp_data.ip
index 31561a9f9e6c099319d6c1a32c4ceb4e02b8a93b..dfa6235c51b64a6008c45ad38b6601b94f7de67b 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_mmdp_data.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_mmdp_data.ip
@@ -794,7 +794,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_remu.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_remu.ip
index 037c8d3873f7f6a7060b618d9a887abe83729663..487d451c987cea22bc63c4b68de03150d6b717ab 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_remu.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_remu.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_tr_10GbE_back0.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_tr_10GbE_back0.ip
index 02adff717966b2e06bdefac482a1032a0086e087..d142aa6c28f19915254a50cfcda4a79420771045 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_tr_10GbE_back0.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_tr_10GbE_back0.ip
@@ -866,7 +866,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_tr_10GbE_back1.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_tr_10GbE_back1.ip
index 32e028c5cdbda71f65f803bd5388c4c9764c4295..f8a8cbeb62f0a310f408eb4103f77a7a1560b044 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_tr_10GbE_back1.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_tr_10GbE_back1.ip
@@ -866,7 +866,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_tr_10GbE_qsfp_ring.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_tr_10GbE_qsfp_ring.ip
index ebad59d49f96a65f38e8a35a78e6ee4aa0518aeb..787c48a0d1d4663f630951dcdb90575c3d90ea9b 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_tr_10GbE_qsfp_ring.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_tr_10GbE_qsfp_ring.ip
@@ -866,7 +866,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_unb_pmbus.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_unb_pmbus.ip
index e063ea1b4bb0afbbbc0c2579343b9cf18012f9ee..eb5afc3c46e88e9f85b6d19ce9643774a919bb6f 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_unb_pmbus.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_unb_pmbus.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_unb_sens.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_unb_sens.ip
index ea9c5f771bd7615704a18e58d80111d734e194f6..d2bbee1bff02812ecbd76c518b92a4ddb59fa08d 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_unb_sens.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_unb_sens.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_wdi.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_wdi.ip
index 0d47108294cdc9f979bcb67d252569514126741f..c1cf7e8d858eb6af7f532058cf5b69967efd9ef1 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_wdi.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_reg_wdi.ip
@@ -794,7 +794,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_rom_system_info.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_rom_system_info.ip
index fae2312cbd04bb48fc7e3d0fe521267bdde988f6..12683babff30bfe00626a97fff62cc194c88ab65 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_rom_system_info.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_rom_system_info.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_timer_0.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_timer_0.ip
index 61238761957e8a1d531f60a789a4be3b4378a97e..338507b634003a085ca5c6635b0e743427831c14 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_timer_0.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/qsys_unb2c_test_timer_0.ip
@@ -671,7 +671,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/reg_10gbase_r_24.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/reg_10gbase_r_24.ip
index ca830213547ce49bab58f4db789b2553ce048b3f..016dd1398926366363b21c45b731bae89fc4663b 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/reg_10gbase_r_24.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test/reg_10gbase_r_24.ip
@@ -866,7 +866,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_avs_eth_0.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_avs_eth_0.ip
index cc9970fa257da6528834130680d09b72510279af..8a1c8fb493d65a07eb5e0cb7b887bdbe9e31007c 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_avs_eth_0.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_avs_eth_0.ip
@@ -2113,7 +2113,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_avs_eth_1.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_avs_eth_1.ip
index 0749c3d40f68b56a54bdf70431d6f90ac64dac38..e76c1a51a2485b5df1827f1af3189c9c2742cad6 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_avs_eth_1.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_avs_eth_1.ip
@@ -2113,7 +2113,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_clk_0.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_clk_0.ip
index 7b4dabfe746ffd210a6641100edcf7e754d54f1d..44ffa5747a23af08d422bc336c0da7198dde6a88 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_clk_0.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_clk_0.ip
@@ -262,7 +262,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_cpu_0.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_cpu_0.ip
index 3b4000e2c36a1e701510ce09a5b14788ed2e6a86..2c1f53033445ae918e9443c762051a38f1466227 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_cpu_0.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_cpu_0.ip
@@ -2313,7 +2313,7 @@
         <spirit:parameter>
           <spirit:name>AUTO_DEVICE</spirit:name>
           <spirit:displayName>Auto DEVICE</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="AUTO_DEVICE">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="AUTO_DEVICE">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>AUTO_DEVICE_SPEEDGRADE</spirit:name>
@@ -2541,7 +2541,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_jtag_uart_0.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_jtag_uart_0.ip
index 10fd96ca18402df82a370bebe203c78bcbd509f6..a3c2e633e2d4baaa41ff821a0ec5419c560625b3 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_jtag_uart_0.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_jtag_uart_0.ip
@@ -678,7 +678,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_onchip_memory2_0.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_onchip_memory2_0.ip
index a2efd05d439aefcee5f46c8d5a4cf49c86f138ba..250d28dcdce7a83582329c28c058cf2924f00cbd 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_onchip_memory2_0.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_onchip_memory2_0.ip
@@ -806,7 +806,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_pio_pps.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_pio_pps.ip
index c2ddca74b12b5403c3e75510d22cf90600bfe330..a1467e21d765f89c4a9410a08293e43d1c7e4acc 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_pio_pps.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_pio_pps.ip
@@ -794,7 +794,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_pio_system_info.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_pio_system_info.ip
index d853bbd88b8b235c4eb7389b57b682edb06fabdd..f7b9903be065818bb1df8dbc0d9df2a41a6b2a1f 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_pio_system_info.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_pio_system_info.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_pio_wdi.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_pio_wdi.ip
index 9abff9dfd1d23d1407831d17c481ebba511229f1..c60bf985dce4e3dd8db1da906089e1017c1d7ab4 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_pio_wdi.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_pio_wdi.ip
@@ -691,7 +691,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_bg_10gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_bg_10gbe.ip
index 6882e4e13004cdf6b2491f50e18877976f810f4d..5e832af69514c8dc2f23c626e3aff0fe1487f5a5 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_bg_10gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_bg_10gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_bg_1gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_bg_1gbe.ip
index b19c9a7b042f2adc87e6a548c811b588f89607c4..c2e034634789c37f0bd64e6cc51d5317ece5192b 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_bg_1gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_bg_1gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_data_buffer_10gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_data_buffer_10gbe.ip
index 0f7fc90622da248a67a1d05ff6ff0a3861908b7e..607ffee9ab8f2d684d29f33131695f7119a13c88 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_data_buffer_10gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_data_buffer_10gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_data_buffer_1gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_data_buffer_1gbe.ip
index 344acfe455e82d7eb4f67658e83b1db0a4bdca85..804c9dc648b39e29678ea4072ccf687b74a45664 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_data_buffer_1gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_data_buffer_1gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_data_buffer_ddr_MB_I.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_data_buffer_ddr_MB_I.ip
index db1d5f5b84fb3c62605f28c2dedcace42d02d170..6c6b07e1f7f2ea0c42ad70bb2b9cfabd41372144 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_data_buffer_ddr_MB_I.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_data_buffer_ddr_MB_I.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_data_buffer_ddr_MB_II.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_data_buffer_ddr_MB_II.ip
index 73abe3d950645596bc62feab72f151f989e06002..c704d55c06ef01aff6d498370b61d3703828fbe5 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_data_buffer_ddr_MB_II.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_ram_diag_data_buffer_ddr_MB_II.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_10gbase_r_24.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_10gbase_r_24.ip
index c793022ae97b1c3dde6c7643c410e42fc658dfc4..27e867c6d414893c538de8e83a6eec66dbbb8851 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_10gbase_r_24.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_10gbase_r_24.ip
@@ -866,7 +866,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_bsn_monitor_10GbE.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_bsn_monitor_10GbE.ip
index dea97bb3cc6adc8319b4daedf333c1348396d9a9..882933f24fc990a90544e4967bff836a5da171c6 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_bsn_monitor_10GbE.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_bsn_monitor_10GbE.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_bsn_monitor_1GbE.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_bsn_monitor_1GbE.ip
index a82fb5145c9e3310da59ae3b48cbbd36eabd6f5b..537f71cc3844a9b1f1d4b0be6dc70264ce3b262e 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_bsn_monitor_1GbE.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_bsn_monitor_1GbE.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_bg_10gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_bg_10gbe.ip
index 811f0c94e155425f2ec44537d8b8c2e833c9d7df..c54210a64cecb2aeec8334e0cbf6325aecaa4d6c 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_bg_10gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_bg_10gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_bg_1gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_bg_1gbe.ip
index 91aa2df440c53fbdd792630c7bd2a0cafe3d564c..3fd50e5d8cb407033a86fd7863a3f6d6497f1a29 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_bg_1gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_bg_1gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_data_buffer_10gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_data_buffer_10gbe.ip
index ac8f5c9e11f332b80683a6fed918644216e994cd..42b9a19c9cbfc0890327b5bad858093ea7df93bb 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_data_buffer_10gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_data_buffer_10gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_data_buffer_1gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_data_buffer_1gbe.ip
index 7a2e6a44bad2a0776999ff55550d77662e1140dc..1a136b533d81c55471c2a7eca4070539b48852d1 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_data_buffer_1gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_data_buffer_1gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_data_buffer_ddr_MB_I.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_data_buffer_ddr_MB_I.ip
index d5003b87170ee0372f65de36e56d55b71ad8db89..2728ae52275668aa933981169bf42c9e744168e9 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_data_buffer_ddr_MB_I.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_data_buffer_ddr_MB_I.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_data_buffer_ddr_MB_II.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_data_buffer_ddr_MB_II.ip
index 78c4fe956dbcefed4a8e7cae15abe8a444a4e9c5..05f8342a065bf2acbf26a804897cd93121b16052 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_data_buffer_ddr_MB_II.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_data_buffer_ddr_MB_II.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_rx_seq_10gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_rx_seq_10gbe.ip
index 99a828dc708b7d7bfef698ed58b2b7a3b68da93d..8d5bb3a060badf747c6a2f9daeb2388e3820424d 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_rx_seq_10gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_rx_seq_10gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_rx_seq_1gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_rx_seq_1gbe.ip
index 5f93388b7132da9cf9a626158d023db4965c82a6..18abb373afac027df915379ca0607e661f2de890 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_rx_seq_1gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_rx_seq_1gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_rx_seq_ddr_MB_I.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_rx_seq_ddr_MB_I.ip
index 08fc0477f7ed22fd19a12f734c441c8248e808da..46aea8eeca54bbdf81c42cd65ef5d0e06c3132f6 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_rx_seq_ddr_MB_I.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_rx_seq_ddr_MB_I.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_rx_seq_ddr_MB_II.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_rx_seq_ddr_MB_II.ip
index 96b9abad4fc3e56a148c69b3afa56065d58179e7..2f9fb90349c5a27a4f10267a051a8454da71d1e3 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_rx_seq_ddr_MB_II.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_rx_seq_ddr_MB_II.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_tx_seq_10gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_tx_seq_10gbe.ip
index f5f0494b194720ac3f011639adc780be46f43ad6..07ed81dc899fa2ad2fb2c0a228e725c9e4b58439 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_tx_seq_10gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_tx_seq_10gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_tx_seq_1gbe.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_tx_seq_1gbe.ip
index 19c6db3a2930f5c22d78a4125853f3373ec04d39..7796feab8ea0678acc149988805f1a886fd48fb5 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_tx_seq_1gbe.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_tx_seq_1gbe.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_tx_seq_ddr_MB_I.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_tx_seq_ddr_MB_I.ip
index e6eac2b634d206269a74acda880ede44423fe6e7..c3e59c9aa2d6152d683a24d4919f2942b7c77117 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_tx_seq_ddr_MB_I.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_tx_seq_ddr_MB_I.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_tx_seq_ddr_MB_II.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_tx_seq_ddr_MB_II.ip
index 94a33b31890bd2de153683a1e17a5ee87dfa329c..cd0c51fcd47d13cc59abb934a298f151864ad6a6 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_tx_seq_ddr_MB_II.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_diag_tx_seq_ddr_MB_II.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_dpmm_ctrl.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_dpmm_ctrl.ip
index 42772fa8048838efa0c70d917a6fe73e79fa67aa..ca1065cf8f5b3ccc08df7fdfee19276f06c3d0d2 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_dpmm_ctrl.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_dpmm_ctrl.ip
@@ -794,7 +794,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_dpmm_data.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_dpmm_data.ip
index 6d1579976753ab5d5a977106422c03e554a9c17c..e68f3651c8ab3f31b29bfe313aac8d3d69cf1431 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_dpmm_data.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_dpmm_data.ip
@@ -794,7 +794,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_epcs.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_epcs.ip
index 3dd7b66fa4e72874ecc5bf86f1ed363f562c155d..9d5e28c86b9871bf9e6639a5c02f0c179b30c015 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_epcs.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_epcs.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_eth10g_back0.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_eth10g_back0.ip
index 231dcc14b75d2077160fb871a958be340ced7098..eb977aef759ef6b6fcdd301586d36b94aa3bbb76 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_eth10g_back0.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_eth10g_back0.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_eth10g_back1.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_eth10g_back1.ip
index 9a3c68c4fb0fee92fb8fb3cfbdacdd7ef6eafa94..ef75d6e5f4ea57dd8f6d2e3973fffcaf78d08aef 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_eth10g_back1.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_eth10g_back1.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_eth10g_qsfp_ring.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_eth10g_qsfp_ring.ip
index 8263825f7391c5840abfad27e84a209d25a49ce1..6e0139197621670b4eb5eebf9e8021c099b171f4 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_eth10g_qsfp_ring.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_eth10g_qsfp_ring.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_fpga_temp_sens.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_fpga_temp_sens.ip
index 5328273445e1ece9e1189f1d7522290dee6d9b78..496ce83a585036d86f82cf1b465e3cb3731a15c4 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_fpga_temp_sens.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_fpga_temp_sens.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_fpga_voltage_sens.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_fpga_voltage_sens.ip
index 3814c6fb88118d86e3aa3a698b9fd20251a63135..f19754128e9420c5a9dbc3ea61afb56a45403f0d 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_fpga_voltage_sens.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_fpga_voltage_sens.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_io_ddr_MB_I.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_io_ddr_MB_I.ip
index 23a4a382a7a086813701552dec4b44b5cfdb46bc..fac5c0142fc029766ba3eecfc7602b7e4ccf3c70 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_io_ddr_MB_I.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_io_ddr_MB_I.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_io_ddr_MB_II.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_io_ddr_MB_II.ip
index c08d02c2aed8bca9f77875f4b4f2c307a9b93196..76485967df2264b02163f055de4e8733b41084d8 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_io_ddr_MB_II.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_io_ddr_MB_II.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_mmdp_ctrl.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_mmdp_ctrl.ip
index d1737e6d7dad230828fce53c64a78bf249a1afbf..c73075cede38a993de218a2f82e5083fd9d846ac 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_mmdp_ctrl.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_mmdp_ctrl.ip
@@ -794,7 +794,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_mmdp_data.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_mmdp_data.ip
index bafc4638fe2f20cc10eee2c7023e3a26e328fd3d..56bef00eb1926a12d2624a5c1da95564d3ad645a 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_mmdp_data.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_mmdp_data.ip
@@ -794,7 +794,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_remu.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_remu.ip
index fd2ebbe0d4427983821d4c7051889d2971541810..2707441d3e83650126a0949ccbc9ed9c504d0172 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_remu.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_remu.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_tr_10GbE_back0.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_tr_10GbE_back0.ip
index 7ead2f72b13c9722536db1e4f8fcc73ed490bf9a..6f4c801f791fa917da01dc08eeee8fca0e821130 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_tr_10GbE_back0.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_tr_10GbE_back0.ip
@@ -866,7 +866,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_tr_10GbE_back1.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_tr_10GbE_back1.ip
index f6bd23c9779eb19b7f5e57b9a78d01f7b6aba27d..fd361d58eefa7096b5204abe133ee6957ae71312 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_tr_10GbE_back1.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_tr_10GbE_back1.ip
@@ -866,7 +866,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_tr_10GbE_qsfp_ring.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_tr_10GbE_qsfp_ring.ip
index 9d5b15a582861404141ee185c036d6382bd32820..1fb29fe57b3fce41f26306c72b40ca644e1f21d1 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_tr_10GbE_qsfp_ring.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_tr_10GbE_qsfp_ring.ip
@@ -866,7 +866,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_unb_pmbus.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_unb_pmbus.ip
index 339a5270f9f78869d1973ca56e4a539da798e75e..58609c0c7482977336e24a4026f5deab7e604745 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_unb_pmbus.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_unb_pmbus.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_unb_sens.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_unb_sens.ip
index b82f2d51826b61d92ce909027fd01d7504b30347..01be7ee24da001cdfdc914b546f618e146c65b9c 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_unb_sens.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_unb_sens.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_wdi.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_wdi.ip
index db9ede53128f341965faca2aacd27780eea0a33a..8811a5b8fced7258b23db45666d1bc4c14010cf1 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_wdi.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_reg_wdi.ip
@@ -794,7 +794,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_rom_system_info.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_rom_system_info.ip
index 85594ed63a1b566e67a1c621fc3d81e5b39492d1..65ad1ec4b3cd2238427cad512212e9c2f7885c13 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_rom_system_info.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_rom_system_info.ip
@@ -802,7 +802,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_timer_0.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_timer_0.ip
index 6707fa93f269a652a3db45383b5411fe186ca5c1..8aa94b3cd4a0338a768c034f5ae643c4fe34d5a7 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_timer_0.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/qsys_unb2c_test_timer_0.ip
@@ -671,7 +671,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/ip/reg_10gbase_r_24.ip b/boards/uniboard2c/designs/unb2c_test/quartus/ip/reg_10gbase_r_24.ip
index 2ca1e78499b5b5fb62d1c42492831cd8ec3bf263..2f752a54314d810324007aa6147e8c9428ad0d9b 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/ip/reg_10gbase_r_24.ip
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/ip/reg_10gbase_r_24.ip
@@ -866,7 +866,7 @@
         <spirit:parameter>
           <spirit:name>device</spirit:name>
           <spirit:displayName>Device</spirit:displayName>
-          <spirit:value spirit:format="string" spirit:id="device">10AX115U2F45E1SG</spirit:value>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
         </spirit:parameter>
         <spirit:parameter>
           <spirit:name>deviceFamily</spirit:name>
diff --git a/boards/uniboard2c/designs/unb2c_test/quartus/qsys_unb2c_test.qsys b/boards/uniboard2c/designs/unb2c_test/quartus/qsys_unb2c_test.qsys
index 6e468af2c9fedcd4d24b4074a034d44a455d4641..147c147b96513fea886299f1a97c10747b55b050 100644
--- a/boards/uniboard2c/designs/unb2c_test/quartus/qsys_unb2c_test.qsys
+++ b/boards/uniboard2c/designs/unb2c_test/quartus/qsys_unb2c_test.qsys
@@ -10,6 +10,9 @@
    tool="QsysPro" />
  <parameter name="bonusData"><![CDATA[bonusData 
 {
+   element $system
+   {
+   }
    element avs_eth_0
    {
       datum _sortIndex
@@ -923,10 +926,9 @@
    }
 }
 ]]></parameter>
- <parameter name="clockCrossingAdapter" value="HANDSHAKE" />
- <parameter name="device" value="10AX115U2F45E1SG" />
+ <parameter name="device" value="10AX115U3F45E2SG" />
  <parameter name="deviceFamily" value="Arria 10" />
- <parameter name="deviceSpeedGrade" value="1" />
+ <parameter name="deviceSpeedGrade" value="2" />
  <parameter name="fabricMode" value="QSYS" />
  <parameter name="generateLegacySim" value="false" />
  <parameter name="generationId" value="0" />
@@ -934,7 +936,6 @@
  <parameter name="hdlLanguage" value="VERILOG" />
  <parameter name="hideFromIPCatalog" value="false" />
  <parameter name="lockedInterfaceDefinition" value="" />
- <parameter name="maxAdditionalLatency" value="1" />
  <parameter name="sopcBorderPoints" value="false" />
  <parameter name="systemHash" value="0" />
  <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
@@ -951,18 +952,6 @@
                 <consumedSystemInfos/>
             </value>
         </entry>
-        <entry>
-            <key>rom_system_info_clk</key>
-            <value>
-                <connectionPointName>rom_system_info_clk</connectionPointName>
-                <suppliedSystemInfos>
-                    <entry>
-                        <key>CLOCK_RATE</key>
-                    </entry>
-                </suppliedSystemInfos>
-                <consumedSystemInfos/>
-            </value>
-        </entry>
     </connPtSystemInfos>
 </systemInfosDefinition>]]></parameter>
  <parameter name="systemScripts" value="" />
@@ -4250,6 +4239,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_avs_eth_0</hdlLibraryName>
     <fileSets>
@@ -4278,6 +4268,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="avs_eth_1"
@@ -5791,6 +5782,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_avs_eth_1</hdlLibraryName>
     <fileSets>
@@ -5819,6 +5811,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="clk_0"
@@ -6026,6 +6019,160 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary"><![CDATA[<boundaryDefinition>
+    <interfaces>
+        <interface>
+            <name>clk_in</name>
+            <type>clock</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>in_clk</name>
+                    <role>clk</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap>
+                    <entry>
+                        <key>qsys.ui.export_name</key>
+                        <value>clk</value>
+                    </entry>
+                </assignmentValueMap>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>clockRate</key>
+                        <value>125000000</value>
+                    </entry>
+                    <entry>
+                        <key>externallyDriven</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>ptfSchematicName</key>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>clk_in_reset</name>
+            <type>reset</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>reset_n</name>
+                    <role>reset_n</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap>
+                    <entry>
+                        <key>qsys.ui.export_name</key>
+                        <value>reset</value>
+                    </entry>
+                </assignmentValueMap>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>NONE</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>clk</name>
+            <type>clock</type>
+            <isStart>true</isStart>
+            <ports>
+                <port>
+                    <name>clk_out</name>
+                    <role>clk</role>
+                    <direction>Output</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedDirectClock</key>
+                        <value>clk_in</value>
+                    </entry>
+                    <entry>
+                        <key>clockRate</key>
+                        <value>125000000</value>
+                    </entry>
+                    <entry>
+                        <key>clockRateKnown</key>
+                        <value>true</value>
+                    </entry>
+                    <entry>
+                        <key>externallyDriven</key>
+                        <value>true</value>
+                    </entry>
+                    <entry>
+                        <key>ptfSchematicName</key>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>clk_reset</name>
+            <type>reset</type>
+            <isStart>true</isStart>
+            <ports>
+                <port>
+                    <name>reset_n_out</name>
+                    <role>reset_n</role>
+                    <direction>Output</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>associatedDirectReset</key>
+                        <value>clk_in_reset</value>
+                    </entry>
+                    <entry>
+                        <key>associatedResetSinks</key>
+                        <value>clk_in_reset</value>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>NONE</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+    </interfaces>
+</boundaryDefinition>]]></parameter>
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_clk_0</hdlLibraryName>
     <fileSets>
@@ -6054,6 +6201,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="cpu_0"
@@ -7231,7 +7379,7 @@
                     <consumedSystemInfos>
                         <entry>
                             <key>CUSTOM_INSTRUCTION_SLAVES</key>
-                            <value>&lt;info/&gt;</value>
+                            <value></value>
                         </entry>
                     </consumedSystemInfos>
                 </value>
@@ -7307,6 +7455,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_cpu_0</hdlLibraryName>
     <fileSets>
@@ -7536,6 +7685,7 @@
         </entry>
     </assignmentValueMap>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="jtag_uart_0"
@@ -8063,6 +8213,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_jtag_uart_0</hdlLibraryName>
     <fileSets>
@@ -8124,6 +8275,7 @@
         </entry>
     </assignmentValueMap>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="onchip_memory2_0"
@@ -8509,6 +8661,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_onchip_memory2_0</hdlLibraryName>
     <fileSets>
@@ -8634,6 +8787,7 @@
         </entry>
     </assignmentValueMap>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="pio_pps"
@@ -9221,6 +9375,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_pio_pps</hdlLibraryName>
     <fileSets>
@@ -9249,6 +9404,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="pio_system_info"
@@ -9836,6 +9992,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_pio_system_info</hdlLibraryName>
     <fileSets>
@@ -9864,6 +10021,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="pio_wdi"
@@ -10386,6 +10544,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_pio_wdi</hdlLibraryName>
     <fileSets>
@@ -10491,6 +10650,7 @@
         </entry>
     </assignmentValueMap>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="ram_diag_bg_10gbe"
@@ -11078,6 +11238,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_ram_diag_bg_10gbe</hdlLibraryName>
     <fileSets>
@@ -11106,6 +11267,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="ram_diag_bg_1gbe"
@@ -11693,6 +11855,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_ram_diag_bg_1gbe</hdlLibraryName>
     <fileSets>
@@ -11721,6 +11884,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="ram_diag_data_buffer_10gbe"
@@ -12308,6 +12472,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_ram_diag_data_buffer_10gbe</hdlLibraryName>
     <fileSets>
@@ -12336,6 +12501,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="ram_diag_data_buffer_1gbe"
@@ -12923,6 +13089,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_ram_diag_data_buffer_1gbe</hdlLibraryName>
     <fileSets>
@@ -12951,6 +13118,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="ram_diag_data_buffer_ddr_MB_I"
@@ -13538,6 +13706,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_ram_diag_data_buffer_ddr_MB_I</hdlLibraryName>
     <fileSets>
@@ -13566,6 +13735,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="ram_diag_data_buffer_ddr_MB_II"
@@ -14153,6 +14323,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_ram_diag_data_buffer_ddr_MB_II</hdlLibraryName>
     <fileSets>
@@ -14181,6 +14352,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_10gbase_r_24"
@@ -14808,6 +14980,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>reg_10gbase_r_24</hdlLibraryName>
     <fileSets>
@@ -14836,6 +15009,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_bsn_monitor_10GbE"
@@ -15423,6 +15597,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_bsn_monitor_10GbE</hdlLibraryName>
     <fileSets>
@@ -15451,6 +15626,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_bsn_monitor_1GbE"
@@ -16038,6 +16214,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_bsn_monitor_1GbE</hdlLibraryName>
     <fileSets>
@@ -16066,6 +16243,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_diag_bg_10gbe"
@@ -16653,6 +16831,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_diag_bg_10gbe</hdlLibraryName>
     <fileSets>
@@ -16681,6 +16860,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_diag_bg_1gbe"
@@ -17268,6 +17448,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_diag_bg_1gbe</hdlLibraryName>
     <fileSets>
@@ -17296,6 +17477,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_diag_data_buffer_10gbe"
@@ -17883,6 +18065,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_diag_data_buffer_10gbe</hdlLibraryName>
     <fileSets>
@@ -17911,6 +18094,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_diag_data_buffer_1gbe"
@@ -18498,6 +18682,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_diag_data_buffer_1gbe</hdlLibraryName>
     <fileSets>
@@ -18526,6 +18711,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_diag_data_buffer_ddr_MB_I"
@@ -19113,6 +19299,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_diag_data_buffer_ddr_MB_I</hdlLibraryName>
     <fileSets>
@@ -19141,6 +19328,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_diag_data_buffer_ddr_MB_II"
@@ -19728,6 +19916,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_diag_data_buffer_ddr_MB_II</hdlLibraryName>
     <fileSets>
@@ -19756,6 +19945,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_diag_rx_seq_10gbe"
@@ -20343,6 +20533,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_diag_rx_seq_10gbe</hdlLibraryName>
     <fileSets>
@@ -20371,6 +20562,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_diag_rx_seq_1gbe"
@@ -20958,6 +21150,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_diag_rx_seq_1gbe</hdlLibraryName>
     <fileSets>
@@ -20986,6 +21179,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_diag_rx_seq_ddr_MB_I"
@@ -21573,6 +21767,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_diag_rx_seq_ddr_MB_I</hdlLibraryName>
     <fileSets>
@@ -21601,6 +21796,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_diag_rx_seq_ddr_MB_II"
@@ -22188,6 +22384,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_diag_rx_seq_ddr_MB_II</hdlLibraryName>
     <fileSets>
@@ -22216,6 +22413,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_diag_tx_seq_10gbe"
@@ -22803,6 +23001,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_diag_tx_seq_10gbe</hdlLibraryName>
     <fileSets>
@@ -22831,6 +23030,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_diag_tx_seq_1gbe"
@@ -23418,6 +23618,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_diag_tx_seq_1gbe</hdlLibraryName>
     <fileSets>
@@ -23446,6 +23647,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_diag_tx_seq_ddr_MB_I"
@@ -24033,6 +24235,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_diag_tx_seq_ddr_MB_I</hdlLibraryName>
     <fileSets>
@@ -24061,6 +24264,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_diag_tx_seq_ddr_MB_II"
@@ -24648,6 +24852,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_diag_tx_seq_ddr_MB_II</hdlLibraryName>
     <fileSets>
@@ -24676,6 +24881,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_dpmm_ctrl"
@@ -25263,6 +25469,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_dpmm_ctrl</hdlLibraryName>
     <fileSets>
@@ -25291,6 +25498,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_dpmm_data"
@@ -25878,6 +26086,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_dpmm_data</hdlLibraryName>
     <fileSets>
@@ -25906,6 +26115,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_epcs"
@@ -26493,6 +26703,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_epcs</hdlLibraryName>
     <fileSets>
@@ -26521,6 +26732,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_eth10g_back0"
@@ -27108,6 +27320,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_eth10g_back0</hdlLibraryName>
     <fileSets>
@@ -27136,6 +27349,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_eth10g_back1"
@@ -27723,6 +27937,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_eth10g_back1</hdlLibraryName>
     <fileSets>
@@ -27751,6 +27966,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_eth10g_qsfp_ring"
@@ -28338,6 +28554,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_eth10g_qsfp_ring</hdlLibraryName>
     <fileSets>
@@ -28366,6 +28583,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_fpga_temp_sens"
@@ -28953,6 +29171,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_fpga_temp_sens</hdlLibraryName>
     <fileSets>
@@ -28981,6 +29200,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_fpga_voltage_sens"
@@ -29568,6 +29788,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_fpga_voltage_sens</hdlLibraryName>
     <fileSets>
@@ -29596,6 +29817,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_io_ddr_MB_I"
@@ -30183,6 +30405,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_io_ddr_MB_I</hdlLibraryName>
     <fileSets>
@@ -30211,6 +30434,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_io_ddr_MB_II"
@@ -30798,6 +31022,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_io_ddr_MB_II</hdlLibraryName>
     <fileSets>
@@ -30826,6 +31051,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_mmdp_ctrl"
@@ -31413,6 +31639,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_mmdp_ctrl</hdlLibraryName>
     <fileSets>
@@ -31441,6 +31668,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_mmdp_data"
@@ -32028,6 +32256,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_mmdp_data</hdlLibraryName>
     <fileSets>
@@ -32056,6 +32285,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_remu"
@@ -32643,6 +32873,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_remu</hdlLibraryName>
     <fileSets>
@@ -32671,6 +32902,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_tr_10GbE_back0"
@@ -33298,6 +33530,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_tr_10GbE_back0</hdlLibraryName>
     <fileSets>
@@ -33326,6 +33559,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_tr_10GbE_back1"
@@ -33953,6 +34187,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_tr_10GbE_back1</hdlLibraryName>
     <fileSets>
@@ -33981,6 +34216,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_tr_10GbE_qsfp_ring"
@@ -34608,6 +34844,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_tr_10GbE_qsfp_ring</hdlLibraryName>
     <fileSets>
@@ -34636,6 +34873,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_unb_pmbus"
@@ -35223,6 +35461,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_unb_pmbus</hdlLibraryName>
     <fileSets>
@@ -35251,6 +35490,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_unb_sens"
@@ -35838,6 +36078,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_unb_sens</hdlLibraryName>
     <fileSets>
@@ -35866,6 +36107,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="reg_wdi"
@@ -36453,6 +36695,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_reg_wdi</hdlLibraryName>
     <fileSets>
@@ -36481,6 +36724,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="rom_system_info"
@@ -37068,6 +37312,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_rom_system_info</hdlLibraryName>
     <fileSets>
@@ -37096,6 +37341,7 @@
   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
     <assignmentValueMap/>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <module
    name="timer_0"
@@ -37738,6 +37984,7 @@
         </connPtSystemInfos>
     </systemInfos>
 </componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
   <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
     <hdlLibraryName>qsys_unb2c_test_timer_0</hdlLibraryName>
     <fileSets>
@@ -37819,1172 +38066,1926 @@
         </entry>
     </assignmentValueMap>
 </assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
  </module>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="jtag_uart_0.avalon_jtag_slave">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3490" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="cpu_0.debug_mem_slave">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3800" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_unb_sens.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x0700" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="rom_system_info.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x1000" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="pio_system_info.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x0000" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="pio_pps.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3488" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_wdi.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3000" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_remu.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3420" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_epcs.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3400" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_dpmm_ctrl.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3480" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_dpmm_data.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3478" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_mmdp_ctrl.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3470" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_mmdp_data.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3008" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_tr_10GbE_qsfp_ring.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x00200000" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_bsn_monitor_1GbE.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3200" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_diag_data_buffer_1gbe.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3180" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="ram_diag_data_buffer_1gbe.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0xc000" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_diag_bg_1gbe.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x33e0" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="ram_diag_bg_1gbe.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0xa000" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_tr_10GbE_back0.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x00400000" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_tr_10GbE_back1.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x00100000" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_diag_data_buffer_ddr_MB_I.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3100" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="ram_diag_data_buffer_ddr_MB_I.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x8000" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_io_ddr_MB_I.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x00580000" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_bsn_monitor_10GbE.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x6000" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_diag_data_buffer_10gbe.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x0600" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="ram_diag_data_buffer_10gbe.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x00500000" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_diag_bg_10gbe.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x33c0" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="ram_diag_bg_10gbe.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x00080000" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_diag_tx_seq_1gbe.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3460" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_diag_rx_seq_1gbe.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x33a0" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_diag_tx_seq_10gbe.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3300" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_diag_rx_seq_10gbe.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3080" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_diag_tx_seq_ddr_MB_I.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3450" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_diag_rx_seq_ddr_MB_I.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3380" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="ram_diag_data_buffer_ddr_MB_II.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x4000" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_io_ddr_MB_II.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x00040000" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_diag_tx_seq_ddr_MB_II.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3440" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_diag_rx_seq_ddr_MB_II.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3360" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_diag_data_buffer_ddr_MB_II.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x0080" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_eth10g_qsfp_ring.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x0200" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_eth10g_back0.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x0500" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_eth10g_back1.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x0400" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_unb_pmbus.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x0100" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_fpga_voltage_sens.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x32c0" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_fpga_temp_sens.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3340" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="reg_10gbase_r_24.mem">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x005c0000" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="avs_eth_0.mms_ram">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x00010000" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="avs_eth_1.mms_ram">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0xf000" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="avs_eth_0.mms_reg">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3280" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="avs_eth_1.mms_reg">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3040" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="avs_eth_0.mms_tse">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0xe000" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="avs_eth_1.mms_tse">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x2000" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="onchip_memory2_0.s1">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x00020000" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="pio_wdi.s1">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3010" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.data_master"
    end="timer_0.s1">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3020" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.instruction_master"
    end="cpu_0.debug_mem_slave">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x3800" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
  <connection
    kind="avalon"
-   version="18.0"
+   version="19.4"
    start="cpu_0.instruction_master"
    end="onchip_memory2_0.s1">
+  <parameter name="arbitrationPriority" value="1" />
   <parameter name="baseAddress" value="0x00020000" />
+  <parameter name="defaultConnection" value="false" />
+  <parameter name="domainAlias" value="" />
+  <parameter name="qsys_mm.burstAdapterImplementation" value="GENERIC_CONVERTER" />
+  <parameter name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
+  <parameter name="qsys_mm.enableEccProtection" value="FALSE" />
+  <parameter name="qsys_mm.enableInstrumentation" value="FALSE" />
+  <parameter name="qsys_mm.insertDefaultSlave" value="FALSE" />
+  <parameter name="qsys_mm.interconnectResetSource" value="DEFAULT" />
+  <parameter name="qsys_mm.interconnectType" value="STANDARD" />
+  <parameter name="qsys_mm.maxAdditionalLatency" value="1" />
+  <parameter name="qsys_mm.syncResets" value="FALSE" />
+  <parameter name="qsys_mm.widthAdapterImplementation" value="GENERIC_CONVERTER" />
  </connection>
- <connection kind="clock" version="18.0" start="clk_0.clk" end="jtag_uart_0.clk" />
- <connection kind="clock" version="18.0" start="clk_0.clk" end="pio_wdi.clk" />
- <connection kind="clock" version="18.0" start="clk_0.clk" end="timer_0.clk" />
- <connection kind="clock" version="18.0" start="clk_0.clk" end="cpu_0.clk" />
+ <connection kind="clock" version="19.4" start="clk_0.clk" end="jtag_uart_0.clk" />
+ <connection kind="clock" version="19.4" start="clk_0.clk" end="pio_wdi.clk" />
+ <connection kind="clock" version="19.4" start="clk_0.clk" end="timer_0.clk" />
+ <connection kind="clock" version="19.4" start="clk_0.clk" end="cpu_0.clk" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="onchip_memory2_0.clk1" />
- <connection kind="clock" version="18.0" start="clk_0.clk" end="avs_eth_0.mm" />
- <connection kind="clock" version="18.0" start="clk_0.clk" end="avs_eth_1.mm" />
+ <connection kind="clock" version="19.4" start="clk_0.clk" end="avs_eth_0.mm" />
+ <connection kind="clock" version="19.4" start="clk_0.clk" end="avs_eth_1.mm" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_unb_sens.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="rom_system_info.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="pio_system_info.system" />
- <connection kind="clock" version="18.0" start="clk_0.clk" end="pio_pps.system" />
- <connection kind="clock" version="18.0" start="clk_0.clk" end="reg_wdi.system" />
- <connection kind="clock" version="18.0" start="clk_0.clk" end="reg_remu.system" />
- <connection kind="clock" version="18.0" start="clk_0.clk" end="reg_epcs.system" />
+ <connection kind="clock" version="19.4" start="clk_0.clk" end="pio_pps.system" />
+ <connection kind="clock" version="19.4" start="clk_0.clk" end="reg_wdi.system" />
+ <connection kind="clock" version="19.4" start="clk_0.clk" end="reg_remu.system" />
+ <connection kind="clock" version="19.4" start="clk_0.clk" end="reg_epcs.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_dpmm_ctrl.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_mmdp_data.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_dpmm_data.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_mmdp_ctrl.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_tr_10GbE_qsfp_ring.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_bsn_monitor_1GbE.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_diag_data_buffer_1gbe.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="ram_diag_data_buffer_1gbe.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_diag_bg_1gbe.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="ram_diag_bg_1gbe.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_tr_10GbE_back0.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_tr_10GbE_back1.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_diag_data_buffer_ddr_MB_I.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="ram_diag_data_buffer_ddr_MB_I.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_io_ddr_MB_I.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_bsn_monitor_10GbE.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_diag_data_buffer_10gbe.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="ram_diag_data_buffer_10gbe.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_diag_bg_10gbe.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="ram_diag_bg_10gbe.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_diag_tx_seq_1gbe.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_diag_rx_seq_1gbe.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_diag_tx_seq_10gbe.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_diag_rx_seq_10gbe.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_diag_tx_seq_ddr_MB_I.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_diag_rx_seq_ddr_MB_I.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_io_ddr_MB_II.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="ram_diag_data_buffer_ddr_MB_II.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_diag_tx_seq_ddr_MB_II.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_diag_rx_seq_ddr_MB_II.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_diag_data_buffer_ddr_MB_II.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_eth10g_qsfp_ring.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_eth10g_back0.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_eth10g_back1.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_unb_pmbus.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_fpga_voltage_sens.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_fpga_temp_sens.system" />
  <connection
    kind="clock"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk"
    end="reg_10gbase_r_24.system" />
  <connection
    kind="interrupt"
-   version="18.0"
+   version="19.4"
    start="cpu_0.irq"
-   end="avs_eth_0.interrupt" />
+   end="avs_eth_0.interrupt">
+  <parameter name="irqNumber" value="0" />
+ </connection>
  <connection
    kind="interrupt"
-   version="18.0"
+   version="19.4"
    start="cpu_0.irq"
    end="avs_eth_1.interrupt">
   <parameter name="irqNumber" value="1" />
  </connection>
  <connection
    kind="interrupt"
-   version="18.0"
+   version="19.4"
    start="cpu_0.irq"
    end="jtag_uart_0.irq">
   <parameter name="irqNumber" value="2" />
  </connection>
- <connection kind="interrupt" version="18.0" start="cpu_0.irq" end="timer_0.irq">
+ <connection kind="interrupt" version="19.4" start="cpu_0.irq" end="timer_0.irq">
   <parameter name="irqNumber" value="3" />
  </connection>
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="avs_eth_0.mm_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="avs_eth_1.mm_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="jtag_uart_0.reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="pio_wdi.reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="timer_0.reset" />
- <connection kind="reset" version="18.0" start="clk_0.clk_reset" end="cpu_0.reset" />
+ <connection kind="reset" version="19.4" start="clk_0.clk_reset" end="cpu_0.reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="onchip_memory2_0.reset1" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_unb_sens.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="rom_system_info.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="pio_system_info.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="pio_pps.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_wdi.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_remu.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_epcs.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_dpmm_ctrl.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_mmdp_data.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_mmdp_ctrl.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_dpmm_data.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_tr_10GbE_qsfp_ring.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_bsn_monitor_1GbE.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_diag_data_buffer_1gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="ram_diag_data_buffer_1gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_diag_bg_1gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="ram_diag_bg_1gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_tr_10GbE_back0.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_tr_10GbE_back1.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_diag_data_buffer_ddr_MB_I.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="ram_diag_data_buffer_ddr_MB_I.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_io_ddr_MB_I.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_bsn_monitor_10GbE.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_diag_data_buffer_10gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="ram_diag_data_buffer_10gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_diag_bg_10gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="ram_diag_bg_10gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_diag_tx_seq_1gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_diag_rx_seq_1gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_diag_tx_seq_10gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_diag_rx_seq_10gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_diag_tx_seq_ddr_MB_I.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_diag_rx_seq_ddr_MB_I.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_io_ddr_MB_II.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="ram_diag_data_buffer_ddr_MB_II.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_diag_tx_seq_ddr_MB_II.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_diag_rx_seq_ddr_MB_II.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_diag_data_buffer_ddr_MB_II.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_eth10g_qsfp_ring.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_eth10g_back0.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_eth10g_back1.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_unb_pmbus.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_fpga_voltage_sens.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_fpga_temp_sens.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="clk_0.clk_reset"
    end="reg_10gbase_r_24.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="avs_eth_0.mm_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="avs_eth_1.mm_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="jtag_uart_0.reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="pio_wdi.reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="timer_0.reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="cpu_0.reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="onchip_memory2_0.reset1" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_unb_sens.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="rom_system_info.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="pio_system_info.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="pio_pps.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_wdi.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_remu.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_epcs.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_dpmm_ctrl.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_mmdp_data.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_dpmm_data.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_mmdp_ctrl.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_tr_10GbE_qsfp_ring.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_bsn_monitor_1GbE.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_diag_data_buffer_1gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="ram_diag_data_buffer_1gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_diag_bg_1gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="ram_diag_bg_1gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_tr_10GbE_back0.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_tr_10GbE_back1.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_diag_data_buffer_ddr_MB_I.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="ram_diag_data_buffer_ddr_MB_I.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_io_ddr_MB_I.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_bsn_monitor_10GbE.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_diag_data_buffer_10gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="ram_diag_data_buffer_10gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_diag_bg_10gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="ram_diag_bg_10gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_diag_tx_seq_1gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_diag_rx_seq_1gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_diag_tx_seq_10gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_diag_rx_seq_10gbe.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_diag_tx_seq_ddr_MB_I.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_diag_rx_seq_ddr_MB_I.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_io_ddr_MB_II.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="ram_diag_data_buffer_ddr_MB_II.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_diag_tx_seq_ddr_MB_II.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_diag_rx_seq_ddr_MB_II.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_diag_data_buffer_ddr_MB_II.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_eth10g_qsfp_ring.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_eth10g_back0.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_eth10g_back1.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_unb_pmbus.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_fpga_voltage_sens.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_fpga_temp_sens.system_reset" />
  <connection
    kind="reset"
-   version="18.0"
+   version="19.4"
    start="cpu_0.debug_reset_request"
    end="reg_10gbase_r_24.system_reset" />
- <interconnectRequirement for="$system" name="qsys_mm.clockCrossingAdapter" value="HANDSHAKE" />
- <interconnectRequirement for="$system" name="qsys_mm.insertDefaultSlave" value="FALSE" />
- <interconnectRequirement for="$system" name="qsys_mm.maxAdditionalLatency" value="1" />
 </system>
diff --git a/boards/uniboard2c/designs/unb2c_test/revisions/unb2c_test_pinning/hdllib.cfg b/boards/uniboard2c/designs/unb2c_test/revisions/unb2c_test_pinning/hdllib.cfg
index 85040a4ee86213042a16eaf4e8c8e09104d7ef7c..4191fa35301df194f9fcd9c88d027dc605875df8 100644
--- a/boards/uniboard2c/designs/unb2c_test/revisions/unb2c_test_pinning/hdllib.cfg
+++ b/boards/uniboard2c/designs/unb2c_test/revisions/unb2c_test_pinning/hdllib.cfg
@@ -2,27 +2,27 @@ hdl_lib_name = unb2c_test_pinning
 hdl_library_clause_name = unb2c_test_pinning_lib
 hdl_lib_uses_synth = common mm technology unb2c_board unb2c_test
 hdl_lib_uses_sim = 
-hdl_lib_technology = ip_arria10_e1sg
+hdl_lib_technology = ip_arria10_e2sg
 hdl_lib_include_ip = 
                      # Comment all IP that is not used in this design
                      # 10GbE
-                     ip_arria10_e1sg_mac_10g
-                     ip_arria10_e1sg_pll_xgmii_mac_clocks
-                     ip_arria10_e1sg_transceiver_pll_10g
+                     ip_arria10_e2sg_mac_10g
+                     ip_arria10_e2sg_pll_xgmii_mac_clocks
+                     ip_arria10_e2sg_transceiver_pll_10g
                      
-                     ip_arria10_e1sg_phy_10gbase_r
-                     ip_arria10_e1sg_phy_10gbase_r_4
-                     ip_arria10_e1sg_phy_10gbase_r_12
-                     ip_arria10_e1sg_phy_10gbase_r_24
-                     ip_arria10_e1sg_phy_10gbase_r_48
+                     ip_arria10_e2sg_phy_10gbase_r
+                     ip_arria10_e2sg_phy_10gbase_r_4
+                     ip_arria10_e2sg_phy_10gbase_r_12
+                     ip_arria10_e2sg_phy_10gbase_r_24
+                     ip_arria10_e2sg_phy_10gbase_r_48
                      
-                     ip_arria10_e1sg_transceiver_reset_controller_1
-                     ip_arria10_e1sg_transceiver_reset_controller_4
-                     ip_arria10_e1sg_transceiver_reset_controller_12
-                     ip_arria10_e1sg_transceiver_reset_controller_24
-                     ip_arria10_e1sg_transceiver_reset_controller_48
+                     ip_arria10_e2sg_transceiver_reset_controller_1
+                     ip_arria10_e2sg_transceiver_reset_controller_4
+                     ip_arria10_e2sg_transceiver_reset_controller_12
+                     ip_arria10_e2sg_transceiver_reset_controller_24
+                     ip_arria10_e2sg_transceiver_reset_controller_48
 
-                     ip_arria10_e1sg_ddr4_8g_1600
+                     ip_arria10_e2sg_ddr4_8g_1600
 synth_files =
     unb2c_test_pinning.vhd
 
diff --git a/boards/uniboard2c/designs/unb2c_test/revisions/unb2c_test_pinning/unb2c_test_pinning.vhd b/boards/uniboard2c/designs/unb2c_test/revisions/unb2c_test_pinning/unb2c_test_pinning.vhd
index 0714a2e9329ce87706278f12c1e1fe65ad2ff0ba..cd2d07767b3de98dd7e1475d84b03f29a81826e5 100644
--- a/boards/uniboard2c/designs/unb2c_test/revisions/unb2c_test_pinning/unb2c_test_pinning.vhd
+++ b/boards/uniboard2c/designs/unb2c_test/revisions/unb2c_test_pinning/unb2c_test_pinning.vhd
@@ -74,9 +74,6 @@ ENTITY unb2c_test_pinning IS
     -- back transceivers
     BCK_RX       : IN    STD_LOGIC_VECTOR((c_unb2c_board_tr_back.bus_w * c_unb2c_board_tr_back.nof_bus)-1 downto 0);
     BCK_TX       : OUT   STD_LOGIC_VECTOR((c_unb2c_board_tr_back.bus_w * c_unb2c_board_tr_back.nof_bus)-1 downto 0);
-    BCK_SDA      : INOUT STD_LOGIC_VECTOR(c_unb2c_board_tr_back.i2c_w-1 downto 0);
-    BCK_SCL      : INOUT STD_LOGIC_VECTOR(c_unb2c_board_tr_back.i2c_w-1 downto 0);
-    BCK_ERR      : INOUT STD_LOGIC_VECTOR(c_unb2c_board_tr_back.i2c_w-1 downto 0);
 
     -- jesd204b syncronization signals
     JESD204B_SYSREF : IN    STD_LOGIC;
@@ -171,9 +168,6 @@ BEGIN
     -- back transceivers
     BCK_RX       => BCK_RX,
     BCK_TX       => BCK_TX,
-    BCK_SDA      => BCK_SDA,
-    BCK_SCL      => BCK_SCL,
-    BCK_ERR      => BCK_ERR,
 
     -- ring transceivers
     RING_0_RX    => RING_0_RX,
diff --git a/boards/uniboard2c/designs/unb2c_test/src/vhdl/unb2c_test.vhd b/boards/uniboard2c/designs/unb2c_test/src/vhdl/unb2c_test.vhd
index 5694d383e6957b629b4ec8957a86664e55b0e9af..2a450d842d4d3083261f139efcd6a8a5ed485b53 100644
--- a/boards/uniboard2c/designs/unb2c_test/src/vhdl/unb2c_test.vhd
+++ b/boards/uniboard2c/designs/unb2c_test/src/vhdl/unb2c_test.vhd
@@ -40,7 +40,7 @@ ENTITY unb2c_test IS
   GENERIC (
     g_design_name      : STRING  := "unb2c_test";
     g_design_note      : STRING  := "UNUSED";
-    g_technology       : NATURAL := c_tech_arria10_e1sg;
+    g_technology       : NATURAL := c_tech_arria10_e2sg;
     g_sim              : BOOLEAN := FALSE; --Overridden by TB
     g_sim_unb_nr       : NATURAL := 0;
     g_sim_node_nr      : NATURAL := 0;
@@ -146,8 +146,8 @@ ARCHITECTURE str OF unb2c_test IS
   -- Revision controlled constants
   CONSTANT c_revision_select            : t_unb2c_test_config := func_sel_revision_rec(g_design_name);
   CONSTANT c_use_loopback               : BOOLEAN := c_revision_select.use_loopback;
-  CONSTANT c_use_1GbE_I                 : BOOLEAN := c_revision_select.use_1GbE_I;
-  CONSTANT c_use_1GbE_II                : BOOLEAN := c_revision_select.use_1GbE_II;
+  CONSTANT c_use_1GbE_I_UDP             : BOOLEAN := c_revision_select.use_1GbE_I_UDP;  -- Enable the UDP offload ports on eth0, eth0 is always enabled for control
+  CONSTANT c_use_1GbE_II                : BOOLEAN := c_revision_select.use_1GbE_II; -- Enable the second 1GbE eth1
   CONSTANT c_use_10GbE_qsfp             : BOOLEAN := c_revision_select.use_10GbE_qsfp;
   CONSTANT c_use_10GbE_ring             : BOOLEAN := c_revision_select.use_10GbE_ring;
   CONSTANT c_use_10GbE_back0            : BOOLEAN := c_revision_select.use_10GbE_back0;
@@ -167,7 +167,10 @@ ARCHITECTURE str OF unb2c_test IS
   CONSTANT c_nof_jesd204b               : NATURAL := c_unb2c_board_tr_jesd204b.nof_bus * c_unb2c_board_tr_jesd204b.bus_w;
 
   -- 1GbE
-  CONSTANT c_nof_streams_1GbE           : NATURAL := sel_a_b(c_use_1GbE_I,1,0) + sel_a_b(c_use_1GbE_II,1,0);
+  -- This is the number of UDP offload streams. Fix it to 2 when UDP offload is enabled
+--  CONSTANT c_nof_streams_1GbE_UDP           : NATURAL := sel_a_b(c_use_1GbE_I,1,0) + sel_a_b(c_use_1GbE_II,1,0);
+  CONSTANT c_nof_streams_1GbE_UDP           : NATURAL := sel_a_b(c_use_1GbE_I_UDP,2,0);
+  CONSTANT c_base_ip_II                 : STD_LOGIC_VECTOR(16-1 DOWNTO 0) := X"0A64"; -- Placeholder base IP address for eth1 10.100.xx.yy
 
   -- 10GbE
   CONSTANT c_nof_streams_qsfp           : NATURAL := sel_a_b(c_use_10GbE_qsfp,c_nof_qsfp,0);
@@ -399,10 +402,10 @@ ARCHITECTURE str OF unb2c_test IS
   SIGNAL reg_diag_rx_seq_10GbE_mosi      : t_mem_mosi;
   SIGNAL reg_diag_rx_seq_10GbE_miso      : t_mem_miso;
 
-  SIGNAL dp_offload_tx_1GbE_src_out_arr  : t_dp_sosi_arr(c_nof_streams_1GbE-1 DOWNTO 0);
-  SIGNAL dp_offload_tx_1GbE_src_in_arr   : t_dp_siso_arr(c_nof_streams_1GbE-1 DOWNTO 0);
-  SIGNAL dp_offload_rx_1GbE_snk_in_arr   : t_dp_sosi_arr(c_nof_streams_1GbE-1 DOWNTO 0);
-  SIGNAL dp_offload_rx_1GbE_snk_out_arr  : t_dp_siso_arr(c_nof_streams_1GbE-1 DOWNTO 0);
+  SIGNAL dp_offload_tx_1GbE_src_out_arr  : t_dp_sosi_arr(c_nof_streams_1GbE_UDP-1 DOWNTO 0);
+  SIGNAL dp_offload_tx_1GbE_src_in_arr   : t_dp_siso_arr(c_nof_streams_1GbE_UDP-1 DOWNTO 0);
+  SIGNAL dp_offload_rx_1GbE_snk_in_arr   : t_dp_sosi_arr(c_nof_streams_1GbE_UDP-1 DOWNTO 0);
+  SIGNAL dp_offload_rx_1GbE_snk_out_arr  : t_dp_siso_arr(c_nof_streams_1GbE_UDP-1 DOWNTO 0);
 
   SIGNAL dp_offload_tx_10GbE_src_out_arr : t_dp_sosi_arr(c_nof_streams_10GbE-1 DOWNTO 0);
   SIGNAL dp_offload_tx_10GbE_src_in_arr  : t_dp_siso_arr(c_nof_streams_10GbE-1 DOWNTO 0);
@@ -443,10 +446,10 @@ ARCHITECTURE str OF unb2c_test IS
   SIGNAL ram_diag_data_buf_ddr_MB_II_miso  : t_mem_miso;
 
   -- Interface: 1GbE UDP streaming ports
-  SIGNAL eth1g_udp_tx_sosi_arr           : t_dp_sosi_arr(c_nof_streams_1GbE-1 DOWNTO 0);
-  SIGNAL eth1g_udp_tx_siso_arr           : t_dp_siso_arr(c_nof_streams_1GbE-1 DOWNTO 0);
-  SIGNAL eth1g_udp_rx_sosi_arr           : t_dp_sosi_arr(c_nof_streams_1GbE-1 DOWNTO 0);
-  SIGNAL eth1g_udp_rx_siso_arr           : t_dp_siso_arr(c_nof_streams_1GbE-1 DOWNTO 0);
+  SIGNAL eth1g_udp_tx_sosi_arr           : t_dp_sosi_arr(c_nof_streams_1GbE_UDP-1 DOWNTO 0);
+  SIGNAL eth1g_udp_tx_siso_arr           : t_dp_siso_arr(c_nof_streams_1GbE_UDP-1 DOWNTO 0);
+  SIGNAL eth1g_udp_rx_sosi_arr           : t_dp_sosi_arr(c_nof_streams_1GbE_UDP-1 DOWNTO 0);
+  SIGNAL eth1g_udp_rx_siso_arr           : t_dp_siso_arr(c_nof_streams_1GbE_UDP-1 DOWNTO 0);
 
   -- QSFP leds
   SIGNAL qsfp_green_led_arr              : STD_LOGIC_VECTOR(c_unb2c_board_tr_qsfp.nof_bus-1 DOWNTO 0);
@@ -471,9 +474,10 @@ BEGIN
     g_mm_clk_freq             => sel_a_b(g_sim,c_unb2c_board_mm_clk_freq_25M,c_unb2c_board_mm_clk_freq_125M),
     g_eth_clk_freq            => c_unb2c_board_eth_clk_freq_125M,
     g_aux                     => c_unb2c_board_aux,
-    g_udp_offload             => c_use_1GbE_I,
-    g_udp_offload_nof_streams => c_nof_streams_1GbE,
+    g_udp_offload             => c_use_1GbE_I_UDP,
+    g_udp_offload_nof_streams => c_nof_streams_1GbE_UDP,
     g_dp_clk_use_pll          => TRUE,
+	g_tse_clk_buf             => FALSE,
     g_factory_image           => g_factory_image
   )
   PORT MAP (
@@ -589,8 +593,8 @@ BEGIN
     MB_II_REF_CLK            => MB_II_REF_CLK,
     -- . 1GbE Control Interface
     ETH_CLK                  => ETH_CLK,
-    ETH_SGIN                 => ETH_SGIN,
-    ETH_SGOUT                => ETH_SGOUT
+    ETH_SGIN                 => ETH_SGIN(0),
+    ETH_SGOUT                => ETH_SGOUT(0)
   );
 
   -----------------------------------------------------------------------------
@@ -780,12 +784,12 @@ BEGIN
   );
 
   -- TODO: Add support for second 1GbE port
-  gen_udp_stream_1GbE : IF c_use_1GbE_I = TRUE GENERATE
+  gen_udp_stream_1GbE : IF c_use_1GbE_I_UDP = TRUE GENERATE
     u_udp_stream_1GbE : ENTITY work.udp_stream
     GENERIC MAP (
       g_sim                       => g_sim,
       g_technology                => g_technology,
-      g_nof_streams               => c_nof_streams_1GbE,
+      g_nof_streams               => c_nof_streams_1GbE_UDP,
       g_data_w                    => c_data_w_32,
       g_bg_block_size             => c_def_1GbE_block_size,
       g_bg_gapsize                => c_bg_gapsize_1GbE,
@@ -843,8 +847,8 @@ BEGIN
   -- Interface : 1GbE
   -----------------------------------------------------------------------------
   -- TODO: Add support for second 1GbE port
-  gen_wires_1GbE : IF c_use_1GbE_I=TRUE GENERATE
-    gen_1GbE_wires : FOR i IN 0 TO c_nof_streams_1GbE-1 GENERATE
+  gen_wires_1GbE : IF c_use_1GbE_I_UDP=TRUE GENERATE
+    gen_1GbE_wires : FOR i IN 0 TO c_nof_streams_1GbE_UDP-1 GENERATE
 
       eth1g_udp_tx_sosi_arr(i)         <= dp_offload_tx_1GbE_src_out_arr(i);
       dp_offload_tx_1GbE_src_in_arr(i) <= eth1g_udp_tx_siso_arr(i);
@@ -854,6 +858,51 @@ BEGIN
     END GENERATE;
   END GENERATE;
 
+  -- Instantiate a second 1G Eth to check pinning 
+  --gen_eth_II: IF c_use_1GbE_II=TRUE GENERATE
+  gen_eth_II: IF FALSE GENERATE
+
+    u_eth : ENTITY eth_lib.eth
+    GENERIC MAP (
+      g_technology         => g_technology,
+      g_init_ip_address    => C_base_ip_II & X"0000", -- Last two bytes set by board/FPGA ID.
+      g_cross_clock_domain => TRUE,
+      g_frm_discard_en     => TRUE
+    )
+    PORT MAP (
+      -- Clocks and reset
+      mm_rst            => mm_rst, -- use reset from QSYS
+      mm_clk            => mm_clk,     -- use mm_clk direct
+      eth_clk           => xo_ethclk,    -- 125 MHz clock
+--      eth_clk           => ETH_CLK,    -- try direct connection to the pin
+      st_rst            => dp_rst,
+      st_clk            => dp_clk,
+    
+      -- UDP transmit interface
+      udp_tx_snk_in_arr  => (others => c_dp_sosi_rst), 
+      udp_tx_snk_out_arr => open,
+      -- UDP receive interface
+      udp_rx_src_in_arr  => (others => c_dp_siso_rdy),
+      udp_rx_src_out_arr => open,
+ 
+      -- Memory Mapped Slaves
+      tse_sla_in        => c_mem_mosi_rst,
+      tse_sla_out       => open,
+      reg_sla_in        => c_mem_mosi_rst,
+      reg_sla_out       => open,
+      reg_sla_interrupt => open,
+      ram_sla_in        => c_mem_mosi_rst,
+      ram_sla_out       => open,
+  
+      -- PHY interface
+      eth_txp           => ETH_SGOUT(1),
+      eth_rxp           => ETH_SGIN(1),
+  
+      -- LED interface
+      tse_led           => open
+    );
+  END GENERATE;
+
 
   gen_udp_stream_10GbE : IF c_use_10GbE = TRUE AND c_use_loopback = FALSE GENERATE
     u_udp_stream_10GbE : ENTITY work.udp_stream
diff --git a/boards/uniboard2c/designs/unb2c_test/src/vhdl/unb2c_test_pkg.vhd b/boards/uniboard2c/designs/unb2c_test/src/vhdl/unb2c_test_pkg.vhd
index 38d9830531e1ada3647f1668597c705825f185e8..72b312110e173fc9e21cee3fadb59e4d2d773c7f 100644
--- a/boards/uniboard2c/designs/unb2c_test/src/vhdl/unb2c_test_pkg.vhd
+++ b/boards/uniboard2c/designs/unb2c_test/src/vhdl/unb2c_test_pkg.vhd
@@ -64,8 +64,8 @@ PACKAGE unb2c_test_pkg IS
 
   TYPE t_unb2c_test_config IS RECORD
     use_loopback        : BOOLEAN;  -- for pinning designs
-    use_1GbE_I          : BOOLEAN;
-    use_1GbE_II         : BOOLEAN;
+    use_1GbE_I_UDP      : BOOLEAN;  -- Use the UDP offload on eth0. Eth0 is always enabled for control
+    use_1GbE_II         : BOOLEAN;  -- Intantiate eth1 for pinning designs
     use_10GbE_qsfp      : BOOLEAN;
     use_10GbE_ring      : BOOLEAN;
     use_10GbE_back0     : BOOLEAN;
diff --git a/boards/uniboard2c/libraries/unb2c_board/hdllib.cfg b/boards/uniboard2c/libraries/unb2c_board/hdllib.cfg
index c610f4e6a865938ed32b7c3dfb54e8793ea8a5e5..5c4bf736e57af27833820329fa8247e32b1e4249 100644
--- a/boards/uniboard2c/libraries/unb2c_board/hdllib.cfg
+++ b/boards/uniboard2c/libraries/unb2c_board/hdllib.cfg
@@ -2,11 +2,11 @@ hdl_lib_name = unb2c_board
 hdl_library_clause_name = unb2c_board_lib
 hdl_lib_uses_synth = common dp ppsh i2c eth remu technology tech_clkbuf tech_pll tech_fractional_pll epcs fpga_sense
 hdl_lib_uses_sim = 
-hdl_lib_technology = ip_arria10_e1sg
-hdl_lib_include_ip = ip_arria10_e1sg_tse_sgmii_lvds
-                     ip_arria10_e1sg_clkbuf_global
-                     ip_arria10_e1sg_fractional_pll_clk200
-                     ip_arria10_e1sg_fractional_pll_clk125
+hdl_lib_technology = ip_arria10_e2sg
+hdl_lib_include_ip = ip_arria10_e2sg_tse_sgmii_lvds
+                     ip_arria10_e2sg_clkbuf_global
+                     ip_arria10_e2sg_fractional_pll_clk200
+                     ip_arria10_e2sg_fractional_pll_clk125
                      #ip_arria10_e1sg_pll_clk200
                      #ip_arria10_e1sg_pll_clk25
                      #ip_arria10_e1sg_pll_clk125
diff --git a/boards/uniboard2c/libraries/unb2c_board/quartus/pinning/unb2c_minimal_pins.tcl b/boards/uniboard2c/libraries/unb2c_board/quartus/pinning/unb2c_minimal_pins.tcl
index f554b7b6e3c7d3546c61bc6268128486dd1f7798..c36eb56eef7d75536fa8780b37c1457fd5b74589 100644
--- a/boards/uniboard2c/libraries/unb2c_board/quartus/pinning/unb2c_minimal_pins.tcl
+++ b/boards/uniboard2c/libraries/unb2c_board/quartus/pinning/unb2c_minimal_pins.tcl
@@ -19,7 +19,10 @@ set_instance_assignment -name XCVR_A10_RX_TERM_SEL R_R1 -to PPS
 
 # IO Standard Assignments from Gijs (excluding memory)
 set_instance_assignment -name IO_STANDARD "1.8 V" -to ETH_CLK
-set_instance_assignment -name GLOBAL_SIGNAL "GLOBAL CLOCK" -to ETH_CLK
+# Changed from "GLOBAL_CLOCK" due to Error 18694
+set_instance_assignment -name GLOBAL_SIGNAL "OFF" -to ETH_CLK  
+#set_instance_assignment -name GLOBAL_SIGNAL "GLOBAL_CLOCK" -to ETH_CLK  
+
 set_instance_assignment -name IO_STANDARD LVDS -to ETH_SGIN[0]
 set_instance_assignment -name IO_STANDARD LVDS -to "ETH_SGIN[0](n)"
 set_instance_assignment -name IO_STANDARD LVDS -to ETH_SGIN[1]
@@ -87,12 +90,24 @@ set_location_assignment PIN_BB30 -to WDI
 
 set_location_assignment PIN_K12 -to ETH_SGIN[0]
 set_location_assignment PIN_J12 -to "ETH_SGIN[0](n)"
-set_location_assignment PIN_AF33 -to ETH_SGIN[1]
-set_location_assignment PIN_AE33 -to "ETH_SGIN[1](n)"
+
+# Original eth1 location
+#set_location_assignment PIN_AF33 -to ETH_SGIN[1]
+#set_location_assignment PIN_AE33 -to "ETH_SGIN[1](n)"
+
+# Try placing eth1 in the same block as eth0
+set_location_assignment PIN_U12 -to ETH_SGIN[1]
+set_location_assignment PIN_T12 -to "ETH_SGIN[1](n)"
 set_location_assignment PIN_H13 -to ETH_SGOUT[0]
 set_location_assignment PIN_H12 -to "ETH_SGOUT[0](n)"
-set_location_assignment PIN_AW31 -to ETH_SGOUT[1]
-set_location_assignment PIN_AV31 -to "ETH_SGOUT[1](n)"
+
+# Original eth1 location
+#set_location_assignment PIN_AW31 -to ETH_SGOUT[1]
+#set_location_assignment PIN_AV31 -to "ETH_SGOUT[1](n)"
+
+# Try placing eth1 in the same block as eth0
+set_location_assignment PIN_G13 -to ETH_SGOUT[1]
+set_location_assignment PIN_H14 -to "ETH_SGOUT[1](n)"
 
 set_instance_assignment -name IO_STANDARD LVDS -to PPS
 set_instance_assignment -name IO_STANDARD LVDS -to "PPS(n)"
diff --git a/boards/uniboard2c/libraries/unb2c_board/quartus/unb2c_board.qsf b/boards/uniboard2c/libraries/unb2c_board/quartus/unb2c_board.qsf
index bcaa9b0c54705d15457044040b8927dcb600ca84..2eae7412c73c7fb885a5b9af3ee264b8590772f1 100644
--- a/boards/uniboard2c/libraries/unb2c_board/quartus/unb2c_board.qsf
+++ b/boards/uniboard2c/libraries/unb2c_board/quartus/unb2c_board.qsf
@@ -30,7 +30,7 @@ set_global_assignment -name NUM_PARALLEL_PROCESSORS 6
 
 # Device:
 set_global_assignment -name FAMILY "Arria 10"
-set_global_assignment -name DEVICE 10AX115U2F45E1SG
+set_global_assignment -name DEVICE 10AX115U3F45E2SG
 set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "1.8 V"
 set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0
 #set_global_assignment -name MIN_CORE_JUNCTION_TEMP "-40"
@@ -55,10 +55,11 @@ set_global_assignment -name USE_CONFIGURATION_DEVICE ON
 set_global_assignment -name STRATIXIII_UPDATE_MODE REMOTE
 
 set_global_assignment -name CRC_ERROR_OPEN_DRAIN ON
-set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -rise
-set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -fall
-set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -rise
-set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -fall
+# The following gave a fitter error in Q19.4
+#set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -rise
+#set_global_assignment -name OUTPUT_IO_TIMING_NEAR_END_VMEAS "HALF VCCIO" -fall
+#set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -rise
+#set_global_assignment -name OUTPUT_IO_TIMING_FAR_END_VMEAS "HALF SIGNAL SWING" -fall
 
 set_global_assignment -name CONFIGURATION_VCCIO_LEVEL 1.8V
 set_global_assignment -name ON_CHIP_BITSTREAM_DECOMPRESSION ON
diff --git a/boards/uniboard2c/libraries/unb2c_board/src/vhdl/ctrl_unb2c_board.vhd b/boards/uniboard2c/libraries/unb2c_board/src/vhdl/ctrl_unb2c_board.vhd
index a999f85989155bd507bab58df4f2abaeb37e0c80..bd1308a5c1d67fa877075d643a751a80428a8b70 100644
--- a/boards/uniboard2c/libraries/unb2c_board/src/vhdl/ctrl_unb2c_board.vhd
+++ b/boards/uniboard2c/libraries/unb2c_board/src/vhdl/ctrl_unb2c_board.vhd
@@ -243,8 +243,8 @@ ENTITY ctrl_unb2c_board IS
     
     -- 1GbE Control Interface
     ETH_CLK                : IN    STD_LOGIC;  -- 125 MHz
-    ETH_SGIN               : IN    STD_LOGIC_VECTOR(c_unb2c_board_nof_eth-1 DOWNTO 0) := (OTHERS=>'0');
-    ETH_SGOUT              : OUT   STD_LOGIC_VECTOR(c_unb2c_board_nof_eth-1 DOWNTO 0)
+    ETH_SGIN               : IN    STD_LOGIC := '0';
+    ETH_SGOUT              : OUT   STD_LOGIC
   );
 END ctrl_unb2c_board;
 
@@ -808,8 +808,8 @@ BEGIN
       ram_sla_out       => eth1g_ram_miso,
   
       -- PHY interface
-      eth_txp           => ETH_SGOUT(0),
-      eth_rxp           => ETH_SGIN(0),
+      eth_txp           => ETH_SGOUT,
+      eth_rxp           => ETH_SGIN,
   
       -- LED interface
       tse_led           => eth1g_led
diff --git a/boards/uniboard2c/libraries/unb2c_board/src/vhdl/unb2c_board_system_info_reg.vhd b/boards/uniboard2c/libraries/unb2c_board/src/vhdl/unb2c_board_system_info_reg.vhd
index 34b69bb9152dd49966f73533bc684efe27e9b389..d15109d12086a6ec22c61adabc10974a00aff947 100644
--- a/boards/uniboard2c/libraries/unb2c_board/src/vhdl/unb2c_board_system_info_reg.vhd
+++ b/boards/uniboard2c/libraries/unb2c_board/src/vhdl/unb2c_board_system_info_reg.vhd
@@ -88,7 +88,8 @@ ARCHITECTURE rtl OF unb2c_board_system_info_reg IS
   CONSTANT c_revision_id_offset   : NATURAL := c_nof_fixed_regs + c_nof_design_name_regs + c_nof_stamp_regs;
   CONSTANT c_design_note_offset   : NATURAL := c_nof_fixed_regs + c_nof_design_name_regs + c_nof_stamp_regs + c_nof_revision_id_regs;
 
-  CONSTANT c_nof_regs      : NATURAL := c_nof_fixed_regs + c_nof_design_name_regs + c_nof_stamp_regs + c_nof_revision_id_regs + c_nof_design_note_regs;
+  CONSTANT c_nof_regs             : NATURAL := c_nof_fixed_regs + c_nof_design_name_regs + c_nof_stamp_regs + c_nof_revision_id_regs + c_nof_design_note_regs;
+
   CONSTANT c_mm_reg        : t_c_mem := (latency  => 1,
                                          adr_w    => ceil_log2(c_nof_regs),
                                          dat_w    => c_word_w,       -- Use MM bus data width = c_word_w = 32 for all MM registers
diff --git a/boards/uniboard2c/libraries/unb2c_board_10gbe/hdllib.cfg b/boards/uniboard2c/libraries/unb2c_board_10gbe/hdllib.cfg
index 9b0053f23cb7e5aa3467e26b0114ac5c3700ab6d..5522d12105eda55d77c4471dcc117bbf3bc34f97 100644
--- a/boards/uniboard2c/libraries/unb2c_board_10gbe/hdllib.cfg
+++ b/boards/uniboard2c/libraries/unb2c_board_10gbe/hdllib.cfg
@@ -2,7 +2,7 @@ hdl_lib_name = unb2c_board_10gbe
 hdl_library_clause_name = unb2c_board_10gbe_lib
 hdl_lib_uses_synth = common dp technology tech_pll tr_10GbE
 hdl_lib_uses_sim = 
-hdl_lib_technology = ip_arria10_e1sg
+hdl_lib_technology = ip_arria10_e2sg
 
 synth_files =
     src/vhdl/unb2c_board_10gbe.vhd
diff --git a/libraries/base/common/hdllib.cfg b/libraries/base/common/hdllib.cfg
index d5624d00cb139209e894f47c91dbaab9f3d4f275..df646d9c66c8a5c163941d091858556656929887 100644
--- a/libraries/base/common/hdllib.cfg
+++ b/libraries/base/common/hdllib.cfg
@@ -193,6 +193,7 @@ test_bench_files =
     tb/vhdl/tb_requantize.vhd
     tb/vhdl/tb_resize.vhd
     tb/vhdl/tb_round.vhd
+    tb/vhdl/tb_delta_cycle_demo.vhd
     
     tb/vhdl/tb_tb_common_add_sub.vhd
     tb/vhdl/tb_tb_common_adder_tree.vhd
diff --git a/libraries/base/common/tb/vhdl/tb_delta_cycle_demo.vhd b/libraries/base/common/tb/vhdl/tb_delta_cycle_demo.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..c27c92bf261fbbc351d7240f7cec0c6675a3be35
--- /dev/null
+++ b/libraries/base/common/tb/vhdl/tb_delta_cycle_demo.vhd
@@ -0,0 +1,137 @@
+-------------------------------------------------------------------------------
+--
+-- Copyright 2020
+-- ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/>
+-- P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
+-- 
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+-- 
+--     http://www.apache.org/licenses/LICENSE-2.0
+-- 
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-------------------------------------------------------------------------------
+
+-------------------------------------------------------------------------------
+-- 
+-- Author: E. Kooistra
+-- Purpose: Demonstrate harmful effect of delta-cycle difference between a 
+--          clock and a copied clock and how to solve this.
+-- Description:
+-- 1) The problem:
+--   The assignment of clk2 <= clk1 causes that in simulation clk2 differs from
+--   clk1 by one delta cycle and that results in that in simulation d1 /= d2,
+--   while on hardware d1 = d2, because the delta cycle on the clk2 does not 
+--   impact synthesis, because in hardware clk1 and clk2 are the same clock
+--   tree. The clk1 is typically a clock that comes from an PLL in the design,
+--   so it is generated in the FPGA.
+--   
+-- 2) The solution
+-- a)If an assignment like clk2 <= clk1 is done, then make sure that this is
+--   the only place where clk1 is used.
+--
+-- b)For a clk1 that is needed within a certain component and also outside
+--   that component there are two solutions:
+--   1) Assign clk2_out <= clk1, where clk2_out is an OUT port on that
+--      component. The component then also needs a clk2 IN port and then both
+--      clk2_out OUT and clk2 IN are mapped to the same clk2 signal. The clk2
+--      signal has the same delta cycle phase inside the component and outside
+--      the component, because going through the component IO hierarchy does
+--      not cause extra delta-cycles delays. The PORT MAP of the instanciated
+--      component then has:
+--
+--      PORT MAP (
+--        ...
+--        clk2_out => clk2
+--        clk2     => clk2
+--        ---
+--      );
+--
+--      and both internally in the component and externally only clk2 is used
+--      for clocking logic.
+--    2) Balance the delta-cycle delays, so assign clk2_out <= clk1 for the
+--       OUT port and assign clk2_int <= clk1 for internal usage inside this
+--       component. Both clk2_out and  clk2_int have the same delta-cycle
+--       phase, so logic can be clocked at either clock without affecting the
+--       timing in simulation.
+--
+-- Conclusion:
+--    Scheme 2b1 is used in ctrl_unb*_board.vhd and in the io_ddr.vhd. However
+--    scheme 2b2 is preferred, because it avoids that clk1 has to traverse up
+--    and back down the hierarchy of one or more components in an FPGA design,
+--    to reach a common single high level that can source the clk1 back down
+--    to every where it is used..
+--
+-- Note that it is not allowed in VHDL to use (read) an OUT port. To read
+--   an OUT port it is necessary to use an auxiliary signal, e.g. i_xout for
+--   OUT xout and then do x_out <= i_x_out and i_xout can be used internally.
+--   This scheme cannot be used for clk2 OUT, because then clk2 <= i_clk2 
+--   would again cause the delta-cycle delay difference between i_clk2 and
+--   clk2 that needs to be avoided. Therefore the solution 2b is needed if a
+--   clk2 that is created inside a component (e.g. by an PLL) is also used
+--   outside this component.
+--
+-- Usage:
+--
+--   Modelsim> as 5
+--   Modelsim> run -a
+--   Observe in Wave Window that d1 /= d2.
+--
+-------------------------------------------------------------------------------
+
+LIBRARY IEEE;
+USE IEEE.STD_LOGIC_1164.ALL;
+USE IEEE.NUMERIC_STD.ALL;
+
+
+ENTITY tb_delta_cycle_demo IS
+END tb_delta_cycle_demo;
+
+ARCHITECTURE tb OF tb_delta_cycle_demo IS
+
+  CONSTANT clk_period   : TIME    := 10 ns;
+  
+  SIGNAL tb_end           : STD_LOGIC := '0';
+  SIGNAL clk1             : STD_LOGIC := '1';
+  SIGNAL clk2             : STD_LOGIC := '1';
+  SIGNAL data             : STD_LOGIC := '0';
+  SIGNAL d1               : STD_LOGIC;
+  SIGNAL d2               : STD_LOGIC;
+  
+BEGIN
+
+  -- Stimuli
+  clk1 <= NOT clk1 OR tb_end AFTER clk_period/2;
+  clk2 <= clk1;
+  
+  p_data : PROCESS
+  BEGIN
+    data <= '0';
+    FOR I IN 0 TO 2 LOOP WAIT UNTIL rising_edge(clk1); END LOOP;
+    data <= '1';
+    FOR I IN 0 TO 2 LOOP WAIT UNTIL rising_edge(clk1); END LOOP;
+  END PROCESS;
+  
+  p_clk1 : PROCESS (clk1)
+  BEGIN
+    IF rising_edge(clk1) THEN
+      d1 <= data;
+    END IF;
+  END PROCESS;
+  
+  p_clk2 : PROCESS (clk2)
+  BEGIN
+    IF rising_edge(clk2) THEN
+      d2 <= data;
+    END IF;
+  END PROCESS;
+  
+  tb_end <= '0', '1' AFTER 1 us;
+  
+END tb;
diff --git a/libraries/io/ddr3/hdllib.cfg b/libraries/io/ddr3/hdllib.cfg
index 970529be4267e1d121cd77c32cbca7ff8485c82c..fddc99e9c4871d33aa29a5f3d6e20bec8bca5a54 100644
--- a/libraries/io/ddr3/hdllib.cfg
+++ b/libraries/io/ddr3/hdllib.cfg
@@ -2,7 +2,7 @@ hdl_lib_name = ddr3
 hdl_library_clause_name = ddr3_lib
 hdl_lib_uses_synth = common dp diag diagnostics ss tech_ddr 
 hdl_lib_uses_sim = 
-hdl_lib_technology =
+hdl_lib_technology = ip_stratixiv
 
 synth_files =
     src/vhdl/ddr3_pkg.vhd
diff --git a/libraries/io/tr_xaui/hdllib.cfg b/libraries/io/tr_xaui/hdllib.cfg
index a09ac0f8d4e2c4c7cb14ea4b69bd5eb2d698567d..6a48778fd9356a579d461b2659c1797fb6258076 100644
--- a/libraries/io/tr_xaui/hdllib.cfg
+++ b/libraries/io/tr_xaui/hdllib.cfg
@@ -2,7 +2,7 @@ hdl_lib_name = tr_xaui
 hdl_library_clause_name = tr_xaui_lib
 hdl_lib_uses_synth = common dp mdio diagnostics tech_xaui
 hdl_lib_uses_sim = 
-hdl_lib_technology = 
+hdl_lib_technology = ip_stratixiv
 
 synth_files =
     src/vhdl/tr_xaui_deframer.vhd
diff --git a/libraries/technology/10gbase_r/hdllib.cfg b/libraries/technology/10gbase_r/hdllib.cfg
index 6fd0f1dfc474cd08e7ebac4f872060e433a71daa..4efc3d6cbb312445443778922aad88cab0ec13e8 100644
--- a/libraries/technology/10gbase_r/hdllib.cfg
+++ b/libraries/technology/10gbase_r/hdllib.cfg
@@ -1,19 +1,20 @@
 hdl_lib_name = tech_10gbase_r
 hdl_library_clause_name = tech_10gbase_r_lib
 hdl_lib_uses_synth = technology common tech_pll tech_transceiver
-hdl_lib_uses_ip = ip_arria10_phy_10gbase_r                    ip_arria10_e3sge3_phy_10gbase_r                    ip_arria10_e1sg_phy_10gbase_r
-                  ip_arria10_phy_10gbase_r_4                  ip_arria10_e3sge3_phy_10gbase_r_4                  ip_arria10_e1sg_phy_10gbase_r_4 
-                  ip_arria10_phy_10gbase_r_12                 ip_arria10_e3sge3_phy_10gbase_r_12                 ip_arria10_e1sg_phy_10gbase_r_12
-                  ip_arria10_phy_10gbase_r_24                 ip_arria10_e3sge3_phy_10gbase_r_24                 ip_arria10_e1sg_phy_10gbase_r_24
-                  ip_arria10_phy_10gbase_r_48                 ip_arria10_e3sge3_phy_10gbase_r_48                 ip_arria10_e1sg_phy_10gbase_r_48
-                  ip_arria10_transceiver_pll_10g              ip_arria10_e3sge3_transceiver_pll_10g              ip_arria10_e1sg_transceiver_pll_10g
-                  ip_arria10_transceiver_reset_controller_1   ip_arria10_e3sge3_transceiver_reset_controller_1   ip_arria10_e1sg_transceiver_reset_controller_1
-                  ip_arria10_transceiver_reset_controller_4   ip_arria10_e3sge3_transceiver_reset_controller_4   ip_arria10_e1sg_transceiver_reset_controller_4
-                  ip_arria10_transceiver_reset_controller_12  ip_arria10_e3sge3_transceiver_reset_controller_12  ip_arria10_e1sg_transceiver_reset_controller_12
-                  ip_arria10_transceiver_reset_controller_24  ip_arria10_e3sge3_transceiver_reset_controller_24  ip_arria10_e1sg_transceiver_reset_controller_24
-                  ip_arria10_transceiver_reset_controller_48  ip_arria10_e3sge3_transceiver_reset_controller_48  ip_arria10_e1sg_transceiver_reset_controller_48
-                                                                                                                 ip_arria10_e1sg_phy_10gbase_r_3
-                                                                                                                 ip_arria10_e1sg_transceiver_reset_controller_3
+hdl_lib_uses_ip = ip_arria10_phy_10gbase_r                    ip_arria10_e3sge3_phy_10gbase_r                             
+                  ip_arria10_e1sg_phy_10gbase_r               ip_arria10_e2sg_phy_10gbase_r
+                  ip_arria10_phy_10gbase_r_4                  ip_arria10_e3sge3_phy_10gbase_r_4                  ip_arria10_e1sg_phy_10gbase_r_4             ip_arria10_e2sg_phy_10gbase_r_4
+                  ip_arria10_phy_10gbase_r_12                 ip_arria10_e3sge3_phy_10gbase_r_12                 ip_arria10_e1sg_phy_10gbase_r_12            ip_arria10_e2sg_phy_10gbase_r_12
+                  ip_arria10_phy_10gbase_r_24                 ip_arria10_e3sge3_phy_10gbase_r_24                 ip_arria10_e1sg_phy_10gbase_r_24            ip_arria10_e2sg_phy_10gbase_r_24
+                  ip_arria10_phy_10gbase_r_48                 ip_arria10_e3sge3_phy_10gbase_r_48                 ip_arria10_e1sg_phy_10gbase_r_48            ip_arria10_e2sg_phy_10gbase_r_48
+                  ip_arria10_transceiver_pll_10g              ip_arria10_e3sge3_transceiver_pll_10g              ip_arria10_e1sg_transceiver_pll_10g         ip_arria10_e2sg_transceiver_pll_10g
+                  ip_arria10_transceiver_reset_controller_1       ip_arria10_e3sge3_transceiver_reset_controller_1   ip_arria10_e1sg_transceiver_reset_controller_1  ip_arria10_e2sg_transceiver_reset_controller_1
+                  ip_arria10_transceiver_reset_controller_4       ip_arria10_e3sge3_transceiver_reset_controller_4   ip_arria10_e1sg_transceiver_reset_controller_4  ip_arria10_e2sg_transceiver_reset_controller_4
+                  ip_arria10_transceiver_reset_controller_12  ip_arria10_e3sge3_transceiver_reset_controller_12  ip_arria10_e1sg_transceiver_reset_controller_12 ip_arria10_e2sg_transceiver_reset_controller_12
+                  ip_arria10_transceiver_reset_controller_24  ip_arria10_e3sge3_transceiver_reset_controller_24  ip_arria10_e1sg_transceiver_reset_controller_24 ip_arria10_e2sg_transceiver_reset_controller_24
+                  ip_arria10_transceiver_reset_controller_48  ip_arria10_e3sge3_transceiver_reset_controller_48  ip_arria10_e1sg_transceiver_reset_controller_48 ip_arria10_e2sg_transceiver_reset_controller_48
+                  ip_arria10_e1sg_phy_10gbase_r_3                 ip_arria10_e2sg_phy_10gbase_r_3
+                  ip_arria10_e1sg_transceiver_reset_controller_3  ip_arria10_e2sg_transceiver_reset_controller_3
 
 hdl_lib_uses_sim = 
 hdl_lib_technology = 
@@ -40,7 +41,7 @@ hdl_lib_disclose_library_clause_names =
     ip_arria10_e3sge3_transceiver_reset_controller_12  ip_arria10_e3sge3_transceiver_reset_controller_12_altera_xcvr_reset_control_151
     ip_arria10_e3sge3_transceiver_reset_controller_24  ip_arria10_e3sge3_transceiver_reset_controller_24_altera_xcvr_reset_control_151
     ip_arria10_e3sge3_transceiver_reset_controller_48  ip_arria10_e3sge3_transceiver_reset_controller_48_altera_xcvr_reset_control_151
-    ip_arria10_e1sg_phy_10gbase_r                      ip_arria10_e1sg_phy_10gbase_r_altera_xcvr_native_a10_151
+    ip_arria10_e1sg_phy_10gbase_r                      ip_arria10_e1sg_phy_10gbase_r_altera_xcvr_native_a10_180
     ip_arria10_e1sg_phy_10gbase_r_3                    ip_arria10_e1sg_phy_10gbase_r_3_altera_xcvr_native_a10_180
     ip_arria10_e1sg_phy_10gbase_r_4                    ip_arria10_e1sg_phy_10gbase_r_4_altera_xcvr_native_a10_180
     ip_arria10_e1sg_phy_10gbase_r_12                   ip_arria10_e1sg_phy_10gbase_r_12_altera_xcvr_native_a10_180
@@ -51,7 +52,19 @@ hdl_lib_disclose_library_clause_names =
     ip_arria10_e1sg_transceiver_reset_controller_3     ip_arria10_e1sg_transceiver_reset_controller_3_altera_xcvr_reset_control_180
     ip_arria10_e1sg_transceiver_reset_controller_4     ip_arria10_e1sg_transceiver_reset_controller_4_altera_xcvr_reset_control_180
     ip_arria10_e1sg_transceiver_reset_controller_12    ip_arria10_e1sg_transceiver_reset_controller_12_altera_xcvr_reset_control_180
-    ip_arria10_e1sg_transceiver_reset_controller_24    ip_arria10_e1sg_transceiver_reset_controller_24_altera_xcvr_reset_control_180
+    ip_arria10_e2sg_transceiver_reset_controller_24    ip_arria10_e1sg_transceiver_reset_controller_24_altera_xcvr_reset_control_180
+    ip_arria10_e2sg_phy_10gbase_r                      ip_arria10_e1sg_phy_10gbase_r_altera_xcvr_native_a10_194
+    ip_arria10_e2sg_phy_10gbase_r_3                    ip_arria10_e1sg_phy_10gbase_r_3_altera_xcvr_native_a10_194
+    ip_arria10_e2sg_phy_10gbase_r_4                    ip_arria10_e1sg_phy_10gbase_r_4_altera_xcvr_native_a10_194
+    ip_arria10_e2sg_phy_10gbase_r_12                   ip_arria10_e1sg_phy_10gbase_r_12_altera_xcvr_native_a10_194
+    ip_arria10_e2sg_phy_10gbase_r_24                   ip_arria10_e1sg_phy_10gbase_r_24_altera_xcvr_native_a10_194
+    ip_arria10_e2sg_phy_10gbase_r_48                   ip_arria10_e1sg_phy_10gbase_r_48_altera_xcvr_native_a10_194
+    ip_arria10_e2sg_transceiver_pll_10g                ip_arria10_e1sg_transceiver_pll_10g_altera_xcvr_atx_pll_a10_194
+    ip_arria10_e2sg_transceiver_reset_controller_1     ip_arria10_e1sg_transceiver_reset_controller_1_altera_xcvr_reset_control_194
+    ip_arria10_e2sg_transceiver_reset_controller_3     ip_arria10_e1sg_transceiver_reset_controller_3_altera_xcvr_reset_control_194
+    ip_arria10_e2sg_transceiver_reset_controller_4     ip_arria10_e1sg_transceiver_reset_controller_4_altera_xcvr_reset_control_194
+    ip_arria10_e2sg_transceiver_reset_controller_12    ip_arria10_e1sg_transceiver_reset_controller_12_altera_xcvr_reset_control_194
+    ip_arria10_e2sg_transceiver_reset_controller_24    ip_arria10_e1sg_transceiver_reset_controller_24_altera_xcvr_reset_control_194
 
 synth_files =
     sim_10gbase_r.vhd
@@ -59,6 +72,7 @@ synth_files =
     tech_10gbase_r_arria10.vhd
     tech_10gbase_r_arria10_e3sge3.vhd
     tech_10gbase_r_arria10_e1sg.vhd
+    tech_10gbase_r_arria10_e2sg.vhd
     tech_10gbase_r.vhd
 
 test_bench_files =
diff --git a/libraries/technology/10gbase_r/tech_10gbase_r.vhd b/libraries/technology/10gbase_r/tech_10gbase_r.vhd
index 43f06b9b0ff201e9a8530bc100a17ff9fdf1adce..8d8d53de9753214944ea94635461f7ceb74862f7 100644
--- a/libraries/technology/10gbase_r/tech_10gbase_r.vhd
+++ b/libraries/technology/10gbase_r/tech_10gbase_r.vhd
@@ -43,6 +43,8 @@ ENTITY tech_10gbase_r IS
     reg_ip_arria10_e3sge3_phy_10gbase_r_24_miso   : OUT t_mem_miso;
     reg_ip_arria10_e1sg_phy_10gbase_r_24_mosi     : IN  t_mem_mosi := c_mem_mosi_rst; 
     reg_ip_arria10_e1sg_phy_10gbase_r_24_miso     : OUT t_mem_miso;
+    reg_ip_arria10_e2sg_phy_10gbase_r_24_mosi     : IN  t_mem_mosi := c_mem_mosi_rst; 
+    reg_ip_arria10_e2sg_phy_10gbase_r_24_miso     : OUT t_mem_miso;
     -- Transceiver ATX PLL reference clock
     tr_ref_clk_644          : IN  STD_LOGIC;   -- 644.531250 MHz
     
@@ -102,6 +104,18 @@ BEGIN
               xgmii_tx_ready_arr, xgmii_rx_ready_arr, xgmii_tx_dc_arr, xgmii_rx_dc_arr,
               tx_serial_arr, rx_serial_arr);
   END GENERATE;
+
+  gen_ip_arria10_e2sg : IF c_use_technology=TRUE AND g_technology=c_tech_arria10_e2sg GENERATE
+    u0 : ENTITY work.tech_10gbase_r_arria10_e2sg
+    GENERIC MAP (g_sim, g_nof_channels)
+    PORT MAP (mm_clk, mm_rst,
+              reg_ip_arria10_e2sg_phy_10gbase_r_24_mosi,
+              reg_ip_arria10_e2sg_phy_10gbase_r_24_miso, 
+              tr_ref_clk_644,
+              clk_156, rst_156,
+              xgmii_tx_ready_arr, xgmii_rx_ready_arr, xgmii_tx_dc_arr, xgmii_rx_dc_arr,
+              tx_serial_arr, rx_serial_arr);
+  END GENERATE;
       
   gem_sim_10gbase_r : IF c_use_sim_model=TRUE GENERATE
     u0 : ENTITY work.sim_10gbase_r
diff --git a/libraries/technology/10gbase_r/tech_10gbase_r_arria10_e2sg.vhd b/libraries/technology/10gbase_r/tech_10gbase_r_arria10_e2sg.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..04ece135be96de03f6cd5855bd22dd7ce4e2b196
--- /dev/null
+++ b/libraries/technology/10gbase_r/tech_10gbase_r_arria10_e2sg.vhd
@@ -0,0 +1,653 @@
+--------------------------------------------------------------------------------
+--
+-- 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/>.
+--
+--------------------------------------------------------------------------------
+
+-- Declare IP libraries to ensure default binding in simulation. The IP library clause is ignored by synthesis.
+LIBRARY ip_arria10_e2sg_phy_10gbase_r_altera_xcvr_native_a10_194;
+LIBRARY ip_arria10_e2sg_phy_10gbase_r_3_altera_xcvr_native_a10_194;
+LIBRARY ip_arria10_e2sg_phy_10gbase_r_4_altera_xcvr_native_a10_194;
+LIBRARY ip_arria10_e2sg_phy_10gbase_r_12_altera_xcvr_native_a10_194;
+LIBRARY ip_arria10_e2sg_phy_10gbase_r_24_altera_xcvr_native_a10_194;
+LIBRARY ip_arria10_e2sg_phy_10gbase_r_48_altera_xcvr_native_a10_194;
+LIBRARY ip_arria10_e2sg_transceiver_pll_10g_altera_xcvr_atx_pll_a10_194;
+LIBRARY ip_arria10_e2sg_transceiver_reset_controller_1_altera_xcvr_reset_control_194;
+LIBRARY ip_arria10_e2sg_transceiver_reset_controller_4_altera_xcvr_reset_control_194;
+LIBRARY ip_arria10_e2sg_transceiver_reset_controller_12_altera_xcvr_reset_control_194;
+LIBRARY ip_arria10_e2sg_transceiver_reset_controller_24_altera_xcvr_reset_control_194;
+LIBRARY ip_arria10_e2sg_transceiver_reset_controller_48_altera_xcvr_reset_control_194;
+
+LIBRARY IEEE, tech_pll_lib, common_lib;
+USE IEEE.STD_LOGIC_1164.ALL;
+USE common_lib.common_pkg.ALL;
+USE common_lib.common_mem_pkg.ALL;
+USE common_lib.common_interface_layers_pkg.ALL;
+USE tech_pll_lib.tech_pll_component_pkg.ALL;
+USE work.tech_10gbase_r_component_pkg.ALL;
+
+ENTITY tech_10gbase_r_arria10_e2sg IS
+  GENERIC (
+    g_sim                 : BOOLEAN := FALSE;
+    g_nof_channels        : NATURAL := 1
+  );
+  PORT (
+    -- MM
+    mm_clk            : IN  STD_LOGIC := '0';
+    mm_rst            : IN  STD_LOGIC := '0';
+    reg_ip_arria10_e2sg_phy_10gbase_r_24_mosi   : IN  t_mem_mosi:= c_mem_mosi_rst; 
+    reg_ip_arria10_e2sg_phy_10gbase_r_24_miso   : OUT t_mem_miso;
+
+
+    -- Transceiver ATX PLL reference clock
+    tr_ref_clk_644          : IN  STD_LOGIC;   -- 644.531250 MHz
+    
+    -- XGMII clocks
+    clk_156                 : IN STD_LOGIC;    -- 156.25 MHz
+    rst_156                 : IN STD_LOGIC;
+
+    -- XGMII interface
+    xgmii_tx_ready_arr      : OUT STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);  -- can be used for xon flow control
+    xgmii_rx_ready_arr      : OUT STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);  -- typically leave not connected
+    xgmii_tx_dc_arr         : IN  t_xgmii_dc_arr(g_nof_channels-1 DOWNTO 0);  -- 72 bit
+    xgmii_rx_dc_arr         : OUT t_xgmii_dc_arr(g_nof_channels-1 DOWNTO 0);  -- 72 bit
+
+    -- PHY serial IO
+    tx_serial_arr           : OUT STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);
+    rx_serial_arr           : IN  STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0)
+  );
+END tech_10gbase_r_arria10_e2sg;
+
+
+ARCHITECTURE str OF tech_10gbase_r_arria10_e2sg IS
+
+  -- FIXME check selection of g_nof_channels to be 1,4,12 or 24
+
+  --CONSTANT c_nof_channels_per_ip : NATURAL := sel_a_b(g_nof_channels=24, 24, 1); -- only support single 1 or block of 12 
+  --CONSTANT c_nof_channels_per_ip : NATURAL := 24 WHEN g_nof_channels=24 ELSE 12 WHEN g_nof_channels=12 ELSE 1;
+  CONSTANT c_nof_channels_per_ip : NATURAL := g_nof_channels;
+
+
+  CONSTANT IP_SIZE               : NATURAL := c_nof_channels_per_ip;  -- short constant name alias to improve index readability
+  CONSTANT IP_SIZE_DATA          : NATURAL := IP_SIZE * c_xgmii_data_w;
+  CONSTANT IP_SIZE_CONTROL       : NATURAL := IP_SIZE * c_xgmii_nof_lanes;
+
+  SIGNAL tx_serial_clk          : STD_LOGIC_VECTOR(0 DOWNTO 0);
+
+  SIGNAL tr_coreclkin           : STD_LOGIC_VECTOR(0 DOWNTO 0);
+
+  SIGNAL tx_parallel_data_arr   : t_xgmii_d_arr(g_nof_channels-1 DOWNTO 0);  -- 64 bit
+  SIGNAL rx_parallel_data_arr   : t_xgmii_d_arr(g_nof_channels-1 DOWNTO 0);  -- 64 bit
+  SIGNAL tx_control_arr         : t_xgmii_c_arr(g_nof_channels-1 DOWNTO 0);  --  8 bit
+  SIGNAL rx_control_arr         : t_xgmii_c_arr(g_nof_channels-1 DOWNTO 0);  --  8 bit
+
+  -- IP block SLV signals
+  SIGNAL tx_serial_clk_slv        : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);
+  SIGNAL tr_coreclkin_slv         : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);
+  SIGNAL tx_parallel_data_arr_slv : STD_LOGIC_VECTOR(g_nof_channels*c_xgmii_data_w-1 DOWNTO 0);  -- 64 bit
+  SIGNAL rx_parallel_data_arr_slv : STD_LOGIC_VECTOR(g_nof_channels*c_xgmii_data_w-1 DOWNTO 0);  -- 64 bit
+  SIGNAL tx_control_arr_slv       : STD_LOGIC_VECTOR(g_nof_channels*c_xgmii_nof_lanes-1 DOWNTO 0);  --  8 bit
+  SIGNAL rx_control_arr_slv       : STD_LOGIC_VECTOR(g_nof_channels*c_xgmii_nof_lanes-1 DOWNTO 0);  --  8 bit
+  
+  -- transceiver reset controller
+  SIGNAL tx_analogreset_arr     : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0) := (OTHERS=>'1');
+  SIGNAL tx_digitalreset_arr    : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0) := (OTHERS=>'1');
+  SIGNAL rx_analogreset_arr     : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0) := (OTHERS=>'1');
+  SIGNAL rx_digitalreset_arr    : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0) := (OTHERS=>'1');
+  SIGNAL tx_cal_busy_arr        : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0) := (OTHERS=>'0');
+  SIGNAL rx_cal_busy_arr        : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0) := (OTHERS=>'0');
+  SIGNAL rx_is_lockedtodata_arr : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0) := (OTHERS=>'0');
+
+  SIGNAL cal_busy_arr           : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0) := (OTHERS=>'0');
+
+  -- transceiver ATX PLL for 10G
+  SIGNAL atx_pll_powerdown_arr  : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0) := (OTHERS=>'0');
+  SIGNAL atx_pll_locked_arr     : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0) := (OTHERS=>'0');
+  SIGNAL atx_pll_locked         : STD_LOGIC;
+  SIGNAL atx_pll_cal_busy       : STD_LOGIC;
+  
+BEGIN
+
+  -- Clocks
+  tr_coreclkin(0) <= clk_156;
+                                
+  gen_glue_logic : FOR I IN 0 TO g_nof_channels-1 GENERATE                                
+    -- Reset controller
+    cal_busy_arr(I) <= tx_cal_busy_arr(I) OR atx_pll_cal_busy;
+    
+    -- On hardware use atx_pll_locked for all channels, in simulation model some timing difference between the channels
+    gen_hw : IF g_sim=FALSE GENERATE
+      atx_pll_locked_arr(I) <= atx_pll_locked;
+    END GENERATE;
+    gen_sim : IF g_sim=TRUE GENERATE
+      atx_pll_locked_arr(I) <= TRANSPORT atx_pll_locked AFTER tech_pll_clk_156_period*I;
+    END GENERATE;
+    
+    -- XGMII
+    tx_parallel_data_arr(I) <= func_xgmii_d(xgmii_tx_dc_arr(I));
+    tx_control_arr(I)       <= func_xgmii_c(xgmii_tx_dc_arr(I));
+  
+    xgmii_rx_dc_arr(I)      <= func_xgmii_dc(rx_parallel_data_arr(I), rx_control_arr(I));
+  END GENERATE;
+  
+
+  gen_phy_1 : IF c_nof_channels_per_ip=1 GENERATE
+    gen_channels : FOR I IN 0 TO g_nof_channels-1 GENERATE
+      u_ip_arria10_e2sg_phy_10gbase_r : ip_arria10_e2sg_phy_10gbase_r
+      PORT MAP (
+        tx_analogreset          => tx_analogreset_arr(I DOWNTO I),
+        tx_digitalreset         => tx_digitalreset_arr(I DOWNTO I),
+        rx_analogreset          => rx_analogreset_arr(I DOWNTO I),
+        rx_digitalreset         => rx_digitalreset_arr(I DOWNTO I),
+        tx_cal_busy             => tx_cal_busy_arr(I DOWNTO I),
+        rx_cal_busy             => rx_cal_busy_arr(I DOWNTO I),
+    
+        tx_serial_clk0          => tx_serial_clk,
+        rx_cdr_refclk0          => tr_ref_clk_644,
+        tx_serial_data          => tx_serial_arr(I DOWNTO I),
+        rx_serial_data          => rx_serial_arr(I DOWNTO I),
+    
+        rx_is_lockedtoref       => OPEN,
+        rx_is_lockedtodata      => rx_is_lockedtodata_arr(I DOWNTO I),
+    
+        tx_coreclkin            => tr_coreclkin,     -- 156.25 MHz
+        rx_coreclkin            => tr_coreclkin,     -- 156.25 MHz
+    
+        tx_parallel_data        => tx_parallel_data_arr(I),
+        rx_parallel_data        => rx_parallel_data_arr(I),
+        tx_control              => tx_control_arr(I),
+        rx_control              => rx_control_arr(I)
+    
+        --tx_err_ins              : in  std_logic                     := '0';             --              tx_err_ins.tx_err_ins
+        --tx_enh_data_valid       : in  std_logic_vector(0 downto 0)  := (others => '0'); --       tx_enh_data_valid.tx_enh_data_valid
+        --tx_enh_fifo_full        : out std_logic_vector(0 downto 0);                     --        tx_enh_fifo_full.tx_enh_fifo_full
+        --tx_enh_fifo_pfull       : out std_logic_vector(0 downto 0);                     --       tx_enh_fifo_pfull.tx_enh_fifo_pfull
+        --tx_enh_fifo_empty       : out std_logic_vector(0 downto 0);                     --       tx_enh_fifo_empty.tx_enh_fifo_empty
+        --tx_enh_fifo_pempty      : out std_logic_vector(0 downto 0);                     --      tx_enh_fifo_pempty.tx_enh_fifo_pempty
+        
+        --rx_enh_data_valid       : out std_logic_vector(0 downto 0);                     --       rx_enh_data_valid.rx_enh_data_valid
+        --rx_enh_fifo_full        : out std_logic_vector(0 downto 0);                     --        rx_enh_fifo_full.rx_enh_fifo_full
+        --rx_enh_fifo_empty       : out std_logic_vector(0 downto 0);                     --       rx_enh_fifo_empty.rx_enh_fifo_empty
+        --rx_enh_fifo_del         : out std_logic_vector(0 downto 0);                     --         rx_enh_fifo_del.rx_enh_fifo_del
+        --rx_enh_fifo_insert      : out std_logic_vector(0 downto 0);                     --      rx_enh_fifo_insert.rx_enh_fifo_insert
+        --rx_enh_highber          : out std_logic_vector(0 downto 0);                     --          rx_enh_highber.rx_enh_highber
+        --rx_enh_blk_lock         : out std_logic_vector(0 downto 0);                     --         rx_enh_blk_lock.rx_enh_blk_lock
+        
+        --unused_tx_parallel_data : in  std_logic_vector(63 downto 0) := (others => '0'); -- unused_tx_parallel_data.unused_tx_parallel_data
+        --unused_tx_control       : in  std_logic_vector(8 downto 0)  := (others => '0'); --       unused_tx_control.unused_tx_control
+        --unused_rx_parallel_data : out std_logic_vector(63 downto 0);                    -- unused_rx_parallel_data.unused_rx_parallel_data
+        --unused_rx_control       : out std_logic_vector(11 downto 0);                    --       unused_rx_control.unused_rx_control
+      );
+    
+      u_ip_arria10_e2sg_transceiver_reset_controller_1 : ip_arria10_e2sg_transceiver_reset_controller_1
+      PORT MAP (
+        clock              => clk_156,
+        reset              => rst_156,
+        pll_powerdown      => atx_pll_powerdown_arr(I DOWNTO I),
+        tx_analogreset     => tx_analogreset_arr(I DOWNTO I),
+        tx_digitalreset    => tx_digitalreset_arr(I DOWNTO I),
+        tx_ready           => xgmii_tx_ready_arr(I DOWNTO I),
+        pll_locked         => atx_pll_locked_arr(I DOWNTO I),
+        pll_select         => "0",                   -- set to zero when using one PLL
+        tx_cal_busy        => cal_busy_arr(I DOWNTO I),
+        rx_analogreset     => rx_analogreset_arr(I DOWNTO I),
+        rx_digitalreset    => rx_digitalreset_arr(I DOWNTO I),
+        rx_ready           => xgmii_rx_ready_arr(I DOWNTO I),
+        rx_is_lockedtodata => rx_is_lockedtodata_arr(I DOWNTO I),
+        rx_cal_busy        => rx_cal_busy_arr(I DOWNTO I)
+      );
+    END GENERATE;
+  END GENERATE;
+
+  gen_phy_3 : IF c_nof_channels_per_ip=3 GENERATE
+    tx_serial_clk_slv <= (OTHERS=>tx_serial_clk(0));
+    tr_coreclkin_slv  <= (OTHERS=>tr_coreclkin(0));
+    
+    gen_channels : FOR I IN 0 TO g_nof_channels-1 GENERATE
+      tx_parallel_data_arr_slv((I+1)*c_xgmii_data_w-1 DOWNTO I*c_xgmii_data_w) <= tx_parallel_data_arr(I);
+      tx_control_arr_slv((I+1)*c_xgmii_nof_lanes-1 DOWNTO I*c_xgmii_nof_lanes) <= tx_control_arr(I);
+      
+      rx_parallel_data_arr(I) <= rx_parallel_data_arr_slv((I+1)*c_xgmii_data_w-1 DOWNTO I*c_xgmii_data_w);
+      rx_control_arr(I) <= rx_control_arr_slv((I+1)*c_xgmii_nof_lanes-1 DOWNTO I*c_xgmii_nof_lanes);
+    END GENERATE; 
+
+    u_ip_arria10_e2sg_phy_10gbase_r_3 : ip_arria10_e2sg_phy_10gbase_r_3
+    PORT MAP (
+      tx_analogreset          => tx_analogreset_arr(IP_SIZE-1 DOWNTO 0),          -- in  std_logic_vector(11 downto 0)   := (others => '0'); --          tx_analogreset.tx_analogreset
+      tx_digitalreset         => tx_digitalreset_arr(IP_SIZE-1 DOWNTO 0),         -- in  std_logic_vector(11 downto 0)   := (others => '0'); --         tx_digitalreset.tx_digitalreset
+      rx_analogreset          => rx_analogreset_arr(IP_SIZE-1 DOWNTO 0),          -- in  std_logic_vector(11 downto 0)   := (others => '0'); --          rx_analogreset.rx_analogreset
+      rx_digitalreset         => rx_digitalreset_arr(IP_SIZE-1 DOWNTO 0),         -- in  std_logic_vector(11 downto 0)   := (others => '0'); --         rx_digitalreset.rx_digitalreset
+      tx_cal_busy             => tx_cal_busy_arr(IP_SIZE-1 DOWNTO 0),             -- out std_logic_vector(11 downto 0);                      --             tx_cal_busy.tx_cal_busy
+      rx_cal_busy             => rx_cal_busy_arr(IP_SIZE-1 DOWNTO 0),             -- out std_logic_vector(11 downto 0);                      --             rx_cal_busy.rx_cal_busy
+      
+      tx_serial_clk0          => tx_serial_clk_slv(IP_SIZE-1 DOWNTO 0),           -- in  std_logic_vector(11 downto 0)   := (others => '0'); --          tx_serial_clk0.clk
+      rx_cdr_refclk0          => tr_ref_clk_644,                                                -- in  std_logic                       := '0';             --          rx_cdr_refclk0.clk
+      tx_serial_data          => tx_serial_arr(IP_SIZE-1 DOWNTO 0),               -- out std_logic_vector(11 downto 0);                      --          tx_serial_data.tx_serial_data
+      rx_serial_data          => rx_serial_arr(IP_SIZE-1 DOWNTO 0),               -- in  std_logic_vector(11 downto 0)   := (others => '0'); --          rx_serial_data.rx_serial_data
+      
+      --rx_is_lockedtoref       : out std_logic_vector(11 downto 0);                      --       rx_is_lockedtoref.rx_is_lockedtoref
+      rx_is_lockedtodata      => rx_is_lockedtodata_arr(IP_SIZE-1 DOWNTO 0),      -- out std_logic_vector(11 downto 0);                      --      rx_is_lockedtodata.rx_is_lockedtodata
+      
+      tx_coreclkin            => tr_coreclkin_slv(IP_SIZE-1 DOWNTO 0),            -- in  std_logic_vector(11 downto 0)   := (others => '0'); --            tx_coreclkin.clk
+      rx_coreclkin            => tr_coreclkin_slv(IP_SIZE-1 DOWNTO 0),            -- in  std_logic_vector(11 downto 0)   := (others => '0'); --            rx_coreclkin.clk
+      
+      tx_parallel_data        => tx_parallel_data_arr_slv(IP_SIZE_DATA-1 DOWNTO 0),        -- in  std_logic_vector(1535 downto 0) := (others => '0'); --        tx_parallel_data.tx_parallel_data
+      rx_parallel_data        => rx_parallel_data_arr_slv(IP_SIZE_DATA-1 DOWNTO 0),        -- out std_logic_vector(1535 downto 0);                    --        rx_parallel_data.rx_parallel_data
+      tx_control              => tx_control_arr_slv(IP_SIZE_CONTROL-1 DOWNTO 0),        -- in  std_logic_vector(191 downto 0)  := (others => '0'); --              tx_control.tx_control
+      rx_control              => rx_control_arr_slv(IP_SIZE_CONTROL-1 DOWNTO 0)         -- out std_logic_vector(191 downto 0);                     --              rx_control.rx_control
+      
+      --tx_clkout               : out std_logic_vector(11 downto 0);                      --               tx_clkout.clk
+      --rx_clkout               : out std_logic_vector(11 downto 0);                      --               rx_clkout.clk
+      
+      --tx_err_ins              : in  std_logic_vector(11 downto 0)   := (others => '0'); --              tx_err_ins.tx_err_ins
+      --tx_enh_data_valid       : in  std_logic_vector(11 downto 0)   := (others => '0'); --       tx_enh_data_valid.tx_enh_data_valid
+      --tx_enh_fifo_empty       : out std_logic_vector(11 downto 0);                      --       tx_enh_fifo_empty.tx_enh_fifo_empty
+      --tx_enh_fifo_full        : out std_logic_vector(11 downto 0);                      --        tx_enh_fifo_full.tx_enh_fifo_full
+      --tx_enh_fifo_pempty      : out std_logic_vector(11 downto 0);                      --      tx_enh_fifo_pempty.tx_enh_fifo_pempty
+      --tx_enh_fifo_pfull       : out std_logic_vector(11 downto 0);                      --       tx_enh_fifo_pfull.tx_enh_fifo_pfull
+      --tx_pma_div_clkout       : out std_logic_vector(11 downto 0);                      --       tx_pma_div_clkout.clk
+      
+      --rx_enh_blk_lock         : out std_logic_vector(11 downto 0);                      --         rx_enh_blk_lock.rx_enh_blk_lock
+      --rx_enh_data_valid       : out std_logic_vector(11 downto 0);                      --       rx_enh_data_valid.rx_enh_data_valid
+      --rx_enh_fifo_del         : out std_logic_vector(11 downto 0);                      --         rx_enh_fifo_del.rx_enh_fifo_del
+      --rx_enh_fifo_empty       : out std_logic_vector(11 downto 0);                      --       rx_enh_fifo_empty.rx_enh_fifo_empty
+      --rx_enh_fifo_full        : out std_logic_vector(11 downto 0);                      --        rx_enh_fifo_full.rx_enh_fifo_full
+      --rx_enh_fifo_insert      : out std_logic_vector(11 downto 0);                      --      rx_enh_fifo_insert.rx_enh_fifo_insert
+      --rx_enh_highber          : out std_logic_vector(11 downto 0);                      --          rx_enh_highber.rx_enh_highber
+      
+      --unused_rx_control       : out std_logic_vector(287 downto 0);                     --       unused_rx_control.unused_rx_control
+      --unused_rx_parallel_data : out std_logic_vector(1535 downto 0);                    -- unused_rx_parallel_data.unused_rx_parallel_data
+      --unused_tx_control       : in  std_logic_vector(215 downto 0)  := (others => '0'); --       unused_tx_control.unused_tx_control
+      --unused_tx_parallel_data : in  std_logic_vector(1535 downto 0) := (others => '0')  -- unused_tx_parallel_data.unused_tx_parallel_data
+    );
+
+    u_ip_arria10_e2sg_transceiver_reset_controller_3 : ip_arria10_e2sg_transceiver_reset_controller_3
+    PORT MAP (
+      clock              => clk_156,                                                  -- : in  std_logic                     := '0';             --              clock.clk
+      pll_locked         => atx_pll_locked_arr(0 DOWNTO 0),                           -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --         pll_locked.pll_locked
+      pll_powerdown      => atx_pll_powerdown_arr(0 DOWNTO 0),                        -- : out std_logic_vector(0 downto 0);                     --      pll_powerdown.pll_powerdown
+      pll_select         => "0",                                                      -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --         pll_select.pll_select
+      reset              => rst_156,                                                  -- : in  std_logic                     := '0';             --              reset.reset
+      rx_analogreset     => rx_analogreset_arr(IP_SIZE-1 DOWNTO 0),     -- : out std_logic_vector(11 downto 0);                    --     rx_analogreset.rx_analogreset
+      rx_cal_busy        => rx_cal_busy_arr(IP_SIZE-1 DOWNTO 0),        -- : in  std_logic_vector(11 downto 0) := (others => '0'); --        rx_cal_busy.rx_cal_busy
+      rx_digitalreset    => rx_digitalreset_arr(IP_SIZE-1 DOWNTO 0),    -- : out std_logic_vector(11 downto 0);                    --    rx_digitalreset.rx_digitalreset
+      rx_is_lockedtodata => rx_is_lockedtodata_arr(IP_SIZE-1 DOWNTO 0), -- : in  std_logic_vector(11 downto 0) := (others => '0'); -- rx_is_lockedtodata.rx_is_lockedtodata
+      rx_ready           => xgmii_rx_ready_arr(IP_SIZE-1 DOWNTO 0),     -- : out std_logic_vector(11 downto 0);                    --           rx_ready.rx_ready
+      tx_analogreset     => tx_analogreset_arr(IP_SIZE-1 DOWNTO 0),     -- : out std_logic_vector(11 downto 0);                    --     tx_analogreset.tx_analogreset
+      tx_cal_busy        => cal_busy_arr(IP_SIZE-1 DOWNTO 0),           -- : in  std_logic_vector(11 downto 0) := (others => '0'); --        tx_cal_busy.tx_cal_busy
+      tx_digitalreset    => tx_digitalreset_arr(IP_SIZE-1 DOWNTO 0),    -- : out std_logic_vector(11 downto 0);                    --    tx_digitalreset.tx_digitalreset
+      tx_ready           => xgmii_tx_ready_arr(IP_SIZE-1 DOWNTO 0)      -- : out std_logic_vector(11 downto 0)                     --           tx_ready.tx_ready
+    );    
+  END GENERATE;
+
+  gen_phy_4 : IF c_nof_channels_per_ip=4 GENERATE
+    tx_serial_clk_slv <= (OTHERS=>tx_serial_clk(0));
+    tr_coreclkin_slv  <= (OTHERS=>tr_coreclkin(0));
+    
+    gen_channels : FOR I IN 0 TO g_nof_channels-1 GENERATE
+      tx_parallel_data_arr_slv((I+1)*c_xgmii_data_w-1 DOWNTO I*c_xgmii_data_w) <= tx_parallel_data_arr(I);
+      tx_control_arr_slv((I+1)*c_xgmii_nof_lanes-1 DOWNTO I*c_xgmii_nof_lanes) <= tx_control_arr(I);
+      
+      rx_parallel_data_arr(I) <= rx_parallel_data_arr_slv((I+1)*c_xgmii_data_w-1 DOWNTO I*c_xgmii_data_w);
+      rx_control_arr(I) <= rx_control_arr_slv((I+1)*c_xgmii_nof_lanes-1 DOWNTO I*c_xgmii_nof_lanes);
+    END GENERATE;
+   
+    u_ip_arria10_e2sg_phy_10gbase_r_4 : ip_arria10_e2sg_phy_10gbase_r_4
+    PORT MAP (
+      tx_analogreset          => tx_analogreset_arr(IP_SIZE-1 DOWNTO 0),          -- in  std_logic_vector(11 downto 0)   := (others => '0'); --          tx_analogreset.tx_analogreset
+      tx_digitalreset         => tx_digitalreset_arr(IP_SIZE-1 DOWNTO 0),         -- in  std_logic_vector(11 downto 0)   := (others => '0'); --         tx_digitalreset.tx_digitalreset
+      rx_analogreset          => rx_analogreset_arr(IP_SIZE-1 DOWNTO 0),          -- in  std_logic_vector(11 downto 0)   := (others => '0'); --          rx_analogreset.rx_analogreset
+      rx_digitalreset         => rx_digitalreset_arr(IP_SIZE-1 DOWNTO 0),         -- in  std_logic_vector(11 downto 0)   := (others => '0'); --         rx_digitalreset.rx_digitalreset
+      tx_cal_busy             => tx_cal_busy_arr(IP_SIZE-1 DOWNTO 0),             -- out std_logic_vector(11 downto 0);                      --             tx_cal_busy.tx_cal_busy
+      rx_cal_busy             => rx_cal_busy_arr(IP_SIZE-1 DOWNTO 0),             -- out std_logic_vector(11 downto 0);                      --             rx_cal_busy.rx_cal_busy
+      
+      tx_serial_clk0          => tx_serial_clk_slv(IP_SIZE-1 DOWNTO 0),           -- in  std_logic_vector(11 downto 0)   := (others => '0'); --          tx_serial_clk0.clk
+      rx_cdr_refclk0          => tr_ref_clk_644,                                                -- in  std_logic                       := '0';             --          rx_cdr_refclk0.clk
+      tx_serial_data          => tx_serial_arr(IP_SIZE-1 DOWNTO 0),               -- out std_logic_vector(11 downto 0);                      --          tx_serial_data.tx_serial_data
+      rx_serial_data          => rx_serial_arr(IP_SIZE-1 DOWNTO 0),               -- in  std_logic_vector(11 downto 0)   := (others => '0'); --          rx_serial_data.rx_serial_data
+      
+      --rx_is_lockedtoref       : out std_logic_vector(11 downto 0);                      --       rx_is_lockedtoref.rx_is_lockedtoref
+      rx_is_lockedtodata      => rx_is_lockedtodata_arr(IP_SIZE-1 DOWNTO 0),      -- out std_logic_vector(11 downto 0);                      --      rx_is_lockedtodata.rx_is_lockedtodata
+      
+      tx_coreclkin            => tr_coreclkin_slv(IP_SIZE-1 DOWNTO 0),            -- in  std_logic_vector(11 downto 0)   := (others => '0'); --            tx_coreclkin.clk
+      rx_coreclkin            => tr_coreclkin_slv(IP_SIZE-1 DOWNTO 0),            -- in  std_logic_vector(11 downto 0)   := (others => '0'); --            rx_coreclkin.clk
+      
+      tx_parallel_data        => tx_parallel_data_arr_slv(IP_SIZE_DATA-1 DOWNTO 0),        -- in  std_logic_vector(1535 downto 0) := (others => '0'); --        tx_parallel_data.tx_parallel_data
+      rx_parallel_data        => rx_parallel_data_arr_slv(IP_SIZE_DATA-1 DOWNTO 0),        -- out std_logic_vector(1535 downto 0);                    --        rx_parallel_data.rx_parallel_data
+      tx_control              => tx_control_arr_slv(IP_SIZE_CONTROL-1 DOWNTO 0),        -- in  std_logic_vector(191 downto 0)  := (others => '0'); --              tx_control.tx_control
+      rx_control              => rx_control_arr_slv(IP_SIZE_CONTROL-1 DOWNTO 0)         -- out std_logic_vector(191 downto 0);                     --              rx_control.rx_control
+      
+      --tx_clkout               : out std_logic_vector(11 downto 0);                      --               tx_clkout.clk
+      --rx_clkout               : out std_logic_vector(11 downto 0);                      --               rx_clkout.clk
+      
+      --tx_err_ins              : in  std_logic_vector(11 downto 0)   := (others => '0'); --              tx_err_ins.tx_err_ins
+      --tx_enh_data_valid       : in  std_logic_vector(11 downto 0)   := (others => '0'); --       tx_enh_data_valid.tx_enh_data_valid
+      --tx_enh_fifo_empty       : out std_logic_vector(11 downto 0);                      --       tx_enh_fifo_empty.tx_enh_fifo_empty
+      --tx_enh_fifo_full        : out std_logic_vector(11 downto 0);                      --        tx_enh_fifo_full.tx_enh_fifo_full
+      --tx_enh_fifo_pempty      : out std_logic_vector(11 downto 0);                      --      tx_enh_fifo_pempty.tx_enh_fifo_pempty
+      --tx_enh_fifo_pfull       : out std_logic_vector(11 downto 0);                      --       tx_enh_fifo_pfull.tx_enh_fifo_pfull
+      --tx_pma_div_clkout       : out std_logic_vector(11 downto 0);                      --       tx_pma_div_clkout.clk
+      
+      --rx_enh_blk_lock         : out std_logic_vector(11 downto 0);                      --         rx_enh_blk_lock.rx_enh_blk_lock
+      --rx_enh_data_valid       : out std_logic_vector(11 downto 0);                      --       rx_enh_data_valid.rx_enh_data_valid
+      --rx_enh_fifo_del         : out std_logic_vector(11 downto 0);                      --         rx_enh_fifo_del.rx_enh_fifo_del
+      --rx_enh_fifo_empty       : out std_logic_vector(11 downto 0);                      --       rx_enh_fifo_empty.rx_enh_fifo_empty
+      --rx_enh_fifo_full        : out std_logic_vector(11 downto 0);                      --        rx_enh_fifo_full.rx_enh_fifo_full
+      --rx_enh_fifo_insert      : out std_logic_vector(11 downto 0);                      --      rx_enh_fifo_insert.rx_enh_fifo_insert
+      --rx_enh_highber          : out std_logic_vector(11 downto 0);                      --          rx_enh_highber.rx_enh_highber
+      
+      --unused_rx_control       : out std_logic_vector(287 downto 0);                     --       unused_rx_control.unused_rx_control
+      --unused_rx_parallel_data : out std_logic_vector(1535 downto 0);                    -- unused_rx_parallel_data.unused_rx_parallel_data
+      --unused_tx_control       : in  std_logic_vector(215 downto 0)  := (others => '0'); --       unused_tx_control.unused_tx_control
+      --unused_tx_parallel_data : in  std_logic_vector(1535 downto 0) := (others => '0')  -- unused_tx_parallel_data.unused_tx_parallel_data
+    );
+
+    u_ip_arria10_e2sg_transceiver_reset_controller_4 : ip_arria10_e2sg_transceiver_reset_controller_4
+    PORT MAP (
+      clock              => clk_156,                                                  -- : in  std_logic                     := '0';             --              clock.clk
+      pll_locked         => atx_pll_locked_arr(0 DOWNTO 0),                           -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --         pll_locked.pll_locked
+      pll_powerdown      => atx_pll_powerdown_arr(0 DOWNTO 0),                        -- : out std_logic_vector(0 downto 0);                     --      pll_powerdown.pll_powerdown
+      pll_select         => "0",                                                      -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --         pll_select.pll_select
+      reset              => rst_156,                                                  -- : in  std_logic                     := '0';             --              reset.reset
+      rx_analogreset     => rx_analogreset_arr(IP_SIZE-1 DOWNTO 0),     -- : out std_logic_vector(11 downto 0);                    --     rx_analogreset.rx_analogreset
+      rx_cal_busy        => rx_cal_busy_arr(IP_SIZE-1 DOWNTO 0),        -- : in  std_logic_vector(11 downto 0) := (others => '0'); --        rx_cal_busy.rx_cal_busy
+      rx_digitalreset    => rx_digitalreset_arr(IP_SIZE-1 DOWNTO 0),    -- : out std_logic_vector(11 downto 0);                    --    rx_digitalreset.rx_digitalreset
+      rx_is_lockedtodata => rx_is_lockedtodata_arr(IP_SIZE-1 DOWNTO 0), -- : in  std_logic_vector(11 downto 0) := (others => '0'); -- rx_is_lockedtodata.rx_is_lockedtodata
+      rx_ready           => xgmii_rx_ready_arr(IP_SIZE-1 DOWNTO 0),     -- : out std_logic_vector(11 downto 0);                    --           rx_ready.rx_ready
+      tx_analogreset     => tx_analogreset_arr(IP_SIZE-1 DOWNTO 0),     -- : out std_logic_vector(11 downto 0);                    --     tx_analogreset.tx_analogreset
+      tx_cal_busy        => cal_busy_arr(IP_SIZE-1 DOWNTO 0),           -- : in  std_logic_vector(11 downto 0) := (others => '0'); --        tx_cal_busy.tx_cal_busy
+      tx_digitalreset    => tx_digitalreset_arr(IP_SIZE-1 DOWNTO 0),    -- : out std_logic_vector(11 downto 0);                    --    tx_digitalreset.tx_digitalreset
+      tx_ready           => xgmii_tx_ready_arr(IP_SIZE-1 DOWNTO 0)      -- : out std_logic_vector(11 downto 0)                     --           tx_ready.tx_ready
+    );    
+  END GENERATE;
+  
+
+
+
+  gen_phy_12 : IF c_nof_channels_per_ip=12 GENERATE
+    tx_serial_clk_slv <= (OTHERS=>tx_serial_clk(0));
+    tr_coreclkin_slv  <= (OTHERS=>tr_coreclkin(0));
+    
+    gen_channels : FOR I IN 0 TO g_nof_channels-1 GENERATE
+      tx_parallel_data_arr_slv((I+1)*c_xgmii_data_w-1 DOWNTO I*c_xgmii_data_w) <= tx_parallel_data_arr(I);
+      tx_control_arr_slv((I+1)*c_xgmii_nof_lanes-1 DOWNTO I*c_xgmii_nof_lanes) <= tx_control_arr(I);
+      
+      rx_parallel_data_arr(I) <= rx_parallel_data_arr_slv((I+1)*c_xgmii_data_w-1 DOWNTO I*c_xgmii_data_w);
+      rx_control_arr(I) <= rx_control_arr_slv((I+1)*c_xgmii_nof_lanes-1 DOWNTO I*c_xgmii_nof_lanes);
+    END GENERATE;
+    
+    u_ip_arria10_e2sg_phy_10gbase_r_12 : ip_arria10_e2sg_phy_10gbase_r_12
+    PORT MAP (
+      tx_analogreset          => tx_analogreset_arr(IP_SIZE-1 DOWNTO 0),          -- in  std_logic_vector(11 downto 0)   := (others => '0'); --          tx_analogreset.tx_analogreset
+      tx_digitalreset         => tx_digitalreset_arr(IP_SIZE-1 DOWNTO 0),         -- in  std_logic_vector(11 downto 0)   := (others => '0'); --         tx_digitalreset.tx_digitalreset
+      rx_analogreset          => rx_analogreset_arr(IP_SIZE-1 DOWNTO 0),          -- in  std_logic_vector(11 downto 0)   := (others => '0'); --          rx_analogreset.rx_analogreset
+      rx_digitalreset         => rx_digitalreset_arr(IP_SIZE-1 DOWNTO 0),         -- in  std_logic_vector(11 downto 0)   := (others => '0'); --         rx_digitalreset.rx_digitalreset
+      tx_cal_busy             => tx_cal_busy_arr(IP_SIZE-1 DOWNTO 0),             -- out std_logic_vector(11 downto 0);                      --             tx_cal_busy.tx_cal_busy
+      rx_cal_busy             => rx_cal_busy_arr(IP_SIZE-1 DOWNTO 0),             -- out std_logic_vector(11 downto 0);                      --             rx_cal_busy.rx_cal_busy
+      
+      tx_serial_clk0          => tx_serial_clk_slv(IP_SIZE-1 DOWNTO 0),           -- in  std_logic_vector(11 downto 0)   := (others => '0'); --          tx_serial_clk0.clk
+      rx_cdr_refclk0          => tr_ref_clk_644,                                                -- in  std_logic                       := '0';             --          rx_cdr_refclk0.clk
+      tx_serial_data          => tx_serial_arr(IP_SIZE-1 DOWNTO 0),               -- out std_logic_vector(11 downto 0);                      --          tx_serial_data.tx_serial_data
+      rx_serial_data          => rx_serial_arr(IP_SIZE-1 DOWNTO 0),               -- in  std_logic_vector(11 downto 0)   := (others => '0'); --          rx_serial_data.rx_serial_data
+      
+      --rx_is_lockedtoref       : out std_logic_vector(11 downto 0);                      --       rx_is_lockedtoref.rx_is_lockedtoref
+      rx_is_lockedtodata      => rx_is_lockedtodata_arr(IP_SIZE-1 DOWNTO 0),      -- out std_logic_vector(11 downto 0);                      --      rx_is_lockedtodata.rx_is_lockedtodata
+      
+      tx_coreclkin            => tr_coreclkin_slv(IP_SIZE-1 DOWNTO 0),            -- in  std_logic_vector(11 downto 0)   := (others => '0'); --            tx_coreclkin.clk
+      rx_coreclkin            => tr_coreclkin_slv(IP_SIZE-1 DOWNTO 0),            -- in  std_logic_vector(11 downto 0)   := (others => '0'); --            rx_coreclkin.clk
+      
+      tx_parallel_data        => tx_parallel_data_arr_slv(IP_SIZE_DATA-1 DOWNTO 0),        -- in  std_logic_vector(1535 downto 0) := (others => '0'); --        tx_parallel_data.tx_parallel_data
+      rx_parallel_data        => rx_parallel_data_arr_slv(IP_SIZE_DATA-1 DOWNTO 0),        -- out std_logic_vector(1535 downto 0);                    --        rx_parallel_data.rx_parallel_data
+      tx_control              => tx_control_arr_slv(IP_SIZE_CONTROL-1 DOWNTO 0),        -- in  std_logic_vector(191 downto 0)  := (others => '0'); --              tx_control.tx_control
+      rx_control              => rx_control_arr_slv(IP_SIZE_CONTROL-1 DOWNTO 0)         -- out std_logic_vector(191 downto 0);                     --              rx_control.rx_control
+      
+      --tx_clkout               : out std_logic_vector(11 downto 0);                      --               tx_clkout.clk
+      --rx_clkout               : out std_logic_vector(11 downto 0);                      --               rx_clkout.clk
+      
+      --tx_err_ins              : in  std_logic_vector(11 downto 0)   := (others => '0'); --              tx_err_ins.tx_err_ins
+      --tx_enh_data_valid       : in  std_logic_vector(11 downto 0)   := (others => '0'); --       tx_enh_data_valid.tx_enh_data_valid
+      --tx_enh_fifo_empty       : out std_logic_vector(11 downto 0);                      --       tx_enh_fifo_empty.tx_enh_fifo_empty
+      --tx_enh_fifo_full        : out std_logic_vector(11 downto 0);                      --        tx_enh_fifo_full.tx_enh_fifo_full
+      --tx_enh_fifo_pempty      : out std_logic_vector(11 downto 0);                      --      tx_enh_fifo_pempty.tx_enh_fifo_pempty
+      --tx_enh_fifo_pfull       : out std_logic_vector(11 downto 0);                      --       tx_enh_fifo_pfull.tx_enh_fifo_pfull
+      --tx_pma_div_clkout       : out std_logic_vector(11 downto 0);                      --       tx_pma_div_clkout.clk
+      
+      --rx_enh_blk_lock         : out std_logic_vector(11 downto 0);                      --         rx_enh_blk_lock.rx_enh_blk_lock
+      --rx_enh_data_valid       : out std_logic_vector(11 downto 0);                      --       rx_enh_data_valid.rx_enh_data_valid
+      --rx_enh_fifo_del         : out std_logic_vector(11 downto 0);                      --         rx_enh_fifo_del.rx_enh_fifo_del
+      --rx_enh_fifo_empty       : out std_logic_vector(11 downto 0);                      --       rx_enh_fifo_empty.rx_enh_fifo_empty
+      --rx_enh_fifo_full        : out std_logic_vector(11 downto 0);                      --        rx_enh_fifo_full.rx_enh_fifo_full
+      --rx_enh_fifo_insert      : out std_logic_vector(11 downto 0);                      --      rx_enh_fifo_insert.rx_enh_fifo_insert
+      --rx_enh_highber          : out std_logic_vector(11 downto 0);                      --          rx_enh_highber.rx_enh_highber
+      
+      --unused_rx_control       : out std_logic_vector(287 downto 0);                     --       unused_rx_control.unused_rx_control
+      --unused_rx_parallel_data : out std_logic_vector(1535 downto 0);                    -- unused_rx_parallel_data.unused_rx_parallel_data
+      --unused_tx_control       : in  std_logic_vector(215 downto 0)  := (others => '0'); --       unused_tx_control.unused_tx_control
+      --unused_tx_parallel_data : in  std_logic_vector(1535 downto 0) := (others => '0')  -- unused_tx_parallel_data.unused_tx_parallel_data
+    );
+        
+    u_ip_arria10_e2sg_transceiver_reset_controller_12 : ip_arria10_e2sg_transceiver_reset_controller_12
+    PORT MAP (
+      clock              => clk_156,                                                  -- : in  std_logic                     := '0';             --              clock.clk
+      pll_locked         => atx_pll_locked_arr(0 DOWNTO 0),                           -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --         pll_locked.pll_locked
+      pll_powerdown      => atx_pll_powerdown_arr(0 DOWNTO 0),                        -- : out std_logic_vector(0 downto 0);                     --      pll_powerdown.pll_powerdown
+      pll_select         => "0",                                                      -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --         pll_select.pll_select
+      reset              => rst_156,                                                  -- : in  std_logic                     := '0';             --              reset.reset
+      rx_analogreset     => rx_analogreset_arr(IP_SIZE-1 DOWNTO 0),     -- : out std_logic_vector(11 downto 0);                    --     rx_analogreset.rx_analogreset
+      rx_cal_busy        => rx_cal_busy_arr(IP_SIZE-1 DOWNTO 0),        -- : in  std_logic_vector(11 downto 0) := (others => '0'); --        rx_cal_busy.rx_cal_busy
+      rx_digitalreset    => rx_digitalreset_arr(IP_SIZE-1 DOWNTO 0),    -- : out std_logic_vector(11 downto 0);                    --    rx_digitalreset.rx_digitalreset
+      rx_is_lockedtodata => rx_is_lockedtodata_arr(IP_SIZE-1 DOWNTO 0), -- : in  std_logic_vector(11 downto 0) := (others => '0'); -- rx_is_lockedtodata.rx_is_lockedtodata
+      rx_ready           => xgmii_rx_ready_arr(IP_SIZE-1 DOWNTO 0),     -- : out std_logic_vector(11 downto 0);                    --           rx_ready.rx_ready
+      tx_analogreset     => tx_analogreset_arr(IP_SIZE-1 DOWNTO 0),     -- : out std_logic_vector(11 downto 0);                    --     tx_analogreset.tx_analogreset
+      tx_cal_busy        => cal_busy_arr(IP_SIZE-1 DOWNTO 0),           -- : in  std_logic_vector(11 downto 0) := (others => '0'); --        tx_cal_busy.tx_cal_busy
+      tx_digitalreset    => tx_digitalreset_arr(IP_SIZE-1 DOWNTO 0),    -- : out std_logic_vector(11 downto 0);                    --    tx_digitalreset.tx_digitalreset
+      tx_ready           => xgmii_tx_ready_arr(IP_SIZE-1 DOWNTO 0)      -- : out std_logic_vector(11 downto 0)                     --           tx_ready.tx_ready
+    );    
+  END GENERATE;
+
+
+
+
+  gen_phy_24 : IF c_nof_channels_per_ip=24 GENERATE
+    tx_serial_clk_slv <= (OTHERS=>tx_serial_clk(0));
+    tr_coreclkin_slv  <= (OTHERS=>tr_coreclkin(0));
+    
+    gen_channels : FOR I IN 0 TO g_nof_channels-1 GENERATE
+      tx_parallel_data_arr_slv((I+1)*c_xgmii_data_w-1 DOWNTO I*c_xgmii_data_w) <= tx_parallel_data_arr(I);
+      tx_control_arr_slv((I+1)*c_xgmii_nof_lanes-1 DOWNTO I*c_xgmii_nof_lanes) <= tx_control_arr(I);
+      
+      rx_parallel_data_arr(I) <= rx_parallel_data_arr_slv((I+1)*c_xgmii_data_w-1 DOWNTO I*c_xgmii_data_w);
+      rx_control_arr(I) <= rx_control_arr_slv((I+1)*c_xgmii_nof_lanes-1 DOWNTO I*c_xgmii_nof_lanes);
+    END GENERATE;
+    
+    u_ip_arria10_e2sg_phy_10gbase_r_24 : ip_arria10_e2sg_phy_10gbase_r_24
+    PORT MAP (
+      reconfig_write(0)       => reg_ip_arria10_e2sg_phy_10gbase_r_24_mosi.wr,                          -- in  std_logic_vector(0 downto 0)
+      reconfig_read(0)        => reg_ip_arria10_e2sg_phy_10gbase_r_24_mosi.rd,                          -- in  std_logic_vector(0 downto 0)    
+      reconfig_address        => reg_ip_arria10_e2sg_phy_10gbase_r_24_mosi.address(14 DOWNTO 0),        -- in  std_logic_vector(14 downto 0)   
+      reconfig_writedata      => reg_ip_arria10_e2sg_phy_10gbase_r_24_mosi.wrdata(c_word_w-1 DOWNTO 0), -- in  std_logic_vector(31 downto 0)   
+      reconfig_readdata       => reg_ip_arria10_e2sg_phy_10gbase_r_24_miso.rddata(c_word_w-1 DOWNTO 0), -- out std_logic_vector(31 downto 0);  
+      reconfig_waitrequest(0) => reg_ip_arria10_e2sg_phy_10gbase_r_24_miso.waitrequest,                 -- out std_logic_vector(0 downto 0);   
+      reconfig_clk(0)         => mm_clk,                                                                  -- in  std_logic_vector(0 downto 0)    
+      reconfig_reset(0)       => mm_rst,  
+
+      tx_analogreset          => tx_analogreset_arr(IP_SIZE-1 DOWNTO 0),          -- in  std_logic_vector(11 downto 0)   := (others => '0'); --          tx_analogreset.tx_analogreset
+      tx_digitalreset         => tx_digitalreset_arr(IP_SIZE-1 DOWNTO 0),         -- in  std_logic_vector(11 downto 0)   := (others => '0'); --         tx_digitalreset.tx_digitalreset
+      rx_analogreset          => rx_analogreset_arr(IP_SIZE-1 DOWNTO 0),          -- in  std_logic_vector(11 downto 0)   := (others => '0'); --          rx_analogreset.rx_analogreset
+      rx_digitalreset         => rx_digitalreset_arr(IP_SIZE-1 DOWNTO 0),         -- in  std_logic_vector(11 downto 0)   := (others => '0'); --         rx_digitalreset.rx_digitalreset
+      tx_cal_busy             => tx_cal_busy_arr(IP_SIZE-1 DOWNTO 0),             -- out std_logic_vector(11 downto 0);                      --             tx_cal_busy.tx_cal_busy
+      rx_cal_busy             => rx_cal_busy_arr(IP_SIZE-1 DOWNTO 0),             -- out std_logic_vector(11 downto 0);                      --             rx_cal_busy.rx_cal_busy
+      
+      tx_serial_clk0          => tx_serial_clk_slv(IP_SIZE-1 DOWNTO 0),           -- in  std_logic_vector(11 downto 0)   := (others => '0'); --          tx_serial_clk0.clk
+      rx_cdr_refclk0          => tr_ref_clk_644,                                                -- in  std_logic                       := '0';             --          rx_cdr_refclk0.clk
+      tx_serial_data          => tx_serial_arr(IP_SIZE-1 DOWNTO 0),               -- out std_logic_vector(11 downto 0);                      --          tx_serial_data.tx_serial_data
+      rx_serial_data          => rx_serial_arr(IP_SIZE-1 DOWNTO 0),               -- in  std_logic_vector(11 downto 0)   := (others => '0'); --          rx_serial_data.rx_serial_data
+      
+      --rx_is_lockedtoref       : out std_logic_vector(11 downto 0);                      --       rx_is_lockedtoref.rx_is_lockedtoref
+      rx_is_lockedtodata      => rx_is_lockedtodata_arr(IP_SIZE-1 DOWNTO 0),      -- out std_logic_vector(11 downto 0);                      --      rx_is_lockedtodata.rx_is_lockedtodata
+      
+      tx_coreclkin            => tr_coreclkin_slv(IP_SIZE-1 DOWNTO 0),            -- in  std_logic_vector(11 downto 0)   := (others => '0'); --            tx_coreclkin.clk
+      rx_coreclkin            => tr_coreclkin_slv(IP_SIZE-1 DOWNTO 0),            -- in  std_logic_vector(11 downto 0)   := (others => '0'); --            rx_coreclkin.clk
+      
+      tx_parallel_data        => tx_parallel_data_arr_slv(IP_SIZE_DATA-1 DOWNTO 0),        -- in  std_logic_vector(1535 downto 0) := (others => '0'); --        tx_parallel_data.tx_parallel_data
+      rx_parallel_data        => rx_parallel_data_arr_slv(IP_SIZE_DATA-1 DOWNTO 0),        -- out std_logic_vector(1535 downto 0);                    --        rx_parallel_data.rx_parallel_data
+      tx_control              => tx_control_arr_slv(IP_SIZE_CONTROL-1 DOWNTO 0),        -- in  std_logic_vector(191 downto 0)  := (others => '0'); --              tx_control.tx_control
+      rx_control              => rx_control_arr_slv(IP_SIZE_CONTROL-1 DOWNTO 0)         -- out std_logic_vector(191 downto 0);                     --              rx_control.rx_control
+      
+      --tx_clkout               : out std_logic_vector(11 downto 0);                      --               tx_clkout.clk
+      --rx_clkout               : out std_logic_vector(11 downto 0);                      --               rx_clkout.clk
+      
+      --tx_err_ins              : in  std_logic_vector(11 downto 0)   := (others => '0'); --              tx_err_ins.tx_err_ins
+      --tx_enh_data_valid       : in  std_logic_vector(11 downto 0)   := (others => '0'); --       tx_enh_data_valid.tx_enh_data_valid
+      --tx_enh_fifo_empty       : out std_logic_vector(11 downto 0);                      --       tx_enh_fifo_empty.tx_enh_fifo_empty
+      --tx_enh_fifo_full        : out std_logic_vector(11 downto 0);                      --        tx_enh_fifo_full.tx_enh_fifo_full
+      --tx_enh_fifo_pempty      : out std_logic_vector(11 downto 0);                      --      tx_enh_fifo_pempty.tx_enh_fifo_pempty
+      --tx_enh_fifo_pfull       : out std_logic_vector(11 downto 0);                      --       tx_enh_fifo_pfull.tx_enh_fifo_pfull
+      --tx_pma_div_clkout       : out std_logic_vector(11 downto 0);                      --       tx_pma_div_clkout.clk
+      
+      --rx_enh_blk_lock         : out std_logic_vector(11 downto 0);                      --         rx_enh_blk_lock.rx_enh_blk_lock
+      --rx_enh_data_valid       : out std_logic_vector(11 downto 0);                      --       rx_enh_data_valid.rx_enh_data_valid
+      --rx_enh_fifo_del         : out std_logic_vector(11 downto 0);                      --         rx_enh_fifo_del.rx_enh_fifo_del
+      --rx_enh_fifo_empty       : out std_logic_vector(11 downto 0);                      --       rx_enh_fifo_empty.rx_enh_fifo_empty
+      --rx_enh_fifo_full        : out std_logic_vector(11 downto 0);                      --        rx_enh_fifo_full.rx_enh_fifo_full
+      --rx_enh_fifo_insert      : out std_logic_vector(11 downto 0);                      --      rx_enh_fifo_insert.rx_enh_fifo_insert
+      --rx_enh_highber          : out std_logic_vector(11 downto 0);                      --          rx_enh_highber.rx_enh_highber
+      
+      --unused_rx_control       : out std_logic_vector(287 downto 0);                     --       unused_rx_control.unused_rx_control
+      --unused_rx_parallel_data : out std_logic_vector(1535 downto 0);                    -- unused_rx_parallel_data.unused_rx_parallel_data
+      --unused_tx_control       : in  std_logic_vector(215 downto 0)  := (others => '0'); --       unused_tx_control.unused_tx_control
+      --unused_tx_parallel_data : in  std_logic_vector(1535 downto 0) := (others => '0')  -- unused_tx_parallel_data.unused_tx_parallel_data
+    );
+        
+    u_ip_arria10_e2sg_transceiver_reset_controller_24 : ip_arria10_e2sg_transceiver_reset_controller_24
+    PORT MAP (
+      clock              => clk_156,                                                  -- : in  std_logic                     := '0';             --              clock.clk
+      pll_locked         => atx_pll_locked_arr(0 DOWNTO 0),                           -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --         pll_locked.pll_locked
+      pll_powerdown      => atx_pll_powerdown_arr(0 DOWNTO 0),                        -- : out std_logic_vector(0 downto 0);                     --      pll_powerdown.pll_powerdown
+      pll_select         => "0",                                                      -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --         pll_select.pll_select
+      reset              => rst_156,                                                  -- : in  std_logic                     := '0';             --              reset.reset
+      rx_analogreset     => rx_analogreset_arr(IP_SIZE-1 DOWNTO 0),     -- : out std_logic_vector(11 downto 0);                    --     rx_analogreset.rx_analogreset
+      rx_cal_busy        => rx_cal_busy_arr(IP_SIZE-1 DOWNTO 0),        -- : in  std_logic_vector(11 downto 0) := (others => '0'); --        rx_cal_busy.rx_cal_busy
+      rx_digitalreset    => rx_digitalreset_arr(IP_SIZE-1 DOWNTO 0),    -- : out std_logic_vector(11 downto 0);                    --    rx_digitalreset.rx_digitalreset
+      rx_is_lockedtodata => rx_is_lockedtodata_arr(IP_SIZE-1 DOWNTO 0), -- : in  std_logic_vector(11 downto 0) := (others => '0'); -- rx_is_lockedtodata.rx_is_lockedtodata
+      rx_ready           => xgmii_rx_ready_arr(IP_SIZE-1 DOWNTO 0),     -- : out std_logic_vector(11 downto 0);                    --           rx_ready.rx_ready
+      tx_analogreset     => tx_analogreset_arr(IP_SIZE-1 DOWNTO 0),     -- : out std_logic_vector(11 downto 0);                    --     tx_analogreset.tx_analogreset
+      tx_cal_busy        => cal_busy_arr(IP_SIZE-1 DOWNTO 0),           -- : in  std_logic_vector(11 downto 0) := (others => '0'); --        tx_cal_busy.tx_cal_busy
+      tx_digitalreset    => tx_digitalreset_arr(IP_SIZE-1 DOWNTO 0),    -- : out std_logic_vector(11 downto 0);                    --    tx_digitalreset.tx_digitalreset
+      tx_ready           => xgmii_tx_ready_arr(IP_SIZE-1 DOWNTO 0)      -- : out std_logic_vector(11 downto 0)                     --           tx_ready.tx_ready
+    );    
+  END GENERATE;
+
+
+
+
+  gen_phy_48 : IF c_nof_channels_per_ip=48 GENERATE
+    tx_serial_clk_slv <= (OTHERS=>tx_serial_clk(0));
+    tr_coreclkin_slv  <= (OTHERS=>tr_coreclkin(0));
+    
+    gen_channels : FOR I IN 0 TO g_nof_channels-1 GENERATE
+      tx_parallel_data_arr_slv((I+1)*c_xgmii_data_w-1 DOWNTO I*c_xgmii_data_w) <= tx_parallel_data_arr(I);
+      tx_control_arr_slv((I+1)*c_xgmii_nof_lanes-1 DOWNTO I*c_xgmii_nof_lanes) <= tx_control_arr(I);
+      
+      rx_parallel_data_arr(I) <= rx_parallel_data_arr_slv((I+1)*c_xgmii_data_w-1 DOWNTO I*c_xgmii_data_w);
+      rx_control_arr(I) <= rx_control_arr_slv((I+1)*c_xgmii_nof_lanes-1 DOWNTO I*c_xgmii_nof_lanes);
+    END GENERATE;
+    
+    u_ip_arria10_e2sg_phy_10gbase_r_48 : ip_arria10_e2sg_phy_10gbase_r_48
+    PORT MAP (
+      tx_analogreset          => tx_analogreset_arr(IP_SIZE-1 DOWNTO 0),          -- in  std_logic_vector(11 downto 0)   := (others => '0'); --          tx_analogreset.tx_analogreset
+      tx_digitalreset         => tx_digitalreset_arr(IP_SIZE-1 DOWNTO 0),         -- in  std_logic_vector(11 downto 0)   := (others => '0'); --         tx_digitalreset.tx_digitalreset
+      rx_analogreset          => rx_analogreset_arr(IP_SIZE-1 DOWNTO 0),          -- in  std_logic_vector(11 downto 0)   := (others => '0'); --          rx_analogreset.rx_analogreset
+      rx_digitalreset         => rx_digitalreset_arr(IP_SIZE-1 DOWNTO 0),         -- in  std_logic_vector(11 downto 0)   := (others => '0'); --         rx_digitalreset.rx_digitalreset
+      tx_cal_busy             => tx_cal_busy_arr(IP_SIZE-1 DOWNTO 0),             -- out std_logic_vector(11 downto 0);                      --             tx_cal_busy.tx_cal_busy
+      rx_cal_busy             => rx_cal_busy_arr(IP_SIZE-1 DOWNTO 0),             -- out std_logic_vector(11 downto 0);                      --             rx_cal_busy.rx_cal_busy
+      
+      tx_serial_clk0          => tx_serial_clk_slv(IP_SIZE-1 DOWNTO 0),           -- in  std_logic_vector(11 downto 0)   := (others => '0'); --          tx_serial_clk0.clk
+      rx_cdr_refclk0          => tr_ref_clk_644,                                                -- in  std_logic                       := '0';             --          rx_cdr_refclk0.clk
+      tx_serial_data          => tx_serial_arr(IP_SIZE-1 DOWNTO 0),               -- out std_logic_vector(11 downto 0);                      --          tx_serial_data.tx_serial_data
+      rx_serial_data          => rx_serial_arr(IP_SIZE-1 DOWNTO 0),               -- in  std_logic_vector(11 downto 0)   := (others => '0'); --          rx_serial_data.rx_serial_data
+      
+      --rx_is_lockedtoref       : out std_logic_vector(11 downto 0);                      --       rx_is_lockedtoref.rx_is_lockedtoref
+      rx_is_lockedtodata      => rx_is_lockedtodata_arr(IP_SIZE-1 DOWNTO 0),      -- out std_logic_vector(11 downto 0);                      --      rx_is_lockedtodata.rx_is_lockedtodata
+      
+      tx_coreclkin            => tr_coreclkin_slv(IP_SIZE-1 DOWNTO 0),            -- in  std_logic_vector(11 downto 0)   := (others => '0'); --            tx_coreclkin.clk
+      rx_coreclkin            => tr_coreclkin_slv(IP_SIZE-1 DOWNTO 0),            -- in  std_logic_vector(11 downto 0)   := (others => '0'); --            rx_coreclkin.clk
+      
+      tx_parallel_data        => tx_parallel_data_arr_slv(IP_SIZE_DATA-1 DOWNTO 0),        -- in  std_logic_vector(1535 downto 0) := (others => '0'); --        tx_parallel_data.tx_parallel_data
+      rx_parallel_data        => rx_parallel_data_arr_slv(IP_SIZE_DATA-1 DOWNTO 0),        -- out std_logic_vector(1535 downto 0);                    --        rx_parallel_data.rx_parallel_data
+      tx_control              => tx_control_arr_slv(IP_SIZE_CONTROL-1 DOWNTO 0),        -- in  std_logic_vector(191 downto 0)  := (others => '0'); --              tx_control.tx_control
+      rx_control              => rx_control_arr_slv(IP_SIZE_CONTROL-1 DOWNTO 0)         -- out std_logic_vector(191 downto 0);                     --              rx_control.rx_control
+      
+      --tx_clkout               : out std_logic_vector(11 downto 0);                      --               tx_clkout.clk
+      --rx_clkout               : out std_logic_vector(11 downto 0);                      --               rx_clkout.clk
+      
+      --tx_err_ins              : in  std_logic_vector(11 downto 0)   := (others => '0'); --              tx_err_ins.tx_err_ins
+      --tx_enh_data_valid       : in  std_logic_vector(11 downto 0)   := (others => '0'); --       tx_enh_data_valid.tx_enh_data_valid
+      --tx_enh_fifo_empty       : out std_logic_vector(11 downto 0);                      --       tx_enh_fifo_empty.tx_enh_fifo_empty
+      --tx_enh_fifo_full        : out std_logic_vector(11 downto 0);                      --        tx_enh_fifo_full.tx_enh_fifo_full
+      --tx_enh_fifo_pempty      : out std_logic_vector(11 downto 0);                      --      tx_enh_fifo_pempty.tx_enh_fifo_pempty
+      --tx_enh_fifo_pfull       : out std_logic_vector(11 downto 0);                      --       tx_enh_fifo_pfull.tx_enh_fifo_pfull
+      --tx_pma_div_clkout       : out std_logic_vector(11 downto 0);                      --       tx_pma_div_clkout.clk
+      
+      --rx_enh_blk_lock         : out std_logic_vector(11 downto 0);                      --         rx_enh_blk_lock.rx_enh_blk_lock
+      --rx_enh_data_valid       : out std_logic_vector(11 downto 0);                      --       rx_enh_data_valid.rx_enh_data_valid
+      --rx_enh_fifo_del         : out std_logic_vector(11 downto 0);                      --         rx_enh_fifo_del.rx_enh_fifo_del
+      --rx_enh_fifo_empty       : out std_logic_vector(11 downto 0);                      --       rx_enh_fifo_empty.rx_enh_fifo_empty
+      --rx_enh_fifo_full        : out std_logic_vector(11 downto 0);                      --        rx_enh_fifo_full.rx_enh_fifo_full
+      --rx_enh_fifo_insert      : out std_logic_vector(11 downto 0);                      --      rx_enh_fifo_insert.rx_enh_fifo_insert
+      --rx_enh_highber          : out std_logic_vector(11 downto 0);                      --          rx_enh_highber.rx_enh_highber
+      
+      --unused_rx_control       : out std_logic_vector(287 downto 0);                     --       unused_rx_control.unused_rx_control
+      --unused_rx_parallel_data : out std_logic_vector(1535 downto 0);                    -- unused_rx_parallel_data.unused_rx_parallel_data
+      --unused_tx_control       : in  std_logic_vector(215 downto 0)  := (others => '0'); --       unused_tx_control.unused_tx_control
+      --unused_tx_parallel_data : in  std_logic_vector(1535 downto 0) := (others => '0')  -- unused_tx_parallel_data.unused_tx_parallel_data
+    );
+        
+    u_ip_arria10_e2sg_transceiver_reset_controller_48 : ip_arria10_e2sg_transceiver_reset_controller_48
+    PORT MAP (
+      clock              => clk_156,                                                  -- : in  std_logic                     := '0';             --              clock.clk
+      pll_locked         => atx_pll_locked_arr(0 DOWNTO 0),                           -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --         pll_locked.pll_locked
+      pll_powerdown      => atx_pll_powerdown_arr(0 DOWNTO 0),                        -- : out std_logic_vector(0 downto 0);                     --      pll_powerdown.pll_powerdown
+      pll_select         => "0",                                                      -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --         pll_select.pll_select
+      reset              => rst_156,                                                  -- : in  std_logic                     := '0';             --              reset.reset
+      rx_analogreset     => rx_analogreset_arr(IP_SIZE-1 DOWNTO 0),     -- : out std_logic_vector(11 downto 0);                    --     rx_analogreset.rx_analogreset
+      rx_cal_busy        => rx_cal_busy_arr(IP_SIZE-1 DOWNTO 0),        -- : in  std_logic_vector(11 downto 0) := (others => '0'); --        rx_cal_busy.rx_cal_busy
+      rx_digitalreset    => rx_digitalreset_arr(IP_SIZE-1 DOWNTO 0),    -- : out std_logic_vector(11 downto 0);                    --    rx_digitalreset.rx_digitalreset
+      rx_is_lockedtodata => rx_is_lockedtodata_arr(IP_SIZE-1 DOWNTO 0), -- : in  std_logic_vector(11 downto 0) := (others => '0'); -- rx_is_lockedtodata.rx_is_lockedtodata
+      rx_ready           => xgmii_rx_ready_arr(IP_SIZE-1 DOWNTO 0),     -- : out std_logic_vector(11 downto 0);                    --           rx_ready.rx_ready
+      tx_analogreset     => tx_analogreset_arr(IP_SIZE-1 DOWNTO 0),     -- : out std_logic_vector(11 downto 0);                    --     tx_analogreset.tx_analogreset
+      tx_cal_busy        => cal_busy_arr(IP_SIZE-1 DOWNTO 0),           -- : in  std_logic_vector(11 downto 0) := (others => '0'); --        tx_cal_busy.tx_cal_busy
+      tx_digitalreset    => tx_digitalreset_arr(IP_SIZE-1 DOWNTO 0),    -- : out std_logic_vector(11 downto 0);                    --    tx_digitalreset.tx_digitalreset
+      tx_ready           => xgmii_tx_ready_arr(IP_SIZE-1 DOWNTO 0)      -- : out std_logic_vector(11 downto 0)                     --           tx_ready.tx_ready
+    );    
+  END GENERATE;
+
+  
+  -- ATX PLL
+  u_ip_arria10_e2sg_transceiver_pll_10g : ip_arria10_e2sg_transceiver_pll_10g
+  PORT MAP (
+    pll_powerdown   => atx_pll_powerdown_arr(0),   -- only use reset controller 0 for ATX PLL power down, leave others not used
+    pll_refclk0     => tr_ref_clk_644,
+    pll_locked      => atx_pll_locked,
+    pll_cal_busy    => atx_pll_cal_busy,
+    mcgb_rst        => atx_pll_powerdown_arr(0),
+    mcgb_serial_clk => tx_serial_clk(0)
+  );
+    
+END str;
diff --git a/libraries/technology/10gbase_r/tech_10gbase_r_component_pkg.vhd b/libraries/technology/10gbase_r/tech_10gbase_r_component_pkg.vhd
index e53273e5bbccf47ee1c57bb545bd0580153d4a64..fa7196f732e812a6709294ca703fb0adf60f4008 100644
--- a/libraries/technology/10gbase_r/tech_10gbase_r_component_pkg.vhd
+++ b/libraries/technology/10gbase_r/tech_10gbase_r_component_pkg.vhd
@@ -1255,4 +1255,465 @@ PACKAGE tech_10gbase_r_component_pkg IS
   );
   END COMPONENT;
 
+  ------------------------------------------------------------------------------
+  -- ip_arria10_e2sg
+  ------------------------------------------------------------------------------
+  
+  COMPONENT ip_arria10_e2sg_phy_10gbase_r IS
+  PORT (
+        rx_analogreset          : in  std_logic_vector(0 downto 0)  := (others => '0'); --          rx_analogreset.rx_analogreset
+        rx_cal_busy             : out std_logic_vector(0 downto 0);                     --             rx_cal_busy.rx_cal_busy
+        rx_cdr_refclk0          : in  std_logic                     := '0';             --          rx_cdr_refclk0.clk
+        rx_clkout               : out std_logic_vector(0 downto 0);                     --               rx_clkout.clk
+        rx_control              : out std_logic_vector(7 downto 0);                     --              rx_control.rx_control
+        rx_coreclkin            : in  std_logic_vector(0 downto 0)  := (others => '0'); --            rx_coreclkin.clk
+        rx_digitalreset         : in  std_logic_vector(0 downto 0)  := (others => '0'); --         rx_digitalreset.rx_digitalreset
+        rx_enh_blk_lock         : out std_logic_vector(0 downto 0);                     --         rx_enh_blk_lock.rx_enh_blk_lock
+        rx_enh_data_valid       : out std_logic_vector(0 downto 0);                     --       rx_enh_data_valid.rx_enh_data_valid
+        rx_enh_fifo_del         : out std_logic_vector(0 downto 0);                     --         rx_enh_fifo_del.rx_enh_fifo_del
+        rx_enh_fifo_empty       : out std_logic_vector(0 downto 0);                     --       rx_enh_fifo_empty.rx_enh_fifo_empty
+        rx_enh_fifo_full        : out std_logic_vector(0 downto 0);                     --        rx_enh_fifo_full.rx_enh_fifo_full
+        rx_enh_fifo_insert      : out std_logic_vector(0 downto 0);                     --      rx_enh_fifo_insert.rx_enh_fifo_insert
+        rx_enh_highber          : out std_logic_vector(0 downto 0);                     --          rx_enh_highber.rx_enh_highber
+        rx_is_lockedtodata      : out std_logic_vector(0 downto 0);                     --      rx_is_lockedtodata.rx_is_lockedtodata
+        rx_is_lockedtoref       : out std_logic_vector(0 downto 0);                     --       rx_is_lockedtoref.rx_is_lockedtoref
+        rx_parallel_data        : out std_logic_vector(63 downto 0);                    --        rx_parallel_data.rx_parallel_data
+        rx_prbs_done            : out std_logic_vector(0 downto 0);                     --            rx_prbs_done.rx_prbs_done
+        rx_prbs_err             : out std_logic_vector(0 downto 0);                     --             rx_prbs_err.rx_prbs_err
+        rx_prbs_err_clr         : in  std_logic_vector(0 downto 0)  := (others => '0'); --         rx_prbs_err_clr.rx_prbs_err_clr
+        rx_serial_data          : in  std_logic_vector(0 downto 0)  := (others => '0'); --          rx_serial_data.rx_serial_data
+        rx_seriallpbken         : in  std_logic_vector(0 downto 0)  := (others => '0'); --         rx_seriallpbken.rx_seriallpbken
+        tx_analogreset          : in  std_logic_vector(0 downto 0)  := (others => '0'); --          tx_analogreset.tx_analogreset
+        tx_cal_busy             : out std_logic_vector(0 downto 0);                     --             tx_cal_busy.tx_cal_busy
+        tx_clkout               : out std_logic_vector(0 downto 0);                     --               tx_clkout.clk
+        tx_control              : in  std_logic_vector(7 downto 0)  := (others => '0'); --              tx_control.tx_control
+        tx_coreclkin            : in  std_logic_vector(0 downto 0)  := (others => '0'); --            tx_coreclkin.clk
+        tx_digitalreset         : in  std_logic_vector(0 downto 0)  := (others => '0'); --         tx_digitalreset.tx_digitalreset
+        tx_enh_data_valid       : in  std_logic_vector(0 downto 0)  := (others => '0'); --       tx_enh_data_valid.tx_enh_data_valid
+        tx_enh_fifo_empty       : out std_logic_vector(0 downto 0);                     --       tx_enh_fifo_empty.tx_enh_fifo_empty
+        tx_enh_fifo_full        : out std_logic_vector(0 downto 0);                     --        tx_enh_fifo_full.tx_enh_fifo_full
+        tx_enh_fifo_pempty      : out std_logic_vector(0 downto 0);                     --      tx_enh_fifo_pempty.tx_enh_fifo_pempty
+        tx_enh_fifo_pfull       : out std_logic_vector(0 downto 0);                     --       tx_enh_fifo_pfull.tx_enh_fifo_pfull
+        tx_err_ins              : in  std_logic                     := '0';             --              tx_err_ins.tx_err_ins
+        tx_parallel_data        : in  std_logic_vector(63 downto 0) := (others => '0'); --        tx_parallel_data.tx_parallel_data
+        tx_serial_clk0          : in  std_logic_vector(0 downto 0)  := (others => '0'); --          tx_serial_clk0.clk
+        tx_serial_data          : out std_logic_vector(0 downto 0);                     --          tx_serial_data.tx_serial_data
+        unused_rx_control       : out std_logic_vector(11 downto 0);                    --       unused_rx_control.unused_rx_control
+        unused_rx_parallel_data : out std_logic_vector(63 downto 0);                    -- unused_rx_parallel_data.unused_rx_parallel_data
+        unused_tx_control       : in  std_logic_vector(8 downto 0)  := (others => '0'); --       unused_tx_control.unused_tx_control
+        unused_tx_parallel_data : in  std_logic_vector(63 downto 0) := (others => '0')  -- unused_tx_parallel_data.unused_tx_parallel_data
+    );
+  END COMPONENT;
+
+  component ip_arria10_e2sg_phy_10gbase_r_3 is
+  port (
+    reconfig_write          : in  std_logic_vector(0 downto 0)   := (others => 'X'); -- write
+    reconfig_read           : in  std_logic_vector(0 downto 0)   := (others => 'X'); -- read
+    reconfig_address        : in  std_logic_vector(11 downto 0)  := (others => 'X'); -- address
+    reconfig_writedata      : in  std_logic_vector(31 downto 0)  := (others => 'X'); -- writedata
+    reconfig_readdata       : out std_logic_vector(31 downto 0);                     -- readdata
+    reconfig_waitrequest    : out std_logic_vector(0 downto 0);                      -- waitrequest
+    reconfig_clk            : in  std_logic_vector(0 downto 0)   := (others => 'X'); -- clk
+    reconfig_reset          : in  std_logic_vector(0 downto 0)   := (others => 'X'); -- reset
+    rx_analogreset          : in  std_logic_vector(2 downto 0)   := (others => 'X'); -- rx_analogreset
+    rx_cal_busy             : out std_logic_vector(2 downto 0);                      -- rx_cal_busy
+    rx_cdr_refclk0          : in  std_logic                      := 'X';             -- clk
+    rx_clkout               : out std_logic_vector(2 downto 0);                      -- clk
+    rx_control              : out std_logic_vector(23 downto 0);                     -- rx_control
+    rx_coreclkin            : in  std_logic_vector(2 downto 0)   := (others => 'X'); -- clk
+    rx_digitalreset         : in  std_logic_vector(2 downto 0)   := (others => 'X'); -- rx_digitalreset
+    rx_enh_blk_lock         : out std_logic_vector(2 downto 0);                      -- rx_enh_blk_lock
+    rx_enh_data_valid       : out std_logic_vector(2 downto 0);                      -- rx_enh_data_valid
+    rx_enh_fifo_del         : out std_logic_vector(2 downto 0);                      -- rx_enh_fifo_del
+    rx_enh_fifo_empty       : out std_logic_vector(2 downto 0);                      -- rx_enh_fifo_empty
+    rx_enh_fifo_full        : out std_logic_vector(2 downto 0);                      -- rx_enh_fifo_full
+    rx_enh_fifo_insert      : out std_logic_vector(2 downto 0);                      -- rx_enh_fifo_insert
+    rx_enh_highber          : out std_logic_vector(2 downto 0);                      -- rx_enh_highber
+    rx_is_lockedtodata      : out std_logic_vector(2 downto 0);                      -- rx_is_lockedtodata
+    rx_is_lockedtoref       : out std_logic_vector(2 downto 0);                      -- rx_is_lockedtoref
+    rx_parallel_data        : out std_logic_vector(191 downto 0);                    -- rx_parallel_data
+    rx_prbs_done            : out std_logic_vector(2 downto 0);                      -- rx_prbs_done
+    rx_prbs_err             : out std_logic_vector(2 downto 0);                      -- rx_prbs_err
+    rx_prbs_err_clr         : in  std_logic_vector(2 downto 0)   := (others => 'X'); -- rx_prbs_err_clr
+    rx_serial_data          : in  std_logic_vector(2 downto 0)   := (others => 'X'); -- rx_serial_data
+    rx_seriallpbken         : in  std_logic_vector(2 downto 0)   := (others => 'X'); -- rx_seriallpbken
+    tx_analogreset          : in  std_logic_vector(2 downto 0)   := (others => 'X'); -- tx_analogreset
+    tx_cal_busy             : out std_logic_vector(2 downto 0);                      -- tx_cal_busy
+    tx_clkout               : out std_logic_vector(2 downto 0);                      -- clk
+    tx_control              : in  std_logic_vector(23 downto 0)  := (others => 'X'); -- tx_control
+    tx_coreclkin            : in  std_logic_vector(2 downto 0)   := (others => 'X'); -- clk
+    tx_digitalreset         : in  std_logic_vector(2 downto 0)   := (others => 'X'); -- tx_digitalreset
+    tx_enh_data_valid       : in  std_logic_vector(2 downto 0)   := (others => 'X'); -- tx_enh_data_valid
+    tx_enh_fifo_empty       : out std_logic_vector(2 downto 0);                      -- tx_enh_fifo_empty
+    tx_enh_fifo_full        : out std_logic_vector(2 downto 0);                      -- tx_enh_fifo_full
+    tx_enh_fifo_pempty      : out std_logic_vector(2 downto 0);                      -- tx_enh_fifo_pempty
+    tx_enh_fifo_pfull       : out std_logic_vector(2 downto 0);                      -- tx_enh_fifo_pfull
+    tx_err_ins              : in  std_logic_vector(2 downto 0)   := (others => 'X'); -- tx_err_ins
+    tx_parallel_data        : in  std_logic_vector(191 downto 0) := (others => 'X'); -- tx_parallel_data
+    tx_serial_clk0          : in  std_logic_vector(2 downto 0)   := (others => 'X'); -- clk
+    tx_serial_data          : out std_logic_vector(2 downto 0);                      -- tx_serial_data
+    unused_rx_control       : out std_logic_vector(35 downto 0);                     -- unused_rx_control
+    unused_rx_parallel_data : out std_logic_vector(191 downto 0);                    -- unused_rx_parallel_data
+    unused_tx_control       : in  std_logic_vector(26 downto 0)  := (others => 'X'); -- unused_tx_control
+    unused_tx_parallel_data : in  std_logic_vector(191 downto 0) := (others => 'X')  -- unused_tx_parallel_data
+  );
+ end component;
+
+  
+  COMPONENT ip_arria10_e2sg_phy_10gbase_r_4
+  port (
+    reconfig_write          : in  std_logic_vector(0 downto 0)   := (others => '0'); --           reconfig_avmm.write
+    reconfig_read           : in  std_logic_vector(0 downto 0)   := (others => '0'); --                        .read
+    reconfig_address        : in  std_logic_vector(11 downto 0)  := (others => '0'); --                        .address
+    reconfig_writedata      : in  std_logic_vector(31 downto 0)  := (others => '0'); --                        .writedata
+    reconfig_readdata       : out std_logic_vector(31 downto 0);                     --                        .readdata
+    reconfig_waitrequest    : out std_logic_vector(0 downto 0);                      --                        .waitrequest
+    reconfig_clk            : in  std_logic_vector(0 downto 0)   := (others => '0'); --            reconfig_clk.clk
+    reconfig_reset          : in  std_logic_vector(0 downto 0)   := (others => '0'); --          reconfig_reset.reset
+    rx_analogreset          : in  std_logic_vector(3 downto 0)   := (others => '0'); --          rx_analogreset.rx_analogreset
+    rx_cal_busy             : out std_logic_vector(3 downto 0);                      --             rx_cal_busy.rx_cal_busy
+    rx_cdr_refclk0          : in  std_logic                      := '0';             --          rx_cdr_refclk0.clk
+    rx_clkout               : out std_logic_vector(3 downto 0);                      --               rx_clkout.clk
+    rx_control              : out std_logic_vector(31 downto 0);                     --              rx_control.rx_control
+    rx_coreclkin            : in  std_logic_vector(3 downto 0)   := (others => '0'); --            rx_coreclkin.clk
+    rx_digitalreset         : in  std_logic_vector(3 downto 0)   := (others => '0'); --         rx_digitalreset.rx_digitalreset
+    rx_enh_blk_lock         : out std_logic_vector(3 downto 0);                      --         rx_enh_blk_lock.rx_enh_blk_lock
+    rx_enh_data_valid       : out std_logic_vector(3 downto 0);                      --       rx_enh_data_valid.rx_enh_data_valid
+    rx_enh_fifo_del         : out std_logic_vector(3 downto 0);                      --         rx_enh_fifo_del.rx_enh_fifo_del
+    rx_enh_fifo_empty       : out std_logic_vector(3 downto 0);                      --       rx_enh_fifo_empty.rx_enh_fifo_empty
+    rx_enh_fifo_full        : out std_logic_vector(3 downto 0);                      --        rx_enh_fifo_full.rx_enh_fifo_full
+    rx_enh_fifo_insert      : out std_logic_vector(3 downto 0);                      --      rx_enh_fifo_insert.rx_enh_fifo_insert
+    rx_enh_highber          : out std_logic_vector(3 downto 0);                      --          rx_enh_highber.rx_enh_highber
+    rx_is_lockedtodata      : out std_logic_vector(3 downto 0);                      --      rx_is_lockedtodata.rx_is_lockedtodata
+    rx_is_lockedtoref       : out std_logic_vector(3 downto 0);                      --       rx_is_lockedtoref.rx_is_lockedtoref
+    rx_parallel_data        : out std_logic_vector(255 downto 0);                    --        rx_parallel_data.rx_parallel_data
+    rx_prbs_done            : out std_logic_vector(3 downto 0);                      --            rx_prbs_done.rx_prbs_done
+    rx_prbs_err             : out std_logic_vector(3 downto 0);                      --             rx_prbs_err.rx_prbs_err
+    rx_prbs_err_clr         : in  std_logic_vector(3 downto 0)   := (others => '0'); --         rx_prbs_err_clr.rx_prbs_err_clr
+    rx_serial_data          : in  std_logic_vector(3 downto 0)   := (others => '0'); --          rx_serial_data.rx_serial_data
+    rx_seriallpbken         : in  std_logic_vector(3 downto 0)   := (others => '0'); --         rx_seriallpbken.rx_seriallpbken
+    tx_analogreset          : in  std_logic_vector(3 downto 0)   := (others => '0'); --          tx_analogreset.tx_analogreset
+    tx_cal_busy             : out std_logic_vector(3 downto 0);                      --             tx_cal_busy.tx_cal_busy
+    tx_clkout               : out std_logic_vector(3 downto 0);                      --               tx_clkout.clk
+    tx_control              : in  std_logic_vector(31 downto 0)  := (others => '0'); --              tx_control.tx_control
+    tx_coreclkin            : in  std_logic_vector(3 downto 0)   := (others => '0'); --            tx_coreclkin.clk
+    tx_digitalreset         : in  std_logic_vector(3 downto 0)   := (others => '0'); --         tx_digitalreset.tx_digitalreset
+    tx_enh_data_valid       : in  std_logic_vector(3 downto 0)   := (others => '0'); --       tx_enh_data_valid.tx_enh_data_valid
+    tx_enh_fifo_empty       : out std_logic_vector(3 downto 0);                      --       tx_enh_fifo_empty.tx_enh_fifo_empty
+    tx_enh_fifo_full        : out std_logic_vector(3 downto 0);                      --        tx_enh_fifo_full.tx_enh_fifo_full
+    tx_enh_fifo_pempty      : out std_logic_vector(3 downto 0);                      --      tx_enh_fifo_pempty.tx_enh_fifo_pempty
+    tx_enh_fifo_pfull       : out std_logic_vector(3 downto 0);                      --       tx_enh_fifo_pfull.tx_enh_fifo_pfull
+    tx_err_ins              : in  std_logic_vector(3 downto 0)   := (others => '0'); --              tx_err_ins.tx_err_ins
+    tx_parallel_data        : in  std_logic_vector(255 downto 0) := (others => '0'); --        tx_parallel_data.tx_parallel_data
+    tx_serial_clk0          : in  std_logic_vector(3 downto 0)   := (others => '0'); --          tx_serial_clk0.clk
+    tx_serial_data          : out std_logic_vector(3 downto 0);                      --          tx_serial_data.tx_serial_data
+    unused_rx_control       : out std_logic_vector(47 downto 0);                     --       unused_rx_control.unused_rx_control
+    unused_rx_parallel_data : out std_logic_vector(255 downto 0);                    -- unused_rx_parallel_data.unused_rx_parallel_data
+    unused_tx_control       : in  std_logic_vector(35 downto 0)  := (others => '0'); --       unused_tx_control.unused_tx_control
+    unused_tx_parallel_data : in  std_logic_vector(255 downto 0) := (others => '0')  -- unused_tx_parallel_data.unused_tx_parallel_data
+  );
+  END COMPONENT;
+
+  COMPONENT ip_arria10_e2sg_phy_10gbase_r_12
+  PORT (
+    reconfig_write          : in  std_logic_vector(0 downto 0)   := (others => '0'); --           reconfig_avmm.write
+    reconfig_read           : in  std_logic_vector(0 downto 0)   := (others => '0'); --                        .read
+    reconfig_address        : in  std_logic_vector(13 downto 0)  := (others => '0'); --                        .address
+    reconfig_writedata      : in  std_logic_vector(31 downto 0)  := (others => '0'); --                        .writedata
+    reconfig_readdata       : out std_logic_vector(31 downto 0);                     --                        .readdata
+    reconfig_waitrequest    : out std_logic_vector(0 downto 0);                      --                        .waitrequest
+    reconfig_clk            : in  std_logic_vector(0 downto 0)   := (others => '0'); --            reconfig_clk.clk
+    reconfig_reset          : in  std_logic_vector(0 downto 0)   := (others => '0'); --          reconfig_reset.reset
+    rx_analogreset          : in  std_logic_vector(11 downto 0)  := (others => '0'); --          rx_analogreset.rx_analogreset
+    rx_cal_busy             : out std_logic_vector(11 downto 0);                     --             rx_cal_busy.rx_cal_busy
+    rx_cdr_refclk0          : in  std_logic                      := '0';             --          rx_cdr_refclk0.clk
+    rx_clkout               : out std_logic_vector(11 downto 0);                     --               rx_clkout.clk
+    rx_control              : out std_logic_vector(95 downto 0);                     --              rx_control.rx_control
+    rx_coreclkin            : in  std_logic_vector(11 downto 0)  := (others => '0'); --            rx_coreclkin.clk
+    rx_digitalreset         : in  std_logic_vector(11 downto 0)  := (others => '0'); --         rx_digitalreset.rx_digitalreset
+    rx_enh_blk_lock         : out std_logic_vector(11 downto 0);                     --         rx_enh_blk_lock.rx_enh_blk_lock
+    rx_enh_data_valid       : out std_logic_vector(11 downto 0);                     --       rx_enh_data_valid.rx_enh_data_valid
+    rx_enh_fifo_del         : out std_logic_vector(11 downto 0);                     --         rx_enh_fifo_del.rx_enh_fifo_del
+    rx_enh_fifo_empty       : out std_logic_vector(11 downto 0);                     --       rx_enh_fifo_empty.rx_enh_fifo_empty
+    rx_enh_fifo_full        : out std_logic_vector(11 downto 0);                     --        rx_enh_fifo_full.rx_enh_fifo_full
+    rx_enh_fifo_insert      : out std_logic_vector(11 downto 0);                     --      rx_enh_fifo_insert.rx_enh_fifo_insert
+    rx_enh_highber          : out std_logic_vector(11 downto 0);                     --          rx_enh_highber.rx_enh_highber
+    rx_is_lockedtodata      : out std_logic_vector(11 downto 0);                     --      rx_is_lockedtodata.rx_is_lockedtodata
+    rx_is_lockedtoref       : out std_logic_vector(11 downto 0);                     --       rx_is_lockedtoref.rx_is_lockedtoref
+    rx_parallel_data        : out std_logic_vector(767 downto 0);                    --        rx_parallel_data.rx_parallel_data
+    rx_prbs_done            : out std_logic_vector(11 downto 0);                     --            rx_prbs_done.rx_prbs_done
+    rx_prbs_err             : out std_logic_vector(11 downto 0);                     --             rx_prbs_err.rx_prbs_err
+    rx_prbs_err_clr         : in  std_logic_vector(11 downto 0)  := (others => '0'); --         rx_prbs_err_clr.rx_prbs_err_clr
+    rx_serial_data          : in  std_logic_vector(11 downto 0)  := (others => '0'); --          rx_serial_data.rx_serial_data
+    rx_seriallpbken         : in  std_logic_vector(11 downto 0)  := (others => '0'); --         rx_seriallpbken.rx_seriallpbken
+    tx_analogreset          : in  std_logic_vector(11 downto 0)  := (others => '0'); --          tx_analogreset.tx_analogreset
+    tx_cal_busy             : out std_logic_vector(11 downto 0);                     --             tx_cal_busy.tx_cal_busy
+    tx_clkout               : out std_logic_vector(11 downto 0);                     --               tx_clkout.clk
+    tx_control              : in  std_logic_vector(95 downto 0)  := (others => '0'); --              tx_control.tx_control
+    tx_coreclkin            : in  std_logic_vector(11 downto 0)  := (others => '0'); --            tx_coreclkin.clk
+    tx_digitalreset         : in  std_logic_vector(11 downto 0)  := (others => '0'); --         tx_digitalreset.tx_digitalreset
+    tx_enh_data_valid       : in  std_logic_vector(11 downto 0)  := (others => '0'); --       tx_enh_data_valid.tx_enh_data_valid
+    tx_enh_fifo_empty       : out std_logic_vector(11 downto 0);                     --       tx_enh_fifo_empty.tx_enh_fifo_empty
+    tx_enh_fifo_full        : out std_logic_vector(11 downto 0);                     --        tx_enh_fifo_full.tx_enh_fifo_full
+    tx_enh_fifo_pempty      : out std_logic_vector(11 downto 0);                     --      tx_enh_fifo_pempty.tx_enh_fifo_pempty
+    tx_enh_fifo_pfull       : out std_logic_vector(11 downto 0);                     --       tx_enh_fifo_pfull.tx_enh_fifo_pfull
+    tx_err_ins              : in  std_logic_vector(11 downto 0)  := (others => '0'); --              tx_err_ins.tx_err_ins
+    tx_parallel_data        : in  std_logic_vector(767 downto 0) := (others => '0'); --        tx_parallel_data.tx_parallel_data
+    tx_serial_clk0          : in  std_logic_vector(11 downto 0)  := (others => '0'); --          tx_serial_clk0.clk
+    tx_serial_data          : out std_logic_vector(11 downto 0);                     --          tx_serial_data.tx_serial_data
+    unused_rx_control       : out std_logic_vector(143 downto 0);                    --       unused_rx_control.unused_rx_control
+    unused_rx_parallel_data : out std_logic_vector(767 downto 0);                    -- unused_rx_parallel_data.unused_rx_parallel_data
+    unused_tx_control       : in  std_logic_vector(107 downto 0) := (others => '0'); --       unused_tx_control.unused_tx_control
+    unused_tx_parallel_data : in  std_logic_vector(767 downto 0) := (others => '0')  -- unused_tx_parallel_data.unused_tx_parallel_data
+  );  
+  END COMPONENT;
+
+  COMPONENT ip_arria10_e2sg_phy_10gbase_r_24
+  PORT (
+    reconfig_write          : in  std_logic_vector(0 downto 0)    := (others => '0'); --           reconfig_avmm.write
+    reconfig_read           : in  std_logic_vector(0 downto 0)    := (others => '0'); --                        .read
+    reconfig_address        : in  std_logic_vector(14 downto 0)   := (others => '0'); --                        .address
+    reconfig_writedata      : in  std_logic_vector(31 downto 0)   := (others => '0'); --                        .writedata
+    reconfig_readdata       : out std_logic_vector(31 downto 0);                      --                        .readdata
+    reconfig_waitrequest    : out std_logic_vector(0 downto 0);                       --                        .waitrequest
+    reconfig_clk            : in  std_logic_vector(0 downto 0)    := (others => '0'); --            reconfig_clk.clk
+    reconfig_reset          : in  std_logic_vector(0 downto 0)    := (others => '0'); --          reconfig_reset.reset
+    rx_analogreset          : in  std_logic_vector(23 downto 0)   := (others => '0'); --          rx_analogreset.rx_analogreset
+    rx_cal_busy             : out std_logic_vector(23 downto 0);                      --             rx_cal_busy.rx_cal_busy
+    rx_cdr_refclk0          : in  std_logic                       := '0';             --          rx_cdr_refclk0.clk
+    rx_clkout               : out std_logic_vector(23 downto 0);                      --               rx_clkout.clk
+    rx_control              : out std_logic_vector(191 downto 0);                     --              rx_control.rx_control
+    rx_coreclkin            : in  std_logic_vector(23 downto 0)   := (others => '0'); --            rx_coreclkin.clk
+    rx_digitalreset         : in  std_logic_vector(23 downto 0)   := (others => '0'); --         rx_digitalreset.rx_digitalreset
+    rx_enh_blk_lock         : out std_logic_vector(23 downto 0);                      --         rx_enh_blk_lock.rx_enh_blk_lock
+    rx_enh_data_valid       : out std_logic_vector(23 downto 0);                      --       rx_enh_data_valid.rx_enh_data_valid
+    rx_enh_fifo_del         : out std_logic_vector(23 downto 0);                      --         rx_enh_fifo_del.rx_enh_fifo_del
+    rx_enh_fifo_empty       : out std_logic_vector(23 downto 0);                      --       rx_enh_fifo_empty.rx_enh_fifo_empty
+    rx_enh_fifo_full        : out std_logic_vector(23 downto 0);                      --        rx_enh_fifo_full.rx_enh_fifo_full
+    rx_enh_fifo_insert      : out std_logic_vector(23 downto 0);                      --      rx_enh_fifo_insert.rx_enh_fifo_insert
+    rx_enh_highber          : out std_logic_vector(23 downto 0);                      --          rx_enh_highber.rx_enh_highber
+    rx_is_lockedtodata      : out std_logic_vector(23 downto 0);                      --      rx_is_lockedtodata.rx_is_lockedtodata
+    rx_is_lockedtoref       : out std_logic_vector(23 downto 0);                      --       rx_is_lockedtoref.rx_is_lockedtoref
+    rx_parallel_data        : out std_logic_vector(1535 downto 0);                    --        rx_parallel_data.rx_parallel_data
+    rx_prbs_done            : out std_logic_vector(23 downto 0);                      --            rx_prbs_done.rx_prbs_done
+    rx_prbs_err             : out std_logic_vector(23 downto 0);                      --             rx_prbs_err.rx_prbs_err
+    rx_prbs_err_clr         : in  std_logic_vector(23 downto 0)   := (others => '0'); --         rx_prbs_err_clr.rx_prbs_err_clr
+    rx_serial_data          : in  std_logic_vector(23 downto 0)   := (others => '0'); --          rx_serial_data.rx_serial_data
+    rx_seriallpbken         : in  std_logic_vector(23 downto 0)   := (others => '0'); --         rx_seriallpbken.rx_seriallpbken
+    tx_analogreset          : in  std_logic_vector(23 downto 0)   := (others => '0'); --          tx_analogreset.tx_analogreset
+    tx_cal_busy             : out std_logic_vector(23 downto 0);                      --             tx_cal_busy.tx_cal_busy
+    tx_clkout               : out std_logic_vector(23 downto 0);                      --               tx_clkout.clk
+    tx_control              : in  std_logic_vector(191 downto 0)  := (others => '0'); --              tx_control.tx_control
+    tx_coreclkin            : in  std_logic_vector(23 downto 0)   := (others => '0'); --            tx_coreclkin.clk
+    tx_digitalreset         : in  std_logic_vector(23 downto 0)   := (others => '0'); --         tx_digitalreset.tx_digitalreset
+    tx_enh_data_valid       : in  std_logic_vector(23 downto 0)   := (others => '0'); --       tx_enh_data_valid.tx_enh_data_valid
+    tx_enh_fifo_empty       : out std_logic_vector(23 downto 0);                      --       tx_enh_fifo_empty.tx_enh_fifo_empty
+    tx_enh_fifo_full        : out std_logic_vector(23 downto 0);                      --        tx_enh_fifo_full.tx_enh_fifo_full
+    tx_enh_fifo_pempty      : out std_logic_vector(23 downto 0);                      --      tx_enh_fifo_pempty.tx_enh_fifo_pempty
+    tx_enh_fifo_pfull       : out std_logic_vector(23 downto 0);                      --       tx_enh_fifo_pfull.tx_enh_fifo_pfull
+    tx_err_ins              : in  std_logic_vector(23 downto 0)   := (others => '0'); --              tx_err_ins.tx_err_ins
+    tx_parallel_data        : in  std_logic_vector(1535 downto 0) := (others => '0'); --        tx_parallel_data.tx_parallel_data
+    tx_serial_clk0          : in  std_logic_vector(23 downto 0)   := (others => '0'); --          tx_serial_clk0.clk
+    tx_serial_data          : out std_logic_vector(23 downto 0);                      --          tx_serial_data.tx_serial_data
+    unused_rx_control       : out std_logic_vector(287 downto 0);                     --       unused_rx_control.unused_rx_control
+    unused_rx_parallel_data : out std_logic_vector(1535 downto 0);                    -- unused_rx_parallel_data.unused_rx_parallel_data
+    unused_tx_control       : in  std_logic_vector(215 downto 0)  := (others => '0'); --       unused_tx_control.unused_tx_control
+    unused_tx_parallel_data : in  std_logic_vector(1535 downto 0) := (others => '0')  -- unused_tx_parallel_data.unused_tx_parallel_data
+  );  
+  END COMPONENT;
+
+  COMPONENT ip_arria10_e2sg_phy_10gbase_r_48
+  PORT (
+    reconfig_write          : in  std_logic_vector(0 downto 0)    := (others => '0'); --           reconfig_avmm.write
+    reconfig_read           : in  std_logic_vector(0 downto 0)    := (others => '0'); --                        .read
+    reconfig_address        : in  std_logic_vector(15 downto 0)   := (others => '0'); --                        .address
+    reconfig_writedata      : in  std_logic_vector(31 downto 0)   := (others => '0'); --                        .writedata
+    reconfig_readdata       : out std_logic_vector(31 downto 0);                      --                        .readdata
+    reconfig_waitrequest    : out std_logic_vector(0 downto 0);                       --                        .waitrequest
+    reconfig_clk            : in  std_logic_vector(0 downto 0)    := (others => '0'); --            reconfig_clk.clk
+    reconfig_reset          : in  std_logic_vector(0 downto 0)    := (others => '0'); --          reconfig_reset.reset
+    rx_analogreset          : in  std_logic_vector(47 downto 0)   := (others => '0'); --          rx_analogreset.rx_analogreset
+    rx_cal_busy             : out std_logic_vector(47 downto 0);                      --             rx_cal_busy.rx_cal_busy
+    rx_cdr_refclk0          : in  std_logic                       := '0';             --          rx_cdr_refclk0.clk
+    rx_clkout               : out std_logic_vector(47 downto 0);                      --               rx_clkout.clk
+    rx_control              : out std_logic_vector(383 downto 0);                     --              rx_control.rx_control
+    rx_coreclkin            : in  std_logic_vector(47 downto 0)   := (others => '0'); --            rx_coreclkin.clk
+    rx_digitalreset         : in  std_logic_vector(47 downto 0)   := (others => '0'); --         rx_digitalreset.rx_digitalreset
+    rx_enh_blk_lock         : out std_logic_vector(47 downto 0);                      --         rx_enh_blk_lock.rx_enh_blk_lock
+    rx_enh_data_valid       : out std_logic_vector(47 downto 0);                      --       rx_enh_data_valid.rx_enh_data_valid
+    rx_enh_fifo_del         : out std_logic_vector(47 downto 0);                      --         rx_enh_fifo_del.rx_enh_fifo_del
+    rx_enh_fifo_empty       : out std_logic_vector(47 downto 0);                      --       rx_enh_fifo_empty.rx_enh_fifo_empty
+    rx_enh_fifo_full        : out std_logic_vector(47 downto 0);                      --        rx_enh_fifo_full.rx_enh_fifo_full
+    rx_enh_fifo_insert      : out std_logic_vector(47 downto 0);                      --      rx_enh_fifo_insert.rx_enh_fifo_insert
+    rx_enh_highber          : out std_logic_vector(47 downto 0);                      --          rx_enh_highber.rx_enh_highber
+    rx_is_lockedtodata      : out std_logic_vector(47 downto 0);                      --      rx_is_lockedtodata.rx_is_lockedtodata
+    rx_is_lockedtoref       : out std_logic_vector(47 downto 0);                      --       rx_is_lockedtoref.rx_is_lockedtoref
+    rx_parallel_data        : out std_logic_vector(3071 downto 0);                    --        rx_parallel_data.rx_parallel_data
+    rx_prbs_done            : out std_logic_vector(47 downto 0);                      --            rx_prbs_done.rx_prbs_done
+    rx_prbs_err             : out std_logic_vector(47 downto 0);                      --             rx_prbs_err.rx_prbs_err
+    rx_prbs_err_clr         : in  std_logic_vector(47 downto 0)   := (others => '0'); --         rx_prbs_err_clr.rx_prbs_err_clr
+    rx_serial_data          : in  std_logic_vector(47 downto 0)   := (others => '0'); --          rx_serial_data.rx_serial_data
+    rx_seriallpbken         : in  std_logic_vector(47 downto 0)   := (others => '0'); --         rx_seriallpbken.rx_seriallpbken
+    tx_analogreset          : in  std_logic_vector(47 downto 0)   := (others => '0'); --          tx_analogreset.tx_analogreset
+    tx_cal_busy             : out std_logic_vector(47 downto 0);                      --             tx_cal_busy.tx_cal_busy
+    tx_clkout               : out std_logic_vector(47 downto 0);                      --               tx_clkout.clk
+    tx_control              : in  std_logic_vector(383 downto 0)  := (others => '0'); --              tx_control.tx_control
+    tx_coreclkin            : in  std_logic_vector(47 downto 0)   := (others => '0'); --            tx_coreclkin.clk
+    tx_digitalreset         : in  std_logic_vector(47 downto 0)   := (others => '0'); --         tx_digitalreset.tx_digitalreset
+    tx_enh_data_valid       : in  std_logic_vector(47 downto 0)   := (others => '0'); --       tx_enh_data_valid.tx_enh_data_valid
+    tx_enh_fifo_empty       : out std_logic_vector(47 downto 0);                      --       tx_enh_fifo_empty.tx_enh_fifo_empty
+    tx_enh_fifo_full        : out std_logic_vector(47 downto 0);                      --        tx_enh_fifo_full.tx_enh_fifo_full
+    tx_enh_fifo_pempty      : out std_logic_vector(47 downto 0);                      --      tx_enh_fifo_pempty.tx_enh_fifo_pempty
+    tx_enh_fifo_pfull       : out std_logic_vector(47 downto 0);                      --       tx_enh_fifo_pfull.tx_enh_fifo_pfull
+    tx_err_ins              : in  std_logic_vector(47 downto 0)   := (others => '0'); --              tx_err_ins.tx_err_ins
+    tx_parallel_data        : in  std_logic_vector(3071 downto 0) := (others => '0'); --        tx_parallel_data.tx_parallel_data
+    tx_serial_clk0          : in  std_logic_vector(47 downto 0)   := (others => '0'); --          tx_serial_clk0.clk
+    tx_serial_data          : out std_logic_vector(47 downto 0);                      --          tx_serial_data.tx_serial_data
+    unused_rx_control       : out std_logic_vector(575 downto 0);                     --       unused_rx_control.unused_rx_control
+    unused_rx_parallel_data : out std_logic_vector(3071 downto 0);                    -- unused_rx_parallel_data.unused_rx_parallel_data
+    unused_tx_control       : in  std_logic_vector(431 downto 0)  := (others => '0'); --       unused_tx_control.unused_tx_control
+    unused_tx_parallel_data : in  std_logic_vector(3071 downto 0) := (others => '0')  -- unused_tx_parallel_data.unused_tx_parallel_data
+  );  
+  END COMPONENT;
+
+  COMPONENT ip_arria10_e2sg_transceiver_pll_10g IS
+  PORT (
+    mcgb_rst              : in  std_logic                     := '0';             --        mcgb_rst.mcgb_rst
+    mcgb_serial_clk       : out std_logic;                                        -- mcgb_serial_clk.clk
+    pll_cal_busy          : out std_logic;                                        --    pll_cal_busy.pll_cal_busy
+    pll_locked            : out std_logic;                                        --      pll_locked.pll_locked
+    pll_powerdown         : in  std_logic                     := '0';             --   pll_powerdown.pll_powerdown
+    pll_refclk0           : in  std_logic                     := '0';             --     pll_refclk0.clk
+    reconfig_write0       : in  std_logic                     := '0';             --  reconfig_avmm0.write
+    reconfig_read0        : in  std_logic                     := '0';             --                .read
+    reconfig_address0     : in  std_logic_vector(9 downto 0)  := (others => '0'); --                .address
+    reconfig_writedata0   : in  std_logic_vector(31 downto 0) := (others => '0'); --                .writedata
+    reconfig_readdata0    : out std_logic_vector(31 downto 0);                    --                .readdata
+    reconfig_waitrequest0 : out std_logic;                                        --                .waitrequest
+    reconfig_clk0         : in  std_logic                     := '0';             --   reconfig_clk0.clk
+    reconfig_reset0       : in  std_logic                     := '0';             -- reconfig_reset0.reset
+    tx_serial_clk         : out std_logic                                         --   tx_serial_clk.clk
+--    pll_powerdown   : in  std_logic := '0'; -- pll_powerdown.pll_powerdown
+--    pll_refclk0     : in  std_logic := '0'; --   pll_refclk0.clk
+--    pll_locked      : out std_logic;        --    pll_locked.pll_locked
+--    pll_cal_busy    : out std_logic;        --  pll_cal_busy.pll_cal_busy
+--    mcgb_rst        : in  std_logic := '0';
+--    mcgb_serial_clk : out std_logic         -- tx_serial_clk.clk
+  );
+  END COMPONENT;
+
+  COMPONENT ip_arria10_e2sg_transceiver_reset_controller_1 IS
+  PORT (
+    clock              : in  std_logic                    := '0';             --              clock.clk
+    reset              : in  std_logic                    := '0';             --              reset.reset
+    pll_powerdown      : out std_logic_vector(0 downto 0);                    --      pll_powerdown.pll_powerdown
+    tx_analogreset     : out std_logic_vector(0 downto 0);                    --     tx_analogreset.tx_analogreset
+    tx_digitalreset    : out std_logic_vector(0 downto 0);                    --    tx_digitalreset.tx_digitalreset
+    tx_ready           : out std_logic_vector(0 downto 0);                    --           tx_ready.tx_ready
+    pll_locked         : in  std_logic_vector(0 downto 0) := (others => '0'); --         pll_locked.pll_locked
+    pll_select         : in  std_logic_vector(0 downto 0) := (others => '0'); --         pll_select.pll_select
+    tx_cal_busy        : in  std_logic_vector(0 downto 0) := (others => '0'); --        tx_cal_busy.tx_cal_busy
+    rx_analogreset     : out std_logic_vector(0 downto 0);                    --     rx_analogreset.rx_analogreset
+    rx_digitalreset    : out std_logic_vector(0 downto 0);                    --    rx_digitalreset.rx_digitalreset
+    rx_ready           : out std_logic_vector(0 downto 0);                    --           rx_ready.rx_ready
+    rx_is_lockedtodata : in  std_logic_vector(0 downto 0) := (others => '0'); -- rx_is_lockedtodata.rx_is_lockedtodata
+    rx_cal_busy        : in  std_logic_vector(0 downto 0) := (others => '0')  --        rx_cal_busy.rx_cal_busy
+  );
+  END COMPONENT;
+
+  component ip_arria10_e2sg_transceiver_reset_controller_3 is
+    port (
+      clock              : in  std_logic                    := 'X';             -- clk
+      pll_locked         : in  std_logic_vector(0 downto 0) := (others => 'X'); -- pll_locked
+      pll_powerdown      : out std_logic_vector(0 downto 0);                    -- pll_powerdown
+      pll_select         : in  std_logic_vector(0 downto 0) := (others => 'X'); -- pll_select
+      reset              : in  std_logic                    := 'X';             -- reset
+      rx_analogreset     : out std_logic_vector(2 downto 0);                    -- rx_analogreset
+      rx_cal_busy        : in  std_logic_vector(2 downto 0) := (others => 'X'); -- rx_cal_busy
+      rx_digitalreset    : out std_logic_vector(2 downto 0);                    -- rx_digitalreset
+      rx_is_lockedtodata : in  std_logic_vector(2 downto 0) := (others => 'X'); -- rx_is_lockedtodata
+      rx_ready           : out std_logic_vector(2 downto 0);                    -- rx_ready
+      tx_analogreset     : out std_logic_vector(2 downto 0);                    -- tx_analogreset
+      tx_cal_busy        : in  std_logic_vector(2 downto 0) := (others => 'X'); -- tx_cal_busy
+      tx_digitalreset    : out std_logic_vector(2 downto 0);                    -- tx_digitalreset
+      tx_ready           : out std_logic_vector(2 downto 0)                     -- tx_ready
+    );
+  end component;
+
+  COMPONENT ip_arria10_e2sg_transceiver_reset_controller_4
+  port (
+    clock              : in  std_logic                    := '0';             --              clock.clk
+    pll_locked         : in  std_logic_vector(0 downto 0) := (others => '0'); --         pll_locked.pll_locked
+    pll_powerdown      : out std_logic_vector(0 downto 0);                    --      pll_powerdown.pll_powerdown
+    pll_select         : in  std_logic_vector(0 downto 0) := (others => '0'); --         pll_select.pll_select
+    reset              : in  std_logic                    := '0';             --              reset.reset
+    rx_analogreset     : out std_logic_vector(3 downto 0);                    --     rx_analogreset.rx_analogreset
+    rx_cal_busy        : in  std_logic_vector(3 downto 0) := (others => '0'); --        rx_cal_busy.rx_cal_busy
+    rx_digitalreset    : out std_logic_vector(3 downto 0);                    --    rx_digitalreset.rx_digitalreset
+    rx_is_lockedtodata : in  std_logic_vector(3 downto 0) := (others => '0'); -- rx_is_lockedtodata.rx_is_lockedtodata
+    rx_ready           : out std_logic_vector(3 downto 0);                    --           rx_ready.rx_ready
+    tx_analogreset     : out std_logic_vector(3 downto 0);                    --     tx_analogreset.tx_analogreset
+    tx_cal_busy        : in  std_logic_vector(3 downto 0) := (others => '0'); --        tx_cal_busy.tx_cal_busy
+    tx_digitalreset    : out std_logic_vector(3 downto 0);                    --    tx_digitalreset.tx_digitalreset
+    tx_ready           : out std_logic_vector(3 downto 0)                     --           tx_ready.tx_ready
+  );
+  END COMPONENT;
+
+  COMPONENT ip_arria10_e2sg_transceiver_reset_controller_12
+  PORT (
+    clock              : in  std_logic                     := '0';             --              clock.clk
+    pll_locked         : in  std_logic_vector(0 downto 0)  := (others => '0'); --         pll_locked.pll_locked
+    pll_powerdown      : out std_logic_vector(0 downto 0);                     --      pll_powerdown.pll_powerdown
+    pll_select         : in  std_logic_vector(0 downto 0)  := (others => '0'); --         pll_select.pll_select
+    reset              : in  std_logic                     := '0';             --              reset.reset
+    rx_analogreset     : out std_logic_vector(11 downto 0);                    --     rx_analogreset.rx_analogreset
+    rx_cal_busy        : in  std_logic_vector(11 downto 0) := (others => '0'); --        rx_cal_busy.rx_cal_busy
+    rx_digitalreset    : out std_logic_vector(11 downto 0);                    --    rx_digitalreset.rx_digitalreset
+    rx_is_lockedtodata : in  std_logic_vector(11 downto 0) := (others => '0'); -- rx_is_lockedtodata.rx_is_lockedtodata
+    rx_ready           : out std_logic_vector(11 downto 0);                    --           rx_ready.rx_ready
+    tx_analogreset     : out std_logic_vector(11 downto 0);                    --     tx_analogreset.tx_analogreset
+    tx_cal_busy        : in  std_logic_vector(11 downto 0) := (others => '0'); --        tx_cal_busy.tx_cal_busy
+    tx_digitalreset    : out std_logic_vector(11 downto 0);                    --    tx_digitalreset.tx_digitalreset
+    tx_ready           : out std_logic_vector(11 downto 0)                     --           tx_ready.tx_ready
+  );
+  END COMPONENT;
+
+  COMPONENT ip_arria10_e2sg_transceiver_reset_controller_24
+  PORT (
+    clock              : in  std_logic                     := '0';             --              clock.clk
+    pll_locked         : in  std_logic_vector(0 downto 0)  := (others => '0'); --         pll_locked.pll_locked
+    pll_powerdown      : out std_logic_vector(0 downto 0);                     --      pll_powerdown.pll_powerdown
+    pll_select         : in  std_logic_vector(0 downto 0)  := (others => '0'); --         pll_select.pll_select
+    reset              : in  std_logic                     := '0';             --              reset.reset
+    rx_analogreset     : out std_logic_vector(23 downto 0);                    --     rx_analogreset.rx_analogreset
+    rx_cal_busy        : in  std_logic_vector(23 downto 0) := (others => '0'); --        rx_cal_busy.rx_cal_busy
+    rx_digitalreset    : out std_logic_vector(23 downto 0);                    --    rx_digitalreset.rx_digitalreset
+    rx_is_lockedtodata : in  std_logic_vector(23 downto 0) := (others => '0'); -- rx_is_lockedtodata.rx_is_lockedtodata
+    rx_ready           : out std_logic_vector(23 downto 0);                    --           rx_ready.rx_ready
+    tx_analogreset     : out std_logic_vector(23 downto 0);                    --     tx_analogreset.tx_analogreset
+    tx_cal_busy        : in  std_logic_vector(23 downto 0) := (others => '0'); --        tx_cal_busy.tx_cal_busy
+    tx_digitalreset    : out std_logic_vector(23 downto 0);                    --    tx_digitalreset.tx_digitalreset
+    tx_ready           : out std_logic_vector(23 downto 0)                     --           tx_ready.tx_ready
+  );
+  END COMPONENT;
+
+  COMPONENT ip_arria10_e2sg_transceiver_reset_controller_48
+  PORT (
+    clock              : in  std_logic                     := '0';             --              clock.clk
+    pll_locked         : in  std_logic_vector(0 downto 0)  := (others => '0'); --         pll_locked.pll_locked
+    pll_powerdown      : out std_logic_vector(0 downto 0);                     --      pll_powerdown.pll_powerdown
+    pll_select         : in  std_logic_vector(0 downto 0)  := (others => '0'); --         pll_select.pll_select
+    reset              : in  std_logic                     := '0';             --              reset.reset
+    rx_analogreset     : out std_logic_vector(47 downto 0);                    --     rx_analogreset.rx_analogreset
+    rx_cal_busy        : in  std_logic_vector(47 downto 0) := (others => '0'); --        rx_cal_busy.rx_cal_busy
+    rx_digitalreset    : out std_logic_vector(47 downto 0);                    --    rx_digitalreset.rx_digitalreset
+    rx_is_lockedtodata : in  std_logic_vector(47 downto 0) := (others => '0'); -- rx_is_lockedtodata.rx_is_lockedtodata
+    rx_ready           : out std_logic_vector(47 downto 0);                    --           rx_ready.rx_ready
+    tx_analogreset     : out std_logic_vector(47 downto 0);                    --     tx_analogreset.tx_analogreset
+    tx_cal_busy        : in  std_logic_vector(47 downto 0) := (others => '0'); --        tx_cal_busy.tx_cal_busy
+    tx_digitalreset    : out std_logic_vector(47 downto 0);                    --    tx_digitalreset.tx_digitalreset
+    tx_ready           : out std_logic_vector(47 downto 0)                     --           tx_ready.tx_ready
+  );
+  END COMPONENT;
+
 END tech_10gbase_r_component_pkg;
diff --git a/libraries/technology/clkbuf/hdllib.cfg b/libraries/technology/clkbuf/hdllib.cfg
index 8f8e995b7cb826a3c2268fe4501c3930de332712..c5e8d11c97e13449f0f404c5c95feeb05337fa2e 100644
--- a/libraries/technology/clkbuf/hdllib.cfg
+++ b/libraries/technology/clkbuf/hdllib.cfg
@@ -1,13 +1,14 @@
 hdl_lib_name = tech_clkbuf
 hdl_library_clause_name = tech_clkbuf_lib
 hdl_lib_uses_synth = technology common
-hdl_lib_uses_ip = ip_arria10_clkbuf_global ip_arria10_e3sge3_clkbuf_global ip_arria10_e1sg_clkbuf_global
+hdl_lib_uses_ip = ip_arria10_clkbuf_global ip_arria10_e3sge3_clkbuf_global ip_arria10_e1sg_clkbuf_global ip_arria10_e2sg_clkbuf_global
 hdl_lib_uses_sim = 
 hdl_lib_technology = 
 hdl_lib_disclose_library_clause_names =
     ip_arria10_clkbuf_global         ip_arria10_clkbuf_global_altclkctrl_150
     ip_arria10_e3sge3_clkbuf_global  ip_arria10_e3sge3_clkbuf_global_altclkctrl_151
     ip_arria10_e1sg_clkbuf_global    ip_arria10_e1sg_clkbuf_global_altclkctrl_180
+    ip_arria10_e2sg_clkbuf_global    ip_arria10_e2sg_clkbuf_global_altclkctrl_194
 
 synth_files =
     tech_clkbuf_component_pkg.vhd
diff --git a/libraries/technology/clkbuf/tech_clkbuf.vhd b/libraries/technology/clkbuf/tech_clkbuf.vhd
index 621bc2a7c2460b59a06a47da2cc5fac0a32d96e5..e7215bbb254d61868f4d32aa686898a8857ca19a 100644
--- a/libraries/technology/clkbuf/tech_clkbuf.vhd
+++ b/libraries/technology/clkbuf/tech_clkbuf.vhd
@@ -29,6 +29,7 @@ USE technology_lib.technology_select_pkg.ALL;
 LIBRARY ip_arria10_clkbuf_global_altclkctrl_150;
 LIBRARY ip_arria10_e3sge3_clkbuf_global_altclkctrl_151;
 LIBRARY ip_arria10_e1sg_clkbuf_global_altclkctrl_180;
+LIBRARY ip_arria10_e2sg_clkbuf_global_altclkctrl_194;
 
 ENTITY tech_clkbuf IS
   GENERIC (
@@ -81,4 +82,16 @@ BEGIN
     );
   END GENERATE;
 
+  -----------------------------------------------------------------------------
+  -- ip_arria10_e2sg
+  -----------------------------------------------------------------------------
+  
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg AND g_clock_net="GLOBAL" GENERATE
+    u0 : ip_arria10_e2sg_clkbuf_global
+    PORT MAP (
+      inclk  => inclk,   -- inclk
+      outclk => outclk   -- outclk
+    );
+  END GENERATE;
+
 END ARCHITECTURE;
diff --git a/libraries/technology/clkbuf/tech_clkbuf_component_pkg.vhd b/libraries/technology/clkbuf/tech_clkbuf_component_pkg.vhd
index b398fe748185c853b324abfd2db36f3759b46c87..0a8c5bd423eef721619a044610c3a822dd0c66d8 100644
--- a/libraries/technology/clkbuf/tech_clkbuf_component_pkg.vhd
+++ b/libraries/technology/clkbuf/tech_clkbuf_component_pkg.vhd
@@ -60,5 +60,16 @@ PACKAGE tech_clkbuf_component_pkg IS
   );
   END COMPONENT;
 
+  -----------------------------------------------------------------------------
+  -- ip_arria10_e2sg
+  -----------------------------------------------------------------------------
+  
+  COMPONENT ip_arria10_e2sg_clkbuf_global IS
+  PORT (
+    inclk  : in  std_logic := '0'; --  altclkctrl_input.inclk
+    outclk : out std_logic         -- altclkctrl_output.outclk
+  );
+  END COMPONENT;
+
 END tech_clkbuf_component_pkg;
 
diff --git a/libraries/technology/ddr/hdllib.cfg b/libraries/technology/ddr/hdllib.cfg
index c19a8419fdc68e5d91c75e81c992b76a24dcfbb0..4f653f1ac02336cf0a73521e35b844d7713c83ae 100644
--- a/libraries/technology/ddr/hdllib.cfg
+++ b/libraries/technology/ddr/hdllib.cfg
@@ -17,6 +17,8 @@ hdl_lib_uses_ip = ip_stratixiv_ddr3_uphy_4g_800_master
                   ip_arria10_e1sg_ddr4_8g_1600
                   ip_arria10_e1sg_ddr4_4g_2000
                   ip_arria10_e1sg_ddr4_8g_2400
+                  ip_arria10_e2sg_ddr4_8g_1600
+                  ip_arria10_e2sg_ddr4_8g_2400
 hdl_lib_uses_sim = ip_stratixiv_ddr3_mem_model
                    ip_arria10_ddr4_mem_model_141
 hdl_lib_technology = 
@@ -39,6 +41,8 @@ hdl_lib_disclose_library_clause_names =
     ip_arria10_e1sg_ddr4_8g_2400                     ip_arria10_e1sg_ddr4_8g_2400_altera_emif_180
     ip_stratixiv_ddr3_mem_model                      ip_stratixiv_ddr3_mem_model_lib
     ip_arria10_ddr4_mem_model_141                    ip_arria10_ddr4_mem_model_141
+    ip_arria10_e2sg_ddr4_8g_1600                     ip_arria10_e2sg_ddr4_8g_1600_altera_emif_194
+    ip_arria10_e2sg_ddr4_8g_2400                     ip_arria10_e2sg_ddr4_8g_2400_altera_emif_194
     
 synth_files =
     tech_ddr_pkg.vhd
@@ -48,6 +52,7 @@ synth_files =
     tech_ddr_arria10.vhd
     tech_ddr_arria10_e3sge3.vhd
     tech_ddr_arria10_e1sg.vhd
+    tech_ddr_arria10_e2sg.vhd
     tech_ddr.vhd
 
 test_bench_files =
diff --git a/libraries/technology/ddr/tech_ddr.vhd b/libraries/technology/ddr/tech_ddr.vhd
index e125d3eca3a10a57d8076dc480c243dcd71f10e3..e27d82cdbaf9e5013e0be3d25f02a29b0c5825c7 100644
--- a/libraries/technology/ddr/tech_ddr.vhd
+++ b/libraries/technology/ddr/tech_ddr.vhd
@@ -113,6 +113,15 @@ BEGIN
                 phy4_in, phy4_io, phy4_ou);
     END GENERATE;
 
+    gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+      u0 : ENTITY work.tech_ddr_arria10_e2sg
+      GENERIC MAP (g_tech_ddr)
+      PORT MAP (ref_clk, ref_rst,
+                ctlr_gen_clk, ctlr_gen_rst,
+                ctlr_mosi, ctlr_miso,
+                phy4_in, phy4_io, phy4_ou);
+    END GENERATE;
+
   END GENERATE;
  
   -----------------------------------------------------------------------------
diff --git a/libraries/technology/ddr/tech_ddr_arria10_e2sg.vhd b/libraries/technology/ddr/tech_ddr_arria10_e2sg.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..7d5becab3bc3c233a7dfa747a9a156d7e502b3ec
--- /dev/null
+++ b/libraries/technology/ddr/tech_ddr_arria10_e2sg.vhd
@@ -0,0 +1,201 @@
+--------------------------------------------------------------------------------
+--
+-- Copyright (C) 2015
+-- 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/>.
+--
+--------------------------------------------------------------------------------
+
+
+-- Purpose: DDR4 memory access component for Arria10.
+-- Description:
+-- Remarks:
+-- . The local_init_done goes high some time after power up. It could have been
+--   AND-ed with ctlr_miso.waitrequest_n. However the timing closure for
+--   ctlr_miso.waitrequest_n can be critical, so therefore it is better not
+--   to combinatorially load it with the AND local_init_done. Instead a
+--   ctlr_miso.done field was added and used to pass on local_init_done. In fact
+--   for normal operation it is sufficient to only wait for 
+--   ctlr_miso.waitrequest_n. The ctlr_miso.init_done is then only used for
+--   DDR interface monitoring purposes.
+
+-- Declare IP libraries to ensure default binding in simulation. The IP library clause is ignored by synthesis.
+LIBRARY ip_arria10_e2sg_ddr4_8g_1600_altera_emif_194;
+LIBRARY ip_arria10_e2sg_ddr4_8g_2400_altera_emif_194;
+
+LIBRARY IEEE, technology_lib, common_lib;
+USE IEEE.STD_LOGIC_1164.ALL;
+USE common_lib.common_pkg.ALL;
+USE common_lib.common_mem_pkg.ALL;
+USE technology_lib.technology_pkg.ALL;
+USE work.tech_ddr_pkg.ALL;
+USE work.tech_ddr_component_pkg.ALL;
+
+ENTITY tech_ddr_arria10_e2sg IS
+  GENERIC (
+    g_tech_ddr   : t_c_tech_ddr
+  );
+  PORT (
+    -- PLL reference clock
+    ref_clk           : IN    STD_LOGIC;
+    ref_rst           : IN    STD_LOGIC;
+
+    -- Controller user interface
+    ctlr_gen_clk      : OUT   STD_LOGIC;
+    ctlr_gen_rst      : OUT   STD_LOGIC;
+
+    ctlr_mosi         : IN    t_mem_ctlr_mosi;
+    ctlr_miso         : OUT   t_mem_ctlr_miso;
+
+    -- PHY interface
+    phy_in            : IN    t_tech_ddr4_phy_in;
+    phy_io            : INOUT t_tech_ddr4_phy_io;
+    phy_ou            : OUT   t_tech_ddr4_phy_ou
+  );
+END tech_ddr_arria10_e2sg;
+
+
+ARCHITECTURE str OF tech_ddr_arria10_e2sg IS
+
+  CONSTANT c_gigabytes             : NATURAL := func_tech_ddr_module_size(g_tech_ddr);
+
+  CONSTANT c_ctlr_address_w        : NATURAL := func_tech_ddr_ctlr_address_w(g_tech_ddr);
+  CONSTANT c_ctlr_data_w           : NATURAL := 576;--func_tech_ddr_ctlr_data_w(   g_tech_ddr);
+  
+  SIGNAL i_ctlr_gen_clk            : STD_LOGIC;
+  SIGNAL ref_rst_n                 : STD_LOGIC;
+  SIGNAL ctlr_gen_rst_n            : STD_LOGIC := '0';
+  
+  SIGNAL local_cal_success         : STD_LOGIC;
+  SIGNAL local_cal_fail            : STD_LOGIC;
+
+BEGIN
+
+  ctlr_gen_clk <= i_ctlr_gen_clk;
+  
+  ref_rst_n    <= NOT ref_rst;
+  ctlr_gen_rst <= NOT ctlr_gen_rst_n;
+    
+
+  
+  gen_ip_arria10_e2sg_ddr4_8g_1600 : IF g_tech_ddr.name="DDR4" AND c_gigabytes=8 AND g_tech_ddr.mts=1600 GENERATE
+
+    u_ip_arria10_e2sg_ddr4_8g_1600 : ip_arria10_e2sg_ddr4_8g_1600
+    PORT MAP (
+      amm_ready_0         => ctlr_miso.waitrequest_n,                                   --     ctrl_amm_avalon_slave_0.waitrequest_n
+      amm_read_0          => ctlr_mosi.rd,                                              --                            .read
+      amm_write_0         => ctlr_mosi.wr,                                              --                            .write
+      amm_address_0       => ctlr_mosi.address(c_ctlr_address_w-1 DOWNTO 0),            --                            .address
+      amm_readdata_0      => ctlr_miso.rddata(c_ctlr_data_w-1 DOWNTO 0),                --                            .readdata
+      amm_writedata_0     => ctlr_mosi.wrdata(c_ctlr_data_w-1 DOWNTO 0),                --                            .writedata
+      amm_burstcount_0    => ctlr_mosi.burstsize(g_tech_ddr.maxburstsize_w-1 DOWNTO 0), --                            .burstcount
+      amm_byteenable_0    => (OTHERS=>'1'),                                             --                            .byteenable
+      amm_readdatavalid_0 => ctlr_miso.rdval,                                           --                            .readdatavalid
+      emif_usr_clk        => i_ctlr_gen_clk,                                            --   emif_usr_clk_clock_source.clk
+      emif_usr_reset_n    => ctlr_gen_rst_n,                                            -- emif_usr_reset_reset_source.reset_n
+      global_reset_n      => ref_rst_n,                                                 --     global_reset_reset_sink.reset_n
+      mem_ck              => phy_ou.ck(g_tech_ddr.ck_w-1 DOWNTO 0),                     --             mem_conduit_end.mem_ck
+      mem_ck_n            => phy_ou.ck_n(g_tech_ddr.ck_w-1 DOWNTO 0),                   --                            .mem_ck_n
+      mem_a               => phy_ou.a(g_tech_ddr.a_w-1 DOWNTO 0),                       --                            .mem_a
+   sl(mem_act_n)          => phy_ou.act_n,                                              --                            .mem_act_n
+      mem_ba              => phy_ou.ba(g_tech_ddr.ba_w-1 DOWNTO 0),                     --                            .mem_ba
+      mem_bg              => phy_ou.bg(g_tech_ddr.bg_w-1 DOWNTO 0),                     --                            .mem_bg
+      mem_cke             => phy_ou.cke(g_tech_ddr.cke_w-1 DOWNTO 0),                   --                            .mem_cke
+      mem_cs_n            => phy_ou.cs_n(g_tech_ddr.cs_w-1 DOWNTO 0),                   --                            .mem_cs_n
+      mem_odt             => phy_ou.odt(g_tech_ddr.odt_w-1 DOWNTO 0),                   --                            .mem_odt
+   sl(mem_reset_n)        => phy_ou.reset_n,                                            --                            .mem_reset_n
+   sl(mem_par)            => phy_ou.par,                                                --                            .mem_par
+      mem_alert_n         => slv(phy_in.alert_n),                                       --                            .mem_alert_n
+      mem_dqs             => phy_io.dqs(g_tech_ddr.dqs_w-1 DOWNTO 0),                   --                            .mem_dqs
+      mem_dqs_n           => phy_io.dqs_n(g_tech_ddr.dqs_w-1 DOWNTO 0),                 --                            .mem_dqs_n
+      mem_dq              => phy_io.dq(g_tech_ddr.dq_w-1 DOWNTO 0),                     --                            .mem_dq
+      mem_dbi_n           => phy_io.dbi_n(g_tech_ddr.dbi_w-1 DOWNTO 0),                 --                            .mem_dbi_n
+      oct_rzqin           => phy_in.oct_rzqin,                                          --             oct_conduit_end.oct_rzqin
+      pll_ref_clk         => ref_clk,                                                   --      pll_ref_clk_clock_sink.clk
+      local_cal_success   => local_cal_success,                                         --          status_conduit_end.local_cal_success
+      local_cal_fail      => local_cal_fail                                             --                            .local_cal_fail
+    );
+    
+    -- Signals in DDR3 that are not available with DDR4:
+    --
+    --avl_burstbegin             => ctlr_mosi.burstbegin,                               --             .beginbursttransfer
+    --   beginbursttransfer is obselete for new Avalon designs, because the slave can count valid data itself to know when a new burst starts
+    --
+    --local_init_done            => ctlr_miso.done,                                     --       status.local_init_done
+    --   local_init_done = ctlr_init_done originally and mapped to ctlr_miso.done for the DDR3 IP. For the DDR4 IP the local_cal_success and
+    --   NOT local_cal_fail seem  to serve as local_init_done
+    
+    ctlr_miso.done     <= local_cal_success AND NOT local_cal_fail WHEN rising_edge(i_ctlr_gen_clk);
+    ctlr_miso.cal_ok   <= local_cal_success;
+    ctlr_miso.cal_fail <= local_cal_fail;
+    
+  END GENERATE;
+
+  gen_ip_arria10_e2sg_ddr4_8g_2400 : IF g_tech_ddr.name="DDR4" AND c_gigabytes=8 AND g_tech_ddr.mts=2400 GENERATE
+
+    u_ip_arria10_e2sg_ddr4_8g_2400 : ip_arria10_e2sg_ddr4_8g_2400
+    PORT MAP (
+      amm_ready_0         => ctlr_miso.waitrequest_n,                                   --     ctrl_amm_avalon_slave_0.waitrequest_n
+      amm_read_0          => ctlr_mosi.rd,                                              --                            .read
+      amm_write_0         => ctlr_mosi.wr,                                              --                            .write
+      amm_address_0       => ctlr_mosi.address(c_ctlr_address_w-1 DOWNTO 0),            --                            .address
+      amm_readdata_0      => ctlr_miso.rddata(c_ctlr_data_w-1 DOWNTO 0),                --                            .readdata
+      amm_writedata_0     => ctlr_mosi.wrdata(c_ctlr_data_w-1 DOWNTO 0),                --                            .writedata
+      amm_burstcount_0    => ctlr_mosi.burstsize(g_tech_ddr.maxburstsize_w-1 DOWNTO 0), --                            .burstcount
+      amm_byteenable_0    => (OTHERS=>'1'),                                             --                            .byteenable
+      amm_readdatavalid_0 => ctlr_miso.rdval,                                           --                            .readdatavalid
+      emif_usr_clk        => i_ctlr_gen_clk,                                            --   emif_usr_clk_clock_source.clk
+      emif_usr_reset_n    => ctlr_gen_rst_n,                                            -- emif_usr_reset_reset_source.reset_n
+      global_reset_n      => ref_rst_n,                                                 --     global_reset_reset_sink.reset_n
+      mem_ck              => phy_ou.ck(g_tech_ddr.ck_w-1 DOWNTO 0),                     --             mem_conduit_end.mem_ck
+      mem_ck_n            => phy_ou.ck_n(g_tech_ddr.ck_w-1 DOWNTO 0),                   --                            .mem_ck_n
+      mem_a               => phy_ou.a(g_tech_ddr.a_w-1 DOWNTO 0),                       --                            .mem_a
+   sl(mem_act_n)          => phy_ou.act_n,                                              --                            .mem_act_n
+      mem_ba              => phy_ou.ba(g_tech_ddr.ba_w-1 DOWNTO 0),                     --                            .mem_ba
+      mem_bg              => phy_ou.bg(g_tech_ddr.bg_w-1 DOWNTO 0),                     --                            .mem_bg
+      mem_cke             => phy_ou.cke(g_tech_ddr.cke_w-1 DOWNTO 0),                   --                            .mem_cke
+      mem_cs_n            => phy_ou.cs_n(g_tech_ddr.cs_w-1 DOWNTO 0),                   --                            .mem_cs_n
+      mem_odt             => phy_ou.odt(g_tech_ddr.odt_w-1 DOWNTO 0),                   --                            .mem_odt
+   sl(mem_reset_n)        => phy_ou.reset_n,                                            --                            .mem_reset_n
+   sl(mem_par)            => phy_ou.par,                                                --                            .mem_par
+      mem_alert_n         => slv(phy_in.alert_n),                                       --                            .mem_alert_n
+      mem_dqs             => phy_io.dqs(g_tech_ddr.dqs_w-1 DOWNTO 0),                   --                            .mem_dqs
+      mem_dqs_n           => phy_io.dqs_n(g_tech_ddr.dqs_w-1 DOWNTO 0),                 --                            .mem_dqs_n
+      mem_dq              => phy_io.dq(g_tech_ddr.dq_w-1 DOWNTO 0),                     --                            .mem_dq
+      mem_dbi_n           => phy_io.dbi_n(g_tech_ddr.dbi_w-1 DOWNTO 0),                 --                            .mem_dbi_n
+      oct_rzqin           => phy_in.oct_rzqin,                                          --             oct_conduit_end.oct_rzqin
+      pll_ref_clk         => ref_clk,                                                   --      pll_ref_clk_clock_sink.clk
+      local_cal_success   => local_cal_success,                                         --          status_conduit_end.local_cal_success
+      local_cal_fail      => local_cal_fail                                             --                            .local_cal_fail
+    );
+    
+    -- Signals in DDR3 that are not available with DDR4:
+    --
+    --avl_burstbegin             => ctlr_mosi.burstbegin,                               --             .beginbursttransfer
+    --   beginbursttransfer is obselete for new Avalon designs, because the slave can count valid data itself to know when a new burst starts
+    --
+    --local_init_done            => ctlr_miso.done,                                     --       status.local_init_done
+    --   local_init_done = ctlr_init_done originally and mapped to ctlr_miso.done for the DDR3 IP. For the DDR4 IP the local_cal_success and
+    --   NOT local_cal_fail seem  to serve as local_init_done
+    
+    ctlr_miso.done     <= local_cal_success AND NOT local_cal_fail WHEN rising_edge(i_ctlr_gen_clk);
+    ctlr_miso.cal_ok   <= local_cal_success;
+    ctlr_miso.cal_fail <= local_cal_fail;
+    
+  END GENERATE;
+
+END str;
diff --git a/libraries/technology/ddr/tech_ddr_component_pkg.vhd b/libraries/technology/ddr/tech_ddr_component_pkg.vhd
index 2284612023138e43eac50447b5d0bf100d3c70f5..52d1159aa6d8458ee1b02e96abd86df36e5f7cd2 100644
--- a/libraries/technology/ddr/tech_ddr_component_pkg.vhd
+++ b/libraries/technology/ddr/tech_ddr_component_pkg.vhd
@@ -604,7 +604,82 @@ PACKAGE tech_ddr_component_pkg IS
     local_cal_fail      : out   std_logic                                          --                            .local_cal_fail
   );
   END COMPONENT;
-  
+ 
+  -- Dual rank version for e2sg
+  COMPONENT ip_arria10_e2sg_ddr4_8g_1600 IS
+  PORT (
+    amm_ready_0         : out   std_logic;                                         --     ctrl_amm_avalon_slave_0.waitrequest_n
+    amm_read_0          : in    std_logic                      := '0';             --                            .read
+    amm_write_0         : in    std_logic                      := '0';             --                            .write
+    amm_address_0       : in    std_logic_vector(26 downto 0)  := (others => '0'); --                            .address
+    amm_readdata_0      : out   std_logic_vector(575 downto 0);                    --                            .readdata
+    amm_writedata_0     : in    std_logic_vector(575 downto 0) := (others => '0'); --                            .writedata
+    amm_burstcount_0    : in    std_logic_vector(6 downto 0)   := (others => '0'); --                            .burstcount
+    amm_byteenable_0    : in    std_logic_vector(71 downto 0)  := (others => '0'); --                            .byteenable
+    amm_readdatavalid_0 : out   std_logic;                                         --                            .readdatavalid
+    emif_usr_clk        : out   std_logic;                                         --   emif_usr_clk_clock_source.clk
+    emif_usr_reset_n    : out   std_logic;                                         -- emif_usr_reset_reset_source.reset_n
+    global_reset_n      : in    std_logic                      := '0';             --     global_reset_reset_sink.reset_n
+    mem_ck              : out   std_logic_vector(1 downto 0);                      --             mem_conduit_end.mem_ck
+    mem_ck_n            : out   std_logic_vector(1 downto 0);                      --                            .mem_ck_n
+    mem_a               : out   std_logic_vector(16 downto 0);                     --                            .mem_a
+    mem_act_n           : out   std_logic_vector(0 downto 0);                      --                            .mem_act_n
+    mem_ba              : out   std_logic_vector(1 downto 0);                      --                            .mem_ba
+    mem_bg              : out   std_logic_vector(1 downto 0);                      --                            .mem_bg
+    mem_cke             : out   std_logic_vector(1 downto 0);                      --                            .mem_cke
+    mem_cs_n            : out   std_logic_vector(1 downto 0);                      --                            .mem_cs_n
+    mem_odt             : out   std_logic_vector(1 downto 0);                      --                            .mem_odt
+    mem_reset_n         : out   std_logic_vector(0 downto 0);                      --                            .mem_reset_n
+    mem_par             : out   std_logic_vector(0 downto 0);                      --                            .mem_par
+    mem_alert_n         : in    std_logic_vector(0 downto 0)   := (others => '0'); --                            .mem_alert_n
+    mem_dqs             : inout std_logic_vector(8 downto 0)   := (others => '0'); --                            .mem_dqs
+    mem_dqs_n           : inout std_logic_vector(8 downto 0)   := (others => '0'); --                            .mem_dqs_n
+    mem_dq              : inout std_logic_vector(71 downto 0)  := (others => '0'); --                            .mem_dq
+    mem_dbi_n           : inout std_logic_vector(8 downto 0)   := (others => '0'); --                            .mem_dbi_n
+    oct_rzqin           : in    std_logic                      := '0';             --             oct_conduit_end.oct_rzqin
+    pll_ref_clk         : in    std_logic                      := '0';             --      pll_ref_clk_clock_sink.clk
+    local_cal_success   : out   std_logic;                                         --          status_conduit_end.local_cal_success
+    local_cal_fail      : out   std_logic                                          --                            .local_cal_fail
+  );
+  END COMPONENT;
+ 
+  COMPONENT ip_arria10_e2sg_ddr4_8g_2400 IS
+  PORT (
+    amm_ready_0         : out   std_logic;                                         --     ctrl_amm_avalon_slave_0.waitrequest_n
+    amm_read_0          : in    std_logic                      := '0';             --                            .read
+    amm_write_0         : in    std_logic                      := '0';             --                            .write
+    amm_address_0       : in    std_logic_vector(26 downto 0)  := (others => '0'); --                            .address
+    amm_readdata_0      : out   std_logic_vector(575 downto 0);                    --                            .readdata
+    amm_writedata_0     : in    std_logic_vector(575 downto 0) := (others => '0'); --                            .writedata
+    amm_burstcount_0    : in    std_logic_vector(6 downto 0)   := (others => '0'); --                            .burstcount
+    amm_byteenable_0    : in    std_logic_vector(71 downto 0)  := (others => '0'); --                            .byteenable
+    amm_readdatavalid_0 : out   std_logic;                                         --                            .readdatavalid
+    emif_usr_clk        : out   std_logic;                                         --   emif_usr_clk_clock_source.clk
+    emif_usr_reset_n    : out   std_logic;                                         -- emif_usr_reset_reset_source.reset_n
+    global_reset_n      : in    std_logic                      := '0';             --     global_reset_reset_sink.reset_n
+    mem_ck              : out   std_logic_vector(1 downto 0);                      --             mem_conduit_end.mem_ck
+    mem_ck_n            : out   std_logic_vector(1 downto 0);                      --                            .mem_ck_n
+    mem_a               : out   std_logic_vector(16 downto 0);                     --                            .mem_a
+    mem_act_n           : out   std_logic_vector(0 downto 0);                      --                            .mem_act_n
+    mem_ba              : out   std_logic_vector(1 downto 0);                      --                            .mem_ba
+    mem_bg              : out   std_logic_vector(1 downto 0);                      --                            .mem_bg
+    mem_cke             : out   std_logic_vector(1 downto 0);                      --                            .mem_cke
+    mem_cs_n            : out   std_logic_vector(1 downto 0);                      --                            .mem_cs_n
+    mem_odt             : out   std_logic_vector(1 downto 0);                      --                            .mem_odt
+    mem_reset_n         : out   std_logic_vector(0 downto 0);                      --                            .mem_reset_n
+    mem_par             : out   std_logic_vector(0 downto 0);                      --                            .mem_par
+    mem_alert_n         : in    std_logic_vector(0 downto 0)   := (others => '0'); --                            .mem_alert_n
+    mem_dqs             : inout std_logic_vector(8 downto 0)   := (others => '0'); --                            .mem_dqs
+    mem_dqs_n           : inout std_logic_vector(8 downto 0)   := (others => '0'); --                            .mem_dqs_n
+    mem_dq              : inout std_logic_vector(71 downto 0)  := (others => '0'); --                            .mem_dq
+    mem_dbi_n           : inout std_logic_vector(8 downto 0)   := (others => '0'); --                            .mem_dbi_n
+    oct_rzqin           : in    std_logic                      := '0';             --             oct_conduit_end.oct_rzqin
+    pll_ref_clk         : in    std_logic                      := '0';             --      pll_ref_clk_clock_sink.clk
+    local_cal_success   : out   std_logic;                                         --          status_conduit_end.local_cal_success
+    local_cal_fail      : out   std_logic                                          --                            .local_cal_fail
+  );
+  END COMPONENT;
+
 END tech_ddr_component_pkg;
 
 PACKAGE BODY tech_ddr_component_pkg IS
diff --git a/libraries/technology/eth_10g/hdllib.cfg b/libraries/technology/eth_10g/hdllib.cfg
index 71ceeaedd741088c8f3eea66ba17725ca36aa2aa..4c7a63445a617edfbe77926df45e4b1d38d32bba 100644
--- a/libraries/technology/eth_10g/hdllib.cfg
+++ b/libraries/technology/eth_10g/hdllib.cfg
@@ -1,6 +1,6 @@
 hdl_lib_name = tech_eth_10g
 hdl_library_clause_name = tech_eth_10g_lib
-hdl_lib_uses_synth = technology tech_pll tech_mac_10g common dp ip_stratixiv_eth_10g ip_arria10_eth_10g ip_arria10_e3sge3_eth_10g ip_arria10_e1sg_eth_10g
+hdl_lib_uses_synth = technology tech_pll tech_mac_10g common dp ip_stratixiv_eth_10g ip_arria10_eth_10g ip_arria10_e3sge3_eth_10g ip_arria10_e1sg_eth_10g ip_arria10_e2sg_eth_10g
 hdl_lib_uses_sim = 
 hdl_lib_technology = 
 hdl_lib_disclose_library_clause_names =
@@ -8,6 +8,7 @@ hdl_lib_disclose_library_clause_names =
     ip_arria10_eth_10g        ip_arria10_eth_10g_lib
     ip_arria10_e3sge3_eth_10g ip_arria10_e3sge3_eth_10g_lib
     ip_arria10_e1sg_eth_10g   ip_arria10_e1sg_eth_10g_lib
+    ip_arria10_e2sg_eth_10g   ip_arria10_e2sg_eth_10g_lib
 
 synth_files =
     tech_eth_10g_component_pkg.vhd
@@ -15,6 +16,7 @@ synth_files =
     tech_eth_10g_arria10.vhd
     tech_eth_10g_arria10_e3sge3.vhd
     tech_eth_10g_arria10_e1sg.vhd
+    tech_eth_10g_arria10_e2sg.vhd
     tech_eth_10g_clocks.vhd
     tech_eth_10g.vhd
 
diff --git a/libraries/technology/eth_10g/tech_eth_10g.vhd b/libraries/technology/eth_10g/tech_eth_10g.vhd
index aa885fedae2ba562c23eb2f4bec5b52ac2ee568e..901ffac3b5af74bca9214a5c56658de05a8273cd 100644
--- a/libraries/technology/eth_10g/tech_eth_10g.vhd
+++ b/libraries/technology/eth_10g/tech_eth_10g.vhd
@@ -311,4 +311,49 @@ BEGIN
     );
   END GENERATE;
 
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+    u0 : ENTITY work.tech_eth_10g_arria10_e2sg
+    GENERIC MAP (
+      g_sim                 => g_sim,
+      g_sim_level           => g_sim_level,
+      g_nof_channels        => g_nof_channels,
+      g_direction           => g_direction,
+      g_use_loopback        => g_use_loopback,
+      g_pre_header_padding  => g_pre_header_padding
+    )
+    PORT MAP (
+      -- Transceiver PLL reference clock
+      tr_ref_clk_644   => tr_ref_clk_644,
+      
+      -- Data clocks
+      clk_312          => tr_ref_clk_312,
+      clk_156          => tr_ref_clk_156,
+      rst_156          => tr_ref_rst_156,
+      
+      -- MM
+      mm_clk           => mm_clk,
+      mm_rst           => mm_rst,
+      
+      mac_mosi         => mac_mosi,
+      mac_miso         => mac_miso,
+      
+      reg_eth10g_mosi  => reg_eth10g_mosi,
+      reg_eth10g_miso  => reg_eth10g_miso,
+
+      reg_ip_arria10_e2sg_phy_10gbase_r_24_mosi   => reg_10gbase_r_24_mosi,
+      reg_ip_arria10_e2sg_phy_10gbase_r_24_miso   => reg_10gbase_r_24_miso,      
+   
+      -- ST
+      tx_snk_in_arr    => tx_snk_in_arr,       -- 64 bit data @ tr_ref_clk_156
+      tx_snk_out_arr   => tx_snk_out_arr, 
+      
+      rx_src_out_arr   => rx_src_out_arr,      -- 64 bit data @ tr_ref_clk_156
+      rx_src_in_arr    => rx_src_in_arr,
+      
+      -- Serial
+      serial_tx_arr    => serial_tx_arr,
+      serial_rx_arr    => serial_rx_arr
+    );
+  END GENERATE;
+
 END str;
diff --git a/libraries/technology/eth_10g/tech_eth_10g_arria10_e2sg.vhd b/libraries/technology/eth_10g/tech_eth_10g_arria10_e2sg.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..3b98fea9426310d386889a0020aed291e8fd7ef1
--- /dev/null
+++ b/libraries/technology/eth_10g/tech_eth_10g_arria10_e2sg.vhd
@@ -0,0 +1,187 @@
+--------------------------------------------------------------------------------
+--
+-- 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/>.
+--
+--------------------------------------------------------------------------------
+
+
+-- Purpose: Combine mac_10g and 10gbase_r for c_tech_arria10_e2sg
+-- Description 
+--   
+--   The clocks come from an external central fPLL:
+--
+--     tx_ref_clk_644 --> fPLL --> clk_312
+--                                 clk_156, rst_156
+--   Blockdiagram:
+--
+--                          312 156 644  
+--                _________   |  |  |   ____________
+--                |       |   |  |  |   |          |
+--                |       |<--/  |  \-->|          |
+--                |       |<-----+----->|          |
+--                |       |             |          |
+--                |       |    XGMII    |          |
+--     tx_snk --->|tech_  |------------>|tech_     |---> serial_tx
+--     rx_src <---|mac_10g|<------------|10gbase_r |<--- serial_rx
+--                |       |             |          |
+--                |_______|--\       /--|__________|
+--                    |      |       |
+--                  mac_mm   |       |
+--                           |       v
+--                       (   v    xgmii_tx_ready)
+--     tx_snk_out.xon <--(xgmii_link_status[1:0])
+--
+-- . g_direction:
+--   "TX_RX" = Default support bidir
+--   "TX_ONLY" = Uses a bidir MAC and connects the MAC Tx to the MAC RX.
+--   "RX_ONLY" = Same as "TX_RX"
+--   See tech_eth_10g_stratixiv.vhd for more details.
+-- 
+-- Remarks:
+-- . xgmii_link_status:
+--   When the xgmii_tx_ready from the 10gbase_r and the xgmii_link_status from
+--   the mac_10g are both be OK then the tx_snk.xon is asserted to allow the
+--   user data transmission.
+--   The tb_tech_eth_10g reveals that xgmii_tx_ready goes high after some power
+--   up time and then remains active independent of link_fault.
+--   A link fault eg. due to rx disconnect is detected by the link fault status:
+--     0 = OK
+--     1 = local fault
+--     2 = remote fault
+--   
+--   From google search:
+--     Link fault Operation
+--     1) Device B detects loss of signal. Local fault is signaled by PHY of Device B to Device B.
+--     2) Device B ceases transmission of MAC frames and transmits remote fault to Device A.
+--     3) Device A receives remote fault from Device B.
+--     4) Device A stops sending frames, continuously generates Idle.
+--
+--   Hence when the xgmii_link_status is OK then the other side is also OK so
+--   then it is also appropriate to release tx_snk.xon.
+--
+--   The XGMII link status can be monitored via the reg_eth10 MM register:
+--
+--     addr  data[31:0]
+--      0      [0] = tx_snk_out_arr(I).xon
+--             [1] = xgmii_tx_ready_arr(I)
+--           [3:2] = xgmii_link_status_arr(I)
+--  
+
+LIBRARY IEEE, common_lib, dp_lib, technology_lib, tech_mac_10g_lib, ip_arria10_e2sg_eth_10g_lib;
+USE IEEE.STD_LOGIC_1164.ALL;
+USE technology_lib.technology_pkg.ALL;
+USE common_lib.common_pkg.ALL;
+USE common_lib.common_mem_pkg.ALL;
+USE common_lib.common_interface_layers_pkg.ALL;
+USE dp_lib.dp_stream_pkg.ALL;
+USE tech_mac_10g_lib.tech_mac_10g_component_pkg.ALL;
+USE work.tech_eth_10g_component_pkg.ALL;
+
+ENTITY tech_eth_10g_arria10_e2sg IS
+  GENERIC (
+    g_sim                 : BOOLEAN := FALSE;
+    g_sim_level           : NATURAL := 0;     -- 0 = use IP; 1 = use fast serdes model
+    g_nof_channels        : NATURAL := 1;
+    g_direction           : STRING := "TX_RX";  -- "TX_RX", "TX_ONLY", "RX_ONLY"
+    g_use_loopback        : BOOLEAN := FALSE;
+    g_pre_header_padding  : BOOLEAN := FALSE
+  );
+  PORT (
+    -- Transceiver PLL reference clock
+    tr_ref_clk_644   : IN  STD_LOGIC := '0';   -- 644.531250 MHz for 10GBASE-R
+    
+    -- Data clocks
+    clk_312          : IN  STD_LOGIC := '0';
+    clk_156          : IN  STD_LOGIC := '0';
+    rst_156          : IN  STD_LOGIC := '0';
+    
+    -- MM
+    mm_clk           : IN  STD_LOGIC;
+    mm_rst           : IN  STD_LOGIC;
+    
+    mac_mosi         : IN  t_mem_mosi;         -- MAG_10G (CSR)
+    mac_miso         : OUT t_mem_miso; 
+    
+    reg_eth10g_mosi  : IN  t_mem_mosi;         -- ETH10G (link status register)
+    reg_eth10g_miso  : OUT t_mem_miso;
+ 
+    reg_ip_arria10_e2sg_phy_10gbase_r_24_mosi     : IN  t_mem_mosi := c_mem_mosi_rst; 
+    reg_ip_arria10_e2sg_phy_10gbase_r_24_miso     : OUT t_mem_miso;    
+
+    -- ST
+    tx_snk_in_arr    : IN  t_dp_sosi_arr(g_nof_channels-1 DOWNTO 0);      -- 64 bit data @ clk_156
+    tx_snk_out_arr   : OUT t_dp_siso_arr(g_nof_channels-1 DOWNTO 0); 
+    
+    rx_src_out_arr   : OUT t_dp_sosi_arr(g_nof_channels-1 DOWNTO 0);      -- 64 bit data @ clk_156
+    rx_src_in_arr    : IN  t_dp_siso_arr(g_nof_channels-1 DOWNTO 0);
+    
+    -- Serial
+    serial_tx_arr    : OUT STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);
+    serial_rx_arr    : IN  STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0)
+  );
+END tech_eth_10g_arria10_e2sg;
+
+
+ARCHITECTURE str OF tech_eth_10g_arria10_e2sg IS
+  
+BEGIN
+  u_ip_arria10_e2sg_eth_10g : ip_arria10_e2sg_eth_10g
+  GENERIC MAP(
+    g_sim                => g_sim,                
+    g_sim_level          => g_sim_level,          
+    g_nof_channels       => g_nof_channels,      
+    g_direction          => g_direction,          
+    g_use_loopback       => g_use_loopback,
+    g_pre_header_padding => g_pre_header_padding 
+  )
+  PORT MAP(
+    -- Transceiver PLL reference clock
+    tr_ref_clk_644  => tr_ref_clk_644,   
+
+    -- Data clocks
+    clk_312         => clk_312,          
+    clk_156         => clk_156,          
+    rst_156         => rst_156,          
+
+    -- MM
+    mm_clk          => mm_clk,           
+    mm_rst          => mm_rst,           
+
+    mac_mosi        => mac_mosi,         
+    mac_miso        => mac_miso,         
+
+    reg_eth10g_mosi => reg_eth10g_mosi,  
+    reg_eth10g_miso => reg_eth10g_miso,  
+ 
+    reg_ip_arria10_e2sg_phy_10gbase_r_24_mosi => reg_ip_arria10_e2sg_phy_10gbase_r_24_mosi, 
+    reg_ip_arria10_e2sg_phy_10gbase_r_24_miso => reg_ip_arria10_e2sg_phy_10gbase_r_24_miso,
+
+    -- ST
+    tx_snk_in_arr  => tx_snk_in_arr, 
+    tx_snk_out_arr => tx_snk_out_arr,
+
+    rx_src_out_arr => rx_src_out_arr,
+    rx_src_in_arr  => rx_src_in_arr,
+
+    -- Serial
+    serial_tx_arr  => serial_tx_arr,
+    serial_rx_arr  => serial_rx_arr
+  );
+  
+END str;
diff --git a/libraries/technology/eth_10g/tech_eth_10g_clocks.vhd b/libraries/technology/eth_10g/tech_eth_10g_clocks.vhd
index 2e9f9805f0c353573ac31da705c3dde4f0fcbf73..1e5cf5a8703be817b54856775632e1c7dc658000 100644
--- a/libraries/technology/eth_10g/tech_eth_10g_clocks.vhd
+++ b/libraries/technology/eth_10g/tech_eth_10g_clocks.vhd
@@ -85,7 +85,7 @@ BEGIN
     eth_rx_rst_arr  <= rx_rst_arr;
   END GENERATE;
     
-  gen_clocks_10gbase_r : IF g_technology=c_tech_arria10 OR g_technology=c_tech_arria10_e3sge3 OR g_technology=c_tech_arria10_e1sg GENERATE
+  gen_clocks_10gbase_r : IF g_technology=c_tech_arria10 OR g_technology=c_tech_arria10_e3sge3 OR g_technology=c_tech_arria10_e1sg OR g_technology=c_tech_arria10_e2sg GENERATE
     eth_tx_clk_arr  <= (OTHERS=>tr_ref_clk_156);
     eth_tx_rst_arr  <= (OTHERS=>tr_ref_rst_156);
     
diff --git a/libraries/technology/eth_10g/tech_eth_10g_component_pkg.vhd b/libraries/technology/eth_10g/tech_eth_10g_component_pkg.vhd
index 0b2b4b4894d47efb176ed71a3424dbe9bf384503..b3d74c6db9d2224676922e88229353505400ccd8 100644
--- a/libraries/technology/eth_10g/tech_eth_10g_component_pkg.vhd
+++ b/libraries/technology/eth_10g/tech_eth_10g_component_pkg.vhd
@@ -172,6 +172,7 @@ PACKAGE tech_eth_10g_component_pkg IS
     serial_rx_arr    : IN  STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0)
   );
   END COMPONENT;  
+
   ------------------------------------------------------------------------------
   -- ip_arria10_e1sg
   ------------------------------------------------------------------------------
@@ -220,6 +221,54 @@ PACKAGE tech_eth_10g_component_pkg IS
   );
   END COMPONENT;
 
+  ------------------------------------------------------------------------------
+  -- ip_arria10_e2sg
+  ------------------------------------------------------------------------------
+  
+  COMPONENT ip_arria10_e2sg_eth_10g IS
+  GENERIC (
+    g_sim                 : BOOLEAN := FALSE;
+    g_sim_level           : NATURAL := 0;     -- 0 = use IP; 1 = use fast serdes model
+    g_nof_channels        : NATURAL := 1;
+    g_direction           : STRING := "TX_RX";  -- "TX_RX", "TX_ONLY", "RX_ONLY"
+    g_use_loopback        : BOOLEAN := FALSE;
+    g_pre_header_padding  : BOOLEAN := FALSE
+  );
+  PORT (
+    -- Transceiver PLL reference clock
+    tr_ref_clk_644   : IN  STD_LOGIC := '0';   -- 644.531250 MHz for 10GBASE-R
+    
+    -- Data clocks
+    clk_312          : IN  STD_LOGIC := '0';
+    clk_156          : IN  STD_LOGIC := '0';
+    rst_156          : IN  STD_LOGIC := '0';
+    
+    -- MM
+    mm_clk           : IN  STD_LOGIC;
+    mm_rst           : IN  STD_LOGIC;
+    
+    mac_mosi         : IN  t_mem_mosi;         -- MAG_10G (CSR)
+    mac_miso         : OUT t_mem_miso; 
+    
+    reg_eth10g_mosi  : IN  t_mem_mosi;         -- ETH10G (link status register)
+    reg_eth10g_miso  : OUT t_mem_miso;
+ 
+    reg_ip_arria10_e2sg_phy_10gbase_r_24_mosi     : IN  t_mem_mosi := c_mem_mosi_rst; 
+    reg_ip_arria10_e2sg_phy_10gbase_r_24_miso     : OUT t_mem_miso;    
+
+    -- ST
+    tx_snk_in_arr    : IN  t_dp_sosi_arr(g_nof_channels-1 DOWNTO 0);      -- 64 bit data @ clk_156
+    tx_snk_out_arr   : OUT t_dp_siso_arr(g_nof_channels-1 DOWNTO 0); 
+    
+    rx_src_out_arr   : OUT t_dp_sosi_arr(g_nof_channels-1 DOWNTO 0);      -- 64 bit data @ clk_156
+    rx_src_in_arr    : IN  t_dp_siso_arr(g_nof_channels-1 DOWNTO 0);
+    
+    -- Serial
+    serial_tx_arr    : OUT STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);
+    serial_rx_arr    : IN  STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0)
+  );
+  END COMPONENT;
+
 END tech_eth_10g_component_pkg;
 
 PACKAGE BODY tech_eth_10g_component_pkg IS
diff --git a/libraries/technology/fifo/hdllib.cfg b/libraries/technology/fifo/hdllib.cfg
index 94cd2d59f246b344fd5019cf1b090247fd25468c..e8bd853aafbd62706a63a2e6daabdef02571149b 100644
--- a/libraries/technology/fifo/hdllib.cfg
+++ b/libraries/technology/fifo/hdllib.cfg
@@ -1,6 +1,6 @@
 hdl_lib_name = tech_fifo
 hdl_library_clause_name = tech_fifo_lib
-hdl_lib_uses_synth = technology ip_stratixiv_fifo ip_arria10_fifo ip_arria10_e3sge3_fifo ip_arria10_e1sg_fifo
+hdl_lib_uses_synth = technology ip_stratixiv_fifo ip_arria10_fifo ip_arria10_e3sge3_fifo ip_arria10_e1sg_fifo ip_arria10_e2sg_fifo
 hdl_lib_uses_sim = 
 hdl_lib_technology = 
 hdl_lib_disclose_library_clause_names =
@@ -8,6 +8,7 @@ hdl_lib_disclose_library_clause_names =
     ip_arria10_fifo        ip_arria10_fifo_lib     
     ip_arria10_e3sge3_fifo ip_arria10_e3sge3_fifo_lib
     ip_arria10_e1sg_fifo   ip_arria10_e1sg_fifo_lib
+    ip_arria10_e2sg_fifo   ip_arria10_e2sg_fifo_lib
 
 synth_files =
     tech_fifo_component_pkg.vhd
diff --git a/libraries/technology/fifo/tech_fifo_component_pkg.vhd b/libraries/technology/fifo/tech_fifo_component_pkg.vhd
index 7ba288c714efa0bcbac4916579be70c7c322c08d..f325b78e7b904474735804721fbd1ddf1435034f 100644
--- a/libraries/technology/fifo/tech_fifo_component_pkg.vhd
+++ b/libraries/technology/fifo/tech_fifo_component_pkg.vhd
@@ -287,5 +287,70 @@ PACKAGE tech_fifo_component_pkg IS
   );
   END COMPONENT;
   
+   -----------------------------------------------------------------------------
+  -- ip_arria10_e2sg
+  -----------------------------------------------------------------------------
+  
+  COMPONENT ip_arria10_e2sg_fifo_sc IS
+  GENERIC (
+    g_use_eab   : STRING := "ON";
+    g_dat_w     : NATURAL := 20;
+    g_nof_words : NATURAL := 1024
+  );
+  PORT (
+    aclr    : IN STD_LOGIC ;
+    clock   : IN STD_LOGIC ;
+    data    : IN STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+    rdreq   : IN STD_LOGIC ;
+    wrreq   : IN STD_LOGIC ;
+    empty   : OUT STD_LOGIC ;
+    full    : OUT STD_LOGIC ;
+    q       : OUT STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0) ;
+    usedw   : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0)
+  );
+  END COMPONENT;
+
+  COMPONENT ip_arria10_e2sg_fifo_dc IS
+  GENERIC (
+    g_use_eab   : STRING := "ON";
+    g_dat_w     : NATURAL := 20;
+    g_nof_words : NATURAL := 1024
+  );
+  PORT (
+    aclr    : IN STD_LOGIC  := '0';
+    data    : IN STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+    rdclk   : IN STD_LOGIC ;
+    rdreq   : IN STD_LOGIC ;
+    wrclk   : IN STD_LOGIC ;
+    wrreq   : IN STD_LOGIC ;
+    q       : OUT STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+    rdempty : OUT STD_LOGIC ;
+    rdusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0);
+    wrfull  : OUT STD_LOGIC ;
+    wrusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0)
+  );
+  END COMPONENT;
+  
+  COMPONENT ip_arria10_e2sg_fifo_dc_mixed_widths IS
+  GENERIC (
+    g_nof_words : NATURAL := 1024;  -- FIFO size in nof wr_dat words
+    g_wrdat_w   : NATURAL := 20;
+    g_rddat_w   : NATURAL := 10
+  );
+  PORT (
+    aclr    : IN STD_LOGIC  := '0';
+    data    : IN STD_LOGIC_VECTOR (g_wrdat_w-1 DOWNTO 0);
+    rdclk   : IN STD_LOGIC ;
+    rdreq   : IN STD_LOGIC ;
+    wrclk   : IN STD_LOGIC ;
+    wrreq   : IN STD_LOGIC ;
+    q       : OUT STD_LOGIC_VECTOR (g_rddat_w-1 DOWNTO 0);
+    rdempty : OUT STD_LOGIC ;
+    rdusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words*g_wrdat_w/g_rddat_w)-1 DOWNTO 0);
+    wrfull  : OUT STD_LOGIC ;
+    wrusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0)
+  );
+  END COMPONENT;
   
+ 
 END tech_fifo_component_pkg;
diff --git a/libraries/technology/fifo/tech_fifo_dc.vhd b/libraries/technology/fifo/tech_fifo_dc.vhd
index f51d503dbfebdbaece3f92601779d14866bf7309..997612ba611b5575ab2bd8c2e1a29d084a4275c2 100644
--- a/libraries/technology/fifo/tech_fifo_dc.vhd
+++ b/libraries/technology/fifo/tech_fifo_dc.vhd
@@ -30,6 +30,7 @@ LIBRARY ip_stratixiv_fifo_lib;
 LIBRARY ip_arria10_fifo_lib;
 LIBRARY ip_arria10_e3sge3_fifo_lib;
 LIBRARY ip_arria10_e1sg_fifo_lib;
+LIBRARY ip_arria10_e2sg_fifo_lib;
 
 ENTITY tech_fifo_dc IS
   GENERIC (
@@ -82,4 +83,10 @@ BEGIN
     PORT MAP (aclr, data, rdclk, rdreq, wrclk, wrreq, q, rdempty, rdusedw, wrfull, wrusedw);
   END GENERATE;
 
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+    u0 : ip_arria10_e2sg_fifo_dc
+    GENERIC MAP (g_use_eab, g_dat_w, g_nof_words)
+    PORT MAP (aclr, data, rdclk, rdreq, wrclk, wrreq, q, rdempty, rdusedw, wrfull, wrusedw);
+  END GENERATE;
+
 END ARCHITECTURE;
diff --git a/libraries/technology/fifo/tech_fifo_dc_mixed_widths.vhd b/libraries/technology/fifo/tech_fifo_dc_mixed_widths.vhd
index d1219d60eb6918c81d9eafb59bc6b874499646c4..5aba78979bb35ac2b70cc65d9dca8064553e93b0 100644
--- a/libraries/technology/fifo/tech_fifo_dc_mixed_widths.vhd
+++ b/libraries/technology/fifo/tech_fifo_dc_mixed_widths.vhd
@@ -30,6 +30,7 @@ LIBRARY ip_stratixiv_fifo_lib;
 LIBRARY ip_arria10_fifo_lib;
 LIBRARY ip_arria10_e3sge3_fifo_lib;
 LIBRARY ip_arria10_e1sg_fifo_lib;
+LIBRARY ip_arria10_e2sg_fifo_lib;
 
 ENTITY tech_fifo_dc_mixed_widths IS
   GENERIC (
@@ -81,5 +82,11 @@ BEGIN
     GENERIC MAP (g_nof_words, g_wrdat_w, g_rddat_w)
     PORT MAP (aclr, data, rdclk, rdreq, wrclk, wrreq, q, rdempty, rdusedw, wrfull, wrusedw);
   END GENERATE;
-  
+ 
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+    u0 : ip_arria10_e2sg_fifo_dc_mixed_widths
+    GENERIC MAP (g_nof_words, g_wrdat_w, g_rddat_w)
+    PORT MAP (aclr, data, rdclk, rdreq, wrclk, wrreq, q, rdempty, rdusedw, wrfull, wrusedw);
+  END GENERATE;
+ 
 END ARCHITECTURE;
diff --git a/libraries/technology/fifo/tech_fifo_sc.vhd b/libraries/technology/fifo/tech_fifo_sc.vhd
index 88fae12daf892f4b2c0d3480d3eca99b4375f643..4e95260d01e30f918700c8e5ebcd3a07ddadc44c 100644
--- a/libraries/technology/fifo/tech_fifo_sc.vhd
+++ b/libraries/technology/fifo/tech_fifo_sc.vhd
@@ -30,6 +30,7 @@ LIBRARY ip_stratixiv_fifo_lib;
 LIBRARY ip_arria10_fifo_lib;
 LIBRARY ip_arria10_e3sge3_fifo_lib;
 LIBRARY ip_arria10_e1sg_fifo_lib;
+LIBRARY ip_arria10_e2sg_fifo_lib;
 
 ENTITY tech_fifo_sc IS
   GENERIC (
@@ -79,5 +80,11 @@ BEGIN
     GENERIC MAP (g_use_eab, g_dat_w, g_nof_words)
     PORT MAP (aclr, clock, data, rdreq, wrreq, empty, full, q, usedw);
   END GENERATE;
+
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+    u0 : ip_arria10_e2sg_fifo_sc
+    GENERIC MAP (g_use_eab, g_dat_w, g_nof_words)
+    PORT MAP (aclr, clock, data, rdreq, wrreq, empty, full, q, usedw);
+  END GENERATE;
   
 END ARCHITECTURE;
diff --git a/libraries/technology/flash/hdllib.cfg b/libraries/technology/flash/hdllib.cfg
index bbb6a855c1ddd20f6665c5c715b41fbca0fc94b4..815d88851c3e84e7370e503ef7424b3fbbb59327 100644
--- a/libraries/technology/flash/hdllib.cfg
+++ b/libraries/technology/flash/hdllib.cfg
@@ -8,6 +8,8 @@ hdl_lib_uses_synth = technology
                      ip_arria10_e3sge3_remote_update
                      ip_arria10_e1sg_asmi_parallel # modelsim crashes when asmi_parallel ip is used(segmentation violation)
                      ip_arria10_e1sg_remote_update
+                     ip_arria10_e2sg_asmi_parallel 
+                     ip_arria10_e2sg_remote_update
 hdl_lib_uses_sim = 
 hdl_lib_technology = 
 hdl_lib_disclose_library_clause_names =
@@ -18,6 +20,8 @@ hdl_lib_disclose_library_clause_names =
     ip_arria10_e3sge3_remote_update ip_arria10_e3sge3_remote_update_altera_remote_update_151
     ip_arria10_e1sg_asmi_parallel   ip_arria10_e1sg_asmi_parallel_altera_asmi_parallel_180
     ip_arria10_e1sg_remote_update   ip_arria10_e1sg_remote_update_altera_remote_update_180
+    ip_arria10_e2sg_asmi_parallel   ip_arria10_e1sg_asmi_parallel_altera_asmi_parallel_194
+    ip_arria10_e2sg_remote_update   ip_arria10_e1sg_remote_update_altera_remote_update_194
 
     
 synth_files =
diff --git a/libraries/technology/flash/tech_flash_asmi_parallel.vhd b/libraries/technology/flash/tech_flash_asmi_parallel.vhd
index a546364ef186e3b588e1b9e605a909d6f61b772b..a6ed43c72f3af49a401d59108126bbcd7dc64333 100644
--- a/libraries/technology/flash/tech_flash_asmi_parallel.vhd
+++ b/libraries/technology/flash/tech_flash_asmi_parallel.vhd
@@ -89,4 +89,10 @@ BEGIN
     PORT MAP (addr, clkin, datain, rden, read, sector_erase, shift_bytes, wren, write, busy, data_valid, dataout, illegal_erase, illegal_write, reset, sce, en4b_addr);
   END GENERATE;
 
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+    u0 : ip_arria10_e2sg_asmi_parallel
+    PORT MAP (addr, clkin, datain, rden, read, sector_erase, shift_bytes, wren, write, busy, data_valid, dataout, illegal_erase, illegal_write, reset, sce, en4b_addr);
+  END GENERATE;
+
+
 END ARCHITECTURE;
diff --git a/libraries/technology/flash/tech_flash_component_pkg.vhd b/libraries/technology/flash/tech_flash_component_pkg.vhd
index 240ada1756f6301a1cfd328f0736c12638bdf918..5839bf349d3bc1e3b98b8cdcd257903470d6e4dd 100644
--- a/libraries/technology/flash/tech_flash_component_pkg.vhd
+++ b/libraries/technology/flash/tech_flash_component_pkg.vhd
@@ -195,6 +195,47 @@ PACKAGE tech_flash_component_pkg IS
   );
   end component ip_arria10_e1sg_remote_update;
 
+  -----------------------------------------------------------------------------
+  -- ip_arria10_e2sg
+  -----------------------------------------------------------------------------
+
+  component ip_arria10_e2sg_asmi_parallel is
+  port (
+    addr          : in  std_logic_vector(31 downto 0);
+    clkin         : in  std_logic;
+    datain        : in  std_logic_vector(7 downto 0); 
+    rden          : in  std_logic;
+    read          : in  std_logic;
+    sector_erase  : in  std_logic;
+    shift_bytes   : in  std_logic;
+    wren          : in  std_logic;
+    write         : in  std_logic;
+    busy          : out std_logic;
+    data_valid    : out std_logic;
+    dataout       : out std_logic_vector(7 downto 0);
+    illegal_erase : out std_logic;
+    illegal_write : out std_logic;
+    reset         : in  std_logic; 
+    sce           : in  std_logic_vector(2 downto 0);
+    en4b_addr     : in  std_logic
+  );
+  end component ip_arria10_e2sg_asmi_parallel;
+
+  component ip_arria10_e2sg_remote_update is
+  port (
+    clock       : in  std_logic;
+    data_in     : in  std_logic_vector(31 downto 0);
+    param       : in  std_logic_vector(2 downto 0);
+    read_param  : in  std_logic;
+    reconfig    : in  std_logic;
+    reset       : in  std_logic; 
+    reset_timer : in  std_logic; 
+    write_param : in  std_logic; 
+    busy        : out std_logic; 
+    data_out    : out std_logic_vector(31 downto 0)
+  );
+  end component ip_arria10_e2sg_remote_update;
+
   function tech_flash_addr_w( technology: in integer ) return integer;
   function tech_flash_data_w( technology: in integer ) return integer;
 
@@ -210,7 +251,7 @@ package body tech_flash_component_pkg is
     if technology = c_tech_arria10 then
         return 32;
     end if;		  
-    if technology = c_tech_arria10_e3sge3 or technology = c_tech_arria10_e1sg then
+    if technology = c_tech_arria10_e3sge3 or technology = c_tech_arria10_e1sg or technology = c_tech_arria10_e2sg then
         return 32;
     end if;		  
   end;
@@ -223,7 +264,7 @@ package body tech_flash_component_pkg is
     if technology = c_tech_arria10 then
         return 32;
     end if;		  
-    if technology = c_tech_arria10_e3sge3 or technology = c_tech_arria10_e1sg then
+    if technology = c_tech_arria10_e3sge3 or technology = c_tech_arria10_e1sg or technology = c_tech_arria10_e2sg then
         return 32;
     end if;		  
   end;
diff --git a/libraries/technology/flash/tech_flash_remote_update.vhd b/libraries/technology/flash/tech_flash_remote_update.vhd
index 8c54bb8882de34ac5f1ed5d1be9dbd2f57396f88..3933fc69e22d7c4e827400899b738448dfd72d2d 100644
--- a/libraries/technology/flash/tech_flash_remote_update.vhd
+++ b/libraries/technology/flash/tech_flash_remote_update.vhd
@@ -32,6 +32,7 @@ LIBRARY ip_stratixiv_flash_lib;
 LIBRARY ip_arria10_remote_update_altera_remote_update_150;
 LIBRARY ip_arria10_e3sge3_remote_update_altera_remote_update_151;
 LIBRARY ip_arria10_e1sg_remote_update_altera_remote_update_180;
+LIBRARY ip_arria10_e2sg_remote_update_altera_remote_update_194;
 
 ENTITY tech_flash_remote_update IS
   GENERIC (
@@ -79,4 +80,9 @@ BEGIN
     PORT MAP (clock, data_in, param, read_param, reconfig, reset, reset_timer, write_param, busy, data_out);
   END GENERATE;
 
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+    u0 : ip_arria10_e2sg_remote_update
+    PORT MAP (clock, data_in, param, read_param, reconfig, reset, reset_timer, write_param, busy, data_out);
+  END GENERATE;
+
 END ARCHITECTURE;
diff --git a/libraries/technology/fpga_temp_sens/hdllib.cfg b/libraries/technology/fpga_temp_sens/hdllib.cfg
index 97baab475173f09c03d28879b67dc3f1d4685518..c9708019d4bcbec28f2a4ee2847604941a5f08a1 100644
--- a/libraries/technology/fpga_temp_sens/hdllib.cfg
+++ b/libraries/technology/fpga_temp_sens/hdllib.cfg
@@ -1,12 +1,14 @@
 hdl_lib_name = tech_fpga_temp_sens
 hdl_library_clause_name = tech_fpga_temp_sens_lib
-hdl_lib_uses_synth = technology common ip_arria10_temp_sense ip_arria10_e3sge3_temp_sense ip_arria10_e1sg_temp_sense
+hdl_lib_uses_synth = technology common ip_arria10_temp_sense ip_arria10_e3sge3_temp_sense ip_arria10_e1sg_temp_sense 
+                     ip_arria10_e2sg_temp_sense
 hdl_lib_uses_sim = 
 hdl_lib_technology = 
 hdl_lib_disclose_library_clause_names =
     ip_arria10_temp_sense        ip_arria10_temp_sense_altera_temp_sense_150
     ip_arria10_e3sge3_temp_sense ip_arria10_e3sge3_temp_sense_altera_temp_sense_151
     ip_arria10_e1sg_temp_sense   ip_arria10_e1sg_temp_sense_altera_temp_sense_180
+    ip_arria10_e2sg_temp_sense   ip_arria10_e2sg_temp_sense_altera_temp_sense_194
 
 synth_files =
     tech_fpga_temp_sens_component_pkg.vhd
diff --git a/libraries/technology/fpga_temp_sens/tech_fpga_temp_sens.vhd b/libraries/technology/fpga_temp_sens/tech_fpga_temp_sens.vhd
index 749310fa3d6bb0ad3dc51d1aaa1abd880551d96c..f9e6e9d018e362abf15b479cde2a71448d10905a 100644
--- a/libraries/technology/fpga_temp_sens/tech_fpga_temp_sens.vhd
+++ b/libraries/technology/fpga_temp_sens/tech_fpga_temp_sens.vhd
@@ -30,6 +30,7 @@ USE technology_lib.technology_select_pkg.ALL;
 LIBRARY ip_arria10_temp_sense_altera_temp_sense_150;
 LIBRARY ip_arria10_e3sge3_temp_sense_altera_temp_sense_151;
 LIBRARY ip_arria10_e1sg_temp_sense_altera_temp_sense_180;
+LIBRARY ip_arria10_e2sg_temp_sense_altera_temp_sense_194;
 
 
 ENTITY tech_fpga_temp_sens IS
@@ -78,4 +79,14 @@ BEGIN
 		);
   END GENERATE;
 
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+      u0 : ip_arria10_e2sg_temp_sense
+        PORT MAP (
+            corectl => corectl, -- corectl.corectl
+            reset   => reset,   --   reset.reset
+            tempout => tempout, -- tempout.tempout
+            eoc     => eoc      --     eoc.eoc
+        );
+  END GENERATE;
+
 END ARCHITECTURE;
diff --git a/libraries/technology/fpga_temp_sens/tech_fpga_temp_sens_component_pkg.vhd b/libraries/technology/fpga_temp_sens/tech_fpga_temp_sens_component_pkg.vhd
index 9fa8feb814cb86a1aa5f0a645d0902023adb592f..aaeb4e4523af10f9600c40512d96a3ddd642e825 100644
--- a/libraries/technology/fpga_temp_sens/tech_fpga_temp_sens_component_pkg.vhd
+++ b/libraries/technology/fpga_temp_sens/tech_fpga_temp_sens_component_pkg.vhd
@@ -53,5 +53,14 @@ PACKAGE tech_fpga_temp_sens_component_pkg IS
   	);
   END COMPONENT;
 
+  COMPONENT ip_arria10_e2sg_temp_sense IS
+      PORT (
+          corectl : IN  STD_LOGIC := '0';            -- corectl.corectl
+          eoc     : OUT STD_LOGIC;                   -- eoc.eoc
+          reset   : IN  STD_LOGIC := '0';            -- reset.reset
+          tempout : OUT STD_LOGIC_VECTOR(9 DOWNTO 0) -- tempout.tempout
+      );
+  END COMPONENT;
+
 END tech_fpga_temp_sens_component_pkg;
 
diff --git a/libraries/technology/fpga_voltage_sens/hdllib.cfg b/libraries/technology/fpga_voltage_sens/hdllib.cfg
index a9c9d063c01f162f1d8a2bdb6406bfa6bcf7a68b..1e6af4d6676b532c8ee83f6a4b99cf86cd6c015f 100644
--- a/libraries/technology/fpga_voltage_sens/hdllib.cfg
+++ b/libraries/technology/fpga_voltage_sens/hdllib.cfg
@@ -1,12 +1,14 @@
 hdl_lib_name = tech_fpga_voltage_sens
 hdl_library_clause_name = tech_fpga_voltage_sens_lib
 hdl_lib_uses_synth = technology common ip_arria10_voltage_sense ip_arria10_e3sge3_voltage_sense ip_arria10_e1sg_voltage_sense
+                     ip_arria10_e2sg_voltage_sense
 hdl_lib_uses_sim = 
 hdl_lib_technology = 
 hdl_lib_disclose_library_clause_names =            
     ip_arria10_voltage_sense         ip_arria10_voltage_sense_altera_voltage_sense_150
     ip_arria10_e3sge3_voltage_sense  ip_arria10_e3sge3_voltage_sense_altera_voltage_sense_151
     ip_arria10_e1sg_voltage_sense    ip_arria10_e1sg_voltage_sense_altera_voltage_sense_180
+    ip_arria10_e2sg_voltage_sense    ip_arria10_e2sg_voltage_sense_altera_voltage_sense_194
 
 synth_files =
     tech_fpga_voltage_sens_component_pkg.vhd
diff --git a/libraries/technology/fpga_voltage_sens/tech_fpga_voltage_sens.vhd b/libraries/technology/fpga_voltage_sens/tech_fpga_voltage_sens.vhd
index f16657aba07348b85c295e2878517ff53c47ca47..efdfb2b45b5611d1f0c5f791ff867c06114cc106 100644
--- a/libraries/technology/fpga_voltage_sens/tech_fpga_voltage_sens.vhd
+++ b/libraries/technology/fpga_voltage_sens/tech_fpga_voltage_sens.vhd
@@ -29,6 +29,7 @@ USE technology_lib.technology_select_pkg.ALL;
 LIBRARY ip_arria10_voltage_sense_altera_voltage_sense_150;
 LIBRARY ip_arria10_e3sge3_voltage_sense_altera_voltage_sense_151;
 LIBRARY ip_arria10_e1sg_voltage_sense_altera_voltage_sense_180;
+LIBRARY ip_arria10_e2sg_voltage_sense_altera_voltage_sense_194;
 
 
 ENTITY tech_fpga_voltage_sens IS
@@ -113,4 +114,23 @@ BEGIN
       );
   END GENERATE;
 
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+    u0 : ip_arria10_e2sg_voltage_sense
+      PORT MAP (
+        clock_clk                  => clock_clk,                  
+        reset_sink_reset           => reset_sink_reset,           
+        controller_csr_address     => controller_csr_address,  
+        controller_csr_read        => controller_csr_read,    
+        controller_csr_write       => controller_csr_write,       
+        controller_csr_writedata   => controller_csr_writedata,   
+        controller_csr_readdata    => controller_csr_readdata,    
+        sample_store_csr_address   => sample_store_csr_address,   
+        sample_store_csr_read      => sample_store_csr_read,      
+        sample_store_csr_write     => sample_store_csr_write,     
+        sample_store_csr_writedata => sample_store_csr_writedata, 
+        sample_store_csr_readdata  => sample_store_csr_readdata,  
+        sample_store_irq_irq       => sample_store_irq_irq        
+      );
+  END GENERATE;
+
 END ARCHITECTURE;
diff --git a/libraries/technology/fpga_voltage_sens/tech_fpga_voltage_sens_component_pkg.vhd b/libraries/technology/fpga_voltage_sens/tech_fpga_voltage_sens_component_pkg.vhd
index 586f694dca15b23e8143f2f8409777f6118e6f57..040ccb3aa9eda337ee12cab003863a49bf3e5dc3 100644
--- a/libraries/technology/fpga_voltage_sens/tech_fpga_voltage_sens_component_pkg.vhd
+++ b/libraries/technology/fpga_voltage_sens/tech_fpga_voltage_sens_component_pkg.vhd
@@ -80,5 +80,23 @@ PACKAGE tech_fpga_voltage_sens_component_pkg IS
   	);
   END COMPONENT;
 
+  COMPONENT ip_arria10_e2sg_voltage_sense IS
+      PORT (
+          clock_clk                    : in  STD_LOGIC := '0';            
+          reset_sink_reset             : in  STD_LOGIC;                   
+          controller_csr_address       : in  STD_LOGIC := '0';           
+          controller_csr_read          : in  STD_LOGIC := '0';           
+          controller_csr_write         : in  STD_LOGIC := '0';           
+          controller_csr_writedata     : in  STD_LOGIC_VECTOR(31 downto 0) := (others => '0');     
+          controller_csr_readdata      : out STD_LOGIC_VECTOR(31 downto 0) := (others => '0');     
+          sample_store_csr_address     : in  STD_LOGIC_VECTOR(3 downto 0) := "0000";           
+          sample_store_csr_read        : in  STD_LOGIC := '0';           
+          sample_store_csr_write       : in  STD_LOGIC := '0';           
+          sample_store_csr_writedata   : in  STD_LOGIC_VECTOR(31 downto 0) := (others => '0');     
+          sample_store_csr_readdata      : out STD_LOGIC_VECTOR(31 downto 0) := (others => '0');     
+          sample_store_irq_irq         : out STD_LOGIC
+      );
+  END COMPONENT;
+
 END tech_fpga_voltage_sens_component_pkg;
 
diff --git a/libraries/technology/fractional_pll/hdllib.cfg b/libraries/technology/fractional_pll/hdllib.cfg
index 4814f9b5de2f475328906e2e8244a4a625d963f5..eeea28b0f5b2140227054bcd22d65c13f8419042 100644
--- a/libraries/technology/fractional_pll/hdllib.cfg
+++ b/libraries/technology/fractional_pll/hdllib.cfg
@@ -1,8 +1,10 @@
 hdl_lib_name = tech_fractional_pll
 hdl_library_clause_name = tech_fractional_pll_lib
 hdl_lib_uses_synth = technology common
-hdl_lib_uses_ip = ip_arria10_fractional_pll_clk200 ip_arria10_e3sge3_fractional_pll_clk200 ip_arria10_e1sg_fractional_pll_clk200
-                  ip_arria10_fractional_pll_clk125 ip_arria10_e3sge3_fractional_pll_clk125 ip_arria10_e1sg_fractional_pll_clk125
+hdl_lib_uses_ip = ip_arria10_fractional_pll_clk200       ip_arria10_e3sge3_fractional_pll_clk200 
+                  ip_arria10_e1sg_fractional_pll_clk200  ip_arria10_e2sg_fractional_pll_clk200
+                  ip_arria10_fractional_pll_clk125       ip_arria10_e3sge3_fractional_pll_clk125 
+                  ip_arria10_e1sg_fractional_pll_clk125  ip_arria10_e2sg_fractional_pll_clk125
 hdl_lib_uses_sim = 
 hdl_lib_technology = 
 hdl_lib_disclose_library_clause_names =
@@ -12,6 +14,8 @@ hdl_lib_disclose_library_clause_names =
     ip_arria10_e3sge3_fractional_pll_clk125  ip_arria10_e3sge3_fractional_pll_clk125_altera_xcvr_fpll_a10_151
     ip_arria10_e1sg_fractional_pll_clk200    ip_arria10_e1sg_fractional_pll_clk200_altera_xcvr_fpll_a10_180
     ip_arria10_e1sg_fractional_pll_clk125    ip_arria10_e1sg_fractional_pll_clk125_altera_xcvr_fpll_a10_180
+    ip_arria10_e2sg_fractional_pll_clk200    ip_arria10_e2sg_fractional_pll_clk200_altera_xcvr_fpll_a10_194
+    ip_arria10_e2sg_fractional_pll_clk125    ip_arria10_e2sg_fractional_pll_clk125_altera_xcvr_fpll_a10_194
     
 synth_files =
     tech_fractional_pll_component_pkg.vhd
diff --git a/libraries/technology/fractional_pll/tech_fractional_pll_clk125.vhd b/libraries/technology/fractional_pll/tech_fractional_pll_clk125.vhd
index 287a6098d48ea5d2e847716cca7f7592a8824161..1234aff5b89da14bbf68870eb8f70f48e78caf2e 100644
--- a/libraries/technology/fractional_pll/tech_fractional_pll_clk125.vhd
+++ b/libraries/technology/fractional_pll/tech_fractional_pll_clk125.vhd
@@ -29,6 +29,7 @@ USE technology_lib.technology_select_pkg.ALL;
 LIBRARY ip_arria10_fractional_pll_clk125_altera_xcvr_fpll_a10_150;
 LIBRARY ip_arria10_e3sge3_fractional_pll_clk125_altera_xcvr_fpll_a10_151;
 LIBRARY ip_arria10_e1sg_fractional_pll_clk125_altera_xcvr_fpll_a10_180;
+LIBRARY ip_arria10_e2sg_fractional_pll_clk125_altera_xcvr_fpll_a10_194;
 
 ENTITY tech_fractional_pll_clk125 IS
   GENERIC (
@@ -91,4 +92,18 @@ BEGIN
     );
   END GENERATE;
 
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+    u0 : ip_arria10_e2sg_fractional_pll_clk125
+    PORT MAP (
+          outclk0       => c0,            --       outclk0.clk
+          outclk1       => c1,            --       outclk1.clk
+          outclk2       => c2,            --       outclk2.clk
+          outclk3       => c3,            --       outclk3.clk
+          pll_cal_busy  => OPEN,          --  pll_cal_busy.pll_cal_busy
+          pll_locked    => locked,        --    pll_locked.pll_locked
+          pll_powerdown => areset,        -- pll_powerdown.pll_powerdown
+          pll_refclk0   => inclk0         --   pll_refclk0.clk
+    );
+  END GENERATE;
+
 END ARCHITECTURE;
diff --git a/libraries/technology/fractional_pll/tech_fractional_pll_clk200.vhd b/libraries/technology/fractional_pll/tech_fractional_pll_clk200.vhd
index 4a986c4c47ed2d40b2cafb367bbeaa372e76a45e..5ad3783021cb9188d8592e766c07be0532fe68fd 100644
--- a/libraries/technology/fractional_pll/tech_fractional_pll_clk200.vhd
+++ b/libraries/technology/fractional_pll/tech_fractional_pll_clk200.vhd
@@ -29,6 +29,7 @@ USE technology_lib.technology_select_pkg.ALL;
 LIBRARY ip_arria10_fractional_pll_clk200_altera_xcvr_fpll_a10_150;
 LIBRARY ip_arria10_e3sge3_fractional_pll_clk200_altera_xcvr_fpll_a10_151;
 LIBRARY ip_arria10_e1sg_fractional_pll_clk200_altera_xcvr_fpll_a10_180;
+LIBRARY ip_arria10_e2sg_fractional_pll_clk200_altera_xcvr_fpll_a10_194;
 
 ENTITY tech_fractional_pll_clk200 IS
   GENERIC (
@@ -87,5 +88,18 @@ BEGIN
     );
   END GENERATE;
 
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+    u0 : ip_arria10_e2sg_fractional_pll_clk200
+    PORT MAP (
+          outclk0       => c0,            --       outclk0.clk
+          outclk1       => c1,            --       outclk1.clk
+          outclk2       => c2,            --       outclk2.clk
+          pll_cal_busy  => OPEN,          --  pll_cal_busy.pll_cal_busy
+          pll_locked    => locked,        --    pll_locked.pll_locked
+          pll_powerdown => areset,        -- pll_powerdown.pll_powerdown
+          pll_refclk0   => inclk0         --   pll_refclk0.clk
+    );
+  END GENERATE;
+
 END ARCHITECTURE;
 
diff --git a/libraries/technology/fractional_pll/tech_fractional_pll_component_pkg.vhd b/libraries/technology/fractional_pll/tech_fractional_pll_component_pkg.vhd
index d1b5292366d92230113ebafba396acd58c5c828f..f711f12c62daa9214f9652c2f42517d1139b46e2 100644
--- a/libraries/technology/fractional_pll/tech_fractional_pll_component_pkg.vhd
+++ b/libraries/technology/fractional_pll/tech_fractional_pll_component_pkg.vhd
@@ -118,6 +118,37 @@ PACKAGE tech_fractional_pll_component_pkg IS
     pll_refclk0   : in  std_logic := '0'  --   pll_refclk0.clk
   );
   END COMPONENT;
-  
+ 
+  -----------------------------------------------------------------------------
+  -- ip_arria10_e2sg
+  -----------------------------------------------------------------------------
+    
+  COMPONENT ip_arria10_e2sg_fractional_pll_clk200 IS
+  PORT
+  (
+    outclk0       : out std_logic;        --       outclk0.clk
+    outclk1       : out std_logic;        --       outclk1.clk
+    outclk2       : out std_logic;        --       outclk2.clk
+    pll_cal_busy  : out std_logic;        --  pll_cal_busy.pll_cal_busy
+    pll_locked    : out std_logic;        --    pll_locked.pll_locked
+    pll_powerdown : in  std_logic := '0'; -- pll_powerdown.pll_powerdown
+    pll_refclk0   : in  std_logic := '0'  --   pll_refclk0.clk
+  );
+  END COMPONENT;
+
+  COMPONENT ip_arria10_e2sg_fractional_pll_clk125 IS
+  PORT
+  (
+    outclk0       : out std_logic;        --       outclk0.clk
+    outclk1       : out std_logic;        --       outclk1.clk
+    outclk2       : out std_logic;        --       outclk2.clk
+    outclk3       : out std_logic;        --       outclk2.clk
+    pll_cal_busy  : out std_logic;        --  pll_cal_busy.pll_cal_busy
+    pll_locked    : out std_logic;        --    pll_locked.pll_locked
+    pll_powerdown : in  std_logic := '0'; -- pll_powerdown.pll_powerdown
+    pll_refclk0   : in  std_logic := '0'  --   pll_refclk0.clk
+  );
+  END COMPONENT;
+ 
 END tech_fractional_pll_component_pkg;
 
diff --git a/libraries/technology/iobuf/hdllib.cfg b/libraries/technology/iobuf/hdllib.cfg
index c6b41564dead3241c71e6446f6dcc5bccde24b40..90c8611b009eb63a3bb5749f9fd75afeee2ecddc 100644
--- a/libraries/technology/iobuf/hdllib.cfg
+++ b/libraries/technology/iobuf/hdllib.cfg
@@ -1,6 +1,6 @@
 hdl_lib_name = tech_iobuf
 hdl_library_clause_name = tech_iobuf_lib
-hdl_lib_uses_synth = technology ip_stratixiv_ddio ip_arria10_ddio ip_arria10_e3sge3_ddio ip_arria10_e1sg_ddio
+hdl_lib_uses_synth = technology ip_stratixiv_ddio ip_arria10_ddio ip_arria10_e3sge3_ddio ip_arria10_e1sg_ddio ip_arria10_e2sg_ddio
 hdl_lib_uses_sim = 
 hdl_lib_technology = 
 hdl_lib_disclose_library_clause_names =
@@ -8,6 +8,7 @@ hdl_lib_disclose_library_clause_names =
     ip_arria10_ddio         ip_arria10_ddio_lib
     ip_arria10_e3sge3_ddio  ip_arria10_e3sge3_ddio_lib
     ip_arria10_e1sg_ddio    ip_arria10_e1sg_ddio_lib
+    ip_arria10_e2sg_ddio    ip_arria10_e2sg_ddio_lib
 
 synth_files =
     tech_iobuf_component_pkg.vhd
diff --git a/libraries/technology/iobuf/tech_iobuf_component_pkg.vhd b/libraries/technology/iobuf/tech_iobuf_component_pkg.vhd
index 115d9789fdc7a051d52c1c773322bb4dc84126e6..77849a784102d1e407eda20e7aa7764bb379255a 100644
--- a/libraries/technology/iobuf/tech_iobuf_component_pkg.vhd
+++ b/libraries/technology/iobuf/tech_iobuf_component_pkg.vhd
@@ -157,4 +157,36 @@ PACKAGE tech_iobuf_component_pkg IS
   );
   END COMPONENT;
   
+  -----------------------------------------------------------------------------
+  -- ip_arria10_e2sg
+  -----------------------------------------------------------------------------
+  
+  COMPONENT ip_arria10_e2sg_ddio_in IS
+  GENERIC (
+    g_width : NATURAL := 1
+  );
+  PORT (
+    in_dat      : IN  STD_LOGIC_VECTOR(g_width-1 DOWNTO 0);
+    in_clk      : IN  STD_LOGIC;
+    in_clk_en   : IN  STD_LOGIC := '1';   -- Not Connected
+    rst         : IN  STD_LOGIC := '0';
+    out_dat_hi  : OUT STD_LOGIC_VECTOR(g_width-1 DOWNTO 0);
+    out_dat_lo  : OUT STD_LOGIC_VECTOR(g_width-1 DOWNTO 0)
+  );
+  END COMPONENT;
+  
+  COMPONENT ip_arria10_e2sg_ddio_out IS
+  GENERIC(
+    g_width : NATURAL := 1
+  );
+  PORT (
+    rst        : IN   STD_LOGIC := '0';
+    in_clk     : IN   STD_LOGIC;
+    in_clk_en  : IN   STD_LOGIC := '1';   -- Not Connected
+    in_dat_hi  : IN   STD_LOGIC_VECTOR(g_width-1 DOWNTO 0);
+    in_dat_lo  : IN   STD_LOGIC_VECTOR(g_width-1 DOWNTO 0);
+    out_dat    : OUT  STD_LOGIC_VECTOR(g_width-1 DOWNTO 0)
+  );
+  END COMPONENT;
+
 END tech_iobuf_component_pkg;
diff --git a/libraries/technology/iobuf/tech_iobuf_ddio_in.vhd b/libraries/technology/iobuf/tech_iobuf_ddio_in.vhd
index 92e49a5c0bc12e222bae4bbfb69a87f419852dcd..75a38114590dedfdb33605d18b2a337fed584986 100644
--- a/libraries/technology/iobuf/tech_iobuf_ddio_in.vhd
+++ b/libraries/technology/iobuf/tech_iobuf_ddio_in.vhd
@@ -30,6 +30,7 @@ LIBRARY ip_stratixiv_ddio_lib;
 LIBRARY ip_arria10_ddio_lib;
 LIBRARY ip_arria10_e3sge3_ddio_lib;
 LIBRARY ip_arria10_e1sg_ddio_lib;
+LIBRARY ip_arria10_e2sg_ddio_lib;
 
 ENTITY tech_iobuf_ddio_in IS
   GENERIC (
@@ -75,4 +76,10 @@ BEGIN
     PORT MAP (in_dat, in_clk, in_clk_en, rst, out_dat_hi, out_dat_lo);
   END GENERATE;
 
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+    u0 : ip_arria10_e2sg_ddio_in
+    GENERIC MAP (g_width)
+    PORT MAP (in_dat, in_clk, in_clk_en, rst, out_dat_hi, out_dat_lo);
+  END GENERATE;
+
 END ARCHITECTURE;
diff --git a/libraries/technology/iobuf/tech_iobuf_ddio_out.vhd b/libraries/technology/iobuf/tech_iobuf_ddio_out.vhd
index 2c4fe9e5812f6039635d46048d6183c04ec3d746..1547d4bd2c1386819e4209b9f4e8869f515fc6e4 100644
--- a/libraries/technology/iobuf/tech_iobuf_ddio_out.vhd
+++ b/libraries/technology/iobuf/tech_iobuf_ddio_out.vhd
@@ -30,6 +30,7 @@ LIBRARY ip_stratixiv_ddio_lib;
 LIBRARY ip_arria10_ddio_lib;
 LIBRARY ip_arria10_e3sge3_ddio_lib;
 LIBRARY ip_arria10_e1sg_ddio_lib;
+LIBRARY ip_arria10_e2sg_ddio_lib;
 
 ENTITY tech_iobuf_ddio_out IS
   GENERIC (
@@ -74,5 +75,11 @@ BEGIN
     GENERIC MAP (g_width)
     PORT MAP (rst, in_clk, in_clk_en, in_dat_hi, in_dat_lo, out_dat);
   END GENERATE;
-  
+ 
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+    u0 : ip_arria10_e2sg_ddio_out
+    GENERIC MAP (g_width)
+    PORT MAP (rst, in_clk, in_clk_en, in_dat_hi, in_dat_lo, out_dat);
+  END GENERATE;
+ 
 END ARCHITECTURE;
diff --git a/libraries/technology/ip_arria10_e1sg/jesd204b/hdllib.cfg b/libraries/technology/ip_arria10_e1sg/jesd204b/hdllib.cfg
index b5076ab14a20ef29f24a3e70731ca6404243532e..490c7856894a13b331814d24e3b19f0acfd3ad1e 100644
--- a/libraries/technology/ip_arria10_e1sg/jesd204b/hdllib.cfg
+++ b/libraries/technology/ip_arria10_e1sg/jesd204b/hdllib.cfg
@@ -20,9 +20,9 @@ quartus_qip_files =
 
 [generate_ip_libs]
 qsys-generate_ip_files = 
-    ip_arria10_e1sg_jesd204b_rx.qsys
-    ip_arria10_e1sg_jesd204b_rx_core_pll.qsys
-    ip_arria10_e1sg_jesd204b_rx_reset_seq.qsys
-    ip_arria10_e1sg_jesd204b_rx_xcvr_reset_control_12.qsys
+    ip_arria10_e1sg_jesd204b_rx.ip
+    ip_arria10_e1sg_jesd204b_rx_core_pll.ip
+    ip_arria10_e1sg_jesd204b_rx_reset_seq.ip
+    ip_arria10_e1sg_jesd204b_rx_xcvr_reset_control_12.ip
 
 
diff --git a/libraries/technology/ip_arria10_e1sg/jesd204b/ip_arria10_e1sg_jesd204b.vhd b/libraries/technology/ip_arria10_e1sg/jesd204b/ip_arria10_e1sg_jesd204b.vhd
index f569101a19408baa401175b599d86db44a3baeb8..fa5d74a806b9b8cc328b7481a8d747d0c8de2ad4 100644
--- a/libraries/technology/ip_arria10_e1sg/jesd204b/ip_arria10_e1sg_jesd204b.vhd
+++ b/libraries/technology/ip_arria10_e1sg/jesd204b/ip_arria10_e1sg_jesd204b.vhd
@@ -27,7 +27,8 @@
 --   
 --  
 
-LIBRARY IEEE, common_lib, dp_lib, technology_lib, ip_arria10_e1sg_jesd204b_rx, ip_arria10_e1sg_jesd204b_rx_reset_seq, ip_arria10_e1sg_jesd204b_rx_core_pll, ip_arria10_e1sg_jesd204b_rx_xcvr_reset_control_12;
+--LIBRARY IEEE, common_lib, dp_lib, technology_lib, ip_arria10_e1sg_jesd204b_rx, ip_arria10_e1sg_jesd204b_rx_reset_seq, ip_arria10_e1sg_jesd204b_rx_core_pll, ip_arria10_e1sg_jesd204b_rx_xcvr_reset_control_12;
+LIBRARY IEEE, common_lib, dp_lib, technology_lib, ip_arria10_e1sg_jesd204b_lib;
 USE IEEE.STD_LOGIC_1164.ALL;
 USE technology_lib.technology_pkg.ALL;
 USE common_lib.common_pkg.ALL;
@@ -157,7 +158,58 @@ ARCHITECTURE str OF ip_arria10_e1sg_jesd204b IS
 --    );
 --  end component ip_arria10_e1sg_jesd204b_rx;
 
-  component ip_arria10_e1sg_jesd204b_rx_core_pll_cmp is
+    component ip_arria10_e1sg_jesd204b_rx is
+    port (
+      alldev_lane_aligned        : in  std_logic                     := 'X';             -- export
+      csr_cf                     : out std_logic_vector(4 downto 0);                     -- export
+      csr_cs                     : out std_logic_vector(1 downto 0);                     -- export
+      csr_f                      : out std_logic_vector(7 downto 0);                     -- export
+      csr_hd                     : out std_logic;                                        -- export
+      csr_k                      : out std_logic_vector(4 downto 0);                     -- export
+      csr_l                      : out std_logic_vector(4 downto 0);                     -- export
+      csr_lane_powerdown         : out std_logic_vector(0 downto 0);                     -- export
+      csr_m                      : out std_logic_vector(7 downto 0);                     -- export
+      csr_n                      : out std_logic_vector(4 downto 0);                     -- export
+      csr_np                     : out std_logic_vector(4 downto 0);                     -- export
+      csr_rx_testmode            : out std_logic_vector(3 downto 0);                     -- export
+      csr_s                      : out std_logic_vector(4 downto 0);                     -- export
+      dev_lane_aligned           : out std_logic;                                        -- export
+      dev_sync_n                 : out std_logic;                                        -- export
+      jesd204_rx_avs_chipselect  : in  std_logic                     := 'X';             -- chipselect
+      jesd204_rx_avs_address     : in  std_logic_vector(7 downto 0)  := (others => 'X'); -- address
+      jesd204_rx_avs_read        : in  std_logic                     := 'X';             -- read
+      jesd204_rx_avs_readdata    : out std_logic_vector(31 downto 0);                    -- readdata
+      jesd204_rx_avs_waitrequest : out std_logic;                                        -- waitrequest
+      jesd204_rx_avs_write       : in  std_logic                     := 'X';             -- write
+      jesd204_rx_avs_writedata   : in  std_logic_vector(31 downto 0) := (others => 'X'); -- writedata
+      jesd204_rx_avs_clk         : in  std_logic                     := 'X';             -- clk
+      jesd204_rx_avs_rst_n       : in  std_logic                     := 'X';             -- reset_n
+      jesd204_rx_dlb_data        : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+      jesd204_rx_dlb_data_valid  : in  std_logic_vector(0 downto 0)  := (others => 'X'); -- export
+      jesd204_rx_dlb_disperr     : in  std_logic_vector(3 downto 0)  := (others => 'X'); -- export
+      jesd204_rx_dlb_errdetect   : in  std_logic_vector(3 downto 0)  := (others => 'X'); -- export
+      jesd204_rx_dlb_kchar_data  : in  std_logic_vector(3 downto 0)  := (others => 'X'); -- export
+      jesd204_rx_frame_error     : in  std_logic                     := 'X';             -- export
+      jesd204_rx_int                : out std_logic;                                        -- irq
+      jesd204_rx_link_data              : out std_logic_vector(31 downto 0);                    -- data
+      jesd204_rx_link_valid             : out std_logic;                                        -- valid
+      jesd204_rx_link_ready             : in  std_logic                     := 'X';             -- ready
+      pll_ref_clk                   : in  std_logic                     := 'X';             -- clk
+      rx_analogreset             : in  std_logic_vector(0 downto 0)  := (others => 'X'); -- rx_analogreset
+      rx_cal_busy                : out std_logic_vector(0 downto 0);                     -- rx_cal_busy
+      rx_digitalreset            : in  std_logic_vector(0 downto 0)  := (others => 'X'); -- rx_digitalreset
+      rx_islockedtodata          : out std_logic_vector(0 downto 0);                     -- rx_is_lockedtodata
+      rx_serial_data             : in  std_logic_vector(0 downto 0)  := (others => 'X'); -- rx_serial_data
+      rxlink_clk                 : in  std_logic                     := 'X';             -- clk
+      rxlink_rst_n_reset_n              : in  std_logic                     := 'X';             -- reset_n
+      rxphy_clk                  : out std_logic_vector(0 downto 0);                     -- export
+      sof                        : out std_logic_vector(3 downto 0);                     -- export
+      somf                       : out std_logic_vector(3 downto 0);                     -- export
+      sysref                     : in  std_logic                     := 'X'              -- export
+    );
+  end component ip_arria10_e1sg_jesd204b_rx;
+
+  component ip_arria10_e1sg_jesd204b_rx_core_pll is
     port (
       locked   : out std_logic;        -- export
       outclk_0 : out std_logic;        -- clk
@@ -165,9 +217,9 @@ ARCHITECTURE str OF ip_arria10_e1sg_jesd204b IS
       refclk   : in  std_logic := 'X'; -- clk
       rst      : in  std_logic := 'X'  -- reset
     );
-  end component ip_arria10_e1sg_jesd204b_rx_core_pll_cmp;
+  end component ip_arria10_e1sg_jesd204b_rx_core_pll;
 
-  component ip_arria10_e1sg_jesd204b_rx_reset_seq_cmp is
+  component ip_arria10_e1sg_jesd204b_rx_reset_seq is
     generic (
       NUM_OUTPUTS                   : integer := 3;
       ENABLE_DEASSERTION_INPUT_QUAL : integer := 0;
@@ -247,9 +299,9 @@ ARCHITECTURE str OF ip_arria10_e1sg_jesd204b IS
       reset_out6       : out std_logic;                                        -- reset
       reset_out7       : out std_logic                                         -- reset
     );
-  end component ip_arria10_e1sg_jesd204b_rx_reset_seq_cmp;
+  end component ip_arria10_e1sg_jesd204b_rx_reset_seq;
 
-  component ip_arria10_e1sg_jesd204b_rx_xcvr_reset_control_12_cmp is
+  component ip_arria10_e1sg_jesd204b_rx_xcvr_reset_control_12 is
     port (
       clock              : in  std_logic                     := 'X';             -- clk
       reset              : in  std_logic                     := 'X';             -- reset
@@ -259,7 +311,7 @@ ARCHITECTURE str OF ip_arria10_e1sg_jesd204b IS
       rx_is_lockedtodata : in  std_logic_vector(11 downto 0) := (others => 'X'); -- rx_is_lockedtodata
       rx_ready           : out std_logic_vector(11 downto 0)                     -- rx_ready
     );
-  end component ip_arria10_e1sg_jesd204b_rx_xcvr_reset_control_12_cmp;
+  end component ip_arria10_e1sg_jesd204b_rx_xcvr_reset_control_12;
 
 
 
@@ -324,7 +376,7 @@ BEGIN
 --        sysref_export                     => jesd204b_sysref
 --      );
 
-    u_ip_arria10_e1sg_jesd204b_rx : ENTITY ip_arria10_e1sg_jesd204b_rx.ip_arria10_e1sg_jesd204b_rx
+    u_ip_arria10_e1sg_jesd204b_rx : ip_arria10_e1sg_jesd204b_rx
       PORT MAP 
       (
         alldev_lane_aligned        => dev_lane_aligned_arr(i),
@@ -378,7 +430,7 @@ BEGIN
       -----------------------------------------------------------------------------
       -- Reset sequencer for each channel
       -----------------------------------------------------------------------------
-      u_ip_arria10_e1sg_jesd204b_rx_reset_seq : ENTITY ip_arria10_e1sg_jesd204b_rx_reset_seq.ip_arria10_e1sg_jesd204b_rx_reset_seq
+      u_ip_arria10_e1sg_jesd204b_rx_reset_seq : ip_arria10_e1sg_jesd204b_rx_reset_seq
       PORT MAP (
         av_address                 => reset_seq_mosi_arr(i).address(7 downto 0), -- in  std_logic_vector(7 downto 0)  := (others => '0'); 
         av_readdata                => reset_seq_miso_arr(i).rddata(31 downto 0),
@@ -420,6 +472,7 @@ BEGIN
             rx_src_out_arr(i).data(15 downto 0)  <= (OTHERS => '0');
             f2_div1_cnt_arr(i) <= '0';
           ELSE
+            rx_src_out_arr(i).valid <= jesd204b_rx_link_valid_arr(i);
             IF jesd204b_rx_link_valid_arr(i) = '0' THEN
               rx_src_out_arr(i).data(15 downto 0)  <= (OTHERS => '0');
             ELSE
@@ -437,7 +490,7 @@ BEGIN
     END GENERATE;  
   
     -- IOPLL in source synchronous or normal mode. (Intel JESD204B-UG p66)
-    u_ip_arria10_e1sg_jesd204b_rx_corepll : ENTITY ip_arria10_e1sg_jesd204b_rx_core_pll.ip_arria10_e1sg_jesd204b_rx_core_pll
+    u_ip_arria10_e1sg_jesd204b_rx_corepll : ip_arria10_e1sg_jesd204b_rx_core_pll
     PORT MAP (
       locked                      => core_pll_locked,
       outclk_0                    => rxlink_clk,
@@ -461,7 +514,7 @@ BEGIN
     -- Transceiver reset controller. Use g_nof_channels out of 12 channels. Receive only
     -- Clock set to 100MHz (use mm_clk)
 
-    u_ip_arria10_e1sg_jesd204b_rx_xcvr_reset_control : ENTITY ip_arria10_e1sg_jesd204b_rx_xcvr_reset_control_12.ip_arria10_e1sg_jesd204b_rx_xcvr_reset_control_12
+    u_ip_arria10_e1sg_jesd204b_rx_xcvr_reset_control : ip_arria10_e1sg_jesd204b_rx_xcvr_reset_control_12
     PORT MAP (
       clock                        => mm_clk,
       reset                        => xcvr_rst_arr(0),        -- From Reset Sequencer output1 as per example design
diff --git a/libraries/technology/ip_arria10_e2sg/clkbuf_global/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/clkbuf_global/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..1f8b03270d5107bf7f50aa5701219c59c3fcfa87
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/clkbuf_global/compile_ip.tcl
@@ -0,0 +1,34 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_clkbuf_global/sim"
+
+  vcom  "$IP_DIR/ip_arria10_e2sg_clkbuf_global.vhd"                                             
diff --git a/libraries/technology/ip_arria10_e2sg/clkbuf_global/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/clkbuf_global/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..c6a1565701b05eef47338a34f10cc5f3c2372449
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/clkbuf_global/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_clkbuf_global 
+hdl_library_clause_name = ip_arria10_e2sg_clkbuf_global_altclkctrl_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim =  ip_arria10_e2sg_altclkctrl_194
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/clkbuf_global/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_clkbuf_global/ip_arria10_e2sg_clkbuf_global.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_clkbuf_global.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/clkbuf_global/ip_arria10_e2sg_clkbuf_global.qsys b/libraries/technology/ip_arria10_e2sg/clkbuf_global/ip_arria10_e2sg_clkbuf_global.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..d9cf6ed47ed4e9f8a5962c10c1081746b52864fb
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/clkbuf_global/ip_arria10_e2sg_clkbuf_global.qsys
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_clkbuf_global">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element altclkctrl_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="1" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="altclkctrl_input"
+   internal="altclkctrl_0.altclkctrl_input"
+   type="conduit"
+   dir="end">
+  <port name="inclk" internal="inclk" />
+ </interface>
+ <interface
+   name="altclkctrl_output"
+   internal="altclkctrl_0.altclkctrl_output"
+   type="conduit"
+   dir="end">
+  <port name="outclk" internal="outclk" />
+ </interface>
+ <module
+   name="altclkctrl_0"
+   kind="altclkctrl"
+   version="19.1"
+   enabled="1"
+   autoexport="1">
+  <parameter name="CLOCK_TYPE" value="1" />
+  <parameter name="DEVICE_FAMILY" value="Arria 10" />
+  <parameter name="ENA_REGISTER_MODE" value="1" />
+  <parameter name="GUI_USE_ENA" value="false" />
+  <parameter name="NUMBER_OF_CLOCKS" value="1" />
+  <parameter name="USE_GLITCH_FREE_SWITCH_OVER_IMPLEMENTATION" value="false" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/complex_mult/README.txt b/libraries/technology/ip_arria10_e2sg/complex_mult/README.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c9a33bbdfc0710640b0f4e967376ce8a5627e40e
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/complex_mult/README.txt
@@ -0,0 +1,55 @@
+README.txt for $RADIOHDL_WORK/libraries/technology/ip_arria10/complex_mult
+
+1) Porting
+2) IP component
+3) Compilation, simulation and verification
+4) Synthesis
+5) Remarks
+
+
+1) Porting
+
+The complex_mult IP was ported manually from Quartus v11.1 for Stratix IV  to Quartus 15.0 for Arria10 by creating it in Qsys using
+the same parameter settings.
+
+
+2) IP component
+
+The generated IP is not kept in SVN, only the Qsys source file:
+
+  ip_arria10_complex_mult.qsys
+
+Therefore first the IP needs to be generated using:
+
+  ./generate_ip.sh
+  
+
+3) Compilation, simulation and verification
+
+The generated IP also contains a msim_setup.tcl file that was used to manually create:
+
+  compile_ip.tcl
+  
+This compile_ip.tcl is in the hdllib.cfg and gets compiled before the other code.
+
+
+4) Synthesis
+
+No synthesis trials were done, because this will implicitely be done when the IP is used in a design. The QIP file:
+
+  ip_arria10_complex_mult.qip
+
+is included in the hdllib.cfg and contains what is needed to synthesize the IP.
+
+
+5) Remarks
+
+a) Use generated IP specific library clause name
+
+  The generated ip_arria10_<lib_name>.vhd uses an IP specific library name. Therefore the hdllib.cfg uses the IP
+  specific library as library clause name to make it known:
+  
+    hdl_lib_name = ip_arria10_<lib_name>
+    hdl_library_clause_name = ip_arria10_<lib_name>_<ip_specific>
+    
+ 
\ No newline at end of file
diff --git a/libraries/technology/ip_arria10_e2sg/complex_mult/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/complex_mult/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..61d54b2f635210f0c61b01cca8c32de0c4ac32c7
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/complex_mult/compile_ip.tcl
@@ -0,0 +1,35 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_complex_mult/sim"
+vmap altmult_complex_194 ./work/
+  vlog "$IP_DIR/../altmult_complex_194/synth/ip_arria10_e2sg_complex_mult_altmult_complex_194_nkpx3mi.v" -work altmult_complex_194
+  #vlog "$IP_DIR/ip_arria10_e2sg_complex_mult_bb.v"                                                        
diff --git a/libraries/technology/ip_arria10_e2sg/complex_mult/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/complex_mult/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..1e148136baef78b400ac816c5fa769b68d14df72
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/complex_mult/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_complex_mult
+hdl_library_clause_name = ip_arria10_e2sg_complex_mult_altmult_complex_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim =  
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/complex_mult/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_complex_mult/ip_arria10_e2sg_complex_mult.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_complex_mult.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/complex_mult/ip_arria10_e2sg_complex_mult.qsys b/libraries/technology/ip_arria10_e2sg/complex_mult/ip_arria10_e2sg_complex_mult.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..1b6592957af13fbd6f4fce39205853674829e81f
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/complex_mult/ip_arria10_e2sg_complex_mult.qsys
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_complex_mult">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element altmult_complex_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface name="aclr" internal="altmult_complex_0.aclr" type="reset" dir="end">
+  <port name="aclr" internal="aclr" />
+ </interface>
+ <interface
+   name="clock"
+   internal="altmult_complex_0.clock"
+   type="clock"
+   dir="end">
+  <port name="clock" internal="clock" />
+ </interface>
+ <interface name="complex_input" internal="altmult_complex_0.complex_input" />
+ <interface name="complex_output" internal="altmult_complex_0.complex_output" />
+ <interface
+   name="dataa_imag"
+   internal="altmult_complex_0.dataa_imag"
+   type="conduit"
+   dir="end">
+  <port name="dataa_imag" internal="dataa_imag" />
+ </interface>
+ <interface
+   name="dataa_real"
+   internal="altmult_complex_0.dataa_real"
+   type="conduit"
+   dir="end">
+  <port name="dataa_real" internal="dataa_real" />
+ </interface>
+ <interface
+   name="datab_imag"
+   internal="altmult_complex_0.datab_imag"
+   type="conduit"
+   dir="end">
+  <port name="datab_imag" internal="datab_imag" />
+ </interface>
+ <interface
+   name="datab_real"
+   internal="altmult_complex_0.datab_real"
+   type="conduit"
+   dir="end">
+  <port name="datab_real" internal="datab_real" />
+ </interface>
+ <interface name="ena" internal="altmult_complex_0.ena" type="conduit" dir="end">
+  <port name="ena" internal="ena" />
+ </interface>
+ <interface
+   name="result_imag"
+   internal="altmult_complex_0.result_imag"
+   type="conduit"
+   dir="end">
+  <port name="result_imag" internal="result_imag" />
+ </interface>
+ <interface
+   name="result_real"
+   internal="altmult_complex_0.result_real"
+   type="conduit"
+   dir="end">
+  <port name="result_real" internal="result_real" />
+ </interface>
+ <module
+   name="altmult_complex_0"
+   kind="altmult_complex"
+   version="19.1.0"
+   enabled="1"
+   autoexport="1">
+  <parameter name="CBX_AUTO_BLACKBOX" value="ALL" />
+  <parameter name="DEVICE_FAMILY" value="Arria 10" />
+  <parameter name="GUI_CLEAR_TYPE" value="ACLR" />
+  <parameter name="GUI_DYNAMIC_COMPLEX" value="false" />
+  <parameter name="GUI_USE_CLKEN" value="true" />
+  <parameter name="IMPLEMENTATION_STYLE" value="AUTO" />
+  <parameter name="PIPELINE" value="3" />
+  <parameter name="REPRESENTATION_A" value="1" />
+  <parameter name="REPRESENTATION_B" value="1" />
+  <parameter name="WIDTH_A" value="18" />
+  <parameter name="WIDTH_B" value="18" />
+  <parameter name="WIDTH_RESULT" value="36" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/ddio/README.txt b/libraries/technology/ip_arria10_e2sg/ddio/README.txt
new file mode 100755
index 0000000000000000000000000000000000000000..1823e822ffac72fd6dfccb16917ab9972bed2a75
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ddio/README.txt
@@ -0,0 +1,73 @@
+README.txt for $RADIOHDL_WORK/libraries/technology/ip_arria10/ddio
+
+Contents:
+
+1) DDIO components
+2) Arria10 IP
+3) Synthesis trials
+4) Issues
+
+
+1) DDIO components:
+  ip_arria10_ddio_in.vhd   = Double Date Rate input
+  ip_arria10_ddio_out.vhd  = Double Date Rate output
+  
+
+2) Arria10 IP
+
+  The StratixIV IP uses altddio_in and altddio_out. First a Megawizard file for this StratixIV IP was made using the settings that
+  were used in common_ddio_in.vhd and common_ddio_out.vhd. This Megawizard IP file was then opened in Quartus to be able to let
+  Quartus 14 convert them using the altera_gpio component for Arria10.
+  
+  The altera_gpio component is not part of the default Quartus 14.0a10 tool libraries, but instead it is created by Qsys together
+  with the IP. This makes that the altera_gpio can not easily be used in simulation and synthesis like was possible with altera_mf
+  in for Stratix IV (Quartus 11.1).
+  
+  The ddio_in component is used by the PPSH and the ddio_out component is used by the ADUH. In both cases the g_width=1.
+  The Arria10 IP can be generated using a fixed width of 1. Therefore the width was set to 1 in the conversion from MegaWizard
+  to Qsys and the qsys files are stored as:
+  
+    ip_arria10_ddio_in_1.qsys
+    ip_arria10_ddio_out_1.qsys
+  
+  If the application would need a wider port then it can achieve this by instantiating the IP multiple times. This approach
+  avoids having to generate DDIO IP for every possible width. An alternative would be:
+  - to generate IP for e.g. width=16 and assuming that that is sufficient for all applications. Any application that uses less
+    width then leaves these IO unconnected so that the unused IO will get optimized away by synthesis.
+  - create the IP when it is needed, this scheme is more difficult to manage but is something to consider for the future.
+  
+  The IP needs to be generated with:
+  
+  ./generate_ip.sh
+  
+  to create the simulation and synthesis files, because these are initially not kept in SVN.
+  
+
+3) Synthesis trials
+
+  The Quartus project:
+  
+    quartus/ddio.qpf
+  
+  was used to verify that the DDIO IP actually synthesise to the appropriate FPGA resources.
+  Use the Quartus GUI to manually select a top level component for synthesis e.g. by right clicking the entity vhd file
+  in the file tab of the Quartus project navigator window.
+  Then check the resource usage in the synthesis and fitter reports.
+
+
+4) Issues
+
+a) Simulation model does not work (for Quartus 14.1, not tried for Quartus 15.0)
+
+  The simulation model for the DDIO does not compile ok because a din port is missing in the ddio_out en a dout port is
+  missing in the ddio_in. Adding this ports manualy does work for compile, but when the component is loaded as a simulation
+  then Modelsim reports some internal error on the IP. The compile also does not work when using 'do msim_setup.tcl', so
+  there is something wrong with the DDIO simulation model. The synthesis of the DDIO IP using ddio.qpf does work.
+  
+  The work around is not not use the simulation model, but instead use a behavioral simulation model for the IP:
+     sim/ip_arria10_ddio_in_1.vhd
+     sim/ip_arria10_ddio_out_1.vhd
+     sim/tb_ip_arria10_ddio_1.vhd   = self checking tb for ip_arria10_ddio_in_1 -> ip_arria10_ddio_out_1
+  
+  The selection between the IP model or the behavioral model is made in the compile_ip.tcl script.
+  
diff --git a/libraries/technology/ip_arria10_e2sg/ddio/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/ddio/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..b5362e8f2e5384fa6c54946570c062d41c1494b6
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ddio/compile_ip.tcl
@@ -0,0 +1,69 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+set IPMODEL "SIM";
+#set IPMODEL "PHY";
+
+if {$IPMODEL=="PHY"} { 
+    # OUTDATED AND NOT USED!!
+    # This file is based on Qsys-generated file msim_setup.tcl.
+    set IP_DIR "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_ddio_in_1/sim"
+        
+    #vlib ./work/         ;# Assume library work already exists
+    vmap ip_arria10_ddio_in_1_altera_gpio_core_194  ./work/
+    vmap ip_arria10_ddio_in_1_altera_gpio_194       ./work/
+    
+    vlog -sv "$IP_DIR/../altera_gpio_core_194/sim/mentor/altera_gpio.sv"                        -work ip_arria10_ddio_in_1_altera_gpio_core_194
+    
+    vcom     "$IP_DIR/../altera_gpio_194/sim/ip_arria10_ddio_in_1_altera_gpio_194_umwov7y.vhd"  -work ip_arria10_ddio_in_1_altera_gpio_194     
+    vcom     "$IP_DIR/ip_arria10_ddio_in_1.vhd"                                                                                               
+
+
+    set IP_DIR "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_ddio_out_1/sim"
+
+    #vlib ./work/         ;# Assume library work already exists
+    vmap ip_arria10_ddio_out_1_altera_gpio_core_194 ./work/
+    vmap ip_arria10_ddio_out_1_altera_gpio_194      ./work/    
+    
+    vlog -sv "$IP_DIR/../altera_gpio_core_194/sim/mentor/altera_gpio.sv"                        -work ip_arria10_ddio_out_1_altera_gpio_core_194
+    
+    vcom     "$IP_DIR/../altera_gpio_194/sim/ip_arria10_ddio_out_1_altera_gpio_194_c3jcq7i.vhd" -work ip_arria10_ddio_out_1_altera_gpio_194     
+    vcom     "$IP_DIR/ip_arria10_ddio_out_1.vhd"                                                                                                    
+
+} else {
+
+    # This file uses a behavioral model because the PHY model does not compile OK, see README.txt.
+    set SIM_DIR "$env(RADIOHDL_WORK)/libraries/technology/ip_arria10_e2sg/ddio/sim/"
+    
+    vcom "$SIM_DIR/ip_arria10_e2sg_ddio_in_1.vhd"
+    vcom "$SIM_DIR/ip_arria10_e2sg_ddio_out_1.vhd"
+    vcom "$SIM_DIR/tb_ip_arria10_e2sg_ddio_1.vhd"
+    
+}
diff --git a/libraries/technology/ip_arria10_e2sg/ddio/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/ddio/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..64f68201fe1d7c5c5db2ff0b4ac0f21c355fd76b
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ddio/hdllib.cfg
@@ -0,0 +1,28 @@
+hdl_lib_name = ip_arria10_e2sg_ddio
+hdl_library_clause_name = ip_arria10_e2sg_ddio_lib
+hdl_lib_uses_synth = technology
+hdl_lib_uses_sim = 
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    ip_arria10_e2sg_ddio_in.vhd
+    ip_arria10_e2sg_ddio_out.vhd
+    
+test_bench_files =
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/ddio/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_ddio_in_1/ip_arria10_e2sg_ddio_in_1.qip
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_ddio_out_1/ip_arria10_e2sg_ddio_out_1.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_ddio_in_1.qsys
+    ip_arria10_e2sg_ddio_out_1.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/ddio/ip_arria10_e2sg_ddio_in.vhd b/libraries/technology/ip_arria10_e2sg/ddio/ip_arria10_e2sg_ddio_in.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..b088417ccff51d9f1a44da59ff564fe2abf92727
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ddio/ip_arria10_e2sg_ddio_in.vhd
@@ -0,0 +1,69 @@
+-------------------------------------------------------------------------------
+--
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+-- Purpose: Wrapper for ip_arria10_e2sg_ddio_in_1 to support g_width >= 1
+
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+ENTITY ip_arria10_e2sg_ddio_in IS
+  GENERIC (
+    g_width : NATURAL := 1
+  );
+  PORT (
+    in_dat      : IN  STD_LOGIC_VECTOR(g_width-1 DOWNTO 0);
+    in_clk      : IN  STD_LOGIC;
+    in_clk_en   : IN  STD_LOGIC := '1';   -- Not Connected
+    rst         : IN  STD_LOGIC := '0';
+    out_dat_hi  : OUT STD_LOGIC_VECTOR(g_width-1 DOWNTO 0);
+    out_dat_lo  : OUT STD_LOGIC_VECTOR(g_width-1 DOWNTO 0)
+  );
+END ip_arria10_e2sg_ddio_in;
+
+
+ARCHITECTURE str OF ip_arria10_e2sg_ddio_in IS
+
+  component ip_arria10_e2sg_ddio_in_1 is
+        port (
+                datain    : in  std_logic_vector(0 downto 0) := (others => '0'); --    pad_in.export
+                inclock   : in  std_logic                    := '0';             --        ck.export
+                aclr      : in  std_logic                    := '0';             --      aclr.export
+                dataout_h : out std_logic_vector(0 downto 0);                    -- dataout_h.fragment
+                dataout_l : out std_logic_vector(0 downto 0)                     -- dataout_l.fragment
+        );
+  end component;
+  
+BEGIN
+
+  gen_w : FOR I IN g_width-1 DOWNTO 0 GENERATE
+  
+    u_ip_arria10_e2sg_ddio_in_1 : ip_arria10_e2sg_ddio_in_1
+    PORT MAP (
+      datain    => in_dat(I DOWNTO I),
+      inclock   => in_clk,
+      aclr      => rst,
+      dataout_h => out_dat_hi(I DOWNTO I),
+      dataout_l => out_dat_lo(I DOWNTO I)
+    );
+    
+  END GENERATE;
+
+END str;
diff --git a/libraries/technology/ip_arria10_e2sg/ddio/ip_arria10_e2sg_ddio_in_1.qsys b/libraries/technology/ip_arria10_e2sg/ddio/ip_arria10_e2sg_ddio_in_1.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..074f66f1b1a64a537ff7453740188cfc457a07b7
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ddio/ip_arria10_e2sg_ddio_in_1.qsys
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_ddio_in_1">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element ip_arria10_ddio_in_1
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="false" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="aclr"
+   internal="ip_arria10_ddio_in_1.aclr"
+   type="conduit"
+   dir="end">
+  <port name="aclr" internal="aclr" />
+ </interface>
+ <interface name="ck" internal="ip_arria10_ddio_in_1.ck" type="conduit" dir="end">
+  <port name="inclock" internal="inclock" />
+ </interface>
+ <interface
+   name="dataout_h"
+   internal="ip_arria10_ddio_in_1.dataout_h"
+   type="conduit"
+   dir="end">
+  <port name="dataout_h" internal="dataout_h" />
+ </interface>
+ <interface
+   name="dataout_l"
+   internal="ip_arria10_ddio_in_1.dataout_l"
+   type="conduit"
+   dir="end">
+  <port name="dataout_l" internal="dataout_l" />
+ </interface>
+ <interface name="din" internal="ip_arria10_ddio_in_1.din" />
+ <interface name="dout" internal="ip_arria10_ddio_in_1.dout" />
+ <interface
+   name="pad_in"
+   internal="ip_arria10_ddio_in_1.pad_in"
+   type="conduit"
+   dir="end">
+  <port name="datain" internal="datain" />
+ </interface>
+ <interface name="pad_out" internal="ip_arria10_ddio_in_1.pad_out" />
+ <module
+   name="ip_arria10_ddio_in_1"
+   kind="altera_gpio"
+   version="19.3.0"
+   enabled="1"
+   autoexport="1">
+  <parameter name="AUTO_DEVICE_SPEEDGRADE" value="2" />
+  <parameter name="EXT_DRIVER_PARAM" value="false" />
+  <parameter name="GENERATE_SDC_FILE" value="false" />
+  <parameter name="IP_MIGRATE_PORT_MAP_FILE">altddio_in_port_map.csv</parameter>
+  <parameter name="PIN_TYPE_GUI" value="Input" />
+  <parameter name="SIZE" value="1" />
+  <parameter name="SYS_INFO_DEVICE" value="10AX115U3F45E2SG" />
+  <parameter name="device_family" value="Arria 10" />
+  <parameter name="gui_areset_mode" value="Clear" />
+  <parameter name="gui_bus_hold" value="false" />
+  <parameter name="gui_diff_buff" value="false" />
+  <parameter name="gui_enable_cke" value="false" />
+  <parameter name="gui_enable_migratable_port_names" value="true" />
+  <parameter name="gui_enable_termination_ports" value="false" />
+  <parameter name="gui_hr_logic" value="false" />
+  <parameter name="gui_io_reg_mode" value="DDIO" />
+  <parameter name="gui_open_drain" value="false" />
+  <parameter name="gui_pseudo_diff" value="false" />
+  <parameter name="gui_separate_io_clks" value="false" />
+  <parameter name="gui_sreset_mode" value="None" />
+  <parameter name="gui_use_oe" value="false" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/ddio/ip_arria10_e2sg_ddio_out.vhd b/libraries/technology/ip_arria10_e2sg/ddio/ip_arria10_e2sg_ddio_out.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..fb83b5b2bf875bbf614af2f81bb9b83efd3c1b7b
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ddio/ip_arria10_e2sg_ddio_out.vhd
@@ -0,0 +1,67 @@
+-------------------------------------------------------------------------------
+--
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+-- Purpose: Wrapper for ip_arria10_e2sg_ddio_out_1 to support g_width >= 1
+
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+ENTITY ip_arria10_e2sg_ddio_out IS
+  GENERIC(
+    g_width : NATURAL := 1
+  );
+  PORT (
+    rst        : IN   STD_LOGIC := '0';
+    in_clk     : IN   STD_LOGIC;
+    in_clk_en  : IN   STD_LOGIC := '1';   -- Not Connected
+    in_dat_hi  : IN   STD_LOGIC_VECTOR(g_width-1 DOWNTO 0);
+    in_dat_lo  : IN   STD_LOGIC_VECTOR(g_width-1 DOWNTO 0);
+    out_dat    : OUT  STD_LOGIC_VECTOR(g_width-1 DOWNTO 0)
+  );
+END ip_arria10_e2sg_ddio_out;
+
+
+ARCHITECTURE str OF ip_arria10_e2sg_ddio_out IS
+        
+  component ip_arria10_e2sg_ddio_out_1 is
+        port (
+                dataout  : out std_logic_vector(0 downto 0);                    --  pad_out.export
+                outclock : in  std_logic                    := '0';             --       ck.export
+                aclr     : in  std_logic                    := '0';             --     aclr.export
+                datain_h : in  std_logic_vector(0 downto 0) := (others => '0'); -- datain_h.fragment
+                datain_l : in  std_logic_vector(0 downto 0) := (others => '0')  -- datain_l.fragment
+        );
+  end component;
+        
+BEGIN
+
+  gen_w : FOR I IN g_width-1 DOWNTO 0 GENERATE
+    u_ip_arria10_e2sg_ddio_out_1 : ip_arria10_e2sg_ddio_out_1
+    PORT MAP (
+      dataout  => out_dat(I DOWNTO I),
+      outclock => in_clk,
+      aclr     => rst,
+      datain_h => in_dat_hi(I DOWNTO I),
+      datain_l => in_dat_lo(I DOWNTO I)
+    );
+  END GENERATE;
+
+END str;
diff --git a/libraries/technology/ip_arria10_e2sg/ddio/ip_arria10_e2sg_ddio_out_1.qsys b/libraries/technology/ip_arria10_e2sg/ddio/ip_arria10_e2sg_ddio_out_1.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..f7a5da58c57cc124a6fcfc9520d8d901f270f0d1
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ddio/ip_arria10_e2sg_ddio_out_1.qsys
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_ddio_out_1">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element ip_arria10_ddio_out_1
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="false" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="aclr"
+   internal="ip_arria10_ddio_out_1.aclr"
+   type="conduit"
+   dir="end">
+  <port name="aclr" internal="aclr" />
+ </interface>
+ <interface
+   name="ck"
+   internal="ip_arria10_ddio_out_1.ck"
+   type="conduit"
+   dir="end">
+  <port name="outclock" internal="outclock" />
+ </interface>
+ <interface
+   name="datain_h"
+   internal="ip_arria10_ddio_out_1.datain_h"
+   type="conduit"
+   dir="end">
+  <port name="datain_h" internal="datain_h" />
+ </interface>
+ <interface
+   name="datain_l"
+   internal="ip_arria10_ddio_out_1.datain_l"
+   type="conduit"
+   dir="end">
+  <port name="datain_l" internal="datain_l" />
+ </interface>
+ <interface name="din" internal="ip_arria10_ddio_out_1.din" />
+ <interface
+   name="pad_out"
+   internal="ip_arria10_ddio_out_1.pad_out"
+   type="conduit"
+   dir="end">
+  <port name="dataout" internal="dataout" />
+ </interface>
+ <module
+   name="ip_arria10_ddio_out_1"
+   kind="altera_gpio"
+   version="19.3.0"
+   enabled="1"
+   autoexport="1">
+  <parameter name="AUTO_DEVICE_SPEEDGRADE" value="2" />
+  <parameter name="EXT_DRIVER_PARAM" value="false" />
+  <parameter name="GENERATE_SDC_FILE" value="false" />
+  <parameter name="IP_MIGRATE_PORT_MAP_FILE">altddio_out_port_map.csv</parameter>
+  <parameter name="PIN_TYPE_GUI" value="Output" />
+  <parameter name="SIZE" value="1" />
+  <parameter name="SYS_INFO_DEVICE" value="10AX115U3F45E2SG" />
+  <parameter name="device_family" value="Arria 10" />
+  <parameter name="gui_areset_mode" value="Clear" />
+  <parameter name="gui_bus_hold" value="false" />
+  <parameter name="gui_diff_buff" value="false" />
+  <parameter name="gui_enable_cke" value="false" />
+  <parameter name="gui_enable_migratable_port_names" value="true" />
+  <parameter name="gui_enable_termination_ports" value="false" />
+  <parameter name="gui_hr_logic" value="false" />
+  <parameter name="gui_io_reg_mode" value="DDIO" />
+  <parameter name="gui_open_drain" value="false" />
+  <parameter name="gui_pseudo_diff" value="false" />
+  <parameter name="gui_separate_io_clks" value="false" />
+  <parameter name="gui_sreset_mode" value="None" />
+  <parameter name="gui_use_oe" value="false" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/ddio/sim/ip_arria10_e1sg_ddio_in_1.vhd b/libraries/technology/ip_arria10_e2sg/ddio/sim/ip_arria10_e1sg_ddio_in_1.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..7a9f6aae7ab433162bc1aff638541f44cbeacb27
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ddio/sim/ip_arria10_e1sg_ddio_in_1.vhd
@@ -0,0 +1,65 @@
+-------------------------------------------------------------------------------
+--
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+-- Purpose: Simulation model for DDIO in
+-- Description:
+--   The double data rate datain samples that arrive at time series t0, t1, t2,
+--   ... get output with samples t0, t2, ... in dataout_l and samples t1, t3,
+--   ... in dataout_h. Hence dataout = dataout_h & dataout_l contains the
+--   time series samples in little endian format with the first sample in the
+--   LSpart as shown in the timing diagram:
+--               _   _   _   _  
+--     inclock  | |_| |_| |_| |_
+--     datain    0 1 2 3 4 5 6 7
+--     in_dat_r      1   3   5
+--     in_dat_f    0   2   4  
+--     dataout_h     1   3   5
+--     dataout_l     0   2   4
+--
+
+LIBRARY IEEE;
+USE IEEE.STD_LOGIC_1164.ALL;
+
+ENTITY ip_arria10_e2sg_ddio_in_1 IS
+	PORT (
+		datain    : IN  STD_LOGIC_VECTOR(0 downto 0) := (others => '0');
+		inclock   : IN  STD_LOGIC                    := '0';
+		aclr      : IN  STD_LOGIC                    := '0';
+		dataout_h : OUT STD_LOGIC_VECTOR(0 downto 0);
+		dataout_l : OUT STD_LOGIC_VECTOR(0 downto 0)
+	);
+END ip_arria10_e2sg_ddio_in_1;
+
+
+ARCHITECTURE beh OF ip_arria10_e2sg_ddio_in_1 IS
+  
+  SIGNAL in_dat_r   : STD_LOGIC;
+  SIGNAL in_dat_f   : STD_LOGIC;
+  
+BEGIN
+
+  in_dat_r <= datain(0) WHEN rising_edge(inclock);
+  in_dat_f <= datain(0) WHEN falling_edge(inclock);
+
+  dataout_h <= (OTHERS=>in_dat_r);
+  dataout_l <= (OTHERS=>in_dat_f) WHEN rising_edge(inclock);
+
+END beh;
diff --git a/libraries/technology/ip_arria10_e2sg/ddio/sim/ip_arria10_e1sg_ddio_out_1.vhd b/libraries/technology/ip_arria10_e2sg/ddio/sim/ip_arria10_e1sg_ddio_out_1.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..780e967d4a912ef8d3622f4202f61e71bd12d1d1
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ddio/sim/ip_arria10_e1sg_ddio_out_1.vhd
@@ -0,0 +1,59 @@
+-------------------------------------------------------------------------------
+--
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+-- Purpose: Simulation model for DDIO out
+-- Description:
+--   This function is the inverse of DDIO in as described in ip_arria10_e2sg_ddio_in_1.
+--   The timing diagram:
+--                 _   _   _   _   _
+--     outclock   | |_| |_| |_| |_| |_
+--     datain_h        1   3   5
+--     datain_l        0   2   4
+--     dataout @ r         1   3   5
+--     dataout @ f       0   2   4  
+--     dataout           0 1 2 3 4 5 6 7
+--
+
+LIBRARY IEEE;
+USE IEEE.STD_LOGIC_1164.ALL;
+
+ENTITY ip_arria10_e2sg_ddio_out_1 IS
+	PORT (
+		dataout  : OUT STD_LOGIC_VECTOR(0 downto 0);
+		outclock : IN  STD_LOGIC                    := '0';
+		aclr     : IN  STD_LOGIC                    := '0';
+		datain_h : IN  STD_LOGIC_VECTOR(0 downto 0) := (others=>'0');
+		datain_l : IN  STD_LOGIC_VECTOR(0 downto 0) := (others=>'0')
+	);
+END ip_arria10_e2sg_ddio_out_1;
+
+
+ARCHITECTURE beh OF ip_arria10_e2sg_ddio_out_1 IS
+  
+  SIGNAL out_dat_r   : STD_LOGIC;
+  SIGNAL out_dat_f   : STD_LOGIC;
+  
+BEGIN
+
+  dataout <= datain_l WHEN falling_edge(outclock) ELSE
+             datain_h WHEN rising_edge(outclock);
+
+END beh;
diff --git a/libraries/technology/ip_arria10_e2sg/ddio/sim/tb_ip_arria10_e1sg_ddio_1.vhd b/libraries/technology/ip_arria10_e2sg/ddio/sim/tb_ip_arria10_e1sg_ddio_1.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..e944f9363737c339a0441bb1efcefdaa7e7bafb8
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ddio/sim/tb_ip_arria10_e1sg_ddio_1.vhd
@@ -0,0 +1,126 @@
+-------------------------------------------------------------------------------
+--
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+-- Purpose: Test bench for the DDIO in and out simulation models
+-- Description:
+--               _   _   _   _  
+--     inclock  | |_| |_| |_| |_
+--     datain    0 1 2 3 4 5 6 7
+--     data_h        1   3   5
+--     data_l        0   2   4
+--     dataout           0 1 2 3 4 5 6 7
+--
+-- Usage:
+--   The tb is self checking (p_verify) and self stopping (tb_end)
+--
+--   . Load the simulation by right mouse selecting the entity in library work
+--   > as 3
+--   > run -a
+
+LIBRARY IEEE;
+USE IEEE.STD_LOGIC_1164.ALL;
+
+ENTITY tb_ip_arria10_e2sg_ddio_1 IS
+END tb_ip_arria10_e2sg_ddio_1;
+
+
+ARCHITECTURE tb OF tb_ip_arria10_e2sg_ddio_1 IS
+
+  CONSTANT c_clk_period : TIME := 10 ns;
+  
+  SIGNAL tb_end      : STD_LOGIC := '0';
+  SIGNAL clk         : STD_LOGIC := '1';
+  SIGNAL in_dat      : STD_LOGIC;
+  SIGNAL in_data     : STD_LOGIC_VECTOR(0 DOWNTO 0);
+  SIGNAL data_h      : STD_LOGIC_VECTOR(0 DOWNTO 0);
+  SIGNAL data_l      : STD_LOGIC_VECTOR(0 DOWNTO 0);
+  SIGNAL out_data    : STD_LOGIC_VECTOR(0 DOWNTO 0);
+  SIGNAL out_dat     : STD_LOGIC;
+  SIGNAL out_dat_exp : STD_LOGIC;
+  
+BEGIN
+
+  tb_end <= '0', '1' AFTER 100*c_clk_period;
+
+  clk <= NOT clk OR tb_end AFTER c_clk_period/2;
+  
+  p_in : PROCESS
+  BEGIN
+    -- 0
+    in_dat <= '0';
+    WAIT UNTIL falling_edge(clk);
+    in_dat <= '0';
+    WAIT UNTIL rising_edge(clk);
+    -- 1
+    in_dat <= '0';
+    WAIT UNTIL falling_edge(clk);
+    in_dat <= '1';
+    WAIT UNTIL rising_edge(clk);
+    -- 2
+    in_dat <= '1';
+    WAIT UNTIL falling_edge(clk);
+    in_dat <= '0';
+    WAIT UNTIL rising_edge(clk);
+    -- 3
+    in_dat <= '1';
+    WAIT UNTIL falling_edge(clk);
+    in_dat <= '1';
+    WAIT UNTIL rising_edge(clk);
+    -- 2
+    in_dat <= '1';
+    WAIT UNTIL falling_edge(clk);
+    in_dat <= '0';
+    WAIT UNTIL rising_edge(clk);
+  END PROCESS;
+
+  in_data(0) <= in_dat;
+  
+  u_ddio_in : ENTITY work.ip_arria10_e2sg_ddio_in_1
+	PORT MAP (
+		datain    => in_data,
+		inclock   => clk,
+		dataout_h => data_h,
+		dataout_l => data_l
+	);
+	
+  u_ddio_out : ENTITY work.ip_arria10_e2sg_ddio_out_1
+	PORT MAP (
+		dataout  => out_data,
+		outclock => clk,
+		datain_h => data_h,
+		datain_l => data_l
+	);
+	
+	out_dat <= out_data(0);
+	
+	out_dat_exp <= TRANSPORT in_dat AFTER c_clk_period*1.5 + 1 ps;
+	
+	p_verify : PROCESS(clk)
+	BEGIN
+	  IF falling_edge(clk) THEN
+	    ASSERT out_dat=out_dat_exp REPORT "tb_ip_arria10_e2sg_ddio_1: Error, unexpeced data at falling edge";
+	  END IF;
+	  IF rising_edge(clk) THEN
+	    ASSERT out_dat=out_dat_exp REPORT "tb_ip_arria10_e2sg_ddio_1: Error, unexpeced data at rising edge";
+	  END IF;
+	END PROCESS;
+	
+END tb;
diff --git a/libraries/technology/ip_arria10_e2sg/ddr4_8g_1600/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/ddr4_8g_1600/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..d88b025be7ce9f6f9b057c2d7e4d564d18ab0815
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ddr4_8g_1600/compile_ip.tcl
@@ -0,0 +1,34 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_ddr4_8g_1600/sim"
+                    
+  vcom         "$IP_DIR/ip_arria10_e2sg_ddr4_8g_1600.vhd"                                                                              
diff --git a/libraries/technology/ip_arria10_e2sg/ddr4_8g_1600/copy_hex_files.tcl b/libraries/technology/ip_arria10_e2sg/ddr4_8g_1600/copy_hex_files.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..8f7f7b97ecd1d4a229ba2a836252fd4a84a9408a
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ddr4_8g_1600/copy_hex_files.tcl
@@ -0,0 +1,33 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2015
+# 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 Qsys-generated file generated/sim/mentor/msim_setup.tcl
+
+set IP_DIR "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_ddr4_8g_1600/sim"
+
+# Copy ROM/RAM files to simulation directory
+if {[file isdirectory $IP_DIR]} {
+    file copy -force $IP_DIR/../altera_emif_arch_nf_151/sim/ip_arria10_e2sg_ddr4_8g_1600_altera_emif_arch_nf_151_4thorvi_seq_cal_sim.hex ./
+    file copy -force $IP_DIR/../altera_emif_arch_nf_151/sim/ip_arria10_e2sg_ddr4_8g_1600_altera_emif_arch_nf_151_4thorvi_seq_cal_synth.hex ./
+    file copy -force $IP_DIR/../altera_emif_arch_nf_151/sim/ip_arria10_e2sg_ddr4_8g_1600_altera_emif_arch_nf_151_4thorvi_seq_params_sim.hex ./
+    file copy -force $IP_DIR/../altera_emif_arch_nf_151/sim/ip_arria10_e2sg_ddr4_8g_1600_altera_emif_arch_nf_151_4thorvi_seq_params_synth.hex ./
+}
diff --git a/libraries/technology/ip_arria10_e2sg/ddr4_8g_1600/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/ddr4_8g_1600/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..9aa77ca037fb2f2f80b0dae026b7b1e022a14aad
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ddr4_8g_1600/hdllib.cfg
@@ -0,0 +1,25 @@
+hdl_lib_name = ip_arria10_e2sg_ddr4_8g_1600
+hdl_library_clause_name = ip_arria10_e2sg_ddr4_8g_1600_altera_emif_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_merlin_master_translator_194 ip_arria10_e2sg_altera_emif_cal_slave_nf_194 ip_arria10_e2sg_altera_avalon_onchip_memory2_194 ip_arria10_e2sg_altera_mm_interconnect_194 ip_arria10_e2sg_altera_reset_controller_194 ip_arria10_e2sg_altera_emif_arch_nf_194 ip_arria10_e2sg_altera_emif_194 ip_arria10_e2sg_altera_avalon_mm_bridge_194 ip_arria10_e2sg_altera_merlin_slave_translator_194 ip_arria10_e2sg_altera_avalon_sc_fifo_194 ip_arria10_e2sg_altera_avalon_st_packets_to_bytes_194 ip_arria10_e2sg_altera_ip_col_if_194 ip_arria10_e2sg_altera_jtag_dc_streaming_194 ip_arria10_e2sg_alt_mem_if_jtag_master_194 ip_arria10_e2sg_altera_avalon_st_bytes_to_packets_194 ip_arria10_e2sg_altera_avalon_packets_to_master_194 ip_arria10_e2sg_channel_adapter_194 ip_arria10_e2sg_timing_adapter_194
+
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/ddr4_8g_1600/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_ddr4_8g_1600/ip_arria10_e2sg_ddr4_8g_1600.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_ddr4_8g_1600.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/ddr4_8g_1600/ip_arria10_e2sg_ddr4_8g_1600.qsys b/libraries/technology/ip_arria10_e2sg/ddr4_8g_1600/ip_arria10_e2sg_ddr4_8g_1600.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..4c82a2c5103e5e8393499a3944cf2109a907876d
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ddr4_8g_1600/ip_arria10_e2sg_ddr4_8g_1600.qsys
@@ -0,0 +1,1343 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_ddr4_8g_1600">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element emif_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos>
+        <entry>
+            <key>ctrl_amm_0</key>
+            <value>
+                <connectionPointName>ctrl_amm_0</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>ADDRESS_MAP</key>
+                        <value>&lt;address-map&gt;&lt;slave name='ctrl_amm_0' start='0x0' end='0x240000000' datawidth='576' /&gt;&lt;/address-map&gt;</value>
+                    </entry>
+                    <entry>
+                        <key>ADDRESS_WIDTH</key>
+                        <value>34</value>
+                    </entry>
+                    <entry>
+                        <key>MAX_SLAVE_DATA_WIDTH</key>
+                        <value>576</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+        <entry>
+            <key>ctrl_mmr_slave_0</key>
+            <value>
+                <connectionPointName>ctrl_mmr_slave_0</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>ADDRESS_MAP</key>
+                        <value>&lt;address-map&gt;&lt;slave name='ctrl_mmr_slave_0' start='0x0' end='0x1000' datawidth='32' /&gt;&lt;/address-map&gt;</value>
+                    </entry>
+                    <entry>
+                        <key>ADDRESS_WIDTH</key>
+                        <value>12</value>
+                    </entry>
+                    <entry>
+                        <key>MAX_SLAVE_DATA_WIDTH</key>
+                        <value>32</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+        <entry>
+            <key>emif_usr_clk</key>
+            <value>
+                <connectionPointName>emif_usr_clk</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>200000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+    </connPtSystemInfos>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="ctrl_amm_0"
+   internal="emif_0.ctrl_amm_0"
+   type="avalon"
+   dir="end">
+  <port name="amm_address_0" internal="amm_address_0" />
+  <port name="amm_burstcount_0" internal="amm_burstcount_0" />
+  <port name="amm_byteenable_0" internal="amm_byteenable_0" />
+  <port name="amm_read_0" internal="amm_read_0" />
+  <port name="amm_readdata_0" internal="amm_readdata_0" />
+  <port name="amm_readdatavalid_0" internal="amm_readdatavalid_0" />
+  <port name="amm_ready_0" internal="amm_ready_0" />
+  <port name="amm_write_0" internal="amm_write_0" />
+  <port name="amm_writedata_0" internal="amm_writedata_0" />
+ </interface>
+ <interface
+   name="ctrl_mmr_slave_0"
+   internal="emif_0.ctrl_mmr_slave_0"
+   type="avalon"
+   dir="end">
+  <port name="mmr_slave_address_0" internal="mmr_slave_address_0" />
+  <port
+     name="mmr_slave_beginbursttransfer_0"
+     internal="mmr_slave_beginbursttransfer_0" />
+  <port name="mmr_slave_burstcount_0" internal="mmr_slave_burstcount_0" />
+  <port name="mmr_slave_read_0" internal="mmr_slave_read_0" />
+  <port name="mmr_slave_readdata_0" internal="mmr_slave_readdata_0" />
+  <port name="mmr_slave_readdatavalid_0" internal="mmr_slave_readdatavalid_0" />
+  <port name="mmr_slave_waitrequest_0" internal="mmr_slave_waitrequest_0" />
+  <port name="mmr_slave_write_0" internal="mmr_slave_write_0" />
+  <port name="mmr_slave_writedata_0" internal="mmr_slave_writedata_0" />
+ </interface>
+ <interface
+   name="emif_usr_clk"
+   internal="emif_0.emif_usr_clk"
+   type="clock"
+   dir="start">
+  <port name="emif_usr_clk" internal="emif_usr_clk" />
+ </interface>
+ <interface
+   name="emif_usr_reset_n"
+   internal="emif_0.emif_usr_reset_n"
+   type="reset"
+   dir="start">
+  <port name="emif_usr_reset_n" internal="emif_usr_reset_n" />
+ </interface>
+ <interface
+   name="global_reset_n"
+   internal="emif_0.global_reset_n"
+   type="reset"
+   dir="end">
+  <port name="global_reset_n" internal="global_reset_n" />
+ </interface>
+ <interface name="mem" internal="emif_0.mem" type="conduit" dir="end">
+  <port name="mem_a" internal="mem_a" />
+  <port name="mem_act_n" internal="mem_act_n" />
+  <port name="mem_alert_n" internal="mem_alert_n" />
+  <port name="mem_ba" internal="mem_ba" />
+  <port name="mem_bg" internal="mem_bg" />
+  <port name="mem_ck" internal="mem_ck" />
+  <port name="mem_ck_n" internal="mem_ck_n" />
+  <port name="mem_cke" internal="mem_cke" />
+  <port name="mem_cs_n" internal="mem_cs_n" />
+  <port name="mem_dbi_n" internal="mem_dbi_n" />
+  <port name="mem_dq" internal="mem_dq" />
+  <port name="mem_dqs" internal="mem_dqs" />
+  <port name="mem_dqs_n" internal="mem_dqs_n" />
+  <port name="mem_odt" internal="mem_odt" />
+  <port name="mem_par" internal="mem_par" />
+  <port name="mem_reset_n" internal="mem_reset_n" />
+ </interface>
+ <interface name="oct" internal="emif_0.oct" type="conduit" dir="end">
+  <port name="oct_rzqin" internal="oct_rzqin" />
+ </interface>
+ <interface
+   name="pll_ref_clk"
+   internal="emif_0.pll_ref_clk"
+   type="clock"
+   dir="end">
+  <port name="pll_ref_clk" internal="pll_ref_clk" />
+ </interface>
+ <interface name="status" internal="emif_0.status" type="conduit" dir="end">
+  <port name="local_cal_fail" internal="local_cal_fail" />
+  <port name="local_cal_success" internal="local_cal_success" />
+ </interface>
+ <module
+   name="emif_0"
+   kind="altera_emif"
+   version="19.1.0"
+   enabled="1"
+   autoexport="1">
+  <parameter name="BOARD_DDR3_AC_TO_CK_SKEW_NS" value="0.0" />
+  <parameter name="BOARD_DDR3_BRD_SKEW_WITHIN_AC_NS" value="0.02" />
+  <parameter name="BOARD_DDR3_BRD_SKEW_WITHIN_DQS_NS" value="0.02" />
+  <parameter name="BOARD_DDR3_DQS_TO_CK_SKEW_NS" value="0.02" />
+  <parameter name="BOARD_DDR3_IS_SKEW_WITHIN_AC_DESKEWED" value="true" />
+  <parameter name="BOARD_DDR3_IS_SKEW_WITHIN_DQS_DESKEWED" value="false" />
+  <parameter name="BOARD_DDR3_MAX_CK_DELAY_NS" value="0.6" />
+  <parameter name="BOARD_DDR3_MAX_DQS_DELAY_NS" value="0.6" />
+  <parameter name="BOARD_DDR3_PKG_BRD_SKEW_WITHIN_AC_NS" value="0.02" />
+  <parameter name="BOARD_DDR3_PKG_BRD_SKEW_WITHIN_DQS_NS" value="0.02" />
+  <parameter name="BOARD_DDR3_SKEW_BETWEEN_DIMMS_NS" value="0.05" />
+  <parameter name="BOARD_DDR3_SKEW_BETWEEN_DQS_NS" value="0.02" />
+  <parameter name="BOARD_DDR3_USER_AC_ISI_NS" value="0.0" />
+  <parameter name="BOARD_DDR3_USER_AC_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_DDR3_USER_CK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_DDR3_USER_RCLK_ISI_NS" value="0.0" />
+  <parameter name="BOARD_DDR3_USER_RCLK_SLEW_RATE" value="5.0" />
+  <parameter name="BOARD_DDR3_USER_RDATA_ISI_NS" value="0.0" />
+  <parameter name="BOARD_DDR3_USER_RDATA_SLEW_RATE" value="2.5" />
+  <parameter name="BOARD_DDR3_USER_WCLK_ISI_NS" value="0.0" />
+  <parameter name="BOARD_DDR3_USER_WCLK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_DDR3_USER_WDATA_ISI_NS" value="0.0" />
+  <parameter name="BOARD_DDR3_USER_WDATA_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_DDR3_USE_DEFAULT_ISI_VALUES" value="true" />
+  <parameter name="BOARD_DDR3_USE_DEFAULT_SLEW_RATES" value="true" />
+  <parameter name="BOARD_DDR4_AC_TO_CK_SKEW_NS" value="5.0E-4" />
+  <parameter name="BOARD_DDR4_BRD_SKEW_WITHIN_AC_NS" value="0.0055" />
+  <parameter name="BOARD_DDR4_BRD_SKEW_WITHIN_DQS_NS" value="0.006" />
+  <parameter name="BOARD_DDR4_DQS_TO_CK_SKEW_NS" value="-0.2285" />
+  <parameter name="BOARD_DDR4_IS_SKEW_WITHIN_AC_DESKEWED" value="false" />
+  <parameter name="BOARD_DDR4_IS_SKEW_WITHIN_DQS_DESKEWED" value="false" />
+  <parameter name="BOARD_DDR4_MAX_CK_DELAY_NS" value="0.231" />
+  <parameter name="BOARD_DDR4_MAX_DQS_DELAY_NS" value="0.291" />
+  <parameter name="BOARD_DDR4_PKG_BRD_SKEW_WITHIN_AC_NS" value="0.02" />
+  <parameter name="BOARD_DDR4_PKG_BRD_SKEW_WITHIN_DQS_NS" value="0.072" />
+  <parameter name="BOARD_DDR4_SKEW_BETWEEN_DIMMS_NS" value="0.0" />
+  <parameter name="BOARD_DDR4_SKEW_BETWEEN_DQS_NS" value="0.137" />
+  <parameter name="BOARD_DDR4_USER_AC_ISI_NS" value="0.0" />
+  <parameter name="BOARD_DDR4_USER_AC_SLEW_RATE" value="1.16" />
+  <parameter name="BOARD_DDR4_USER_CK_SLEW_RATE" value="2.43" />
+  <parameter name="BOARD_DDR4_USER_RCLK_ISI_NS" value="0.0" />
+  <parameter name="BOARD_DDR4_USER_RCLK_SLEW_RATE" value="3.7" />
+  <parameter name="BOARD_DDR4_USER_RDATA_ISI_NS" value="0.0" />
+  <parameter name="BOARD_DDR4_USER_RDATA_SLEW_RATE" value="2.2" />
+  <parameter name="BOARD_DDR4_USER_WCLK_ISI_NS" value="0.0" />
+  <parameter name="BOARD_DDR4_USER_WCLK_SLEW_RATE" value="3.7" />
+  <parameter name="BOARD_DDR4_USER_WDATA_ISI_NS" value="0.0" />
+  <parameter name="BOARD_DDR4_USER_WDATA_SLEW_RATE" value="2.16" />
+  <parameter name="BOARD_DDR4_USE_DEFAULT_ISI_VALUES" value="true" />
+  <parameter name="BOARD_DDR4_USE_DEFAULT_SLEW_RATES" value="false" />
+  <parameter name="BOARD_LPDDR3_AC_TO_CK_SKEW_NS" value="0.0" />
+  <parameter name="BOARD_LPDDR3_BRD_SKEW_WITHIN_AC_NS" value="0.02" />
+  <parameter name="BOARD_LPDDR3_BRD_SKEW_WITHIN_DQS_NS" value="0.02" />
+  <parameter name="BOARD_LPDDR3_DQS_TO_CK_SKEW_NS" value="0.02" />
+  <parameter name="BOARD_LPDDR3_IS_SKEW_WITHIN_AC_DESKEWED" value="true" />
+  <parameter name="BOARD_LPDDR3_IS_SKEW_WITHIN_DQS_DESKEWED" value="false" />
+  <parameter name="BOARD_LPDDR3_MAX_CK_DELAY_NS" value="0.6" />
+  <parameter name="BOARD_LPDDR3_MAX_DQS_DELAY_NS" value="0.6" />
+  <parameter name="BOARD_LPDDR3_PKG_BRD_SKEW_WITHIN_AC_NS" value="0.02" />
+  <parameter name="BOARD_LPDDR3_PKG_BRD_SKEW_WITHIN_DQS_NS" value="0.02" />
+  <parameter name="BOARD_LPDDR3_SKEW_BETWEEN_DIMMS_NS" value="0.05" />
+  <parameter name="BOARD_LPDDR3_SKEW_BETWEEN_DQS_NS" value="0.02" />
+  <parameter name="BOARD_LPDDR3_USER_AC_ISI_NS" value="0.0" />
+  <parameter name="BOARD_LPDDR3_USER_AC_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_LPDDR3_USER_CK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_LPDDR3_USER_RCLK_ISI_NS" value="0.0" />
+  <parameter name="BOARD_LPDDR3_USER_RCLK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_LPDDR3_USER_RDATA_ISI_NS" value="0.0" />
+  <parameter name="BOARD_LPDDR3_USER_RDATA_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_LPDDR3_USER_WCLK_ISI_NS" value="0.0" />
+  <parameter name="BOARD_LPDDR3_USER_WCLK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_LPDDR3_USER_WDATA_ISI_NS" value="0.0" />
+  <parameter name="BOARD_LPDDR3_USER_WDATA_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_LPDDR3_USE_DEFAULT_ISI_VALUES" value="true" />
+  <parameter name="BOARD_LPDDR3_USE_DEFAULT_SLEW_RATES" value="true" />
+  <parameter name="BOARD_QDR2_AC_TO_K_SKEW_NS" value="0.0" />
+  <parameter name="BOARD_QDR2_BRD_SKEW_WITHIN_AC_NS" value="0.02" />
+  <parameter name="BOARD_QDR2_BRD_SKEW_WITHIN_D_NS" value="0.02" />
+  <parameter name="BOARD_QDR2_BRD_SKEW_WITHIN_Q_NS" value="0.02" />
+  <parameter name="BOARD_QDR2_IS_SKEW_WITHIN_AC_DESKEWED" value="true" />
+  <parameter name="BOARD_QDR2_IS_SKEW_WITHIN_D_DESKEWED" value="false" />
+  <parameter name="BOARD_QDR2_IS_SKEW_WITHIN_Q_DESKEWED" value="false" />
+  <parameter name="BOARD_QDR2_MAX_K_DELAY_NS" value="0.6" />
+  <parameter name="BOARD_QDR2_PKG_BRD_SKEW_WITHIN_AC_NS" value="0.02" />
+  <parameter name="BOARD_QDR2_PKG_BRD_SKEW_WITHIN_D_NS" value="0.02" />
+  <parameter name="BOARD_QDR2_PKG_BRD_SKEW_WITHIN_Q_NS" value="0.02" />
+  <parameter name="BOARD_QDR2_USER_AC_ISI_NS" value="0.0" />
+  <parameter name="BOARD_QDR2_USER_AC_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_QDR2_USER_K_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_QDR2_USER_RCLK_ISI_NS" value="0.0" />
+  <parameter name="BOARD_QDR2_USER_RCLK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_QDR2_USER_RDATA_ISI_NS" value="0.0" />
+  <parameter name="BOARD_QDR2_USER_RDATA_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_QDR2_USER_WCLK_ISI_NS" value="0.0" />
+  <parameter name="BOARD_QDR2_USER_WDATA_ISI_NS" value="0.0" />
+  <parameter name="BOARD_QDR2_USER_WDATA_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_QDR2_USE_DEFAULT_ISI_VALUES" value="true" />
+  <parameter name="BOARD_QDR2_USE_DEFAULT_SLEW_RATES" value="true" />
+  <parameter name="BOARD_QDR4_AC_TO_CK_SKEW_NS" value="0.0" />
+  <parameter name="BOARD_QDR4_BRD_SKEW_WITHIN_AC_NS" value="0.02" />
+  <parameter name="BOARD_QDR4_BRD_SKEW_WITHIN_QK_NS" value="0.02" />
+  <parameter name="BOARD_QDR4_DK_TO_CK_SKEW_NS" value="-0.02" />
+  <parameter name="BOARD_QDR4_IS_SKEW_WITHIN_AC_DESKEWED" value="true" />
+  <parameter name="BOARD_QDR4_IS_SKEW_WITHIN_QK_DESKEWED" value="false" />
+  <parameter name="BOARD_QDR4_MAX_CK_DELAY_NS" value="0.6" />
+  <parameter name="BOARD_QDR4_MAX_DK_DELAY_NS" value="0.6" />
+  <parameter name="BOARD_QDR4_PKG_BRD_SKEW_WITHIN_AC_NS" value="0.02" />
+  <parameter name="BOARD_QDR4_PKG_BRD_SKEW_WITHIN_QK_NS" value="0.02" />
+  <parameter name="BOARD_QDR4_SKEW_BETWEEN_DIMMS_NS" value="0.05" />
+  <parameter name="BOARD_QDR4_SKEW_BETWEEN_DK_NS" value="0.02" />
+  <parameter name="BOARD_QDR4_USER_AC_ISI_NS" value="0.0" />
+  <parameter name="BOARD_QDR4_USER_AC_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_QDR4_USER_CK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_QDR4_USER_RCLK_ISI_NS" value="0.0" />
+  <parameter name="BOARD_QDR4_USER_RCLK_SLEW_RATE" value="5.0" />
+  <parameter name="BOARD_QDR4_USER_RDATA_ISI_NS" value="0.0" />
+  <parameter name="BOARD_QDR4_USER_RDATA_SLEW_RATE" value="2.5" />
+  <parameter name="BOARD_QDR4_USER_WCLK_ISI_NS" value="0.0" />
+  <parameter name="BOARD_QDR4_USER_WCLK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_QDR4_USER_WDATA_ISI_NS" value="0.0" />
+  <parameter name="BOARD_QDR4_USER_WDATA_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_QDR4_USE_DEFAULT_ISI_VALUES" value="true" />
+  <parameter name="BOARD_QDR4_USE_DEFAULT_SLEW_RATES" value="true" />
+  <parameter name="BOARD_RLD3_AC_TO_CK_SKEW_NS" value="0.0" />
+  <parameter name="BOARD_RLD3_BRD_SKEW_WITHIN_AC_NS" value="0.02" />
+  <parameter name="BOARD_RLD3_BRD_SKEW_WITHIN_QK_NS" value="0.02" />
+  <parameter name="BOARD_RLD3_DK_TO_CK_SKEW_NS" value="-0.02" />
+  <parameter name="BOARD_RLD3_IS_SKEW_WITHIN_AC_DESKEWED" value="true" />
+  <parameter name="BOARD_RLD3_IS_SKEW_WITHIN_QK_DESKEWED" value="false" />
+  <parameter name="BOARD_RLD3_MAX_CK_DELAY_NS" value="0.6" />
+  <parameter name="BOARD_RLD3_MAX_DK_DELAY_NS" value="0.6" />
+  <parameter name="BOARD_RLD3_PKG_BRD_SKEW_WITHIN_AC_NS" value="0.02" />
+  <parameter name="BOARD_RLD3_PKG_BRD_SKEW_WITHIN_QK_NS" value="0.02" />
+  <parameter name="BOARD_RLD3_SKEW_BETWEEN_DIMMS_NS" value="0.05" />
+  <parameter name="BOARD_RLD3_SKEW_BETWEEN_DK_NS" value="0.02" />
+  <parameter name="BOARD_RLD3_USER_AC_ISI_NS" value="0.0" />
+  <parameter name="BOARD_RLD3_USER_AC_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_RLD3_USER_CK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_RLD3_USER_RCLK_ISI_NS" value="0.0" />
+  <parameter name="BOARD_RLD3_USER_RCLK_SLEW_RATE" value="7.0" />
+  <parameter name="BOARD_RLD3_USER_RDATA_ISI_NS" value="0.0" />
+  <parameter name="BOARD_RLD3_USER_RDATA_SLEW_RATE" value="3.5" />
+  <parameter name="BOARD_RLD3_USER_WCLK_ISI_NS" value="0.0" />
+  <parameter name="BOARD_RLD3_USER_WCLK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_RLD3_USER_WDATA_ISI_NS" value="0.0" />
+  <parameter name="BOARD_RLD3_USER_WDATA_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_RLD3_USE_DEFAULT_ISI_VALUES" value="true" />
+  <parameter name="BOARD_RLD3_USE_DEFAULT_SLEW_RATES" value="true" />
+  <parameter name="CAL_DEBUG_CLOCK_FREQUENCY" value="50000000" />
+  <parameter name="CTRL_DDR3_ADDR_ORDER_ENUM">DDR3_CTRL_ADDR_ORDER_CS_R_B_C</parameter>
+  <parameter name="CTRL_DDR3_AUTO_POWER_DOWN_CYCS" value="32" />
+  <parameter name="CTRL_DDR3_AUTO_POWER_DOWN_EN" value="false" />
+  <parameter name="CTRL_DDR3_AUTO_PRECHARGE_EN" value="false" />
+  <parameter name="CTRL_DDR3_AVL_PROTOCOL_ENUM">CTRL_AVL_PROTOCOL_MM</parameter>
+  <parameter name="CTRL_DDR3_ECC_AUTO_CORRECTION_EN" value="false" />
+  <parameter name="CTRL_DDR3_ECC_EN" value="false" />
+  <parameter name="CTRL_DDR3_ECC_READDATAERROR_EN" value="false" />
+  <parameter name="CTRL_DDR3_MMR_EN" value="false" />
+  <parameter name="CTRL_DDR3_RD_TO_RD_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_DDR3_RD_TO_WR_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_DDR3_RD_TO_WR_SAME_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_DDR3_REORDER_EN" value="true" />
+  <parameter name="CTRL_DDR3_SELF_REFRESH_EN" value="false" />
+  <parameter name="CTRL_DDR3_STARVE_LIMIT" value="10" />
+  <parameter name="CTRL_DDR3_USER_PRIORITY_EN" value="false" />
+  <parameter name="CTRL_DDR3_USER_REFRESH_EN" value="false" />
+  <parameter name="CTRL_DDR3_WR_TO_RD_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_DDR3_WR_TO_RD_SAME_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_DDR3_WR_TO_WR_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_DDR4_ADDR_ORDER_ENUM">DDR4_CTRL_ADDR_ORDER_CS_R_B_C_BG</parameter>
+  <parameter name="CTRL_DDR4_AUTO_POWER_DOWN_CYCS" value="32" />
+  <parameter name="CTRL_DDR4_AUTO_POWER_DOWN_EN" value="false" />
+  <parameter name="CTRL_DDR4_AUTO_PRECHARGE_EN" value="false" />
+  <parameter name="CTRL_DDR4_AVL_PROTOCOL_ENUM">CTRL_AVL_PROTOCOL_MM</parameter>
+  <parameter name="CTRL_DDR4_ECC_AUTO_CORRECTION_EN" value="false" />
+  <parameter name="CTRL_DDR4_ECC_EN" value="false" />
+  <parameter name="CTRL_DDR4_ECC_READDATAERROR_EN" value="false" />
+  <parameter name="CTRL_DDR4_MMR_EN" value="true" />
+  <parameter name="CTRL_DDR4_RD_TO_RD_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_DDR4_RD_TO_WR_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_DDR4_RD_TO_WR_SAME_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_DDR4_REORDER_EN" value="true" />
+  <parameter name="CTRL_DDR4_SELF_REFRESH_EN" value="false" />
+  <parameter name="CTRL_DDR4_STARVE_LIMIT" value="10" />
+  <parameter name="CTRL_DDR4_USER_PRIORITY_EN" value="false" />
+  <parameter name="CTRL_DDR4_USER_REFRESH_EN" value="false" />
+  <parameter name="CTRL_DDR4_WR_TO_RD_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_DDR4_WR_TO_RD_SAME_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_DDR4_WR_TO_WR_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_LPDDR3_ADDR_ORDER_ENUM">LPDDR3_CTRL_ADDR_ORDER_CS_R_B_C</parameter>
+  <parameter name="CTRL_LPDDR3_AUTO_POWER_DOWN_CYCS" value="32" />
+  <parameter name="CTRL_LPDDR3_AUTO_POWER_DOWN_EN" value="false" />
+  <parameter name="CTRL_LPDDR3_AUTO_PRECHARGE_EN" value="false" />
+  <parameter name="CTRL_LPDDR3_AVL_PROTOCOL_ENUM">CTRL_AVL_PROTOCOL_MM</parameter>
+  <parameter name="CTRL_LPDDR3_MMR_EN" value="false" />
+  <parameter name="CTRL_LPDDR3_RD_TO_RD_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_LPDDR3_RD_TO_WR_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_LPDDR3_RD_TO_WR_SAME_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_LPDDR3_REORDER_EN" value="true" />
+  <parameter name="CTRL_LPDDR3_SELF_REFRESH_EN" value="false" />
+  <parameter name="CTRL_LPDDR3_STARVE_LIMIT" value="10" />
+  <parameter name="CTRL_LPDDR3_USER_PRIORITY_EN" value="false" />
+  <parameter name="CTRL_LPDDR3_USER_REFRESH_EN" value="false" />
+  <parameter name="CTRL_LPDDR3_WR_TO_RD_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_LPDDR3_WR_TO_RD_SAME_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_LPDDR3_WR_TO_WR_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_QDR2_AVL_ENABLE_POWER_OF_TWO_BUS" value="false" />
+  <parameter name="CTRL_QDR2_AVL_MAX_BURST_COUNT" value="4" />
+  <parameter name="CTRL_QDR2_AVL_PROTOCOL_ENUM">CTRL_AVL_PROTOCOL_MM</parameter>
+  <parameter name="CTRL_QDR4_ADD_RAW_TURNAROUND_DELAY_CYC" value="0" />
+  <parameter name="CTRL_QDR4_ADD_WAR_TURNAROUND_DELAY_CYC" value="0" />
+  <parameter name="CTRL_QDR4_AVL_ENABLE_POWER_OF_TWO_BUS" value="false" />
+  <parameter name="CTRL_QDR4_AVL_MAX_BURST_COUNT" value="4" />
+  <parameter name="CTRL_QDR4_AVL_PROTOCOL_ENUM">CTRL_AVL_PROTOCOL_MM</parameter>
+  <parameter name="CTRL_QDR4_DEF_RAW_TURNAROUND_DELAY_CYC" value="4" />
+  <parameter name="CTRL_RLD2_AVL_PROTOCOL_ENUM">CTRL_AVL_PROTOCOL_MM</parameter>
+  <parameter name="CTRL_RLD3_ADDR_ORDER_ENUM">RLD3_CTRL_ADDR_ORDER_CS_R_B_C</parameter>
+  <parameter name="CTRL_RLD3_AVL_PROTOCOL_ENUM">CTRL_AVL_PROTOCOL_MM</parameter>
+  <parameter name="DIAG_BOARD_DELAY_CONFIG_STR" value="" />
+  <parameter name="DIAG_DB_RESET_AUTO_RELEASE" value="avl_release" />
+  <parameter name="DIAG_DDR3_ABSTRACT_PHY" value="false" />
+  <parameter name="DIAG_DDR3_BYPASS_DEFAULT_PATTERN" value="false" />
+  <parameter name="DIAG_DDR3_BYPASS_USER_STAGE" value="true" />
+  <parameter name="DIAG_DDR3_CAL_ADDR0" value="0" />
+  <parameter name="DIAG_DDR3_CAL_ADDR1" value="8" />
+  <parameter name="DIAG_DDR3_CAL_ENABLE_MICRON_AP" value="false" />
+  <parameter name="DIAG_DDR3_CAL_ENABLE_NON_DES" value="false" />
+  <parameter name="DIAG_DDR3_CAL_FULL_CAL_ON_RESET" value="true" />
+  <parameter name="DIAG_DDR3_CA_DESKEW_EN" value="false" />
+  <parameter name="DIAG_DDR3_CA_LEVEL_EN" value="true" />
+  <parameter name="DIAG_DDR3_DISABLE_AFI_P2C_REGISTERS" value="false" />
+  <parameter name="DIAG_DDR3_EFFICIENCY_MONITOR">EFFMON_MODE_DISABLED</parameter>
+  <parameter name="DIAG_DDR3_EXPORT_SEQ_AVALON_HEAD_OF_CHAIN" value="true" />
+  <parameter name="DIAG_DDR3_EXPORT_SEQ_AVALON_MASTER" value="false" />
+  <parameter name="DIAG_DDR3_EXPORT_SEQ_AVALON_SLAVE">CAL_DEBUG_EXPORT_MODE_DISABLED</parameter>
+  <parameter name="DIAG_DDR3_EXPORT_TG_CFG_AVALON_SLAVE">TG_CFG_AMM_EXPORT_MODE_EXPORT</parameter>
+  <parameter name="DIAG_DDR3_EX_DESIGN_ISSP_EN" value="true" />
+  <parameter name="DIAG_DDR3_EX_DESIGN_NUM_OF_SLAVES" value="1" />
+  <parameter name="DIAG_DDR3_EX_DESIGN_SEPARATE_RZQS" value="false" />
+  <parameter name="DIAG_DDR3_INFI_TG2_ERR_TEST" value="false" />
+  <parameter name="DIAG_DDR3_INTERFACE_ID" value="0" />
+  <parameter name="DIAG_DDR3_SEPARATE_READ_WRITE_ITFS" value="false" />
+  <parameter name="DIAG_DDR3_SIM_CAL_MODE_ENUM" value="SIM_CAL_MODE_SKIP" />
+  <parameter name="DIAG_DDR3_SIM_VERBOSE" value="true" />
+  <parameter name="DIAG_DDR3_USER_SIM_MEMORY_PRELOAD" value="false" />
+  <parameter name="DIAG_DDR3_USER_SIM_MEMORY_PRELOAD_PRI_EMIF_FILE">EMIF_PRI_PRELOAD.txt</parameter>
+  <parameter name="DIAG_DDR3_USER_SIM_MEMORY_PRELOAD_SEC_EMIF_FILE">EMIF_SEC_PRELOAD.txt</parameter>
+  <parameter name="DIAG_DDR3_USER_USE_SIM_MEMORY_VALIDATION_TG" value="true" />
+  <parameter name="DIAG_DDR3_USE_TG_AVL_2" value="false" />
+  <parameter name="DIAG_DDR4_ABSTRACT_PHY" value="false" />
+  <parameter name="DIAG_DDR4_BYPASS_DEFAULT_PATTERN" value="false" />
+  <parameter name="DIAG_DDR4_BYPASS_USER_STAGE" value="true" />
+  <parameter name="DIAG_DDR4_CAL_ADDR0" value="0" />
+  <parameter name="DIAG_DDR4_CAL_ADDR1" value="8" />
+  <parameter name="DIAG_DDR4_CAL_ENABLE_NON_DES" value="false" />
+  <parameter name="DIAG_DDR4_CAL_FULL_CAL_ON_RESET" value="true" />
+  <parameter name="DIAG_DDR4_DISABLE_AFI_P2C_REGISTERS" value="false" />
+  <parameter name="DIAG_DDR4_EFFICIENCY_MONITOR">EFFMON_MODE_DISABLED</parameter>
+  <parameter name="DIAG_DDR4_EXPORT_SEQ_AVALON_HEAD_OF_CHAIN" value="true" />
+  <parameter name="DIAG_DDR4_EXPORT_SEQ_AVALON_MASTER" value="false" />
+  <parameter name="DIAG_DDR4_EXPORT_SEQ_AVALON_SLAVE">CAL_DEBUG_EXPORT_MODE_JTAG</parameter>
+  <parameter name="DIAG_DDR4_EXPORT_TG_CFG_AVALON_SLAVE">TG_CFG_AMM_EXPORT_MODE_EXPORT</parameter>
+  <parameter name="DIAG_DDR4_EX_DESIGN_ISSP_EN" value="true" />
+  <parameter name="DIAG_DDR4_EX_DESIGN_NUM_OF_SLAVES" value="1" />
+  <parameter name="DIAG_DDR4_EX_DESIGN_SEPARATE_RZQS" value="false" />
+  <parameter name="DIAG_DDR4_INFI_TG2_ERR_TEST" value="false" />
+  <parameter name="DIAG_DDR4_INTERFACE_ID" value="0" />
+  <parameter name="DIAG_DDR4_SEPARATE_READ_WRITE_ITFS" value="false" />
+  <parameter name="DIAG_DDR4_SIM_CAL_MODE_ENUM" value="SIM_CAL_MODE_SKIP" />
+  <parameter name="DIAG_DDR4_SIM_VERBOSE" value="true" />
+  <parameter name="DIAG_DDR4_SKIP_CA_DESKEW" value="false" />
+  <parameter name="DIAG_DDR4_SKIP_CA_LEVEL" value="false" />
+  <parameter name="DIAG_DDR4_SKIP_VREF_CAL" value="true" />
+  <parameter name="DIAG_DDR4_USER_SIM_MEMORY_PRELOAD" value="false" />
+  <parameter name="DIAG_DDR4_USER_SIM_MEMORY_PRELOAD_PRI_EMIF_FILE">EMIF_PRI_PRELOAD.txt</parameter>
+  <parameter name="DIAG_DDR4_USER_SIM_MEMORY_PRELOAD_SEC_EMIF_FILE">EMIF_SEC_PRELOAD.txt</parameter>
+  <parameter name="DIAG_DDR4_USER_USE_SIM_MEMORY_VALIDATION_TG" value="true" />
+  <parameter name="DIAG_DDR4_USE_TG_AVL_2" value="false" />
+  <parameter name="DIAG_ECLIPSE_DEBUG" value="false" />
+  <parameter name="DIAG_ENABLE_HPS_EMIF_DEBUG" value="false" />
+  <parameter name="DIAG_ENABLE_JTAG_UART" value="false" />
+  <parameter name="DIAG_ENABLE_JTAG_UART_HEX" value="false" />
+  <parameter name="DIAG_EXPORT_PLL_LOCKED" value="false" />
+  <parameter name="DIAG_EXPORT_PLL_REF_CLK_OUT" value="false" />
+  <parameter name="DIAG_EXPORT_VJI" value="false" />
+  <parameter name="DIAG_EXPOSE_DFT_SIGNALS" value="false" />
+  <parameter name="DIAG_EXTRA_CONFIGS" value="" />
+  <parameter name="DIAG_EXT_DOCS" value="false" />
+  <parameter name="DIAG_EX_DESIGN_ADD_TEST_EMIFS" value="" />
+  <parameter name="DIAG_EX_DESIGN_SEPARATE_RESETS" value="false" />
+  <parameter name="DIAG_FAST_SIM_OVERRIDE">FAST_SIM_OVERRIDE_DEFAULT</parameter>
+  <parameter name="DIAG_HMC_HRC" value="auto" />
+  <parameter name="DIAG_LPDDR3_ABSTRACT_PHY" value="false" />
+  <parameter name="DIAG_LPDDR3_BYPASS_DEFAULT_PATTERN" value="false" />
+  <parameter name="DIAG_LPDDR3_BYPASS_USER_STAGE" value="true" />
+  <parameter name="DIAG_LPDDR3_DISABLE_AFI_P2C_REGISTERS" value="false" />
+  <parameter name="DIAG_LPDDR3_EFFICIENCY_MONITOR">EFFMON_MODE_DISABLED</parameter>
+  <parameter name="DIAG_LPDDR3_EXPORT_SEQ_AVALON_HEAD_OF_CHAIN" value="true" />
+  <parameter name="DIAG_LPDDR3_EXPORT_SEQ_AVALON_MASTER" value="false" />
+  <parameter name="DIAG_LPDDR3_EXPORT_SEQ_AVALON_SLAVE">CAL_DEBUG_EXPORT_MODE_DISABLED</parameter>
+  <parameter name="DIAG_LPDDR3_EXPORT_TG_CFG_AVALON_SLAVE">TG_CFG_AMM_EXPORT_MODE_EXPORT</parameter>
+  <parameter name="DIAG_LPDDR3_EX_DESIGN_ISSP_EN" value="true" />
+  <parameter name="DIAG_LPDDR3_EX_DESIGN_NUM_OF_SLAVES" value="1" />
+  <parameter name="DIAG_LPDDR3_EX_DESIGN_SEPARATE_RZQS" value="false" />
+  <parameter name="DIAG_LPDDR3_INFI_TG2_ERR_TEST" value="false" />
+  <parameter name="DIAG_LPDDR3_INTERFACE_ID" value="0" />
+  <parameter name="DIAG_LPDDR3_SEPARATE_READ_WRITE_ITFS" value="false" />
+  <parameter name="DIAG_LPDDR3_SIM_CAL_MODE_ENUM" value="SIM_CAL_MODE_SKIP" />
+  <parameter name="DIAG_LPDDR3_SIM_VERBOSE" value="true" />
+  <parameter name="DIAG_LPDDR3_SKIP_CA_DESKEW" value="false" />
+  <parameter name="DIAG_LPDDR3_SKIP_CA_LEVEL" value="false" />
+  <parameter name="DIAG_LPDDR3_USER_SIM_MEMORY_PRELOAD" value="false" />
+  <parameter name="DIAG_LPDDR3_USER_SIM_MEMORY_PRELOAD_PRI_EMIF_FILE">EMIF_PRI_PRELOAD.txt</parameter>
+  <parameter name="DIAG_LPDDR3_USER_SIM_MEMORY_PRELOAD_SEC_EMIF_FILE">EMIF_SEC_PRELOAD.txt</parameter>
+  <parameter name="DIAG_LPDDR3_USER_USE_SIM_MEMORY_VALIDATION_TG" value="true" />
+  <parameter name="DIAG_LPDDR3_USE_TG_AVL_2" value="false" />
+  <parameter name="DIAG_QDR2_ABSTRACT_PHY" value="false" />
+  <parameter name="DIAG_QDR2_BYPASS_DEFAULT_PATTERN" value="false" />
+  <parameter name="DIAG_QDR2_BYPASS_USER_STAGE" value="true" />
+  <parameter name="DIAG_QDR2_DISABLE_AFI_P2C_REGISTERS" value="false" />
+  <parameter name="DIAG_QDR2_EFFICIENCY_MONITOR">EFFMON_MODE_DISABLED</parameter>
+  <parameter name="DIAG_QDR2_EXPORT_SEQ_AVALON_HEAD_OF_CHAIN" value="true" />
+  <parameter name="DIAG_QDR2_EXPORT_SEQ_AVALON_MASTER" value="false" />
+  <parameter name="DIAG_QDR2_EXPORT_SEQ_AVALON_SLAVE">CAL_DEBUG_EXPORT_MODE_DISABLED</parameter>
+  <parameter name="DIAG_QDR2_EXPORT_TG_CFG_AVALON_SLAVE">TG_CFG_AMM_EXPORT_MODE_EXPORT</parameter>
+  <parameter name="DIAG_QDR2_EX_DESIGN_ISSP_EN" value="true" />
+  <parameter name="DIAG_QDR2_EX_DESIGN_NUM_OF_SLAVES" value="1" />
+  <parameter name="DIAG_QDR2_EX_DESIGN_SEPARATE_RZQS" value="false" />
+  <parameter name="DIAG_QDR2_INFI_TG2_ERR_TEST" value="false" />
+  <parameter name="DIAG_QDR2_INTERFACE_ID" value="0" />
+  <parameter name="DIAG_QDR2_SEPARATE_READ_WRITE_ITFS" value="false" />
+  <parameter name="DIAG_QDR2_SIM_CAL_MODE_ENUM" value="SIM_CAL_MODE_SKIP" />
+  <parameter name="DIAG_QDR2_SIM_VERBOSE" value="true" />
+  <parameter name="DIAG_QDR2_USER_SIM_MEMORY_PRELOAD" value="false" />
+  <parameter name="DIAG_QDR2_USER_SIM_MEMORY_PRELOAD_PRI_EMIF_FILE">EMIF_PRI_PRELOAD.txt</parameter>
+  <parameter name="DIAG_QDR2_USER_SIM_MEMORY_PRELOAD_SEC_EMIF_FILE">EMIF_SEC_PRELOAD.txt</parameter>
+  <parameter name="DIAG_QDR2_USER_USE_SIM_MEMORY_VALIDATION_TG" value="true" />
+  <parameter name="DIAG_QDR2_USE_TG_AVL_2" value="false" />
+  <parameter name="DIAG_QDR4_ABSTRACT_PHY" value="false" />
+  <parameter name="DIAG_QDR4_BYPASS_DEFAULT_PATTERN" value="false" />
+  <parameter name="DIAG_QDR4_BYPASS_USER_STAGE" value="true" />
+  <parameter name="DIAG_QDR4_DISABLE_AFI_P2C_REGISTERS" value="false" />
+  <parameter name="DIAG_QDR4_EFFICIENCY_MONITOR">EFFMON_MODE_DISABLED</parameter>
+  <parameter name="DIAG_QDR4_EXPORT_SEQ_AVALON_HEAD_OF_CHAIN" value="true" />
+  <parameter name="DIAG_QDR4_EXPORT_SEQ_AVALON_MASTER" value="false" />
+  <parameter name="DIAG_QDR4_EXPORT_SEQ_AVALON_SLAVE">CAL_DEBUG_EXPORT_MODE_DISABLED</parameter>
+  <parameter name="DIAG_QDR4_EXPORT_TG_CFG_AVALON_SLAVE">TG_CFG_AMM_EXPORT_MODE_EXPORT</parameter>
+  <parameter name="DIAG_QDR4_EX_DESIGN_ISSP_EN" value="true" />
+  <parameter name="DIAG_QDR4_EX_DESIGN_NUM_OF_SLAVES" value="1" />
+  <parameter name="DIAG_QDR4_EX_DESIGN_SEPARATE_RZQS" value="false" />
+  <parameter name="DIAG_QDR4_INFI_TG2_ERR_TEST" value="false" />
+  <parameter name="DIAG_QDR4_INTERFACE_ID" value="0" />
+  <parameter name="DIAG_QDR4_SEPARATE_READ_WRITE_ITFS" value="false" />
+  <parameter name="DIAG_QDR4_SIM_CAL_MODE_ENUM" value="SIM_CAL_MODE_SKIP" />
+  <parameter name="DIAG_QDR4_SIM_VERBOSE" value="true" />
+  <parameter name="DIAG_QDR4_SKIP_VREF_CAL" value="false" />
+  <parameter name="DIAG_QDR4_USER_SIM_MEMORY_PRELOAD" value="false" />
+  <parameter name="DIAG_QDR4_USER_SIM_MEMORY_PRELOAD_PRI_EMIF_FILE">EMIF_PRI_PRELOAD.txt</parameter>
+  <parameter name="DIAG_QDR4_USER_SIM_MEMORY_PRELOAD_SEC_EMIF_FILE">EMIF_SEC_PRELOAD.txt</parameter>
+  <parameter name="DIAG_QDR4_USER_USE_SIM_MEMORY_VALIDATION_TG" value="true" />
+  <parameter name="DIAG_QDR4_USE_TG_AVL_2" value="false" />
+  <parameter name="DIAG_RLD2_ABSTRACT_PHY" value="false" />
+  <parameter name="DIAG_RLD2_BYPASS_DEFAULT_PATTERN" value="false" />
+  <parameter name="DIAG_RLD2_BYPASS_USER_STAGE" value="true" />
+  <parameter name="DIAG_RLD2_DISABLE_AFI_P2C_REGISTERS" value="false" />
+  <parameter name="DIAG_RLD2_EFFICIENCY_MONITOR">EFFMON_MODE_DISABLED</parameter>
+  <parameter name="DIAG_RLD2_EXPORT_SEQ_AVALON_HEAD_OF_CHAIN" value="true" />
+  <parameter name="DIAG_RLD2_EXPORT_SEQ_AVALON_MASTER" value="false" />
+  <parameter name="DIAG_RLD2_EXPORT_SEQ_AVALON_SLAVE">CAL_DEBUG_EXPORT_MODE_DISABLED</parameter>
+  <parameter name="DIAG_RLD2_EXPORT_TG_CFG_AVALON_SLAVE">TG_CFG_AMM_EXPORT_MODE_EXPORT</parameter>
+  <parameter name="DIAG_RLD2_EX_DESIGN_ISSP_EN" value="true" />
+  <parameter name="DIAG_RLD2_EX_DESIGN_NUM_OF_SLAVES" value="1" />
+  <parameter name="DIAG_RLD2_EX_DESIGN_SEPARATE_RZQS" value="false" />
+  <parameter name="DIAG_RLD2_INFI_TG2_ERR_TEST" value="false" />
+  <parameter name="DIAG_RLD2_INTERFACE_ID" value="0" />
+  <parameter name="DIAG_RLD2_SEPARATE_READ_WRITE_ITFS" value="false" />
+  <parameter name="DIAG_RLD2_SIM_CAL_MODE_ENUM" value="SIM_CAL_MODE_SKIP" />
+  <parameter name="DIAG_RLD2_SIM_VERBOSE" value="true" />
+  <parameter name="DIAG_RLD2_USER_SIM_MEMORY_PRELOAD" value="false" />
+  <parameter name="DIAG_RLD2_USER_SIM_MEMORY_PRELOAD_PRI_EMIF_FILE">EMIF_PRI_PRELOAD.txt</parameter>
+  <parameter name="DIAG_RLD2_USER_SIM_MEMORY_PRELOAD_SEC_EMIF_FILE">EMIF_SEC_PRELOAD.txt</parameter>
+  <parameter name="DIAG_RLD2_USER_USE_SIM_MEMORY_VALIDATION_TG" value="true" />
+  <parameter name="DIAG_RLD2_USE_TG_AVL_2" value="false" />
+  <parameter name="DIAG_RLD3_ABSTRACT_PHY" value="false" />
+  <parameter name="DIAG_RLD3_BYPASS_DEFAULT_PATTERN" value="false" />
+  <parameter name="DIAG_RLD3_BYPASS_USER_STAGE" value="true" />
+  <parameter name="DIAG_RLD3_CA_DESKEW_EN" value="false" />
+  <parameter name="DIAG_RLD3_CA_LEVEL_EN" value="false" />
+  <parameter name="DIAG_RLD3_DISABLE_AFI_P2C_REGISTERS" value="false" />
+  <parameter name="DIAG_RLD3_EFFICIENCY_MONITOR">EFFMON_MODE_DISABLED</parameter>
+  <parameter name="DIAG_RLD3_EXPORT_SEQ_AVALON_HEAD_OF_CHAIN" value="true" />
+  <parameter name="DIAG_RLD3_EXPORT_SEQ_AVALON_MASTER" value="false" />
+  <parameter name="DIAG_RLD3_EXPORT_SEQ_AVALON_SLAVE">CAL_DEBUG_EXPORT_MODE_DISABLED</parameter>
+  <parameter name="DIAG_RLD3_EXPORT_TG_CFG_AVALON_SLAVE">TG_CFG_AMM_EXPORT_MODE_EXPORT</parameter>
+  <parameter name="DIAG_RLD3_EX_DESIGN_ISSP_EN" value="true" />
+  <parameter name="DIAG_RLD3_EX_DESIGN_NUM_OF_SLAVES" value="1" />
+  <parameter name="DIAG_RLD3_EX_DESIGN_SEPARATE_RZQS" value="false" />
+  <parameter name="DIAG_RLD3_INFI_TG2_ERR_TEST" value="false" />
+  <parameter name="DIAG_RLD3_INTERFACE_ID" value="0" />
+  <parameter name="DIAG_RLD3_SEPARATE_READ_WRITE_ITFS" value="false" />
+  <parameter name="DIAG_RLD3_SIM_CAL_MODE_ENUM" value="SIM_CAL_MODE_SKIP" />
+  <parameter name="DIAG_RLD3_SIM_VERBOSE" value="true" />
+  <parameter name="DIAG_RLD3_USER_SIM_MEMORY_PRELOAD" value="false" />
+  <parameter name="DIAG_RLD3_USER_SIM_MEMORY_PRELOAD_PRI_EMIF_FILE">EMIF_PRI_PRELOAD.txt</parameter>
+  <parameter name="DIAG_RLD3_USER_SIM_MEMORY_PRELOAD_SEC_EMIF_FILE">EMIF_SEC_PRELOAD.txt</parameter>
+  <parameter name="DIAG_RLD3_USER_USE_SIM_MEMORY_VALIDATION_TG" value="true" />
+  <parameter name="DIAG_RLD3_USE_TG_AVL_2" value="false" />
+  <parameter name="DIAG_RS232_UART_BAUDRATE" value="57600" />
+  <parameter name="DIAG_SEQ_RESET_AUTO_RELEASE" value="avl" />
+  <parameter name="DIAG_SIM_REGTEST_MODE" value="false" />
+  <parameter name="DIAG_SOFT_NIOS_CLOCK_FREQUENCY" value="100" />
+  <parameter name="DIAG_SOFT_NIOS_MODE">SOFT_NIOS_MODE_DISABLED</parameter>
+  <parameter name="DIAG_SYNTH_FOR_SIM" value="false" />
+  <parameter name="DIAG_TG_AVL_2_NUM_CFG_INTERFACES" value="0" />
+  <parameter name="DIAG_TIMING_REGTEST_MODE" value="false" />
+  <parameter name="DIAG_USE_BOARD_DELAY_MODEL" value="false" />
+  <parameter name="DIAG_USE_RS232_UART" value="false" />
+  <parameter name="DIAG_VERBOSE_IOAUX" value="false" />
+  <parameter name="EX_DESIGN_GUI_DDR3_GEN_SIM" value="true" />
+  <parameter name="EX_DESIGN_GUI_DDR3_GEN_SYNTH" value="true" />
+  <parameter name="EX_DESIGN_GUI_DDR3_HDL_FORMAT" value="HDL_FORMAT_VERILOG" />
+  <parameter name="EX_DESIGN_GUI_DDR3_PREV_PRESET" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_DDR3_SEL_DESIGN">AVAIL_EX_DESIGNS_GEN_DESIGN</parameter>
+  <parameter name="EX_DESIGN_GUI_DDR3_TARGET_DEV_KIT" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_DDR4_GEN_SIM" value="true" />
+  <parameter name="EX_DESIGN_GUI_DDR4_GEN_SYNTH" value="true" />
+  <parameter name="EX_DESIGN_GUI_DDR4_HDL_FORMAT" value="HDL_FORMAT_VERILOG" />
+  <parameter name="EX_DESIGN_GUI_DDR4_PREV_PRESET" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_DDR4_SEL_DESIGN">AVAIL_EX_DESIGNS_GEN_DESIGN</parameter>
+  <parameter name="EX_DESIGN_GUI_DDR4_TARGET_DEV_KIT" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_LPDDR3_GEN_SIM" value="true" />
+  <parameter name="EX_DESIGN_GUI_LPDDR3_GEN_SYNTH" value="true" />
+  <parameter name="EX_DESIGN_GUI_LPDDR3_HDL_FORMAT" value="HDL_FORMAT_VERILOG" />
+  <parameter name="EX_DESIGN_GUI_LPDDR3_PREV_PRESET" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_LPDDR3_SEL_DESIGN">AVAIL_EX_DESIGNS_GEN_DESIGN</parameter>
+  <parameter
+     name="EX_DESIGN_GUI_LPDDR3_TARGET_DEV_KIT"
+     value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_QDR2_GEN_SIM" value="true" />
+  <parameter name="EX_DESIGN_GUI_QDR2_GEN_SYNTH" value="true" />
+  <parameter name="EX_DESIGN_GUI_QDR2_HDL_FORMAT" value="HDL_FORMAT_VERILOG" />
+  <parameter name="EX_DESIGN_GUI_QDR2_PREV_PRESET" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_QDR2_SEL_DESIGN">AVAIL_EX_DESIGNS_GEN_DESIGN</parameter>
+  <parameter name="EX_DESIGN_GUI_QDR2_TARGET_DEV_KIT" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_QDR4_GEN_SIM" value="true" />
+  <parameter name="EX_DESIGN_GUI_QDR4_GEN_SYNTH" value="true" />
+  <parameter name="EX_DESIGN_GUI_QDR4_HDL_FORMAT" value="HDL_FORMAT_VERILOG" />
+  <parameter name="EX_DESIGN_GUI_QDR4_PREV_PRESET" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_QDR4_SEL_DESIGN">AVAIL_EX_DESIGNS_GEN_DESIGN</parameter>
+  <parameter name="EX_DESIGN_GUI_QDR4_TARGET_DEV_KIT" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_RLD2_GEN_SIM" value="true" />
+  <parameter name="EX_DESIGN_GUI_RLD2_GEN_SYNTH" value="true" />
+  <parameter name="EX_DESIGN_GUI_RLD2_HDL_FORMAT" value="HDL_FORMAT_VERILOG" />
+  <parameter name="EX_DESIGN_GUI_RLD2_PREV_PRESET" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_RLD2_SEL_DESIGN">AVAIL_EX_DESIGNS_GEN_DESIGN</parameter>
+  <parameter name="EX_DESIGN_GUI_RLD2_TARGET_DEV_KIT" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_RLD3_GEN_SIM" value="true" />
+  <parameter name="EX_DESIGN_GUI_RLD3_GEN_SYNTH" value="true" />
+  <parameter name="EX_DESIGN_GUI_RLD3_HDL_FORMAT" value="HDL_FORMAT_VERILOG" />
+  <parameter name="EX_DESIGN_GUI_RLD3_PREV_PRESET" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_RLD3_SEL_DESIGN">AVAIL_EX_DESIGNS_GEN_DESIGN</parameter>
+  <parameter name="EX_DESIGN_GUI_RLD3_TARGET_DEV_KIT" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="INTERNAL_TESTING_MODE" value="false" />
+  <parameter name="IS_ED_SLAVE" value="false" />
+  <parameter name="MEM_DDR3_ALERT_N_DQS_GROUP" value="0" />
+  <parameter name="MEM_DDR3_ALERT_N_PLACEMENT_ENUM">DDR3_ALERT_N_PLACEMENT_AC_LANES</parameter>
+  <parameter name="MEM_DDR3_ASR_ENUM" value="DDR3_ASR_MANUAL" />
+  <parameter name="MEM_DDR3_ATCL_ENUM" value="DDR3_ATCL_DISABLED" />
+  <parameter name="MEM_DDR3_BANK_ADDR_WIDTH" value="3" />
+  <parameter name="MEM_DDR3_BL_ENUM" value="DDR3_BL_BL8" />
+  <parameter name="MEM_DDR3_BT_ENUM" value="DDR3_BT_SEQUENTIAL" />
+  <parameter name="MEM_DDR3_CFG_GEN_DBE" value="false" />
+  <parameter name="MEM_DDR3_CFG_GEN_SBE" value="false" />
+  <parameter name="MEM_DDR3_CKE_PER_DIMM" value="1" />
+  <parameter name="MEM_DDR3_CK_WIDTH" value="1" />
+  <parameter name="MEM_DDR3_COL_ADDR_WIDTH" value="10" />
+  <parameter name="MEM_DDR3_DISCRETE_CS_WIDTH" value="1" />
+  <parameter name="MEM_DDR3_DISCRETE_MIRROR_ADDRESSING_EN" value="false" />
+  <parameter name="MEM_DDR3_DLL_EN" value="true" />
+  <parameter name="MEM_DDR3_DM_EN" value="true" />
+  <parameter name="MEM_DDR3_DQ_PER_DQS" value="8" />
+  <parameter name="MEM_DDR3_DQ_WIDTH" value="72" />
+  <parameter name="MEM_DDR3_DRV_STR_ENUM" value="DDR3_DRV_STR_RZQ_7" />
+  <parameter name="MEM_DDR3_FORMAT_ENUM" value="MEM_FORMAT_UDIMM" />
+  <parameter name="MEM_DDR3_HIDE_ADV_MR_SETTINGS" value="true" />
+  <parameter name="MEM_DDR3_LRDIMM_EXTENDED_CONFIG" value="000000000000000000" />
+  <parameter name="MEM_DDR3_MIRROR_ADDRESSING_EN" value="true" />
+  <parameter name="MEM_DDR3_NUM_OF_DIMMS" value="1" />
+  <parameter name="MEM_DDR3_PD_ENUM" value="DDR3_PD_OFF" />
+  <parameter name="MEM_DDR3_RANKS_PER_DIMM" value="1" />
+  <parameter name="MEM_DDR3_RDIMM_CONFIG" value="0000000000000000" />
+  <parameter name="MEM_DDR3_ROW_ADDR_WIDTH" value="15" />
+  <parameter name="MEM_DDR3_RTT_NOM_ENUM">DDR3_RTT_NOM_ODT_DISABLED</parameter>
+  <parameter name="MEM_DDR3_RTT_WR_ENUM" value="DDR3_RTT_WR_RZQ_4" />
+  <parameter name="MEM_DDR3_R_ODT0_1X1" value="off" />
+  <parameter name="MEM_DDR3_R_ODT0_2X2" value="off,off" />
+  <parameter name="MEM_DDR3_R_ODT0_4X2" value="off,off,on,on" />
+  <parameter name="MEM_DDR3_R_ODT0_4X4" value="off,off,off,off" />
+  <parameter name="MEM_DDR3_R_ODT1_2X2" value="off,off" />
+  <parameter name="MEM_DDR3_R_ODT1_4X2" value="on,on,off,off" />
+  <parameter name="MEM_DDR3_R_ODT1_4X4" value="off,off,on,on" />
+  <parameter name="MEM_DDR3_R_ODT2_4X4" value="off,off,off,off" />
+  <parameter name="MEM_DDR3_R_ODT3_4X4" value="on,on,off,off" />
+  <parameter name="MEM_DDR3_R_ODTN_1X1" value="Rank 0" />
+  <parameter name="MEM_DDR3_R_ODTN_2X2" value="Rank 0,Rank 1" />
+  <parameter name="MEM_DDR3_R_ODTN_4X2">Rank 0,Rank 1,Rank 2,Rank 3</parameter>
+  <parameter name="MEM_DDR3_R_ODTN_4X4">Rank 0,Rank 1,Rank 2,Rank 3</parameter>
+  <parameter name="MEM_DDR3_SPEEDBIN_ENUM" value="DDR3_SPEEDBIN_2133" />
+  <parameter name="MEM_DDR3_SRT_ENUM" value="DDR3_SRT_NORMAL" />
+  <parameter name="MEM_DDR3_TCL" value="14" />
+  <parameter name="MEM_DDR3_TDH_DC_MV" value="100" />
+  <parameter name="MEM_DDR3_TDH_PS" value="55" />
+  <parameter name="MEM_DDR3_TDQSCK_PS" value="180" />
+  <parameter name="MEM_DDR3_TDQSQ_PS" value="75" />
+  <parameter name="MEM_DDR3_TDQSS_CYC" value="0.27" />
+  <parameter name="MEM_DDR3_TDSH_CYC" value="0.18" />
+  <parameter name="MEM_DDR3_TDSS_CYC" value="0.18" />
+  <parameter name="MEM_DDR3_TDS_AC_MV" value="135" />
+  <parameter name="MEM_DDR3_TDS_PS" value="53" />
+  <parameter name="MEM_DDR3_TFAW_NS" value="25.0" />
+  <parameter name="MEM_DDR3_TIH_DC_MV" value="100" />
+  <parameter name="MEM_DDR3_TIH_PS" value="95" />
+  <parameter name="MEM_DDR3_TINIT_US" value="500" />
+  <parameter name="MEM_DDR3_TIS_AC_MV" value="135" />
+  <parameter name="MEM_DDR3_TIS_PS" value="60" />
+  <parameter name="MEM_DDR3_TMRD_CK_CYC" value="4" />
+  <parameter name="MEM_DDR3_TQH_CYC" value="0.38" />
+  <parameter name="MEM_DDR3_TQSH_CYC" value="0.4" />
+  <parameter name="MEM_DDR3_TRAS_NS" value="33.0" />
+  <parameter name="MEM_DDR3_TRCD_NS" value="13.09" />
+  <parameter name="MEM_DDR3_TREFI_US" value="7.8" />
+  <parameter name="MEM_DDR3_TRFC_NS" value="160.0" />
+  <parameter name="MEM_DDR3_TRP_NS" value="13.09" />
+  <parameter name="MEM_DDR3_TRRD_CYC" value="6" />
+  <parameter name="MEM_DDR3_TRTP_CYC" value="8" />
+  <parameter name="MEM_DDR3_TWLH_PS" value="125.0" />
+  <parameter name="MEM_DDR3_TWLS_PS" value="125.0" />
+  <parameter name="MEM_DDR3_TWR_NS" value="15.0" />
+  <parameter name="MEM_DDR3_TWTR_CYC" value="8" />
+  <parameter name="MEM_DDR3_USE_DEFAULT_ODT" value="true" />
+  <parameter name="MEM_DDR3_WTCL" value="10" />
+  <parameter name="MEM_DDR3_W_ODT0_1X1" value="on" />
+  <parameter name="MEM_DDR3_W_ODT0_2X2" value="on,off" />
+  <parameter name="MEM_DDR3_W_ODT0_4X2" value="off,off,on,on" />
+  <parameter name="MEM_DDR3_W_ODT0_4X4" value="on,on,off,off" />
+  <parameter name="MEM_DDR3_W_ODT1_2X2" value="off,on" />
+  <parameter name="MEM_DDR3_W_ODT1_4X2" value="on,on,off,off" />
+  <parameter name="MEM_DDR3_W_ODT1_4X4" value="off,off,on,on" />
+  <parameter name="MEM_DDR3_W_ODT2_4X4" value="off,off,on,on" />
+  <parameter name="MEM_DDR3_W_ODT3_4X4" value="on,on,off,off" />
+  <parameter name="MEM_DDR3_W_ODTN_1X1" value="Rank 0" />
+  <parameter name="MEM_DDR3_W_ODTN_2X2" value="Rank 0,Rank 1" />
+  <parameter name="MEM_DDR3_W_ODTN_4X2">Rank 0,Rank 1,Rank 2,Rank 3</parameter>
+  <parameter name="MEM_DDR3_W_ODTN_4X4">Rank 0,Rank 1,Rank 2,Rank 3</parameter>
+  <parameter name="MEM_DDR4_AC_PARITY_LATENCY">DDR4_AC_PARITY_LATENCY_DISABLE</parameter>
+  <parameter name="MEM_DDR4_AC_PERSISTENT_ERROR" value="false" />
+  <parameter name="MEM_DDR4_ALERT_N_AC_LANE" value="0" />
+  <parameter name="MEM_DDR4_ALERT_N_AC_PIN" value="0" />
+  <parameter name="MEM_DDR4_ALERT_N_DQS_GROUP" value="0" />
+  <parameter name="MEM_DDR4_ALERT_N_PLACEMENT_ENUM">DDR4_ALERT_N_PLACEMENT_DATA_LANES</parameter>
+  <parameter name="MEM_DDR4_ALERT_PAR_EN" value="true" />
+  <parameter name="MEM_DDR4_ASR_ENUM">DDR4_ASR_MANUAL_NORMAL</parameter>
+  <parameter name="MEM_DDR4_ATCL_ENUM" value="DDR4_ATCL_DISABLED" />
+  <parameter name="MEM_DDR4_BANK_ADDR_WIDTH" value="2" />
+  <parameter name="MEM_DDR4_BANK_GROUP_WIDTH" value="2" />
+  <parameter name="MEM_DDR4_BL_ENUM" value="DDR4_BL_BL8" />
+  <parameter name="MEM_DDR4_BT_ENUM" value="DDR4_BT_SEQUENTIAL" />
+  <parameter name="MEM_DDR4_CAL_MODE" value="0" />
+  <parameter name="MEM_DDR4_CFG_GEN_DBE" value="false" />
+  <parameter name="MEM_DDR4_CFG_GEN_SBE" value="false" />
+  <parameter name="MEM_DDR4_CHIP_ID_WIDTH" value="0" />
+  <parameter name="MEM_DDR4_CKE_PER_DIMM" value="1" />
+  <parameter name="MEM_DDR4_CK_WIDTH" value="2" />
+  <parameter name="MEM_DDR4_COL_ADDR_WIDTH" value="10" />
+  <parameter name="MEM_DDR4_DB_DQ_DRV_ENUM">DDR4_DB_DRV_STR_RZQ_7</parameter>
+  <parameter name="MEM_DDR4_DB_RTT_NOM_ENUM">DDR4_DB_RTT_NOM_ODT_DISABLED</parameter>
+  <parameter name="MEM_DDR4_DB_RTT_PARK_ENUM">DDR4_DB_RTT_PARK_ODT_DISABLED</parameter>
+  <parameter name="MEM_DDR4_DB_RTT_WR_ENUM">DDR4_DB_RTT_WR_RZQ_3</parameter>
+  <parameter name="MEM_DDR4_DEFAULT_VREFOUT" value="false" />
+  <parameter name="MEM_DDR4_DISCRETE_CS_WIDTH" value="1" />
+  <parameter name="MEM_DDR4_DISCRETE_MIRROR_ADDRESSING_EN" value="false" />
+  <parameter name="MEM_DDR4_DLL_EN" value="true" />
+  <parameter name="MEM_DDR4_DM_EN" value="true" />
+  <parameter name="MEM_DDR4_DQ_PER_DQS" value="8" />
+  <parameter name="MEM_DDR4_DQ_WIDTH" value="72" />
+  <parameter name="MEM_DDR4_DRV_STR_ENUM" value="DDR4_DRV_STR_RZQ_7" />
+  <parameter name="MEM_DDR4_FINE_GRANULARITY_REFRESH">DDR4_FINE_REFRESH_FIXED_1X</parameter>
+  <parameter name="MEM_DDR4_FORMAT_ENUM" value="MEM_FORMAT_SODIMM" />
+  <parameter name="MEM_DDR4_GEARDOWN" value="DDR4_GEARDOWN_HR" />
+  <parameter name="MEM_DDR4_HIDE_ADV_MR_SETTINGS" value="true" />
+  <parameter name="MEM_DDR4_INTERNAL_VREFDQ_MONITOR" value="false" />
+  <parameter name="MEM_DDR4_LRDIMM_ODT_LESS_BS" value="true" />
+  <parameter name="MEM_DDR4_LRDIMM_ODT_LESS_BS_PARK_OHM" value="240" />
+  <parameter name="MEM_DDR4_LRDIMM_VREFDQ_VALUE" value="1D" />
+  <parameter name="MEM_DDR4_MAX_POWERDOWN" value="false" />
+  <parameter name="MEM_DDR4_MIRROR_ADDRESSING_EN" value="true" />
+  <parameter name="MEM_DDR4_MPR_READ_FORMAT">DDR4_MPR_READ_FORMAT_SERIAL</parameter>
+  <parameter name="MEM_DDR4_NUM_OF_DIMMS" value="1" />
+  <parameter name="MEM_DDR4_ODT_IN_POWERDOWN" value="true" />
+  <parameter name="MEM_DDR4_PER_DRAM_ADDR" value="false" />
+  <parameter name="MEM_DDR4_RANKS_PER_DIMM" value="2" />
+  <parameter name="MEM_DDR4_RCD_CA_IBT_ENUM" value="DDR4_RCD_CA_IBT_100" />
+  <parameter name="MEM_DDR4_RCD_CKE_IBT_ENUM">DDR4_RCD_CKE_IBT_100</parameter>
+  <parameter name="MEM_DDR4_RCD_CS_IBT_ENUM" value="DDR4_RCD_CS_IBT_100" />
+  <parameter name="MEM_DDR4_RCD_ODT_IBT_ENUM">DDR4_RCD_ODT_IBT_100</parameter>
+  <parameter name="MEM_DDR4_READ_DBI" value="false" />
+  <parameter name="MEM_DDR4_READ_PREAMBLE" value="2" />
+  <parameter name="MEM_DDR4_READ_PREAMBLE_TRAINING" value="false" />
+  <parameter name="MEM_DDR4_ROW_ADDR_WIDTH" value="15" />
+  <parameter name="MEM_DDR4_RTT_NOM_ENUM" value="DDR4_RTT_NOM_RZQ_4" />
+  <parameter name="MEM_DDR4_RTT_PARK">DDR4_RTT_PARK_ODT_DISABLED</parameter>
+  <parameter name="MEM_DDR4_RTT_WR_ENUM">DDR4_RTT_WR_ODT_DISABLED</parameter>
+  <parameter name="MEM_DDR4_R_ODT0_1X1" value="on" />
+  <parameter name="MEM_DDR4_R_ODT0_2X2" value="on,off" />
+  <parameter name="MEM_DDR4_R_ODT0_4X2" value="off,off,on,on" />
+  <parameter name="MEM_DDR4_R_ODT0_4X4" value="off,off,off,off" />
+  <parameter name="MEM_DDR4_R_ODT1_2X2" value="off,on" />
+  <parameter name="MEM_DDR4_R_ODT1_4X2" value="on,on,off,off" />
+  <parameter name="MEM_DDR4_R_ODT1_4X4" value="off,off,on,on" />
+  <parameter name="MEM_DDR4_R_ODT2_4X4" value="off,off,off,off" />
+  <parameter name="MEM_DDR4_R_ODT3_4X4" value="on,on,off,off" />
+  <parameter name="MEM_DDR4_R_ODTN_1X1" value="Rank 0" />
+  <parameter name="MEM_DDR4_R_ODTN_2X2" value="Rank 0,Rank 1" />
+  <parameter name="MEM_DDR4_R_ODTN_4X2">Rank 0,Rank 1,Rank 2,Rank 3</parameter>
+  <parameter name="MEM_DDR4_R_ODTN_4X4">Rank 0,Rank 1,Rank 2,Rank 3</parameter>
+  <parameter name="MEM_DDR4_SELF_RFSH_ABORT" value="false" />
+  <parameter name="MEM_DDR4_SPD_133_RCD_DB_VENDOR_LSB" value="0" />
+  <parameter name="MEM_DDR4_SPD_134_RCD_DB_VENDOR_MSB" value="0" />
+  <parameter name="MEM_DDR4_SPD_135_RCD_REV" value="0" />
+  <parameter name="MEM_DDR4_SPD_137_RCD_CA_DRV" value="101" />
+  <parameter name="MEM_DDR4_SPD_138_RCD_CK_DRV" value="5" />
+  <parameter name="MEM_DDR4_SPD_139_DB_REV" value="0" />
+  <parameter name="MEM_DDR4_SPD_140_DRAM_VREFDQ_R0" value="29" />
+  <parameter name="MEM_DDR4_SPD_141_DRAM_VREFDQ_R1" value="29" />
+  <parameter name="MEM_DDR4_SPD_142_DRAM_VREFDQ_R2" value="29" />
+  <parameter name="MEM_DDR4_SPD_143_DRAM_VREFDQ_R3" value="29" />
+  <parameter name="MEM_DDR4_SPD_144_DB_VREFDQ" value="37" />
+  <parameter name="MEM_DDR4_SPD_145_DB_MDQ_DRV" value="21" />
+  <parameter name="MEM_DDR4_SPD_148_DRAM_DRV" value="0" />
+  <parameter name="MEM_DDR4_SPD_149_DRAM_RTT_WR_NOM" value="20" />
+  <parameter name="MEM_DDR4_SPD_152_DRAM_RTT_PARK" value="39" />
+  <parameter name="MEM_DDR4_SPEEDBIN_ENUM" value="DDR4_SPEEDBIN_2133" />
+  <parameter name="MEM_DDR4_TCCD_L_CYC" value="5" />
+  <parameter name="MEM_DDR4_TCCD_S_CYC" value="4" />
+  <parameter name="MEM_DDR4_TCL" value="11" />
+  <parameter name="MEM_DDR4_TDIVW_DJ_CYC" value="0.1" />
+  <parameter name="MEM_DDR4_TDIVW_TOTAL_UI" value="0.1" />
+  <parameter name="MEM_DDR4_TDQSCK_PS" value="170" />
+  <parameter name="MEM_DDR4_TDQSQ_PS" value="66" />
+  <parameter name="MEM_DDR4_TDQSQ_UI" value="0.16" />
+  <parameter name="MEM_DDR4_TDQSS_CYC" value="0.27" />
+  <parameter name="MEM_DDR4_TDSH_CYC" value="0.18" />
+  <parameter name="MEM_DDR4_TDSS_CYC" value="0.18" />
+  <parameter name="MEM_DDR4_TDVWP_UI" value="0.72" />
+  <parameter name="MEM_DDR4_TEMP_CONTROLLED_RFSH_ENA" value="false" />
+  <parameter name="MEM_DDR4_TEMP_CONTROLLED_RFSH_RANGE">DDR4_TEMP_CONTROLLED_RFSH_NORMAL</parameter>
+  <parameter name="MEM_DDR4_TEMP_SENSOR_READOUT" value="false" />
+  <parameter name="MEM_DDR4_TFAW_DLR_CYC" value="16" />
+  <parameter name="MEM_DDR4_TFAW_NS" value="21.0" />
+  <parameter name="MEM_DDR4_TIH_DC_MV" value="75" />
+  <parameter name="MEM_DDR4_TIH_PS" value="105" />
+  <parameter name="MEM_DDR4_TINIT_US" value="500" />
+  <parameter name="MEM_DDR4_TIS_AC_MV" value="100" />
+  <parameter name="MEM_DDR4_TIS_PS" value="80" />
+  <parameter name="MEM_DDR4_TMRD_CK_CYC" value="8" />
+  <parameter name="MEM_DDR4_TQH_CYC" value="0.38" />
+  <parameter name="MEM_DDR4_TQH_UI" value="0.76" />
+  <parameter name="MEM_DDR4_TQSH_CYC" value="0.38" />
+  <parameter name="MEM_DDR4_TRAS_NS" value="33.0" />
+  <parameter name="MEM_DDR4_TRCD_NS" value="14.06" />
+  <parameter name="MEM_DDR4_TREFI_US" value="7.8" />
+  <parameter name="MEM_DDR4_TRFC_DLR_NS" value="90.0" />
+  <parameter name="MEM_DDR4_TRFC_NS" value="260.0" />
+  <parameter name="MEM_DDR4_TRP_NS" value="14.06" />
+  <parameter name="MEM_DDR4_TRRD_DLR_CYC" value="4" />
+  <parameter name="MEM_DDR4_TRRD_L_CYC" value="5" />
+  <parameter name="MEM_DDR4_TRRD_S_CYC" value="3" />
+  <parameter name="MEM_DDR4_TWLH_CYC" value="0.13" />
+  <parameter name="MEM_DDR4_TWLH_PS" value="0.0" />
+  <parameter name="MEM_DDR4_TWLS_CYC" value="0.13" />
+  <parameter name="MEM_DDR4_TWLS_PS" value="0.0" />
+  <parameter name="MEM_DDR4_TWR_NS" value="15.0" />
+  <parameter name="MEM_DDR4_TWTR_L_CYC" value="6" />
+  <parameter name="MEM_DDR4_TWTR_S_CYC" value="2" />
+  <parameter name="MEM_DDR4_USER_VREFDQ_TRAINING_RANGE">DDR4_VREFDQ_TRAINING_RANGE_1</parameter>
+  <parameter name="MEM_DDR4_USER_VREFDQ_TRAINING_VALUE" value="68.0" />
+  <parameter name="MEM_DDR4_USE_DEFAULT_ODT" value="false" />
+  <parameter name="MEM_DDR4_VDIVW_TOTAL" value="136" />
+  <parameter name="MEM_DDR4_WRITE_CRC" value="false" />
+  <parameter name="MEM_DDR4_WRITE_DBI" value="false" />
+  <parameter name="MEM_DDR4_WRITE_PREAMBLE" value="1" />
+  <parameter name="MEM_DDR4_WTCL" value="9" />
+  <parameter name="MEM_DDR4_W_ODT0_1X1" value="on" />
+  <parameter name="MEM_DDR4_W_ODT0_2X2" value="on,off" />
+  <parameter name="MEM_DDR4_W_ODT0_4X2" value="off,off,on,on" />
+  <parameter name="MEM_DDR4_W_ODT0_4X4" value="on,on,off,off" />
+  <parameter name="MEM_DDR4_W_ODT1_2X2" value="off,on" />
+  <parameter name="MEM_DDR4_W_ODT1_4X2" value="on,on,off,off" />
+  <parameter name="MEM_DDR4_W_ODT1_4X4" value="off,off,on,on" />
+  <parameter name="MEM_DDR4_W_ODT2_4X4" value="off,off,on,on" />
+  <parameter name="MEM_DDR4_W_ODT3_4X4" value="on,on,off,off" />
+  <parameter name="MEM_DDR4_W_ODTN_1X1" value="Rank 0" />
+  <parameter name="MEM_DDR4_W_ODTN_2X2" value="Rank 0,Rank 1" />
+  <parameter name="MEM_DDR4_W_ODTN_4X2">Rank 0,Rank 1,Rank 2,Rank 3</parameter>
+  <parameter name="MEM_DDR4_W_ODTN_4X4">Rank 0,Rank 1,Rank 2,Rank 3</parameter>
+  <parameter name="MEM_LPDDR3_BANK_ADDR_WIDTH" value="3" />
+  <parameter name="MEM_LPDDR3_BL" value="LPDDR3_BL_BL8" />
+  <parameter name="MEM_LPDDR3_CK_WIDTH" value="1" />
+  <parameter name="MEM_LPDDR3_COL_ADDR_WIDTH" value="10" />
+  <parameter name="MEM_LPDDR3_DATA_LATENCY" value="LPDDR3_DL_RL12_WL6" />
+  <parameter name="MEM_LPDDR3_DISCRETE_CS_WIDTH" value="1" />
+  <parameter name="MEM_LPDDR3_DM_EN" value="true" />
+  <parameter name="MEM_LPDDR3_DQODT">LPDDR3_DQODT_DISABLE</parameter>
+  <parameter name="MEM_LPDDR3_DQ_WIDTH" value="32" />
+  <parameter name="MEM_LPDDR3_DRV_STR">LPDDR3_DRV_STR_40D_40U</parameter>
+  <parameter name="MEM_LPDDR3_PDODT">LPDDR3_PDODT_DISABLED</parameter>
+  <parameter name="MEM_LPDDR3_ROW_ADDR_WIDTH" value="15" />
+  <parameter name="MEM_LPDDR3_R_ODT0_1X1" value="off" />
+  <parameter name="MEM_LPDDR3_R_ODT0_2X2" value="off,off" />
+  <parameter name="MEM_LPDDR3_R_ODT0_4X4" value="off,off,on,on" />
+  <parameter name="MEM_LPDDR3_R_ODT1_2X2" value="off,off" />
+  <parameter name="MEM_LPDDR3_R_ODT1_4X4" value="off,off,off,off" />
+  <parameter name="MEM_LPDDR3_R_ODT2_4X4" value="on,on,off,off" />
+  <parameter name="MEM_LPDDR3_R_ODT3_4X4" value="off,off,off,off" />
+  <parameter name="MEM_LPDDR3_R_ODTN_1X1" value="Rank 0" />
+  <parameter name="MEM_LPDDR3_R_ODTN_2X2" value="Rank 0,Rank 1" />
+  <parameter name="MEM_LPDDR3_R_ODTN_4X4">Rank 0,Rank 1,Rank 2,Rank 3</parameter>
+  <parameter name="MEM_LPDDR3_SPEEDBIN_ENUM">LPDDR3_SPEEDBIN_1600</parameter>
+  <parameter name="MEM_LPDDR3_TDH_DC_MV" value="100" />
+  <parameter name="MEM_LPDDR3_TDH_PS" value="100" />
+  <parameter name="MEM_LPDDR3_TDQSCKDL" value="614" />
+  <parameter name="MEM_LPDDR3_TDQSQ_PS" value="135" />
+  <parameter name="MEM_LPDDR3_TDQSS_CYC" value="1.25" />
+  <parameter name="MEM_LPDDR3_TDSH_CYC" value="0.2" />
+  <parameter name="MEM_LPDDR3_TDSS_CYC" value="0.2" />
+  <parameter name="MEM_LPDDR3_TDS_AC_MV" value="150" />
+  <parameter name="MEM_LPDDR3_TDS_PS" value="75" />
+  <parameter name="MEM_LPDDR3_TFAW_NS" value="50.0" />
+  <parameter name="MEM_LPDDR3_TIH_DC_MV" value="100" />
+  <parameter name="MEM_LPDDR3_TIH_PS" value="100" />
+  <parameter name="MEM_LPDDR3_TINIT_US" value="500" />
+  <parameter name="MEM_LPDDR3_TIS_AC_MV" value="150" />
+  <parameter name="MEM_LPDDR3_TIS_PS" value="75" />
+  <parameter name="MEM_LPDDR3_TMRR_CK_CYC" value="4" />
+  <parameter name="MEM_LPDDR3_TMRW_CK_CYC" value="10" />
+  <parameter name="MEM_LPDDR3_TQH_CYC" value="0.38" />
+  <parameter name="MEM_LPDDR3_TQSH_CYC" value="0.38" />
+  <parameter name="MEM_LPDDR3_TRAS_NS" value="42.5" />
+  <parameter name="MEM_LPDDR3_TRCD_NS" value="18.75" />
+  <parameter name="MEM_LPDDR3_TREFI_US" value="3.9" />
+  <parameter name="MEM_LPDDR3_TRFC_NS" value="210.0" />
+  <parameter name="MEM_LPDDR3_TRP_NS" value="18.75" />
+  <parameter name="MEM_LPDDR3_TRRD_CYC" value="2" />
+  <parameter name="MEM_LPDDR3_TRTP_CYC" value="4" />
+  <parameter name="MEM_LPDDR3_TWLH_PS" value="175.0" />
+  <parameter name="MEM_LPDDR3_TWLS_PS" value="175.0" />
+  <parameter name="MEM_LPDDR3_TWR_NS" value="15.0" />
+  <parameter name="MEM_LPDDR3_TWTR_CYC" value="4" />
+  <parameter name="MEM_LPDDR3_USE_DEFAULT_ODT" value="true" />
+  <parameter name="MEM_LPDDR3_W_ODT0_1X1" value="on" />
+  <parameter name="MEM_LPDDR3_W_ODT0_2X2" value="on,off" />
+  <parameter name="MEM_LPDDR3_W_ODT0_4X4" value="on,on,on,on" />
+  <parameter name="MEM_LPDDR3_W_ODT1_2X2" value="off,on" />
+  <parameter name="MEM_LPDDR3_W_ODT1_4X4" value="off,off,off,off" />
+  <parameter name="MEM_LPDDR3_W_ODT2_4X4" value="on,on,on,on" />
+  <parameter name="MEM_LPDDR3_W_ODT3_4X4" value="off,off,off,off" />
+  <parameter name="MEM_LPDDR3_W_ODTN_1X1" value="Rank 0" />
+  <parameter name="MEM_LPDDR3_W_ODTN_2X2" value="Rank 0,Rank 1" />
+  <parameter name="MEM_LPDDR3_W_ODTN_4X4">Rank 0,Rank 1,Rank 2,Rank 3</parameter>
+  <parameter name="MEM_QDR2_ADDR_WIDTH" value="19" />
+  <parameter name="MEM_QDR2_BL" value="4" />
+  <parameter name="MEM_QDR2_BWS_EN" value="true" />
+  <parameter name="MEM_QDR2_DATA_PER_DEVICE" value="36" />
+  <parameter name="MEM_QDR2_INTERNAL_JITTER_NS" value="0.08" />
+  <parameter name="MEM_QDR2_SPEEDBIN_ENUM" value="QDR2_SPEEDBIN_633" />
+  <parameter name="MEM_QDR2_TCCQO_NS" value="0.45" />
+  <parameter name="MEM_QDR2_TCQDOH_NS" value="-0.09" />
+  <parameter name="MEM_QDR2_TCQD_NS" value="0.09" />
+  <parameter name="MEM_QDR2_TCQH_NS" value="0.71" />
+  <parameter name="MEM_QDR2_THA_NS" value="0.18" />
+  <parameter name="MEM_QDR2_THD_NS" value="0.18" />
+  <parameter name="MEM_QDR2_TRL_CYC" value="2.5" />
+  <parameter name="MEM_QDR2_TSA_NS" value="0.23" />
+  <parameter name="MEM_QDR2_TSD_NS" value="0.23" />
+  <parameter name="MEM_QDR2_WIDTH_EXPANDED" value="false" />
+  <parameter name="MEM_QDR4_AC_ODT_MODE_ENUM" value="QDR4_ODT_25_PCT" />
+  <parameter name="MEM_QDR4_ADDR_INV_ENA" value="false" />
+  <parameter name="MEM_QDR4_ADDR_WIDTH" value="21" />
+  <parameter name="MEM_QDR4_CK_ODT_MODE_ENUM" value="QDR4_ODT_25_PCT" />
+  <parameter name="MEM_QDR4_DATA_INV_ENA" value="false" />
+  <parameter name="MEM_QDR4_DATA_ODT_MODE_ENUM" value="QDR4_ODT_25_PCT" />
+  <parameter name="MEM_QDR4_DQ_PER_PORT_PER_DEVICE" value="36" />
+  <parameter name="MEM_QDR4_MEM_TYPE_ENUM" value="MEM_XP" />
+  <parameter name="MEM_QDR4_PD_OUTPUT_DRIVE_MODE_ENUM">QDR4_OUTPUT_DRIVE_25_PCT</parameter>
+  <parameter name="MEM_QDR4_PU_OUTPUT_DRIVE_MODE_ENUM">QDR4_OUTPUT_DRIVE_25_PCT</parameter>
+  <parameter name="MEM_QDR4_SKIP_ODT_SWEEPING" value="true" />
+  <parameter name="MEM_QDR4_SPEEDBIN_ENUM" value="QDR4_SPEEDBIN_2133" />
+  <parameter name="MEM_QDR4_TASH_PS" value="170" />
+  <parameter name="MEM_QDR4_TCKDK_MAX_PS" value="150" />
+  <parameter name="MEM_QDR4_TCKDK_MIN_PS" value="-150" />
+  <parameter name="MEM_QDR4_TCKQK_MAX_PS" value="225" />
+  <parameter name="MEM_QDR4_TCSH_PS" value="170" />
+  <parameter name="MEM_QDR4_TISH_PS" value="150" />
+  <parameter name="MEM_QDR4_TQH_CYC" value="0.4" />
+  <parameter name="MEM_QDR4_TQKQ_MAX_PS" value="75" />
+  <parameter name="MEM_QDR4_USE_ADDR_PARITY" value="false" />
+  <parameter name="MEM_QDR4_WIDTH_EXPANDED" value="false" />
+  <parameter name="MEM_RLD2_ADDR_WIDTH" value="21" />
+  <parameter name="MEM_RLD2_BANK_ADDR_WIDTH" value="3" />
+  <parameter name="MEM_RLD2_BL" value="4" />
+  <parameter name="MEM_RLD2_CONFIG_ENUM">RLD2_CONFIG_TRC_8_TRL_8_TWL_9</parameter>
+  <parameter name="MEM_RLD2_DM_EN" value="true" />
+  <parameter name="MEM_RLD2_DQ_PER_DEVICE" value="9" />
+  <parameter name="MEM_RLD2_DRIVE_IMPEDENCE_ENUM">RLD2_DRIVE_IMPEDENCE_INTERNAL_50</parameter>
+  <parameter name="MEM_RLD2_ODT_MODE_ENUM" value="RLD2_ODT_ON" />
+  <parameter name="MEM_RLD2_REFRESH_INTERVAL_US" value="0.24" />
+  <parameter name="MEM_RLD2_SPEEDBIN_ENUM" value="RLD2_SPEEDBIN_18" />
+  <parameter name="MEM_RLD2_TAH_NS" value="0.3" />
+  <parameter name="MEM_RLD2_TAS_NS" value="0.3" />
+  <parameter name="MEM_RLD2_TCKDK_MAX_NS" value="0.3" />
+  <parameter name="MEM_RLD2_TCKDK_MIN_NS" value="-0.3" />
+  <parameter name="MEM_RLD2_TCKH_CYC" value="0.45" />
+  <parameter name="MEM_RLD2_TCKQK_MAX_NS" value="0.2" />
+  <parameter name="MEM_RLD2_TDH_NS" value="0.17" />
+  <parameter name="MEM_RLD2_TDS_NS" value="0.17" />
+  <parameter name="MEM_RLD2_TQKH_HCYC" value="0.9" />
+  <parameter name="MEM_RLD2_TQKQ_MAX_NS" value="0.12" />
+  <parameter name="MEM_RLD2_TQKQ_MIN_NS" value="-0.12" />
+  <parameter name="MEM_RLD2_WIDTH_EXPANDED" value="false" />
+  <parameter name="MEM_RLD3_ADDR_WIDTH" value="20" />
+  <parameter name="MEM_RLD3_AREF_PROTOCOL_ENUM" value="RLD3_AREF_BAC" />
+  <parameter name="MEM_RLD3_BANK_ADDR_WIDTH" value="4" />
+  <parameter name="MEM_RLD3_BL" value="2" />
+  <parameter name="MEM_RLD3_DATA_LATENCY_MODE_ENUM" value="RLD3_DL_RL16_WL17" />
+  <parameter name="MEM_RLD3_DEPTH_EXPANDED" value="false" />
+  <parameter name="MEM_RLD3_DM_EN" value="true" />
+  <parameter name="MEM_RLD3_DQ_PER_DEVICE" value="36" />
+  <parameter name="MEM_RLD3_ODT_MODE_ENUM" value="RLD3_ODT_40" />
+  <parameter name="MEM_RLD3_OUTPUT_DRIVE_MODE_ENUM">RLD3_OUTPUT_DRIVE_40</parameter>
+  <parameter name="MEM_RLD3_SPEEDBIN_ENUM" value="RLD3_SPEEDBIN_093E" />
+  <parameter name="MEM_RLD3_TCKDK_MAX_CYC" value="0.27" />
+  <parameter name="MEM_RLD3_TCKDK_MIN_CYC" value="-0.27" />
+  <parameter name="MEM_RLD3_TCKQK_MAX_PS" value="135" />
+  <parameter name="MEM_RLD3_TDH_DC_MV" value="100" />
+  <parameter name="MEM_RLD3_TDH_PS" value="5" />
+  <parameter name="MEM_RLD3_TDS_AC_MV" value="150" />
+  <parameter name="MEM_RLD3_TDS_PS" value="-30" />
+  <parameter name="MEM_RLD3_TIH_DC_MV" value="100" />
+  <parameter name="MEM_RLD3_TIH_PS" value="65" />
+  <parameter name="MEM_RLD3_TIS_AC_MV" value="150" />
+  <parameter name="MEM_RLD3_TIS_PS" value="85" />
+  <parameter name="MEM_RLD3_TQH_CYC" value="0.38" />
+  <parameter name="MEM_RLD3_TQKQ_MAX_PS" value="75" />
+  <parameter name="MEM_RLD3_T_RC_MODE_ENUM" value="RLD3_TRC_9" />
+  <parameter name="MEM_RLD3_WIDTH_EXPANDED" value="false" />
+  <parameter name="MEM_RLD3_WRITE_PROTOCOL_ENUM" value="RLD3_WRITE_1BANK" />
+  <parameter name="PHY_DDR3_CAL_ADDR0" value="0" />
+  <parameter name="PHY_DDR3_CAL_ADDR1" value="8" />
+  <parameter name="PHY_DDR3_CAL_ENABLE_NON_DES" value="true" />
+  <parameter name="PHY_DDR3_CONFIG_ENUM">CONFIG_PHY_AND_HARD_CTRL</parameter>
+  <parameter name="PHY_DDR3_CORE_CLKS_SHARING_ENUM">CORE_CLKS_SHARING_DISABLED</parameter>
+  <parameter name="PHY_DDR3_CORE_CLKS_SHARING_EXPOSE_SLAVE_OUT" value="false" />
+  <parameter name="PHY_DDR3_DEFAULT_IO" value="true" />
+  <parameter name="PHY_DDR3_DEFAULT_REF_CLK_FREQ" value="true" />
+  <parameter name="PHY_DDR3_HPS_ENABLE_EARLY_RELEASE" value="false" />
+  <parameter name="PHY_DDR3_IO_VOLTAGE" value="1.5" />
+  <parameter name="PHY_DDR3_MEM_CLK_FREQ_MHZ" value="1066.667" />
+  <parameter name="PHY_DDR3_MIMIC_HPS_EMIF" value="false" />
+  <parameter name="PHY_DDR3_RATE_ENUM" value="RATE_QUARTER" />
+  <parameter name="PHY_DDR3_REF_CLK_JITTER_PS" value="10.0" />
+  <parameter name="PHY_DDR3_USER_AC_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_DDR3_USER_AC_MODE_ENUM" value="unset" />
+  <parameter name="PHY_DDR3_USER_AC_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_DDR3_USER_AUTO_STARTING_VREFIN_EN" value="true" />
+  <parameter name="PHY_DDR3_USER_CK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_DDR3_USER_CK_MODE_ENUM" value="unset" />
+  <parameter name="PHY_DDR3_USER_CK_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_DDR3_USER_DATA_IN_MODE_ENUM" value="unset" />
+  <parameter name="PHY_DDR3_USER_DATA_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_DDR3_USER_DATA_OUT_MODE_ENUM" value="unset" />
+  <parameter name="PHY_DDR3_USER_DLL_CORE_UPDN_EN" value="true" />
+  <parameter name="PHY_DDR3_USER_PERIODIC_OCT_RECAL_ENUM">PERIODIC_OCT_RECAL_AUTO</parameter>
+  <parameter name="PHY_DDR3_USER_PING_PONG_EN" value="false" />
+  <parameter name="PHY_DDR3_USER_PLL_REF_CLK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_DDR3_USER_REF_CLK_FREQ_MHZ" value="-1.0" />
+  <parameter name="PHY_DDR3_USER_RZQ_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_DDR3_USER_STARTING_VREFIN" value="70.0" />
+  <parameter name="PHY_DDR4_CONFIG_ENUM">CONFIG_PHY_AND_HARD_CTRL</parameter>
+  <parameter name="PHY_DDR4_CORE_CLKS_SHARING_ENUM">CORE_CLKS_SHARING_DISABLED</parameter>
+  <parameter name="PHY_DDR4_CORE_CLKS_SHARING_EXPOSE_SLAVE_OUT" value="false" />
+  <parameter name="PHY_DDR4_DEFAULT_IO" value="false" />
+  <parameter name="PHY_DDR4_DEFAULT_REF_CLK_FREQ" value="false" />
+  <parameter name="PHY_DDR4_HPS_ENABLE_EARLY_RELEASE" value="false" />
+  <parameter name="PHY_DDR4_IO_VOLTAGE" value="1.2" />
+  <parameter name="PHY_DDR4_MEM_CLK_FREQ_MHZ" value="800.0" />
+  <parameter name="PHY_DDR4_MIMIC_HPS_EMIF" value="false" />
+  <parameter name="PHY_DDR4_RATE_ENUM" value="RATE_QUARTER" />
+  <parameter name="PHY_DDR4_REF_CLK_JITTER_PS" value="10.0" />
+  <parameter name="PHY_DDR4_USER_AC_IO_STD_ENUM" value="IO_STD_SSTL_12" />
+  <parameter name="PHY_DDR4_USER_AC_MODE_ENUM" value="OUT_OCT_40_CAL" />
+  <parameter name="PHY_DDR4_USER_AC_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_DDR4_USER_AUTO_STARTING_VREFIN_EN" value="true" />
+  <parameter name="PHY_DDR4_USER_CK_IO_STD_ENUM" value="IO_STD_SSTL_12" />
+  <parameter name="PHY_DDR4_USER_CK_MODE_ENUM" value="OUT_OCT_40_CAL" />
+  <parameter name="PHY_DDR4_USER_CK_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_DDR4_USER_CLAMSHELL_EN" value="false" />
+  <parameter name="PHY_DDR4_USER_DATA_IN_MODE_ENUM" value="IN_OCT_60_CAL" />
+  <parameter name="PHY_DDR4_USER_DATA_IO_STD_ENUM" value="IO_STD_POD_12" />
+  <parameter name="PHY_DDR4_USER_DATA_OUT_MODE_ENUM" value="OUT_OCT_34_CAL" />
+  <parameter name="PHY_DDR4_USER_DLL_CORE_UPDN_EN" value="true" />
+  <parameter name="PHY_DDR4_USER_PERIODIC_OCT_RECAL_ENUM">PERIODIC_OCT_RECAL_AUTO</parameter>
+  <parameter name="PHY_DDR4_USER_PING_PONG_EN" value="false" />
+  <parameter name="PHY_DDR4_USER_PLL_REF_CLK_IO_STD_ENUM" value="IO_STD_CMOS_12" />
+  <parameter name="PHY_DDR4_USER_REF_CLK_FREQ_MHZ" value="25.0" />
+  <parameter name="PHY_DDR4_USER_RZQ_IO_STD_ENUM" value="IO_STD_CMOS_12" />
+  <parameter name="PHY_DDR4_USER_STARTING_VREFIN" value="70.0" />
+  <parameter name="PHY_LPDDR3_CONFIG_ENUM">CONFIG_PHY_AND_HARD_CTRL</parameter>
+  <parameter name="PHY_LPDDR3_CORE_CLKS_SHARING_ENUM">CORE_CLKS_SHARING_DISABLED</parameter>
+  <parameter name="PHY_LPDDR3_CORE_CLKS_SHARING_EXPOSE_SLAVE_OUT" value="false" />
+  <parameter name="PHY_LPDDR3_DEFAULT_IO" value="true" />
+  <parameter name="PHY_LPDDR3_DEFAULT_REF_CLK_FREQ" value="true" />
+  <parameter name="PHY_LPDDR3_HPS_ENABLE_EARLY_RELEASE" value="false" />
+  <parameter name="PHY_LPDDR3_IO_VOLTAGE" value="1.2" />
+  <parameter name="PHY_LPDDR3_MEM_CLK_FREQ_MHZ" value="800.0" />
+  <parameter name="PHY_LPDDR3_MIMIC_HPS_EMIF" value="false" />
+  <parameter name="PHY_LPDDR3_RATE_ENUM" value="RATE_QUARTER" />
+  <parameter name="PHY_LPDDR3_REF_CLK_JITTER_PS" value="10.0" />
+  <parameter name="PHY_LPDDR3_USER_AC_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_LPDDR3_USER_AC_MODE_ENUM" value="unset" />
+  <parameter name="PHY_LPDDR3_USER_AC_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_LPDDR3_USER_AUTO_STARTING_VREFIN_EN" value="true" />
+  <parameter name="PHY_LPDDR3_USER_CK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_LPDDR3_USER_CK_MODE_ENUM" value="unset" />
+  <parameter name="PHY_LPDDR3_USER_CK_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_LPDDR3_USER_DATA_IN_MODE_ENUM" value="unset" />
+  <parameter name="PHY_LPDDR3_USER_DATA_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_LPDDR3_USER_DATA_OUT_MODE_ENUM" value="unset" />
+  <parameter name="PHY_LPDDR3_USER_DLL_CORE_UPDN_EN" value="false" />
+  <parameter name="PHY_LPDDR3_USER_PERIODIC_OCT_RECAL_ENUM">PERIODIC_OCT_RECAL_AUTO</parameter>
+  <parameter name="PHY_LPDDR3_USER_PING_PONG_EN" value="false" />
+  <parameter name="PHY_LPDDR3_USER_PLL_REF_CLK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_LPDDR3_USER_REF_CLK_FREQ_MHZ" value="-1.0" />
+  <parameter name="PHY_LPDDR3_USER_RZQ_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_LPDDR3_USER_STARTING_VREFIN" value="70.0" />
+  <parameter name="PHY_QDR2_CONFIG_ENUM">CONFIG_PHY_AND_SOFT_CTRL</parameter>
+  <parameter name="PHY_QDR2_CORE_CLKS_SHARING_ENUM">CORE_CLKS_SHARING_DISABLED</parameter>
+  <parameter name="PHY_QDR2_CORE_CLKS_SHARING_EXPOSE_SLAVE_OUT" value="false" />
+  <parameter name="PHY_QDR2_DEFAULT_IO" value="true" />
+  <parameter name="PHY_QDR2_DEFAULT_REF_CLK_FREQ" value="true" />
+  <parameter name="PHY_QDR2_HPS_ENABLE_EARLY_RELEASE" value="false" />
+  <parameter name="PHY_QDR2_IO_VOLTAGE" value="1.5" />
+  <parameter name="PHY_QDR2_MEM_CLK_FREQ_MHZ" value="633.333" />
+  <parameter name="PHY_QDR2_MIMIC_HPS_EMIF" value="false" />
+  <parameter name="PHY_QDR2_RATE_ENUM" value="RATE_HALF" />
+  <parameter name="PHY_QDR2_REF_CLK_JITTER_PS" value="10.0" />
+  <parameter name="PHY_QDR2_USER_AC_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_QDR2_USER_AC_MODE_ENUM" value="unset" />
+  <parameter name="PHY_QDR2_USER_AC_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_QDR2_USER_AUTO_STARTING_VREFIN_EN" value="true" />
+  <parameter name="PHY_QDR2_USER_CK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_QDR2_USER_CK_MODE_ENUM" value="unset" />
+  <parameter name="PHY_QDR2_USER_CK_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_QDR2_USER_DATA_IN_MODE_ENUM" value="unset" />
+  <parameter name="PHY_QDR2_USER_DATA_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_QDR2_USER_DATA_OUT_MODE_ENUM" value="unset" />
+  <parameter name="PHY_QDR2_USER_DLL_CORE_UPDN_EN" value="false" />
+  <parameter name="PHY_QDR2_USER_PERIODIC_OCT_RECAL_ENUM">PERIODIC_OCT_RECAL_AUTO</parameter>
+  <parameter name="PHY_QDR2_USER_PING_PONG_EN" value="false" />
+  <parameter name="PHY_QDR2_USER_PLL_REF_CLK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_QDR2_USER_REF_CLK_FREQ_MHZ" value="-1.0" />
+  <parameter name="PHY_QDR2_USER_RZQ_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_QDR2_USER_STARTING_VREFIN" value="70.0" />
+  <parameter name="PHY_QDR4_CONFIG_ENUM">CONFIG_PHY_AND_SOFT_CTRL</parameter>
+  <parameter name="PHY_QDR4_CORE_CLKS_SHARING_ENUM">CORE_CLKS_SHARING_DISABLED</parameter>
+  <parameter name="PHY_QDR4_CORE_CLKS_SHARING_EXPOSE_SLAVE_OUT" value="false" />
+  <parameter name="PHY_QDR4_DEFAULT_IO" value="true" />
+  <parameter name="PHY_QDR4_DEFAULT_REF_CLK_FREQ" value="true" />
+  <parameter name="PHY_QDR4_HPS_ENABLE_EARLY_RELEASE" value="false" />
+  <parameter name="PHY_QDR4_IO_VOLTAGE" value="1.2" />
+  <parameter name="PHY_QDR4_MEM_CLK_FREQ_MHZ" value="1066.667" />
+  <parameter name="PHY_QDR4_MIMIC_HPS_EMIF" value="false" />
+  <parameter name="PHY_QDR4_RATE_ENUM" value="RATE_QUARTER" />
+  <parameter name="PHY_QDR4_REF_CLK_JITTER_PS" value="10.0" />
+  <parameter name="PHY_QDR4_USER_AC_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_QDR4_USER_AC_MODE_ENUM" value="unset" />
+  <parameter name="PHY_QDR4_USER_AC_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_QDR4_USER_AUTO_STARTING_VREFIN_EN" value="true" />
+  <parameter name="PHY_QDR4_USER_CK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_QDR4_USER_CK_MODE_ENUM" value="unset" />
+  <parameter name="PHY_QDR4_USER_CK_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_QDR4_USER_DATA_IN_MODE_ENUM" value="unset" />
+  <parameter name="PHY_QDR4_USER_DATA_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_QDR4_USER_DATA_OUT_MODE_ENUM" value="unset" />
+  <parameter name="PHY_QDR4_USER_DLL_CORE_UPDN_EN" value="true" />
+  <parameter name="PHY_QDR4_USER_PERIODIC_OCT_RECAL_ENUM">PERIODIC_OCT_RECAL_AUTO</parameter>
+  <parameter name="PHY_QDR4_USER_PING_PONG_EN" value="false" />
+  <parameter name="PHY_QDR4_USER_PLL_REF_CLK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_QDR4_USER_REF_CLK_FREQ_MHZ" value="-1.0" />
+  <parameter name="PHY_QDR4_USER_RZQ_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_QDR4_USER_STARTING_VREFIN" value="70.0" />
+  <parameter name="PHY_RLD2_CONFIG_ENUM">CONFIG_PHY_AND_SOFT_CTRL</parameter>
+  <parameter name="PHY_RLD2_CORE_CLKS_SHARING_ENUM">CORE_CLKS_SHARING_DISABLED</parameter>
+  <parameter name="PHY_RLD2_CORE_CLKS_SHARING_EXPOSE_SLAVE_OUT" value="false" />
+  <parameter name="PHY_RLD2_DEFAULT_IO" value="true" />
+  <parameter name="PHY_RLD2_DEFAULT_REF_CLK_FREQ" value="true" />
+  <parameter name="PHY_RLD2_HPS_ENABLE_EARLY_RELEASE" value="false" />
+  <parameter name="PHY_RLD2_IO_VOLTAGE" value="1.8" />
+  <parameter name="PHY_RLD2_MEM_CLK_FREQ_MHZ" value="533.333" />
+  <parameter name="PHY_RLD2_MIMIC_HPS_EMIF" value="false" />
+  <parameter name="PHY_RLD2_RATE_ENUM" value="RATE_HALF" />
+  <parameter name="PHY_RLD2_REF_CLK_JITTER_PS" value="10.0" />
+  <parameter name="PHY_RLD2_USER_AC_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_RLD2_USER_AC_MODE_ENUM" value="unset" />
+  <parameter name="PHY_RLD2_USER_AC_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_RLD2_USER_AUTO_STARTING_VREFIN_EN" value="true" />
+  <parameter name="PHY_RLD2_USER_CK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_RLD2_USER_CK_MODE_ENUM" value="unset" />
+  <parameter name="PHY_RLD2_USER_CK_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_RLD2_USER_DATA_IN_MODE_ENUM" value="unset" />
+  <parameter name="PHY_RLD2_USER_DATA_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_RLD2_USER_DATA_OUT_MODE_ENUM" value="unset" />
+  <parameter name="PHY_RLD2_USER_DLL_CORE_UPDN_EN" value="false" />
+  <parameter name="PHY_RLD2_USER_PERIODIC_OCT_RECAL_ENUM">PERIODIC_OCT_RECAL_AUTO</parameter>
+  <parameter name="PHY_RLD2_USER_PING_PONG_EN" value="false" />
+  <parameter name="PHY_RLD2_USER_PLL_REF_CLK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_RLD2_USER_REF_CLK_FREQ_MHZ" value="-1.0" />
+  <parameter name="PHY_RLD2_USER_RZQ_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_RLD2_USER_STARTING_VREFIN" value="70.0" />
+  <parameter name="PHY_RLD3_CONFIG_ENUM" value="CONFIG_PHY_ONLY" />
+  <parameter name="PHY_RLD3_CORE_CLKS_SHARING_ENUM">CORE_CLKS_SHARING_DISABLED</parameter>
+  <parameter name="PHY_RLD3_CORE_CLKS_SHARING_EXPOSE_SLAVE_OUT" value="false" />
+  <parameter name="PHY_RLD3_DEFAULT_IO" value="true" />
+  <parameter name="PHY_RLD3_DEFAULT_REF_CLK_FREQ" value="true" />
+  <parameter name="PHY_RLD3_HPS_ENABLE_EARLY_RELEASE" value="false" />
+  <parameter name="PHY_RLD3_IO_VOLTAGE" value="1.2" />
+  <parameter name="PHY_RLD3_MEM_CLK_FREQ_MHZ" value="1066.667" />
+  <parameter name="PHY_RLD3_MIMIC_HPS_EMIF" value="false" />
+  <parameter name="PHY_RLD3_RATE_ENUM" value="RATE_QUARTER" />
+  <parameter name="PHY_RLD3_REF_CLK_JITTER_PS" value="10.0" />
+  <parameter name="PHY_RLD3_USER_AC_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_RLD3_USER_AC_MODE_ENUM" value="unset" />
+  <parameter name="PHY_RLD3_USER_AC_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_RLD3_USER_AUTO_STARTING_VREFIN_EN" value="true" />
+  <parameter name="PHY_RLD3_USER_CK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_RLD3_USER_CK_MODE_ENUM" value="unset" />
+  <parameter name="PHY_RLD3_USER_CK_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_RLD3_USER_DATA_IN_MODE_ENUM" value="unset" />
+  <parameter name="PHY_RLD3_USER_DATA_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_RLD3_USER_DATA_OUT_MODE_ENUM" value="unset" />
+  <parameter name="PHY_RLD3_USER_DLL_CORE_UPDN_EN" value="false" />
+  <parameter name="PHY_RLD3_USER_PERIODIC_OCT_RECAL_ENUM">PERIODIC_OCT_RECAL_AUTO</parameter>
+  <parameter name="PHY_RLD3_USER_PING_PONG_EN" value="false" />
+  <parameter name="PHY_RLD3_USER_PLL_REF_CLK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_RLD3_USER_REF_CLK_FREQ_MHZ" value="-1.0" />
+  <parameter name="PHY_RLD3_USER_RZQ_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_RLD3_USER_STARTING_VREFIN" value="70.0" />
+  <parameter name="PLL_ADD_EXTRA_CLKS" value="false" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_0" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_1" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_2" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_3" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_4" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_5" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_6" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_7" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_8" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_GUI_0" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_GUI_1" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_GUI_2" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_GUI_3" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_GUI_4" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_GUI_5" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_GUI_6" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_GUI_7" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_GUI_8" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_FREQ_MHZ_GUI_0" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_FREQ_MHZ_GUI_1" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_FREQ_MHZ_GUI_2" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_FREQ_MHZ_GUI_3" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_FREQ_MHZ_GUI_4" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_FREQ_MHZ_GUI_5" value="100.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_FREQ_MHZ_GUI_6" value="100.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_FREQ_MHZ_GUI_7" value="100.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_FREQ_MHZ_GUI_8" value="100.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_DEG_GUI_0" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_DEG_GUI_1" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_DEG_GUI_2" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_DEG_GUI_3" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_DEG_GUI_4" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_DEG_GUI_5" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_DEG_GUI_6" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_DEG_GUI_7" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_DEG_GUI_8" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_PS_GUI_0" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_PS_GUI_1" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_PS_GUI_2" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_PS_GUI_3" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_PS_GUI_4" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_PS_GUI_5" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_PS_GUI_6" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_PS_GUI_7" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_PS_GUI_8" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_DUTY_CYCLE_GUI_0" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_DUTY_CYCLE_GUI_1" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_DUTY_CYCLE_GUI_2" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_DUTY_CYCLE_GUI_3" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_DUTY_CYCLE_GUI_4" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_DUTY_CYCLE_GUI_5" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_DUTY_CYCLE_GUI_6" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_DUTY_CYCLE_GUI_7" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_DUTY_CYCLE_GUI_8" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_FREQ_MHZ_GUI_0" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_FREQ_MHZ_GUI_1" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_FREQ_MHZ_GUI_2" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_FREQ_MHZ_GUI_3" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_FREQ_MHZ_GUI_4" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_FREQ_MHZ_GUI_5" value="100.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_FREQ_MHZ_GUI_6" value="100.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_FREQ_MHZ_GUI_7" value="100.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_FREQ_MHZ_GUI_8" value="100.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_PHASE_GUI_0" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_PHASE_GUI_1" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_PHASE_GUI_2" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_PHASE_GUI_3" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_PHASE_GUI_4" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_PHASE_GUI_5" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_PHASE_GUI_6" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_PHASE_GUI_7" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_PHASE_GUI_8" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_PHASE_SHIFT_UNIT_GUI_0" value="0" />
+  <parameter name="PLL_EXTRA_CLK_PHASE_SHIFT_UNIT_GUI_1" value="0" />
+  <parameter name="PLL_EXTRA_CLK_PHASE_SHIFT_UNIT_GUI_2" value="0" />
+  <parameter name="PLL_EXTRA_CLK_PHASE_SHIFT_UNIT_GUI_3" value="0" />
+  <parameter name="PLL_EXTRA_CLK_PHASE_SHIFT_UNIT_GUI_4" value="0" />
+  <parameter name="PLL_EXTRA_CLK_PHASE_SHIFT_UNIT_GUI_5" value="0" />
+  <parameter name="PLL_EXTRA_CLK_PHASE_SHIFT_UNIT_GUI_6" value="0" />
+  <parameter name="PLL_EXTRA_CLK_PHASE_SHIFT_UNIT_GUI_7" value="0" />
+  <parameter name="PLL_EXTRA_CLK_PHASE_SHIFT_UNIT_GUI_8" value="0" />
+  <parameter name="PLL_USER_NUM_OF_EXTRA_CLKS" value="0" />
+  <parameter name="PROTOCOL_ENUM" value="PROTOCOL_DDR4" />
+  <parameter name="SHORT_QSYS_INTERFACE_NAMES" value="true" />
+  <parameter name="SYS_INFO_DEVICE" value="10AX115U3F45E2SG" />
+  <parameter name="SYS_INFO_DEVICE_DIE_REVISIONS" value="" />
+  <parameter name="SYS_INFO_DEVICE_FAMILY" value="Arria 10" />
+  <parameter name="SYS_INFO_DEVICE_POWER_MODEL" value="STANDARD" />
+  <parameter name="SYS_INFO_DEVICE_SPEEDGRADE" value="2" />
+  <parameter name="SYS_INFO_DEVICE_TEMPERATURE_GRADE" value="EXTENDED" />
+  <parameter name="SYS_INFO_UNIQUE_ID">ip_arria10_e2sg_ddr4_8g_1600_emif_0</parameter>
+  <parameter name="TRAIT_SUPPORTS_VID" value="0" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/ddr4_8g_2400/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/ddr4_8g_2400/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..1889f0a0e45cbbbfef0ed44dfbcaa7a85a08b518
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ddr4_8g_2400/compile_ip.tcl
@@ -0,0 +1,34 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_ddr4_8g_2400/sim"
+
+  vcom         "$IP_DIR/ip_arria10_e2sg_ddr4_8g_2400.vhd"
diff --git a/libraries/technology/ip_arria10_e2sg/ddr4_8g_2400/copy_hex_files.tcl b/libraries/technology/ip_arria10_e2sg/ddr4_8g_2400/copy_hex_files.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..37f218bda8baa54a853e5a7981624800e105989b
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ddr4_8g_2400/copy_hex_files.tcl
@@ -0,0 +1,33 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2015
+# 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 Qsys-generated file generated/sim/mentor/msim_setup.tcl
+
+set IP_DIR "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_ddr4_8g_2400/sim"
+
+# Copy ROM/RAM files to simulation directory
+if {[file isdirectory $IP_DIR]} {
+    file copy -force $IP_DIR/../altera_emif_arch_nf_151/sim/ip_arria10_e2sg_ddr4_8g_2400_altera_emif_arch_nf_151_izxxuoi_seq_cal_sim.hex ./
+    file copy -force $IP_DIR/../altera_emif_arch_nf_151/sim/ip_arria10_e2sg_ddr4_8g_2400_altera_emif_arch_nf_151_izxxuoi_seq_cal_synth.hex ./
+    file copy -force $IP_DIR/../altera_emif_arch_nf_151/sim/ip_arria10_e2sg_ddr4_8g_2400_altera_emif_arch_nf_151_izxxuoi_seq_params_sim.hex ./
+    file copy -force $IP_DIR/../altera_emif_arch_nf_151/sim/ip_arria10_e2sg_ddr4_8g_2400_altera_emif_arch_nf_151_izxxuoi_seq_params_synth.hex ./
+}
diff --git a/libraries/technology/ip_arria10_e2sg/ddr4_8g_2400/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/ddr4_8g_2400/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..95fa72f14b4db6edd75c90ffd0b756c7b5d07d2b
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ddr4_8g_2400/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_ddr4_8g_2400
+hdl_library_clause_name = ip_arria10_e2sg_ddr4_8g_2400_altera_emif_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_merlin_master_translator_194 ip_arria10_e2sg_altera_emif_cal_slave_nf_194 ip_arria10_e2sg_altera_avalon_onchip_memory2_194 ip_arria10_e2sg_altera_mm_interconnect_194 ip_arria10_e2sg_altera_reset_controller_194 ip_arria10_e2sg_altera_emif_arch_nf_194 ip_arria10_e2sg_altera_emif_194 ip_arria10_e2sg_altera_avalon_mm_bridge_194 ip_arria10_e2sg_altera_merlin_slave_translator_194
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/ddr4_8g_2400/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_ddr4_8g_2400/ip_arria10_e2sg_ddr4_8g_2400.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_ddr4_8g_2400.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/ddr4_8g_2400/ip_arria10_e2sg_ddr4_8g_2400.qsys b/libraries/technology/ip_arria10_e2sg/ddr4_8g_2400/ip_arria10_e2sg_ddr4_8g_2400.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..5a828ee7b6d5f9fdb06bba6702a083ef60cb766e
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ddr4_8g_2400/ip_arria10_e2sg_ddr4_8g_2400.qsys
@@ -0,0 +1,1317 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_ddr4_8g_2400">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysPro" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element ddr4_inst
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos>
+        <entry>
+            <key>ctrl_amm_avalon_slave_0</key>
+            <value>
+                <connectionPointName>ctrl_amm_avalon_slave_0</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>ADDRESS_MAP</key>
+                        <value>&lt;address-map&gt;&lt;slave name='ctrl_amm_avalon_slave_0' start='0x0' end='0x240000000' datawidth='576' /&gt;&lt;/address-map&gt;</value>
+                    </entry>
+                    <entry>
+                        <key>ADDRESS_WIDTH</key>
+                        <value>34</value>
+                    </entry>
+                    <entry>
+                        <key>MAX_SLAVE_DATA_WIDTH</key>
+                        <value>576</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+        <entry>
+            <key>emif_usr_clk_clock_source</key>
+            <value>
+                <connectionPointName>emif_usr_clk_clock_source</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>300000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+    </connPtSystemInfos>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="ctrl_amm_avalon_slave_0"
+   internal="ddr4_inst.ctrl_amm_avalon_slave_0"
+   type="avalon"
+   dir="end">
+  <port name="amm_address_0" internal="amm_address_0" />
+  <port name="amm_burstcount_0" internal="amm_burstcount_0" />
+  <port name="amm_byteenable_0" internal="amm_byteenable_0" />
+  <port name="amm_read_0" internal="amm_read_0" />
+  <port name="amm_readdata_0" internal="amm_readdata_0" />
+  <port name="amm_readdatavalid_0" internal="amm_readdatavalid_0" />
+  <port name="amm_ready_0" internal="amm_ready_0" />
+  <port name="amm_write_0" internal="amm_write_0" />
+  <port name="amm_writedata_0" internal="amm_writedata_0" />
+ </interface>
+ <interface
+   name="emif_usr_clk_clock_source"
+   internal="ddr4_inst.emif_usr_clk_clock_source"
+   type="clock"
+   dir="start">
+  <port name="emif_usr_clk" internal="emif_usr_clk" />
+ </interface>
+ <interface
+   name="emif_usr_reset_reset_source"
+   internal="ddr4_inst.emif_usr_reset_reset_source"
+   type="reset"
+   dir="start">
+  <port name="emif_usr_reset_n" internal="emif_usr_reset_n" />
+ </interface>
+ <interface
+   name="global_reset_reset_sink"
+   internal="ddr4_inst.global_reset_reset_sink"
+   type="reset"
+   dir="end">
+  <port name="global_reset_n" internal="global_reset_n" />
+ </interface>
+ <interface
+   name="mem_conduit_end"
+   internal="ddr4_inst.mem_conduit_end"
+   type="conduit"
+   dir="end">
+  <port name="mem_a" internal="mem_a" />
+  <port name="mem_act_n" internal="mem_act_n" />
+  <port name="mem_alert_n" internal="mem_alert_n" />
+  <port name="mem_ba" internal="mem_ba" />
+  <port name="mem_bg" internal="mem_bg" />
+  <port name="mem_ck" internal="mem_ck" />
+  <port name="mem_ck_n" internal="mem_ck_n" />
+  <port name="mem_cke" internal="mem_cke" />
+  <port name="mem_cs_n" internal="mem_cs_n" />
+  <port name="mem_dbi_n" internal="mem_dbi_n" />
+  <port name="mem_dq" internal="mem_dq" />
+  <port name="mem_dqs" internal="mem_dqs" />
+  <port name="mem_dqs_n" internal="mem_dqs_n" />
+  <port name="mem_odt" internal="mem_odt" />
+  <port name="mem_par" internal="mem_par" />
+  <port name="mem_reset_n" internal="mem_reset_n" />
+ </interface>
+ <interface
+   name="oct_conduit_end"
+   internal="ddr4_inst.oct_conduit_end"
+   type="conduit"
+   dir="end">
+  <port name="oct_rzqin" internal="oct_rzqin" />
+ </interface>
+ <interface
+   name="pll_ref_clk_clock_sink"
+   internal="ddr4_inst.pll_ref_clk_clock_sink"
+   type="clock"
+   dir="end">
+  <port name="pll_ref_clk" internal="pll_ref_clk" />
+ </interface>
+ <interface
+   name="status_conduit_end"
+   internal="ddr4_inst.status_conduit_end"
+   type="conduit"
+   dir="end">
+  <port name="local_cal_fail" internal="local_cal_fail" />
+  <port name="local_cal_success" internal="local_cal_success" />
+ </interface>
+ <module
+   name="ddr4_inst"
+   kind="altera_emif"
+   version="19.1.0"
+   enabled="1"
+   autoexport="1">
+  <parameter name="BOARD_DDR3_AC_TO_CK_SKEW_NS" value="0.0" />
+  <parameter name="BOARD_DDR3_BRD_SKEW_WITHIN_AC_NS" value="0.02" />
+  <parameter name="BOARD_DDR3_BRD_SKEW_WITHIN_DQS_NS" value="0.02" />
+  <parameter name="BOARD_DDR3_DQS_TO_CK_SKEW_NS" value="0.02" />
+  <parameter name="BOARD_DDR3_IS_SKEW_WITHIN_AC_DESKEWED" value="false" />
+  <parameter name="BOARD_DDR3_IS_SKEW_WITHIN_DQS_DESKEWED" value="false" />
+  <parameter name="BOARD_DDR3_MAX_CK_DELAY_NS" value="0.6" />
+  <parameter name="BOARD_DDR3_MAX_DQS_DELAY_NS" value="0.6" />
+  <parameter name="BOARD_DDR3_PKG_BRD_SKEW_WITHIN_AC_NS" value="0.02" />
+  <parameter name="BOARD_DDR3_PKG_BRD_SKEW_WITHIN_DQS_NS" value="0.02" />
+  <parameter name="BOARD_DDR3_SKEW_BETWEEN_DIMMS_NS" value="0.05" />
+  <parameter name="BOARD_DDR3_SKEW_BETWEEN_DQS_NS" value="0.02" />
+  <parameter name="BOARD_DDR3_USER_AC_ISI_NS" value="0.094" />
+  <parameter name="BOARD_DDR3_USER_AC_SLEW_RATE" value="1.0" />
+  <parameter name="BOARD_DDR3_USER_CK_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_DDR3_USER_RCLK_ISI_NS" value="0.094" />
+  <parameter name="BOARD_DDR3_USER_RCLK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_DDR3_USER_RDATA_ISI_NS" value="0.063" />
+  <parameter name="BOARD_DDR3_USER_RDATA_SLEW_RATE" value="2.5" />
+  <parameter name="BOARD_DDR3_USER_WCLK_ISI_NS" value="0.031" />
+  <parameter name="BOARD_DDR3_USER_WCLK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_DDR3_USER_WDATA_ISI_NS" value="0.063" />
+  <parameter name="BOARD_DDR3_USER_WDATA_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_DDR3_USE_DEFAULT_ISI_VALUES" value="true" />
+  <parameter name="BOARD_DDR3_USE_DEFAULT_SLEW_RATES" value="true" />
+  <parameter name="BOARD_DDR4_AC_TO_CK_SKEW_NS" value="0.0" />
+  <parameter name="BOARD_DDR4_BRD_SKEW_WITHIN_AC_NS" value="0.02" />
+  <parameter name="BOARD_DDR4_BRD_SKEW_WITHIN_DQS_NS" value="0.02" />
+  <parameter name="BOARD_DDR4_DQS_TO_CK_SKEW_NS" value="0.02" />
+  <parameter name="BOARD_DDR4_IS_SKEW_WITHIN_AC_DESKEWED" value="false" />
+  <parameter name="BOARD_DDR4_IS_SKEW_WITHIN_DQS_DESKEWED" value="true" />
+  <parameter name="BOARD_DDR4_MAX_CK_DELAY_NS" value="0.6" />
+  <parameter name="BOARD_DDR4_MAX_DQS_DELAY_NS" value="0.6" />
+  <parameter name="BOARD_DDR4_PKG_BRD_SKEW_WITHIN_AC_NS" value="0.02" />
+  <parameter name="BOARD_DDR4_PKG_BRD_SKEW_WITHIN_DQS_NS" value="0.02" />
+  <parameter name="BOARD_DDR4_SKEW_BETWEEN_DIMMS_NS" value="0.05" />
+  <parameter name="BOARD_DDR4_SKEW_BETWEEN_DQS_NS" value="0.02" />
+  <parameter name="BOARD_DDR4_USER_AC_ISI_NS" value="0.094" />
+  <parameter name="BOARD_DDR4_USER_AC_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_DDR4_USER_CK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_DDR4_USER_RCLK_ISI_NS" value="0.094" />
+  <parameter name="BOARD_DDR4_USER_RCLK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_DDR4_USER_RDATA_ISI_NS" value="0.063" />
+  <parameter name="BOARD_DDR4_USER_RDATA_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_DDR4_USER_WCLK_ISI_NS" value="0.031" />
+  <parameter name="BOARD_DDR4_USER_WCLK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_DDR4_USER_WDATA_ISI_NS" value="0.063" />
+  <parameter name="BOARD_DDR4_USER_WDATA_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_DDR4_USE_DEFAULT_ISI_VALUES" value="true" />
+  <parameter name="BOARD_DDR4_USE_DEFAULT_SLEW_RATES" value="true" />
+  <parameter name="BOARD_LPDDR3_AC_TO_CK_SKEW_NS" value="0.0" />
+  <parameter name="BOARD_LPDDR3_BRD_SKEW_WITHIN_AC_NS" value="0.02" />
+  <parameter name="BOARD_LPDDR3_BRD_SKEW_WITHIN_DQS_NS" value="0.02" />
+  <parameter name="BOARD_LPDDR3_DQS_TO_CK_SKEW_NS" value="0.02" />
+  <parameter name="BOARD_LPDDR3_IS_SKEW_WITHIN_AC_DESKEWED" value="true" />
+  <parameter name="BOARD_LPDDR3_IS_SKEW_WITHIN_DQS_DESKEWED" value="false" />
+  <parameter name="BOARD_LPDDR3_MAX_CK_DELAY_NS" value="0.6" />
+  <parameter name="BOARD_LPDDR3_MAX_DQS_DELAY_NS" value="0.6" />
+  <parameter name="BOARD_LPDDR3_PKG_BRD_SKEW_WITHIN_AC_NS" value="0.02" />
+  <parameter name="BOARD_LPDDR3_PKG_BRD_SKEW_WITHIN_DQS_NS" value="0.02" />
+  <parameter name="BOARD_LPDDR3_SKEW_BETWEEN_DIMMS_NS" value="0.05" />
+  <parameter name="BOARD_LPDDR3_SKEW_BETWEEN_DQS_NS" value="0.02" />
+  <parameter name="BOARD_LPDDR3_USER_AC_ISI_NS" value="0.0" />
+  <parameter name="BOARD_LPDDR3_USER_AC_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_LPDDR3_USER_CK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_LPDDR3_USER_RCLK_ISI_NS" value="0.0" />
+  <parameter name="BOARD_LPDDR3_USER_RCLK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_LPDDR3_USER_RDATA_ISI_NS" value="0.0" />
+  <parameter name="BOARD_LPDDR3_USER_RDATA_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_LPDDR3_USER_WCLK_ISI_NS" value="0.0" />
+  <parameter name="BOARD_LPDDR3_USER_WCLK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_LPDDR3_USER_WDATA_ISI_NS" value="0.0" />
+  <parameter name="BOARD_LPDDR3_USER_WDATA_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_LPDDR3_USE_DEFAULT_ISI_VALUES" value="true" />
+  <parameter name="BOARD_LPDDR3_USE_DEFAULT_SLEW_RATES" value="true" />
+  <parameter name="BOARD_QDR2_AC_TO_K_SKEW_NS" value="0.0" />
+  <parameter name="BOARD_QDR2_BRD_SKEW_WITHIN_AC_NS" value="0.02" />
+  <parameter name="BOARD_QDR2_BRD_SKEW_WITHIN_D_NS" value="0.02" />
+  <parameter name="BOARD_QDR2_BRD_SKEW_WITHIN_Q_NS" value="0.02" />
+  <parameter name="BOARD_QDR2_IS_SKEW_WITHIN_AC_DESKEWED" value="true" />
+  <parameter name="BOARD_QDR2_IS_SKEW_WITHIN_D_DESKEWED" value="false" />
+  <parameter name="BOARD_QDR2_IS_SKEW_WITHIN_Q_DESKEWED" value="false" />
+  <parameter name="BOARD_QDR2_MAX_K_DELAY_NS" value="0.6" />
+  <parameter name="BOARD_QDR2_PKG_BRD_SKEW_WITHIN_AC_NS" value="0.02" />
+  <parameter name="BOARD_QDR2_PKG_BRD_SKEW_WITHIN_D_NS" value="0.02" />
+  <parameter name="BOARD_QDR2_PKG_BRD_SKEW_WITHIN_Q_NS" value="0.02" />
+  <parameter name="BOARD_QDR2_USER_AC_ISI_NS" value="0.094" />
+  <parameter name="BOARD_QDR2_USER_AC_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_QDR2_USER_K_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_QDR2_USER_RCLK_ISI_NS" value="0.094" />
+  <parameter name="BOARD_QDR2_USER_RCLK_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_QDR2_USER_RDATA_ISI_NS" value="0.063" />
+  <parameter name="BOARD_QDR2_USER_RDATA_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_QDR2_USER_WCLK_ISI_NS" value="0.031" />
+  <parameter name="BOARD_QDR2_USER_WDATA_ISI_NS" value="0.063" />
+  <parameter name="BOARD_QDR2_USER_WDATA_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_QDR2_USE_DEFAULT_ISI_VALUES" value="true" />
+  <parameter name="BOARD_QDR2_USE_DEFAULT_SLEW_RATES" value="true" />
+  <parameter name="BOARD_QDR4_AC_TO_CK_SKEW_NS" value="0.0" />
+  <parameter name="BOARD_QDR4_BRD_SKEW_WITHIN_AC_NS" value="0.02" />
+  <parameter name="BOARD_QDR4_BRD_SKEW_WITHIN_QK_NS" value="0.02" />
+  <parameter name="BOARD_QDR4_DK_TO_CK_SKEW_NS" value="-0.02" />
+  <parameter name="BOARD_QDR4_IS_SKEW_WITHIN_AC_DESKEWED" value="true" />
+  <parameter name="BOARD_QDR4_IS_SKEW_WITHIN_QK_DESKEWED" value="false" />
+  <parameter name="BOARD_QDR4_MAX_CK_DELAY_NS" value="0.6" />
+  <parameter name="BOARD_QDR4_MAX_DK_DELAY_NS" value="0.6" />
+  <parameter name="BOARD_QDR4_PKG_BRD_SKEW_WITHIN_AC_NS" value="0.02" />
+  <parameter name="BOARD_QDR4_PKG_BRD_SKEW_WITHIN_QK_NS" value="0.02" />
+  <parameter name="BOARD_QDR4_SKEW_BETWEEN_DIMMS_NS" value="0.05" />
+  <parameter name="BOARD_QDR4_SKEW_BETWEEN_DK_NS" value="0.02" />
+  <parameter name="BOARD_QDR4_USER_AC_ISI_NS" value="0.0" />
+  <parameter name="BOARD_QDR4_USER_AC_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_QDR4_USER_CK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_QDR4_USER_RCLK_ISI_NS" value="0.0" />
+  <parameter name="BOARD_QDR4_USER_RCLK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_QDR4_USER_RDATA_ISI_NS" value="0.0" />
+  <parameter name="BOARD_QDR4_USER_RDATA_SLEW_RATE" value="3.5" />
+  <parameter name="BOARD_QDR4_USER_WCLK_ISI_NS" value="0.0" />
+  <parameter name="BOARD_QDR4_USER_WCLK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_QDR4_USER_WDATA_ISI_NS" value="0.0" />
+  <parameter name="BOARD_QDR4_USER_WDATA_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_QDR4_USE_DEFAULT_ISI_VALUES" value="true" />
+  <parameter name="BOARD_QDR4_USE_DEFAULT_SLEW_RATES" value="true" />
+  <parameter name="BOARD_RLD3_AC_TO_CK_SKEW_NS" value="0.0" />
+  <parameter name="BOARD_RLD3_BRD_SKEW_WITHIN_AC_NS" value="0.02" />
+  <parameter name="BOARD_RLD3_BRD_SKEW_WITHIN_QK_NS" value="0.02" />
+  <parameter name="BOARD_RLD3_DK_TO_CK_SKEW_NS" value="-0.02" />
+  <parameter name="BOARD_RLD3_IS_SKEW_WITHIN_AC_DESKEWED" value="true" />
+  <parameter name="BOARD_RLD3_IS_SKEW_WITHIN_QK_DESKEWED" value="false" />
+  <parameter name="BOARD_RLD3_MAX_CK_DELAY_NS" value="0.6" />
+  <parameter name="BOARD_RLD3_MAX_DK_DELAY_NS" value="0.6" />
+  <parameter name="BOARD_RLD3_PKG_BRD_SKEW_WITHIN_AC_NS" value="0.02" />
+  <parameter name="BOARD_RLD3_PKG_BRD_SKEW_WITHIN_QK_NS" value="0.02" />
+  <parameter name="BOARD_RLD3_SKEW_BETWEEN_DIMMS_NS" value="0.05" />
+  <parameter name="BOARD_RLD3_SKEW_BETWEEN_DK_NS" value="0.02" />
+  <parameter name="BOARD_RLD3_USER_AC_ISI_NS" value="0.094" />
+  <parameter name="BOARD_RLD3_USER_AC_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_RLD3_USER_CK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_RLD3_USER_RCLK_ISI_NS" value="0.094" />
+  <parameter name="BOARD_RLD3_USER_RCLK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_RLD3_USER_RDATA_ISI_NS" value="0.063" />
+  <parameter name="BOARD_RLD3_USER_RDATA_SLEW_RATE" value="3.5" />
+  <parameter name="BOARD_RLD3_USER_WCLK_ISI_NS" value="0.031" />
+  <parameter name="BOARD_RLD3_USER_WCLK_SLEW_RATE" value="4.0" />
+  <parameter name="BOARD_RLD3_USER_WDATA_ISI_NS" value="0.063" />
+  <parameter name="BOARD_RLD3_USER_WDATA_SLEW_RATE" value="2.0" />
+  <parameter name="BOARD_RLD3_USE_DEFAULT_ISI_VALUES" value="true" />
+  <parameter name="BOARD_RLD3_USE_DEFAULT_SLEW_RATES" value="true" />
+  <parameter name="CAL_DEBUG_CLOCK_FREQUENCY" value="50000000" />
+  <parameter name="CTRL_DDR3_ADDR_ORDER_ENUM">DDR3_CTRL_ADDR_ORDER_CS_R_B_C</parameter>
+  <parameter name="CTRL_DDR3_AUTO_POWER_DOWN_CYCS" value="32" />
+  <parameter name="CTRL_DDR3_AUTO_POWER_DOWN_EN" value="false" />
+  <parameter name="CTRL_DDR3_AUTO_PRECHARGE_EN" value="false" />
+  <parameter name="CTRL_DDR3_AVL_PROTOCOL_ENUM">CTRL_AVL_PROTOCOL_MM</parameter>
+  <parameter name="CTRL_DDR3_ECC_AUTO_CORRECTION_EN" value="false" />
+  <parameter name="CTRL_DDR3_ECC_EN" value="false" />
+  <parameter name="CTRL_DDR3_ECC_READDATAERROR_EN" value="false" />
+  <parameter name="CTRL_DDR3_MMR_EN" value="false" />
+  <parameter name="CTRL_DDR3_RD_TO_RD_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_DDR3_RD_TO_WR_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_DDR3_RD_TO_WR_SAME_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_DDR3_REORDER_EN" value="true" />
+  <parameter name="CTRL_DDR3_SELF_REFRESH_EN" value="false" />
+  <parameter name="CTRL_DDR3_STARVE_LIMIT" value="63" />
+  <parameter name="CTRL_DDR3_USER_PRIORITY_EN" value="false" />
+  <parameter name="CTRL_DDR3_USER_REFRESH_EN" value="false" />
+  <parameter name="CTRL_DDR3_WR_TO_RD_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_DDR3_WR_TO_RD_SAME_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_DDR3_WR_TO_WR_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_DDR4_ADDR_ORDER_ENUM">DDR4_CTRL_ADDR_ORDER_CS_R_B_C_BG</parameter>
+  <parameter name="CTRL_DDR4_AUTO_POWER_DOWN_CYCS" value="32" />
+  <parameter name="CTRL_DDR4_AUTO_POWER_DOWN_EN" value="false" />
+  <parameter name="CTRL_DDR4_AUTO_PRECHARGE_EN" value="false" />
+  <parameter name="CTRL_DDR4_AVL_PROTOCOL_ENUM">CTRL_AVL_PROTOCOL_MM</parameter>
+  <parameter name="CTRL_DDR4_ECC_AUTO_CORRECTION_EN" value="false" />
+  <parameter name="CTRL_DDR4_ECC_EN" value="false" />
+  <parameter name="CTRL_DDR4_ECC_READDATAERROR_EN" value="false" />
+  <parameter name="CTRL_DDR4_MMR_EN" value="false" />
+  <parameter name="CTRL_DDR4_RD_TO_RD_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_DDR4_RD_TO_WR_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_DDR4_RD_TO_WR_SAME_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_DDR4_REORDER_EN" value="true" />
+  <parameter name="CTRL_DDR4_SELF_REFRESH_EN" value="false" />
+  <parameter name="CTRL_DDR4_STARVE_LIMIT" value="63" />
+  <parameter name="CTRL_DDR4_USER_PRIORITY_EN" value="false" />
+  <parameter name="CTRL_DDR4_USER_REFRESH_EN" value="false" />
+  <parameter name="CTRL_DDR4_WR_TO_RD_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_DDR4_WR_TO_RD_SAME_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_DDR4_WR_TO_WR_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_LPDDR3_ADDR_ORDER_ENUM">LPDDR3_CTRL_ADDR_ORDER_CS_R_B_C</parameter>
+  <parameter name="CTRL_LPDDR3_AUTO_POWER_DOWN_CYCS" value="32" />
+  <parameter name="CTRL_LPDDR3_AUTO_POWER_DOWN_EN" value="false" />
+  <parameter name="CTRL_LPDDR3_AUTO_PRECHARGE_EN" value="false" />
+  <parameter name="CTRL_LPDDR3_AVL_PROTOCOL_ENUM">CTRL_AVL_PROTOCOL_MM</parameter>
+  <parameter name="CTRL_LPDDR3_MMR_EN" value="false" />
+  <parameter name="CTRL_LPDDR3_RD_TO_RD_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_LPDDR3_RD_TO_WR_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_LPDDR3_RD_TO_WR_SAME_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_LPDDR3_REORDER_EN" value="true" />
+  <parameter name="CTRL_LPDDR3_SELF_REFRESH_EN" value="false" />
+  <parameter name="CTRL_LPDDR3_STARVE_LIMIT" value="10" />
+  <parameter name="CTRL_LPDDR3_USER_PRIORITY_EN" value="false" />
+  <parameter name="CTRL_LPDDR3_USER_REFRESH_EN" value="false" />
+  <parameter name="CTRL_LPDDR3_WR_TO_RD_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_LPDDR3_WR_TO_RD_SAME_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_LPDDR3_WR_TO_WR_DIFF_CHIP_DELTA_CYCS" value="0" />
+  <parameter name="CTRL_QDR2_AVL_ENABLE_POWER_OF_TWO_BUS" value="false" />
+  <parameter name="CTRL_QDR2_AVL_MAX_BURST_COUNT" value="4" />
+  <parameter name="CTRL_QDR2_AVL_PROTOCOL_ENUM">CTRL_AVL_PROTOCOL_MM</parameter>
+  <parameter name="CTRL_QDR4_ADD_RAW_TURNAROUND_DELAY_CYC" value="0" />
+  <parameter name="CTRL_QDR4_ADD_WAR_TURNAROUND_DELAY_CYC" value="0" />
+  <parameter name="CTRL_QDR4_AVL_ENABLE_POWER_OF_TWO_BUS" value="false" />
+  <parameter name="CTRL_QDR4_AVL_MAX_BURST_COUNT" value="4" />
+  <parameter name="CTRL_QDR4_AVL_PROTOCOL_ENUM">CTRL_AVL_PROTOCOL_MM</parameter>
+  <parameter name="CTRL_QDR4_DEF_RAW_TURNAROUND_DELAY_CYC" value="4" />
+  <parameter name="CTRL_RLD2_AVL_PROTOCOL_ENUM">CTRL_AVL_PROTOCOL_MM</parameter>
+  <parameter name="CTRL_RLD3_ADDR_ORDER_ENUM">RLD3_CTRL_ADDR_ORDER_CS_R_B_C</parameter>
+  <parameter name="CTRL_RLD3_AVL_PROTOCOL_ENUM">CTRL_AVL_PROTOCOL_MM</parameter>
+  <parameter name="DIAG_BOARD_DELAY_CONFIG_STR" value="" />
+  <parameter name="DIAG_DB_RESET_AUTO_RELEASE" value="avl_release" />
+  <parameter name="DIAG_DDR3_ABSTRACT_PHY" value="false" />
+  <parameter name="DIAG_DDR3_BYPASS_DEFAULT_PATTERN" value="false" />
+  <parameter name="DIAG_DDR3_BYPASS_USER_STAGE" value="true" />
+  <parameter name="DIAG_DDR3_CAL_ADDR0" value="0" />
+  <parameter name="DIAG_DDR3_CAL_ADDR1" value="8" />
+  <parameter name="DIAG_DDR3_CAL_ENABLE_MICRON_AP" value="false" />
+  <parameter name="DIAG_DDR3_CAL_ENABLE_NON_DES" value="false" />
+  <parameter name="DIAG_DDR3_CAL_FULL_CAL_ON_RESET" value="true" />
+  <parameter name="DIAG_DDR3_CA_DESKEW_EN" value="false" />
+  <parameter name="DIAG_DDR3_CA_LEVEL_EN" value="true" />
+  <parameter name="DIAG_DDR3_DISABLE_AFI_P2C_REGISTERS" value="false" />
+  <parameter name="DIAG_DDR3_EFFICIENCY_MONITOR">EFFMON_MODE_DISABLED</parameter>
+  <parameter name="DIAG_DDR3_EXPORT_SEQ_AVALON_HEAD_OF_CHAIN" value="true" />
+  <parameter name="DIAG_DDR3_EXPORT_SEQ_AVALON_MASTER" value="true" />
+  <parameter name="DIAG_DDR3_EXPORT_SEQ_AVALON_SLAVE">CAL_DEBUG_EXPORT_MODE_DISABLED</parameter>
+  <parameter name="DIAG_DDR3_EXPORT_TG_CFG_AVALON_SLAVE">TG_CFG_AMM_EXPORT_MODE_EXPORT</parameter>
+  <parameter name="DIAG_DDR3_EX_DESIGN_ISSP_EN" value="true" />
+  <parameter name="DIAG_DDR3_EX_DESIGN_NUM_OF_SLAVES" value="1" />
+  <parameter name="DIAG_DDR3_EX_DESIGN_SEPARATE_RZQS" value="false" />
+  <parameter name="DIAG_DDR3_INFI_TG2_ERR_TEST" value="false" />
+  <parameter name="DIAG_DDR3_INTERFACE_ID" value="0" />
+  <parameter name="DIAG_DDR3_SEPARATE_READ_WRITE_ITFS" value="false" />
+  <parameter name="DIAG_DDR3_SIM_CAL_MODE_ENUM" value="SIM_CAL_MODE_SKIP" />
+  <parameter name="DIAG_DDR3_SIM_VERBOSE" value="true" />
+  <parameter name="DIAG_DDR3_USER_SIM_MEMORY_PRELOAD" value="false" />
+  <parameter name="DIAG_DDR3_USER_SIM_MEMORY_PRELOAD_PRI_EMIF_FILE">EMIF_PRI_PRELOAD.txt</parameter>
+  <parameter name="DIAG_DDR3_USER_SIM_MEMORY_PRELOAD_SEC_EMIF_FILE">EMIF_SEC_PRELOAD.txt</parameter>
+  <parameter name="DIAG_DDR3_USER_USE_SIM_MEMORY_VALIDATION_TG" value="true" />
+  <parameter name="DIAG_DDR3_USE_TG_AVL_2" value="false" />
+  <parameter name="DIAG_DDR4_ABSTRACT_PHY" value="false" />
+  <parameter name="DIAG_DDR4_BYPASS_DEFAULT_PATTERN" value="false" />
+  <parameter name="DIAG_DDR4_BYPASS_USER_STAGE" value="true" />
+  <parameter name="DIAG_DDR4_CAL_ADDR0" value="0" />
+  <parameter name="DIAG_DDR4_CAL_ADDR1" value="8" />
+  <parameter name="DIAG_DDR4_CAL_ENABLE_NON_DES" value="false" />
+  <parameter name="DIAG_DDR4_CAL_FULL_CAL_ON_RESET" value="true" />
+  <parameter name="DIAG_DDR4_DISABLE_AFI_P2C_REGISTERS" value="false" />
+  <parameter name="DIAG_DDR4_EFFICIENCY_MONITOR">EFFMON_MODE_DISABLED</parameter>
+  <parameter name="DIAG_DDR4_EXPORT_SEQ_AVALON_HEAD_OF_CHAIN" value="true" />
+  <parameter name="DIAG_DDR4_EXPORT_SEQ_AVALON_MASTER" value="true" />
+  <parameter name="DIAG_DDR4_EXPORT_SEQ_AVALON_SLAVE">CAL_DEBUG_EXPORT_MODE_DISABLED</parameter>
+  <parameter name="DIAG_DDR4_EXPORT_TG_CFG_AVALON_SLAVE">TG_CFG_AMM_EXPORT_MODE_EXPORT</parameter>
+  <parameter name="DIAG_DDR4_EX_DESIGN_ISSP_EN" value="true" />
+  <parameter name="DIAG_DDR4_EX_DESIGN_NUM_OF_SLAVES" value="1" />
+  <parameter name="DIAG_DDR4_EX_DESIGN_SEPARATE_RZQS" value="false" />
+  <parameter name="DIAG_DDR4_INFI_TG2_ERR_TEST" value="false" />
+  <parameter name="DIAG_DDR4_INTERFACE_ID" value="0" />
+  <parameter name="DIAG_DDR4_SEPARATE_READ_WRITE_ITFS" value="false" />
+  <parameter name="DIAG_DDR4_SIM_CAL_MODE_ENUM" value="SIM_CAL_MODE_SKIP" />
+  <parameter name="DIAG_DDR4_SIM_VERBOSE" value="true" />
+  <parameter name="DIAG_DDR4_SKIP_CA_DESKEW" value="false" />
+  <parameter name="DIAG_DDR4_SKIP_CA_LEVEL" value="false" />
+  <parameter name="DIAG_DDR4_SKIP_VREF_CAL" value="true" />
+  <parameter name="DIAG_DDR4_USER_SIM_MEMORY_PRELOAD" value="false" />
+  <parameter name="DIAG_DDR4_USER_SIM_MEMORY_PRELOAD_PRI_EMIF_FILE">EMIF_PRI_PRELOAD.txt</parameter>
+  <parameter name="DIAG_DDR4_USER_SIM_MEMORY_PRELOAD_SEC_EMIF_FILE">EMIF_SEC_PRELOAD.txt</parameter>
+  <parameter name="DIAG_DDR4_USER_USE_SIM_MEMORY_VALIDATION_TG" value="true" />
+  <parameter name="DIAG_DDR4_USE_TG_AVL_2" value="false" />
+  <parameter name="DIAG_ECLIPSE_DEBUG" value="false" />
+  <parameter name="DIAG_ENABLE_HPS_EMIF_DEBUG" value="false" />
+  <parameter name="DIAG_ENABLE_JTAG_UART" value="false" />
+  <parameter name="DIAG_ENABLE_JTAG_UART_HEX" value="false" />
+  <parameter name="DIAG_EXPORT_PLL_LOCKED" value="false" />
+  <parameter name="DIAG_EXPORT_PLL_REF_CLK_OUT" value="false" />
+  <parameter name="DIAG_EXPORT_VJI" value="false" />
+  <parameter name="DIAG_EXPOSE_DFT_SIGNALS" value="false" />
+  <parameter name="DIAG_EXTRA_CONFIGS" value="" />
+  <parameter name="DIAG_EXT_DOCS" value="false" />
+  <parameter name="DIAG_EX_DESIGN_ADD_TEST_EMIFS" value="" />
+  <parameter name="DIAG_EX_DESIGN_SEPARATE_RESETS" value="false" />
+  <parameter name="DIAG_FAST_SIM_OVERRIDE">FAST_SIM_OVERRIDE_DEFAULT</parameter>
+  <parameter name="DIAG_HMC_HRC" value="auto" />
+  <parameter name="DIAG_LPDDR3_ABSTRACT_PHY" value="false" />
+  <parameter name="DIAG_LPDDR3_BYPASS_DEFAULT_PATTERN" value="false" />
+  <parameter name="DIAG_LPDDR3_BYPASS_USER_STAGE" value="true" />
+  <parameter name="DIAG_LPDDR3_DISABLE_AFI_P2C_REGISTERS" value="false" />
+  <parameter name="DIAG_LPDDR3_EFFICIENCY_MONITOR">EFFMON_MODE_DISABLED</parameter>
+  <parameter name="DIAG_LPDDR3_EXPORT_SEQ_AVALON_HEAD_OF_CHAIN" value="true" />
+  <parameter name="DIAG_LPDDR3_EXPORT_SEQ_AVALON_MASTER" value="false" />
+  <parameter name="DIAG_LPDDR3_EXPORT_SEQ_AVALON_SLAVE">CAL_DEBUG_EXPORT_MODE_DISABLED</parameter>
+  <parameter name="DIAG_LPDDR3_EXPORT_TG_CFG_AVALON_SLAVE">TG_CFG_AMM_EXPORT_MODE_EXPORT</parameter>
+  <parameter name="DIAG_LPDDR3_EX_DESIGN_ISSP_EN" value="true" />
+  <parameter name="DIAG_LPDDR3_EX_DESIGN_NUM_OF_SLAVES" value="1" />
+  <parameter name="DIAG_LPDDR3_EX_DESIGN_SEPARATE_RZQS" value="false" />
+  <parameter name="DIAG_LPDDR3_INFI_TG2_ERR_TEST" value="false" />
+  <parameter name="DIAG_LPDDR3_INTERFACE_ID" value="0" />
+  <parameter name="DIAG_LPDDR3_SEPARATE_READ_WRITE_ITFS" value="false" />
+  <parameter name="DIAG_LPDDR3_SIM_CAL_MODE_ENUM" value="SIM_CAL_MODE_SKIP" />
+  <parameter name="DIAG_LPDDR3_SIM_VERBOSE" value="true" />
+  <parameter name="DIAG_LPDDR3_SKIP_CA_DESKEW" value="false" />
+  <parameter name="DIAG_LPDDR3_SKIP_CA_LEVEL" value="false" />
+  <parameter name="DIAG_LPDDR3_USER_SIM_MEMORY_PRELOAD" value="false" />
+  <parameter name="DIAG_LPDDR3_USER_SIM_MEMORY_PRELOAD_PRI_EMIF_FILE">EMIF_PRI_PRELOAD.txt</parameter>
+  <parameter name="DIAG_LPDDR3_USER_SIM_MEMORY_PRELOAD_SEC_EMIF_FILE">EMIF_SEC_PRELOAD.txt</parameter>
+  <parameter name="DIAG_LPDDR3_USER_USE_SIM_MEMORY_VALIDATION_TG" value="true" />
+  <parameter name="DIAG_LPDDR3_USE_TG_AVL_2" value="false" />
+  <parameter name="DIAG_QDR2_ABSTRACT_PHY" value="false" />
+  <parameter name="DIAG_QDR2_BYPASS_DEFAULT_PATTERN" value="false" />
+  <parameter name="DIAG_QDR2_BYPASS_USER_STAGE" value="true" />
+  <parameter name="DIAG_QDR2_DISABLE_AFI_P2C_REGISTERS" value="false" />
+  <parameter name="DIAG_QDR2_EFFICIENCY_MONITOR">EFFMON_MODE_DISABLED</parameter>
+  <parameter name="DIAG_QDR2_EXPORT_SEQ_AVALON_HEAD_OF_CHAIN" value="true" />
+  <parameter name="DIAG_QDR2_EXPORT_SEQ_AVALON_MASTER" value="true" />
+  <parameter name="DIAG_QDR2_EXPORT_SEQ_AVALON_SLAVE">CAL_DEBUG_EXPORT_MODE_DISABLED</parameter>
+  <parameter name="DIAG_QDR2_EXPORT_TG_CFG_AVALON_SLAVE">TG_CFG_AMM_EXPORT_MODE_EXPORT</parameter>
+  <parameter name="DIAG_QDR2_EX_DESIGN_ISSP_EN" value="true" />
+  <parameter name="DIAG_QDR2_EX_DESIGN_NUM_OF_SLAVES" value="1" />
+  <parameter name="DIAG_QDR2_EX_DESIGN_SEPARATE_RZQS" value="false" />
+  <parameter name="DIAG_QDR2_INFI_TG2_ERR_TEST" value="false" />
+  <parameter name="DIAG_QDR2_INTERFACE_ID" value="0" />
+  <parameter name="DIAG_QDR2_SEPARATE_READ_WRITE_ITFS" value="false" />
+  <parameter name="DIAG_QDR2_SIM_CAL_MODE_ENUM" value="SIM_CAL_MODE_SKIP" />
+  <parameter name="DIAG_QDR2_SIM_VERBOSE" value="true" />
+  <parameter name="DIAG_QDR2_USER_SIM_MEMORY_PRELOAD" value="false" />
+  <parameter name="DIAG_QDR2_USER_SIM_MEMORY_PRELOAD_PRI_EMIF_FILE">EMIF_PRI_PRELOAD.txt</parameter>
+  <parameter name="DIAG_QDR2_USER_SIM_MEMORY_PRELOAD_SEC_EMIF_FILE">EMIF_SEC_PRELOAD.txt</parameter>
+  <parameter name="DIAG_QDR2_USER_USE_SIM_MEMORY_VALIDATION_TG" value="true" />
+  <parameter name="DIAG_QDR2_USE_TG_AVL_2" value="false" />
+  <parameter name="DIAG_QDR4_ABSTRACT_PHY" value="false" />
+  <parameter name="DIAG_QDR4_BYPASS_DEFAULT_PATTERN" value="false" />
+  <parameter name="DIAG_QDR4_BYPASS_USER_STAGE" value="true" />
+  <parameter name="DIAG_QDR4_DISABLE_AFI_P2C_REGISTERS" value="false" />
+  <parameter name="DIAG_QDR4_EFFICIENCY_MONITOR">EFFMON_MODE_DISABLED</parameter>
+  <parameter name="DIAG_QDR4_EXPORT_SEQ_AVALON_HEAD_OF_CHAIN" value="true" />
+  <parameter name="DIAG_QDR4_EXPORT_SEQ_AVALON_MASTER" value="true" />
+  <parameter name="DIAG_QDR4_EXPORT_SEQ_AVALON_SLAVE">CAL_DEBUG_EXPORT_MODE_DISABLED</parameter>
+  <parameter name="DIAG_QDR4_EXPORT_TG_CFG_AVALON_SLAVE">TG_CFG_AMM_EXPORT_MODE_EXPORT</parameter>
+  <parameter name="DIAG_QDR4_EX_DESIGN_ISSP_EN" value="true" />
+  <parameter name="DIAG_QDR4_EX_DESIGN_NUM_OF_SLAVES" value="1" />
+  <parameter name="DIAG_QDR4_EX_DESIGN_SEPARATE_RZQS" value="false" />
+  <parameter name="DIAG_QDR4_INFI_TG2_ERR_TEST" value="false" />
+  <parameter name="DIAG_QDR4_INTERFACE_ID" value="0" />
+  <parameter name="DIAG_QDR4_SEPARATE_READ_WRITE_ITFS" value="false" />
+  <parameter name="DIAG_QDR4_SIM_CAL_MODE_ENUM" value="SIM_CAL_MODE_SKIP" />
+  <parameter name="DIAG_QDR4_SIM_VERBOSE" value="true" />
+  <parameter name="DIAG_QDR4_SKIP_VREF_CAL" value="false" />
+  <parameter name="DIAG_QDR4_USER_SIM_MEMORY_PRELOAD" value="false" />
+  <parameter name="DIAG_QDR4_USER_SIM_MEMORY_PRELOAD_PRI_EMIF_FILE">EMIF_PRI_PRELOAD.txt</parameter>
+  <parameter name="DIAG_QDR4_USER_SIM_MEMORY_PRELOAD_SEC_EMIF_FILE">EMIF_SEC_PRELOAD.txt</parameter>
+  <parameter name="DIAG_QDR4_USER_USE_SIM_MEMORY_VALIDATION_TG" value="true" />
+  <parameter name="DIAG_QDR4_USE_TG_AVL_2" value="false" />
+  <parameter name="DIAG_RLD2_ABSTRACT_PHY" value="false" />
+  <parameter name="DIAG_RLD2_BYPASS_DEFAULT_PATTERN" value="false" />
+  <parameter name="DIAG_RLD2_BYPASS_USER_STAGE" value="true" />
+  <parameter name="DIAG_RLD2_DISABLE_AFI_P2C_REGISTERS" value="false" />
+  <parameter name="DIAG_RLD2_EFFICIENCY_MONITOR">EFFMON_MODE_DISABLED</parameter>
+  <parameter name="DIAG_RLD2_EXPORT_SEQ_AVALON_HEAD_OF_CHAIN" value="true" />
+  <parameter name="DIAG_RLD2_EXPORT_SEQ_AVALON_MASTER" value="true" />
+  <parameter name="DIAG_RLD2_EXPORT_SEQ_AVALON_SLAVE">CAL_DEBUG_EXPORT_MODE_DISABLED</parameter>
+  <parameter name="DIAG_RLD2_EXPORT_TG_CFG_AVALON_SLAVE">TG_CFG_AMM_EXPORT_MODE_EXPORT</parameter>
+  <parameter name="DIAG_RLD2_EX_DESIGN_ISSP_EN" value="true" />
+  <parameter name="DIAG_RLD2_EX_DESIGN_NUM_OF_SLAVES" value="1" />
+  <parameter name="DIAG_RLD2_EX_DESIGN_SEPARATE_RZQS" value="false" />
+  <parameter name="DIAG_RLD2_INFI_TG2_ERR_TEST" value="false" />
+  <parameter name="DIAG_RLD2_INTERFACE_ID" value="0" />
+  <parameter name="DIAG_RLD2_SEPARATE_READ_WRITE_ITFS" value="false" />
+  <parameter name="DIAG_RLD2_SIM_CAL_MODE_ENUM" value="SIM_CAL_MODE_SKIP" />
+  <parameter name="DIAG_RLD2_SIM_VERBOSE" value="true" />
+  <parameter name="DIAG_RLD2_USER_SIM_MEMORY_PRELOAD" value="false" />
+  <parameter name="DIAG_RLD2_USER_SIM_MEMORY_PRELOAD_PRI_EMIF_FILE">EMIF_PRI_PRELOAD.txt</parameter>
+  <parameter name="DIAG_RLD2_USER_SIM_MEMORY_PRELOAD_SEC_EMIF_FILE">EMIF_SEC_PRELOAD.txt</parameter>
+  <parameter name="DIAG_RLD2_USER_USE_SIM_MEMORY_VALIDATION_TG" value="true" />
+  <parameter name="DIAG_RLD2_USE_TG_AVL_2" value="false" />
+  <parameter name="DIAG_RLD3_ABSTRACT_PHY" value="false" />
+  <parameter name="DIAG_RLD3_BYPASS_DEFAULT_PATTERN" value="false" />
+  <parameter name="DIAG_RLD3_BYPASS_USER_STAGE" value="true" />
+  <parameter name="DIAG_RLD3_CA_DESKEW_EN" value="false" />
+  <parameter name="DIAG_RLD3_CA_LEVEL_EN" value="false" />
+  <parameter name="DIAG_RLD3_DISABLE_AFI_P2C_REGISTERS" value="false" />
+  <parameter name="DIAG_RLD3_EFFICIENCY_MONITOR">EFFMON_MODE_DISABLED</parameter>
+  <parameter name="DIAG_RLD3_EXPORT_SEQ_AVALON_HEAD_OF_CHAIN" value="true" />
+  <parameter name="DIAG_RLD3_EXPORT_SEQ_AVALON_MASTER" value="true" />
+  <parameter name="DIAG_RLD3_EXPORT_SEQ_AVALON_SLAVE">CAL_DEBUG_EXPORT_MODE_DISABLED</parameter>
+  <parameter name="DIAG_RLD3_EXPORT_TG_CFG_AVALON_SLAVE">TG_CFG_AMM_EXPORT_MODE_EXPORT</parameter>
+  <parameter name="DIAG_RLD3_EX_DESIGN_ISSP_EN" value="true" />
+  <parameter name="DIAG_RLD3_EX_DESIGN_NUM_OF_SLAVES" value="1" />
+  <parameter name="DIAG_RLD3_EX_DESIGN_SEPARATE_RZQS" value="false" />
+  <parameter name="DIAG_RLD3_INFI_TG2_ERR_TEST" value="false" />
+  <parameter name="DIAG_RLD3_INTERFACE_ID" value="0" />
+  <parameter name="DIAG_RLD3_SEPARATE_READ_WRITE_ITFS" value="false" />
+  <parameter name="DIAG_RLD3_SIM_CAL_MODE_ENUM" value="SIM_CAL_MODE_SKIP" />
+  <parameter name="DIAG_RLD3_SIM_VERBOSE" value="true" />
+  <parameter name="DIAG_RLD3_USER_SIM_MEMORY_PRELOAD" value="false" />
+  <parameter name="DIAG_RLD3_USER_SIM_MEMORY_PRELOAD_PRI_EMIF_FILE">EMIF_PRI_PRELOAD.txt</parameter>
+  <parameter name="DIAG_RLD3_USER_SIM_MEMORY_PRELOAD_SEC_EMIF_FILE">EMIF_SEC_PRELOAD.txt</parameter>
+  <parameter name="DIAG_RLD3_USER_USE_SIM_MEMORY_VALIDATION_TG" value="true" />
+  <parameter name="DIAG_RLD3_USE_TG_AVL_2" value="false" />
+  <parameter name="DIAG_RS232_UART_BAUDRATE" value="57600" />
+  <parameter name="DIAG_SEQ_RESET_AUTO_RELEASE" value="avl" />
+  <parameter name="DIAG_SIM_REGTEST_MODE" value="false" />
+  <parameter name="DIAG_SOFT_NIOS_CLOCK_FREQUENCY" value="100" />
+  <parameter name="DIAG_SOFT_NIOS_MODE">SOFT_NIOS_MODE_DISABLED</parameter>
+  <parameter name="DIAG_SYNTH_FOR_SIM" value="false" />
+  <parameter name="DIAG_TG_AVL_2_NUM_CFG_INTERFACES" value="0" />
+  <parameter name="DIAG_TIMING_REGTEST_MODE" value="false" />
+  <parameter name="DIAG_USE_BOARD_DELAY_MODEL" value="false" />
+  <parameter name="DIAG_USE_RS232_UART" value="false" />
+  <parameter name="DIAG_VERBOSE_IOAUX" value="false" />
+  <parameter name="EX_DESIGN_GUI_DDR3_GEN_SIM" value="true" />
+  <parameter name="EX_DESIGN_GUI_DDR3_GEN_SYNTH" value="true" />
+  <parameter name="EX_DESIGN_GUI_DDR3_HDL_FORMAT" value="HDL_FORMAT_VERILOG" />
+  <parameter name="EX_DESIGN_GUI_DDR3_PREV_PRESET" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_DDR3_SEL_DESIGN">AVAIL_EX_DESIGNS_GEN_DESIGN</parameter>
+  <parameter name="EX_DESIGN_GUI_DDR3_TARGET_DEV_KIT" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_DDR4_GEN_SIM" value="true" />
+  <parameter name="EX_DESIGN_GUI_DDR4_GEN_SYNTH" value="true" />
+  <parameter name="EX_DESIGN_GUI_DDR4_HDL_FORMAT" value="HDL_FORMAT_VERILOG" />
+  <parameter name="EX_DESIGN_GUI_DDR4_PREV_PRESET" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_DDR4_SEL_DESIGN">AVAIL_EX_DESIGNS_GEN_DESIGN</parameter>
+  <parameter name="EX_DESIGN_GUI_DDR4_TARGET_DEV_KIT" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_LPDDR3_GEN_SIM" value="true" />
+  <parameter name="EX_DESIGN_GUI_LPDDR3_GEN_SYNTH" value="true" />
+  <parameter name="EX_DESIGN_GUI_LPDDR3_HDL_FORMAT" value="HDL_FORMAT_VERILOG" />
+  <parameter name="EX_DESIGN_GUI_LPDDR3_PREV_PRESET" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_LPDDR3_SEL_DESIGN">AVAIL_EX_DESIGNS_GEN_DESIGN</parameter>
+  <parameter
+     name="EX_DESIGN_GUI_LPDDR3_TARGET_DEV_KIT"
+     value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_QDR2_GEN_SIM" value="true" />
+  <parameter name="EX_DESIGN_GUI_QDR2_GEN_SYNTH" value="true" />
+  <parameter name="EX_DESIGN_GUI_QDR2_HDL_FORMAT" value="HDL_FORMAT_VERILOG" />
+  <parameter name="EX_DESIGN_GUI_QDR2_PREV_PRESET" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_QDR2_SEL_DESIGN">AVAIL_EX_DESIGNS_GEN_DESIGN</parameter>
+  <parameter name="EX_DESIGN_GUI_QDR2_TARGET_DEV_KIT" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_QDR4_GEN_SIM" value="true" />
+  <parameter name="EX_DESIGN_GUI_QDR4_GEN_SYNTH" value="true" />
+  <parameter name="EX_DESIGN_GUI_QDR4_HDL_FORMAT" value="HDL_FORMAT_VERILOG" />
+  <parameter name="EX_DESIGN_GUI_QDR4_PREV_PRESET" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_QDR4_SEL_DESIGN">AVAIL_EX_DESIGNS_GEN_DESIGN</parameter>
+  <parameter name="EX_DESIGN_GUI_QDR4_TARGET_DEV_KIT" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_RLD2_GEN_SIM" value="true" />
+  <parameter name="EX_DESIGN_GUI_RLD2_GEN_SYNTH" value="true" />
+  <parameter name="EX_DESIGN_GUI_RLD2_HDL_FORMAT" value="HDL_FORMAT_VERILOG" />
+  <parameter name="EX_DESIGN_GUI_RLD2_PREV_PRESET" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_RLD2_SEL_DESIGN">AVAIL_EX_DESIGNS_GEN_DESIGN</parameter>
+  <parameter name="EX_DESIGN_GUI_RLD2_TARGET_DEV_KIT" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_RLD3_GEN_SIM" value="true" />
+  <parameter name="EX_DESIGN_GUI_RLD3_GEN_SYNTH" value="true" />
+  <parameter name="EX_DESIGN_GUI_RLD3_HDL_FORMAT" value="HDL_FORMAT_VERILOG" />
+  <parameter name="EX_DESIGN_GUI_RLD3_PREV_PRESET" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="EX_DESIGN_GUI_RLD3_SEL_DESIGN">AVAIL_EX_DESIGNS_GEN_DESIGN</parameter>
+  <parameter name="EX_DESIGN_GUI_RLD3_TARGET_DEV_KIT" value="TARGET_DEV_KIT_NONE" />
+  <parameter name="INTERNAL_TESTING_MODE" value="false" />
+  <parameter name="IS_ED_SLAVE" value="false" />
+  <parameter name="MEM_DDR3_ALERT_N_DQS_GROUP" value="0" />
+  <parameter name="MEM_DDR3_ALERT_N_PLACEMENT_ENUM">DDR3_ALERT_N_PLACEMENT_AC_LANES</parameter>
+  <parameter name="MEM_DDR3_ASR_ENUM" value="DDR3_ASR_MANUAL" />
+  <parameter name="MEM_DDR3_ATCL_ENUM" value="DDR3_ATCL_DISABLED" />
+  <parameter name="MEM_DDR3_BANK_ADDR_WIDTH" value="3" />
+  <parameter name="MEM_DDR3_BL_ENUM" value="DDR3_BL_BL8" />
+  <parameter name="MEM_DDR3_BT_ENUM" value="DDR3_BT_SEQUENTIAL" />
+  <parameter name="MEM_DDR3_CFG_GEN_DBE" value="false" />
+  <parameter name="MEM_DDR3_CFG_GEN_SBE" value="false" />
+  <parameter name="MEM_DDR3_CKE_PER_DIMM" value="1" />
+  <parameter name="MEM_DDR3_CK_WIDTH" value="1" />
+  <parameter name="MEM_DDR3_COL_ADDR_WIDTH" value="10" />
+  <parameter name="MEM_DDR3_DISCRETE_CS_WIDTH" value="1" />
+  <parameter name="MEM_DDR3_DISCRETE_MIRROR_ADDRESSING_EN" value="false" />
+  <parameter name="MEM_DDR3_DLL_EN" value="true" />
+  <parameter name="MEM_DDR3_DM_EN" value="true" />
+  <parameter name="MEM_DDR3_DQ_PER_DQS" value="8" />
+  <parameter name="MEM_DDR3_DQ_WIDTH" value="72" />
+  <parameter name="MEM_DDR3_DRV_STR_ENUM" value="DDR3_DRV_STR_RZQ_6" />
+  <parameter name="MEM_DDR3_FORMAT_ENUM" value="MEM_FORMAT_UDIMM" />
+  <parameter name="MEM_DDR3_HIDE_ADV_MR_SETTINGS" value="true" />
+  <parameter name="MEM_DDR3_LRDIMM_EXTENDED_CONFIG">0x000000000000000000</parameter>
+  <parameter name="MEM_DDR3_MIRROR_ADDRESSING_EN" value="false" />
+  <parameter name="MEM_DDR3_NUM_OF_DIMMS" value="1" />
+  <parameter name="MEM_DDR3_PD_ENUM" value="DDR3_PD_OFF" />
+  <parameter name="MEM_DDR3_RANKS_PER_DIMM" value="1" />
+  <parameter name="MEM_DDR3_RDIMM_CONFIG" value="0000000000000000" />
+  <parameter name="MEM_DDR3_ROW_ADDR_WIDTH" value="14" />
+  <parameter name="MEM_DDR3_RTT_NOM_ENUM">DDR3_RTT_NOM_ODT_DISABLED</parameter>
+  <parameter name="MEM_DDR3_RTT_WR_ENUM">DDR3_RTT_WR_ODT_DISABLED</parameter>
+  <parameter name="MEM_DDR3_R_ODT0_1X1" value="off" />
+  <parameter name="MEM_DDR3_R_ODT0_2X2" value="off,on" />
+  <parameter name="MEM_DDR3_R_ODT0_4X2" value="off,off,on,on" />
+  <parameter name="MEM_DDR3_R_ODT0_4X4" value="off,off,off,off" />
+  <parameter name="MEM_DDR3_R_ODT1_2X2" value="on,off" />
+  <parameter name="MEM_DDR3_R_ODT1_4X2" value="on,on,off,off" />
+  <parameter name="MEM_DDR3_R_ODT1_4X4" value="off,off,on,on" />
+  <parameter name="MEM_DDR3_R_ODT2_4X4" value="off,off,off,off" />
+  <parameter name="MEM_DDR3_R_ODT3_4X4" value="on,on,off,off" />
+  <parameter name="MEM_DDR3_R_ODTN_1X1" value="Rank 0" />
+  <parameter name="MEM_DDR3_R_ODTN_2X2" value="Rank 0,Rank 1" />
+  <parameter name="MEM_DDR3_R_ODTN_4X2">Rank 0,Rank 1,Rank 2,Rank 3</parameter>
+  <parameter name="MEM_DDR3_R_ODTN_4X4">Rank 0,Rank 1,Rank 2,Rank 3</parameter>
+  <parameter name="MEM_DDR3_SPEEDBIN_ENUM" value="DDR3_SPEEDBIN_2133" />
+  <parameter name="MEM_DDR3_SRT_ENUM" value="DDR3_SRT_NORMAL" />
+  <parameter name="MEM_DDR3_TCL" value="7" />
+  <parameter name="MEM_DDR3_TDH_DC_MV" value="100" />
+  <parameter name="MEM_DDR3_TDH_PS" value="55" />
+  <parameter name="MEM_DDR3_TDQSCK_PS" value="180" />
+  <parameter name="MEM_DDR3_TDQSQ_PS" value="75" />
+  <parameter name="MEM_DDR3_TDQSS_CYC" value="0.27" />
+  <parameter name="MEM_DDR3_TDSH_CYC" value="0.18" />
+  <parameter name="MEM_DDR3_TDSS_CYC" value="0.18" />
+  <parameter name="MEM_DDR3_TDS_AC_MV" value="135" />
+  <parameter name="MEM_DDR3_TDS_PS" value="53" />
+  <parameter name="MEM_DDR3_TFAW_NS" value="25.0" />
+  <parameter name="MEM_DDR3_TIH_DC_MV" value="100" />
+  <parameter name="MEM_DDR3_TIH_PS" value="95" />
+  <parameter name="MEM_DDR3_TINIT_US" value="500" />
+  <parameter name="MEM_DDR3_TIS_AC_MV" value="135" />
+  <parameter name="MEM_DDR3_TIS_PS" value="60" />
+  <parameter name="MEM_DDR3_TMRD_CK_CYC" value="4" />
+  <parameter name="MEM_DDR3_TQH_CYC" value="0.38" />
+  <parameter name="MEM_DDR3_TQSH_CYC" value="0.4" />
+  <parameter name="MEM_DDR3_TRAS_NS" value="33.0" />
+  <parameter name="MEM_DDR3_TRCD_NS" value="13.09" />
+  <parameter name="MEM_DDR3_TREFI_US" value="7.8" />
+  <parameter name="MEM_DDR3_TRFC_NS" value="160.0" />
+  <parameter name="MEM_DDR3_TRP_NS" value="13.09" />
+  <parameter name="MEM_DDR3_TRRD_CYC" value="6" />
+  <parameter name="MEM_DDR3_TRTP_CYC" value="8" />
+  <parameter name="MEM_DDR3_TWLH_PS" value="125.0" />
+  <parameter name="MEM_DDR3_TWLS_PS" value="125.0" />
+  <parameter name="MEM_DDR3_TWR_NS" value="15.0" />
+  <parameter name="MEM_DDR3_TWTR_CYC" value="4" />
+  <parameter name="MEM_DDR3_USE_DEFAULT_ODT" value="true" />
+  <parameter name="MEM_DDR3_WTCL" value="6" />
+  <parameter name="MEM_DDR3_W_ODT0_1X1" value="on" />
+  <parameter name="MEM_DDR3_W_ODT0_2X2" value="on,on" />
+  <parameter name="MEM_DDR3_W_ODT0_4X2" value="off,off,on,on" />
+  <parameter name="MEM_DDR3_W_ODT0_4X4" value="on,on,off,off" />
+  <parameter name="MEM_DDR3_W_ODT1_2X2" value="on,on" />
+  <parameter name="MEM_DDR3_W_ODT1_4X2" value="on,on,off,off" />
+  <parameter name="MEM_DDR3_W_ODT1_4X4" value="off,off,on,on" />
+  <parameter name="MEM_DDR3_W_ODT2_4X4" value="off,off,on,on" />
+  <parameter name="MEM_DDR3_W_ODT3_4X4" value="on,on,off,off" />
+  <parameter name="MEM_DDR3_W_ODTN_1X1" value="Rank 0" />
+  <parameter name="MEM_DDR3_W_ODTN_2X2" value="Rank 0,Rank 1" />
+  <parameter name="MEM_DDR3_W_ODTN_4X2">Rank 0,Rank 1,Rank 2,Rank 3</parameter>
+  <parameter name="MEM_DDR3_W_ODTN_4X4">Rank 0,Rank 1,Rank 2,Rank 3</parameter>
+  <parameter name="MEM_DDR4_AC_PARITY_LATENCY">DDR4_AC_PARITY_LATENCY_DISABLE</parameter>
+  <parameter name="MEM_DDR4_AC_PERSISTENT_ERROR" value="false" />
+  <parameter name="MEM_DDR4_ALERT_N_AC_LANE" value="0" />
+  <parameter name="MEM_DDR4_ALERT_N_AC_PIN" value="0" />
+  <parameter name="MEM_DDR4_ALERT_N_DQS_GROUP" value="0" />
+  <parameter name="MEM_DDR4_ALERT_N_PLACEMENT_ENUM">DDR4_ALERT_N_PLACEMENT_DATA_LANES</parameter>
+  <parameter name="MEM_DDR4_ALERT_PAR_EN" value="true" />
+  <parameter name="MEM_DDR4_ASR_ENUM">DDR4_ASR_MANUAL_NORMAL</parameter>
+  <parameter name="MEM_DDR4_ATCL_ENUM" value="DDR4_ATCL_DISABLED" />
+  <parameter name="MEM_DDR4_BANK_ADDR_WIDTH" value="2" />
+  <parameter name="MEM_DDR4_BANK_GROUP_WIDTH" value="2" />
+  <parameter name="MEM_DDR4_BL_ENUM" value="DDR4_BL_BL8" />
+  <parameter name="MEM_DDR4_BT_ENUM" value="DDR4_BT_SEQUENTIAL" />
+  <parameter name="MEM_DDR4_CAL_MODE" value="0" />
+  <parameter name="MEM_DDR4_CFG_GEN_DBE" value="false" />
+  <parameter name="MEM_DDR4_CFG_GEN_SBE" value="false" />
+  <parameter name="MEM_DDR4_CHIP_ID_WIDTH" value="0" />
+  <parameter name="MEM_DDR4_CKE_PER_DIMM" value="1" />
+  <parameter name="MEM_DDR4_CK_WIDTH" value="2" />
+  <parameter name="MEM_DDR4_COL_ADDR_WIDTH" value="10" />
+  <parameter name="MEM_DDR4_DB_DQ_DRV_ENUM">DDR4_DB_DRV_STR_RZQ_7</parameter>
+  <parameter name="MEM_DDR4_DB_RTT_NOM_ENUM">DDR4_DB_RTT_NOM_ODT_DISABLED</parameter>
+  <parameter name="MEM_DDR4_DB_RTT_PARK_ENUM">DDR4_DB_RTT_PARK_ODT_DISABLED</parameter>
+  <parameter name="MEM_DDR4_DB_RTT_WR_ENUM">DDR4_DB_RTT_WR_RZQ_3</parameter>
+  <parameter name="MEM_DDR4_DEFAULT_VREFOUT" value="false" />
+  <parameter name="MEM_DDR4_DISCRETE_CS_WIDTH" value="1" />
+  <parameter name="MEM_DDR4_DISCRETE_MIRROR_ADDRESSING_EN" value="false" />
+  <parameter name="MEM_DDR4_DLL_EN" value="true" />
+  <parameter name="MEM_DDR4_DM_EN" value="true" />
+  <parameter name="MEM_DDR4_DQ_PER_DQS" value="8" />
+  <parameter name="MEM_DDR4_DQ_WIDTH" value="72" />
+  <parameter name="MEM_DDR4_DRV_STR_ENUM" value="DDR4_DRV_STR_RZQ_7" />
+  <parameter name="MEM_DDR4_FINE_GRANULARITY_REFRESH">DDR4_FINE_REFRESH_FIXED_1X</parameter>
+  <parameter name="MEM_DDR4_FORMAT_ENUM" value="MEM_FORMAT_SODIMM" />
+  <parameter name="MEM_DDR4_GEARDOWN" value="DDR4_GEARDOWN_HR" />
+  <parameter name="MEM_DDR4_HIDE_ADV_MR_SETTINGS" value="true" />
+  <parameter name="MEM_DDR4_INTERNAL_VREFDQ_MONITOR" value="false" />
+  <parameter name="MEM_DDR4_LRDIMM_ODT_LESS_BS" value="true" />
+  <parameter name="MEM_DDR4_LRDIMM_ODT_LESS_BS_PARK_OHM" value="240" />
+  <parameter name="MEM_DDR4_LRDIMM_VREFDQ_VALUE" value="1D" />
+  <parameter name="MEM_DDR4_MAX_POWERDOWN" value="false" />
+  <parameter name="MEM_DDR4_MIRROR_ADDRESSING_EN" value="false" />
+  <parameter name="MEM_DDR4_MPR_READ_FORMAT">DDR4_MPR_READ_FORMAT_SERIAL</parameter>
+  <parameter name="MEM_DDR4_NUM_OF_DIMMS" value="1" />
+  <parameter name="MEM_DDR4_ODT_IN_POWERDOWN" value="true" />
+  <parameter name="MEM_DDR4_PER_DRAM_ADDR" value="false" />
+  <parameter name="MEM_DDR4_RANKS_PER_DIMM" value="2" />
+  <parameter name="MEM_DDR4_RCD_CA_IBT_ENUM" value="DDR4_RCD_CA_IBT_100" />
+  <parameter name="MEM_DDR4_RCD_CKE_IBT_ENUM">DDR4_RCD_CKE_IBT_100</parameter>
+  <parameter name="MEM_DDR4_RCD_CS_IBT_ENUM" value="DDR4_RCD_CS_IBT_100" />
+  <parameter name="MEM_DDR4_RCD_ODT_IBT_ENUM">DDR4_RCD_ODT_IBT_100</parameter>
+  <parameter name="MEM_DDR4_READ_DBI" value="false" />
+  <parameter name="MEM_DDR4_READ_PREAMBLE" value="1" />
+  <parameter name="MEM_DDR4_READ_PREAMBLE_TRAINING" value="false" />
+  <parameter name="MEM_DDR4_ROW_ADDR_WIDTH" value="15" />
+  <parameter name="MEM_DDR4_RTT_NOM_ENUM">DDR4_RTT_NOM_ODT_DISABLED</parameter>
+  <parameter name="MEM_DDR4_RTT_PARK">DDR4_RTT_PARK_ODT_DISABLED</parameter>
+  <parameter name="MEM_DDR4_RTT_WR_ENUM">DDR4_RTT_WR_ODT_DISABLED</parameter>
+  <parameter name="MEM_DDR4_R_ODT0_1X1" value="off" />
+  <parameter name="MEM_DDR4_R_ODT0_2X2" value="off,on" />
+  <parameter name="MEM_DDR4_R_ODT0_4X2" value="off,off,on,on" />
+  <parameter name="MEM_DDR4_R_ODT0_4X4" value="off,off,off,off" />
+  <parameter name="MEM_DDR4_R_ODT1_2X2" value="on,off" />
+  <parameter name="MEM_DDR4_R_ODT1_4X2" value="on,on,off,off" />
+  <parameter name="MEM_DDR4_R_ODT1_4X4" value="off,off,on,on" />
+  <parameter name="MEM_DDR4_R_ODT2_4X4" value="off,off,off,off" />
+  <parameter name="MEM_DDR4_R_ODT3_4X4" value="on,on,off,off" />
+  <parameter name="MEM_DDR4_R_ODTN_1X1" value="Rank 0" />
+  <parameter name="MEM_DDR4_R_ODTN_2X2" value="Rank 0,Rank 1" />
+  <parameter name="MEM_DDR4_R_ODTN_4X2">Rank 0,Rank 1,Rank 2,Rank 3</parameter>
+  <parameter name="MEM_DDR4_R_ODTN_4X4">Rank 0,Rank 1,Rank 2,Rank 3</parameter>
+  <parameter name="MEM_DDR4_SELF_RFSH_ABORT" value="false" />
+  <parameter name="MEM_DDR4_SPD_133_RCD_DB_VENDOR_LSB" value="0" />
+  <parameter name="MEM_DDR4_SPD_134_RCD_DB_VENDOR_MSB" value="0" />
+  <parameter name="MEM_DDR4_SPD_135_RCD_REV" value="0" />
+  <parameter name="MEM_DDR4_SPD_137_RCD_CA_DRV" value="101" />
+  <parameter name="MEM_DDR4_SPD_138_RCD_CK_DRV" value="5" />
+  <parameter name="MEM_DDR4_SPD_139_DB_REV" value="0" />
+  <parameter name="MEM_DDR4_SPD_140_DRAM_VREFDQ_R0" value="29" />
+  <parameter name="MEM_DDR4_SPD_141_DRAM_VREFDQ_R1" value="29" />
+  <parameter name="MEM_DDR4_SPD_142_DRAM_VREFDQ_R2" value="29" />
+  <parameter name="MEM_DDR4_SPD_143_DRAM_VREFDQ_R3" value="29" />
+  <parameter name="MEM_DDR4_SPD_144_DB_VREFDQ" value="37" />
+  <parameter name="MEM_DDR4_SPD_145_DB_MDQ_DRV" value="21" />
+  <parameter name="MEM_DDR4_SPD_148_DRAM_DRV" value="0" />
+  <parameter name="MEM_DDR4_SPD_149_DRAM_RTT_WR_NOM" value="20" />
+  <parameter name="MEM_DDR4_SPD_152_DRAM_RTT_PARK" value="39" />
+  <parameter name="MEM_DDR4_SPEEDBIN_ENUM" value="DDR4_SPEEDBIN_2400" />
+  <parameter name="MEM_DDR4_TCCD_L_CYC" value="5" />
+  <parameter name="MEM_DDR4_TCCD_S_CYC" value="4" />
+  <parameter name="MEM_DDR4_TCL" value="18" />
+  <parameter name="MEM_DDR4_TDIVW_DJ_CYC" value="0.1" />
+  <parameter name="MEM_DDR4_TDIVW_TOTAL_UI" value="0.2" />
+  <parameter name="MEM_DDR4_TDQSCK_PS" value="180" />
+  <parameter name="MEM_DDR4_TDQSQ_PS" value="66" />
+  <parameter name="MEM_DDR4_TDQSQ_UI" value="0.16" />
+  <parameter name="MEM_DDR4_TDQSS_CYC" value="0.27" />
+  <parameter name="MEM_DDR4_TDSH_CYC" value="0.18" />
+  <parameter name="MEM_DDR4_TDSS_CYC" value="0.18" />
+  <parameter name="MEM_DDR4_TDVWP_UI" value="0.72" />
+  <parameter name="MEM_DDR4_TEMP_CONTROLLED_RFSH_ENA" value="false" />
+  <parameter name="MEM_DDR4_TEMP_CONTROLLED_RFSH_RANGE">DDR4_TEMP_CONTROLLED_RFSH_NORMAL</parameter>
+  <parameter name="MEM_DDR4_TEMP_SENSOR_READOUT" value="false" />
+  <parameter name="MEM_DDR4_TFAW_DLR_CYC" value="16" />
+  <parameter name="MEM_DDR4_TFAW_NS" value="25.0" />
+  <parameter name="MEM_DDR4_TIH_DC_MV" value="75" />
+  <parameter name="MEM_DDR4_TIH_PS" value="95" />
+  <parameter name="MEM_DDR4_TINIT_US" value="500" />
+  <parameter name="MEM_DDR4_TIS_AC_MV" value="100" />
+  <parameter name="MEM_DDR4_TIS_PS" value="60" />
+  <parameter name="MEM_DDR4_TMRD_CK_CYC" value="8" />
+  <parameter name="MEM_DDR4_TQH_CYC" value="0.38" />
+  <parameter name="MEM_DDR4_TQH_UI" value="0.76" />
+  <parameter name="MEM_DDR4_TQSH_CYC" value="0.38" />
+  <parameter name="MEM_DDR4_TRAS_NS" value="33.0" />
+  <parameter name="MEM_DDR4_TRCD_NS" value="14.06" />
+  <parameter name="MEM_DDR4_TREFI_US" value="7.8" />
+  <parameter name="MEM_DDR4_TRFC_DLR_NS" value="90.0" />
+  <parameter name="MEM_DDR4_TRFC_NS" value="160.0" />
+  <parameter name="MEM_DDR4_TRP_NS" value="14.06" />
+  <parameter name="MEM_DDR4_TRRD_DLR_CYC" value="4" />
+  <parameter name="MEM_DDR4_TRRD_L_CYC" value="5" />
+  <parameter name="MEM_DDR4_TRRD_S_CYC" value="4" />
+  <parameter name="MEM_DDR4_TWLH_CYC" value="0.13" />
+  <parameter name="MEM_DDR4_TWLH_PS" value="0.0" />
+  <parameter name="MEM_DDR4_TWLS_CYC" value="0.13" />
+  <parameter name="MEM_DDR4_TWLS_PS" value="0.0" />
+  <parameter name="MEM_DDR4_TWR_NS" value="15.0" />
+  <parameter name="MEM_DDR4_TWTR_L_CYC" value="4" />
+  <parameter name="MEM_DDR4_TWTR_S_CYC" value="2" />
+  <parameter name="MEM_DDR4_USER_VREFDQ_TRAINING_RANGE">DDR4_VREFDQ_TRAINING_RANGE_1</parameter>
+  <parameter name="MEM_DDR4_USER_VREFDQ_TRAINING_VALUE" value="60.0" />
+  <parameter name="MEM_DDR4_USE_DEFAULT_ODT" value="true" />
+  <parameter name="MEM_DDR4_VDIVW_TOTAL" value="136" />
+  <parameter name="MEM_DDR4_WRITE_CRC" value="false" />
+  <parameter name="MEM_DDR4_WRITE_DBI" value="false" />
+  <parameter name="MEM_DDR4_WRITE_PREAMBLE" value="1" />
+  <parameter name="MEM_DDR4_WTCL" value="18" />
+  <parameter name="MEM_DDR4_W_ODT0_1X1" value="on" />
+  <parameter name="MEM_DDR4_W_ODT0_2X2" value="on,on" />
+  <parameter name="MEM_DDR4_W_ODT0_4X2" value="off,off,on,on" />
+  <parameter name="MEM_DDR4_W_ODT0_4X4" value="on,on,off,off" />
+  <parameter name="MEM_DDR4_W_ODT1_2X2" value="on,on" />
+  <parameter name="MEM_DDR4_W_ODT1_4X2" value="on,on,off,off" />
+  <parameter name="MEM_DDR4_W_ODT1_4X4" value="off,off,on,on" />
+  <parameter name="MEM_DDR4_W_ODT2_4X4" value="off,off,on,on" />
+  <parameter name="MEM_DDR4_W_ODT3_4X4" value="on,on,off,off" />
+  <parameter name="MEM_DDR4_W_ODTN_1X1" value="Rank 0" />
+  <parameter name="MEM_DDR4_W_ODTN_2X2" value="Rank 0,Rank 1" />
+  <parameter name="MEM_DDR4_W_ODTN_4X2">Rank 0,Rank 1,Rank 2,Rank 3</parameter>
+  <parameter name="MEM_DDR4_W_ODTN_4X4">Rank 0,Rank 1,Rank 2,Rank 3</parameter>
+  <parameter name="MEM_LPDDR3_BANK_ADDR_WIDTH" value="3" />
+  <parameter name="MEM_LPDDR3_BL" value="LPDDR3_BL_BL8" />
+  <parameter name="MEM_LPDDR3_CK_WIDTH" value="1" />
+  <parameter name="MEM_LPDDR3_COL_ADDR_WIDTH" value="10" />
+  <parameter name="MEM_LPDDR3_DATA_LATENCY" value="LPDDR3_DL_RL12_WL6" />
+  <parameter name="MEM_LPDDR3_DISCRETE_CS_WIDTH" value="1" />
+  <parameter name="MEM_LPDDR3_DM_EN" value="true" />
+  <parameter name="MEM_LPDDR3_DQODT">LPDDR3_DQODT_DISABLE</parameter>
+  <parameter name="MEM_LPDDR3_DQ_WIDTH" value="32" />
+  <parameter name="MEM_LPDDR3_DRV_STR">LPDDR3_DRV_STR_40D_40U</parameter>
+  <parameter name="MEM_LPDDR3_PDODT">LPDDR3_PDODT_DISABLED</parameter>
+  <parameter name="MEM_LPDDR3_ROW_ADDR_WIDTH" value="15" />
+  <parameter name="MEM_LPDDR3_R_ODT0_1X1" value="off" />
+  <parameter name="MEM_LPDDR3_R_ODT0_2X2" value="off,off" />
+  <parameter name="MEM_LPDDR3_R_ODT0_4X4" value="off,off,on,on" />
+  <parameter name="MEM_LPDDR3_R_ODT1_2X2" value="off,off" />
+  <parameter name="MEM_LPDDR3_R_ODT1_4X4" value="off,off,off,off" />
+  <parameter name="MEM_LPDDR3_R_ODT2_4X4" value="on,on,off,off" />
+  <parameter name="MEM_LPDDR3_R_ODT3_4X4" value="off,off,off,off" />
+  <parameter name="MEM_LPDDR3_R_ODTN_1X1" value="Rank 0" />
+  <parameter name="MEM_LPDDR3_R_ODTN_2X2" value="Rank 0,Rank 1" />
+  <parameter name="MEM_LPDDR3_R_ODTN_4X4">Rank 0,Rank 1,Rank 2,Rank 3</parameter>
+  <parameter name="MEM_LPDDR3_SPEEDBIN_ENUM">LPDDR3_SPEEDBIN_1600</parameter>
+  <parameter name="MEM_LPDDR3_TDH_DC_MV" value="100" />
+  <parameter name="MEM_LPDDR3_TDH_PS" value="100" />
+  <parameter name="MEM_LPDDR3_TDQSCKDL" value="614" />
+  <parameter name="MEM_LPDDR3_TDQSQ_PS" value="135" />
+  <parameter name="MEM_LPDDR3_TDQSS_CYC" value="1.25" />
+  <parameter name="MEM_LPDDR3_TDSH_CYC" value="0.2" />
+  <parameter name="MEM_LPDDR3_TDSS_CYC" value="0.2" />
+  <parameter name="MEM_LPDDR3_TDS_AC_MV" value="150" />
+  <parameter name="MEM_LPDDR3_TDS_PS" value="75" />
+  <parameter name="MEM_LPDDR3_TFAW_NS" value="50.0" />
+  <parameter name="MEM_LPDDR3_TIH_DC_MV" value="100" />
+  <parameter name="MEM_LPDDR3_TIH_PS" value="100" />
+  <parameter name="MEM_LPDDR3_TINIT_US" value="500" />
+  <parameter name="MEM_LPDDR3_TIS_AC_MV" value="150" />
+  <parameter name="MEM_LPDDR3_TIS_PS" value="75" />
+  <parameter name="MEM_LPDDR3_TMRR_CK_CYC" value="4" />
+  <parameter name="MEM_LPDDR3_TMRW_CK_CYC" value="10" />
+  <parameter name="MEM_LPDDR3_TQH_CYC" value="0.38" />
+  <parameter name="MEM_LPDDR3_TQSH_CYC" value="0.38" />
+  <parameter name="MEM_LPDDR3_TRAS_NS" value="42.5" />
+  <parameter name="MEM_LPDDR3_TRCD_NS" value="18.75" />
+  <parameter name="MEM_LPDDR3_TREFI_US" value="3.9" />
+  <parameter name="MEM_LPDDR3_TRFC_NS" value="210.0" />
+  <parameter name="MEM_LPDDR3_TRP_NS" value="18.75" />
+  <parameter name="MEM_LPDDR3_TRRD_CYC" value="2" />
+  <parameter name="MEM_LPDDR3_TRTP_CYC" value="4" />
+  <parameter name="MEM_LPDDR3_TWLH_PS" value="175.0" />
+  <parameter name="MEM_LPDDR3_TWLS_PS" value="175.0" />
+  <parameter name="MEM_LPDDR3_TWR_NS" value="15.0" />
+  <parameter name="MEM_LPDDR3_TWTR_CYC" value="4" />
+  <parameter name="MEM_LPDDR3_USE_DEFAULT_ODT" value="true" />
+  <parameter name="MEM_LPDDR3_W_ODT0_1X1" value="on" />
+  <parameter name="MEM_LPDDR3_W_ODT0_2X2" value="on,off" />
+  <parameter name="MEM_LPDDR3_W_ODT0_4X4" value="on,on,on,on" />
+  <parameter name="MEM_LPDDR3_W_ODT1_2X2" value="off,on" />
+  <parameter name="MEM_LPDDR3_W_ODT1_4X4" value="off,off,off,off" />
+  <parameter name="MEM_LPDDR3_W_ODT2_4X4" value="on,on,on,on" />
+  <parameter name="MEM_LPDDR3_W_ODT3_4X4" value="off,off,off,off" />
+  <parameter name="MEM_LPDDR3_W_ODTN_1X1" value="Rank 0" />
+  <parameter name="MEM_LPDDR3_W_ODTN_2X2" value="Rank 0,Rank 1" />
+  <parameter name="MEM_LPDDR3_W_ODTN_4X4">Rank 0,Rank 1,Rank 2,Rank 3</parameter>
+  <parameter name="MEM_QDR2_ADDR_WIDTH" value="19" />
+  <parameter name="MEM_QDR2_BL" value="4" />
+  <parameter name="MEM_QDR2_BWS_EN" value="true" />
+  <parameter name="MEM_QDR2_DATA_PER_DEVICE" value="36" />
+  <parameter name="MEM_QDR2_INTERNAL_JITTER_NS" value="0.08" />
+  <parameter name="MEM_QDR2_SPEEDBIN_ENUM" value="QDR2_SPEEDBIN_633" />
+  <parameter name="MEM_QDR2_TCCQO_NS" value="0.45" />
+  <parameter name="MEM_QDR2_TCQDOH_NS" value="-0.09" />
+  <parameter name="MEM_QDR2_TCQD_NS" value="0.09" />
+  <parameter name="MEM_QDR2_TCQH_NS" value="0.71" />
+  <parameter name="MEM_QDR2_THA_NS" value="0.18" />
+  <parameter name="MEM_QDR2_THD_NS" value="0.18" />
+  <parameter name="MEM_QDR2_TRL_CYC" value="2.5" />
+  <parameter name="MEM_QDR2_TSA_NS" value="0.23" />
+  <parameter name="MEM_QDR2_TSD_NS" value="0.23" />
+  <parameter name="MEM_QDR2_WIDTH_EXPANDED" value="false" />
+  <parameter name="MEM_QDR4_AC_ODT_MODE_ENUM" value="QDR4_ODT_25_PCT" />
+  <parameter name="MEM_QDR4_ADDR_INV_ENA" value="false" />
+  <parameter name="MEM_QDR4_ADDR_WIDTH" value="21" />
+  <parameter name="MEM_QDR4_CK_ODT_MODE_ENUM" value="QDR4_ODT_25_PCT" />
+  <parameter name="MEM_QDR4_DATA_INV_ENA" value="false" />
+  <parameter name="MEM_QDR4_DATA_ODT_MODE_ENUM" value="QDR4_ODT_25_PCT" />
+  <parameter name="MEM_QDR4_DQ_PER_PORT_PER_DEVICE" value="36" />
+  <parameter name="MEM_QDR4_MEM_TYPE_ENUM" value="MEM_XP" />
+  <parameter name="MEM_QDR4_PD_OUTPUT_DRIVE_MODE_ENUM">QDR4_OUTPUT_DRIVE_25_PCT</parameter>
+  <parameter name="MEM_QDR4_PU_OUTPUT_DRIVE_MODE_ENUM">QDR4_OUTPUT_DRIVE_25_PCT</parameter>
+  <parameter name="MEM_QDR4_SKIP_ODT_SWEEPING" value="true" />
+  <parameter name="MEM_QDR4_SPEEDBIN_ENUM" value="QDR4_SPEEDBIN_2133" />
+  <parameter name="MEM_QDR4_TASH_PS" value="170" />
+  <parameter name="MEM_QDR4_TCKDK_MAX_PS" value="150" />
+  <parameter name="MEM_QDR4_TCKDK_MIN_PS" value="-150" />
+  <parameter name="MEM_QDR4_TCKQK_MAX_PS" value="225" />
+  <parameter name="MEM_QDR4_TCSH_PS" value="170" />
+  <parameter name="MEM_QDR4_TISH_PS" value="150" />
+  <parameter name="MEM_QDR4_TQH_CYC" value="0.4" />
+  <parameter name="MEM_QDR4_TQKQ_MAX_PS" value="75" />
+  <parameter name="MEM_QDR4_USE_ADDR_PARITY" value="false" />
+  <parameter name="MEM_QDR4_WIDTH_EXPANDED" value="false" />
+  <parameter name="MEM_RLD2_ADDR_WIDTH" value="21" />
+  <parameter name="MEM_RLD2_BANK_ADDR_WIDTH" value="3" />
+  <parameter name="MEM_RLD2_BL" value="4" />
+  <parameter name="MEM_RLD2_CONFIG_ENUM">RLD2_CONFIG_TRC_8_TRL_8_TWL_9</parameter>
+  <parameter name="MEM_RLD2_DM_EN" value="true" />
+  <parameter name="MEM_RLD2_DQ_PER_DEVICE" value="9" />
+  <parameter name="MEM_RLD2_DRIVE_IMPEDENCE_ENUM">RLD2_DRIVE_IMPEDENCE_INTERNAL_50</parameter>
+  <parameter name="MEM_RLD2_ODT_MODE_ENUM" value="RLD2_ODT_ON" />
+  <parameter name="MEM_RLD2_REFRESH_INTERVAL_US" value="0.24" />
+  <parameter name="MEM_RLD2_SPEEDBIN_ENUM" value="RLD2_SPEEDBIN_18" />
+  <parameter name="MEM_RLD2_TAH_NS" value="0.3" />
+  <parameter name="MEM_RLD2_TAS_NS" value="0.3" />
+  <parameter name="MEM_RLD2_TCKDK_MAX_NS" value="0.3" />
+  <parameter name="MEM_RLD2_TCKDK_MIN_NS" value="-0.3" />
+  <parameter name="MEM_RLD2_TCKH_CYC" value="0.45" />
+  <parameter name="MEM_RLD2_TCKQK_MAX_NS" value="0.2" />
+  <parameter name="MEM_RLD2_TDH_NS" value="0.17" />
+  <parameter name="MEM_RLD2_TDS_NS" value="0.17" />
+  <parameter name="MEM_RLD2_TQKH_HCYC" value="0.9" />
+  <parameter name="MEM_RLD2_TQKQ_MAX_NS" value="0.12" />
+  <parameter name="MEM_RLD2_TQKQ_MIN_NS" value="-0.12" />
+  <parameter name="MEM_RLD2_WIDTH_EXPANDED" value="false" />
+  <parameter name="MEM_RLD3_ADDR_WIDTH" value="20" />
+  <parameter name="MEM_RLD3_AREF_PROTOCOL_ENUM" value="RLD3_AREF_BAC" />
+  <parameter name="MEM_RLD3_BANK_ADDR_WIDTH" value="4" />
+  <parameter name="MEM_RLD3_BL" value="2" />
+  <parameter name="MEM_RLD3_DATA_LATENCY_MODE_ENUM" value="RLD3_DL_RL16_WL17" />
+  <parameter name="MEM_RLD3_DEPTH_EXPANDED" value="false" />
+  <parameter name="MEM_RLD3_DM_EN" value="true" />
+  <parameter name="MEM_RLD3_DQ_PER_DEVICE" value="36" />
+  <parameter name="MEM_RLD3_ODT_MODE_ENUM" value="RLD3_ODT_40" />
+  <parameter name="MEM_RLD3_OUTPUT_DRIVE_MODE_ENUM">RLD3_OUTPUT_DRIVE_40</parameter>
+  <parameter name="MEM_RLD3_SPEEDBIN_ENUM" value="RLD3_SPEEDBIN_093E" />
+  <parameter name="MEM_RLD3_TCKDK_MAX_CYC" value="0.27" />
+  <parameter name="MEM_RLD3_TCKDK_MIN_CYC" value="-0.27" />
+  <parameter name="MEM_RLD3_TCKQK_MAX_PS" value="135" />
+  <parameter name="MEM_RLD3_TDH_DC_MV" value="100" />
+  <parameter name="MEM_RLD3_TDH_PS" value="5" />
+  <parameter name="MEM_RLD3_TDS_AC_MV" value="150" />
+  <parameter name="MEM_RLD3_TDS_PS" value="-30" />
+  <parameter name="MEM_RLD3_TIH_DC_MV" value="100" />
+  <parameter name="MEM_RLD3_TIH_PS" value="65" />
+  <parameter name="MEM_RLD3_TIS_AC_MV" value="150" />
+  <parameter name="MEM_RLD3_TIS_PS" value="85" />
+  <parameter name="MEM_RLD3_TQH_CYC" value="0.38" />
+  <parameter name="MEM_RLD3_TQKQ_MAX_PS" value="75" />
+  <parameter name="MEM_RLD3_T_RC_MODE_ENUM" value="RLD3_TRC_9" />
+  <parameter name="MEM_RLD3_WIDTH_EXPANDED" value="false" />
+  <parameter name="MEM_RLD3_WRITE_PROTOCOL_ENUM" value="RLD3_WRITE_1BANK" />
+  <parameter name="PHY_DDR3_CAL_ADDR0" value="0" />
+  <parameter name="PHY_DDR3_CAL_ADDR1" value="8" />
+  <parameter name="PHY_DDR3_CAL_ENABLE_NON_DES" value="true" />
+  <parameter name="PHY_DDR3_CONFIG_ENUM">CONFIG_PHY_AND_HARD_CTRL</parameter>
+  <parameter name="PHY_DDR3_CORE_CLKS_SHARING_ENUM">CORE_CLKS_SHARING_DISABLED</parameter>
+  <parameter name="PHY_DDR3_CORE_CLKS_SHARING_EXPOSE_SLAVE_OUT" value="false" />
+  <parameter name="PHY_DDR3_DEFAULT_IO" value="true" />
+  <parameter name="PHY_DDR3_DEFAULT_REF_CLK_FREQ" value="false" />
+  <parameter name="PHY_DDR3_HPS_ENABLE_EARLY_RELEASE" value="false" />
+  <parameter name="PHY_DDR3_IO_VOLTAGE" value="1.5" />
+  <parameter name="PHY_DDR3_MEM_CLK_FREQ_MHZ" value="1066.667" />
+  <parameter name="PHY_DDR3_MIMIC_HPS_EMIF" value="false" />
+  <parameter name="PHY_DDR3_RATE_ENUM" value="RATE_QUARTER" />
+  <parameter name="PHY_DDR3_REF_CLK_JITTER_PS" value="10.0" />
+  <parameter name="PHY_DDR3_USER_AC_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_DDR3_USER_AC_MODE_ENUM" value="unset" />
+  <parameter name="PHY_DDR3_USER_AC_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_DDR3_USER_AUTO_STARTING_VREFIN_EN" value="true" />
+  <parameter name="PHY_DDR3_USER_CK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_DDR3_USER_CK_MODE_ENUM" value="unset" />
+  <parameter name="PHY_DDR3_USER_CK_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_DDR3_USER_DATA_IN_MODE_ENUM" value="unset" />
+  <parameter name="PHY_DDR3_USER_DATA_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_DDR3_USER_DATA_OUT_MODE_ENUM" value="unset" />
+  <parameter name="PHY_DDR3_USER_DLL_CORE_UPDN_EN" value="true" />
+  <parameter name="PHY_DDR3_USER_PERIODIC_OCT_RECAL_ENUM">PERIODIC_OCT_RECAL_AUTO</parameter>
+  <parameter name="PHY_DDR3_USER_PING_PONG_EN" value="false" />
+  <parameter name="PHY_DDR3_USER_PLL_REF_CLK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_DDR3_USER_REF_CLK_FREQ_MHZ" value="133.333" />
+  <parameter name="PHY_DDR3_USER_RZQ_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_DDR3_USER_STARTING_VREFIN" value="70.0" />
+  <parameter name="PHY_DDR4_CONFIG_ENUM">CONFIG_PHY_AND_HARD_CTRL</parameter>
+  <parameter name="PHY_DDR4_CORE_CLKS_SHARING_ENUM">CORE_CLKS_SHARING_DISABLED</parameter>
+  <parameter name="PHY_DDR4_CORE_CLKS_SHARING_EXPOSE_SLAVE_OUT" value="false" />
+  <parameter name="PHY_DDR4_DEFAULT_IO" value="true" />
+  <parameter name="PHY_DDR4_DEFAULT_REF_CLK_FREQ" value="false" />
+  <parameter name="PHY_DDR4_HPS_ENABLE_EARLY_RELEASE" value="false" />
+  <parameter name="PHY_DDR4_IO_VOLTAGE" value="1.2" />
+  <parameter name="PHY_DDR4_MEM_CLK_FREQ_MHZ" value="1200.0" />
+  <parameter name="PHY_DDR4_MIMIC_HPS_EMIF" value="false" />
+  <parameter name="PHY_DDR4_RATE_ENUM" value="RATE_QUARTER" />
+  <parameter name="PHY_DDR4_REF_CLK_JITTER_PS" value="10.0" />
+  <parameter name="PHY_DDR4_USER_AC_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_DDR4_USER_AC_MODE_ENUM" value="unset" />
+  <parameter name="PHY_DDR4_USER_AC_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_DDR4_USER_AUTO_STARTING_VREFIN_EN" value="true" />
+  <parameter name="PHY_DDR4_USER_CK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_DDR4_USER_CK_MODE_ENUM" value="unset" />
+  <parameter name="PHY_DDR4_USER_CK_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_DDR4_USER_CLAMSHELL_EN" value="false" />
+  <parameter name="PHY_DDR4_USER_DATA_IN_MODE_ENUM" value="unset" />
+  <parameter name="PHY_DDR4_USER_DATA_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_DDR4_USER_DATA_OUT_MODE_ENUM" value="unset" />
+  <parameter name="PHY_DDR4_USER_DLL_CORE_UPDN_EN" value="true" />
+  <parameter name="PHY_DDR4_USER_PERIODIC_OCT_RECAL_ENUM">PERIODIC_OCT_RECAL_AUTO</parameter>
+  <parameter name="PHY_DDR4_USER_PING_PONG_EN" value="false" />
+  <parameter name="PHY_DDR4_USER_PLL_REF_CLK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_DDR4_USER_REF_CLK_FREQ_MHZ" value="25.0" />
+  <parameter name="PHY_DDR4_USER_RZQ_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_DDR4_USER_STARTING_VREFIN" value="70.0" />
+  <parameter name="PHY_LPDDR3_CONFIG_ENUM">CONFIG_PHY_AND_HARD_CTRL</parameter>
+  <parameter name="PHY_LPDDR3_CORE_CLKS_SHARING_ENUM">CORE_CLKS_SHARING_DISABLED</parameter>
+  <parameter name="PHY_LPDDR3_CORE_CLKS_SHARING_EXPOSE_SLAVE_OUT" value="false" />
+  <parameter name="PHY_LPDDR3_DEFAULT_IO" value="true" />
+  <parameter name="PHY_LPDDR3_DEFAULT_REF_CLK_FREQ" value="true" />
+  <parameter name="PHY_LPDDR3_HPS_ENABLE_EARLY_RELEASE" value="false" />
+  <parameter name="PHY_LPDDR3_IO_VOLTAGE" value="1.2" />
+  <parameter name="PHY_LPDDR3_MEM_CLK_FREQ_MHZ" value="800.0" />
+  <parameter name="PHY_LPDDR3_MIMIC_HPS_EMIF" value="false" />
+  <parameter name="PHY_LPDDR3_RATE_ENUM" value="RATE_QUARTER" />
+  <parameter name="PHY_LPDDR3_REF_CLK_JITTER_PS" value="10.0" />
+  <parameter name="PHY_LPDDR3_USER_AC_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_LPDDR3_USER_AC_MODE_ENUM" value="unset" />
+  <parameter name="PHY_LPDDR3_USER_AC_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_LPDDR3_USER_AUTO_STARTING_VREFIN_EN" value="true" />
+  <parameter name="PHY_LPDDR3_USER_CK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_LPDDR3_USER_CK_MODE_ENUM" value="unset" />
+  <parameter name="PHY_LPDDR3_USER_CK_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_LPDDR3_USER_DATA_IN_MODE_ENUM" value="unset" />
+  <parameter name="PHY_LPDDR3_USER_DATA_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_LPDDR3_USER_DATA_OUT_MODE_ENUM" value="unset" />
+  <parameter name="PHY_LPDDR3_USER_DLL_CORE_UPDN_EN" value="false" />
+  <parameter name="PHY_LPDDR3_USER_PERIODIC_OCT_RECAL_ENUM">PERIODIC_OCT_RECAL_AUTO</parameter>
+  <parameter name="PHY_LPDDR3_USER_PING_PONG_EN" value="false" />
+  <parameter name="PHY_LPDDR3_USER_PLL_REF_CLK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_LPDDR3_USER_REF_CLK_FREQ_MHZ" value="-1.0" />
+  <parameter name="PHY_LPDDR3_USER_RZQ_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_LPDDR3_USER_STARTING_VREFIN" value="70.0" />
+  <parameter name="PHY_QDR2_CONFIG_ENUM">CONFIG_PHY_AND_SOFT_CTRL</parameter>
+  <parameter name="PHY_QDR2_CORE_CLKS_SHARING_ENUM">CORE_CLKS_SHARING_DISABLED</parameter>
+  <parameter name="PHY_QDR2_CORE_CLKS_SHARING_EXPOSE_SLAVE_OUT" value="false" />
+  <parameter name="PHY_QDR2_DEFAULT_IO" value="true" />
+  <parameter name="PHY_QDR2_DEFAULT_REF_CLK_FREQ" value="true" />
+  <parameter name="PHY_QDR2_HPS_ENABLE_EARLY_RELEASE" value="false" />
+  <parameter name="PHY_QDR2_IO_VOLTAGE" value="1.5" />
+  <parameter name="PHY_QDR2_MEM_CLK_FREQ_MHZ" value="633.333" />
+  <parameter name="PHY_QDR2_MIMIC_HPS_EMIF" value="false" />
+  <parameter name="PHY_QDR2_RATE_ENUM" value="RATE_HALF" />
+  <parameter name="PHY_QDR2_REF_CLK_JITTER_PS" value="10.0" />
+  <parameter name="PHY_QDR2_USER_AC_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_QDR2_USER_AC_MODE_ENUM" value="unset" />
+  <parameter name="PHY_QDR2_USER_AC_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_QDR2_USER_AUTO_STARTING_VREFIN_EN" value="true" />
+  <parameter name="PHY_QDR2_USER_CK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_QDR2_USER_CK_MODE_ENUM" value="unset" />
+  <parameter name="PHY_QDR2_USER_CK_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_QDR2_USER_DATA_IN_MODE_ENUM" value="unset" />
+  <parameter name="PHY_QDR2_USER_DATA_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_QDR2_USER_DATA_OUT_MODE_ENUM" value="unset" />
+  <parameter name="PHY_QDR2_USER_DLL_CORE_UPDN_EN" value="false" />
+  <parameter name="PHY_QDR2_USER_PERIODIC_OCT_RECAL_ENUM">PERIODIC_OCT_RECAL_AUTO</parameter>
+  <parameter name="PHY_QDR2_USER_PING_PONG_EN" value="false" />
+  <parameter name="PHY_QDR2_USER_PLL_REF_CLK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_QDR2_USER_REF_CLK_FREQ_MHZ" value="-1.0" />
+  <parameter name="PHY_QDR2_USER_RZQ_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_QDR2_USER_STARTING_VREFIN" value="70.0" />
+  <parameter name="PHY_QDR4_CONFIG_ENUM">CONFIG_PHY_AND_SOFT_CTRL</parameter>
+  <parameter name="PHY_QDR4_CORE_CLKS_SHARING_ENUM">CORE_CLKS_SHARING_DISABLED</parameter>
+  <parameter name="PHY_QDR4_CORE_CLKS_SHARING_EXPOSE_SLAVE_OUT" value="false" />
+  <parameter name="PHY_QDR4_DEFAULT_IO" value="true" />
+  <parameter name="PHY_QDR4_DEFAULT_REF_CLK_FREQ" value="true" />
+  <parameter name="PHY_QDR4_HPS_ENABLE_EARLY_RELEASE" value="false" />
+  <parameter name="PHY_QDR4_IO_VOLTAGE" value="1.2" />
+  <parameter name="PHY_QDR4_MEM_CLK_FREQ_MHZ" value="1066.667" />
+  <parameter name="PHY_QDR4_MIMIC_HPS_EMIF" value="false" />
+  <parameter name="PHY_QDR4_RATE_ENUM" value="RATE_QUARTER" />
+  <parameter name="PHY_QDR4_REF_CLK_JITTER_PS" value="10.0" />
+  <parameter name="PHY_QDR4_USER_AC_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_QDR4_USER_AC_MODE_ENUM" value="unset" />
+  <parameter name="PHY_QDR4_USER_AC_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_QDR4_USER_AUTO_STARTING_VREFIN_EN" value="true" />
+  <parameter name="PHY_QDR4_USER_CK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_QDR4_USER_CK_MODE_ENUM" value="unset" />
+  <parameter name="PHY_QDR4_USER_CK_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_QDR4_USER_DATA_IN_MODE_ENUM" value="unset" />
+  <parameter name="PHY_QDR4_USER_DATA_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_QDR4_USER_DATA_OUT_MODE_ENUM" value="unset" />
+  <parameter name="PHY_QDR4_USER_DLL_CORE_UPDN_EN" value="true" />
+  <parameter name="PHY_QDR4_USER_PERIODIC_OCT_RECAL_ENUM">PERIODIC_OCT_RECAL_AUTO</parameter>
+  <parameter name="PHY_QDR4_USER_PING_PONG_EN" value="false" />
+  <parameter name="PHY_QDR4_USER_PLL_REF_CLK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_QDR4_USER_REF_CLK_FREQ_MHZ" value="-1.0" />
+  <parameter name="PHY_QDR4_USER_RZQ_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_QDR4_USER_STARTING_VREFIN" value="70.0" />
+  <parameter name="PHY_RLD2_CONFIG_ENUM">CONFIG_PHY_AND_SOFT_CTRL</parameter>
+  <parameter name="PHY_RLD2_CORE_CLKS_SHARING_ENUM">CORE_CLKS_SHARING_DISABLED</parameter>
+  <parameter name="PHY_RLD2_CORE_CLKS_SHARING_EXPOSE_SLAVE_OUT" value="false" />
+  <parameter name="PHY_RLD2_DEFAULT_IO" value="true" />
+  <parameter name="PHY_RLD2_DEFAULT_REF_CLK_FREQ" value="true" />
+  <parameter name="PHY_RLD2_HPS_ENABLE_EARLY_RELEASE" value="false" />
+  <parameter name="PHY_RLD2_IO_VOLTAGE" value="1.8" />
+  <parameter name="PHY_RLD2_MEM_CLK_FREQ_MHZ" value="533.333" />
+  <parameter name="PHY_RLD2_MIMIC_HPS_EMIF" value="false" />
+  <parameter name="PHY_RLD2_RATE_ENUM" value="RATE_HALF" />
+  <parameter name="PHY_RLD2_REF_CLK_JITTER_PS" value="10.0" />
+  <parameter name="PHY_RLD2_USER_AC_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_RLD2_USER_AC_MODE_ENUM" value="unset" />
+  <parameter name="PHY_RLD2_USER_AC_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_RLD2_USER_AUTO_STARTING_VREFIN_EN" value="true" />
+  <parameter name="PHY_RLD2_USER_CK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_RLD2_USER_CK_MODE_ENUM" value="unset" />
+  <parameter name="PHY_RLD2_USER_CK_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_RLD2_USER_DATA_IN_MODE_ENUM" value="unset" />
+  <parameter name="PHY_RLD2_USER_DATA_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_RLD2_USER_DATA_OUT_MODE_ENUM" value="unset" />
+  <parameter name="PHY_RLD2_USER_DLL_CORE_UPDN_EN" value="false" />
+  <parameter name="PHY_RLD2_USER_PERIODIC_OCT_RECAL_ENUM">PERIODIC_OCT_RECAL_AUTO</parameter>
+  <parameter name="PHY_RLD2_USER_PING_PONG_EN" value="false" />
+  <parameter name="PHY_RLD2_USER_PLL_REF_CLK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_RLD2_USER_REF_CLK_FREQ_MHZ" value="-1.0" />
+  <parameter name="PHY_RLD2_USER_RZQ_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_RLD2_USER_STARTING_VREFIN" value="70.0" />
+  <parameter name="PHY_RLD3_CONFIG_ENUM" value="CONFIG_PHY_ONLY" />
+  <parameter name="PHY_RLD3_CORE_CLKS_SHARING_ENUM">CORE_CLKS_SHARING_DISABLED</parameter>
+  <parameter name="PHY_RLD3_CORE_CLKS_SHARING_EXPOSE_SLAVE_OUT" value="false" />
+  <parameter name="PHY_RLD3_DEFAULT_IO" value="true" />
+  <parameter name="PHY_RLD3_DEFAULT_REF_CLK_FREQ" value="true" />
+  <parameter name="PHY_RLD3_HPS_ENABLE_EARLY_RELEASE" value="false" />
+  <parameter name="PHY_RLD3_IO_VOLTAGE" value="1.2" />
+  <parameter name="PHY_RLD3_MEM_CLK_FREQ_MHZ" value="1066.667" />
+  <parameter name="PHY_RLD3_MIMIC_HPS_EMIF" value="false" />
+  <parameter name="PHY_RLD3_RATE_ENUM" value="RATE_QUARTER" />
+  <parameter name="PHY_RLD3_REF_CLK_JITTER_PS" value="10.0" />
+  <parameter name="PHY_RLD3_USER_AC_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_RLD3_USER_AC_MODE_ENUM" value="unset" />
+  <parameter name="PHY_RLD3_USER_AC_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_RLD3_USER_AUTO_STARTING_VREFIN_EN" value="true" />
+  <parameter name="PHY_RLD3_USER_CK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_RLD3_USER_CK_MODE_ENUM" value="unset" />
+  <parameter name="PHY_RLD3_USER_CK_SLEW_RATE_ENUM" value="SLEW_RATE_FAST" />
+  <parameter name="PHY_RLD3_USER_DATA_IN_MODE_ENUM" value="unset" />
+  <parameter name="PHY_RLD3_USER_DATA_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_RLD3_USER_DATA_OUT_MODE_ENUM" value="unset" />
+  <parameter name="PHY_RLD3_USER_DLL_CORE_UPDN_EN" value="false" />
+  <parameter name="PHY_RLD3_USER_PERIODIC_OCT_RECAL_ENUM">PERIODIC_OCT_RECAL_AUTO</parameter>
+  <parameter name="PHY_RLD3_USER_PING_PONG_EN" value="false" />
+  <parameter name="PHY_RLD3_USER_PLL_REF_CLK_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_RLD3_USER_REF_CLK_FREQ_MHZ" value="-1.0" />
+  <parameter name="PHY_RLD3_USER_RZQ_IO_STD_ENUM" value="unset" />
+  <parameter name="PHY_RLD3_USER_STARTING_VREFIN" value="70.0" />
+  <parameter name="PLL_ADD_EXTRA_CLKS" value="false" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_0" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_1" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_2" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_3" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_4" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_5" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_6" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_7" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_8" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_GUI_0" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_GUI_1" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_GUI_2" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_GUI_3" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_GUI_4" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_GUI_5" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_GUI_6" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_GUI_7" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_DUTY_CYCLE_GUI_8" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_FREQ_MHZ_GUI_0" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_FREQ_MHZ_GUI_1" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_FREQ_MHZ_GUI_2" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_FREQ_MHZ_GUI_3" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_FREQ_MHZ_GUI_4" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_FREQ_MHZ_GUI_5" value="100.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_FREQ_MHZ_GUI_6" value="100.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_FREQ_MHZ_GUI_7" value="100.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_FREQ_MHZ_GUI_8" value="100.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_DEG_GUI_0" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_DEG_GUI_1" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_DEG_GUI_2" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_DEG_GUI_3" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_DEG_GUI_4" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_DEG_GUI_5" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_DEG_GUI_6" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_DEG_GUI_7" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_DEG_GUI_8" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_PS_GUI_0" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_PS_GUI_1" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_PS_GUI_2" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_PS_GUI_3" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_PS_GUI_4" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_PS_GUI_5" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_PS_GUI_6" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_PS_GUI_7" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_ACTUAL_PHASE_PS_GUI_8" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_DUTY_CYCLE_GUI_0" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_DUTY_CYCLE_GUI_1" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_DUTY_CYCLE_GUI_2" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_DUTY_CYCLE_GUI_3" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_DUTY_CYCLE_GUI_4" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_DUTY_CYCLE_GUI_5" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_DUTY_CYCLE_GUI_6" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_DUTY_CYCLE_GUI_7" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_DUTY_CYCLE_GUI_8" value="50.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_FREQ_MHZ_GUI_0" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_FREQ_MHZ_GUI_1" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_FREQ_MHZ_GUI_2" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_FREQ_MHZ_GUI_3" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_FREQ_MHZ_GUI_4" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_FREQ_MHZ_GUI_5" value="100.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_FREQ_MHZ_GUI_6" value="100.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_FREQ_MHZ_GUI_7" value="100.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_FREQ_MHZ_GUI_8" value="100.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_PHASE_GUI_0" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_PHASE_GUI_1" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_PHASE_GUI_2" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_PHASE_GUI_3" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_PHASE_GUI_4" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_PHASE_GUI_5" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_PHASE_GUI_6" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_PHASE_GUI_7" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_DESIRED_PHASE_GUI_8" value="0.0" />
+  <parameter name="PLL_EXTRA_CLK_PHASE_SHIFT_UNIT_GUI_0" value="0" />
+  <parameter name="PLL_EXTRA_CLK_PHASE_SHIFT_UNIT_GUI_1" value="0" />
+  <parameter name="PLL_EXTRA_CLK_PHASE_SHIFT_UNIT_GUI_2" value="0" />
+  <parameter name="PLL_EXTRA_CLK_PHASE_SHIFT_UNIT_GUI_3" value="0" />
+  <parameter name="PLL_EXTRA_CLK_PHASE_SHIFT_UNIT_GUI_4" value="0" />
+  <parameter name="PLL_EXTRA_CLK_PHASE_SHIFT_UNIT_GUI_5" value="0" />
+  <parameter name="PLL_EXTRA_CLK_PHASE_SHIFT_UNIT_GUI_6" value="0" />
+  <parameter name="PLL_EXTRA_CLK_PHASE_SHIFT_UNIT_GUI_7" value="0" />
+  <parameter name="PLL_EXTRA_CLK_PHASE_SHIFT_UNIT_GUI_8" value="0" />
+  <parameter name="PLL_USER_NUM_OF_EXTRA_CLKS" value="0" />
+  <parameter name="PROTOCOL_ENUM" value="PROTOCOL_DDR4" />
+  <parameter name="SHORT_QSYS_INTERFACE_NAMES" value="false" />
+  <parameter name="SYS_INFO_DEVICE" value="10AX115U3F45E2SG" />
+  <parameter name="SYS_INFO_DEVICE_DIE_REVISIONS" value="" />
+  <parameter name="SYS_INFO_DEVICE_FAMILY" value="Arria 10" />
+  <parameter name="SYS_INFO_DEVICE_POWER_MODEL" value="STANDARD" />
+  <parameter name="SYS_INFO_DEVICE_SPEEDGRADE" value="2" />
+  <parameter name="SYS_INFO_DEVICE_TEMPERATURE_GRADE" value="EXTENDED" />
+  <parameter name="SYS_INFO_UNIQUE_ID">ip_arria10_e2sg_ddr4_8g_2400_ddr4_inst</parameter>
+  <parameter name="TRAIT_SUPPORTS_VID" value="0" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/eth_10g/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/eth_10g/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..97af5290d9a650ef154e0792455d5e9f0ed734cd
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/eth_10g/hdllib.cfg
@@ -0,0 +1,15 @@
+hdl_lib_name = ip_arria10_e2sg_eth_10g
+hdl_library_clause_name = ip_arria10_e2sg_eth_10g_lib
+hdl_lib_uses_synth = technology tech_pll tech_mac_10g tech_10gbase_r common dp
+hdl_lib_uses_sim = 
+hdl_lib_technology = ip_arria10_e2sg 
+
+synth_files =
+    ip_arria10_e2sg_eth_10g.vhd
+
+test_bench_files =
+
+[modelsim_project_file]
+
+[quartus_project_file]
+
diff --git a/libraries/technology/ip_arria10_e2sg/eth_10g/ip_arria10_e2sg_eth_10g.vhd b/libraries/technology/ip_arria10_e2sg/eth_10g/ip_arria10_e2sg_eth_10g.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..85914052e686eabfef3bed39a8870ac6b0e50617
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/eth_10g/ip_arria10_e2sg_eth_10g.vhd
@@ -0,0 +1,334 @@
+--------------------------------------------------------------------------------
+--
+-- 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/>.
+--
+--------------------------------------------------------------------------------
+
+
+-- Purpose: Combine mac_10g and 10gbase_r for c_tech_arria10_e2sg
+-- Description 
+--   
+--   The clocks come from an external central fPLL:
+--
+--     tx_ref_clk_644 --> fPLL --> clk_312
+--                                 clk_156, rst_156
+--   Blockdiagram:
+--
+--                          312 156 644  
+--                _________   |  |  |   ____________
+--                |       |   |  |  |   |          |
+--                |       |<--/  |  \-->|          |
+--                |       |<-----+----->|          |
+--                |       |             |          |
+--                |       |    XGMII    |          |
+--     tx_snk --->|tech_  |------------>|tech_     |---> serial_tx
+--     rx_src <---|mac_10g|<------------|10gbase_r |<--- serial_rx
+--                |       |             |          |
+--                |_______|--\       /--|__________|
+--                    |      |       |
+--                  mac_mm   |       |
+--                           |       v
+--                       (   v    xgmii_tx_ready)
+--     tx_snk_out.xon <--(xgmii_link_status[1:0])
+--
+-- . g_direction:
+--   "TX_RX" = Default support bidir
+--   "TX_ONLY" = Uses a bidir MAC and connects the MAC Tx to the MAC RX.
+--   "RX_ONLY" = Same as "TX_RX"
+--   See tech_eth_10g_stratixiv.vhd for more details.
+-- 
+-- Remarks:
+-- . xgmii_link_status:
+--   When the xgmii_tx_ready from the 10gbase_r and the xgmii_link_status from
+--   the mac_10g are both be OK then the tx_snk.xon is asserted to allow the
+--   user data transmission.
+--   The tb_tech_eth_10g reveals that xgmii_tx_ready goes high after some power
+--   up time and then remains active independent of link_fault.
+--   A link fault eg. due to rx disconnect is detected by the link fault status:
+--     0 = OK
+--     1 = local fault
+--     2 = remote fault
+--   
+--   From google search:
+--     Link fault Operation
+--     1) Device B detects loss of signal. Local fault is signaled by PHY of Device B to Device B.
+--     2) Device B ceases transmission of MAC frames and transmits remote fault to Device A.
+--     3) Device A receives remote fault from Device B.
+--     4) Device A stops sending frames, continuously generates Idle.
+--
+--   Hence when the xgmii_link_status is OK then the other side is also OK so
+--   then it is also appropriate to release tx_snk.xon.
+--
+--   The XGMII link status can be monitored via the reg_eth10 MM register:
+--
+--     addr  data[31:0]
+--      0      [0] = tx_snk_out_arr(I).xon
+--             [1] = xgmii_tx_ready_arr(I)
+--           [3:2] = xgmii_link_status_arr(I)
+--  
+
+LIBRARY IEEE, common_lib, dp_lib, technology_lib, tech_10gbase_r_lib, tech_mac_10g_lib;
+USE IEEE.STD_LOGIC_1164.ALL;
+USE technology_lib.technology_pkg.ALL;
+USE common_lib.common_pkg.ALL;
+USE common_lib.common_mem_pkg.ALL;
+USE common_lib.common_interface_layers_pkg.ALL;
+USE dp_lib.dp_stream_pkg.ALL;
+USE tech_mac_10g_lib.tech_mac_10g_component_pkg.ALL;
+
+ENTITY ip_arria10_e2sg_eth_10g IS
+  GENERIC (
+    g_sim                 : BOOLEAN := FALSE;
+    g_sim_level           : NATURAL := 0;     -- 0 = use IP; 1 = use fast serdes model
+    g_nof_channels        : NATURAL := 1;
+    g_direction           : STRING := "TX_RX";  -- "TX_RX", "TX_ONLY", "RX_ONLY"
+    g_use_loopback        : BOOLEAN := FALSE;
+    g_pre_header_padding  : BOOLEAN := FALSE
+  );
+  PORT (
+    -- Transceiver PLL reference clock
+    tr_ref_clk_644   : IN  STD_LOGIC := '0';   -- 644.531250 MHz for 10GBASE-R
+    
+    -- Data clocks
+    clk_312          : IN  STD_LOGIC := '0';
+    clk_156          : IN  STD_LOGIC := '0';
+    rst_156          : IN  STD_LOGIC := '0';
+    
+    -- MM
+    mm_clk           : IN  STD_LOGIC;
+    mm_rst           : IN  STD_LOGIC;
+    
+    mac_mosi         : IN  t_mem_mosi;         -- MAG_10G (CSR)
+    mac_miso         : OUT t_mem_miso; 
+    
+    reg_eth10g_mosi  : IN  t_mem_mosi;         -- ETH10G (link status register)
+    reg_eth10g_miso  : OUT t_mem_miso;
+ 
+    reg_ip_arria10_e2sg_phy_10gbase_r_24_mosi     : IN  t_mem_mosi := c_mem_mosi_rst; 
+    reg_ip_arria10_e2sg_phy_10gbase_r_24_miso     : OUT t_mem_miso;    
+
+    -- ST
+    tx_snk_in_arr    : IN  t_dp_sosi_arr(g_nof_channels-1 DOWNTO 0);      -- 64 bit data @ clk_156
+    tx_snk_out_arr   : OUT t_dp_siso_arr(g_nof_channels-1 DOWNTO 0); 
+    
+    rx_src_out_arr   : OUT t_dp_sosi_arr(g_nof_channels-1 DOWNTO 0);      -- 64 bit data @ clk_156
+    rx_src_in_arr    : IN  t_dp_siso_arr(g_nof_channels-1 DOWNTO 0);
+    
+    -- Serial
+    serial_tx_arr    : OUT STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);
+    serial_rx_arr    : IN  STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0)
+  );
+END ip_arria10_e2sg_eth_10g;
+
+
+ARCHITECTURE str OF ip_arria10_e2sg_eth_10g IS
+
+  -- Enable or disable the conditions that must be ok to release tx_snk_out_arr xon
+  CONSTANT c_check_link_status          : BOOLEAN := TRUE; --g_direction/="TX_ONLY";
+  CONSTANT c_check_xgmii_tx_ready       : BOOLEAN := TRUE; --g_direction/="RX_ONLY";
+  
+  SIGNAL i_tx_snk_out_arr               : t_dp_siso_arr(g_nof_channels-1 DOWNTO 0);
+           
+  -- MAG_10G control status registers
+  SIGNAL mac_mosi_arr                   : t_mem_mosi_arr(g_nof_channels-1 DOWNTO 0);
+  SIGNAL mac_miso_arr                   : t_mem_miso_arr(g_nof_channels-1 DOWNTO 0); 
+         
+  -- XON control         
+  SIGNAL mac_snk_out_arr                : t_dp_siso_arr(g_nof_channels-1 DOWNTO 0);
+           
+  -- XGMII         
+  SIGNAL xgmii_link_status_arr          : t_tech_mac_10g_xgmii_status_arr(g_nof_channels-1 DOWNTO 0);  -- 2 bit, from MAC_10g
+  SIGNAL xgmii_tx_ready_arr             : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);                 -- 1 bit, from PHY 10gbase_r
+  SIGNAL xgmii_tx_dc_arr                : t_xgmii_dc_arr(g_nof_channels-1 DOWNTO 0);    -- 72 bit
+  SIGNAL xgmii_rx_dc_arr                : t_xgmii_dc_arr(g_nof_channels-1 DOWNTO 0);    -- 72 bit
+  SIGNAL xgmii_tx_dc_arr_loopback       : t_xgmii_dc_arr(g_nof_channels-1 DOWNTO 0);    -- 72 bit
+  SIGNAL xgmii_rx_dc_arr_loopback       : t_xgmii_dc_arr(g_nof_channels-1 DOWNTO 0);    -- 72 bit
+  SIGNAL xgmii_internal_dc_arr          : t_xgmii_dc_arr(g_nof_channels-1 DOWNTO 0);    -- 72 bit
+  
+  -- Link status monitor
+  CONSTANT c_mem_reg_eth10g_adr_w       : NATURAL := 1;
+  CONSTANT c_mem_reg_eth10g_dat_w       : NATURAL := 32;
+  CONSTANT c_mem_reg_eth10g_nof_data    : NATURAL := 1;
+  CONSTANT c_mem_reg_eth10g             : t_c_mem := (c_mem_reg_rd_latency, c_mem_reg_eth10g_adr_w , c_mem_reg_eth10g_dat_w , c_mem_reg_eth10g_nof_data, 'X');
+  
+  SIGNAL reg_eth10g_mosi_arr            : t_mem_mosi_arr(g_nof_channels-1 DOWNTO 0);
+  SIGNAL reg_eth10g_miso_arr            : t_mem_miso_arr(g_nof_channels-1 DOWNTO 0); 
+    
+  SIGNAL mm_reg_eth10g_arr              : t_slv_32_arr(g_nof_channels-1 DOWNTO 0);
+  
+BEGIN
+  tx_snk_out_arr <= i_tx_snk_out_arr;
+  
+  gen_mac : FOR I IN 0 TO g_nof_channels-1 GENERATE
+  
+    i_tx_snk_out_arr(I).ready <= mac_snk_out_arr(I).ready;  -- pass on MAC cycle accurate backpressure
+    
+    p_xon_flow_control : PROCESS(clk_156)
+      VARIABLE v_xgmii_link_status     : STD_LOGIC_VECTOR(c_tech_mac_10g_link_status_w-1 DOWNTO 0) := "00";
+      VARIABLE v_xgmii_tx_ready        : STD_LOGIC := '1';
+    BEGIN
+      IF rising_edge(clk_156) THEN
+        i_tx_snk_out_arr(I).xon <= '0';
+        
+        -- First gather all conditions that are enabled to affect xon. The default value is such that it enables xon when the condition is not checked.
+        IF c_check_link_status   =TRUE THEN v_xgmii_link_status := xgmii_link_status_arr(I); END IF;  -- check both remote fault [1] and local fault [0]
+        IF c_check_xgmii_tx_ready=TRUE THEN v_xgmii_tx_ready    := xgmii_tx_ready_arr(I);    END IF;
+        
+        -- Now apply the conditions to xon
+        IF v_xgmii_tx_ready='1' AND v_xgmii_link_status="00" THEN
+          i_tx_snk_out_arr(I).xon <= '1';  -- XON when Tx PHY is ready and XGMII is ok
+        END IF;
+      END IF;
+    END PROCESS;
+    
+    u_tech_mac_10g : ENTITY tech_mac_10g_lib.tech_mac_10g
+    GENERIC MAP (
+      g_technology          => c_tech_arria10_e2sg,
+      g_pre_header_padding  => g_pre_header_padding
+    )
+    PORT MAP (
+      -- MM
+      mm_clk            => mm_clk,
+      mm_rst            => mm_rst,
+      csr_mosi          => mac_mosi_arr(I),
+      csr_miso          => mac_miso_arr(I),
+  
+      -- ST
+      tx_clk_312        => clk_312,
+      tx_clk_156        => clk_156,
+      tx_rst            => rst_156,
+      tx_snk_in         => tx_snk_in_arr(I),   -- 64 bit data
+      tx_snk_out        => mac_snk_out_arr(I),
+      
+      rx_clk_312        => clk_312,
+      rx_clk_156        => clk_156,
+      rx_rst            => rst_156,
+      rx_src_out        => rx_src_out_arr(I),  -- 64 bit data
+      rx_src_in         => rx_src_in_arr(I),
+            
+      -- XGMII
+      xgmii_link_status => xgmii_link_status_arr(I),
+      xgmii_tx_data     => xgmii_tx_dc_arr(I),
+      xgmii_rx_data     => xgmii_internal_dc_arr(I)
+    );
+  END GENERATE;  
+  
+  xgmii_internal_dc_arr <= xgmii_tx_dc_arr WHEN g_direction="TX_ONLY" ELSE xgmii_rx_dc_arr;
+  
+  u_tech_10gbase_r: ENTITY tech_10gbase_r_lib.tech_10gbase_r
+  GENERIC MAP (
+    g_technology     => c_tech_arria10_e2sg,
+    g_sim            => g_sim,
+    g_sim_level      => g_sim_level,
+    g_nof_channels   => g_nof_channels
+  )
+  PORT MAP (
+    mm_clk              => mm_clk,
+    mm_rst              => mm_rst, 
+
+    reg_ip_arria10_e2sg_phy_10gbase_r_24_mosi =>  reg_ip_arria10_e2sg_phy_10gbase_r_24_mosi,
+    reg_ip_arria10_e2sg_phy_10gbase_r_24_miso =>  reg_ip_arria10_e2sg_phy_10gbase_r_24_miso,
+
+    -- Transceiver PLL reference clock
+    tr_ref_clk_644     => tr_ref_clk_644,
+    
+    -- XGMII clocks
+    clk_156            => clk_156,
+    rst_156            => rst_156,
+
+    -- XGMII interface
+    xgmii_tx_ready_arr => xgmii_tx_ready_arr,
+    xgmii_rx_ready_arr => OPEN,
+    xgmii_tx_dc_arr    => xgmii_tx_dc_arr_loopback,
+    xgmii_rx_dc_arr    => xgmii_rx_dc_arr_loopback,
+
+    -- PHY serial IO
+    tx_serial_arr      => serial_tx_arr,
+    rx_serial_arr      => serial_rx_arr
+  );
+
+  gen_loopback : IF g_use_loopback = TRUE GENERATE
+    xgmii_tx_dc_arr_loopback <= xgmii_rx_dc_arr_loopback;
+  END GENERATE;
+
+  gen_forward  : IF g_use_loopback = FALSE GENERATE
+    xgmii_tx_dc_arr_loopback <= xgmii_tx_dc_arr;
+    xgmii_rx_dc_arr          <= xgmii_rx_dc_arr_loopback;
+  END GENERATE;
+  
+  gen_reg_eth10g : FOR I IN 0 TO g_nof_channels-1 GENERATE
+    mm_reg_eth10g_arr(I) <= RESIZE_UVEC(xgmii_link_status_arr(I) & xgmii_tx_ready_arr(I) & i_tx_snk_out_arr(I).xon, c_mem_reg_eth10g_dat_w);   
+    
+    u_reg_map : ENTITY common_lib.common_reg_r_w_dc
+    GENERIC MAP (
+      g_cross_clock_domain => TRUE,             
+      g_in_new_latency     => 0,                
+      g_readback           => FALSE,            
+      g_reg                => c_mem_reg_eth10g, 
+      g_init_reg           => (OTHERS => '0')   
+    )
+    PORT MAP (
+      -- Clocks and reset
+      mm_rst      => mm_rst,          
+      mm_clk      => mm_clk,          
+      st_rst      => rst_156,     
+      st_clk      => clk_156,     
+      
+      -- Memory Mapped Slave in mm_clk domain
+      sla_in      => reg_eth10g_mosi_arr(I), 
+      sla_out     => reg_eth10g_miso_arr(I), 
+      
+      -- MM registers in st_clk domain
+      reg_wr_arr  => OPEN,          
+      reg_rd_arr  => OPEN,          
+      in_new      => '1',           
+      in_reg      => mm_reg_eth10g_arr(I), 
+      out_reg     => OPEN           
+    );
+  END GENERATE;
+  
+    
+  -----------------------------------------------------------------------------
+  -- MM bus mux
+  -----------------------------------------------------------------------------
+  u_common_mem_mux_mac : ENTITY common_lib.common_mem_mux
+  GENERIC MAP (    
+    g_nof_mosi    => g_nof_channels,
+    g_mult_addr_w => func_tech_mac_10g_csr_addr_w(c_tech_arria10) 
+  )
+  PORT MAP (
+    mosi     => mac_mosi,
+    miso     => mac_miso,
+    mosi_arr => mac_mosi_arr,
+    miso_arr => mac_miso_arr
+  );  
+
+  u_common_mem_mux_eth10g : ENTITY common_lib.common_mem_mux
+  GENERIC MAP (    
+    g_nof_mosi    => g_nof_channels,
+    g_mult_addr_w => c_mem_reg_eth10g_adr_w 
+  )
+  PORT MAP (
+    mosi     => reg_eth10g_mosi,
+    miso     => reg_eth10g_miso,
+    mosi_arr => reg_eth10g_mosi_arr,
+    miso_arr => reg_eth10g_miso_arr
+  );  
+  
+END str;
diff --git a/libraries/technology/ip_arria10_e2sg/fifo/README.txt b/libraries/technology/ip_arria10_e2sg/fifo/README.txt
new file mode 100755
index 0000000000000000000000000000000000000000..6db25b6412e89ebde6decb09c13f7e14890315b0
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/fifo/README.txt
@@ -0,0 +1,61 @@
+README.txt for $RADIOHDL_WORK/libraries/technology/ip_arria10/fifo
+
+Contents:
+
+1) FIFO components
+2) Arria10 IP
+3) Implementation options (LUTs or block RAM)
+4) Synthesis trials
+5) Issues
+
+
+1) FIFO components:
+
+  ip_arria10_fifo_sc              = Single clock FIFO
+  ip_arria10_fifo_dc              = Dual clock FIFO
+  ip_arria10_fifo_dc_mixed_widths = Dual clock FIFO with different read and write data widths (ratio power of 2)
+  
+
+2) Arria10 IP
+
+  The IP was ported from Stratix IV by:
+  
+    . copy original MegaWizard <fifo_name>.vhd file
+    . rename <fifo_name>.vhd into ip_arria10_<fifo_name>.vhd (also replace name inside the file)
+    . commit the fifo/ip_arria10_<fifo_name>.vhd to preserve the MegaWizard original
+    . open in to Quartus 14, set device family to Arria10 and finish automatically convert to Qsys
+    . then generate HDL (select VHDL for both sim and synth) and finish to save it as ip_arria10_<fifo_name>.qsys
+    
+  this yields:
+  
+    ip_arria10_fifo_sc.qsys
+    ip_arria10_fifo_dc.qsys
+    ip_arria10_fifo_dc_mixed_widths.qsys
+  
+  The Arria10 FIFO IP still uses the altera_mf package (so not the altera_lnsim package as with the block RAM). The
+  FIFOs map to the altera_mf components to scfifo, dcfifo and dcfifo_mixed_widths.
+  
+  The IP only needs to be generated with ./generate_ip.sh if it need to be modified, because the ip_arria10_fifo_*.vhd
+  directly instantiates the altera_mf component.
+  
+  The instantiation is copied manually from the ip_arria10_fifo_*/fifo_140/sim/ip_arria10_fifo_*.vhd and 
+  saved in the <fifo_name>.vhd file. So then the MegaWizard vhd file is overwritten, but that is fine because it is 
+  no longer needed, it could easily be derived from the original in $UNB and it is still as a previous verion in SVN.
+   
+
+3) Implementation options (LUTs or block RAM)
+
+  The IP FIFO can be set to use LUTs (MLAB) or block RAM (M20K) via g_use_eab.
+  
+
+4) Synthesis trials
+
+  The quartus/fifo.qpf Quartus project was used to verify that the FIFO IP actually synthesise to the appropriate FPGA resources.
+  Use the Quartus GUI to manually select a top level component for synthesis e.g. by right clicking the entity vhd file
+  in the file tab of the Quartus project navigator window.
+  Then check the resource usage in the synthesis and fitter reports.
+
+
+5) Issues
+
+  No issues.
\ No newline at end of file
diff --git a/libraries/technology/ip_arria10_e2sg/fifo/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/fifo/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..cfdb7ced1c47403f0dc45dafd552fdbfadf2e064
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/fifo/hdllib.cfg
@@ -0,0 +1,26 @@
+hdl_lib_name = ip_arria10_e2sg_fifo
+hdl_library_clause_name = ip_arria10_e2sg_fifo_lib
+hdl_lib_uses_synth = technology
+hdl_lib_uses_sim = 
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    ip_arria10_e2sg_fifo_sc.vhd
+    ip_arria10_e2sg_fifo_dc.vhd
+    ip_arria10_e2sg_fifo_dc_mixed_widths.vhd
+    
+test_bench_files =
+
+
+[modelsim_project_file]
+
+
+[quartus_project_file]
+
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_fifo_sc.qsys
+    ip_arria10_e2sg_fifo_dc.qsys
+    ip_arria10_e2sg_fifo_dc_mixed_widths.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/fifo/ip_arria10_e2sg_fifo_dc.qsys b/libraries/technology/ip_arria10_e2sg/fifo/ip_arria10_e2sg_fifo_dc.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..9fa1571d8f111b68e4ed6aabd5909b43bb20d67f
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/fifo/ip_arria10_e2sg_fifo_dc.qsys
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_fifo_dc">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element ip_arria10_fifo_dc
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="false" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="fifo_input"
+   internal="ip_arria10_fifo_dc.fifo_input"
+   type="conduit"
+   dir="end">
+  <port name="aclr" internal="aclr" />
+  <port name="data" internal="data" />
+  <port name="rdclk" internal="rdclk" />
+  <port name="rdreq" internal="rdreq" />
+  <port name="wrclk" internal="wrclk" />
+  <port name="wrreq" internal="wrreq" />
+ </interface>
+ <interface
+   name="fifo_output"
+   internal="ip_arria10_fifo_dc.fifo_output"
+   type="conduit"
+   dir="end">
+  <port name="q" internal="q" />
+  <port name="rdempty" internal="rdempty" />
+  <port name="rdusedw" internal="rdusedw" />
+  <port name="wrfull" internal="wrfull" />
+  <port name="wrusedw" internal="wrusedw" />
+ </interface>
+ <module
+   name="ip_arria10_fifo_dc"
+   kind="fifo"
+   version="19.1"
+   enabled="1"
+   autoexport="1">
+  <parameter name="DEVICE_FAMILY" value="Arria 10" />
+  <parameter name="GUI_AlmostEmpty" value="false" />
+  <parameter name="GUI_AlmostEmptyThr" value="-1" />
+  <parameter name="GUI_AlmostFull" value="false" />
+  <parameter name="GUI_AlmostFullThr" value="-1" />
+  <parameter name="GUI_CLOCKS_ARE_SYNCHRONIZED" value="0" />
+  <parameter name="GUI_Clock" value="4" />
+  <parameter name="GUI_DISABLE_DCFIFO_EMBEDDED_TIMING_CONSTRAINT" value="true" />
+  <parameter name="GUI_Depth" value="256" />
+  <parameter name="GUI_ENABLE_ECC" value="false" />
+  <parameter name="GUI_Empty" value="true" />
+  <parameter name="GUI_Full" value="true" />
+  <parameter name="GUI_LE_BasedFIFO" value="false" />
+  <parameter name="GUI_LegacyRREQ" value="1" />
+  <parameter name="GUI_MAX_DEPTH" value="Auto" />
+  <parameter name="GUI_MAX_DEPTH_BY_9" value="false" />
+  <parameter name="GUI_OVERFLOW_CHECKING" value="false" />
+  <parameter name="GUI_Optimize" value="1" />
+  <parameter name="GUI_Optimize_max" value="1" />
+  <parameter name="GUI_RAM_BLOCK_TYPE" value="Auto" />
+  <parameter name="GUI_TESTBENCH" value="false" />
+  <parameter name="GUI_UNDERFLOW_CHECKING" value="false" />
+  <parameter name="GUI_UsedW" value="true" />
+  <parameter name="GUI_Width" value="8" />
+  <parameter name="GUI_dc_aclr" value="true" />
+  <parameter name="GUI_delaypipe" value="5" />
+  <parameter name="GUI_diff_widths" value="false" />
+  <parameter name="GUI_msb_usedw" value="false" />
+  <parameter name="GUI_output_width" value="8" />
+  <parameter name="GUI_read_aclr_synch" value="false" />
+  <parameter name="GUI_rsEmpty" value="true" />
+  <parameter name="GUI_rsFull" value="false" />
+  <parameter name="GUI_rsUsedW" value="true" />
+  <parameter name="GUI_sc_aclr" value="false" />
+  <parameter name="GUI_sc_sclr" value="false" />
+  <parameter name="GUI_synStage" value="3" />
+  <parameter name="GUI_write_aclr_synch" value="true" />
+  <parameter name="GUI_wsEmpty" value="false" />
+  <parameter name="GUI_wsFull" value="true" />
+  <parameter name="GUI_wsUsedW" value="true" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/fifo/ip_arria10_e2sg_fifo_dc.vhd b/libraries/technology/ip_arria10_e2sg/fifo/ip_arria10_e2sg_fifo_dc.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..d821610dd15fd7c4a384202f67ff952dc1dd1ed5
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/fifo/ip_arria10_e2sg_fifo_dc.vhd
@@ -0,0 +1,122 @@
+-------------------------------------------------------------------------------
+--
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+-- Purpose: Instantiate FIFO IP with generics
+-- Description:
+--   Copied component declaration and instance example from generated/fifo_140/sim/ip_arria10_e2sg_fifo_dc_fifo_140_c4o7vda.vhd
+
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+LIBRARY technology_lib;
+USE technology_lib.technology_pkg.ALL;
+
+LIBRARY altera_mf;
+USE altera_mf.all;
+
+ENTITY ip_arria10_e2sg_fifo_dc IS
+  GENERIC (
+    g_use_eab   : STRING := "ON";
+    g_dat_w     : NATURAL := 20;
+    g_nof_words : NATURAL := 1024
+  );
+  PORT (
+    aclr    : IN STD_LOGIC  := '0';
+    data    : IN STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+    rdclk   : IN STD_LOGIC ;
+    rdreq   : IN STD_LOGIC ;
+    wrclk   : IN STD_LOGIC ;
+    wrreq   : IN STD_LOGIC ;
+    q       : OUT STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+    rdempty : OUT STD_LOGIC ;
+    rdusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0);
+    wrfull  : OUT STD_LOGIC ;
+    wrusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0)
+  );
+END ip_arria10_e2sg_fifo_dc;
+
+
+ARCHITECTURE SYN OF ip_arria10_e2sg_fifo_dc IS
+
+    COMPONENT  dcfifo
+    GENERIC (
+        intended_device_family  : STRING;
+        lpm_numwords  : NATURAL;
+        lpm_showahead  : STRING;
+        lpm_type  : STRING;
+        lpm_width  : NATURAL;
+        lpm_widthu  : NATURAL;
+        overflow_checking  : STRING;
+        rdsync_delaypipe  : NATURAL;
+        read_aclr_synch  : STRING;
+        underflow_checking  : STRING;
+        use_eab  : STRING;
+        write_aclr_synch  : STRING;
+        wrsync_delaypipe  : NATURAL
+    );
+    PORT (
+        aclr   : IN STD_LOGIC;
+        data   : IN STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+        rdclk   : IN STD_LOGIC;
+        rdreq   : IN STD_LOGIC;
+        wrclk   : IN STD_LOGIC;
+        wrreq   : IN STD_LOGIC;
+        q   : OUT STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+        rdempty   : OUT STD_LOGIC;
+        rdusedw   : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0);
+        wrfull   : OUT STD_LOGIC;
+        wrusedw   : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0)
+    );
+    END COMPONENT;
+
+BEGIN
+
+  u_dcfifo : dcfifo
+  GENERIC MAP (
+    intended_device_family  => "Arria 10",
+    lpm_numwords  => g_nof_words,
+    lpm_showahead  => "OFF",
+    lpm_type  => "dcfifo",
+    lpm_width  => g_dat_w,
+    lpm_widthu  => tech_ceil_log2(g_nof_words),
+    overflow_checking  => "ON",
+    rdsync_delaypipe  => 5,
+    read_aclr_synch  => "OFF",
+    underflow_checking  => "ON",
+    use_eab  => g_use_eab,
+    write_aclr_synch  => "ON",
+    wrsync_delaypipe  => 5
+  )
+  PORT MAP (
+    aclr => aclr,
+    data => data,
+    rdclk => rdclk,
+    rdreq => rdreq,
+    wrclk => wrclk,
+    wrreq => wrreq,
+    q => q,
+    rdempty => rdempty,
+    rdusedw => rdusedw,
+    wrfull => wrfull,
+    wrusedw => wrusedw
+  );
+
+END SYN;
diff --git a/libraries/technology/ip_arria10_e2sg/fifo/ip_arria10_e2sg_fifo_dc_mixed_widths.qsys b/libraries/technology/ip_arria10_e2sg/fifo/ip_arria10_e2sg_fifo_dc_mixed_widths.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..fb54d0ccd51d0ecc710cf4cd14f1c3b2533bc487
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/fifo/ip_arria10_e2sg_fifo_dc_mixed_widths.qsys
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_fifo_dc_mixed_widths">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element ip_arria10_fifo_dc_mixed_widths
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="false" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="fifo_input"
+   internal="ip_arria10_fifo_dc_mixed_widths.fifo_input"
+   type="conduit"
+   dir="end">
+  <port name="aclr" internal="aclr" />
+  <port name="data" internal="data" />
+  <port name="rdclk" internal="rdclk" />
+  <port name="rdreq" internal="rdreq" />
+  <port name="wrclk" internal="wrclk" />
+  <port name="wrreq" internal="wrreq" />
+ </interface>
+ <interface
+   name="fifo_output"
+   internal="ip_arria10_fifo_dc_mixed_widths.fifo_output"
+   type="conduit"
+   dir="end">
+  <port name="q" internal="q" />
+  <port name="rdempty" internal="rdempty" />
+  <port name="rdusedw" internal="rdusedw" />
+  <port name="wrfull" internal="wrfull" />
+  <port name="wrusedw" internal="wrusedw" />
+ </interface>
+ <module
+   name="ip_arria10_fifo_dc_mixed_widths"
+   kind="fifo"
+   version="19.1"
+   enabled="1"
+   autoexport="1">
+  <parameter name="DEVICE_FAMILY" value="Arria 10" />
+  <parameter name="GUI_AlmostEmpty" value="false" />
+  <parameter name="GUI_AlmostEmptyThr" value="-1" />
+  <parameter name="GUI_AlmostFull" value="false" />
+  <parameter name="GUI_AlmostFullThr" value="-1" />
+  <parameter name="GUI_CLOCKS_ARE_SYNCHRONIZED" value="0" />
+  <parameter name="GUI_Clock" value="4" />
+  <parameter name="GUI_DISABLE_DCFIFO_EMBEDDED_TIMING_CONSTRAINT" value="true" />
+  <parameter name="GUI_Depth" value="256" />
+  <parameter name="GUI_ENABLE_ECC" value="false" />
+  <parameter name="GUI_Empty" value="true" />
+  <parameter name="GUI_Full" value="true" />
+  <parameter name="GUI_LE_BasedFIFO" value="false" />
+  <parameter name="GUI_LegacyRREQ" value="1" />
+  <parameter name="GUI_MAX_DEPTH" value="Auto" />
+  <parameter name="GUI_MAX_DEPTH_BY_9" value="false" />
+  <parameter name="GUI_OVERFLOW_CHECKING" value="false" />
+  <parameter name="GUI_Optimize" value="1" />
+  <parameter name="GUI_Optimize_max" value="1" />
+  <parameter name="GUI_RAM_BLOCK_TYPE" value="Auto" />
+  <parameter name="GUI_TESTBENCH" value="false" />
+  <parameter name="GUI_UNDERFLOW_CHECKING" value="false" />
+  <parameter name="GUI_UsedW" value="true" />
+  <parameter name="GUI_Width" value="8" />
+  <parameter name="GUI_dc_aclr" value="true" />
+  <parameter name="GUI_delaypipe" value="5" />
+  <parameter name="GUI_diff_widths" value="true" />
+  <parameter name="GUI_msb_usedw" value="false" />
+  <parameter name="GUI_output_width" value="16" />
+  <parameter name="GUI_read_aclr_synch" value="false" />
+  <parameter name="GUI_rsEmpty" value="true" />
+  <parameter name="GUI_rsFull" value="false" />
+  <parameter name="GUI_rsUsedW" value="true" />
+  <parameter name="GUI_sc_aclr" value="false" />
+  <parameter name="GUI_sc_sclr" value="false" />
+  <parameter name="GUI_synStage" value="3" />
+  <parameter name="GUI_write_aclr_synch" value="true" />
+  <parameter name="GUI_wsEmpty" value="false" />
+  <parameter name="GUI_wsFull" value="true" />
+  <parameter name="GUI_wsUsedW" value="true" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/fifo/ip_arria10_e2sg_fifo_dc_mixed_widths.vhd b/libraries/technology/ip_arria10_e2sg/fifo/ip_arria10_e2sg_fifo_dc_mixed_widths.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..6c0da7b2295fd43f46aedbc0ef8f38e2b5d6c08a
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/fifo/ip_arria10_e2sg_fifo_dc_mixed_widths.vhd
@@ -0,0 +1,126 @@
+-------------------------------------------------------------------------------
+--
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+-- Purpose: Instantiate FIFO IP with generics
+-- Description:
+--   Copied component declaration and instance example from generated/fifo_140/sim/ip_arria10_e2sg_fifo_dc_mixed_widths_fifo_140_5csdcfa.vhd
+
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+LIBRARY technology_lib;
+USE technology_lib.technology_pkg.ALL;
+
+LIBRARY altera_mf;
+USE altera_mf.all;
+
+ENTITY ip_arria10_e2sg_fifo_dc_mixed_widths IS
+  GENERIC (
+    g_nof_words : NATURAL := 1024;  -- FIFO size in nof wr_dat words
+    g_wrdat_w   : NATURAL := 20;
+    g_rddat_w   : NATURAL := 10
+  );
+  PORT (
+    aclr    : IN STD_LOGIC  := '0';
+    data    : IN STD_LOGIC_VECTOR (g_wrdat_w-1 DOWNTO 0);
+    rdclk   : IN STD_LOGIC ;
+    rdreq   : IN STD_LOGIC ;
+    wrclk   : IN STD_LOGIC ;
+    wrreq   : IN STD_LOGIC ;
+    q       : OUT STD_LOGIC_VECTOR (g_rddat_w-1 DOWNTO 0);
+    rdempty : OUT STD_LOGIC ;
+    rdusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words*g_wrdat_w/g_rddat_w)-1 DOWNTO 0);
+    wrfull  : OUT STD_LOGIC ;
+    wrusedw : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0)
+  );
+END ip_arria10_e2sg_fifo_dc_mixed_widths;
+
+
+ARCHITECTURE SYN OF ip_arria10_e2sg_fifo_dc_mixed_widths IS
+
+  COMPONENT  dcfifo_mixed_widths
+  GENERIC (
+    intended_device_family  : STRING;
+    lpm_numwords  : NATURAL;
+    lpm_showahead  : STRING;
+    lpm_type  : STRING;
+    lpm_width  : NATURAL;
+    lpm_widthu  : NATURAL;
+    lpm_widthu_r  : NATURAL;
+    lpm_width_r  : NATURAL;
+    overflow_checking  : STRING;
+    rdsync_delaypipe  : NATURAL;
+    read_aclr_synch  : STRING;
+    underflow_checking  : STRING;
+    use_eab  : STRING;
+    write_aclr_synch  : STRING;
+    wrsync_delaypipe  : NATURAL
+  );
+  PORT (
+    aclr   : IN STD_LOGIC;
+    data   : IN STD_LOGIC_VECTOR (data'RANGE);
+    rdclk   : IN STD_LOGIC;
+    rdreq   : IN STD_LOGIC;
+    wrclk   : IN STD_LOGIC;
+    wrreq   : IN STD_LOGIC;
+    q   : OUT STD_LOGIC_VECTOR (q'RANGE);
+    rdempty   : OUT STD_LOGIC;
+    rdusedw   : OUT STD_LOGIC_VECTOR (rdusedw'RANGE);
+    wrfull   : OUT STD_LOGIC;
+    wrusedw   : OUT STD_LOGIC_VECTOR (wrusedw'RANGE)
+  );
+  END COMPONENT;
+    
+BEGIN
+
+  dcfifo_mixed_widths_component : dcfifo_mixed_widths
+  GENERIC MAP (
+    intended_device_family  => "Arria 10",
+    lpm_numwords  => g_nof_words,
+    lpm_showahead  => "OFF",
+    lpm_type  => "dcfifo_mixed_widths",
+    lpm_width  => g_wrdat_w,
+    lpm_widthu  => tech_ceil_log2(g_nof_words),
+    lpm_widthu_r  => tech_ceil_log2(g_nof_words*g_wrdat_w/g_rddat_w),
+    lpm_width_r  => g_rddat_w,
+    overflow_checking  => "ON",
+    rdsync_delaypipe  => 5,
+    read_aclr_synch  => "OFF",
+    underflow_checking  => "ON",
+    use_eab  => "ON",
+    write_aclr_synch  => "ON",
+    wrsync_delaypipe  => 5
+  )
+  PORT MAP (
+    aclr => aclr,
+    data => data,
+    rdclk => rdclk,
+    rdreq => rdreq,
+    wrclk => wrclk,
+    wrreq => wrreq,
+    q => q,
+    rdempty => rdempty,
+    rdusedw => rdusedw,
+    wrfull => wrfull,
+    wrusedw => wrusedw
+  );
+
+END SYN;
diff --git a/libraries/technology/ip_arria10_e2sg/fifo/ip_arria10_e2sg_fifo_sc.qsys b/libraries/technology/ip_arria10_e2sg/fifo/ip_arria10_e2sg_fifo_sc.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..a59de97d75abf48abd525a1fd3d0d25542324d5a
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/fifo/ip_arria10_e2sg_fifo_sc.qsys
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_fifo_sc">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation"
+   categories="System"
+   tool="QsysPro" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element ip_arria10_fifo_sc
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="false" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="fifo_input"
+   internal="ip_arria10_fifo_sc.fifo_input"
+   type="conduit"
+   dir="end">
+  <port name="aclr" internal="aclr" />
+  <port name="clock" internal="clock" />
+  <port name="data" internal="data" />
+  <port name="rdreq" internal="rdreq" />
+  <port name="wrreq" internal="wrreq" />
+ </interface>
+ <interface
+   name="fifo_output"
+   internal="ip_arria10_fifo_sc.fifo_output"
+   type="conduit"
+   dir="end">
+  <port name="empty" internal="empty" />
+  <port name="full" internal="full" />
+  <port name="q" internal="q" />
+  <port name="usedw" internal="usedw" />
+ </interface>
+ <module
+   name="ip_arria10_fifo_sc"
+   kind="fifo"
+   version="19.1"
+   enabled="1"
+   autoexport="1">
+  <parameter name="DEVICE_FAMILY" value="Arria 10" />
+  <parameter name="GUI_AlmostEmpty" value="false" />
+  <parameter name="GUI_AlmostEmptyThr" value="-1" />
+  <parameter name="GUI_AlmostFull" value="false" />
+  <parameter name="GUI_AlmostFullThr" value="-1" />
+  <parameter name="GUI_CLOCKS_ARE_SYNCHRONIZED" value="1" />
+  <parameter name="GUI_Clock" value="0" />
+  <parameter name="GUI_DISABLE_DCFIFO_EMBEDDED_TIMING_CONSTRAINT" value="true" />
+  <parameter name="GUI_Depth" value="256" />
+  <parameter name="GUI_ENABLE_ECC" value="false" />
+  <parameter name="GUI_Empty" value="true" />
+  <parameter name="GUI_Full" value="true" />
+  <parameter name="GUI_LE_BasedFIFO" value="false" />
+  <parameter name="GUI_LegacyRREQ" value="1" />
+  <parameter name="GUI_MAX_DEPTH" value="Auto" />
+  <parameter name="GUI_MAX_DEPTH_BY_9" value="false" />
+  <parameter name="GUI_OVERFLOW_CHECKING" value="false" />
+  <parameter name="GUI_Optimize" value="1" />
+  <parameter name="GUI_Optimize_max" value="1" />
+  <parameter name="GUI_RAM_BLOCK_TYPE" value="Auto" />
+  <parameter name="GUI_TESTBENCH" value="false" />
+  <parameter name="GUI_UNDERFLOW_CHECKING" value="false" />
+  <parameter name="GUI_UsedW" value="true" />
+  <parameter name="GUI_Width" value="8" />
+  <parameter name="GUI_dc_aclr" value="false" />
+  <parameter name="GUI_delaypipe" value="5" />
+  <parameter name="GUI_diff_widths" value="false" />
+  <parameter name="GUI_msb_usedw" value="false" />
+  <parameter name="GUI_output_width" value="8" />
+  <parameter name="GUI_read_aclr_synch" value="false" />
+  <parameter name="GUI_rsEmpty" value="true" />
+  <parameter name="GUI_rsFull" value="false" />
+  <parameter name="GUI_rsUsedW" value="false" />
+  <parameter name="GUI_sc_aclr" value="true" />
+  <parameter name="GUI_sc_sclr" value="false" />
+  <parameter name="GUI_synStage" value="3" />
+  <parameter name="GUI_write_aclr_synch" value="false" />
+  <parameter name="GUI_wsEmpty" value="false" />
+  <parameter name="GUI_wsFull" value="true" />
+  <parameter name="GUI_wsUsedW" value="false" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/fifo/ip_arria10_e2sg_fifo_sc.vhd b/libraries/technology/ip_arria10_e2sg/fifo/ip_arria10_e2sg_fifo_sc.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..93a1eed1196007feb5a3292e258b97404145759b
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/fifo/ip_arria10_e2sg_fifo_sc.vhd
@@ -0,0 +1,110 @@
+-------------------------------------------------------------------------------
+--
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+-- Purpose: Instantiate FIFO IP with generics
+-- Description:
+--   Copied component declaration and instance example from generated/fifo_140/sim/ip_arria10_e2sg_fifo_sc_fifo_140_pkqwcbi.vhd 
+
+LIBRARY ieee;
+USE ieee.std_logic_1164.all;
+
+LIBRARY technology_lib;
+USE technology_lib.technology_pkg.ALL;
+
+LIBRARY altera_mf;
+USE altera_mf.all;
+
+ENTITY ip_arria10_e2sg_fifo_sc IS
+  GENERIC (
+    g_use_eab   : STRING := "ON";
+    g_dat_w     : NATURAL := 20;
+    g_nof_words : NATURAL := 1024
+  );
+  PORT (
+    aclr    : IN STD_LOGIC ;
+    clock   : IN STD_LOGIC ;
+    data    : IN STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+    rdreq   : IN STD_LOGIC ;
+    wrreq   : IN STD_LOGIC ;
+    empty   : OUT STD_LOGIC ;
+    full    : OUT STD_LOGIC ;
+    q       : OUT STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0) ;
+    usedw   : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0)
+  );
+END ip_arria10_e2sg_fifo_sc;
+
+
+ARCHITECTURE SYN OF ip_arria10_e2sg_fifo_sc IS
+
+  COMPONENT  scfifo
+  GENERIC (
+      add_ram_output_register  : STRING;
+      intended_device_family  : STRING;
+      lpm_numwords  : NATURAL;
+      lpm_showahead  : STRING;
+      lpm_type  : STRING;
+      lpm_width  : NATURAL;
+      lpm_widthu  : NATURAL;
+      overflow_checking  : STRING;
+      underflow_checking  : STRING;
+      use_eab  : STRING
+  );
+  PORT (
+      aclr   : IN STD_LOGIC;
+      clock   : IN STD_LOGIC;
+      data   : IN STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+      rdreq   : IN STD_LOGIC;
+      wrreq   : IN STD_LOGIC;
+      empty   : OUT STD_LOGIC;
+      full   : OUT STD_LOGIC;
+      q   : OUT STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+      usedw   : OUT STD_LOGIC_VECTOR (tech_ceil_log2(g_nof_words)-1 DOWNTO 0)
+  );
+  END COMPONENT;
+
+BEGIN
+
+  u_scfifo : scfifo
+  GENERIC MAP (
+    add_ram_output_register  => "ON",
+    intended_device_family  => "Arria 10",
+    lpm_numwords  => g_nof_words,
+    lpm_showahead  => "OFF",
+    lpm_type  => "scfifo",
+    lpm_width  => g_dat_w,
+    lpm_widthu  => tech_ceil_log2(g_nof_words),
+    overflow_checking  => "ON",
+    underflow_checking  => "ON",
+    use_eab  => g_use_eab
+  )
+  PORT MAP (
+    aclr => aclr,
+    clock => clock,
+    data => data,
+    rdreq => rdreq,
+    wrreq => wrreq,
+    empty => empty,
+    full => full,
+    q => q,
+    usedw => usedw
+  );
+
+END SYN;
diff --git a/libraries/technology/ip_arria10_e2sg/flash/asmi_parallel/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/flash/asmi_parallel/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..923d3754c63c8123bf538e26b1d7ba55c1644d29
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/flash/asmi_parallel/compile_ip.tcl
@@ -0,0 +1,35 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_asmi_parallel/sim"
+
+
+  vcom  "$IP_DIR/ip_arria10_e2sg_asmi_parallel.vhd"                                                                
diff --git a/libraries/technology/ip_arria10_e2sg/flash/asmi_parallel/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/flash/asmi_parallel/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..a1afcae4f1b46411d335824d0a57a8ec7657f7c4
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/flash/asmi_parallel/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_asmi_parallel
+hdl_library_clause_name = ip_arria10_e2sg_asmi_parallel_altera_asmi_parallel_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_asmi_parallel_194
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/flash/asmi_parallel/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_asmi_parallel/ip_arria10_e2sg_asmi_parallel.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_asmi_parallel.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/flash/asmi_parallel/ip_arria10_e2sg_asmi_parallel.qsys b/libraries/technology/ip_arria10_e2sg/flash/asmi_parallel/ip_arria10_e2sg_asmi_parallel.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..06b07be2232bc568791e9f57d57f0028a01043c2
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/flash/asmi_parallel/ip_arria10_e2sg_asmi_parallel.qsys
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_asmi_parallel">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element asmi_parallel_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface name="addr" internal="asmi_parallel_0.addr" type="conduit" dir="end">
+  <port name="addr" internal="addr" />
+ </interface>
+ <interface name="busy" internal="asmi_parallel_0.busy" type="conduit" dir="end">
+  <port name="busy" internal="busy" />
+ </interface>
+ <interface name="clkin" internal="asmi_parallel_0.clkin" type="clock" dir="end">
+  <port name="clkin" internal="clkin" />
+ </interface>
+ <interface
+   name="data_valid"
+   internal="asmi_parallel_0.data_valid"
+   type="conduit"
+   dir="end">
+  <port name="data_valid" internal="data_valid" />
+ </interface>
+ <interface
+   name="datain"
+   internal="asmi_parallel_0.datain"
+   type="conduit"
+   dir="end">
+  <port name="datain" internal="datain" />
+ </interface>
+ <interface
+   name="dataout"
+   internal="asmi_parallel_0.dataout"
+   type="conduit"
+   dir="end">
+  <port name="dataout" internal="dataout" />
+ </interface>
+ <interface name="die_erase" internal="asmi_parallel_0.die_erase" />
+ <interface
+   name="en4b_addr"
+   internal="asmi_parallel_0.en4b_addr"
+   type="conduit"
+   dir="end">
+  <port name="en4b_addr" internal="en4b_addr" />
+ </interface>
+ <interface
+   name="ex4b_addr"
+   internal="asmi_parallel_0.ex4b_addr"
+   type="conduit"
+   dir="end">
+  <port name="ex4b_addr" internal="ex4b_addr" />
+ </interface>
+ <interface name="fast_read" internal="asmi_parallel_0.fast_read" />
+ <interface
+   name="illegal_erase"
+   internal="asmi_parallel_0.illegal_erase"
+   type="conduit"
+   dir="end">
+  <port name="illegal_erase" internal="illegal_erase" />
+ </interface>
+ <interface
+   name="illegal_write"
+   internal="asmi_parallel_0.illegal_write"
+   type="conduit"
+   dir="end">
+  <port name="illegal_write" internal="illegal_write" />
+ </interface>
+ <interface name="rden" internal="asmi_parallel_0.rden" type="conduit" dir="end">
+  <port name="rden" internal="rden" />
+ </interface>
+ <interface name="read" internal="asmi_parallel_0.read" type="conduit" dir="end">
+  <port name="read" internal="read" />
+ </interface>
+ <interface name="reset" internal="asmi_parallel_0.reset" type="reset" dir="end">
+  <port name="reset" internal="reset" />
+ </interface>
+ <interface name="sce" internal="asmi_parallel_0.sce" type="conduit" dir="end">
+  <port name="sce" internal="sce" />
+ </interface>
+ <interface
+   name="sector_erase"
+   internal="asmi_parallel_0.sector_erase"
+   type="conduit"
+   dir="end">
+  <port name="sector_erase" internal="sector_erase" />
+ </interface>
+ <interface
+   name="shift_bytes"
+   internal="asmi_parallel_0.shift_bytes"
+   type="conduit"
+   dir="end">
+  <port name="shift_bytes" internal="shift_bytes" />
+ </interface>
+ <interface name="wren" internal="asmi_parallel_0.wren" type="conduit" dir="end">
+  <port name="wren" internal="wren" />
+ </interface>
+ <interface
+   name="write"
+   internal="asmi_parallel_0.write"
+   type="conduit"
+   dir="end">
+  <port name="write" internal="write" />
+ </interface>
+ <module
+   name="asmi_parallel_0"
+   kind="altera_asmi_parallel"
+   version="19.1.0"
+   enabled="1"
+   autoexport="1">
+  <parameter name="CBX_AUTO_BLACKBOX" value="ALL" />
+  <parameter name="DATA_WIDTH" value="STANDARD" />
+  <parameter name="DEVICE_FAMILY" value="Arria 10" />
+  <parameter name="ENABLE_SIM" value="false" />
+  <parameter name="EPCS_TYPE" value="EPCQL1024" />
+  <parameter name="FLASH_RSTPIN" value="FALSE" />
+  <parameter name="INTENDED_DEVICE_FAMILY" value="Arria 10" />
+  <parameter name="PAGE_SIZE" value="256" />
+  <parameter name="WRITE_DUMMY_CLK" value="0" />
+  <parameter name="gui_bulk_erase" value="false" />
+  <parameter name="gui_die_erase" value="false" />
+  <parameter name="gui_ex4b_addr" value="true" />
+  <parameter name="gui_fast_read" value="false" />
+  <parameter name="gui_page_write" value="true" />
+  <parameter name="gui_read_address" value="false" />
+  <parameter name="gui_read_dummyclk" value="false" />
+  <parameter name="gui_read_rdid" value="false" />
+  <parameter name="gui_read_sid" value="false" />
+  <parameter name="gui_read_status" value="false" />
+  <parameter name="gui_sector_erase" value="true" />
+  <parameter name="gui_sector_protect" value="false" />
+  <parameter name="gui_single_write" value="false" />
+  <parameter name="gui_use_asmiblock" value="false" />
+  <parameter name="gui_use_eab" value="false" />
+  <parameter name="gui_wren" value="true" />
+  <parameter name="gui_write" value="true" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/flash/remote_update/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/flash/remote_update/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..a0166b1708199ec0bb38af3cac4a487ebbda1db4
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/flash/remote_update/compile_ip.tcl
@@ -0,0 +1,35 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_remote_update/sim"
+
+ 
+  vcom  "$IP_DIR/ip_arria10_e2sg_remote_update.vhd"                                                                 
diff --git a/libraries/technology/ip_arria10_e2sg/flash/remote_update/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/flash/remote_update/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..b35edc92f1f250ca34122bda9654725e35a0eae0
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/flash/remote_update/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_remote_update
+hdl_library_clause_name = ip_arria10_e2sg_remote_update_altera_remote_update_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_remote_update_194
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/flash/remote_update/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_remote_update/ip_arria10_e2sg_remote_update.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_remote_update.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/flash/remote_update/ip_arria10_e2sg_remote_update.qsys b/libraries/technology/ip_arria10_e2sg/flash/remote_update/ip_arria10_e2sg_remote_update.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..e38df044a331cb0989ecbe9e2225173048851ff6
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/flash/remote_update/ip_arria10_e2sg_remote_update.qsys
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_remote_update">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element remote_update_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface name="busy" internal="remote_update_0.busy" type="conduit" dir="end">
+  <port name="busy" internal="busy" />
+ </interface>
+ <interface name="clock" internal="remote_update_0.clock" type="clock" dir="end">
+  <port name="clock" internal="clock" />
+ </interface>
+ <interface
+   name="ctl_nupdt"
+   internal="remote_update_0.ctl_nupdt"
+   type="conduit"
+   dir="end">
+  <port name="ctl_nupdt" internal="ctl_nupdt" />
+ </interface>
+ <interface
+   name="data_in"
+   internal="remote_update_0.data_in"
+   type="conduit"
+   dir="end">
+  <port name="data_in" internal="data_in" />
+ </interface>
+ <interface
+   name="data_out"
+   internal="remote_update_0.data_out"
+   type="conduit"
+   dir="end">
+  <port name="data_out" internal="data_out" />
+ </interface>
+ <interface
+   name="param"
+   internal="remote_update_0.param"
+   type="conduit"
+   dir="end">
+  <port name="param" internal="param" />
+ </interface>
+ <interface
+   name="read_param"
+   internal="remote_update_0.read_param"
+   type="conduit"
+   dir="end">
+  <port name="read_param" internal="read_param" />
+ </interface>
+ <interface
+   name="reconfig"
+   internal="remote_update_0.reconfig"
+   type="conduit"
+   dir="end">
+  <port name="reconfig" internal="reconfig" />
+ </interface>
+ <interface name="reset" internal="remote_update_0.reset" type="reset" dir="end">
+  <port name="reset" internal="reset" />
+ </interface>
+ <interface
+   name="reset_timer"
+   internal="remote_update_0.reset_timer"
+   type="conduit"
+   dir="end">
+  <port name="reset_timer" internal="reset_timer" />
+ </interface>
+ <interface
+   name="write_param"
+   internal="remote_update_0.write_param"
+   type="conduit"
+   dir="end">
+  <port name="write_param" internal="write_param" />
+ </interface>
+ <module
+   name="remote_update_0"
+   kind="altera_remote_update"
+   version="19.1.0"
+   enabled="1"
+   autoexport="1">
+  <parameter name="AUTO_DEVICE_SPEEDGRADE" value="2" />
+  <parameter name="CBX_AUTO_BLACKBOX" value="ALL" />
+  <parameter name="DEVICE" value="10AX115U3F45E2SG" />
+  <parameter name="DEVICE_FAMILY" value="Arria 10" />
+  <parameter name="GUI_config_device" value="EPCQL1024" />
+  <parameter name="check_app_pof" value="false" />
+  <parameter name="check_avalon_interface" value="false" />
+  <parameter name="m_support_write_config_check" value="true" />
+  <parameter name="operation_mode" value="REMOTE" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/fractional_pll_clk125/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/fractional_pll_clk125/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..4fe3b4783ebc95f1a5fdd8354121b8e20993494b
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/fractional_pll_clk125/compile_ip.tcl
@@ -0,0 +1,34 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_fractional_pll_clk125/sim"
+         
+  vcom   "$IP_DIR/ip_arria10_e2sg_fractional_pll_clk125.vhd"                           
diff --git a/libraries/technology/ip_arria10_e2sg/fractional_pll_clk125/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/fractional_pll_clk125/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..093474e35b574fab412aee5dc22de07b4e1f73e4
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/fractional_pll_clk125/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_fractional_pll_clk125
+hdl_library_clause_name = ip_arria10_e2sg_fractional_pll_clk125_altera_xcvr_fpll_a10_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_fpll_a10_194 
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/fractional_pll_clk125/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_fractional_pll_clk125/ip_arria10_e2sg_fractional_pll_clk125.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_fractional_pll_clk125.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/fractional_pll_clk125/ip_arria10_e2sg_fractional_pll_clk125.qsys b/libraries/technology/ip_arria10_e2sg/fractional_pll_clk125/ip_arria10_e2sg_fractional_pll_clk125.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..e09c4c105a3e0b7fa39a7532016c41400380fba2
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/fractional_pll_clk125/ip_arria10_e2sg_fractional_pll_clk125.qsys
@@ -0,0 +1,266 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_fractional_pll_clk125">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element xcvr_fpll_a10_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos>
+        <entry>
+            <key>outclk0</key>
+            <value>
+                <connectionPointName>outclk0</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>100000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+        <entry>
+            <key>outclk1</key>
+            <value>
+                <connectionPointName>outclk1</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>100000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+        <entry>
+            <key>outclk2</key>
+            <value>
+                <connectionPointName>outclk2</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>100000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+        <entry>
+            <key>outclk3</key>
+            <value>
+                <connectionPointName>outclk3</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>100000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+    </connPtSystemInfos>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="hssi_pll_cascade_clk"
+   internal="xcvr_fpll_a10_0.hssi_pll_cascade_clk" />
+ <interface
+   name="outclk0"
+   internal="xcvr_fpll_a10_0.outclk0"
+   type="clock"
+   dir="start">
+  <port name="outclk0" internal="outclk0" />
+ </interface>
+ <interface
+   name="outclk1"
+   internal="xcvr_fpll_a10_0.outclk1"
+   type="clock"
+   dir="start">
+  <port name="outclk1" internal="outclk1" />
+ </interface>
+ <interface
+   name="outclk2"
+   internal="xcvr_fpll_a10_0.outclk2"
+   type="clock"
+   dir="start">
+  <port name="outclk2" internal="outclk2" />
+ </interface>
+ <interface
+   name="outclk3"
+   internal="xcvr_fpll_a10_0.outclk3"
+   type="clock"
+   dir="start">
+  <port name="outclk3" internal="outclk3" />
+ </interface>
+ <interface
+   name="pll_cal_busy"
+   internal="xcvr_fpll_a10_0.pll_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="pll_cal_busy" internal="pll_cal_busy" />
+ </interface>
+ <interface
+   name="pll_locked"
+   internal="xcvr_fpll_a10_0.pll_locked"
+   type="conduit"
+   dir="end">
+  <port name="pll_locked" internal="pll_locked" />
+ </interface>
+ <interface
+   name="pll_powerdown"
+   internal="xcvr_fpll_a10_0.pll_powerdown"
+   type="conduit"
+   dir="end">
+  <port name="pll_powerdown" internal="pll_powerdown" />
+ </interface>
+ <interface
+   name="pll_refclk0"
+   internal="xcvr_fpll_a10_0.pll_refclk0"
+   type="clock"
+   dir="end">
+  <port name="pll_refclk0" internal="pll_refclk0" />
+ </interface>
+ <interface name="tx_serial_clk" internal="xcvr_fpll_a10_0.tx_serial_clk" />
+ <module
+   name="xcvr_fpll_a10_0"
+   kind="altera_xcvr_fpll_a10"
+   version="19.1"
+   enabled="1"
+   autoexport="1">
+  <parameter name="base_device" value="NIGHTFURY5" />
+  <parameter name="device" value="10AX115U3F45E2SG" />
+  <parameter name="enable_analog_resets" value="0" />
+  <parameter name="enable_bonding_clks" value="0" />
+  <parameter name="enable_ext_lockdetect_ports" value="0" />
+  <parameter name="enable_fb_comp_bonding" value="0" />
+  <parameter name="enable_hfreq_clk" value="0" />
+  <parameter name="enable_mcgb" value="0" />
+  <parameter name="enable_mcgb_pcie_clksw" value="0" />
+  <parameter name="enable_pld_mcgb_cal_busy_port" value="0" />
+  <parameter name="enable_pll_reconfig" value="0" />
+  <parameter name="generate_add_hdl_instance_example" value="0" />
+  <parameter name="generate_docs" value="1" />
+  <parameter name="gui_actual_outclk0_frequency" value="100.0" />
+  <parameter name="gui_actual_outclk1_frequency" value="100.0" />
+  <parameter name="gui_actual_outclk2_frequency" value="100.0" />
+  <parameter name="gui_actual_outclk3_frequency" value="100.0" />
+  <parameter name="gui_actual_refclk_frequency" value="100.0" />
+  <parameter name="gui_bw_sel" value="low" />
+  <parameter name="gui_cascade_outclk_index" value="0" />
+  <parameter name="gui_desired_hssi_cascade_frequency" value="100.0" />
+  <parameter name="gui_desired_outclk0_frequency" value="20.0" />
+  <parameter name="gui_desired_outclk1_frequency" value="50.0" />
+  <parameter name="gui_desired_outclk2_frequency" value="100.0" />
+  <parameter name="gui_desired_outclk3_frequency" value="125.0" />
+  <parameter name="gui_desired_refclk_frequency" value="200.0" />
+  <parameter name="gui_enable_50G_support" value="false" />
+  <parameter name="gui_enable_active_clk" value="false" />
+  <parameter name="gui_enable_cascade_out" value="false" />
+  <parameter name="gui_enable_clk_bad" value="false" />
+  <parameter name="gui_enable_dps" value="false" />
+  <parameter name="gui_enable_fractional" value="false" />
+  <parameter name="gui_enable_hip_cal_done_port" value="0" />
+  <parameter name="gui_enable_manual_config" value="false" />
+  <parameter name="gui_enable_manual_hssi_counters" value="false" />
+  <parameter name="gui_enable_phase_alignment" value="false" />
+  <parameter name="gui_enable_pld_cal_busy_port" value="1" />
+  <parameter name="gui_fpll_mode" value="0" />
+  <parameter name="gui_fractional_x" value="32" />
+  <parameter name="gui_hip_cal_en" value="0" />
+  <parameter name="gui_hssi_output_clock_frequency" value="1250.0" />
+  <parameter name="gui_hssi_prot_mode" value="0" />
+  <parameter name="gui_iqtxrxclk_outclk_index" value="0" />
+  <parameter name="gui_is_downstream_cascaded_pll" value="false" />
+  <parameter name="gui_number_of_output_clocks" value="4" />
+  <parameter name="gui_operation_mode" value="0" />
+  <parameter name="gui_outclk0_actual_phase_shift" value="0.0" />
+  <parameter name="gui_outclk0_actual_phase_shift_deg" value="0.0" />
+  <parameter name="gui_outclk0_desired_phase_shift" value="0.0" />
+  <parameter name="gui_outclk0_phase_shift_unit" value="0" />
+  <parameter name="gui_outclk1_actual_phase_shift" value="0.0" />
+  <parameter name="gui_outclk1_actual_phase_shift_deg" value="0.0" />
+  <parameter name="gui_outclk1_desired_phase_shift" value="0" />
+  <parameter name="gui_outclk1_phase_shift_unit" value="0" />
+  <parameter name="gui_outclk2_actual_phase_shift" value="0 ps" />
+  <parameter name="gui_outclk2_actual_phase_shift_deg" value="0 deg" />
+  <parameter name="gui_outclk2_desired_phase_shift" value="0" />
+  <parameter name="gui_outclk2_phase_shift_unit" value="0" />
+  <parameter name="gui_outclk3_actual_phase_shift" value="0.0" />
+  <parameter name="gui_outclk3_actual_phase_shift_deg" value="0.0" />
+  <parameter name="gui_outclk3_desired_phase_shift" value="0" />
+  <parameter name="gui_outclk3_phase_shift_unit" value="0" />
+  <parameter name="gui_pll_c_counter_0" value="1" />
+  <parameter name="gui_pll_c_counter_1" value="1" />
+  <parameter name="gui_pll_c_counter_2" value="1" />
+  <parameter name="gui_pll_c_counter_3" value="1" />
+  <parameter name="gui_pll_dsm_fractional_division" value="1" />
+  <parameter name="gui_pll_m_counter" value="1" />
+  <parameter name="gui_pll_n_counter" value="1" />
+  <parameter name="gui_pll_set_hssi_k_counter" value="1" />
+  <parameter name="gui_pll_set_hssi_l_counter" value="1" />
+  <parameter name="gui_pll_set_hssi_m_counter" value="1" />
+  <parameter name="gui_pll_set_hssi_n_counter" value="1" />
+  <parameter name="gui_refclk1_frequency" value="100.0" />
+  <parameter name="gui_refclk_cnt" value="1" />
+  <parameter name="gui_refclk_index" value="0" />
+  <parameter name="gui_refclk_switch" value="false" />
+  <parameter name="gui_reference_clock_frequency" value="125.0" />
+  <parameter name="gui_self_reset_enabled" value="false" />
+  <parameter name="gui_switchover_delay" value="0" />
+  <parameter name="gui_switchover_mode">Automatic Switchover</parameter>
+  <parameter name="mcgb_aux_clkin_cnt" value="0" />
+  <parameter name="mcgb_div" value="1" />
+  <parameter name="phase_alignment_check_var" value="false" />
+  <parameter name="pma_width" value="64" />
+  <parameter name="rcfg_debug" value="0" />
+  <parameter name="rcfg_enable_avmm_busy_port" value="0" />
+  <parameter name="rcfg_file_prefix">altera_xcvr_fpll_a10</parameter>
+  <parameter name="rcfg_h_file_enable" value="0" />
+  <parameter name="rcfg_jtag_enable" value="0" />
+  <parameter name="rcfg_mif_file_enable" value="0" />
+  <parameter name="rcfg_separate_avmm_busy" value="0" />
+  <parameter name="rcfg_sv_file_enable" value="0" />
+  <parameter name="rcfg_txt_file_enable" value="0" />
+  <parameter name="set_altera_xcvr_fpll_a10_calibration_en" value="1" />
+  <parameter name="set_capability_reg_enable" value="0" />
+  <parameter name="set_csr_soft_logic_enable" value="0" />
+  <parameter name="set_user_identifier" value="0" />
+  <parameter name="silicon_rev" value="false" />
+  <parameter name="support_mode" value="user_mode" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/fractional_pll_clk200/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/fractional_pll_clk200/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..4f8725a2e4aba75800497c381b74e774529e3296
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/fractional_pll_clk200/compile_ip.tcl
@@ -0,0 +1,35 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_fractional_pll_clk200/sim"
+
+       
+  vcom         "$IP_DIR/ip_arria10_e2sg_fractional_pll_clk200.vhd"                            
diff --git a/libraries/technology/ip_arria10_e2sg/fractional_pll_clk200/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/fractional_pll_clk200/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..f0a5deaef33c0bc96dcdfb8126d304b3a477d181
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/fractional_pll_clk200/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_fractional_pll_clk200  
+hdl_library_clause_name = ip_arria10_e2sg_fractional_pll_clk200_altera_xcvr_fpll_a10_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_fpll_a10_194
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/fractional_pll_clk200/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_fractional_pll_clk200/ip_arria10_e2sg_fractional_pll_clk200.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_fractional_pll_clk200.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/fractional_pll_clk200/ip_arria10_e2sg_fractional_pll_clk200.qsys b/libraries/technology/ip_arria10_e2sg/fractional_pll_clk200/ip_arria10_e2sg_fractional_pll_clk200.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..a34206bc493d91a40a53749f6993e09f5ca43a7e
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/fractional_pll_clk200/ip_arria10_e2sg_fractional_pll_clk200.qsys
@@ -0,0 +1,246 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_fractional_pll_clk200">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element xcvr_fpll_a10_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos>
+        <entry>
+            <key>outclk0</key>
+            <value>
+                <connectionPointName>outclk0</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>100000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+        <entry>
+            <key>outclk1</key>
+            <value>
+                <connectionPointName>outclk1</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>100000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+        <entry>
+            <key>outclk2</key>
+            <value>
+                <connectionPointName>outclk2</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>100000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+    </connPtSystemInfos>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="hssi_pll_cascade_clk"
+   internal="xcvr_fpll_a10_0.hssi_pll_cascade_clk" />
+ <interface
+   name="outclk0"
+   internal="xcvr_fpll_a10_0.outclk0"
+   type="clock"
+   dir="start">
+  <port name="outclk0" internal="outclk0" />
+ </interface>
+ <interface
+   name="outclk1"
+   internal="xcvr_fpll_a10_0.outclk1"
+   type="clock"
+   dir="start">
+  <port name="outclk1" internal="outclk1" />
+ </interface>
+ <interface
+   name="outclk2"
+   internal="xcvr_fpll_a10_0.outclk2"
+   type="clock"
+   dir="start">
+  <port name="outclk2" internal="outclk2" />
+ </interface>
+ <interface
+   name="pll_cal_busy"
+   internal="xcvr_fpll_a10_0.pll_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="pll_cal_busy" internal="pll_cal_busy" />
+ </interface>
+ <interface
+   name="pll_locked"
+   internal="xcvr_fpll_a10_0.pll_locked"
+   type="conduit"
+   dir="end">
+  <port name="pll_locked" internal="pll_locked" />
+ </interface>
+ <interface
+   name="pll_powerdown"
+   internal="xcvr_fpll_a10_0.pll_powerdown"
+   type="conduit"
+   dir="end">
+  <port name="pll_powerdown" internal="pll_powerdown" />
+ </interface>
+ <interface
+   name="pll_refclk0"
+   internal="xcvr_fpll_a10_0.pll_refclk0"
+   type="clock"
+   dir="end">
+  <port name="pll_refclk0" internal="pll_refclk0" />
+ </interface>
+ <interface name="tx_serial_clk" internal="xcvr_fpll_a10_0.tx_serial_clk" />
+ <module
+   name="xcvr_fpll_a10_0"
+   kind="altera_xcvr_fpll_a10"
+   version="19.1"
+   enabled="1"
+   autoexport="1">
+  <parameter name="base_device" value="NIGHTFURY5" />
+  <parameter name="device" value="10AX115U3F45E2SG" />
+  <parameter name="enable_analog_resets" value="0" />
+  <parameter name="enable_bonding_clks" value="0" />
+  <parameter name="enable_ext_lockdetect_ports" value="0" />
+  <parameter name="enable_fb_comp_bonding" value="0" />
+  <parameter name="enable_hfreq_clk" value="0" />
+  <parameter name="enable_mcgb" value="0" />
+  <parameter name="enable_mcgb_pcie_clksw" value="0" />
+  <parameter name="enable_pld_mcgb_cal_busy_port" value="0" />
+  <parameter name="enable_pll_reconfig" value="0" />
+  <parameter name="generate_add_hdl_instance_example" value="0" />
+  <parameter name="generate_docs" value="1" />
+  <parameter name="gui_actual_outclk0_frequency" value="100.0" />
+  <parameter name="gui_actual_outclk1_frequency" value="100.0" />
+  <parameter name="gui_actual_outclk2_frequency" value="100.0" />
+  <parameter name="gui_actual_outclk3_frequency" value="100.0" />
+  <parameter name="gui_actual_refclk_frequency" value="100.0" />
+  <parameter name="gui_bw_sel" value="low" />
+  <parameter name="gui_cascade_outclk_index" value="0" />
+  <parameter name="gui_desired_hssi_cascade_frequency" value="100.0" />
+  <parameter name="gui_desired_outclk0_frequency" value="200.0" />
+  <parameter name="gui_desired_outclk1_frequency" value="200.0" />
+  <parameter name="gui_desired_outclk2_frequency" value="400.0" />
+  <parameter name="gui_desired_outclk3_frequency" value="100.0" />
+  <parameter name="gui_desired_refclk_frequency" value="200.0" />
+  <parameter name="gui_enable_50G_support" value="false" />
+  <parameter name="gui_enable_active_clk" value="false" />
+  <parameter name="gui_enable_cascade_out" value="false" />
+  <parameter name="gui_enable_clk_bad" value="false" />
+  <parameter name="gui_enable_dps" value="false" />
+  <parameter name="gui_enable_fractional" value="false" />
+  <parameter name="gui_enable_hip_cal_done_port" value="0" />
+  <parameter name="gui_enable_manual_config" value="false" />
+  <parameter name="gui_enable_manual_hssi_counters" value="false" />
+  <parameter name="gui_enable_phase_alignment" value="false" />
+  <parameter name="gui_enable_pld_cal_busy_port" value="1" />
+  <parameter name="gui_fpll_mode" value="0" />
+  <parameter name="gui_fractional_x" value="32" />
+  <parameter name="gui_hip_cal_en" value="0" />
+  <parameter name="gui_hssi_output_clock_frequency" value="1250.0" />
+  <parameter name="gui_hssi_prot_mode" value="0" />
+  <parameter name="gui_iqtxrxclk_outclk_index" value="0" />
+  <parameter name="gui_is_downstream_cascaded_pll" value="false" />
+  <parameter name="gui_number_of_output_clocks" value="3" />
+  <parameter name="gui_operation_mode" value="0" />
+  <parameter name="gui_outclk0_actual_phase_shift" value="0.0" />
+  <parameter name="gui_outclk0_actual_phase_shift_deg" value="0.0" />
+  <parameter name="gui_outclk0_desired_phase_shift" value="0.0" />
+  <parameter name="gui_outclk0_phase_shift_unit" value="0" />
+  <parameter name="gui_outclk1_actual_phase_shift" value="0.0" />
+  <parameter name="gui_outclk1_actual_phase_shift_deg" value="0.0" />
+  <parameter name="gui_outclk1_desired_phase_shift" value="90" />
+  <parameter name="gui_outclk1_phase_shift_unit" value="0" />
+  <parameter name="gui_outclk2_actual_phase_shift" value="0 ps" />
+  <parameter name="gui_outclk2_actual_phase_shift_deg" value="0 deg" />
+  <parameter name="gui_outclk2_desired_phase_shift" value="0" />
+  <parameter name="gui_outclk2_phase_shift_unit" value="0" />
+  <parameter name="gui_outclk3_actual_phase_shift" value="0.0" />
+  <parameter name="gui_outclk3_actual_phase_shift_deg" value="0.0" />
+  <parameter name="gui_outclk3_desired_phase_shift" value="0" />
+  <parameter name="gui_outclk3_phase_shift_unit" value="0" />
+  <parameter name="gui_pll_c_counter_0" value="1" />
+  <parameter name="gui_pll_c_counter_1" value="1" />
+  <parameter name="gui_pll_c_counter_2" value="1" />
+  <parameter name="gui_pll_c_counter_3" value="1" />
+  <parameter name="gui_pll_dsm_fractional_division" value="1" />
+  <parameter name="gui_pll_m_counter" value="1" />
+  <parameter name="gui_pll_n_counter" value="1" />
+  <parameter name="gui_pll_set_hssi_k_counter" value="1" />
+  <parameter name="gui_pll_set_hssi_l_counter" value="1" />
+  <parameter name="gui_pll_set_hssi_m_counter" value="1" />
+  <parameter name="gui_pll_set_hssi_n_counter" value="1" />
+  <parameter name="gui_refclk1_frequency" value="100.0" />
+  <parameter name="gui_refclk_cnt" value="1" />
+  <parameter name="gui_refclk_index" value="0" />
+  <parameter name="gui_refclk_switch" value="false" />
+  <parameter name="gui_reference_clock_frequency" value="200.0" />
+  <parameter name="gui_self_reset_enabled" value="false" />
+  <parameter name="gui_switchover_delay" value="0" />
+  <parameter name="gui_switchover_mode">Automatic Switchover</parameter>
+  <parameter name="mcgb_aux_clkin_cnt" value="0" />
+  <parameter name="mcgb_div" value="1" />
+  <parameter name="phase_alignment_check_var" value="false" />
+  <parameter name="pma_width" value="64" />
+  <parameter name="rcfg_debug" value="0" />
+  <parameter name="rcfg_enable_avmm_busy_port" value="0" />
+  <parameter name="rcfg_file_prefix">altera_xcvr_fpll_a10</parameter>
+  <parameter name="rcfg_h_file_enable" value="0" />
+  <parameter name="rcfg_jtag_enable" value="0" />
+  <parameter name="rcfg_mif_file_enable" value="0" />
+  <parameter name="rcfg_separate_avmm_busy" value="0" />
+  <parameter name="rcfg_sv_file_enable" value="0" />
+  <parameter name="rcfg_txt_file_enable" value="0" />
+  <parameter name="set_altera_xcvr_fpll_a10_calibration_en" value="1" />
+  <parameter name="set_capability_reg_enable" value="0" />
+  <parameter name="set_csr_soft_logic_enable" value="0" />
+  <parameter name="set_user_identifier" value="0" />
+  <parameter name="silicon_rev" value="false" />
+  <parameter name="support_mode" value="user_mode" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/jesd204b/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/jesd204b/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..02390dc468895a831e6533fed8862a396dc3c80d
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/jesd204b/hdllib.cfg
@@ -0,0 +1,28 @@
+hdl_lib_name = ip_arria10_e2sg_jesd204b
+hdl_library_clause_name = ip_arria10_e2sg_jesd204b_lib
+hdl_lib_uses_synth = technology tech_pll common dp
+hdl_lib_uses_sim = 
+hdl_lib_technology = ip_arria10_e2sg 
+
+synth_files =
+    ip_arria10_e2sg_jesd204b.vhd
+
+test_bench_files =
+
+[modelsim_project_file]
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_jesd204b_rx/ip_arria10_e2sg_jesd204b_rx.qip
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_jesd204b_rx_core_pll/ip_arria10_e2sg_jesd204b_rx_core_pll.qip
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_jesd204b_rx_reset_seq/ip_arria10_e2sg_jesd204b_rx_reset_seq.qip
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12/ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_jesd204b_rx.ip
+    ip_arria10_e2sg_jesd204b_rx_core_pll.ip
+    ip_arria10_e2sg_jesd204b_rx_reset_seq.ip
+    ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12.ip
+
+
diff --git a/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b.vhd b/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..6b6c7c4079db703c9ebb085753f1560c8691e818
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b.vhd
@@ -0,0 +1,494 @@
+--------------------------------------------------------------------------------
+--
+-- 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/>.
+--
+--------------------------------------------------------------------------------
+
+
+-- Purpose: Combine IP components needed to create a JESD204B interface
+--   Initially supports RX_ONLY for receiving data from an ADC
+-- Description 
+--   
+--  
+
+LIBRARY IEEE, common_lib, dp_lib, technology_lib, ip_arria10_e2sg_jesd204b_rx, ip_arria10_e2sg_jesd204b_rx_reset_seq, ip_arria10_e2sg_jesd204b_rx_core_pll, ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12;
+USE IEEE.STD_LOGIC_1164.ALL;
+USE technology_lib.technology_pkg.ALL;
+USE common_lib.common_pkg.ALL;
+USE common_lib.common_mem_pkg.ALL;
+USE dp_lib.dp_stream_pkg.ALL;
+
+ENTITY ip_arria10_e2sg_jesd204b IS
+  GENERIC (
+    g_sim                 : BOOLEAN := FALSE;
+    g_sim_level           : NATURAL := 0;     -- 0 = use IP; 1 = use fast serdes model
+    g_nof_channels        : NATURAL := 1;
+    g_direction           : STRING := "RX_ONLY"  -- "TX_RX", "TX_ONLY", "RX_ONLY"
+  );
+  PORT (
+    -- JESD204B external signals
+    jesd204b_refclk       : IN STD_LOGIC := '0';                             -- Reference clock. For AD9683 use 200MHz direct from clock reference pin
+    jesd204b_sysref       : IN STD_LOGIC := '0';                             -- SYSREF should drive ADC and FPGA with correct phase wrt jesd204b_device_clk 
+    jesd204b_sync_n_arr   : OUT STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0); -- output to control ADC initialization/syncronization phase
+    
+    -- Data to fabric
+    rx_src_out_arr        : OUT t_dp_sosi_arr(g_nof_channels-1 DOWNTO 0);    -- Parallel data out to fabric
+    jesd204b_frame_clk    : OUT  STD_LOGIC := '0';                           -- Regenerated data clock to fabric
+
+    -- MM Control
+    mm_clk                : IN  STD_LOGIC;
+    mm_rst                : IN  STD_LOGIC;
+         
+    jesd204b_mosi         : IN  t_mem_mosi;         --  mm control
+    jesd204b_miso         : OUT t_mem_miso; 
+         
+    -- Serial connections to transceiver pins
+    serial_tx_arr         : OUT STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);      -- Not used for ADC
+    serial_rx_arr         : IN  STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0)
+  );
+END ip_arria10_e2sg_jesd204b;
+
+
+ARCHITECTURE str OF ip_arria10_e2sg_jesd204b IS
+
+  -- JESD204 control status registers
+  SIGNAL jesd204b_mosi_arr          : t_mem_mosi_arr(g_nof_channels-1 DOWNTO 0);
+  SIGNAL jesd204b_miso_arr          : t_mem_miso_arr(g_nof_channels-1 DOWNTO 0); 
+  SIGNAL reset_seq_mosi_arr         : t_mem_mosi_arr(g_nof_channels-1 DOWNTO 0);
+  SIGNAL reset_seq_miso_arr         : t_mem_miso_arr(g_nof_channels-1 DOWNTO 0); 
+
+  -- Clocks
+  SIGNAL rxframe_clk                : STD_LOGIC; 
+  SIGNAL rxlink_clk                 : STD_LOGIC; 
+
+  -- Reset and control signals
+  SIGNAL dev_lane_aligned           : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);  -- 1 bit, each interface channel has 1 lane
+  SIGNAL rx_analogreset_arr         : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);                
+  SIGNAL rx_cal_busy_arr            : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);               
+  SIGNAL rx_digitalreset_arr        : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);               
+  SIGNAL rx_islockedtodata_arr      : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);               
+  SIGNAL dev_lane_aligned_arr       : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);               
+  SIGNAL rx_csr_lane_powerdown_arr  : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);               
+  SIGNAL xcvr_rst_ctrl_rx_ready_arr : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);               
+  SIGNAL rx_xcvr_ready_in_arr       : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);               
+  SIGNAL pll_reset_arr              : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);               
+  SIGNAL xcvr_rst_arr               : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);               
+  SIGNAL rx_avs_rst_arr             : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);               
+  SIGNAL rxlink_rst_arr             : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);               
+  SIGNAL rxframe_rst_arr            : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);               
+  SIGNAL rx_avs_rst_n_arr           : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);               
+  SIGNAL rxlink_rst_n_arr           : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);               
+  SIGNAL rxframe_rst_n_arr          : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);               
+  SIGNAL f2_div1_cnt_arr            : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);               
+  SIGNAL core_pll_locked            : STD_LOGIC;               
+  SIGNAL core_pll_locked_reg        : STD_LOGIC;               
+
+  -- Data path
+  SIGNAL jesd204b_rx_link_data_arr  : STD_LOGIC_VECTOR(32*g_nof_channels-1 DOWNTO 0);               
+  SIGNAL jesd204b_rx_link_valid_arr : STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);               
+
+
+  -- Component declarations for the IP blocks
+
+--    component ip_arria10_e2sg_jesd204b_rx is
+--    port (
+--      jesd204_0_alldev_lane_aligned_export        : in  std_logic                     := 'X';             -- export
+--      csr_cf_export                     : out std_logic_vector(4 downto 0);                     -- export
+--      csr_cs_export                     : out std_logic_vector(1 downto 0);                     -- export
+--      csr_f_export                      : out std_logic_vector(7 downto 0);                     -- export
+--      csr_hd_export                     : out std_logic;                                        -- export
+--      csr_k_export                      : out std_logic_vector(4 downto 0);                     -- export
+--      csr_l_export                      : out std_logic_vector(4 downto 0);                     -- export
+--      csr_lane_powerdown_export         : out std_logic_vector(0 downto 0);                     -- export
+--      csr_m_export                      : out std_logic_vector(7 downto 0);                     -- export
+--      csr_n_export                      : out std_logic_vector(4 downto 0);                     -- export
+--      csr_np_export                     : out std_logic_vector(4 downto 0);                     -- export
+--      csr_rx_testmode_export            : out std_logic_vector(3 downto 0);                     -- export
+--      csr_s_export                      : out std_logic_vector(4 downto 0);                     -- export
+--      dev_lane_aligned_export           : out std_logic;                                        -- export
+--      dev_sync_n_export                 : out std_logic;                                        -- export
+--      jesd204_rx_avs_chipselect         : in  std_logic                     := 'X';             -- chipselect
+--      jesd204_rx_avs_address            : in  std_logic_vector(7 downto 0)  := (others => 'X'); -- address
+--      jesd204_rx_avs_read               : in  std_logic                     := 'X';             -- read
+--      jesd204_rx_avs_readdata           : out std_logic_vector(31 downto 0);                    -- readdata
+--      jesd204_rx_avs_waitrequest        : out std_logic;                                        -- waitrequest
+--      jesd204_rx_avs_write              : in  std_logic                     := 'X';             -- write
+--      jesd204_rx_avs_writedata          : in  std_logic_vector(31 downto 0) := (others => 'X'); -- writedata
+--      jesd204_rx_avs_clk_clk            : in  std_logic                     := 'X';             -- clk
+--      jesd204_rx_avs_rst_n_reset_n      : in  std_logic                     := 'X';             -- reset_n
+--      jesd204_rx_dlb_data_export        : in  std_logic_vector(31 downto 0) := (others => 'X'); -- export
+--      jesd204_rx_dlb_data_valid_export  : in  std_logic_vector(0 downto 0)  := (others => 'X'); -- export
+--      jesd204_rx_dlb_disperr_export     : in  std_logic_vector(3 downto 0)  := (others => 'X'); -- export
+--      jesd204_rx_dlb_errdetect_export   : in  std_logic_vector(3 downto 0)  := (others => 'X'); -- export
+--      jesd204_rx_dlb_kchar_data_export  : in  std_logic_vector(3 downto 0)  := (others => 'X'); -- export
+--      jesd204_rx_frame_error_export     : in  std_logic                     := 'X';             -- export
+--      jesd204_rx_int_irq                : out std_logic;                                        -- irq
+--      jesd204_rx_link_data              : out std_logic_vector(31 downto 0);                    -- data
+--      jesd204_rx_link_valid             : out std_logic;                                        -- valid
+--      jesd204_rx_link_ready             : in  std_logic                     := 'X';             -- ready
+--      pll_ref_clk_clk                   : in  std_logic                     := 'X';             -- clk
+--      rx_analogreset_rx_analogreset     : in  std_logic_vector(0 downto 0)  := (others => 'X'); -- rx_analogreset
+--      rx_cal_busy_rx_cal_busy           : out std_logic_vector(0 downto 0);                     -- rx_cal_busy
+--      rx_digitalreset_rx_digitalreset   : in  std_logic_vector(0 downto 0)  := (others => 'X'); -- rx_digitalreset
+--      rx_islockedtodata_rx_is_lockedtodata : out std_logic_vector(0 downto 0);                     -- rx_is_lockedtodata
+--      rx_serial_data_rx_serial_data     : in  std_logic_vector(0 downto 0)  := (others => 'X'); -- rx_serial_data
+--      rxlink_clk_clk                    : in  std_logic                     := 'X';             -- clk
+--      rxlink_rst_n_reset_n              : in  std_logic                     := 'X';             -- reset_n
+--      rxphy_clk_export                  : out std_logic_vector(0 downto 0);                     -- export
+--      sof_export                        : out std_logic_vector(3 downto 0);                     -- export
+--      somf_export                       : out std_logic_vector(3 downto 0);                     -- export
+--      sysref_export                     : in  std_logic                     := 'X'              -- export
+--    );
+--  end component ip_arria10_e2sg_jesd204b_rx;
+
+  component ip_arria10_e2sg_jesd204b_rx_core_pll_cmp is
+    port (
+      locked   : out std_logic;        -- export
+      outclk_0 : out std_logic;        -- clk
+      outclk_1 : out std_logic;        -- clk
+      refclk   : in  std_logic := 'X'; -- clk
+      rst      : in  std_logic := 'X'  -- reset
+    );
+  end component ip_arria10_e2sg_jesd204b_rx_core_pll_cmp;
+
+  component ip_arria10_e2sg_jesd204b_rx_reset_seq_cmp is
+    generic (
+      NUM_OUTPUTS                   : integer := 3;
+      ENABLE_DEASSERTION_INPUT_QUAL : integer := 0;
+      ENABLE_ASSERTION_SEQUENCE     : integer := 0;
+      ENABLE_DEASSERTION_SEQUENCE   : integer := 0;
+      MIN_ASRT_TIME                 : integer := 0;
+      ASRT_DELAY0                   : integer := 0;
+      DSRT_DELAY0                   : integer := 0;
+      ASRT_REMAP0                   : integer := 0;
+      DSRT_REMAP0                   : integer := 0;
+      DSRT_QUALCNT_0                : integer := 0;
+      ASRT_DELAY1                   : integer := 0;
+      DSRT_DELAY1                   : integer := 0;
+      ASRT_REMAP1                   : integer := 1;
+      DSRT_REMAP1                   : integer := 1;
+      DSRT_QUALCNT_1                : integer := 0;
+      ASRT_DELAY2                   : integer := 0;
+      DSRT_DELAY2                   : integer := 0;
+      ASRT_REMAP2                   : integer := 2;
+      DSRT_REMAP2                   : integer := 2;
+      DSRT_QUALCNT_2                : integer := 0;
+      ASRT_DELAY3                   : integer := 0;
+      DSRT_DELAY3                   : integer := 0;
+      ASRT_REMAP3                   : integer := 3;
+      DSRT_REMAP3                   : integer := 3;
+      DSRT_QUALCNT_3                : integer := 0;
+      ASRT_DELAY4                   : integer := 0;
+      DSRT_DELAY4                   : integer := 0;
+      ASRT_REMAP4                   : integer := 4;
+      DSRT_REMAP4                   : integer := 4;
+      DSRT_QUALCNT_4                : integer := 0;
+      ASRT_DELAY5                   : integer := 0;
+      DSRT_DELAY5                   : integer := 0;
+      ASRT_REMAP5                   : integer := 5;
+      DSRT_REMAP5                   : integer := 5;
+      DSRT_QUALCNT_5                : integer := 0;
+      ASRT_DELAY6                   : integer := 0;
+      DSRT_DELAY6                   : integer := 0;
+      ASRT_REMAP6                   : integer := 6;
+      DSRT_REMAP6                   : integer := 6;
+      DSRT_QUALCNT_6                : integer := 0;
+      ASRT_DELAY7                   : integer := 0;
+      DSRT_DELAY7                   : integer := 0;
+      ASRT_REMAP7                   : integer := 7;
+      DSRT_REMAP7                   : integer := 7;
+      DSRT_QUALCNT_7                : integer := 0;
+      ASRT_DELAY8                   : integer := 0;
+      DSRT_DELAY8                   : integer := 0;
+      ASRT_REMAP8                   : integer := 8;
+      DSRT_REMAP8                   : integer := 8;
+      DSRT_QUALCNT_8                : integer := 0;
+      ASRT_DELAY9                   : integer := 0;
+      DSRT_DELAY9                   : integer := 0;
+      ASRT_REMAP9                   : integer := 9;
+      DSRT_REMAP9                   : integer := 9;
+      DSRT_QUALCNT_9                : integer := 0
+    );
+    port (
+      av_address       : in  std_logic_vector(7 downto 0)  := (others => 'X'); -- address
+      av_readdata      : out std_logic_vector(31 downto 0);                    -- readdata
+      av_read          : in  std_logic                     := 'X';             -- read
+      av_writedata     : in  std_logic_vector(31 downto 0) := (others => 'X'); -- writedata
+      av_write         : in  std_logic                     := 'X';             -- write
+      irq              : out std_logic;                                        -- irq
+      clk              : in  std_logic                     := 'X';             -- clk
+      csr_reset        : in  std_logic                     := 'X';             -- reset
+      reset1_dsrt_qual : in  std_logic                     := 'X';             -- reset1_dsrt_qual
+      reset2_dsrt_qual : in  std_logic                     := 'X';             -- reset2_dsrt_qual
+      reset5_dsrt_qual : in  std_logic                     := 'X';             -- reset5_dsrt_qual
+      reset_in0        : in  std_logic                     := 'X';             -- reset
+      reset_out0       : out std_logic;                                        -- reset
+      reset_out1       : out std_logic;                                        -- reset
+      reset_out2       : out std_logic;                                        -- reset
+      reset_out3       : out std_logic;                                        -- reset
+      reset_out4       : out std_logic;                                        -- reset
+      reset_out5       : out std_logic;                                        -- reset
+      reset_out6       : out std_logic;                                        -- reset
+      reset_out7       : out std_logic                                         -- reset
+    );
+  end component ip_arria10_e2sg_jesd204b_rx_reset_seq_cmp;
+
+  component ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12_cmp is
+    port (
+      clock              : in  std_logic                     := 'X';             -- clk
+      reset              : in  std_logic                     := 'X';             -- reset
+      rx_analogreset     : out std_logic_vector(11 downto 0);                    -- rx_analogreset
+      rx_cal_busy        : in  std_logic_vector(11 downto 0) := (others => 'X'); -- rx_cal_busy
+      rx_digitalreset    : out std_logic_vector(11 downto 0);                    -- rx_digitalreset
+      rx_is_lockedtodata : in  std_logic_vector(11 downto 0) := (others => 'X'); -- rx_is_lockedtodata
+      rx_ready           : out std_logic_vector(11 downto 0)                     -- rx_ready
+    );
+  end component ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12_cmp;
+
+
+
+BEGIN
+
+  jesd204b_frame_clk <= rxframe_clk;
+  
+  gen_jesd204b_rx : IF g_direction = "RX_ONLY" GENERATE
+    gen_jesd204b_rx_channels : FOR I IN 0 TO g_nof_channels-1 GENERATE
+  
+      -----------------------------------------------------------------------------
+      -- The JESD204 IP (rx only)
+      -----------------------------------------------------------------------------
+--      u_ip_arria10_e2sg_jesd204b_rx : ip_arria10_e2sg_jesd204b_rx
+--      PORT MAP 
+--      (
+--        jesd204_0_alldev_lane_aligned_export        => dev_lane_aligned_arr(i),
+--        csr_cf_export                     => OPEN,
+--        csr_cs_export                     => OPEN,
+--        csr_f_export                      => OPEN, 
+--        csr_hd_export                     => OPEN,
+--        csr_k_export                      => OPEN,
+--        csr_l_export                      => OPEN, 
+--        csr_lane_powerdown_export         => rx_csr_lane_powerdown_arr(i downto i), 
+--        csr_m_export                      => OPEN, 
+--        csr_n_export                      => OPEN, 
+--        csr_np_export                     => OPEN, 
+--        csr_rx_testmode_export            => OPEN, 
+--        csr_s_export                      => OPEN, 
+--        dev_lane_aligned_export           => dev_lane_aligned_arr(i),           
+--        dev_sync_n_export                 => jesd204b_sync_n_arr(i),
+--        jesd204_rx_avs_chipselect         => '0', --jesd204b_mosi_arr(i).chipselect,
+--        jesd204_rx_avs_address            => jesd204b_mosi_arr(i).address(7 downto 0),
+--        jesd204_rx_avs_read               => jesd204b_mosi_arr(i).rd,
+--        jesd204_rx_avs_readdata           => jesd204b_miso_arr(i).rddata(31 downto 0),
+--        jesd204_rx_avs_waitrequest        => jesd204b_miso_arr(i).waitrequest,
+--        jesd204_rx_avs_write              => jesd204b_mosi_arr(i).wr,
+--        jesd204_rx_avs_writedata          => jesd204b_mosi_arr(i).wrdata(31 downto 0),
+--        jesd204_rx_avs_clk_clk            => mm_clk,
+--        jesd204_rx_avs_rst_n_reset_n      => rx_avs_rst_n_arr(i), -- Todo: Check if this could use mm_rst,
+--        jesd204_rx_dlb_data_export        => (others => '0'), -- debug/loopback testing
+--        jesd204_rx_dlb_data_valid_export  => (others => '0'), -- debug/loopback testing
+--        jesd204_rx_dlb_disperr_export     => (others => '0'), -- debug/loopback testing
+--        jesd204_rx_dlb_errdetect_export   => (others => '0'), -- debug/loopback testing
+--        jesd204_rx_dlb_kchar_data_export  => (others => '0'), -- debug/loopback testing
+--        jesd204_rx_frame_error_export     => '0',             -- jesd204_rx_frame_error.export
+--        jesd204_rx_int_irq                => OPEN,            -- Connected to status IO in example design 
+--        jesd204_rx_link_data              => jesd204b_rx_link_data_arr(i*32+31 DOWNTO i*32),
+--        jesd204_rx_link_valid             => jesd204b_rx_link_valid_arr(i),
+--        jesd204_rx_link_ready             => '1',
+--        pll_ref_clk_clk                   => jesd204b_refclk, -- Aka device_clock, same as reference for the link/frame clock IOPLL (Intel JESD204B-UG p63) 
+--        rx_analogreset_rx_analogreset     => rx_analogreset_arr(I DOWNTO I),
+--        rx_cal_busy_rx_cal_busy           => rx_cal_busy_arr(I DOWNTO I),
+--        rx_digitalreset_rx_digitalreset   => rx_digitalreset_arr(I DOWNTO I),
+--        rx_islockedtodata_rx_is_lockedtodata          => rx_islockedtodata_arr(I DOWNTO I),
+--        rx_serial_data_rx_serial_data     => serial_rx_arr(i downto i),
+--        rxlink_clk_clk                    => rxlink_clk,             -- TODO: still not clear if this should be 100MHz or 200MHz (Intel JESD204B-UG p63)
+--        rxlink_rst_n_reset_n              => rxlink_rst_n_arr(i),    -- Assoc with rxlink_clk (Intel JESD204B-UG p69)
+--        rxphy_clk_export                  => OPEN,                   -- Not used in Subclass 0 (Intel JESD204B-UG p63)
+--        sof_export                        => OPEN,
+--        somf_export                       => OPEN,
+--        sysref_export                     => jesd204b_sysref
+--      );
+
+    u_ip_arria10_e2sg_jesd204b_rx : ENTITY ip_arria10_e2sg_jesd204b_rx.ip_arria10_e2sg_jesd204b_rx
+      PORT MAP 
+      (
+        alldev_lane_aligned        => dev_lane_aligned_arr(i),
+        csr_cf                     => OPEN,
+        csr_cs                     => OPEN,
+        csr_f                      => OPEN, 
+        csr_hd                     => OPEN,
+        csr_k                      => OPEN,
+        csr_l                      => OPEN, 
+        csr_lane_powerdown         => rx_csr_lane_powerdown_arr(i downto i), 
+        csr_m                      => OPEN, 
+        csr_n                      => OPEN, 
+        csr_np                     => OPEN, 
+        csr_rx_testmode            => OPEN, 
+        csr_s                      => OPEN, 
+        dev_lane_aligned           => dev_lane_aligned_arr(i),           
+        dev_sync_n                 => jesd204b_sync_n_arr(i),
+        jesd204_rx_avs_chipselect         => '0', --jesd204b_mosi_arr(i).chipselect,
+        jesd204_rx_avs_address            => jesd204b_mosi_arr(i).address(7 downto 0),
+        jesd204_rx_avs_read               => jesd204b_mosi_arr(i).rd,
+        jesd204_rx_avs_readdata           => jesd204b_miso_arr(i).rddata(31 downto 0),
+        jesd204_rx_avs_waitrequest        => jesd204b_miso_arr(i).waitrequest,
+        jesd204_rx_avs_write              => jesd204b_mosi_arr(i).wr,
+        jesd204_rx_avs_writedata          => jesd204b_mosi_arr(i).wrdata(31 downto 0),
+        jesd204_rx_avs_clk                => mm_clk,
+        jesd204_rx_avs_rst_n              => rx_avs_rst_n_arr(i), -- Todo: Check if this could use mm_rst,
+        jesd204_rx_dlb_data               => (others => '0'), -- debug/loopback testing
+        jesd204_rx_dlb_data_valid  => (others => '0'), -- debug/loopback testing
+        jesd204_rx_dlb_disperr     => (others => '0'), -- debug/loopback testing
+        jesd204_rx_dlb_errdetect   => (others => '0'), -- debug/loopback testing
+        jesd204_rx_dlb_kchar_data  => (others => '0'), -- debug/loopback testing
+        jesd204_rx_frame_error     => '0',             -- jesd204_rx_frame_error.export
+        jesd204_rx_int             => OPEN,            -- Connected to status IO in example design 
+        jesd204_rx_link_data              => jesd204b_rx_link_data_arr(i*32+31 DOWNTO i*32),
+        jesd204_rx_link_valid             => jesd204b_rx_link_valid_arr(i),
+        jesd204_rx_link_ready             => '1',
+        pll_ref_clk                => jesd204b_refclk, -- Aka device_clock, same as reference for the link/frame clock IOPLL (Intel JESD204B-UG p63) 
+        rx_analogreset             => rx_analogreset_arr(I DOWNTO I),
+        rx_cal_busy                => rx_cal_busy_arr(I DOWNTO I),
+        rx_digitalreset            => rx_digitalreset_arr(I DOWNTO I),
+        rx_islockedtodata          => rx_islockedtodata_arr(I DOWNTO I),
+        rx_serial_data             => serial_rx_arr(i downto i),
+        rxlink_clk                 => rxlink_clk,             -- TODO: still not clear if this should be 100MHz or 200MHz (Intel JESD204B-UG p63)
+        rxlink_rst_n_reset_n       => rxlink_rst_n_arr(i),    -- Assoc with rxlink_clk (Intel JESD204B-UG p69)
+        rxphy_clk                  => OPEN,                   -- Not used in Subclass 0 (Intel JESD204B-UG p63)
+        sof                        => OPEN,
+        somf                       => OPEN,
+        sysref                     => jesd204b_sysref
+      );
+
+      -----------------------------------------------------------------------------
+      -- Reset sequencer for each channel
+      -----------------------------------------------------------------------------
+      u_ip_arria10_e2sg_jesd204b_rx_reset_seq : ENTITY ip_arria10_e2sg_jesd204b_rx_reset_seq.ip_arria10_e2sg_jesd204b_rx_reset_seq
+      PORT MAP (
+        av_address                 => reset_seq_mosi_arr(i).address(7 downto 0), -- in  std_logic_vector(7 downto 0)  := (others => '0'); 
+        av_readdata                => reset_seq_miso_arr(i).rddata(31 downto 0),
+        av_read                    => reset_seq_mosi_arr(i).rd,
+        av_writedata               => reset_seq_mosi_arr(i).wrdata(31 downto 0),
+        av_write                   => reset_seq_mosi_arr(i).wr,
+        irq                        => open,
+        clk                        => mm_clk,
+        csr_reset                  => mm_rst,
+        reset1_dsrt_qual           => core_pll_locked_reg,     -- Registered copy of the the core pll_locked
+        reset2_dsrt_qual           => '1',                     -- Tied to '1' in example design. Tx xcvr is not used.
+        reset5_dsrt_qual           => rx_xcvr_ready_in_arr(i),
+        reset_in0                  => mm_rst,
+        reset_out0                 => pll_reset_arr(i),        -- Use channel 0 to reset the core pll
+        reset_out1                 => xcvr_rst_arr(i),         -- Use channel 0 to reset the transceiver reset controller
+        reset_out2                 => open,
+        reset_out3                 => open,
+        reset_out4                 => open,
+        reset_out5                 => rx_avs_rst_arr(i),
+        reset_out6                 => rxlink_rst_arr(i),
+        reset_out7                 => rxframe_rst_arr(i)
+      );
+
+      rx_xcvr_ready_in_arr(i) <= rx_csr_lane_powerdown_arr(i) OR xcvr_rst_ctrl_rx_ready_arr(i);
+
+      -- Invert thr active-low resets
+      rx_avs_rst_n_arr(i) <= not rx_avs_rst_arr(i);
+      rxlink_rst_n_arr(i) <= not rxlink_rst_arr(i);
+      rxframe_rst_n_arr(i) <= not rxframe_rst_arr(i);
+     
+
+      -----------------------------------------------------------------------------
+      -- Minimal deframer (transport layer)
+      -----------------------------------------------------------------------------
+      p_deframer : PROCESS (rxframe_clk, rxframe_rst_n_arr(i))
+      BEGIN
+        IF rising_edge(rxframe_clk) THEN
+          IF rxframe_rst_n_arr(i) = '0' THEN
+            rx_src_out_arr(i).data(15 downto 0)  <= (OTHERS => '0');
+            f2_div1_cnt_arr(i) <= '0';
+          ELSE
+            rx_src_out_arr(i).valid <= jesd204b_rx_link_valid_arr(i);
+            IF jesd204b_rx_link_valid_arr(i) = '0' THEN
+              rx_src_out_arr(i).data(15 downto 0)  <= (OTHERS => '0');
+            ELSE
+              IF f2_div1_cnt_arr(i) = '1' THEN
+                rx_src_out_arr(i).data(15 downto 0)  <= jesd204b_rx_link_data_arr(32*i+15 downto 32*i);
+              ELSE
+                rx_src_out_arr(i).data(15 downto 0)  <= jesd204b_rx_link_data_arr(32*i+31 downto 32*i+16);
+              END IF; 
+              f2_div1_cnt_arr(i) <= not f2_div1_cnt_arr(i);
+            END IF; 
+          END IF;
+        END IF;
+      END PROCESS;
+
+    END GENERATE;  
+  
+    -- IOPLL in source synchronous or normal mode. (Intel JESD204B-UG p66)
+    u_ip_arria10_e2sg_jesd204b_rx_corepll : ENTITY ip_arria10_e2sg_jesd204b_rx_core_pll.ip_arria10_e2sg_jesd204b_rx_core_pll
+    PORT MAP (
+      locked                      => core_pll_locked,
+      outclk_0                    => rxlink_clk,
+      outclk_1                    => rxframe_clk,
+      refclk                      => jesd204b_refclk,
+      rst                         => pll_reset_arr(0)
+    );
+
+    p_pll_locked_reg : PROCESS (mm_rst, mm_clk)
+    BEGIN
+      IF mm_rst = '1' THEN
+        core_pll_locked_reg <= '0';
+      ELSE
+        IF rising_edge(mm_clk) THEN
+          core_pll_locked_reg <= core_pll_locked;
+        END IF;
+      END IF;
+    END PROCESS;
+ 
+
+    -- Transceiver reset controller. Use g_nof_channels out of 12 channels. Receive only
+    -- Clock set to 100MHz (use mm_clk)
+
+    u_ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control : ENTITY ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12.ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12
+    PORT MAP (
+      clock                        => mm_clk,
+      reset                        => xcvr_rst_arr(0),        -- From Reset Sequencer output1 as per example design
+      rx_analogreset               => rx_analogreset_arr,     -- output to reset RX PMA. Release before deasserting link and avs resets (Intel JESD204B-UG p70)
+      rx_cal_busy                  => rx_cal_busy_arr,        -- input from PHY
+      rx_digitalreset              => rx_digitalreset_arr,    -- output to reset RX PCS. Release before deasserting link and avs resets (Intel JESD204B-UG p70)
+      rx_is_lockedtodata           => rx_islockedtodata_arr, -- input from PHY
+      rx_ready                     => xcvr_rst_ctrl_rx_ready_arr     -- From example design: gate with rx_csr_lane_powerdown to reset transceiver
+    );
+
+  END GENERATE;
+
+  -----------------------------------------------------------------------------
+  -- MM bus mux
+  -----------------------------------------------------------------------------
+  u_common_mem_mux_mac : ENTITY common_lib.common_mem_mux
+  GENERIC MAP (    
+    g_nof_mosi    => g_nof_channels,
+    g_mult_addr_w => 8 
+  )
+  PORT MAP (
+    mosi     => jesd204b_mosi,
+    miso     => jesd204b_miso,
+    mosi_arr => jesd204b_mosi_arr,
+    miso_arr => jesd204b_miso_arr
+  );  
+
+  
+END str;
diff --git a/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx.ip b/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx.ip
new file mode 100644
index 0000000000000000000000000000000000000000..8751987d6b4a16e43796426ce916a880a92d9486
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx.ip
@@ -0,0 +1,3276 @@
+<?xml version="1.0" ?>
+<spirit:component xmlns:altera="http://www.altera.com/XMLSchema/IPXact/extensions" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009">
+  <spirit:vendor>Intel Corporation</spirit:vendor>
+  <spirit:library>ip_arria10_e2sg_jesd204b_rx</spirit:library>
+  <spirit:name>jesd204_0</spirit:name>
+  <spirit:version>18.0</spirit:version>
+  <spirit:busInterfaces>
+    <spirit:busInterface>
+      <spirit:name>alldev_lane_aligned</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>alldev_lane_aligned</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">input</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>csr_cf</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>csr_cf</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">output</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>csr_cs</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>csr_cs</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">output</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>csr_f</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>csr_f</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">output</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>csr_hd</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>csr_hd</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">output</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>csr_k</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>csr_k</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">output</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>csr_l</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>csr_l</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">output</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>csr_lane_powerdown</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>csr_lane_powerdown</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">output</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>csr_m</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>csr_m</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">output</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>csr_n</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>csr_n</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">output</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>csr_np</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>csr_np</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">output</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>csr_rx_testmode</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>csr_rx_testmode</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">output</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>csr_s</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>csr_s</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">output</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>dev_lane_aligned</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>dev_lane_aligned</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">output</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>dev_sync_n</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>dev_sync_n</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">output</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>jesd204_rx_avs</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="avalon" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>chipselect</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>jesd204_rx_avs_chipselect</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>address</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>jesd204_rx_avs_address</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>read</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>jesd204_rx_avs_read</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>readdata</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>jesd204_rx_avs_readdata</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>waitrequest</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>jesd204_rx_avs_waitrequest</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>write</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>jesd204_rx_avs_write</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>writedata</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>jesd204_rx_avs_writedata</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>addressAlignment</spirit:name>
+          <spirit:displayName>Slave addressing</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="addressAlignment">DYNAMIC</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>addressGroup</spirit:name>
+          <spirit:displayName>Address group</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="addressGroup">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>addressSpan</spirit:name>
+          <spirit:displayName>Address span</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="addressSpan">1024</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>addressUnits</spirit:name>
+          <spirit:displayName>Address units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="addressUnits">WORDS</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>alwaysBurstMaxBurst</spirit:name>
+          <spirit:displayName>Always burst maximum burst</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="alwaysBurstMaxBurst">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>Associated clock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock">jesd204_rx_avs_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>Associated reset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset">jesd204_rx_avs_rst_n</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>bitsPerSymbol</spirit:name>
+          <spirit:displayName>Bits per symbol</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="bitsPerSymbol">8</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>bridgedAddressOffset</spirit:name>
+          <spirit:displayName>Bridged Address Offset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="bridgedAddressOffset">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>bridgesToMaster</spirit:name>
+          <spirit:displayName>Bridges to master</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="bridgesToMaster"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>burstOnBurstBoundariesOnly</spirit:name>
+          <spirit:displayName>Burst on burst boundaries only</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="burstOnBurstBoundariesOnly">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>burstcountUnits</spirit:name>
+          <spirit:displayName>Burstcount units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="burstcountUnits">WORDS</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>constantBurstBehavior</spirit:name>
+          <spirit:displayName>Constant burst behavior</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="constantBurstBehavior">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>explicitAddressSpan</spirit:name>
+          <spirit:displayName>Explicit address span</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="explicitAddressSpan">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>holdTime</spirit:name>
+          <spirit:displayName>Hold</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="holdTime">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>interleaveBursts</spirit:name>
+          <spirit:displayName>Interleave bursts</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="interleaveBursts">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>isBigEndian</spirit:name>
+          <spirit:displayName>Big endian</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="isBigEndian">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>isFlash</spirit:name>
+          <spirit:displayName>Flash memory</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="isFlash">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>isMemoryDevice</spirit:name>
+          <spirit:displayName>Memory device</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="isMemoryDevice">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>isNonVolatileStorage</spirit:name>
+          <spirit:displayName>Non-volatile storage</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="isNonVolatileStorage">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>linewrapBursts</spirit:name>
+          <spirit:displayName>Linewrap bursts</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="linewrapBursts">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>maximumPendingReadTransactions</spirit:name>
+          <spirit:displayName>Maximum pending read transactions</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="maximumPendingReadTransactions">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>maximumPendingWriteTransactions</spirit:name>
+          <spirit:displayName>Maximum pending write transactions</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="maximumPendingWriteTransactions">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>minimumReadLatency</spirit:name>
+          <spirit:displayName>minimumReadLatency</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="minimumReadLatency">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>minimumResponseLatency</spirit:name>
+          <spirit:displayName>Minimum response latency</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="minimumResponseLatency">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>minimumUninterruptedRunLength</spirit:name>
+          <spirit:displayName>Minimum uninterrupted run length</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="minimumUninterruptedRunLength">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>printableDevice</spirit:name>
+          <spirit:displayName>Can receive stdout/stderr</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="printableDevice">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>readLatency</spirit:name>
+          <spirit:displayName>Read latency</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="readLatency">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>readWaitStates</spirit:name>
+          <spirit:displayName>Read wait states</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="readWaitStates">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>readWaitTime</spirit:name>
+          <spirit:displayName>Read wait</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="readWaitTime">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>registerIncomingSignals</spirit:name>
+          <spirit:displayName>Register incoming signals</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="registerIncomingSignals">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>registerOutgoingSignals</spirit:name>
+          <spirit:displayName>Register outgoing signals</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="registerOutgoingSignals">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>setupTime</spirit:name>
+          <spirit:displayName>Setup</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="setupTime">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>timingUnits</spirit:name>
+          <spirit:displayName>Timing units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="timingUnits">Cycles</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>transparentBridge</spirit:name>
+          <spirit:displayName>Transparent bridge</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="transparentBridge">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>waitrequestAllowance</spirit:name>
+          <spirit:displayName>Waitrequest allowance</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="waitrequestAllowance">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>wellBehavedWaitrequest</spirit:name>
+          <spirit:displayName>Well-behaved waitrequest</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="wellBehavedWaitrequest">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>writeLatency</spirit:name>
+          <spirit:displayName>Write latency</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="writeLatency">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>writeWaitStates</spirit:name>
+          <spirit:displayName>Write wait states</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="writeWaitStates">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>writeWaitTime</spirit:name>
+          <spirit:displayName>Write wait</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="writeWaitTime">0</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>embeddedsw.configuration.isFlash</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="embeddedsw.configuration.isFlash">0</spirit:value>
+            </spirit:parameter>
+            <spirit:parameter>
+              <spirit:name>embeddedsw.configuration.isMemoryDevice</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="embeddedsw.configuration.isMemoryDevice">0</spirit:value>
+            </spirit:parameter>
+            <spirit:parameter>
+              <spirit:name>embeddedsw.configuration.isNonVolatileStorage</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="embeddedsw.configuration.isNonVolatileStorage">0</spirit:value>
+            </spirit:parameter>
+            <spirit:parameter>
+              <spirit:name>embeddedsw.configuration.isPrintableDevice</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="embeddedsw.configuration.isPrintableDevice">0</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>jesd204_rx_avs_clk</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="clock" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>clk</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>jesd204_rx_avs_clk</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>clockRate</spirit:name>
+          <spirit:displayName>Clock rate</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="clockRate">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>externallyDriven</spirit:name>
+          <spirit:displayName>Externally driven</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="externallyDriven">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ptfSchematicName</spirit:name>
+          <spirit:displayName>PTF schematic name</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="ptfSchematicName"></spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>jesd204_rx_avs_rst_n</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="reset" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>reset_n</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>jesd204_rx_avs_rst_n</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>Associated clock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock">jesd204_rx_avs_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>synchronousEdges</spirit:name>
+          <spirit:displayName>Synchronous edges</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="synchronousEdges">DEASSERT</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>jesd204_rx_dlb_data</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>jesd204_rx_dlb_data</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">input</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>jesd204_rx_dlb_data_valid</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>jesd204_rx_dlb_data_valid</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">input</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>jesd204_rx_dlb_disperr</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>jesd204_rx_dlb_disperr</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">input</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>jesd204_rx_dlb_errdetect</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>jesd204_rx_dlb_errdetect</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">input</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>jesd204_rx_dlb_kchar_data</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>jesd204_rx_dlb_kchar_data</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">input</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>jesd204_rx_frame_error</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>jesd204_rx_frame_error</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">input</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>jesd204_rx_int</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="interrupt" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>irq</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>jesd204_rx_int</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedAddressablePoint</spirit:name>
+          <spirit:displayName>Associated addressable interface</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedAddressablePoint">ip_arria10_e2sg_jesd204b_rx.jesd204_rx_avs</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>Associated clock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock">jesd204_rx_avs_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>Associated reset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset">jesd204_rx_avs_rst_n</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>bridgedReceiverOffset</spirit:name>
+          <spirit:displayName>Bridged receiver offset</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="bridgedReceiverOffset">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>bridgesToReceiver</spirit:name>
+          <spirit:displayName>Bridges to receiver</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="bridgesToReceiver"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>irqScheme</spirit:name>
+          <spirit:displayName>Interrupt scheme</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="irqScheme">NONE</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>jesd204_rx_link</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="avalon_streaming" spirit:version="18.0"></spirit:busType>
+      <spirit:master></spirit:master>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>data</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>jesd204_rx_link_data</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>valid</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>jesd204_rx_link_valid</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>ready</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>jesd204_rx_link_ready</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock">rxlink_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset">rxlink_rst_n</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>beatsPerCycle</spirit:name>
+          <spirit:displayName>Beats Per Cycle</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="beatsPerCycle">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>dataBitsPerSymbol</spirit:name>
+          <spirit:displayName>Data bits per symbol</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="dataBitsPerSymbol">32</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>emptyWithinPacket</spirit:name>
+          <spirit:displayName>emptyWithinPacket</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="emptyWithinPacket">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>errorDescriptor</spirit:name>
+          <spirit:displayName>Error descriptor</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="errorDescriptor"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>firstSymbolInHighOrderBits</spirit:name>
+          <spirit:displayName>First Symbol In High-Order Bits</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="firstSymbolInHighOrderBits">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>highOrderSymbolAtMSB</spirit:name>
+          <spirit:displayName>highOrderSymbolAtMSB</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="highOrderSymbolAtMSB">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>maxChannel</spirit:name>
+          <spirit:displayName>Maximum channel</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="maxChannel">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>packetDescription</spirit:name>
+          <spirit:displayName>Packet description </spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="packetDescription"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>readyAllowance</spirit:name>
+          <spirit:displayName>Ready allowance</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="readyAllowance">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>readyLatency</spirit:name>
+          <spirit:displayName>Ready latency</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="readyLatency">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>symbolsPerBeat</spirit:name>
+          <spirit:displayName>Symbols per beat  </spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="symbolsPerBeat">1</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>pll_ref_clk</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="clock" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>clk</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>pll_ref_clk</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>clockRate</spirit:name>
+          <spirit:displayName>Clock rate</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="clockRate">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>externallyDriven</spirit:name>
+          <spirit:displayName>Externally driven</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="externallyDriven">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ptfSchematicName</spirit:name>
+          <spirit:displayName>PTF schematic name</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="ptfSchematicName"></spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>rx_analogreset</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>rx_analogreset</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>rx_analogreset</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">input</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>rx_cal_busy</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>rx_cal_busy</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>rx_cal_busy</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">output</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>rx_digitalreset</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>rx_digitalreset</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>rx_digitalreset</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">input</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>rx_islockedtodata</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>rx_is_lockedtodata</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>rx_islockedtodata</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">output</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>rx_serial_data</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>rx_serial_data</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>rx_serial_data</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">input</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>rxlink_clk</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="clock" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>clk</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>rxlink_clk</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>clockRate</spirit:name>
+          <spirit:displayName>Clock rate</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="clockRate">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>externallyDriven</spirit:name>
+          <spirit:displayName>Externally driven</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="externallyDriven">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ptfSchematicName</spirit:name>
+          <spirit:displayName>PTF schematic name</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="ptfSchematicName"></spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>rxlink_rst_n</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="reset" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>reset_n</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>rxlink_rst_n_reset_n</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>Associated clock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock">rxlink_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>synchronousEdges</spirit:name>
+          <spirit:displayName>Synchronous edges</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="synchronousEdges">DEASSERT</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>rxphy_clk</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>rxphy_clk</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">output</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>sof</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>sof</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">output</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>somf</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>somf</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">output</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>sysref</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>export</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>sysref</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">input</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+  </spirit:busInterfaces>
+  <spirit:model>
+    <spirit:views>
+      <spirit:view>
+        <spirit:name>QUARTUS_SYNTH</spirit:name>
+        <spirit:envIdentifier>:quartus.altera.com:</spirit:envIdentifier>
+        <spirit:modelName>altera_jesd204</spirit:modelName>
+        <spirit:fileSetRef>
+          <spirit:localName>QUARTUS_SYNTH</spirit:localName>
+        </spirit:fileSetRef>
+      </spirit:view>
+    </spirit:views>
+    <spirit:ports>
+      <spirit:port>
+        <spirit:name>alldev_lane_aligned</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>csr_cf</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>4</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>csr_cs</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>1</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>csr_f</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>7</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>csr_hd</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>csr_k</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>4</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>csr_l</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>4</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>csr_lane_powerdown</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>csr_m</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>7</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>csr_n</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>4</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>csr_np</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>4</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>csr_rx_testmode</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>3</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>csr_s</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>4</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>dev_lane_aligned</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>dev_sync_n</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>jesd204_rx_avs_chipselect</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>jesd204_rx_avs_address</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>7</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>jesd204_rx_avs_read</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>jesd204_rx_avs_readdata</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>31</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>jesd204_rx_avs_waitrequest</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>jesd204_rx_avs_write</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>jesd204_rx_avs_writedata</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>31</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>jesd204_rx_avs_clk</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>jesd204_rx_avs_rst_n</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>jesd204_rx_dlb_data</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>31</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>jesd204_rx_dlb_data_valid</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>jesd204_rx_dlb_disperr</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>3</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>jesd204_rx_dlb_errdetect</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>3</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>jesd204_rx_dlb_kchar_data</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>3</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>jesd204_rx_frame_error</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>jesd204_rx_int</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>jesd204_rx_link_data</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>31</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>jesd204_rx_link_valid</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>jesd204_rx_link_ready</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>pll_ref_clk</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>rx_analogreset</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>rx_cal_busy</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>rx_digitalreset</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>rx_islockedtodata</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>rx_serial_data</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>rxlink_clk</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>rxlink_rst_n_reset_n</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>rxphy_clk</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>sof</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>3</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>somf</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>3</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>sysref</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+    </spirit:ports>
+  </spirit:model>
+  <spirit:vendorExtensions>
+    <altera:entity_info>
+      <spirit:vendor>Intel Corporation</spirit:vendor>
+      <spirit:library>ip_arria10_e2sg_jesd204b_rx</spirit:library>
+      <spirit:name>altera_jesd204</spirit:name>
+      <spirit:version>18.0</spirit:version>
+    </altera:entity_info>
+    <altera:altera_module_parameters>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>wrapper_opt</spirit:name>
+          <spirit:displayName>Jesd204b wrapper</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="wrapper_opt">base_phy</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>sdc_constraint</spirit:name>
+          <spirit:displayName>Set constraint for sdc</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="sdc_constraint">1.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DEVICE_FAMILY</spirit:name>
+          <spirit:displayName>Device family</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="DEVICE_FAMILY">Arria 10</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>part_trait_dp</spirit:name>
+          <spirit:displayName>Device Part</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="part_trait_dp">10AX115U3F45E2SG</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DATA_PATH</spirit:name>
+          <spirit:displayName>Data path</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="DATA_PATH">RX</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>SUBCLASSV</spirit:name>
+          <spirit:displayName>Jesd204b subclass</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="SUBCLASSV">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>lane_rate</spirit:name>
+          <spirit:displayName>Data rate</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="lane_rate">4000.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>PCS_CONFIG</spirit:name>
+          <spirit:displayName>PCS Option</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="PCS_CONFIG">JESD_PCS_CFG1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_type</spirit:name>
+          <spirit:displayName>PLL Type</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="pll_type">CMU</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>bonded_mode</spirit:name>
+          <spirit:displayName>Bonding Mode </spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="bonded_mode">bonded</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>REFCLK_FREQ</spirit:name>
+          <spirit:displayName>PLL/CDR Reference Clock Frequency</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="REFCLK_FREQ">200.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_analog_voltage</spirit:name>
+          <spirit:displayName>VCCR_GXB and VCCT_GXB supply voltage for the Transceiver</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_analog_voltage">1_0V</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>bitrev_en</spirit:name>
+          <spirit:displayName>Enable Bit reversal and Byte reversal</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="bitrev_en">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_reconfig_enable</spirit:name>
+          <spirit:displayName>Enable Transceiver Dynamic Reconfiguration</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="pll_reconfig_enable">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>rcfg_jtag_enable</spirit:name>
+          <spirit:displayName>Enable Altera Debug Master Endpoint</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="rcfg_jtag_enable">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>rcfg_shared</spirit:name>
+          <spirit:displayName>Share Reconfiguration Interface</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="rcfg_shared">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>rcfg_enable_split_interface</spirit:name>
+          <spirit:displayName>Provide Separate Reconfiguration Interface for Each Channel</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="rcfg_enable_split_interface">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>set_capability_reg_enable</spirit:name>
+          <spirit:displayName>Enable Capability Registers</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="set_capability_reg_enable">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>set_user_identifier</spirit:name>
+          <spirit:displayName>Set user-defined IP identifier</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="set_user_identifier">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>set_csr_soft_logic_enable</spirit:name>
+          <spirit:displayName>Enable Control and Status Registers</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="set_csr_soft_logic_enable">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>set_prbs_soft_logic_enable</spirit:name>
+          <spirit:displayName>Enable PRBS Soft Accumulators</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="set_prbs_soft_logic_enable">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>L</spirit:name>
+          <spirit:displayName>Lanes per converter device (L)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="L">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>M</spirit:name>
+          <spirit:displayName>Converters per device (M)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="M">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>GUI_EN_CFG_F</spirit:name>
+          <spirit:displayName>Enable manual F configuration</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="GUI_EN_CFG_F">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>GUI_CFG_F</spirit:name>
+          <spirit:displayName>Octets per frame (F)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="GUI_CFG_F">2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>F</spirit:name>
+          <spirit:displayName>Octets per frame (F)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="F">2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>N</spirit:name>
+          <spirit:displayName>Converter resolution (N)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="N">14</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>N_PRIME</spirit:name>
+          <spirit:displayName>Transmitted bits per sample (N')</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="N_PRIME">16</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>S</spirit:name>
+          <spirit:displayName>Samples per converter per frame (S)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="S">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>K</spirit:name>
+          <spirit:displayName>Frames per multiframe (K)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="K">32</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>SCR</spirit:name>
+          <spirit:displayName>Enable scramble (SCR)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="SCR">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>CS</spirit:name>
+          <spirit:displayName>Control Bits (CS)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="CS">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>CF</spirit:name>
+          <spirit:displayName>Control Words (CF)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="CF">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>HD</spirit:name>
+          <spirit:displayName>High Density user data format (HD)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="HD">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ECC_EN</spirit:name>
+          <spirit:displayName>Enable Error Code Correction (ECC_EN)</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="ECC_EN">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DLB_TEST</spirit:name>
+          <spirit:displayName>Enable Digital Loop Back Test (DLB_TEST)</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="DLB_TEST">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>PHADJ</spirit:name>
+          <spirit:displayName>Phase adjustment request (PHADJ)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="PHADJ">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ADJCNT</spirit:name>
+          <spirit:displayName>Adjustment resolution step count (ADJCNT)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ADJCNT">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ADJDIR</spirit:name>
+          <spirit:displayName>Direction of adjustment (ADJDIR)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ADJDIR">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>OPTIMIZE</spirit:name>
+          <spirit:displayName>CSR Programmability</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="OPTIMIZE">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DID</spirit:name>
+          <spirit:displayName>Device ID</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DID">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>BID</spirit:name>
+          <spirit:displayName>Bank ID</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="BID">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>LID0</spirit:name>
+          <spirit:displayName>Lane0 ID</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="LID0">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>FCHK0</spirit:name>
+          <spirit:displayName>Lane0 checksum</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="FCHK0">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>LID1</spirit:name>
+          <spirit:displayName>Lane1 ID</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="LID1">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>FCHK1</spirit:name>
+          <spirit:displayName>Lane1 checksum</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="FCHK1">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>LID2</spirit:name>
+          <spirit:displayName>Lane2 ID</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="LID2">2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>FCHK2</spirit:name>
+          <spirit:displayName>Lane2 checksum</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="FCHK2">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>LID3</spirit:name>
+          <spirit:displayName>Lane3 ID</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="LID3">3</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>FCHK3</spirit:name>
+          <spirit:displayName>Lane3 checksum</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="FCHK3">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>LID4</spirit:name>
+          <spirit:displayName>Lane4 ID</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="LID4">4</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>FCHK4</spirit:name>
+          <spirit:displayName>Lane4 checksum</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="FCHK4">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>LID5</spirit:name>
+          <spirit:displayName>Lane5 ID</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="LID5">5</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>FCHK5</spirit:name>
+          <spirit:displayName>Lane5 checksum</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="FCHK5">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>LID6</spirit:name>
+          <spirit:displayName>Lane6 ID</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="LID6">6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>FCHK6</spirit:name>
+          <spirit:displayName>Lane6 checksum</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="FCHK6">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>LID7</spirit:name>
+          <spirit:displayName>Lane7 ID</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="LID7">7</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>FCHK7</spirit:name>
+          <spirit:displayName>Lane7 checksum</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="FCHK7">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>d_refclk_freq</spirit:name>
+          <spirit:displayName>PLL/CDR Reference Clock Frequency</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="d_refclk_freq">200.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>JESDV</spirit:name>
+          <spirit:displayName>JESDV</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="JESDV">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>PMA_WIDTH</spirit:name>
+          <spirit:displayName>PMA_WIDTH</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="PMA_WIDTH">32</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>SER_SIZE</spirit:name>
+          <spirit:displayName>SER_SIZE</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="SER_SIZE">4</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>FK</spirit:name>
+          <spirit:displayName>FK</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="FK">64</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>RES1</spirit:name>
+          <spirit:displayName>RES1</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="RES1">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>RES2</spirit:name>
+          <spirit:displayName>RES2</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="RES2">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>BIT_REVERSAL</spirit:name>
+          <spirit:displayName>BIT_REVERSAL</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="BIT_REVERSAL">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>BYTE_REVERSAL</spirit:name>
+          <spirit:displayName>BYTE_REVERSAL</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="BYTE_REVERSAL">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ALIGNMENT_PATTERN</spirit:name>
+          <spirit:displayName>ALIGNMENT_PATTERN</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ALIGNMENT_PATTERN">658812</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>PULSE_WIDTH</spirit:name>
+          <spirit:displayName>PULSE_WIDTH</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="PULSE_WIDTH">2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>LS_FIFO_DEPTH</spirit:name>
+          <spirit:displayName>LS_FIFO_DEPTH</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="LS_FIFO_DEPTH">32</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>LS_FIFO_WIDTHU</spirit:name>
+          <spirit:displayName>LS_FIFO_WIDTHU</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="LS_FIFO_WIDTHU">5</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>UNUSED_TX_PARALLEL_WIDTH</spirit:name>
+          <spirit:displayName>UNUSED_TX_PARALLEL_WIDTH</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="UNUSED_TX_PARALLEL_WIDTH">92</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>UNUSED_RX_PARALLEL_WIDTH</spirit:name>
+          <spirit:displayName>UNUSED_RX_PARALLEL_WIDTH</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="UNUSED_RX_PARALLEL_WIDTH">72</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>XCVR_PLL_LOCKED_WIDTH</spirit:name>
+          <spirit:displayName>XCVR_PLL_LOCKED_WIDTH</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="XCVR_PLL_LOCKED_WIDTH">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>RECONFIG_ADDRESS_WIDTH</spirit:name>
+          <spirit:displayName>RECONFIG_ADDRESS_WIDTH</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="RECONFIG_ADDRESS_WIDTH">10</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DEPTH_PIPE</spirit:name>
+          <spirit:displayName>Pipeline stages for link_clk domain reset signal</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DEPTH_PIPE">3</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>xcvr_ip</spirit:name>
+          <spirit:displayName>xcvr_ip</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="xcvr_ip">ltile</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>die_types</spirit:name>
+          <spirit:displayName>die_types</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="die_types"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>die_revisions</spirit:name>
+          <spirit:displayName>die_revisions</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="die_revisions"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>support_c1</spirit:name>
+          <spirit:displayName>support_c1</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="support_c1">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>support_c2</spirit:name>
+          <spirit:displayName>support_c2</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="support_c2">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>support_c3</spirit:name>
+          <spirit:displayName>support_c3</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="support_c3">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>crete_tile_status</spirit:name>
+          <spirit:displayName>Transceiver Tile</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="crete_tile_status">ltile</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_user_crete_tile</spirit:name>
+          <spirit:displayName>Transceiver Tile</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_user_crete_tile">etile</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>TEST_COMPONENTS_EN</spirit:name>
+          <spirit:displayName>Add Test Components</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="TEST_COMPONENTS_EN">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>TERMINATE_RECONFIG_EN</spirit:name>
+          <spirit:displayName>Terminate Reconfig Signals</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="TERMINATE_RECONFIG_EN">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ED_TYPE</spirit:name>
+          <spirit:displayName>Select Design</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="ED_TYPE">NONE</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ED_FILESET_SIM</spirit:name>
+          <spirit:displayName>Simulation</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="ED_FILESET_SIM">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ED_FILESET_SYNTH</spirit:name>
+          <spirit:displayName>Synthesis</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="ED_FILESET_SYNTH">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ED_HDL_FORMAT_SIM</spirit:name>
+          <spirit:displayName>HDL Format</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="ED_HDL_FORMAT_SIM">VERILOG</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ED_SIM_PAT_TESTMODE</spirit:name>
+          <spirit:displayName>Test pattern</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="ED_SIM_PAT_TESTMODE">PRBS_7</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ED_HDL_FORMAT_SYNTH</spirit:name>
+          <spirit:displayName>HDL Format</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="ED_HDL_FORMAT_SYNTH">VERILOG</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ED_DEV_KIT</spirit:name>
+          <spirit:displayName>Select Board</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="ED_DEV_KIT">NONE</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>GUI_ED_DEV_KIT</spirit:name>
+          <spirit:displayName>Select Board</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="GUI_ED_DEV_KIT">None</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ED_SINGLE_REFCLK</spirit:name>
+          <spirit:displayName>Single reference clock (Advanced users only. Not recommended.)</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="ED_SINGLE_REFCLK">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ED_3WIRE_SPI</spirit:name>
+          <spirit:displayName>Generate 3-wire SPI module</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="ED_3WIRE_SPI">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>SELECT_CUSTOM_DEVICE</spirit:name>
+          <spirit:displayName>Change Target Device</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="SELECT_CUSTOM_DEVICE">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>AUTO_DEVICE</spirit:name>
+          <spirit:displayName>Auto DEVICE</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="AUTO_DEVICE">10AX115U3F45E2SG</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>AUTO_DEVICE_SPEEDGRADE</spirit:name>
+          <spirit:displayName>Auto DEVICE_SPEEDGRADE</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="AUTO_DEVICE_SPEEDGRADE">1</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </altera:altera_module_parameters>
+    <altera:altera_system_parameters>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>device</spirit:name>
+          <spirit:displayName>Device</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>deviceFamily</spirit:name>
+          <spirit:displayName>Device family</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="deviceFamily">Arria 10</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>deviceSpeedGrade</spirit:name>
+          <spirit:displayName>Device Speed Grade</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="deviceSpeedGrade">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>generationId</spirit:name>
+          <spirit:displayName>Generation Id</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="generationId">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>bonusData</spirit:name>
+          <spirit:displayName>bonusData</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="bonusData">bonusData 
+{
+   element jesd204_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hideFromIPCatalog</spirit:name>
+          <spirit:displayName>Hide from IP Catalog</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="hideFromIPCatalog">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>lockedInterfaceDefinition</spirit:name>
+          <spirit:displayName>lockedInterfaceDefinition</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="lockedInterfaceDefinition"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>systemInfos</spirit:name>
+          <spirit:displayName>systemInfos</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos>
+        <entry>
+            <key>jesd204_rx_avs</key>
+            <value>
+                <connectionPointName>jesd204_rx_avs</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>ADDRESS_MAP</key>
+                        <value>&lt;address-map&gt;&lt;slave name='jesd204_rx_avs' start='0x0' end='0x400' datawidth='32' /&gt;&lt;/address-map&gt;</value>
+                    </entry>
+                    <entry>
+                        <key>ADDRESS_WIDTH</key>
+                        <value>10</value>
+                    </entry>
+                    <entry>
+                        <key>MAX_SLAVE_DATA_WIDTH</key>
+                        <value>32</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+    </connPtSystemInfos>
+</systemInfosDefinition>]]></spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </altera:altera_system_parameters>
+    <altera:altera_interface_boundary>
+      <altera:interface_mapping altera:name="alldev_lane_aligned" altera:internal="jesd204_0.alldev_lane_aligned" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="alldev_lane_aligned" altera:internal="alldev_lane_aligned"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="csr_cf" altera:internal="jesd204_0.csr_cf" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="csr_cf" altera:internal="csr_cf"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="csr_cs" altera:internal="jesd204_0.csr_cs" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="csr_cs" altera:internal="csr_cs"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="csr_f" altera:internal="jesd204_0.csr_f" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="csr_f" altera:internal="csr_f"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="csr_hd" altera:internal="jesd204_0.csr_hd" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="csr_hd" altera:internal="csr_hd"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="csr_k" altera:internal="jesd204_0.csr_k" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="csr_k" altera:internal="csr_k"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="csr_l" altera:internal="jesd204_0.csr_l" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="csr_l" altera:internal="csr_l"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="csr_lane_powerdown" altera:internal="jesd204_0.csr_lane_powerdown" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="csr_lane_powerdown" altera:internal="csr_lane_powerdown"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="csr_m" altera:internal="jesd204_0.csr_m" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="csr_m" altera:internal="csr_m"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="csr_n" altera:internal="jesd204_0.csr_n" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="csr_n" altera:internal="csr_n"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="csr_np" altera:internal="jesd204_0.csr_np" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="csr_np" altera:internal="csr_np"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="csr_rx_testmode" altera:internal="jesd204_0.csr_rx_testmode" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="csr_rx_testmode" altera:internal="csr_rx_testmode"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="csr_s" altera:internal="jesd204_0.csr_s" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="csr_s" altera:internal="csr_s"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="csr_tx_testmode" altera:internal="jesd204_0.csr_tx_testmode"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="csr_tx_testpattern_a" altera:internal="jesd204_0.csr_tx_testpattern_a"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="csr_tx_testpattern_b" altera:internal="jesd204_0.csr_tx_testpattern_b"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="csr_tx_testpattern_c" altera:internal="jesd204_0.csr_tx_testpattern_c"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="csr_tx_testpattern_d" altera:internal="jesd204_0.csr_tx_testpattern_d"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="dev_lane_aligned" altera:internal="jesd204_0.dev_lane_aligned" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="dev_lane_aligned" altera:internal="dev_lane_aligned"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="dev_sync_n" altera:internal="jesd204_0.dev_sync_n" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="dev_sync_n" altera:internal="dev_sync_n"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="jesd204_rx_avs" altera:internal="jesd204_0.jesd204_rx_avs" altera:type="avalon" altera:dir="end">
+        <altera:port_mapping altera:name="jesd204_rx_avs_address" altera:internal="jesd204_rx_avs_address"></altera:port_mapping>
+        <altera:port_mapping altera:name="jesd204_rx_avs_chipselect" altera:internal="jesd204_rx_avs_chipselect"></altera:port_mapping>
+        <altera:port_mapping altera:name="jesd204_rx_avs_read" altera:internal="jesd204_rx_avs_read"></altera:port_mapping>
+        <altera:port_mapping altera:name="jesd204_rx_avs_readdata" altera:internal="jesd204_rx_avs_readdata"></altera:port_mapping>
+        <altera:port_mapping altera:name="jesd204_rx_avs_waitrequest" altera:internal="jesd204_rx_avs_waitrequest"></altera:port_mapping>
+        <altera:port_mapping altera:name="jesd204_rx_avs_write" altera:internal="jesd204_rx_avs_write"></altera:port_mapping>
+        <altera:port_mapping altera:name="jesd204_rx_avs_writedata" altera:internal="jesd204_rx_avs_writedata"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="jesd204_rx_avs_clk" altera:internal="jesd204_0.jesd204_rx_avs_clk" altera:type="clock" altera:dir="end">
+        <altera:port_mapping altera:name="jesd204_rx_avs_clk" altera:internal="jesd204_rx_avs_clk"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="jesd204_rx_avs_rst_n" altera:internal="jesd204_0.jesd204_rx_avs_rst_n" altera:type="reset" altera:dir="end">
+        <altera:port_mapping altera:name="jesd204_rx_avs_rst_n" altera:internal="jesd204_rx_avs_rst_n"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="jesd204_rx_dlb_data" altera:internal="jesd204_0.jesd204_rx_dlb_data" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="jesd204_rx_dlb_data" altera:internal="jesd204_rx_dlb_data"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="jesd204_rx_dlb_data_valid" altera:internal="jesd204_0.jesd204_rx_dlb_data_valid" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="jesd204_rx_dlb_data_valid" altera:internal="jesd204_rx_dlb_data_valid"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="jesd204_rx_dlb_disperr" altera:internal="jesd204_0.jesd204_rx_dlb_disperr" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="jesd204_rx_dlb_disperr" altera:internal="jesd204_rx_dlb_disperr"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="jesd204_rx_dlb_errdetect" altera:internal="jesd204_0.jesd204_rx_dlb_errdetect" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="jesd204_rx_dlb_errdetect" altera:internal="jesd204_rx_dlb_errdetect"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="jesd204_rx_dlb_kchar_data" altera:internal="jesd204_0.jesd204_rx_dlb_kchar_data" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="jesd204_rx_dlb_kchar_data" altera:internal="jesd204_rx_dlb_kchar_data"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="jesd204_rx_frame_error" altera:internal="jesd204_0.jesd204_rx_frame_error" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="jesd204_rx_frame_error" altera:internal="jesd204_rx_frame_error"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="jesd204_rx_int" altera:internal="jesd204_0.jesd204_rx_int" altera:type="interrupt" altera:dir="end">
+        <altera:port_mapping altera:name="jesd204_rx_int" altera:internal="jesd204_rx_int"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="jesd204_rx_link" altera:internal="jesd204_0.jesd204_rx_link" altera:type="avalon_streaming" altera:dir="start">
+        <altera:port_mapping altera:name="jesd204_rx_link_data" altera:internal="jesd204_rx_link_data"></altera:port_mapping>
+        <altera:port_mapping altera:name="jesd204_rx_link_ready" altera:internal="jesd204_rx_link_ready"></altera:port_mapping>
+        <altera:port_mapping altera:name="jesd204_rx_link_valid" altera:internal="jesd204_rx_link_valid"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="jesd204_tx_avs" altera:internal="jesd204_0.jesd204_tx_avs"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="jesd204_tx_avs_clk" altera:internal="jesd204_0.jesd204_tx_avs_clk"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="jesd204_tx_avs_rst_n" altera:internal="jesd204_0.jesd204_tx_avs_rst_n"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="jesd204_tx_dlb_data" altera:internal="jesd204_0.jesd204_tx_dlb_data"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="jesd204_tx_dlb_kchar_data" altera:internal="jesd204_0.jesd204_tx_dlb_kchar_data"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="jesd204_tx_frame_error" altera:internal="jesd204_0.jesd204_tx_frame_error"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="jesd204_tx_frame_ready" altera:internal="jesd204_0.jesd204_tx_frame_ready"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="jesd204_tx_int" altera:internal="jesd204_0.jesd204_tx_int"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="jesd204_tx_link" altera:internal="jesd204_0.jesd204_tx_link"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="mdev_sync_n" altera:internal="jesd204_0.mdev_sync_n"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="pll_locked" altera:internal="jesd204_0.pll_locked"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="pll_ref_clk" altera:internal="jesd204_0.pll_ref_clk" altera:type="clock" altera:dir="end">
+        <altera:port_mapping altera:name="pll_ref_clk" altera:internal="pll_ref_clk"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_analogreset" altera:internal="jesd204_0.rx_analogreset" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="rx_analogreset" altera:internal="rx_analogreset"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_cal_busy" altera:internal="jesd204_0.rx_cal_busy" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="rx_cal_busy" altera:internal="rx_cal_busy"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_csr_cf" altera:internal="jesd204_0.rx_csr_cf"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_csr_cs" altera:internal="jesd204_0.rx_csr_cs"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_csr_f" altera:internal="jesd204_0.rx_csr_f"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_csr_hd" altera:internal="jesd204_0.rx_csr_hd"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_csr_k" altera:internal="jesd204_0.rx_csr_k"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_csr_l" altera:internal="jesd204_0.rx_csr_l"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_csr_lane_powerdown" altera:internal="jesd204_0.rx_csr_lane_powerdown"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_csr_m" altera:internal="jesd204_0.rx_csr_m"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_csr_n" altera:internal="jesd204_0.rx_csr_n"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_csr_np" altera:internal="jesd204_0.rx_csr_np"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_csr_s" altera:internal="jesd204_0.rx_csr_s"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_dev_sync_n" altera:internal="jesd204_0.rx_dev_sync_n"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_digitalreset" altera:internal="jesd204_0.rx_digitalreset" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="rx_digitalreset" altera:internal="rx_digitalreset"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_islockedtodata" altera:internal="jesd204_0.rx_islockedtodata" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="rx_islockedtodata" altera:internal="rx_islockedtodata"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_pll_ref_clk" altera:internal="jesd204_0.rx_pll_ref_clk"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_serial_data" altera:internal="jesd204_0.rx_serial_data" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="rx_serial_data" altera:internal="rx_serial_data"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_seriallpbken" altera:internal="jesd204_0.rx_seriallpbken"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_sof" altera:internal="jesd204_0.rx_sof"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_somf" altera:internal="jesd204_0.rx_somf"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_sysref" altera:internal="jesd204_0.rx_sysref"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="rxlink_clk" altera:internal="jesd204_0.rxlink_clk" altera:type="clock" altera:dir="end">
+        <altera:port_mapping altera:name="rxlink_clk" altera:internal="rxlink_clk"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="rxlink_rst_n" altera:internal="jesd204_0.rxlink_rst_n" altera:type="reset" altera:dir="end">
+        <altera:port_mapping altera:name="rxlink_rst_n_reset_n" altera:internal="rxlink_rst_n_reset_n"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="rxphy_clk" altera:internal="jesd204_0.rxphy_clk" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="rxphy_clk" altera:internal="rxphy_clk"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="sof" altera:internal="jesd204_0.sof" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="sof" altera:internal="sof"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="somf" altera:internal="jesd204_0.somf" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="somf" altera:internal="somf"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="sync_n" altera:internal="jesd204_0.sync_n"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="sysref" altera:internal="jesd204_0.sysref" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="sysref" altera:internal="sysref"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_analogreset" altera:internal="jesd204_0.tx_analogreset"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_bonding_clocks_ch0" altera:internal="jesd204_0.tx_bonding_clocks_ch0"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_bonding_clocks_ch1" altera:internal="jesd204_0.tx_bonding_clocks_ch1"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_cal_busy" altera:internal="jesd204_0.tx_cal_busy"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_csr_cf" altera:internal="jesd204_0.tx_csr_cf"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_csr_cs" altera:internal="jesd204_0.tx_csr_cs"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_csr_f" altera:internal="jesd204_0.tx_csr_f"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_csr_hd" altera:internal="jesd204_0.tx_csr_hd"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_csr_k" altera:internal="jesd204_0.tx_csr_k"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_csr_l" altera:internal="jesd204_0.tx_csr_l"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_csr_lane_powerdown" altera:internal="jesd204_0.tx_csr_lane_powerdown"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_csr_m" altera:internal="jesd204_0.tx_csr_m"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_csr_n" altera:internal="jesd204_0.tx_csr_n"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_csr_np" altera:internal="jesd204_0.tx_csr_np"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_csr_s" altera:internal="jesd204_0.tx_csr_s"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_dev_sync_n" altera:internal="jesd204_0.tx_dev_sync_n"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_digitalreset" altera:internal="jesd204_0.tx_digitalreset"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_serial_data" altera:internal="jesd204_0.tx_serial_data"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_somf" altera:internal="jesd204_0.tx_somf"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_sysref" altera:internal="jesd204_0.tx_sysref"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="txlink_clk" altera:internal="jesd204_0.txlink_clk"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="txlink_rst_n" altera:internal="jesd204_0.txlink_rst_n"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="txphy_clk" altera:internal="jesd204_0.txphy_clk"></altera:interface_mapping>
+    </altera:altera_interface_boundary>
+    <altera:altera_has_warnings>false</altera:altera_has_warnings>
+    <altera:altera_has_errors>false</altera:altera_has_errors>
+  </spirit:vendorExtensions>
+</spirit:component>
\ No newline at end of file
diff --git a/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx.qsys b/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..66b049ba2ff44a0825042088e2eac1c5af5e5b20
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx.qsys
@@ -0,0 +1,1935 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_jesd204b_rx">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags=""
+   categories="System"
+   tool="QsysPro" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element jesd204_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="false" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos>
+        <entry>
+            <key>jesd204_rx_avs</key>
+            <value>
+                <connectionPointName>jesd204_rx_avs</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>ADDRESS_MAP</key>
+                        <value>&lt;address-map&gt;&lt;slave name='jesd204_0.jesd204_rx_avs' start='0x0' end='0x400' datawidth='32' /&gt;&lt;/address-map&gt;</value>
+                    </entry>
+                    <entry>
+                        <key>ADDRESS_WIDTH</key>
+                        <value>10</value>
+                    </entry>
+                    <entry>
+                        <key>MAX_SLAVE_DATA_WIDTH</key>
+                        <value>32</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+    </connPtSystemInfos>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface name="csr_cf" internal="jesd204_0.csr_cf" type="conduit" dir="end" />
+ <interface name="csr_cs" internal="jesd204_0.csr_cs" type="conduit" dir="end" />
+ <interface name="csr_f" internal="jesd204_0.csr_f" type="conduit" dir="end" />
+ <interface name="csr_hd" internal="jesd204_0.csr_hd" type="conduit" dir="end" />
+ <interface name="csr_k" internal="jesd204_0.csr_k" type="conduit" dir="end" />
+ <interface name="csr_l" internal="jesd204_0.csr_l" type="conduit" dir="end" />
+ <interface
+   name="csr_lane_powerdown"
+   internal="jesd204_0.csr_lane_powerdown"
+   type="conduit"
+   dir="end" />
+ <interface name="csr_m" internal="jesd204_0.csr_m" type="conduit" dir="end" />
+ <interface name="csr_n" internal="jesd204_0.csr_n" type="conduit" dir="end" />
+ <interface name="csr_np" internal="jesd204_0.csr_np" type="conduit" dir="end" />
+ <interface
+   name="csr_rx_testmode"
+   internal="jesd204_0.csr_rx_testmode"
+   type="conduit"
+   dir="end" />
+ <interface name="csr_s" internal="jesd204_0.csr_s" type="conduit" dir="end" />
+ <interface
+   name="dev_lane_aligned"
+   internal="jesd204_0.dev_lane_aligned"
+   type="conduit"
+   dir="end" />
+ <interface
+   name="dev_sync_n"
+   internal="jesd204_0.dev_sync_n"
+   type="conduit"
+   dir="end" />
+ <interface
+   name="jesd204_0_alldev_lane_aligned"
+   internal="jesd204_0.alldev_lane_aligned"
+   type="conduit"
+   dir="end" />
+ <interface
+   name="jesd204_rx_avs"
+   internal="jesd204_0.jesd204_rx_avs"
+   type="avalon"
+   dir="end" />
+ <interface
+   name="jesd204_rx_avs_clk"
+   internal="jesd204_0.jesd204_rx_avs_clk"
+   type="clock"
+   dir="end" />
+ <interface
+   name="jesd204_rx_avs_rst_n"
+   internal="jesd204_0.jesd204_rx_avs_rst_n"
+   type="reset"
+   dir="end" />
+ <interface
+   name="jesd204_rx_dlb_data"
+   internal="jesd204_0.jesd204_rx_dlb_data"
+   type="conduit"
+   dir="end" />
+ <interface
+   name="jesd204_rx_dlb_data_valid"
+   internal="jesd204_0.jesd204_rx_dlb_data_valid"
+   type="conduit"
+   dir="end" />
+ <interface
+   name="jesd204_rx_dlb_disperr"
+   internal="jesd204_0.jesd204_rx_dlb_disperr"
+   type="conduit"
+   dir="end" />
+ <interface
+   name="jesd204_rx_dlb_errdetect"
+   internal="jesd204_0.jesd204_rx_dlb_errdetect"
+   type="conduit"
+   dir="end" />
+ <interface
+   name="jesd204_rx_dlb_kchar_data"
+   internal="jesd204_0.jesd204_rx_dlb_kchar_data"
+   type="conduit"
+   dir="end" />
+ <interface
+   name="jesd204_rx_frame_error"
+   internal="jesd204_0.jesd204_rx_frame_error"
+   type="conduit"
+   dir="end" />
+ <interface
+   name="jesd204_rx_int"
+   internal="jesd204_0.jesd204_rx_int"
+   type="interrupt"
+   dir="end" />
+ <interface
+   name="jesd204_rx_link"
+   internal="jesd204_0.jesd204_rx_link"
+   type="avalon_streaming"
+   dir="start" />
+ <interface
+   name="pll_ref_clk"
+   internal="jesd204_0.pll_ref_clk"
+   type="clock"
+   dir="end" />
+ <interface
+   name="rx_analogreset"
+   internal="jesd204_0.rx_analogreset"
+   type="conduit"
+   dir="end" />
+ <interface
+   name="rx_cal_busy"
+   internal="jesd204_0.rx_cal_busy"
+   type="conduit"
+   dir="end" />
+ <interface
+   name="rx_digitalreset"
+   internal="jesd204_0.rx_digitalreset"
+   type="conduit"
+   dir="end" />
+ <interface
+   name="rx_islockedtodata"
+   internal="jesd204_0.rx_islockedtodata"
+   type="conduit"
+   dir="end" />
+ <interface
+   name="rx_serial_data"
+   internal="jesd204_0.rx_serial_data"
+   type="conduit"
+   dir="end" />
+ <interface
+   name="rxlink_clk"
+   internal="jesd204_0.rxlink_clk"
+   type="clock"
+   dir="end" />
+ <interface
+   name="rxlink_rst_n"
+   internal="jesd204_0.rxlink_rst_n"
+   type="reset"
+   dir="end" />
+ <interface
+   name="rxphy_clk"
+   internal="jesd204_0.rxphy_clk"
+   type="conduit"
+   dir="end" />
+ <interface name="sof" internal="jesd204_0.sof" type="conduit" dir="end" />
+ <interface name="somf" internal="jesd204_0.somf" type="conduit" dir="end" />
+ <interface name="sysref" internal="jesd204_0.sysref" type="conduit" dir="end" />
+ <module
+   name="jesd204_0"
+   kind="altera_generic_component"
+   version="1.0"
+   enabled="1">
+  <parameter name="componentDefinition"><![CDATA[<componentDefinition>
+    <boundary>
+        <interfaces>
+            <interface>
+                <name>alldev_lane_aligned</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>alldev_lane_aligned</name>
+                        <role>export</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>input</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>csr_cf</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>csr_cf</name>
+                        <role>export</role>
+                        <direction>Output</direction>
+                        <width>5</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>csr_cs</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>csr_cs</name>
+                        <role>export</role>
+                        <direction>Output</direction>
+                        <width>2</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>csr_f</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>csr_f</name>
+                        <role>export</role>
+                        <direction>Output</direction>
+                        <width>8</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>csr_hd</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>csr_hd</name>
+                        <role>export</role>
+                        <direction>Output</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>csr_k</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>csr_k</name>
+                        <role>export</role>
+                        <direction>Output</direction>
+                        <width>5</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>csr_l</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>csr_l</name>
+                        <role>export</role>
+                        <direction>Output</direction>
+                        <width>5</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>csr_lane_powerdown</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>csr_lane_powerdown</name>
+                        <role>export</role>
+                        <direction>Output</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>csr_m</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>csr_m</name>
+                        <role>export</role>
+                        <direction>Output</direction>
+                        <width>8</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>csr_n</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>csr_n</name>
+                        <role>export</role>
+                        <direction>Output</direction>
+                        <width>5</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>csr_np</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>csr_np</name>
+                        <role>export</role>
+                        <direction>Output</direction>
+                        <width>5</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>csr_rx_testmode</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>csr_rx_testmode</name>
+                        <role>export</role>
+                        <direction>Output</direction>
+                        <width>4</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>csr_s</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>csr_s</name>
+                        <role>export</role>
+                        <direction>Output</direction>
+                        <width>5</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>dev_lane_aligned</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>dev_lane_aligned</name>
+                        <role>export</role>
+                        <direction>Output</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>dev_sync_n</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>dev_sync_n</name>
+                        <role>export</role>
+                        <direction>Output</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>jesd204_rx_avs</name>
+                <type>avalon</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>jesd204_rx_avs_chipselect</name>
+                        <role>chipselect</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                    <port>
+                        <name>jesd204_rx_avs_address</name>
+                        <role>address</role>
+                        <direction>Input</direction>
+                        <width>8</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                    <port>
+                        <name>jesd204_rx_avs_read</name>
+                        <role>read</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                    <port>
+                        <name>jesd204_rx_avs_readdata</name>
+                        <role>readdata</role>
+                        <direction>Output</direction>
+                        <width>32</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                    <port>
+                        <name>jesd204_rx_avs_waitrequest</name>
+                        <role>waitrequest</role>
+                        <direction>Output</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                    <port>
+                        <name>jesd204_rx_avs_write</name>
+                        <role>write</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                    <port>
+                        <name>jesd204_rx_avs_writedata</name>
+                        <role>writedata</role>
+                        <direction>Input</direction>
+                        <width>32</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>embeddedsw.configuration.isFlash</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>embeddedsw.configuration.isMemoryDevice</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>embeddedsw.configuration.isNonVolatileStorage</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>embeddedsw.configuration.isPrintableDevice</key>
+                            <value>0</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>addressAlignment</key>
+                            <value>DYNAMIC</value>
+                        </entry>
+                        <entry>
+                            <key>addressGroup</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>addressSpan</key>
+                            <value>1024</value>
+                        </entry>
+                        <entry>
+                            <key>addressUnits</key>
+                            <value>WORDS</value>
+                        </entry>
+                        <entry>
+                            <key>alwaysBurstMaxBurst</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>associatedClock</key>
+                            <value>jesd204_rx_avs_clk</value>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                            <value>jesd204_rx_avs_rst_n</value>
+                        </entry>
+                        <entry>
+                            <key>bitsPerSymbol</key>
+                            <value>8</value>
+                        </entry>
+                        <entry>
+                            <key>bridgedAddressOffset</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>bridgesToMaster</key>
+                        </entry>
+                        <entry>
+                            <key>burstOnBurstBoundariesOnly</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>burstcountUnits</key>
+                            <value>WORDS</value>
+                        </entry>
+                        <entry>
+                            <key>constantBurstBehavior</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>explicitAddressSpan</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>holdTime</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>interleaveBursts</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>isBigEndian</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>isFlash</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>isMemoryDevice</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>isNonVolatileStorage</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>linewrapBursts</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>maximumPendingReadTransactions</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>maximumPendingWriteTransactions</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>minimumReadLatency</key>
+                            <value>1</value>
+                        </entry>
+                        <entry>
+                            <key>minimumResponseLatency</key>
+                            <value>1</value>
+                        </entry>
+                        <entry>
+                            <key>minimumUninterruptedRunLength</key>
+                            <value>1</value>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>printableDevice</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>readLatency</key>
+                            <value>1</value>
+                        </entry>
+                        <entry>
+                            <key>readWaitStates</key>
+                            <value>1</value>
+                        </entry>
+                        <entry>
+                            <key>readWaitTime</key>
+                            <value>1</value>
+                        </entry>
+                        <entry>
+                            <key>registerIncomingSignals</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>registerOutgoingSignals</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>setupTime</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>timingUnits</key>
+                            <value>Cycles</value>
+                        </entry>
+                        <entry>
+                            <key>transparentBridge</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>waitrequestAllowance</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>wellBehavedWaitrequest</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>writeLatency</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>writeWaitStates</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>writeWaitTime</key>
+                            <value>0</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>jesd204_rx_avs_clk</name>
+                <type>clock</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>jesd204_rx_avs_clk</name>
+                        <role>clk</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>clockRate</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>externallyDriven</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>ptfSchematicName</key>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>jesd204_rx_avs_rst_n</name>
+                <type>reset</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>jesd204_rx_avs_rst_n</name>
+                        <role>reset_n</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                            <value>jesd204_rx_avs_clk</value>
+                        </entry>
+                        <entry>
+                            <key>synchronousEdges</key>
+                            <value>DEASSERT</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>jesd204_rx_dlb_data</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>jesd204_rx_dlb_data</name>
+                        <role>export</role>
+                        <direction>Input</direction>
+                        <width>32</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>input</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>jesd204_rx_dlb_data_valid</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>jesd204_rx_dlb_data_valid</name>
+                        <role>export</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>input</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>jesd204_rx_dlb_disperr</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>jesd204_rx_dlb_disperr</name>
+                        <role>export</role>
+                        <direction>Input</direction>
+                        <width>4</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>input</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>jesd204_rx_dlb_errdetect</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>jesd204_rx_dlb_errdetect</name>
+                        <role>export</role>
+                        <direction>Input</direction>
+                        <width>4</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>input</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>jesd204_rx_dlb_kchar_data</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>jesd204_rx_dlb_kchar_data</name>
+                        <role>export</role>
+                        <direction>Input</direction>
+                        <width>4</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>input</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>jesd204_rx_frame_error</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>jesd204_rx_frame_error</name>
+                        <role>export</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>input</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>jesd204_rx_int</name>
+                <type>interrupt</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>jesd204_rx_int</name>
+                        <role>irq</role>
+                        <direction>Output</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedAddressablePoint</key>
+                            <value>jesd204_0.jesd204_rx_avs</value>
+                        </entry>
+                        <entry>
+                            <key>associatedClock</key>
+                            <value>jesd204_rx_avs_clk</value>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                            <value>jesd204_rx_avs_rst_n</value>
+                        </entry>
+                        <entry>
+                            <key>bridgedReceiverOffset</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>bridgesToReceiver</key>
+                        </entry>
+                        <entry>
+                            <key>irqScheme</key>
+                            <value>NONE</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>jesd204_rx_link</name>
+                <type>avalon_streaming</type>
+                <isStart>true</isStart>
+                <ports>
+                    <port>
+                        <name>jesd204_rx_link_data</name>
+                        <role>data</role>
+                        <direction>Output</direction>
+                        <width>32</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                    <port>
+                        <name>jesd204_rx_link_valid</name>
+                        <role>valid</role>
+                        <direction>Output</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                    <port>
+                        <name>jesd204_rx_link_ready</name>
+                        <role>ready</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                            <value>rxlink_clk</value>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                            <value>rxlink_rst_n</value>
+                        </entry>
+                        <entry>
+                            <key>beatsPerCycle</key>
+                            <value>1</value>
+                        </entry>
+                        <entry>
+                            <key>dataBitsPerSymbol</key>
+                            <value>32</value>
+                        </entry>
+                        <entry>
+                            <key>emptyWithinPacket</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>errorDescriptor</key>
+                        </entry>
+                        <entry>
+                            <key>firstSymbolInHighOrderBits</key>
+                            <value>true</value>
+                        </entry>
+                        <entry>
+                            <key>highOrderSymbolAtMSB</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>maxChannel</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>packetDescription</key>
+                            <value></value>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>readyAllowance</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>readyLatency</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>symbolsPerBeat</key>
+                            <value>1</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>pll_ref_clk</name>
+                <type>clock</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>pll_ref_clk</name>
+                        <role>clk</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>clockRate</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>externallyDriven</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>ptfSchematicName</key>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>rx_analogreset</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>rx_analogreset</name>
+                        <role>rx_analogreset</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>input</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>rx_cal_busy</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>rx_cal_busy</name>
+                        <role>rx_cal_busy</role>
+                        <direction>Output</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>rx_digitalreset</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>rx_digitalreset</name>
+                        <role>rx_digitalreset</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>input</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>rx_islockedtodata</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>rx_islockedtodata</name>
+                        <role>rx_is_lockedtodata</role>
+                        <direction>Output</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>rx_serial_data</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>rx_serial_data</name>
+                        <role>rx_serial_data</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>input</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>rxlink_clk</name>
+                <type>clock</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>rxlink_clk</name>
+                        <role>clk</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>clockRate</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>externallyDriven</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>ptfSchematicName</key>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>rxlink_rst_n</name>
+                <type>reset</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>rxlink_rst_n_reset_n</name>
+                        <role>reset_n</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                            <value>rxlink_clk</value>
+                        </entry>
+                        <entry>
+                            <key>synchronousEdges</key>
+                            <value>DEASSERT</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>rxphy_clk</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>rxphy_clk</name>
+                        <role>export</role>
+                        <direction>Output</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>sof</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>sof</name>
+                        <role>export</role>
+                        <direction>Output</direction>
+                        <width>4</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>somf</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>somf</name>
+                        <role>export</role>
+                        <direction>Output</direction>
+                        <width>4</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>sysref</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>sysref</name>
+                        <role>export</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>input</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+        </interfaces>
+    </boundary>
+    <originalModuleInfo>
+        <className>jesd204_0</className>
+        <version>19.2.0</version>
+        <displayName>JESD204B Intel FPGA IP</displayName>
+    </originalModuleInfo>
+    <systemInfoParameterDescriptors>
+        <descriptors/>
+    </systemInfoParameterDescriptors>
+    <systemInfos>
+        <connPtSystemInfos>
+            <entry>
+                <key>jesd204_rx_avs</key>
+                <value>
+                    <connectionPointName>jesd204_rx_avs</connectionPointName>
+                    <suppliedSystemInfos>
+                        <entry>
+                            <key>ADDRESS_MAP</key>
+                            <value>&lt;address-map&gt;&lt;slave name='jesd204_rx_avs' start='0x0' end='0x400' datawidth='32' /&gt;&lt;/address-map&gt;</value>
+                        </entry>
+                        <entry>
+                            <key>ADDRESS_WIDTH</key>
+                            <value>10</value>
+                        </entry>
+                        <entry>
+                            <key>MAX_SLAVE_DATA_WIDTH</key>
+                            <value>32</value>
+                        </entry>
+                    </suppliedSystemInfos>
+                    <consumedSystemInfos/>
+                </value>
+            </entry>
+        </connPtSystemInfos>
+    </systemInfos>
+</componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary" value="" />
+  <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
+    <hdlLibraryName>ip_arria10_e2sg_jesd204b_rx</hdlLibraryName>
+    <fileSets>
+        <fileSet>
+            <fileSetName>ip_arria10_e2sg_jesd204b_rx</fileSetName>
+            <fileSetFixedName>ip_arria10_e2sg_jesd204b_rx</fileSetFixedName>
+            <fileSetKind>QUARTUS_SYNTH</fileSetKind>
+            <fileSetFiles/>
+        </fileSet>
+        <fileSet>
+            <fileSetName>ip_arria10_e2sg_jesd204b_rx</fileSetName>
+            <fileSetFixedName>ip_arria10_e2sg_jesd204b_rx</fileSetFixedName>
+            <fileSetKind>SIM_VERILOG</fileSetKind>
+            <fileSetFiles/>
+        </fileSet>
+        <fileSet>
+            <fileSetName>ip_arria10_e2sg_jesd204b_rx</fileSetName>
+            <fileSetFixedName>ip_arria10_e2sg_jesd204b_rx</fileSetFixedName>
+            <fileSetKind>SIM_VHDL</fileSetKind>
+            <fileSetFiles/>
+        </fileSet>
+    </fileSets>
+</generationInfoDefinition>]]></parameter>
+  <parameter name="hlsFile" value="" />
+  <parameter name="logicalView">/home/hargreaves/git/hdl/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx.ip</parameter>
+   <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
+    <assignmentValueMap/>
+</assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx_core_pll.ip b/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx_core_pll.ip
new file mode 100644
index 0000000000000000000000000000000000000000..a14071ffabfe6cdac013b90b637f75c76446c71d
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx_core_pll.ip
@@ -0,0 +1,4332 @@
+<?xml version="1.0" ?>
+<ipxact:component xmlns:altera="http://www.altera.com/XMLSchema/IPXact2014/extensions" xmlns:ipxact="http://www.accellera.org/XMLSchema/IPXACT/1685-2014">
+  <ipxact:vendor>Intel Corporation</ipxact:vendor>
+  <ipxact:library>ip_arria10_e2sg_jesd204b_rx_core_pll</ipxact:library>
+  <ipxact:name>core_pll</ipxact:name>
+  <ipxact:version>19.3.0</ipxact:version>
+  <ipxact:busInterfaces>
+    <ipxact:busInterface>
+      <ipxact:name>reset</ipxact:name>
+      <ipxact:busType vendor="altera" library="altera" name="reset" version="19.4"></ipxact:busType>
+      <ipxact:abstractionTypes>
+        <ipxact:abstractionType>
+          <ipxact:abstractionRef vendor="altera" library="altera" name="reset" version="19.4"></ipxact:abstractionRef>
+          <ipxact:portMaps>
+            <ipxact:portMap>
+              <ipxact:logicalPort>
+                <ipxact:name>reset</ipxact:name>
+              </ipxact:logicalPort>
+              <ipxact:physicalPort>
+                <ipxact:name>rst</ipxact:name>
+              </ipxact:physicalPort>
+            </ipxact:portMap>
+          </ipxact:portMaps>
+        </ipxact:abstractionType>
+      </ipxact:abstractionTypes>
+      <ipxact:slave></ipxact:slave>
+      <ipxact:parameters>
+        <ipxact:parameter parameterId="associatedClock" type="string">
+          <ipxact:name>associatedClock</ipxact:name>
+          <ipxact:displayName>Associated clock</ipxact:displayName>
+          <ipxact:value></ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="synchronousEdges" type="string">
+          <ipxact:name>synchronousEdges</ipxact:name>
+          <ipxact:displayName>Synchronous edges</ipxact:displayName>
+          <ipxact:value>NONE</ipxact:value>
+        </ipxact:parameter>
+      </ipxact:parameters>
+      <ipxact:vendorExtensions>
+        <altera:altera_assignments>
+          <ipxact:parameters>
+            <ipxact:parameter parameterId="ui.blockdiagram.direction" type="string">
+              <ipxact:name>ui.blockdiagram.direction</ipxact:name>
+              <ipxact:value>input</ipxact:value>
+            </ipxact:parameter>
+          </ipxact:parameters>
+        </altera:altera_assignments>
+      </ipxact:vendorExtensions>
+    </ipxact:busInterface>
+    <ipxact:busInterface>
+      <ipxact:name>refclk</ipxact:name>
+      <ipxact:busType vendor="altera" library="altera" name="clock" version="19.4"></ipxact:busType>
+      <ipxact:abstractionTypes>
+        <ipxact:abstractionType>
+          <ipxact:abstractionRef vendor="altera" library="altera" name="clock" version="19.4"></ipxact:abstractionRef>
+          <ipxact:portMaps>
+            <ipxact:portMap>
+              <ipxact:logicalPort>
+                <ipxact:name>clk</ipxact:name>
+              </ipxact:logicalPort>
+              <ipxact:physicalPort>
+                <ipxact:name>refclk</ipxact:name>
+              </ipxact:physicalPort>
+            </ipxact:portMap>
+          </ipxact:portMaps>
+        </ipxact:abstractionType>
+      </ipxact:abstractionTypes>
+      <ipxact:slave></ipxact:slave>
+      <ipxact:parameters>
+        <ipxact:parameter parameterId="clockRate" type="longint">
+          <ipxact:name>clockRate</ipxact:name>
+          <ipxact:displayName>Clock rate</ipxact:displayName>
+          <ipxact:value>200000000</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="externallyDriven" type="bit">
+          <ipxact:name>externallyDriven</ipxact:name>
+          <ipxact:displayName>Externally driven</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="ptfSchematicName" type="string">
+          <ipxact:name>ptfSchematicName</ipxact:name>
+          <ipxact:displayName>PTF schematic name</ipxact:displayName>
+          <ipxact:value></ipxact:value>
+        </ipxact:parameter>
+      </ipxact:parameters>
+      <ipxact:vendorExtensions>
+        <altera:altera_assignments>
+          <ipxact:parameters>
+            <ipxact:parameter parameterId="ui.blockdiagram.direction" type="string">
+              <ipxact:name>ui.blockdiagram.direction</ipxact:name>
+              <ipxact:value>input</ipxact:value>
+            </ipxact:parameter>
+          </ipxact:parameters>
+        </altera:altera_assignments>
+      </ipxact:vendorExtensions>
+    </ipxact:busInterface>
+    <ipxact:busInterface>
+      <ipxact:name>locked</ipxact:name>
+      <ipxact:busType vendor="altera" library="altera" name="conduit" version="19.4"></ipxact:busType>
+      <ipxact:abstractionTypes>
+        <ipxact:abstractionType>
+          <ipxact:abstractionRef vendor="altera" library="altera" name="conduit" version="19.4"></ipxact:abstractionRef>
+          <ipxact:portMaps>
+            <ipxact:portMap>
+              <ipxact:logicalPort>
+                <ipxact:name>export</ipxact:name>
+              </ipxact:logicalPort>
+              <ipxact:physicalPort>
+                <ipxact:name>locked</ipxact:name>
+              </ipxact:physicalPort>
+            </ipxact:portMap>
+          </ipxact:portMaps>
+        </ipxact:abstractionType>
+      </ipxact:abstractionTypes>
+      <ipxact:slave></ipxact:slave>
+      <ipxact:parameters>
+        <ipxact:parameter parameterId="associatedClock" type="string">
+          <ipxact:name>associatedClock</ipxact:name>
+          <ipxact:displayName>associatedClock</ipxact:displayName>
+          <ipxact:value></ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="associatedReset" type="string">
+          <ipxact:name>associatedReset</ipxact:name>
+          <ipxact:displayName>associatedReset</ipxact:displayName>
+          <ipxact:value></ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="prSafe" type="bit">
+          <ipxact:name>prSafe</ipxact:name>
+          <ipxact:displayName>Partial Reconfiguration Safe</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+      </ipxact:parameters>
+      <ipxact:vendorExtensions>
+        <altera:altera_assignments>
+          <ipxact:parameters>
+            <ipxact:parameter parameterId="ui.blockdiagram.direction" type="string">
+              <ipxact:name>ui.blockdiagram.direction</ipxact:name>
+              <ipxact:value>output</ipxact:value>
+            </ipxact:parameter>
+          </ipxact:parameters>
+        </altera:altera_assignments>
+      </ipxact:vendorExtensions>
+    </ipxact:busInterface>
+    <ipxact:busInterface>
+      <ipxact:name>outclk0</ipxact:name>
+      <ipxact:busType vendor="altera" library="altera" name="clock" version="19.4"></ipxact:busType>
+      <ipxact:abstractionTypes>
+        <ipxact:abstractionType>
+          <ipxact:abstractionRef vendor="altera" library="altera" name="clock" version="19.4"></ipxact:abstractionRef>
+          <ipxact:portMaps>
+            <ipxact:portMap>
+              <ipxact:logicalPort>
+                <ipxact:name>clk</ipxact:name>
+              </ipxact:logicalPort>
+              <ipxact:physicalPort>
+                <ipxact:name>outclk_0</ipxact:name>
+              </ipxact:physicalPort>
+            </ipxact:portMap>
+          </ipxact:portMaps>
+        </ipxact:abstractionType>
+      </ipxact:abstractionTypes>
+      <ipxact:master></ipxact:master>
+      <ipxact:parameters>
+        <ipxact:parameter parameterId="associatedDirectClock" type="string">
+          <ipxact:name>associatedDirectClock</ipxact:name>
+          <ipxact:displayName>Associated direct clock</ipxact:displayName>
+          <ipxact:value></ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clockRate" type="longint">
+          <ipxact:name>clockRate</ipxact:name>
+          <ipxact:displayName>Clock rate</ipxact:displayName>
+          <ipxact:value>100000000</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clockRateKnown" type="bit">
+          <ipxact:name>clockRateKnown</ipxact:name>
+          <ipxact:displayName>Clock rate known</ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="externallyDriven" type="bit">
+          <ipxact:name>externallyDriven</ipxact:name>
+          <ipxact:displayName>Externally driven</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="ptfSchematicName" type="string">
+          <ipxact:name>ptfSchematicName</ipxact:name>
+          <ipxact:displayName>PTF schematic name</ipxact:displayName>
+          <ipxact:value></ipxact:value>
+        </ipxact:parameter>
+      </ipxact:parameters>
+      <ipxact:vendorExtensions>
+        <altera:altera_assignments>
+          <ipxact:parameters>
+            <ipxact:parameter parameterId="ui.blockdiagram.direction" type="string">
+              <ipxact:name>ui.blockdiagram.direction</ipxact:name>
+              <ipxact:value>output</ipxact:value>
+            </ipxact:parameter>
+          </ipxact:parameters>
+        </altera:altera_assignments>
+      </ipxact:vendorExtensions>
+    </ipxact:busInterface>
+    <ipxact:busInterface>
+      <ipxact:name>outclk1</ipxact:name>
+      <ipxact:busType vendor="altera" library="altera" name="clock" version="19.4"></ipxact:busType>
+      <ipxact:abstractionTypes>
+        <ipxact:abstractionType>
+          <ipxact:abstractionRef vendor="altera" library="altera" name="clock" version="19.4"></ipxact:abstractionRef>
+          <ipxact:portMaps>
+            <ipxact:portMap>
+              <ipxact:logicalPort>
+                <ipxact:name>clk</ipxact:name>
+              </ipxact:logicalPort>
+              <ipxact:physicalPort>
+                <ipxact:name>outclk_1</ipxact:name>
+              </ipxact:physicalPort>
+            </ipxact:portMap>
+          </ipxact:portMaps>
+        </ipxact:abstractionType>
+      </ipxact:abstractionTypes>
+      <ipxact:master></ipxact:master>
+      <ipxact:parameters>
+        <ipxact:parameter parameterId="associatedDirectClock" type="string">
+          <ipxact:name>associatedDirectClock</ipxact:name>
+          <ipxact:displayName>Associated direct clock</ipxact:displayName>
+          <ipxact:value></ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clockRate" type="longint">
+          <ipxact:name>clockRate</ipxact:name>
+          <ipxact:displayName>Clock rate</ipxact:displayName>
+          <ipxact:value>200000000</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clockRateKnown" type="bit">
+          <ipxact:name>clockRateKnown</ipxact:name>
+          <ipxact:displayName>Clock rate known</ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="externallyDriven" type="bit">
+          <ipxact:name>externallyDriven</ipxact:name>
+          <ipxact:displayName>Externally driven</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="ptfSchematicName" type="string">
+          <ipxact:name>ptfSchematicName</ipxact:name>
+          <ipxact:displayName>PTF schematic name</ipxact:displayName>
+          <ipxact:value></ipxact:value>
+        </ipxact:parameter>
+      </ipxact:parameters>
+      <ipxact:vendorExtensions>
+        <altera:altera_assignments>
+          <ipxact:parameters>
+            <ipxact:parameter parameterId="ui.blockdiagram.direction" type="string">
+              <ipxact:name>ui.blockdiagram.direction</ipxact:name>
+              <ipxact:value>output</ipxact:value>
+            </ipxact:parameter>
+          </ipxact:parameters>
+        </altera:altera_assignments>
+      </ipxact:vendorExtensions>
+    </ipxact:busInterface>
+  </ipxact:busInterfaces>
+  <ipxact:model>
+    <ipxact:views>
+      <ipxact:view>
+        <ipxact:name>QUARTUS_SYNTH</ipxact:name>
+        <ipxact:envIdentifier>:quartus.altera.com:</ipxact:envIdentifier>
+        <ipxact:componentInstantiationRef>QUARTUS_SYNTH</ipxact:componentInstantiationRef>
+      </ipxact:view>
+    </ipxact:views>
+    <ipxact:instantiations>
+      <ipxact:componentInstantiation>
+        <ipxact:name>QUARTUS_SYNTH</ipxact:name>
+        <ipxact:moduleName>altera_iopll</ipxact:moduleName>
+        <ipxact:fileSetRef>
+          <ipxact:localName>QUARTUS_SYNTH</ipxact:localName>
+        </ipxact:fileSetRef>
+      </ipxact:componentInstantiation>
+    </ipxact:instantiations>
+    <ipxact:ports>
+      <ipxact:port>
+        <ipxact:name>rst</ipxact:name>
+        <ipxact:wire>
+          <ipxact:direction>in</ipxact:direction>
+          <ipxact:wireTypeDefs>
+            <ipxact:wireTypeDef>
+              <ipxact:typeName>STD_LOGIC</ipxact:typeName>
+              <ipxact:viewRef>QUARTUS_SYNTH</ipxact:viewRef>
+            </ipxact:wireTypeDef>
+          </ipxact:wireTypeDefs>
+        </ipxact:wire>
+      </ipxact:port>
+      <ipxact:port>
+        <ipxact:name>refclk</ipxact:name>
+        <ipxact:wire>
+          <ipxact:direction>in</ipxact:direction>
+          <ipxact:wireTypeDefs>
+            <ipxact:wireTypeDef>
+              <ipxact:typeName>STD_LOGIC</ipxact:typeName>
+              <ipxact:viewRef>QUARTUS_SYNTH</ipxact:viewRef>
+            </ipxact:wireTypeDef>
+          </ipxact:wireTypeDefs>
+        </ipxact:wire>
+      </ipxact:port>
+      <ipxact:port>
+        <ipxact:name>locked</ipxact:name>
+        <ipxact:wire>
+          <ipxact:direction>out</ipxact:direction>
+          <ipxact:wireTypeDefs>
+            <ipxact:wireTypeDef>
+              <ipxact:typeName>STD_LOGIC</ipxact:typeName>
+              <ipxact:viewRef>QUARTUS_SYNTH</ipxact:viewRef>
+            </ipxact:wireTypeDef>
+          </ipxact:wireTypeDefs>
+        </ipxact:wire>
+      </ipxact:port>
+      <ipxact:port>
+        <ipxact:name>outclk_0</ipxact:name>
+        <ipxact:wire>
+          <ipxact:direction>out</ipxact:direction>
+          <ipxact:wireTypeDefs>
+            <ipxact:wireTypeDef>
+              <ipxact:typeName>STD_LOGIC</ipxact:typeName>
+              <ipxact:viewRef>QUARTUS_SYNTH</ipxact:viewRef>
+            </ipxact:wireTypeDef>
+          </ipxact:wireTypeDefs>
+        </ipxact:wire>
+      </ipxact:port>
+      <ipxact:port>
+        <ipxact:name>outclk_1</ipxact:name>
+        <ipxact:wire>
+          <ipxact:direction>out</ipxact:direction>
+          <ipxact:wireTypeDefs>
+            <ipxact:wireTypeDef>
+              <ipxact:typeName>STD_LOGIC</ipxact:typeName>
+              <ipxact:viewRef>QUARTUS_SYNTH</ipxact:viewRef>
+            </ipxact:wireTypeDef>
+          </ipxact:wireTypeDefs>
+        </ipxact:wire>
+      </ipxact:port>
+    </ipxact:ports>
+  </ipxact:model>
+  <ipxact:vendorExtensions>
+    <altera:entity_info>
+      <ipxact:vendor>Intel Corporation</ipxact:vendor>
+      <ipxact:library>ip_arria10_e2sg_jesd204b_rx_core_pll</ipxact:library>
+      <ipxact:name>altera_iopll</ipxact:name>
+      <ipxact:version>19.3.0</ipxact:version>
+    </altera:entity_info>
+    <altera:altera_module_parameters>
+      <ipxact:parameters>
+        <ipxact:parameter parameterId="gui_device_family" type="string">
+          <ipxact:name>gui_device_family</ipxact:name>
+          <ipxact:displayName>Device Family</ipxact:displayName>
+          <ipxact:value>Arria 10</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_device_component" type="string">
+          <ipxact:name>gui_device_component</ipxact:name>
+          <ipxact:displayName>Component</ipxact:displayName>
+          <ipxact:value>10AX115U3F45E2SG</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_device_speed_grade" type="int">
+          <ipxact:name>gui_device_speed_grade</ipxact:name>
+          <ipxact:displayName>Speed Grade</ipxact:displayName>
+          <ipxact:value>2</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_debug_mode" type="bit">
+          <ipxact:name>gui_debug_mode</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_skip_sdc_generation" type="bit">
+          <ipxact:name>gui_skip_sdc_generation</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_include_iossm" type="bit">
+          <ipxact:name>gui_include_iossm</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_cal_code_hex_file" type="string">
+          <ipxact:name>gui_cal_code_hex_file</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>iossm.hex</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_parameter_table_hex_file" type="string">
+          <ipxact:name>gui_parameter_table_hex_file</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>seq_params_sim.hex</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_pll_tclk_mux_en" type="bit">
+          <ipxact:name>gui_pll_tclk_mux_en</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_pll_tclk_sel" type="string">
+          <ipxact:name>gui_pll_tclk_sel</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>pll_tclk_m_src</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_pll_vco_freq_band_0" type="string">
+          <ipxact:name>gui_pll_vco_freq_band_0</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>pll_freq_clk0_disabled</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_pll_vco_freq_band_1" type="string">
+          <ipxact:name>gui_pll_vco_freq_band_1</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>pll_freq_clk1_disabled</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_pll_freqcal_en" type="bit">
+          <ipxact:name>gui_pll_freqcal_en</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_pll_freqcal_req_flag" type="bit">
+          <ipxact:name>gui_pll_freqcal_req_flag</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_cal_converge" type="bit">
+          <ipxact:name>gui_cal_converge</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_cal_error" type="string">
+          <ipxact:name>gui_cal_error</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>cal_clean</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_pll_cal_done" type="bit">
+          <ipxact:name>gui_pll_cal_done</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_pll_type" type="string">
+          <ipxact:name>gui_pll_type</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>S10_Simple</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_pll_m_cnt_in_src" type="string">
+          <ipxact:name>gui_pll_m_cnt_in_src</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_c_cnt_in_src0" type="string">
+          <ipxact:name>gui_c_cnt_in_src0</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_c_cnt_in_src1" type="string">
+          <ipxact:name>gui_c_cnt_in_src1</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_c_cnt_in_src2" type="string">
+          <ipxact:name>gui_c_cnt_in_src2</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_c_cnt_in_src3" type="string">
+          <ipxact:name>gui_c_cnt_in_src3</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_c_cnt_in_src4" type="string">
+          <ipxact:name>gui_c_cnt_in_src4</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_c_cnt_in_src5" type="string">
+          <ipxact:name>gui_c_cnt_in_src5</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_c_cnt_in_src6" type="string">
+          <ipxact:name>gui_c_cnt_in_src6</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_c_cnt_in_src7" type="string">
+          <ipxact:name>gui_c_cnt_in_src7</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_c_cnt_in_src8" type="string">
+          <ipxact:name>gui_c_cnt_in_src8</ipxact:name>
+          <ipxact:displayName></ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="system_info_device_family" type="string">
+          <ipxact:name>system_info_device_family</ipxact:name>
+          <ipxact:displayName>Device Family</ipxact:displayName>
+          <ipxact:value>Arria 10</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="system_info_device_component" type="string">
+          <ipxact:name>system_info_device_component</ipxact:name>
+          <ipxact:displayName>Component</ipxact:displayName>
+          <ipxact:value>10AX115U3F45E2SG</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="system_info_device_speed_grade" type="string">
+          <ipxact:name>system_info_device_speed_grade</ipxact:name>
+          <ipxact:displayName>Speed Grade</ipxact:displayName>
+          <ipxact:value>2</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="system_part_trait_speed_grade" type="string">
+          <ipxact:name>system_part_trait_speed_grade</ipxact:name>
+          <ipxact:displayName>Speed Grade Trait</ipxact:displayName>
+          <ipxact:value>2</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_usr_device_speed_grade" type="string">
+          <ipxact:name>gui_usr_device_speed_grade</ipxact:name>
+          <ipxact:displayName>Speed Grade</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_en_reconf" type="bit">
+          <ipxact:name>gui_en_reconf</ipxact:name>
+          <ipxact:displayName>Enable dynamic reconfiguration of PLL</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_en_dps_ports" type="bit">
+          <ipxact:name>gui_en_dps_ports</ipxact:name>
+          <ipxact:displayName>Enable access to dynamic phase shift ports</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_pll_mode" type="string">
+          <ipxact:name>gui_pll_mode</ipxact:name>
+          <ipxact:displayName>PLL Mode</ipxact:displayName>
+          <ipxact:value>Integer-N PLL</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_location_type" type="string">
+          <ipxact:name>gui_location_type</ipxact:name>
+          <ipxact:displayName>IOPLL Type</ipxact:displayName>
+          <ipxact:value>I/O Bank</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_use_logical" type="bit">
+          <ipxact:name>gui_use_logical</ipxact:name>
+          <ipxact:displayName>Use logical PLL</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_reference_clock_frequency" type="real">
+          <ipxact:name>gui_reference_clock_frequency</ipxact:name>
+          <ipxact:displayName>Reference Clock Frequency</ipxact:displayName>
+          <ipxact:value>200.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_reference_clock_frequency_ps" type="real">
+          <ipxact:name>gui_reference_clock_frequency_ps</ipxact:name>
+          <ipxact:displayName>Reference Clock Frequency</ipxact:displayName>
+          <ipxact:value>10000.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_use_coreclk" type="bit">
+          <ipxact:name>gui_use_coreclk</ipxact:name>
+          <ipxact:displayName>Refclk source is global clock</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_refclk_might_change" type="bit">
+          <ipxact:name>gui_refclk_might_change</ipxact:name>
+          <ipxact:displayName>My reference clock frequency might change</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_fractional_cout" type="int">
+          <ipxact:name>gui_fractional_cout</ipxact:name>
+          <ipxact:displayName>Fractional carry out</ipxact:displayName>
+          <ipxact:value>32</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_prot_mode" type="string">
+          <ipxact:name>gui_prot_mode</ipxact:name>
+          <ipxact:displayName>prot_mode</ipxact:displayName>
+          <ipxact:value>UNUSED</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_dsm_out_sel" type="string">
+          <ipxact:name>gui_dsm_out_sel</ipxact:name>
+          <ipxact:displayName>DSM Order</ipxact:displayName>
+          <ipxact:value>1st_order</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_use_locked" type="bit">
+          <ipxact:name>gui_use_locked</ipxact:name>
+          <ipxact:displayName>Enable locked output port</ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_en_adv_params" type="bit">
+          <ipxact:name>gui_en_adv_params</ipxact:name>
+          <ipxact:displayName>Enable physical output clock parameters</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_pll_bandwidth_preset" type="string">
+          <ipxact:name>gui_pll_bandwidth_preset</ipxact:name>
+          <ipxact:displayName>PLL Bandwidth Preset</ipxact:displayName>
+          <ipxact:value>Low</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_lock_setting" type="string">
+          <ipxact:name>gui_lock_setting</ipxact:name>
+          <ipxact:displayName>Lock Threshold Setting</ipxact:displayName>
+          <ipxact:value>Low Lock Time</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_pll_auto_reset" type="bit">
+          <ipxact:name>gui_pll_auto_reset</ipxact:name>
+          <ipxact:displayName>PLL Auto Reset</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_en_lvds_ports" type="string">
+          <ipxact:name>gui_en_lvds_ports</ipxact:name>
+          <ipxact:displayName>Access to PLL LVDS_CLK/LOADEN output port</ipxact:displayName>
+          <ipxact:value>Disabled</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_operation_mode" type="string">
+          <ipxact:name>gui_operation_mode</ipxact:name>
+          <ipxact:displayName>Compensation Mode</ipxact:displayName>
+          <ipxact:value>source synchronous</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_feedback_clock" type="string">
+          <ipxact:name>gui_feedback_clock</ipxact:name>
+          <ipxact:displayName>Feedback Clock</ipxact:displayName>
+          <ipxact:value>Global Clock</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_clock_to_compensate" type="int">
+          <ipxact:name>gui_clock_to_compensate</ipxact:name>
+          <ipxact:displayName>Compensated Outclk</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_use_NDFB_modes" type="bit">
+          <ipxact:name>gui_use_NDFB_modes</ipxact:name>
+          <ipxact:displayName>Use Nondedicated Feedback Path</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_refclk_switch" type="bit">
+          <ipxact:name>gui_refclk_switch</ipxact:name>
+          <ipxact:displayName>Create a second input clock signal 'refclk1'</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_refclk1_frequency" type="real">
+          <ipxact:name>gui_refclk1_frequency</ipxact:name>
+          <ipxact:displayName>Second Reference Clock Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_en_phout_ports" type="bit">
+          <ipxact:name>gui_en_phout_ports</ipxact:name>
+          <ipxact:displayName>Enable access to PLL DPA output port</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phout_division" type="int">
+          <ipxact:name>gui_phout_division</ipxact:name>
+          <ipxact:displayName>PLL DPA output division</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_en_extclkout_ports" type="bit">
+          <ipxact:name>gui_en_extclkout_ports</ipxact:name>
+          <ipxact:displayName>Enable access to PLL external clock output port</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_number_of_clocks" type="int">
+          <ipxact:name>gui_number_of_clocks</ipxact:name>
+          <ipxact:displayName>Number Of Clocks</ipxact:displayName>
+          <ipxact:value>2</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_multiply_factor" type="int">
+          <ipxact:name>gui_multiply_factor</ipxact:name>
+          <ipxact:displayName>Multiply Factor (M-Counter)</ipxact:displayName>
+          <ipxact:value>6</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_divide_factor_n" type="int">
+          <ipxact:name>gui_divide_factor_n</ipxact:name>
+          <ipxact:displayName>Divide Factor (N-Counter)</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_frac_multiply_factor" type="longint">
+          <ipxact:name>gui_frac_multiply_factor</ipxact:name>
+          <ipxact:displayName>Fractional Multiply Factor (K)</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_fix_vco_frequency" type="bit">
+          <ipxact:name>gui_fix_vco_frequency</ipxact:name>
+          <ipxact:displayName>Specify VCO frequency</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_fixed_vco_frequency" type="real">
+          <ipxact:name>gui_fixed_vco_frequency</ipxact:name>
+          <ipxact:displayName>Desired VCO Frequency</ipxact:displayName>
+          <ipxact:value>600.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_fixed_vco_frequency_ps" type="real">
+          <ipxact:name>gui_fixed_vco_frequency_ps</ipxact:name>
+          <ipxact:displayName>Desired VCO Frequency</ipxact:displayName>
+          <ipxact:value>1667.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_vco_frequency" type="string">
+          <ipxact:name>gui_vco_frequency</ipxact:name>
+          <ipxact:displayName>Actual VCO Frequency</ipxact:displayName>
+          <ipxact:value>600.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_enable_output_counter_cascading" type="bit">
+          <ipxact:name>gui_enable_output_counter_cascading</ipxact:name>
+          <ipxact:displayName>Enable output counter cascading</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_mif_gen_options" type="string">
+          <ipxact:name>gui_mif_gen_options</ipxact:name>
+          <ipxact:displayName>MIF Generation Options</ipxact:displayName>
+          <ipxact:value>Generate New MIF File</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_new_mif_file_path" type="string">
+          <ipxact:name>gui_new_mif_file_path</ipxact:name>
+          <ipxact:displayName>Path to New MIF file</ipxact:displayName>
+          <ipxact:value>~/pll.mif</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_existing_mif_file_path" type="string">
+          <ipxact:name>gui_existing_mif_file_path</ipxact:name>
+          <ipxact:displayName>Path to Existing MIF file</ipxact:displayName>
+          <ipxact:value>~/pll.mif</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_mif_config_name" type="string">
+          <ipxact:name>gui_mif_config_name</ipxact:name>
+          <ipxact:displayName>Name of Current Configuration</ipxact:displayName>
+          <ipxact:value>unnamed</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_active_clk" type="bit">
+          <ipxact:name>gui_active_clk</ipxact:name>
+          <ipxact:displayName>Create an 'active_clk' signal to indicate the input clock in use</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_clk_bad" type="bit">
+          <ipxact:name>gui_clk_bad</ipxact:name>
+          <ipxact:displayName>Create a 'clkbad' signal for each of the input clocks</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_switchover_mode" type="string">
+          <ipxact:name>gui_switchover_mode</ipxact:name>
+          <ipxact:displayName>Switchover Mode</ipxact:displayName>
+          <ipxact:value>Automatic Switchover</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_switchover_delay" type="int">
+          <ipxact:name>gui_switchover_delay</ipxact:name>
+          <ipxact:displayName>Switchover Delay</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_enable_cascade_out" type="bit">
+          <ipxact:name>gui_enable_cascade_out</ipxact:name>
+          <ipxact:displayName>Create a 'cascade_out' signal to connect to a downstream PLL</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_cascade_outclk_index" type="string">
+          <ipxact:name>gui_cascade_outclk_index</ipxact:name>
+          <ipxact:displayName>cascade_out source</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_enable_cascade_in" type="bit">
+          <ipxact:name>gui_enable_cascade_in</ipxact:name>
+          <ipxact:displayName>Create an 'adjpllin' (cascade in) signal to connect to an upstream PLL through IO Column Cascading</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_enable_permit_cal" type="bit">
+          <ipxact:name>gui_enable_permit_cal</ipxact:name>
+          <ipxact:displayName>Connect to an upstream PLL through Core Clock Network Cascading (create a permit_cal input signal)</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_pll_cascading_mode" type="string">
+          <ipxact:name>gui_pll_cascading_mode</ipxact:name>
+          <ipxact:displayName>Connection Signal Type to Upstream PLL</ipxact:displayName>
+          <ipxact:value>adjpllin</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_enable_mif_dps" type="bit">
+          <ipxact:name>gui_enable_mif_dps</ipxact:name>
+          <ipxact:displayName>Enable Dynamic Phase Shift for MIF streaming</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_dps_cntr" type="string">
+          <ipxact:name>gui_dps_cntr</ipxact:name>
+          <ipxact:displayName>DPS Counter Selection</ipxact:displayName>
+          <ipxact:value>C0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_dps_num" type="int">
+          <ipxact:name>gui_dps_num</ipxact:name>
+          <ipxact:displayName>Number of Dynamic Phase Shifts</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_dps_dir" type="string">
+          <ipxact:name>gui_dps_dir</ipxact:name>
+          <ipxact:displayName>Dynamic Phase Shift Direction</ipxact:displayName>
+          <ipxact:value>Positive</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_extclkout_0_source" type="string">
+          <ipxact:name>gui_extclkout_0_source</ipxact:name>
+          <ipxact:displayName>extclk_out[0] source</ipxact:displayName>
+          <ipxact:value>C0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_extclkout_1_source" type="string">
+          <ipxact:name>gui_extclkout_1_source</ipxact:name>
+          <ipxact:displayName>extclk_out[1] source</ipxact:displayName>
+          <ipxact:value>C0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_clock_name_global" type="bit">
+          <ipxact:name>gui_clock_name_global</ipxact:name>
+          <ipxact:displayName>Give clocks global names</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_clock_name_string0" type="string">
+          <ipxact:name>gui_clock_name_string0</ipxact:name>
+          <ipxact:displayName>Clock Name</ipxact:displayName>
+          <ipxact:value>link_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_clock_name_string1" type="string">
+          <ipxact:name>gui_clock_name_string1</ipxact:name>
+          <ipxact:displayName>Clock Name</ipxact:displayName>
+          <ipxact:value>frame_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_clock_name_string2" type="string">
+          <ipxact:name>gui_clock_name_string2</ipxact:name>
+          <ipxact:displayName>Clock Name</ipxact:displayName>
+          <ipxact:value>outclk2</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_clock_name_string3" type="string">
+          <ipxact:name>gui_clock_name_string3</ipxact:name>
+          <ipxact:displayName>Clock Name</ipxact:displayName>
+          <ipxact:value>outclk3</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_clock_name_string4" type="string">
+          <ipxact:name>gui_clock_name_string4</ipxact:name>
+          <ipxact:displayName>Clock Name</ipxact:displayName>
+          <ipxact:value>outclk4</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_clock_name_string5" type="string">
+          <ipxact:name>gui_clock_name_string5</ipxact:name>
+          <ipxact:displayName>Clock Name</ipxact:displayName>
+          <ipxact:value>outclk5</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_clock_name_string6" type="string">
+          <ipxact:name>gui_clock_name_string6</ipxact:name>
+          <ipxact:displayName>Clock Name</ipxact:displayName>
+          <ipxact:value>outclk6</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_clock_name_string7" type="string">
+          <ipxact:name>gui_clock_name_string7</ipxact:name>
+          <ipxact:displayName>Clock Name</ipxact:displayName>
+          <ipxact:value>outclk7</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_clock_name_string8" type="string">
+          <ipxact:name>gui_clock_name_string8</ipxact:name>
+          <ipxact:displayName>Clock Name</ipxact:displayName>
+          <ipxact:value>outclk8</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_clock_name_string9" type="string">
+          <ipxact:name>gui_clock_name_string9</ipxact:name>
+          <ipxact:displayName>Clock Name</ipxact:displayName>
+          <ipxact:value>outclk9</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_clock_name_string10" type="string">
+          <ipxact:name>gui_clock_name_string10</ipxact:name>
+          <ipxact:displayName>Clock Name</ipxact:displayName>
+          <ipxact:value>outclk10</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_clock_name_string11" type="string">
+          <ipxact:name>gui_clock_name_string11</ipxact:name>
+          <ipxact:displayName>Clock Name</ipxact:displayName>
+          <ipxact:value>outclk11</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_clock_name_string12" type="string">
+          <ipxact:name>gui_clock_name_string12</ipxact:name>
+          <ipxact:displayName>Clock Name</ipxact:displayName>
+          <ipxact:value>outclk12</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_clock_name_string13" type="string">
+          <ipxact:name>gui_clock_name_string13</ipxact:name>
+          <ipxact:displayName>Clock Name</ipxact:displayName>
+          <ipxact:value>outclk13</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_clock_name_string14" type="string">
+          <ipxact:name>gui_clock_name_string14</ipxact:name>
+          <ipxact:displayName>Clock Name</ipxact:displayName>
+          <ipxact:value>outclk14</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_clock_name_string15" type="string">
+          <ipxact:name>gui_clock_name_string15</ipxact:name>
+          <ipxact:displayName>Clock Name</ipxact:displayName>
+          <ipxact:value>outclk15</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_clock_name_string16" type="string">
+          <ipxact:name>gui_clock_name_string16</ipxact:name>
+          <ipxact:displayName>Clock Name</ipxact:displayName>
+          <ipxact:value>outclk16</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_clock_name_string17" type="string">
+          <ipxact:name>gui_clock_name_string17</ipxact:name>
+          <ipxact:displayName>Clock Name</ipxact:displayName>
+          <ipxact:value>outclk17</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_divide_factor_c0" type="int">
+          <ipxact:name>gui_divide_factor_c0</ipxact:name>
+          <ipxact:displayName>Divide Factor (C-Counter)</ipxact:displayName>
+          <ipxact:value>6</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_divide_factor_c1" type="int">
+          <ipxact:name>gui_divide_factor_c1</ipxact:name>
+          <ipxact:displayName>Divide Factor (C-Counter)</ipxact:displayName>
+          <ipxact:value>6</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_divide_factor_c2" type="int">
+          <ipxact:name>gui_divide_factor_c2</ipxact:name>
+          <ipxact:displayName>Divide Factor (C-Counter)</ipxact:displayName>
+          <ipxact:value>6</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_divide_factor_c3" type="int">
+          <ipxact:name>gui_divide_factor_c3</ipxact:name>
+          <ipxact:displayName>Divide Factor (C-Counter)</ipxact:displayName>
+          <ipxact:value>6</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_divide_factor_c4" type="int">
+          <ipxact:name>gui_divide_factor_c4</ipxact:name>
+          <ipxact:displayName>Divide Factor (C-Counter)</ipxact:displayName>
+          <ipxact:value>6</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_divide_factor_c5" type="int">
+          <ipxact:name>gui_divide_factor_c5</ipxact:name>
+          <ipxact:displayName>Divide Factor (C-Counter)</ipxact:displayName>
+          <ipxact:value>6</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_divide_factor_c6" type="int">
+          <ipxact:name>gui_divide_factor_c6</ipxact:name>
+          <ipxact:displayName>Divide Factor (C-Counter)</ipxact:displayName>
+          <ipxact:value>6</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_divide_factor_c7" type="int">
+          <ipxact:name>gui_divide_factor_c7</ipxact:name>
+          <ipxact:displayName>Divide Factor (C-Counter)</ipxact:displayName>
+          <ipxact:value>6</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_divide_factor_c8" type="int">
+          <ipxact:name>gui_divide_factor_c8</ipxact:name>
+          <ipxact:displayName>Divide Factor (C-Counter)</ipxact:displayName>
+          <ipxact:value>6</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_divide_factor_c9" type="int">
+          <ipxact:name>gui_divide_factor_c9</ipxact:name>
+          <ipxact:displayName>Divide Factor (C-Counter)</ipxact:displayName>
+          <ipxact:value>6</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_divide_factor_c10" type="int">
+          <ipxact:name>gui_divide_factor_c10</ipxact:name>
+          <ipxact:displayName>Divide Factor (C-Counter)</ipxact:displayName>
+          <ipxact:value>6</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_divide_factor_c11" type="int">
+          <ipxact:name>gui_divide_factor_c11</ipxact:name>
+          <ipxact:displayName>Divide Factor (C-Counter)</ipxact:displayName>
+          <ipxact:value>6</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_divide_factor_c12" type="int">
+          <ipxact:name>gui_divide_factor_c12</ipxact:name>
+          <ipxact:displayName>Divide Factor (C-Counter)</ipxact:displayName>
+          <ipxact:value>6</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_divide_factor_c13" type="int">
+          <ipxact:name>gui_divide_factor_c13</ipxact:name>
+          <ipxact:displayName>Divide Factor (C-Counter)</ipxact:displayName>
+          <ipxact:value>6</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_divide_factor_c14" type="int">
+          <ipxact:name>gui_divide_factor_c14</ipxact:name>
+          <ipxact:displayName>Divide Factor (C-Counter)</ipxact:displayName>
+          <ipxact:value>6</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_divide_factor_c15" type="int">
+          <ipxact:name>gui_divide_factor_c15</ipxact:name>
+          <ipxact:displayName>Divide Factor (C-Counter)</ipxact:displayName>
+          <ipxact:value>6</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_divide_factor_c16" type="int">
+          <ipxact:name>gui_divide_factor_c16</ipxact:name>
+          <ipxact:displayName>Divide Factor (C-Counter)</ipxact:displayName>
+          <ipxact:value>6</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_divide_factor_c17" type="int">
+          <ipxact:name>gui_divide_factor_c17</ipxact:name>
+          <ipxact:displayName>Divide Factor (C-Counter)</ipxact:displayName>
+          <ipxact:value>6</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_cascade_counter0" type="bit">
+          <ipxact:name>gui_cascade_counter0</ipxact:name>
+          <ipxact:displayName>Make this a cascade counter</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_cascade_counter1" type="bit">
+          <ipxact:name>gui_cascade_counter1</ipxact:name>
+          <ipxact:displayName>Make this a cascade counter</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_cascade_counter2" type="bit">
+          <ipxact:name>gui_cascade_counter2</ipxact:name>
+          <ipxact:displayName>Make this a cascade counter</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_cascade_counter3" type="bit">
+          <ipxact:name>gui_cascade_counter3</ipxact:name>
+          <ipxact:displayName>Make this a cascade counter</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_cascade_counter4" type="bit">
+          <ipxact:name>gui_cascade_counter4</ipxact:name>
+          <ipxact:displayName>Make this a cascade counter</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_cascade_counter5" type="bit">
+          <ipxact:name>gui_cascade_counter5</ipxact:name>
+          <ipxact:displayName>Make this a cascade counter</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_cascade_counter6" type="bit">
+          <ipxact:name>gui_cascade_counter6</ipxact:name>
+          <ipxact:displayName>Make this a cascade counter</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_cascade_counter7" type="bit">
+          <ipxact:name>gui_cascade_counter7</ipxact:name>
+          <ipxact:displayName>Make this a cascade counter</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_cascade_counter8" type="bit">
+          <ipxact:name>gui_cascade_counter8</ipxact:name>
+          <ipxact:displayName>Make this a cascade counter</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_cascade_counter9" type="bit">
+          <ipxact:name>gui_cascade_counter9</ipxact:name>
+          <ipxact:displayName>Make this a cascade counter</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_cascade_counter10" type="bit">
+          <ipxact:name>gui_cascade_counter10</ipxact:name>
+          <ipxact:displayName>Make this a cascade counter</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_cascade_counter11" type="bit">
+          <ipxact:name>gui_cascade_counter11</ipxact:name>
+          <ipxact:displayName>Make this a cascade counter</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_cascade_counter12" type="bit">
+          <ipxact:name>gui_cascade_counter12</ipxact:name>
+          <ipxact:displayName>Make this a cascade counter</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_cascade_counter13" type="bit">
+          <ipxact:name>gui_cascade_counter13</ipxact:name>
+          <ipxact:displayName>Make this a cascade counter</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_cascade_counter14" type="bit">
+          <ipxact:name>gui_cascade_counter14</ipxact:name>
+          <ipxact:displayName>Make this a cascade counter</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_cascade_counter15" type="bit">
+          <ipxact:name>gui_cascade_counter15</ipxact:name>
+          <ipxact:displayName>Make this a cascade counter</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_cascade_counter16" type="bit">
+          <ipxact:name>gui_cascade_counter16</ipxact:name>
+          <ipxact:displayName>Make this a cascade counter</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_cascade_counter17" type="bit">
+          <ipxact:name>gui_cascade_counter17</ipxact:name>
+          <ipxact:displayName>Make this a cascade counter</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency0" type="real">
+          <ipxact:name>gui_output_clock_frequency0</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency1" type="real">
+          <ipxact:name>gui_output_clock_frequency1</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>200.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency2" type="real">
+          <ipxact:name>gui_output_clock_frequency2</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency3" type="real">
+          <ipxact:name>gui_output_clock_frequency3</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency4" type="real">
+          <ipxact:name>gui_output_clock_frequency4</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency5" type="real">
+          <ipxact:name>gui_output_clock_frequency5</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency6" type="real">
+          <ipxact:name>gui_output_clock_frequency6</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency7" type="real">
+          <ipxact:name>gui_output_clock_frequency7</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency8" type="real">
+          <ipxact:name>gui_output_clock_frequency8</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency9" type="real">
+          <ipxact:name>gui_output_clock_frequency9</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency10" type="real">
+          <ipxact:name>gui_output_clock_frequency10</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency11" type="real">
+          <ipxact:name>gui_output_clock_frequency11</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency12" type="real">
+          <ipxact:name>gui_output_clock_frequency12</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency13" type="real">
+          <ipxact:name>gui_output_clock_frequency13</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency14" type="real">
+          <ipxact:name>gui_output_clock_frequency14</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency15" type="real">
+          <ipxact:name>gui_output_clock_frequency15</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency16" type="real">
+          <ipxact:name>gui_output_clock_frequency16</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency17" type="real">
+          <ipxact:name>gui_output_clock_frequency17</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency_ps0" type="real">
+          <ipxact:name>gui_output_clock_frequency_ps0</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>10000.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency_ps1" type="real">
+          <ipxact:name>gui_output_clock_frequency_ps1</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>10000.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency_ps2" type="real">
+          <ipxact:name>gui_output_clock_frequency_ps2</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>10000.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency_ps3" type="real">
+          <ipxact:name>gui_output_clock_frequency_ps3</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>10000.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency_ps4" type="real">
+          <ipxact:name>gui_output_clock_frequency_ps4</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>10000.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency_ps5" type="real">
+          <ipxact:name>gui_output_clock_frequency_ps5</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>10000.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency_ps6" type="real">
+          <ipxact:name>gui_output_clock_frequency_ps6</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>10000.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency_ps7" type="real">
+          <ipxact:name>gui_output_clock_frequency_ps7</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>10000.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency_ps8" type="real">
+          <ipxact:name>gui_output_clock_frequency_ps8</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>10000.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency_ps9" type="real">
+          <ipxact:name>gui_output_clock_frequency_ps9</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>10000.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency_ps10" type="real">
+          <ipxact:name>gui_output_clock_frequency_ps10</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>10000.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency_ps11" type="real">
+          <ipxact:name>gui_output_clock_frequency_ps11</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>10000.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency_ps12" type="real">
+          <ipxact:name>gui_output_clock_frequency_ps12</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>10000.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency_ps13" type="real">
+          <ipxact:name>gui_output_clock_frequency_ps13</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>10000.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency_ps14" type="real">
+          <ipxact:name>gui_output_clock_frequency_ps14</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>10000.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency_ps15" type="real">
+          <ipxact:name>gui_output_clock_frequency_ps15</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>10000.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency_ps16" type="real">
+          <ipxact:name>gui_output_clock_frequency_ps16</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>10000.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_output_clock_frequency_ps17" type="real">
+          <ipxact:name>gui_output_clock_frequency_ps17</ipxact:name>
+          <ipxact:displayName>Desired Frequency</ipxact:displayName>
+          <ipxact:value>10000.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency0" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency0</ipxact:name>
+          <ipxact:displayName>Actual Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency1" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency1</ipxact:name>
+          <ipxact:displayName>Actual Frequency</ipxact:displayName>
+          <ipxact:value>200.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency2" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency2</ipxact:name>
+          <ipxact:displayName>Actual Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency3" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency3</ipxact:name>
+          <ipxact:displayName>Actual Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency4" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency4</ipxact:name>
+          <ipxact:displayName>Actual Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency5" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency5</ipxact:name>
+          <ipxact:displayName>Actual Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency6" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency6</ipxact:name>
+          <ipxact:displayName>Actual Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency7" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency7</ipxact:name>
+          <ipxact:displayName>Actual Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency8" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency8</ipxact:name>
+          <ipxact:displayName>Actual Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency9" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency9</ipxact:name>
+          <ipxact:displayName>Actual Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency10" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency10</ipxact:name>
+          <ipxact:displayName>Actual Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency11" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency11</ipxact:name>
+          <ipxact:displayName>Actual Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency12" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency12</ipxact:name>
+          <ipxact:displayName>Actual Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency13" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency13</ipxact:name>
+          <ipxact:displayName>Actual Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency14" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency14</ipxact:name>
+          <ipxact:displayName>Actual Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency15" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency15</ipxact:name>
+          <ipxact:displayName>Actual Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency16" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency16</ipxact:name>
+          <ipxact:displayName>Actual Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency17" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency17</ipxact:name>
+          <ipxact:displayName>Actual Frequency</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency_range0" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency_range0</ipxact:name>
+          <ipxact:displayName>Legal Frequencies</ipxact:displayName>
+          <ipxact:value>99.521531,99.547511,99.595142,100.0,100.404858,100.452489</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency_range1" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency_range1</ipxact:name>
+          <ipxact:displayName>Legal Frequencies</ipxact:displayName>
+          <ipxact:value>180.0,183.333333,185.714286,200.0,216.666667,220.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency_range2" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency_range2</ipxact:name>
+          <ipxact:displayName>Legal Frequencies</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency_range3" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency_range3</ipxact:name>
+          <ipxact:displayName>Legal Frequencies</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency_range4" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency_range4</ipxact:name>
+          <ipxact:displayName>Legal Frequencies</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency_range5" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency_range5</ipxact:name>
+          <ipxact:displayName>Legal Frequencies</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency_range6" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency_range6</ipxact:name>
+          <ipxact:displayName>Legal Frequencies</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency_range7" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency_range7</ipxact:name>
+          <ipxact:displayName>Legal Frequencies</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency_range8" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency_range8</ipxact:name>
+          <ipxact:displayName>Legal Frequencies</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency_range9" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency_range9</ipxact:name>
+          <ipxact:displayName>Legal Frequencies</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency_range10" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency_range10</ipxact:name>
+          <ipxact:displayName>Legal Frequencies</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency_range11" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency_range11</ipxact:name>
+          <ipxact:displayName>Legal Frequencies</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency_range12" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency_range12</ipxact:name>
+          <ipxact:displayName>Legal Frequencies</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency_range13" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency_range13</ipxact:name>
+          <ipxact:displayName>Legal Frequencies</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency_range14" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency_range14</ipxact:name>
+          <ipxact:displayName>Legal Frequencies</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency_range15" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency_range15</ipxact:name>
+          <ipxact:displayName>Legal Frequencies</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency_range16" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency_range16</ipxact:name>
+          <ipxact:displayName>Legal Frequencies</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_output_clock_frequency_range17" type="string">
+          <ipxact:name>gui_actual_output_clock_frequency_range17</ipxact:name>
+          <ipxact:displayName>Legal Frequencies</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_ps_units0" type="string">
+          <ipxact:name>gui_ps_units0</ipxact:name>
+          <ipxact:displayName>Phase Shift Units</ipxact:displayName>
+          <ipxact:value>ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_ps_units1" type="string">
+          <ipxact:name>gui_ps_units1</ipxact:name>
+          <ipxact:displayName>Phase Shift Units</ipxact:displayName>
+          <ipxact:value>ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_ps_units2" type="string">
+          <ipxact:name>gui_ps_units2</ipxact:name>
+          <ipxact:displayName>Phase Shift Units</ipxact:displayName>
+          <ipxact:value>ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_ps_units3" type="string">
+          <ipxact:name>gui_ps_units3</ipxact:name>
+          <ipxact:displayName>Phase Shift Units</ipxact:displayName>
+          <ipxact:value>ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_ps_units4" type="string">
+          <ipxact:name>gui_ps_units4</ipxact:name>
+          <ipxact:displayName>Phase Shift Units</ipxact:displayName>
+          <ipxact:value>ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_ps_units5" type="string">
+          <ipxact:name>gui_ps_units5</ipxact:name>
+          <ipxact:displayName>Phase Shift Units</ipxact:displayName>
+          <ipxact:value>ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_ps_units6" type="string">
+          <ipxact:name>gui_ps_units6</ipxact:name>
+          <ipxact:displayName>Phase Shift Units</ipxact:displayName>
+          <ipxact:value>ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_ps_units7" type="string">
+          <ipxact:name>gui_ps_units7</ipxact:name>
+          <ipxact:displayName>Phase Shift Units</ipxact:displayName>
+          <ipxact:value>ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_ps_units8" type="string">
+          <ipxact:name>gui_ps_units8</ipxact:name>
+          <ipxact:displayName>Phase Shift Units</ipxact:displayName>
+          <ipxact:value>ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_ps_units9" type="string">
+          <ipxact:name>gui_ps_units9</ipxact:name>
+          <ipxact:displayName>Phase Shift Units</ipxact:displayName>
+          <ipxact:value>ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_ps_units10" type="string">
+          <ipxact:name>gui_ps_units10</ipxact:name>
+          <ipxact:displayName>Phase Shift Units</ipxact:displayName>
+          <ipxact:value>ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_ps_units11" type="string">
+          <ipxact:name>gui_ps_units11</ipxact:name>
+          <ipxact:displayName>Phase Shift Units</ipxact:displayName>
+          <ipxact:value>ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_ps_units12" type="string">
+          <ipxact:name>gui_ps_units12</ipxact:name>
+          <ipxact:displayName>Phase Shift Units</ipxact:displayName>
+          <ipxact:value>ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_ps_units13" type="string">
+          <ipxact:name>gui_ps_units13</ipxact:name>
+          <ipxact:displayName>Phase Shift Units</ipxact:displayName>
+          <ipxact:value>ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_ps_units14" type="string">
+          <ipxact:name>gui_ps_units14</ipxact:name>
+          <ipxact:displayName>Phase Shift Units</ipxact:displayName>
+          <ipxact:value>ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_ps_units15" type="string">
+          <ipxact:name>gui_ps_units15</ipxact:name>
+          <ipxact:displayName>Phase Shift Units</ipxact:displayName>
+          <ipxact:value>ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_ps_units16" type="string">
+          <ipxact:name>gui_ps_units16</ipxact:name>
+          <ipxact:displayName>Phase Shift Units</ipxact:displayName>
+          <ipxact:value>ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_ps_units17" type="string">
+          <ipxact:name>gui_ps_units17</ipxact:name>
+          <ipxact:displayName>Phase Shift Units</ipxact:displayName>
+          <ipxact:value>ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift0" type="real">
+          <ipxact:name>gui_phase_shift0</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift1" type="real">
+          <ipxact:name>gui_phase_shift1</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift2" type="real">
+          <ipxact:name>gui_phase_shift2</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift3" type="real">
+          <ipxact:name>gui_phase_shift3</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift4" type="real">
+          <ipxact:name>gui_phase_shift4</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift5" type="real">
+          <ipxact:name>gui_phase_shift5</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift6" type="real">
+          <ipxact:name>gui_phase_shift6</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift7" type="real">
+          <ipxact:name>gui_phase_shift7</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift8" type="real">
+          <ipxact:name>gui_phase_shift8</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift9" type="real">
+          <ipxact:name>gui_phase_shift9</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift10" type="real">
+          <ipxact:name>gui_phase_shift10</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift11" type="real">
+          <ipxact:name>gui_phase_shift11</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift12" type="real">
+          <ipxact:name>gui_phase_shift12</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift13" type="real">
+          <ipxact:name>gui_phase_shift13</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift14" type="real">
+          <ipxact:name>gui_phase_shift14</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift15" type="real">
+          <ipxact:name>gui_phase_shift15</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift16" type="real">
+          <ipxact:name>gui_phase_shift16</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift17" type="real">
+          <ipxact:name>gui_phase_shift17</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift_deg0" type="real">
+          <ipxact:name>gui_phase_shift_deg0</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift_deg1" type="real">
+          <ipxact:name>gui_phase_shift_deg1</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift_deg2" type="real">
+          <ipxact:name>gui_phase_shift_deg2</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift_deg3" type="real">
+          <ipxact:name>gui_phase_shift_deg3</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift_deg4" type="real">
+          <ipxact:name>gui_phase_shift_deg4</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift_deg5" type="real">
+          <ipxact:name>gui_phase_shift_deg5</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift_deg6" type="real">
+          <ipxact:name>gui_phase_shift_deg6</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift_deg7" type="real">
+          <ipxact:name>gui_phase_shift_deg7</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift_deg8" type="real">
+          <ipxact:name>gui_phase_shift_deg8</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift_deg9" type="real">
+          <ipxact:name>gui_phase_shift_deg9</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift_deg10" type="real">
+          <ipxact:name>gui_phase_shift_deg10</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift_deg11" type="real">
+          <ipxact:name>gui_phase_shift_deg11</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift_deg12" type="real">
+          <ipxact:name>gui_phase_shift_deg12</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift_deg13" type="real">
+          <ipxact:name>gui_phase_shift_deg13</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift_deg14" type="real">
+          <ipxact:name>gui_phase_shift_deg14</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift_deg15" type="real">
+          <ipxact:name>gui_phase_shift_deg15</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift_deg16" type="real">
+          <ipxact:name>gui_phase_shift_deg16</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_phase_shift_deg17" type="real">
+          <ipxact:name>gui_phase_shift_deg17</ipxact:name>
+          <ipxact:displayName>Desired Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift0" type="string">
+          <ipxact:name>gui_actual_phase_shift0</ipxact:name>
+          <ipxact:displayName>Actual phase shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift1" type="string">
+          <ipxact:name>gui_actual_phase_shift1</ipxact:name>
+          <ipxact:displayName>Actual phase shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift2" type="string">
+          <ipxact:name>gui_actual_phase_shift2</ipxact:name>
+          <ipxact:displayName>Actual phase shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift3" type="string">
+          <ipxact:name>gui_actual_phase_shift3</ipxact:name>
+          <ipxact:displayName>Actual phase shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift4" type="string">
+          <ipxact:name>gui_actual_phase_shift4</ipxact:name>
+          <ipxact:displayName>Actual phase shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift5" type="string">
+          <ipxact:name>gui_actual_phase_shift5</ipxact:name>
+          <ipxact:displayName>Actual phase shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift6" type="string">
+          <ipxact:name>gui_actual_phase_shift6</ipxact:name>
+          <ipxact:displayName>Actual phase shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift7" type="string">
+          <ipxact:name>gui_actual_phase_shift7</ipxact:name>
+          <ipxact:displayName>Actual phase shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift8" type="string">
+          <ipxact:name>gui_actual_phase_shift8</ipxact:name>
+          <ipxact:displayName>Actual phase shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift9" type="string">
+          <ipxact:name>gui_actual_phase_shift9</ipxact:name>
+          <ipxact:displayName>Actual phase shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift10" type="string">
+          <ipxact:name>gui_actual_phase_shift10</ipxact:name>
+          <ipxact:displayName>Actual phase shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift11" type="string">
+          <ipxact:name>gui_actual_phase_shift11</ipxact:name>
+          <ipxact:displayName>Actual phase shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift12" type="string">
+          <ipxact:name>gui_actual_phase_shift12</ipxact:name>
+          <ipxact:displayName>Actual phase shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift13" type="string">
+          <ipxact:name>gui_actual_phase_shift13</ipxact:name>
+          <ipxact:displayName>Actual phase shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift14" type="string">
+          <ipxact:name>gui_actual_phase_shift14</ipxact:name>
+          <ipxact:displayName>Actual phase shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift15" type="string">
+          <ipxact:name>gui_actual_phase_shift15</ipxact:name>
+          <ipxact:displayName>Actual phase shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift16" type="string">
+          <ipxact:name>gui_actual_phase_shift16</ipxact:name>
+          <ipxact:displayName>Actual phase shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift17" type="string">
+          <ipxact:name>gui_actual_phase_shift17</ipxact:name>
+          <ipxact:displayName>Actual phase shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_range0" type="string">
+          <ipxact:name>gui_actual_phase_shift_range0</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0,89.3,104.2,125.0,156.2,178.6</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_range1" type="string">
+          <ipxact:name>gui_actual_phase_shift_range1</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0,89.3,104.2,125.0,156.2,178.6</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_range2" type="string">
+          <ipxact:name>gui_actual_phase_shift_range2</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_range3" type="string">
+          <ipxact:name>gui_actual_phase_shift_range3</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_range4" type="string">
+          <ipxact:name>gui_actual_phase_shift_range4</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_range5" type="string">
+          <ipxact:name>gui_actual_phase_shift_range5</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_range6" type="string">
+          <ipxact:name>gui_actual_phase_shift_range6</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_range7" type="string">
+          <ipxact:name>gui_actual_phase_shift_range7</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_range8" type="string">
+          <ipxact:name>gui_actual_phase_shift_range8</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_range9" type="string">
+          <ipxact:name>gui_actual_phase_shift_range9</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_range10" type="string">
+          <ipxact:name>gui_actual_phase_shift_range10</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_range11" type="string">
+          <ipxact:name>gui_actual_phase_shift_range11</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_range12" type="string">
+          <ipxact:name>gui_actual_phase_shift_range12</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_range13" type="string">
+          <ipxact:name>gui_actual_phase_shift_range13</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_range14" type="string">
+          <ipxact:name>gui_actual_phase_shift_range14</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_range15" type="string">
+          <ipxact:name>gui_actual_phase_shift_range15</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_range16" type="string">
+          <ipxact:name>gui_actual_phase_shift_range16</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_range17" type="string">
+          <ipxact:name>gui_actual_phase_shift_range17</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg0" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg0</ipxact:name>
+          <ipxact:displayName>Actual Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg1" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg1</ipxact:name>
+          <ipxact:displayName>Actual Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg2" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg2</ipxact:name>
+          <ipxact:displayName>Actual Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg3" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg3</ipxact:name>
+          <ipxact:displayName>Actual Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg4" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg4</ipxact:name>
+          <ipxact:displayName>Actual Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg5" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg5</ipxact:name>
+          <ipxact:displayName>Actual Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg6" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg6</ipxact:name>
+          <ipxact:displayName>Actual Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg7" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg7</ipxact:name>
+          <ipxact:displayName>Actual Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg8" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg8</ipxact:name>
+          <ipxact:displayName>Actual Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg9" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg9</ipxact:name>
+          <ipxact:displayName>Actual Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg10" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg10</ipxact:name>
+          <ipxact:displayName>Actual Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg11" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg11</ipxact:name>
+          <ipxact:displayName>Actual Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg12" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg12</ipxact:name>
+          <ipxact:displayName>Actual Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg13" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg13</ipxact:name>
+          <ipxact:displayName>Actual Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg14" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg14</ipxact:name>
+          <ipxact:displayName>Actual Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg15" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg15</ipxact:name>
+          <ipxact:displayName>Actual Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg16" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg16</ipxact:name>
+          <ipxact:displayName>Actual Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg17" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg17</ipxact:name>
+          <ipxact:displayName>Actual Phase Shift</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg_range0" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg_range0</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0,3.2,3.8,4.5,5.6,6.4</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg_range1" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg_range1</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0,6.4,7.5,9.0,11.2,12.9</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg_range2" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg_range2</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg_range3" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg_range3</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg_range4" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg_range4</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg_range5" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg_range5</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg_range6" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg_range6</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg_range7" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg_range7</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg_range8" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg_range8</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg_range9" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg_range9</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg_range10" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg_range10</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg_range11" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg_range11</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg_range12" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg_range12</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg_range13" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg_range13</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg_range14" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg_range14</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg_range15" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg_range15</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg_range16" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg_range16</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_phase_shift_deg_range17" type="string">
+          <ipxact:name>gui_actual_phase_shift_deg_range17</ipxact:name>
+          <ipxact:displayName>Legal Phase Shifts</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_duty_cycle0" type="real">
+          <ipxact:name>gui_duty_cycle0</ipxact:name>
+          <ipxact:displayName>Desired Duty Cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_duty_cycle1" type="real">
+          <ipxact:name>gui_duty_cycle1</ipxact:name>
+          <ipxact:displayName>Desired Duty Cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_duty_cycle2" type="real">
+          <ipxact:name>gui_duty_cycle2</ipxact:name>
+          <ipxact:displayName>Desired Duty Cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_duty_cycle3" type="real">
+          <ipxact:name>gui_duty_cycle3</ipxact:name>
+          <ipxact:displayName>Desired Duty Cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_duty_cycle4" type="real">
+          <ipxact:name>gui_duty_cycle4</ipxact:name>
+          <ipxact:displayName>Desired Duty Cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_duty_cycle5" type="real">
+          <ipxact:name>gui_duty_cycle5</ipxact:name>
+          <ipxact:displayName>Desired Duty Cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_duty_cycle6" type="real">
+          <ipxact:name>gui_duty_cycle6</ipxact:name>
+          <ipxact:displayName>Desired Duty Cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_duty_cycle7" type="real">
+          <ipxact:name>gui_duty_cycle7</ipxact:name>
+          <ipxact:displayName>Desired Duty Cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_duty_cycle8" type="real">
+          <ipxact:name>gui_duty_cycle8</ipxact:name>
+          <ipxact:displayName>Desired Duty Cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_duty_cycle9" type="real">
+          <ipxact:name>gui_duty_cycle9</ipxact:name>
+          <ipxact:displayName>Desired Duty Cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_duty_cycle10" type="real">
+          <ipxact:name>gui_duty_cycle10</ipxact:name>
+          <ipxact:displayName>Desired Duty Cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_duty_cycle11" type="real">
+          <ipxact:name>gui_duty_cycle11</ipxact:name>
+          <ipxact:displayName>Desired Duty Cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_duty_cycle12" type="real">
+          <ipxact:name>gui_duty_cycle12</ipxact:name>
+          <ipxact:displayName>Desired Duty Cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_duty_cycle13" type="real">
+          <ipxact:name>gui_duty_cycle13</ipxact:name>
+          <ipxact:displayName>Desired Duty Cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_duty_cycle14" type="real">
+          <ipxact:name>gui_duty_cycle14</ipxact:name>
+          <ipxact:displayName>Desired Duty Cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_duty_cycle15" type="real">
+          <ipxact:name>gui_duty_cycle15</ipxact:name>
+          <ipxact:displayName>Desired Duty Cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_duty_cycle16" type="real">
+          <ipxact:name>gui_duty_cycle16</ipxact:name>
+          <ipxact:displayName>Desired Duty Cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_duty_cycle17" type="real">
+          <ipxact:name>gui_duty_cycle17</ipxact:name>
+          <ipxact:displayName>Desired Duty Cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle0" type="string">
+          <ipxact:name>gui_actual_duty_cycle0</ipxact:name>
+          <ipxact:displayName>Actual duty cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle1" type="string">
+          <ipxact:name>gui_actual_duty_cycle1</ipxact:name>
+          <ipxact:displayName>Actual duty cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle2" type="string">
+          <ipxact:name>gui_actual_duty_cycle2</ipxact:name>
+          <ipxact:displayName>Actual duty cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle3" type="string">
+          <ipxact:name>gui_actual_duty_cycle3</ipxact:name>
+          <ipxact:displayName>Actual duty cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle4" type="string">
+          <ipxact:name>gui_actual_duty_cycle4</ipxact:name>
+          <ipxact:displayName>Actual duty cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle5" type="string">
+          <ipxact:name>gui_actual_duty_cycle5</ipxact:name>
+          <ipxact:displayName>Actual duty cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle6" type="string">
+          <ipxact:name>gui_actual_duty_cycle6</ipxact:name>
+          <ipxact:displayName>Actual duty cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle7" type="string">
+          <ipxact:name>gui_actual_duty_cycle7</ipxact:name>
+          <ipxact:displayName>Actual duty cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle8" type="string">
+          <ipxact:name>gui_actual_duty_cycle8</ipxact:name>
+          <ipxact:displayName>Actual duty cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle9" type="string">
+          <ipxact:name>gui_actual_duty_cycle9</ipxact:name>
+          <ipxact:displayName>Actual duty cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle10" type="string">
+          <ipxact:name>gui_actual_duty_cycle10</ipxact:name>
+          <ipxact:displayName>Actual duty cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle11" type="string">
+          <ipxact:name>gui_actual_duty_cycle11</ipxact:name>
+          <ipxact:displayName>Actual duty cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle12" type="string">
+          <ipxact:name>gui_actual_duty_cycle12</ipxact:name>
+          <ipxact:displayName>Actual duty cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle13" type="string">
+          <ipxact:name>gui_actual_duty_cycle13</ipxact:name>
+          <ipxact:displayName>Actual duty cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle14" type="string">
+          <ipxact:name>gui_actual_duty_cycle14</ipxact:name>
+          <ipxact:displayName>Actual duty cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle15" type="string">
+          <ipxact:name>gui_actual_duty_cycle15</ipxact:name>
+          <ipxact:displayName>Actual duty cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle16" type="string">
+          <ipxact:name>gui_actual_duty_cycle16</ipxact:name>
+          <ipxact:displayName>Actual duty cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle17" type="string">
+          <ipxact:name>gui_actual_duty_cycle17</ipxact:name>
+          <ipxact:displayName>Actual duty cycle</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle_range0" type="string">
+          <ipxact:name>gui_actual_duty_cycle_range0</ipxact:name>
+          <ipxact:displayName>Legal Duty Cycles</ipxact:displayName>
+          <ipxact:value>45.0,45.83,46.43,50.0,53.57,54.17</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle_range1" type="string">
+          <ipxact:name>gui_actual_duty_cycle_range1</ipxact:name>
+          <ipxact:displayName>Legal Duty Cycles</ipxact:displayName>
+          <ipxact:value>40.0,41.67,42.86,50.0,57.14,58.33</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle_range2" type="string">
+          <ipxact:name>gui_actual_duty_cycle_range2</ipxact:name>
+          <ipxact:displayName>Legal Duty Cycles</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle_range3" type="string">
+          <ipxact:name>gui_actual_duty_cycle_range3</ipxact:name>
+          <ipxact:displayName>Legal Duty Cycles</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle_range4" type="string">
+          <ipxact:name>gui_actual_duty_cycle_range4</ipxact:name>
+          <ipxact:displayName>Legal Duty Cycles</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle_range5" type="string">
+          <ipxact:name>gui_actual_duty_cycle_range5</ipxact:name>
+          <ipxact:displayName>Legal Duty Cycles</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle_range6" type="string">
+          <ipxact:name>gui_actual_duty_cycle_range6</ipxact:name>
+          <ipxact:displayName>Legal Duty Cycles</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle_range7" type="string">
+          <ipxact:name>gui_actual_duty_cycle_range7</ipxact:name>
+          <ipxact:displayName>Legal Duty Cycles</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle_range8" type="string">
+          <ipxact:name>gui_actual_duty_cycle_range8</ipxact:name>
+          <ipxact:displayName>Legal Duty Cycles</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle_range9" type="string">
+          <ipxact:name>gui_actual_duty_cycle_range9</ipxact:name>
+          <ipxact:displayName>Legal Duty Cycles</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle_range10" type="string">
+          <ipxact:name>gui_actual_duty_cycle_range10</ipxact:name>
+          <ipxact:displayName>Legal Duty Cycles</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle_range11" type="string">
+          <ipxact:name>gui_actual_duty_cycle_range11</ipxact:name>
+          <ipxact:displayName>Legal Duty Cycles</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle_range12" type="string">
+          <ipxact:name>gui_actual_duty_cycle_range12</ipxact:name>
+          <ipxact:displayName>Legal Duty Cycles</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle_range13" type="string">
+          <ipxact:name>gui_actual_duty_cycle_range13</ipxact:name>
+          <ipxact:displayName>Legal Duty Cycles</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle_range14" type="string">
+          <ipxact:name>gui_actual_duty_cycle_range14</ipxact:name>
+          <ipxact:displayName>Legal Duty Cycles</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle_range15" type="string">
+          <ipxact:name>gui_actual_duty_cycle_range15</ipxact:name>
+          <ipxact:displayName>Legal Duty Cycles</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle_range16" type="string">
+          <ipxact:name>gui_actual_duty_cycle_range16</ipxact:name>
+          <ipxact:displayName>Legal Duty Cycles</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="gui_actual_duty_cycle_range17" type="string">
+          <ipxact:name>gui_actual_duty_cycle_range17</ipxact:name>
+          <ipxact:displayName>Legal Duty Cycles</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="parameterTable_names" type="string">
+          <ipxact:name>parameterTable_names</ipxact:name>
+          <ipxact:displayName>Parameter Names</ipxact:displayName>
+          <ipxact:value>M-Counter Divide Setting,N-Counter Divide Setting,VCO Frequency,C-Counter-0 Divide Setting,C-Counter-1 Divide Setting,C-Counter-2 Divide Setting,C-Counter-3 Divide Setting,C-Counter-4 Divide Setting,C-Counter-5 Divide Setting,C-Counter-6 Divide Setting,C-Counter-7 Divide Setting,C-Counter-8 Divide Setting,PLL Auto Reset,M-Counter Hi Divide,M-Counter Lo Divide,M-Counter Even Duty Enable,M-Counter Bypass Enable,N-Counter Hi Divide,N-Counter Lo Divide,N-Counter Even Duty Enable,N-Counter Bypass Enable,C-Counter-0 Hi Divide,C-Counter-1 Hi Divide,C-Counter-2 Hi Divide,C-Counter-3 Hi Divide,C-Counter-4 Hi Divide,C-Counter-5 Hi Divide,C-Counter-6 Hi Divide,C-Counter-7 Hi Divide,C-Counter-8 Hi Divide,C-Counter-0 Lo Divide,C-Counter-1 Lo Divide,C-Counter-2 Lo Divide,C-Counter-3 Lo Divide,C-Counter-4 Lo Divide,C-Counter-5 Lo Divide,C-Counter-6 Lo Divide,C-Counter-7 Lo Divide,C-Counter-8 Lo Divide,C-Counter-0 Even Duty Enable,C-Counter-1 Even Duty Enable,C-Counter-2 Even Duty Enable,C-Counter-3 Even Duty Enable,C-Counter-4 Even Duty Enable,C-Counter-5 Even Duty Enable,C-Counter-6 Even Duty Enable,C-Counter-7 Even Duty Enable,C-Counter-8 Even Duty Enable,C-Counter-0 Bypass Enable,C-Counter-1 Bypass Enable,C-Counter-2 Bypass Enable,C-Counter-3 Bypass Enable,C-Counter-4 Bypass Enable,C-Counter-5 Bypass Enable,C-Counter-6 Bypass Enable,C-Counter-7 Bypass Enable,C-Counter-8 Bypass Enable,C-Counter-0 Preset,C-Counter-1 Preset,C-Counter-2 Preset,C-Counter-3 Preset,C-Counter-4 Preset,C-Counter-5 Preset,C-Counter-6 Preset,C-Counter-7 Preset,C-Counter-8 Preset,C-Counter-0 Phase Mux Preset,C-Counter-1 Phase Mux Preset,C-Counter-2 Phase Mux Preset,C-Counter-3 Phase Mux Preset,C-Counter-4 Phase Mux Preset,C-Counter-5 Phase Mux Preset,C-Counter-6 Phase Mux Preset,C-Counter-7 Phase Mux Preset,C-Counter-8 Phase Mux Preset,Charge Pump Current,Bandwidth Control</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="parameterTable_values" type="string">
+          <ipxact:name>parameterTable_values</ipxact:name>
+          <ipxact:displayName>Parameter Values</ipxact:displayName>
+          <ipxact:value>4,1,800.0 MHz,8,4,1,1,1,1,1,1,1,false,2,2,false,false,256,256,false,true,4,2,256,256,256,256,256,256,256,4,2,256,256,256,256,256,256,256,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,pll_cp_setting10,pll_bw_res_setting2</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="mifTable_names" type="string">
+          <ipxact:name>mifTable_names</ipxact:name>
+          <ipxact:displayName>MIF File Property</ipxact:displayName>
+          <ipxact:value>The MIF file specified does not yet exist</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="mifTable_values" type="string">
+          <ipxact:name>mifTable_values</ipxact:name>
+          <ipxact:displayName>Values</ipxact:displayName>
+          <ipxact:value></ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_m_cnt_basic" type="int">
+          <ipxact:name>pll_m_cnt_basic</ipxact:name>
+          <ipxact:displayName>pll_m_cnt_basic</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_m_cnt" type="int">
+          <ipxact:name>pll_m_cnt</ipxact:name>
+          <ipxact:displayName>pll_m_cnt</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="prot_mode" type="string">
+          <ipxact:name>prot_mode</ipxact:name>
+          <ipxact:displayName>prot_mode</ipxact:displayName>
+          <ipxact:value>BASIC</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="m_cnt_hi_div" type="int">
+          <ipxact:name>m_cnt_hi_div</ipxact:name>
+          <ipxact:displayName>m_cnt_hi_div</ipxact:displayName>
+          <ipxact:value>2</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="eff_m_cnt" type="int">
+          <ipxact:name>eff_m_cnt</ipxact:name>
+          <ipxact:displayName>eff_m_cnt</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="multiply_factor" type="int">
+          <ipxact:name>multiply_factor</ipxact:name>
+          <ipxact:displayName>multiply_factor</ipxact:displayName>
+          <ipxact:value>4</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="use_core_refclk" type="bit">
+          <ipxact:name>use_core_refclk</ipxact:name>
+          <ipxact:displayName>use_core_refclk</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="m_cnt_lo_div" type="int">
+          <ipxact:name>m_cnt_lo_div</ipxact:name>
+          <ipxact:displayName>m_cnt_lo_div</ipxact:displayName>
+          <ipxact:value>2</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="n_cnt_hi_div" type="int">
+          <ipxact:name>n_cnt_hi_div</ipxact:name>
+          <ipxact:displayName>n_cnt_hi_div</ipxact:displayName>
+          <ipxact:value>256</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="n_cnt_lo_div" type="int">
+          <ipxact:name>n_cnt_lo_div</ipxact:name>
+          <ipxact:displayName>n_cnt_lo_div</ipxact:displayName>
+          <ipxact:value>256</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="m_cnt_bypass_en" type="bit">
+          <ipxact:name>m_cnt_bypass_en</ipxact:name>
+          <ipxact:displayName>m_cnt_bypass_en</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="n_cnt_bypass_en" type="bit">
+          <ipxact:name>n_cnt_bypass_en</ipxact:name>
+          <ipxact:displayName>n_cnt_bypass_en</ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="m_cnt_odd_div_duty_en" type="bit">
+          <ipxact:name>m_cnt_odd_div_duty_en</ipxact:name>
+          <ipxact:displayName>m_cnt_odd_div_duty_en</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="n_cnt_odd_div_duty_en" type="bit">
+          <ipxact:name>n_cnt_odd_div_duty_en</ipxact:name>
+          <ipxact:displayName>n_cnt_odd_div_duty_en</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_vco_div" type="int">
+          <ipxact:name>pll_vco_div</ipxact:name>
+          <ipxact:displayName>pll_vco_div</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_cp_current" type="string">
+          <ipxact:name>pll_cp_current</ipxact:name>
+          <ipxact:displayName>pll_cp_current</ipxact:displayName>
+          <ipxact:value>pll_cp_setting10</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_bwctrl" type="string">
+          <ipxact:name>pll_bwctrl</ipxact:name>
+          <ipxact:displayName>pll_bwctrl</ipxact:displayName>
+          <ipxact:value>pll_bw_res_setting2</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_ripplecap_ctrl" type="string">
+          <ipxact:name>pll_ripplecap_ctrl</ipxact:name>
+          <ipxact:displayName>pll_ripplecap_ctrl</ipxact:displayName>
+          <ipxact:value></ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_fractional_division" type="int">
+          <ipxact:name>pll_fractional_division</ipxact:name>
+          <ipxact:displayName>pll_fractional_division</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="fractional_vco_multiplier" type="bit">
+          <ipxact:name>fractional_vco_multiplier</ipxact:name>
+          <ipxact:displayName>fractional_vco_multiplier</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="reference_clock_frequency" type="string">
+          <ipxact:name>reference_clock_frequency</ipxact:name>
+          <ipxact:displayName>reference_clock_frequency</ipxact:displayName>
+          <ipxact:value>200.0 MHz</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_fractional_cout" type="int">
+          <ipxact:name>pll_fractional_cout</ipxact:name>
+          <ipxact:displayName>pll_fractional_cout</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_dsm_out_sel" type="string">
+          <ipxact:name>pll_dsm_out_sel</ipxact:name>
+          <ipxact:displayName>pll_dsm_out_sel</ipxact:displayName>
+          <ipxact:value>1st_order</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="operation_mode" type="string">
+          <ipxact:name>operation_mode</ipxact:name>
+          <ipxact:displayName>operation_mode</ipxact:displayName>
+          <ipxact:value>source_synchronous</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="number_of_clocks" type="int">
+          <ipxact:name>number_of_clocks</ipxact:name>
+          <ipxact:displayName>number_of_clocks</ipxact:displayName>
+          <ipxact:value>2</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="number_of_outclks" type="int">
+          <ipxact:name>number_of_outclks</ipxact:name>
+          <ipxact:displayName>number_of_outclks</ipxact:displayName>
+          <ipxact:value>2</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_vcoph_div" type="int">
+          <ipxact:name>pll_vcoph_div</ipxact:name>
+          <ipxact:displayName>pll_vcoph_div</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_type" type="string">
+          <ipxact:name>pll_type</ipxact:name>
+          <ipxact:displayName>pll_type</ipxact:displayName>
+          <ipxact:value>Arria 10</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_subtype" type="string">
+          <ipxact:name>pll_subtype</ipxact:name>
+          <ipxact:displayName>pll_subtype</ipxact:displayName>
+          <ipxact:value>General</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_output_clk_frequency" type="string">
+          <ipxact:name>pll_output_clk_frequency</ipxact:name>
+          <ipxact:displayName>pll_output_clk_frequency</ipxact:displayName>
+          <ipxact:value>800.0 MHz</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_pfd_frequency" type="string">
+          <ipxact:name>pll_pfd_frequency</ipxact:name>
+          <ipxact:displayName>pll_pfd_frequency</ipxact:displayName>
+          <ipxact:value>200.0 MHz</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="mimic_fbclk_type" type="string">
+          <ipxact:name>mimic_fbclk_type</ipxact:name>
+          <ipxact:displayName>mimic_fbclk_type</ipxact:displayName>
+          <ipxact:value>gclk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_bw_sel" type="string">
+          <ipxact:name>pll_bw_sel</ipxact:name>
+          <ipxact:displayName>pll_bw_sel</ipxact:displayName>
+          <ipxact:value>Low</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_slf_rst" type="bit">
+          <ipxact:name>pll_slf_rst</ipxact:name>
+          <ipxact:displayName>pll_slf_rst</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_fbclk_mux_1" type="string">
+          <ipxact:name>pll_fbclk_mux_1</ipxact:name>
+          <ipxact:displayName>pll_fbclk_mux_1</ipxact:displayName>
+          <ipxact:value>pll_fbclk_mux_1_glb</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_fbclk_mux_2" type="string">
+          <ipxact:name>pll_fbclk_mux_2</ipxact:name>
+          <ipxact:displayName>pll_fbclk_mux_2</ipxact:displayName>
+          <ipxact:value>pll_fbclk_mux_2_fb_1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_m_cnt_in_src" type="string">
+          <ipxact:name>pll_m_cnt_in_src</ipxact:name>
+          <ipxact:displayName>pll_m_cnt_in_src</ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_clkin_0_src" type="string">
+          <ipxact:name>pll_clkin_0_src</ipxact:name>
+          <ipxact:displayName>pll_clkin_0_src</ipxact:displayName>
+          <ipxact:value>clk_0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="refclk1_frequency" type="string">
+          <ipxact:name>refclk1_frequency</ipxact:name>
+          <ipxact:displayName>refclk1_frequency</ipxact:displayName>
+          <ipxact:value>100.0 MHz</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_clk_loss_sw_en" type="bit">
+          <ipxact:name>pll_clk_loss_sw_en</ipxact:name>
+          <ipxact:displayName>pll_clk_loss_sw_en</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_manu_clk_sw_en" type="bit">
+          <ipxact:name>pll_manu_clk_sw_en</ipxact:name>
+          <ipxact:displayName>pll_manu_clk_sw_en</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_auto_clk_sw_en" type="bit">
+          <ipxact:name>pll_auto_clk_sw_en</ipxact:name>
+          <ipxact:displayName>pll_auto_clk_sw_en</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_clkin_1_src" type="string">
+          <ipxact:name>pll_clkin_1_src</ipxact:name>
+          <ipxact:displayName>pll_clkin_1_src</ipxact:displayName>
+          <ipxact:value>clk_0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_clk_sw_dly" type="int">
+          <ipxact:name>pll_clk_sw_dly</ipxact:name>
+          <ipxact:displayName>pll_clk_sw_dly</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_extclk_0_cnt_src" type="string">
+          <ipxact:name>pll_extclk_0_cnt_src</ipxact:name>
+          <ipxact:displayName>pll_extclk_0_cnt_src</ipxact:displayName>
+          <ipxact:value>pll_extclk_cnt_src_vss</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_extclk_1_cnt_src" type="string">
+          <ipxact:name>pll_extclk_1_cnt_src</ipxact:name>
+          <ipxact:displayName>pll_extclk_1_cnt_src</ipxact:displayName>
+          <ipxact:value>pll_extclk_cnt_src_vss</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_lock_fltr_cfg" type="int">
+          <ipxact:name>pll_lock_fltr_cfg</ipxact:name>
+          <ipxact:displayName>pll_lock_fltr_cfg</ipxact:displayName>
+          <ipxact:value>100</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_unlock_fltr_cfg" type="int">
+          <ipxact:name>pll_unlock_fltr_cfg</ipxact:name>
+          <ipxact:displayName>pll_unlock_fltr_cfg</ipxact:displayName>
+          <ipxact:value>2</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="lock_mode" type="string">
+          <ipxact:name>lock_mode</ipxact:name>
+          <ipxact:displayName>lock_mode</ipxact:displayName>
+          <ipxact:value>low_lock_time</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clock_to_compensate" type="int">
+          <ipxact:name>clock_to_compensate</ipxact:name>
+          <ipxact:displayName>clock_to_compensate</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clock_name_global" type="bit">
+          <ipxact:name>clock_name_global</ipxact:name>
+          <ipxact:displayName>clock_name_global</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_freqcal_en" type="bit">
+          <ipxact:name>pll_freqcal_en</ipxact:name>
+          <ipxact:displayName>pll_freqcal_en</ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_defer_cal_user_mode" type="bit">
+          <ipxact:name>pll_defer_cal_user_mode</ipxact:name>
+          <ipxact:displayName>pll_defer_cal_user_mode</ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="dprio_interface_sel" type="int">
+          <ipxact:name>dprio_interface_sel</ipxact:name>
+          <ipxact:displayName>dprio_interface_sel</ipxact:displayName>
+          <ipxact:value>3</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="merging_permitted" type="bit">
+          <ipxact:name>merging_permitted</ipxact:name>
+          <ipxact:displayName>merging_permitted</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_hi_div0" type="int">
+          <ipxact:name>c_cnt_hi_div0</ipxact:name>
+          <ipxact:displayName>c_cnt_hi_div0</ipxact:displayName>
+          <ipxact:value>4</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_hi_div1" type="int">
+          <ipxact:name>c_cnt_hi_div1</ipxact:name>
+          <ipxact:displayName>c_cnt_hi_div1</ipxact:displayName>
+          <ipxact:value>2</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_hi_div2" type="int">
+          <ipxact:name>c_cnt_hi_div2</ipxact:name>
+          <ipxact:displayName>c_cnt_hi_div2</ipxact:displayName>
+          <ipxact:value>256</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_hi_div3" type="int">
+          <ipxact:name>c_cnt_hi_div3</ipxact:name>
+          <ipxact:displayName>c_cnt_hi_div3</ipxact:displayName>
+          <ipxact:value>256</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_hi_div4" type="int">
+          <ipxact:name>c_cnt_hi_div4</ipxact:name>
+          <ipxact:displayName>c_cnt_hi_div4</ipxact:displayName>
+          <ipxact:value>256</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_hi_div5" type="int">
+          <ipxact:name>c_cnt_hi_div5</ipxact:name>
+          <ipxact:displayName>c_cnt_hi_div5</ipxact:displayName>
+          <ipxact:value>256</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_hi_div6" type="int">
+          <ipxact:name>c_cnt_hi_div6</ipxact:name>
+          <ipxact:displayName>c_cnt_hi_div6</ipxact:displayName>
+          <ipxact:value>256</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_hi_div7" type="int">
+          <ipxact:name>c_cnt_hi_div7</ipxact:name>
+          <ipxact:displayName>c_cnt_hi_div7</ipxact:displayName>
+          <ipxact:value>256</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_hi_div8" type="int">
+          <ipxact:name>c_cnt_hi_div8</ipxact:name>
+          <ipxact:displayName>c_cnt_hi_div8</ipxact:displayName>
+          <ipxact:value>256</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_hi_div9" type="int">
+          <ipxact:name>c_cnt_hi_div9</ipxact:name>
+          <ipxact:displayName>c_cnt_hi_div9</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_hi_div10" type="int">
+          <ipxact:name>c_cnt_hi_div10</ipxact:name>
+          <ipxact:displayName>c_cnt_hi_div10</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_hi_div11" type="int">
+          <ipxact:name>c_cnt_hi_div11</ipxact:name>
+          <ipxact:displayName>c_cnt_hi_div11</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_hi_div12" type="int">
+          <ipxact:name>c_cnt_hi_div12</ipxact:name>
+          <ipxact:displayName>c_cnt_hi_div12</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_hi_div13" type="int">
+          <ipxact:name>c_cnt_hi_div13</ipxact:name>
+          <ipxact:displayName>c_cnt_hi_div13</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_hi_div14" type="int">
+          <ipxact:name>c_cnt_hi_div14</ipxact:name>
+          <ipxact:displayName>c_cnt_hi_div14</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_hi_div15" type="int">
+          <ipxact:name>c_cnt_hi_div15</ipxact:name>
+          <ipxact:displayName>c_cnt_hi_div15</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_hi_div16" type="int">
+          <ipxact:name>c_cnt_hi_div16</ipxact:name>
+          <ipxact:displayName>c_cnt_hi_div16</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_hi_div17" type="int">
+          <ipxact:name>c_cnt_hi_div17</ipxact:name>
+          <ipxact:displayName>c_cnt_hi_div17</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_lo_div0" type="int">
+          <ipxact:name>c_cnt_lo_div0</ipxact:name>
+          <ipxact:displayName>c_cnt_lo_div0</ipxact:displayName>
+          <ipxact:value>4</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_lo_div1" type="int">
+          <ipxact:name>c_cnt_lo_div1</ipxact:name>
+          <ipxact:displayName>c_cnt_lo_div1</ipxact:displayName>
+          <ipxact:value>2</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_lo_div2" type="int">
+          <ipxact:name>c_cnt_lo_div2</ipxact:name>
+          <ipxact:displayName>c_cnt_lo_div2</ipxact:displayName>
+          <ipxact:value>256</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_lo_div3" type="int">
+          <ipxact:name>c_cnt_lo_div3</ipxact:name>
+          <ipxact:displayName>c_cnt_lo_div3</ipxact:displayName>
+          <ipxact:value>256</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_lo_div4" type="int">
+          <ipxact:name>c_cnt_lo_div4</ipxact:name>
+          <ipxact:displayName>c_cnt_lo_div4</ipxact:displayName>
+          <ipxact:value>256</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_lo_div5" type="int">
+          <ipxact:name>c_cnt_lo_div5</ipxact:name>
+          <ipxact:displayName>c_cnt_lo_div5</ipxact:displayName>
+          <ipxact:value>256</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_lo_div6" type="int">
+          <ipxact:name>c_cnt_lo_div6</ipxact:name>
+          <ipxact:displayName>c_cnt_lo_div6</ipxact:displayName>
+          <ipxact:value>256</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_lo_div7" type="int">
+          <ipxact:name>c_cnt_lo_div7</ipxact:name>
+          <ipxact:displayName>c_cnt_lo_div7</ipxact:displayName>
+          <ipxact:value>256</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_lo_div8" type="int">
+          <ipxact:name>c_cnt_lo_div8</ipxact:name>
+          <ipxact:displayName>c_cnt_lo_div8</ipxact:displayName>
+          <ipxact:value>256</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_lo_div9" type="int">
+          <ipxact:name>c_cnt_lo_div9</ipxact:name>
+          <ipxact:displayName>c_cnt_lo_div9</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_lo_div10" type="int">
+          <ipxact:name>c_cnt_lo_div10</ipxact:name>
+          <ipxact:displayName>c_cnt_lo_div10</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_lo_div11" type="int">
+          <ipxact:name>c_cnt_lo_div11</ipxact:name>
+          <ipxact:displayName>c_cnt_lo_div11</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_lo_div12" type="int">
+          <ipxact:name>c_cnt_lo_div12</ipxact:name>
+          <ipxact:displayName>c_cnt_lo_div12</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_lo_div13" type="int">
+          <ipxact:name>c_cnt_lo_div13</ipxact:name>
+          <ipxact:displayName>c_cnt_lo_div13</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_lo_div14" type="int">
+          <ipxact:name>c_cnt_lo_div14</ipxact:name>
+          <ipxact:displayName>c_cnt_lo_div14</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_lo_div15" type="int">
+          <ipxact:name>c_cnt_lo_div15</ipxact:name>
+          <ipxact:displayName>c_cnt_lo_div15</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_lo_div16" type="int">
+          <ipxact:name>c_cnt_lo_div16</ipxact:name>
+          <ipxact:displayName>c_cnt_lo_div16</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_lo_div17" type="int">
+          <ipxact:name>c_cnt_lo_div17</ipxact:name>
+          <ipxact:displayName>c_cnt_lo_div17</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_prst0" type="int">
+          <ipxact:name>c_cnt_prst0</ipxact:name>
+          <ipxact:displayName>c_cnt_prst0</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_prst1" type="int">
+          <ipxact:name>c_cnt_prst1</ipxact:name>
+          <ipxact:displayName>c_cnt_prst1</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_prst2" type="int">
+          <ipxact:name>c_cnt_prst2</ipxact:name>
+          <ipxact:displayName>c_cnt_prst2</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_prst3" type="int">
+          <ipxact:name>c_cnt_prst3</ipxact:name>
+          <ipxact:displayName>c_cnt_prst3</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_prst4" type="int">
+          <ipxact:name>c_cnt_prst4</ipxact:name>
+          <ipxact:displayName>c_cnt_prst4</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_prst5" type="int">
+          <ipxact:name>c_cnt_prst5</ipxact:name>
+          <ipxact:displayName>c_cnt_prst5</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_prst6" type="int">
+          <ipxact:name>c_cnt_prst6</ipxact:name>
+          <ipxact:displayName>c_cnt_prst6</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_prst7" type="int">
+          <ipxact:name>c_cnt_prst7</ipxact:name>
+          <ipxact:displayName>c_cnt_prst7</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_prst8" type="int">
+          <ipxact:name>c_cnt_prst8</ipxact:name>
+          <ipxact:displayName>c_cnt_prst8</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_prst9" type="int">
+          <ipxact:name>c_cnt_prst9</ipxact:name>
+          <ipxact:displayName>c_cnt_prst9</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_prst10" type="int">
+          <ipxact:name>c_cnt_prst10</ipxact:name>
+          <ipxact:displayName>c_cnt_prst10</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_prst11" type="int">
+          <ipxact:name>c_cnt_prst11</ipxact:name>
+          <ipxact:displayName>c_cnt_prst11</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_prst12" type="int">
+          <ipxact:name>c_cnt_prst12</ipxact:name>
+          <ipxact:displayName>c_cnt_prst12</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_prst13" type="int">
+          <ipxact:name>c_cnt_prst13</ipxact:name>
+          <ipxact:displayName>c_cnt_prst13</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_prst14" type="int">
+          <ipxact:name>c_cnt_prst14</ipxact:name>
+          <ipxact:displayName>c_cnt_prst14</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_prst15" type="int">
+          <ipxact:name>c_cnt_prst15</ipxact:name>
+          <ipxact:displayName>c_cnt_prst15</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_prst16" type="int">
+          <ipxact:name>c_cnt_prst16</ipxact:name>
+          <ipxact:displayName>c_cnt_prst16</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_prst17" type="int">
+          <ipxact:name>c_cnt_prst17</ipxact:name>
+          <ipxact:displayName>c_cnt_prst17</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_ph_mux_prst0" type="int">
+          <ipxact:name>c_cnt_ph_mux_prst0</ipxact:name>
+          <ipxact:displayName>c_cnt_ph_mux_prst0</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_ph_mux_prst1" type="int">
+          <ipxact:name>c_cnt_ph_mux_prst1</ipxact:name>
+          <ipxact:displayName>c_cnt_ph_mux_prst1</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_ph_mux_prst2" type="int">
+          <ipxact:name>c_cnt_ph_mux_prst2</ipxact:name>
+          <ipxact:displayName>c_cnt_ph_mux_prst2</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_ph_mux_prst3" type="int">
+          <ipxact:name>c_cnt_ph_mux_prst3</ipxact:name>
+          <ipxact:displayName>c_cnt_ph_mux_prst3</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_ph_mux_prst4" type="int">
+          <ipxact:name>c_cnt_ph_mux_prst4</ipxact:name>
+          <ipxact:displayName>c_cnt_ph_mux_prst4</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_ph_mux_prst5" type="int">
+          <ipxact:name>c_cnt_ph_mux_prst5</ipxact:name>
+          <ipxact:displayName>c_cnt_ph_mux_prst5</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_ph_mux_prst6" type="int">
+          <ipxact:name>c_cnt_ph_mux_prst6</ipxact:name>
+          <ipxact:displayName>c_cnt_ph_mux_prst6</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_ph_mux_prst7" type="int">
+          <ipxact:name>c_cnt_ph_mux_prst7</ipxact:name>
+          <ipxact:displayName>c_cnt_ph_mux_prst7</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_ph_mux_prst8" type="int">
+          <ipxact:name>c_cnt_ph_mux_prst8</ipxact:name>
+          <ipxact:displayName>c_cnt_ph_mux_prst8</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_ph_mux_prst9" type="int">
+          <ipxact:name>c_cnt_ph_mux_prst9</ipxact:name>
+          <ipxact:displayName>c_cnt_ph_mux_prst9</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_ph_mux_prst10" type="int">
+          <ipxact:name>c_cnt_ph_mux_prst10</ipxact:name>
+          <ipxact:displayName>c_cnt_ph_mux_prst10</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_ph_mux_prst11" type="int">
+          <ipxact:name>c_cnt_ph_mux_prst11</ipxact:name>
+          <ipxact:displayName>c_cnt_ph_mux_prst11</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_ph_mux_prst12" type="int">
+          <ipxact:name>c_cnt_ph_mux_prst12</ipxact:name>
+          <ipxact:displayName>c_cnt_ph_mux_prst12</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_ph_mux_prst13" type="int">
+          <ipxact:name>c_cnt_ph_mux_prst13</ipxact:name>
+          <ipxact:displayName>c_cnt_ph_mux_prst13</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_ph_mux_prst14" type="int">
+          <ipxact:name>c_cnt_ph_mux_prst14</ipxact:name>
+          <ipxact:displayName>c_cnt_ph_mux_prst14</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_ph_mux_prst15" type="int">
+          <ipxact:name>c_cnt_ph_mux_prst15</ipxact:name>
+          <ipxact:displayName>c_cnt_ph_mux_prst15</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_ph_mux_prst16" type="int">
+          <ipxact:name>c_cnt_ph_mux_prst16</ipxact:name>
+          <ipxact:displayName>c_cnt_ph_mux_prst16</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_ph_mux_prst17" type="int">
+          <ipxact:name>c_cnt_ph_mux_prst17</ipxact:name>
+          <ipxact:displayName>c_cnt_ph_mux_prst17</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_in_src0" type="string">
+          <ipxact:name>c_cnt_in_src0</ipxact:name>
+          <ipxact:displayName>c_cnt_in_src0</ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_in_src1" type="string">
+          <ipxact:name>c_cnt_in_src1</ipxact:name>
+          <ipxact:displayName>c_cnt_in_src1</ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_in_src2" type="string">
+          <ipxact:name>c_cnt_in_src2</ipxact:name>
+          <ipxact:displayName>c_cnt_in_src2</ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_in_src3" type="string">
+          <ipxact:name>c_cnt_in_src3</ipxact:name>
+          <ipxact:displayName>c_cnt_in_src3</ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_in_src4" type="string">
+          <ipxact:name>c_cnt_in_src4</ipxact:name>
+          <ipxact:displayName>c_cnt_in_src4</ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_in_src5" type="string">
+          <ipxact:name>c_cnt_in_src5</ipxact:name>
+          <ipxact:displayName>c_cnt_in_src5</ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_in_src6" type="string">
+          <ipxact:name>c_cnt_in_src6</ipxact:name>
+          <ipxact:displayName>c_cnt_in_src6</ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_in_src7" type="string">
+          <ipxact:name>c_cnt_in_src7</ipxact:name>
+          <ipxact:displayName>c_cnt_in_src7</ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_in_src8" type="string">
+          <ipxact:name>c_cnt_in_src8</ipxact:name>
+          <ipxact:displayName>c_cnt_in_src8</ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_in_src9" type="string">
+          <ipxact:name>c_cnt_in_src9</ipxact:name>
+          <ipxact:displayName>c_cnt_in_src9</ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_in_src10" type="string">
+          <ipxact:name>c_cnt_in_src10</ipxact:name>
+          <ipxact:displayName>c_cnt_in_src10</ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_in_src11" type="string">
+          <ipxact:name>c_cnt_in_src11</ipxact:name>
+          <ipxact:displayName>c_cnt_in_src11</ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_in_src12" type="string">
+          <ipxact:name>c_cnt_in_src12</ipxact:name>
+          <ipxact:displayName>c_cnt_in_src12</ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_in_src13" type="string">
+          <ipxact:name>c_cnt_in_src13</ipxact:name>
+          <ipxact:displayName>c_cnt_in_src13</ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_in_src14" type="string">
+          <ipxact:name>c_cnt_in_src14</ipxact:name>
+          <ipxact:displayName>c_cnt_in_src14</ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_in_src15" type="string">
+          <ipxact:name>c_cnt_in_src15</ipxact:name>
+          <ipxact:displayName>c_cnt_in_src15</ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_in_src16" type="string">
+          <ipxact:name>c_cnt_in_src16</ipxact:name>
+          <ipxact:displayName>c_cnt_in_src16</ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_in_src17" type="string">
+          <ipxact:name>c_cnt_in_src17</ipxact:name>
+          <ipxact:displayName>c_cnt_in_src17</ipxact:displayName>
+          <ipxact:value>c_m_cnt_in_src_ph_mux_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_bypass_en0" type="bit">
+          <ipxact:name>c_cnt_bypass_en0</ipxact:name>
+          <ipxact:displayName>c_cnt_bypass_en0</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_bypass_en1" type="bit">
+          <ipxact:name>c_cnt_bypass_en1</ipxact:name>
+          <ipxact:displayName>c_cnt_bypass_en1</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_bypass_en2" type="bit">
+          <ipxact:name>c_cnt_bypass_en2</ipxact:name>
+          <ipxact:displayName>c_cnt_bypass_en2</ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_bypass_en3" type="bit">
+          <ipxact:name>c_cnt_bypass_en3</ipxact:name>
+          <ipxact:displayName>c_cnt_bypass_en3</ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_bypass_en4" type="bit">
+          <ipxact:name>c_cnt_bypass_en4</ipxact:name>
+          <ipxact:displayName>c_cnt_bypass_en4</ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_bypass_en5" type="bit">
+          <ipxact:name>c_cnt_bypass_en5</ipxact:name>
+          <ipxact:displayName>c_cnt_bypass_en5</ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_bypass_en6" type="bit">
+          <ipxact:name>c_cnt_bypass_en6</ipxact:name>
+          <ipxact:displayName>c_cnt_bypass_en6</ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_bypass_en7" type="bit">
+          <ipxact:name>c_cnt_bypass_en7</ipxact:name>
+          <ipxact:displayName>c_cnt_bypass_en7</ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_bypass_en8" type="bit">
+          <ipxact:name>c_cnt_bypass_en8</ipxact:name>
+          <ipxact:displayName>c_cnt_bypass_en8</ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_bypass_en9" type="bit">
+          <ipxact:name>c_cnt_bypass_en9</ipxact:name>
+          <ipxact:displayName>c_cnt_bypass_en9</ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_bypass_en10" type="bit">
+          <ipxact:name>c_cnt_bypass_en10</ipxact:name>
+          <ipxact:displayName>c_cnt_bypass_en10</ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_bypass_en11" type="bit">
+          <ipxact:name>c_cnt_bypass_en11</ipxact:name>
+          <ipxact:displayName>c_cnt_bypass_en11</ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_bypass_en12" type="bit">
+          <ipxact:name>c_cnt_bypass_en12</ipxact:name>
+          <ipxact:displayName>c_cnt_bypass_en12</ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_bypass_en13" type="bit">
+          <ipxact:name>c_cnt_bypass_en13</ipxact:name>
+          <ipxact:displayName>c_cnt_bypass_en13</ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_bypass_en14" type="bit">
+          <ipxact:name>c_cnt_bypass_en14</ipxact:name>
+          <ipxact:displayName>c_cnt_bypass_en14</ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_bypass_en15" type="bit">
+          <ipxact:name>c_cnt_bypass_en15</ipxact:name>
+          <ipxact:displayName>c_cnt_bypass_en15</ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_bypass_en16" type="bit">
+          <ipxact:name>c_cnt_bypass_en16</ipxact:name>
+          <ipxact:displayName>c_cnt_bypass_en16</ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_bypass_en17" type="bit">
+          <ipxact:name>c_cnt_bypass_en17</ipxact:name>
+          <ipxact:displayName>c_cnt_bypass_en17</ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_odd_div_duty_en0" type="bit">
+          <ipxact:name>c_cnt_odd_div_duty_en0</ipxact:name>
+          <ipxact:displayName>c_cnt_odd_div_duty_en0</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_odd_div_duty_en1" type="bit">
+          <ipxact:name>c_cnt_odd_div_duty_en1</ipxact:name>
+          <ipxact:displayName>c_cnt_odd_div_duty_en1</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_odd_div_duty_en2" type="bit">
+          <ipxact:name>c_cnt_odd_div_duty_en2</ipxact:name>
+          <ipxact:displayName>c_cnt_odd_div_duty_en2</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_odd_div_duty_en3" type="bit">
+          <ipxact:name>c_cnt_odd_div_duty_en3</ipxact:name>
+          <ipxact:displayName>c_cnt_odd_div_duty_en3</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_odd_div_duty_en4" type="bit">
+          <ipxact:name>c_cnt_odd_div_duty_en4</ipxact:name>
+          <ipxact:displayName>c_cnt_odd_div_duty_en4</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_odd_div_duty_en5" type="bit">
+          <ipxact:name>c_cnt_odd_div_duty_en5</ipxact:name>
+          <ipxact:displayName>c_cnt_odd_div_duty_en5</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_odd_div_duty_en6" type="bit">
+          <ipxact:name>c_cnt_odd_div_duty_en6</ipxact:name>
+          <ipxact:displayName>c_cnt_odd_div_duty_en6</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_odd_div_duty_en7" type="bit">
+          <ipxact:name>c_cnt_odd_div_duty_en7</ipxact:name>
+          <ipxact:displayName>c_cnt_odd_div_duty_en7</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_odd_div_duty_en8" type="bit">
+          <ipxact:name>c_cnt_odd_div_duty_en8</ipxact:name>
+          <ipxact:displayName>c_cnt_odd_div_duty_en8</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_odd_div_duty_en9" type="bit">
+          <ipxact:name>c_cnt_odd_div_duty_en9</ipxact:name>
+          <ipxact:displayName>c_cnt_odd_div_duty_en9</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_odd_div_duty_en10" type="bit">
+          <ipxact:name>c_cnt_odd_div_duty_en10</ipxact:name>
+          <ipxact:displayName>c_cnt_odd_div_duty_en10</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_odd_div_duty_en11" type="bit">
+          <ipxact:name>c_cnt_odd_div_duty_en11</ipxact:name>
+          <ipxact:displayName>c_cnt_odd_div_duty_en11</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_odd_div_duty_en12" type="bit">
+          <ipxact:name>c_cnt_odd_div_duty_en12</ipxact:name>
+          <ipxact:displayName>c_cnt_odd_div_duty_en12</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_odd_div_duty_en13" type="bit">
+          <ipxact:name>c_cnt_odd_div_duty_en13</ipxact:name>
+          <ipxact:displayName>c_cnt_odd_div_duty_en13</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_odd_div_duty_en14" type="bit">
+          <ipxact:name>c_cnt_odd_div_duty_en14</ipxact:name>
+          <ipxact:displayName>c_cnt_odd_div_duty_en14</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_odd_div_duty_en15" type="bit">
+          <ipxact:name>c_cnt_odd_div_duty_en15</ipxact:name>
+          <ipxact:displayName>c_cnt_odd_div_duty_en15</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_odd_div_duty_en16" type="bit">
+          <ipxact:name>c_cnt_odd_div_duty_en16</ipxact:name>
+          <ipxact:displayName>c_cnt_odd_div_duty_en16</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="c_cnt_odd_div_duty_en17" type="bit">
+          <ipxact:name>c_cnt_odd_div_duty_en17</ipxact:name>
+          <ipxact:displayName>c_cnt_odd_div_duty_en17</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="output_clock_frequency0" type="string">
+          <ipxact:name>output_clock_frequency0</ipxact:name>
+          <ipxact:displayName>output_clock_frequency0</ipxact:displayName>
+          <ipxact:value>100.0 MHz</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="output_clock_frequency1" type="string">
+          <ipxact:name>output_clock_frequency1</ipxact:name>
+          <ipxact:displayName>output_clock_frequency1</ipxact:displayName>
+          <ipxact:value>200.0 MHz</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="output_clock_frequency2" type="string">
+          <ipxact:name>output_clock_frequency2</ipxact:name>
+          <ipxact:displayName>output_clock_frequency2</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="output_clock_frequency3" type="string">
+          <ipxact:name>output_clock_frequency3</ipxact:name>
+          <ipxact:displayName>output_clock_frequency3</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="output_clock_frequency4" type="string">
+          <ipxact:name>output_clock_frequency4</ipxact:name>
+          <ipxact:displayName>output_clock_frequency4</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="output_clock_frequency5" type="string">
+          <ipxact:name>output_clock_frequency5</ipxact:name>
+          <ipxact:displayName>output_clock_frequency5</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="output_clock_frequency6" type="string">
+          <ipxact:name>output_clock_frequency6</ipxact:name>
+          <ipxact:displayName>output_clock_frequency6</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="output_clock_frequency7" type="string">
+          <ipxact:name>output_clock_frequency7</ipxact:name>
+          <ipxact:displayName>output_clock_frequency7</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="output_clock_frequency8" type="string">
+          <ipxact:name>output_clock_frequency8</ipxact:name>
+          <ipxact:displayName>output_clock_frequency8</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="output_clock_frequency9" type="string">
+          <ipxact:name>output_clock_frequency9</ipxact:name>
+          <ipxact:displayName>output_clock_frequency9</ipxact:displayName>
+          <ipxact:value>0 MHz</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="output_clock_frequency10" type="string">
+          <ipxact:name>output_clock_frequency10</ipxact:name>
+          <ipxact:displayName>output_clock_frequency10</ipxact:displayName>
+          <ipxact:value>0 MHz</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="output_clock_frequency11" type="string">
+          <ipxact:name>output_clock_frequency11</ipxact:name>
+          <ipxact:displayName>output_clock_frequency11</ipxact:displayName>
+          <ipxact:value>0 MHz</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="output_clock_frequency12" type="string">
+          <ipxact:name>output_clock_frequency12</ipxact:name>
+          <ipxact:displayName>output_clock_frequency12</ipxact:displayName>
+          <ipxact:value>0 MHz</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="output_clock_frequency13" type="string">
+          <ipxact:name>output_clock_frequency13</ipxact:name>
+          <ipxact:displayName>output_clock_frequency13</ipxact:displayName>
+          <ipxact:value>0 MHz</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="output_clock_frequency14" type="string">
+          <ipxact:name>output_clock_frequency14</ipxact:name>
+          <ipxact:displayName>output_clock_frequency14</ipxact:displayName>
+          <ipxact:value>0 MHz</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="output_clock_frequency15" type="string">
+          <ipxact:name>output_clock_frequency15</ipxact:name>
+          <ipxact:displayName>output_clock_frequency15</ipxact:displayName>
+          <ipxact:value>0 MHz</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="output_clock_frequency16" type="string">
+          <ipxact:name>output_clock_frequency16</ipxact:name>
+          <ipxact:displayName>output_clock_frequency16</ipxact:displayName>
+          <ipxact:value>0 MHz</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="output_clock_frequency17" type="string">
+          <ipxact:name>output_clock_frequency17</ipxact:name>
+          <ipxact:displayName>output_clock_frequency17</ipxact:displayName>
+          <ipxact:value>0 MHz</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="phase_shift0" type="string">
+          <ipxact:name>phase_shift0</ipxact:name>
+          <ipxact:displayName>phase_shift0</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="phase_shift1" type="string">
+          <ipxact:name>phase_shift1</ipxact:name>
+          <ipxact:displayName>phase_shift1</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="phase_shift2" type="string">
+          <ipxact:name>phase_shift2</ipxact:name>
+          <ipxact:displayName>phase_shift2</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="phase_shift3" type="string">
+          <ipxact:name>phase_shift3</ipxact:name>
+          <ipxact:displayName>phase_shift3</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="phase_shift4" type="string">
+          <ipxact:name>phase_shift4</ipxact:name>
+          <ipxact:displayName>phase_shift4</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="phase_shift5" type="string">
+          <ipxact:name>phase_shift5</ipxact:name>
+          <ipxact:displayName>phase_shift5</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="phase_shift6" type="string">
+          <ipxact:name>phase_shift6</ipxact:name>
+          <ipxact:displayName>phase_shift6</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="phase_shift7" type="string">
+          <ipxact:name>phase_shift7</ipxact:name>
+          <ipxact:displayName>phase_shift7</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="phase_shift8" type="string">
+          <ipxact:name>phase_shift8</ipxact:name>
+          <ipxact:displayName>phase_shift8</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="phase_shift9" type="string">
+          <ipxact:name>phase_shift9</ipxact:name>
+          <ipxact:displayName>phase_shift9</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="phase_shift10" type="string">
+          <ipxact:name>phase_shift10</ipxact:name>
+          <ipxact:displayName>phase_shift10</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="phase_shift11" type="string">
+          <ipxact:name>phase_shift11</ipxact:name>
+          <ipxact:displayName>phase_shift11</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="phase_shift12" type="string">
+          <ipxact:name>phase_shift12</ipxact:name>
+          <ipxact:displayName>phase_shift12</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="phase_shift13" type="string">
+          <ipxact:name>phase_shift13</ipxact:name>
+          <ipxact:displayName>phase_shift13</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="phase_shift14" type="string">
+          <ipxact:name>phase_shift14</ipxact:name>
+          <ipxact:displayName>phase_shift14</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="phase_shift15" type="string">
+          <ipxact:name>phase_shift15</ipxact:name>
+          <ipxact:displayName>phase_shift15</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="phase_shift16" type="string">
+          <ipxact:name>phase_shift16</ipxact:name>
+          <ipxact:displayName>phase_shift16</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="phase_shift17" type="string">
+          <ipxact:name>phase_shift17</ipxact:name>
+          <ipxact:displayName>phase_shift17</ipxact:displayName>
+          <ipxact:value>0 ps</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="duty_cycle0" type="int">
+          <ipxact:name>duty_cycle0</ipxact:name>
+          <ipxact:displayName>duty_cycle0</ipxact:displayName>
+          <ipxact:value>50</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="duty_cycle1" type="int">
+          <ipxact:name>duty_cycle1</ipxact:name>
+          <ipxact:displayName>duty_cycle1</ipxact:displayName>
+          <ipxact:value>50</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="duty_cycle2" type="int">
+          <ipxact:name>duty_cycle2</ipxact:name>
+          <ipxact:displayName>duty_cycle2</ipxact:displayName>
+          <ipxact:value>50</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="duty_cycle3" type="int">
+          <ipxact:name>duty_cycle3</ipxact:name>
+          <ipxact:displayName>duty_cycle3</ipxact:displayName>
+          <ipxact:value>50</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="duty_cycle4" type="int">
+          <ipxact:name>duty_cycle4</ipxact:name>
+          <ipxact:displayName>duty_cycle4</ipxact:displayName>
+          <ipxact:value>50</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="duty_cycle5" type="int">
+          <ipxact:name>duty_cycle5</ipxact:name>
+          <ipxact:displayName>duty_cycle5</ipxact:displayName>
+          <ipxact:value>50</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="duty_cycle6" type="int">
+          <ipxact:name>duty_cycle6</ipxact:name>
+          <ipxact:displayName>duty_cycle6</ipxact:displayName>
+          <ipxact:value>50</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="duty_cycle7" type="int">
+          <ipxact:name>duty_cycle7</ipxact:name>
+          <ipxact:displayName>duty_cycle7</ipxact:displayName>
+          <ipxact:value>50</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="duty_cycle8" type="int">
+          <ipxact:name>duty_cycle8</ipxact:name>
+          <ipxact:displayName>duty_cycle8</ipxact:displayName>
+          <ipxact:value>50</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="duty_cycle9" type="int">
+          <ipxact:name>duty_cycle9</ipxact:name>
+          <ipxact:displayName>duty_cycle9</ipxact:displayName>
+          <ipxact:value>50</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="duty_cycle10" type="int">
+          <ipxact:name>duty_cycle10</ipxact:name>
+          <ipxact:displayName>duty_cycle10</ipxact:displayName>
+          <ipxact:value>50</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="duty_cycle11" type="int">
+          <ipxact:name>duty_cycle11</ipxact:name>
+          <ipxact:displayName>duty_cycle11</ipxact:displayName>
+          <ipxact:value>50</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="duty_cycle12" type="int">
+          <ipxact:name>duty_cycle12</ipxact:name>
+          <ipxact:displayName>duty_cycle12</ipxact:displayName>
+          <ipxact:value>50</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="duty_cycle13" type="int">
+          <ipxact:name>duty_cycle13</ipxact:name>
+          <ipxact:displayName>duty_cycle13</ipxact:displayName>
+          <ipxact:value>50</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="duty_cycle14" type="int">
+          <ipxact:name>duty_cycle14</ipxact:name>
+          <ipxact:displayName>duty_cycle14</ipxact:displayName>
+          <ipxact:value>50</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="duty_cycle15" type="int">
+          <ipxact:name>duty_cycle15</ipxact:name>
+          <ipxact:displayName>duty_cycle15</ipxact:displayName>
+          <ipxact:value>50</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="duty_cycle16" type="int">
+          <ipxact:name>duty_cycle16</ipxact:name>
+          <ipxact:displayName>duty_cycle16</ipxact:displayName>
+          <ipxact:value>50</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="duty_cycle17" type="int">
+          <ipxact:name>duty_cycle17</ipxact:name>
+          <ipxact:displayName>duty_cycle17</ipxact:displayName>
+          <ipxact:value>50</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clock_name_0" type="string">
+          <ipxact:name>clock_name_0</ipxact:name>
+          <ipxact:displayName>clock_name_0</ipxact:displayName>
+          <ipxact:value>link_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clock_name_1" type="string">
+          <ipxact:name>clock_name_1</ipxact:name>
+          <ipxact:displayName>clock_name_1</ipxact:displayName>
+          <ipxact:value>frame_clk</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clock_name_2" type="string">
+          <ipxact:name>clock_name_2</ipxact:name>
+          <ipxact:displayName>clock_name_2</ipxact:displayName>
+          <ipxact:value></ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clock_name_3" type="string">
+          <ipxact:name>clock_name_3</ipxact:name>
+          <ipxact:displayName>clock_name_3</ipxact:displayName>
+          <ipxact:value></ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clock_name_4" type="string">
+          <ipxact:name>clock_name_4</ipxact:name>
+          <ipxact:displayName>clock_name_4</ipxact:displayName>
+          <ipxact:value></ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clock_name_5" type="string">
+          <ipxact:name>clock_name_5</ipxact:name>
+          <ipxact:displayName>clock_name_5</ipxact:displayName>
+          <ipxact:value></ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clock_name_6" type="string">
+          <ipxact:name>clock_name_6</ipxact:name>
+          <ipxact:displayName>clock_name_6</ipxact:displayName>
+          <ipxact:value></ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clock_name_7" type="string">
+          <ipxact:name>clock_name_7</ipxact:name>
+          <ipxact:displayName>clock_name_7</ipxact:displayName>
+          <ipxact:value></ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clock_name_8" type="string">
+          <ipxact:name>clock_name_8</ipxact:name>
+          <ipxact:displayName>clock_name_8</ipxact:displayName>
+          <ipxact:value></ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clock_name_global_0" type="bit">
+          <ipxact:name>clock_name_global_0</ipxact:name>
+          <ipxact:displayName>clock_name_global_0</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clock_name_global_1" type="bit">
+          <ipxact:name>clock_name_global_1</ipxact:name>
+          <ipxact:displayName>clock_name_global_1</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clock_name_global_2" type="bit">
+          <ipxact:name>clock_name_global_2</ipxact:name>
+          <ipxact:displayName>clock_name_global_2</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clock_name_global_3" type="bit">
+          <ipxact:name>clock_name_global_3</ipxact:name>
+          <ipxact:displayName>clock_name_global_3</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clock_name_global_4" type="bit">
+          <ipxact:name>clock_name_global_4</ipxact:name>
+          <ipxact:displayName>clock_name_global_4</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clock_name_global_5" type="bit">
+          <ipxact:name>clock_name_global_5</ipxact:name>
+          <ipxact:displayName>clock_name_global_5</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clock_name_global_6" type="bit">
+          <ipxact:name>clock_name_global_6</ipxact:name>
+          <ipxact:displayName>clock_name_global_6</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clock_name_global_7" type="bit">
+          <ipxact:name>clock_name_global_7</ipxact:name>
+          <ipxact:displayName>clock_name_global_7</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="clock_name_global_8" type="bit">
+          <ipxact:name>clock_name_global_8</ipxact:name>
+          <ipxact:displayName>clock_name_global_8</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="divide_factor0" type="int">
+          <ipxact:name>divide_factor0</ipxact:name>
+          <ipxact:displayName>divide_factor0</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="divide_factor1" type="int">
+          <ipxact:name>divide_factor1</ipxact:name>
+          <ipxact:displayName>divide_factor1</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="divide_factor2" type="int">
+          <ipxact:name>divide_factor2</ipxact:name>
+          <ipxact:displayName>divide_factor2</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="divide_factor3" type="int">
+          <ipxact:name>divide_factor3</ipxact:name>
+          <ipxact:displayName>divide_factor3</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="divide_factor4" type="int">
+          <ipxact:name>divide_factor4</ipxact:name>
+          <ipxact:displayName>divide_factor4</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="divide_factor5" type="int">
+          <ipxact:name>divide_factor5</ipxact:name>
+          <ipxact:displayName>divide_factor5</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="divide_factor6" type="int">
+          <ipxact:name>divide_factor6</ipxact:name>
+          <ipxact:displayName>divide_factor6</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="divide_factor7" type="int">
+          <ipxact:name>divide_factor7</ipxact:name>
+          <ipxact:displayName>divide_factor7</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="divide_factor8" type="int">
+          <ipxact:name>divide_factor8</ipxact:name>
+          <ipxact:displayName>divide_factor8</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_tclk_mux_en" type="bit">
+          <ipxact:name>pll_tclk_mux_en</ipxact:name>
+          <ipxact:displayName>pll_tclk_mux_en</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_tclk_sel" type="string">
+          <ipxact:name>pll_tclk_sel</ipxact:name>
+          <ipxact:displayName>pll_tclk_sel</ipxact:displayName>
+          <ipxact:value>pll_tclk_m_src</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_vco_freq_band_0" type="string">
+          <ipxact:name>pll_vco_freq_band_0</ipxact:name>
+          <ipxact:displayName>pll_vco_freq_band_0</ipxact:displayName>
+          <ipxact:value>pll_freq_clk0_disabled</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_vco_freq_band_1" type="string">
+          <ipxact:name>pll_vco_freq_band_1</ipxact:name>
+          <ipxact:displayName>pll_vco_freq_band_1</ipxact:displayName>
+          <ipxact:value>pll_freq_clk1_disabled</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_freqcal_req_flag" type="bit">
+          <ipxact:name>pll_freqcal_req_flag</ipxact:name>
+          <ipxact:displayName>pll_freqcal_req_flag</ipxact:displayName>
+          <ipxact:value>true</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="cal_converge" type="bit">
+          <ipxact:name>cal_converge</ipxact:name>
+          <ipxact:displayName>cal_converge</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="cal_error" type="string">
+          <ipxact:name>cal_error</ipxact:name>
+          <ipxact:displayName>cal_error</ipxact:displayName>
+          <ipxact:value>cal_clean</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="pll_cal_done" type="bit">
+          <ipxact:name>pll_cal_done</ipxact:name>
+          <ipxact:displayName>pll_cal_done</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="include_iossm" type="bit">
+          <ipxact:name>include_iossm</ipxact:name>
+          <ipxact:displayName>include_iossm</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="cal_code_hex_file" type="string">
+          <ipxact:name>cal_code_hex_file</ipxact:name>
+          <ipxact:displayName>cal_code_hex_file</ipxact:displayName>
+          <ipxact:value>iossm.hex</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="parameter_table_hex_file" type="string">
+          <ipxact:name>parameter_table_hex_file</ipxact:name>
+          <ipxact:displayName>parameter_table_hex_file</ipxact:displayName>
+          <ipxact:value>seq_params_sim.hex</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="iossm_nios_sim_clk_period_ps" type="int">
+          <ipxact:name>iossm_nios_sim_clk_period_ps</ipxact:name>
+          <ipxact:displayName>iossm_nios_sim_clk_period_ps</ipxact:displayName>
+          <ipxact:value>1333</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_number_of_family_allowable_clocks" type="int">
+          <ipxact:name>hp_number_of_family_allowable_clocks</ipxact:name>
+          <ipxact:displayName>hp_number_of_family_allowable_clocks</ipxact:displayName>
+          <ipxact:value>9</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_previous_num_clocks" type="int">
+          <ipxact:name>hp_previous_num_clocks</ipxact:name>
+          <ipxact:displayName>hp_previous_num_clocks</ipxact:displayName>
+          <ipxact:value>1</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_vco_frequency_fp" type="real">
+          <ipxact:name>hp_actual_vco_frequency_fp</ipxact:name>
+          <ipxact:displayName>hp_actual_vco_frequency_fp</ipxact:displayName>
+          <ipxact:value>600.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_parameter_update_message" type="string">
+          <ipxact:name>hp_parameter_update_message</ipxact:name>
+          <ipxact:displayName>hp_parameter_update_message</ipxact:displayName>
+          <ipxact:value></ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_qsys_scripting_mode" type="bit">
+          <ipxact:name>hp_qsys_scripting_mode</ipxact:name>
+          <ipxact:displayName>hp_qsys_scripting_mode</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_output_clock_frequency_fp0" type="real">
+          <ipxact:name>hp_actual_output_clock_frequency_fp0</ipxact:name>
+          <ipxact:displayName>hp_actual_output_clock_frequency_fp0</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_output_clock_frequency_fp1" type="real">
+          <ipxact:name>hp_actual_output_clock_frequency_fp1</ipxact:name>
+          <ipxact:displayName>hp_actual_output_clock_frequency_fp1</ipxact:displayName>
+          <ipxact:value>200.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_output_clock_frequency_fp2" type="real">
+          <ipxact:name>hp_actual_output_clock_frequency_fp2</ipxact:name>
+          <ipxact:displayName>hp_actual_output_clock_frequency_fp2</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_output_clock_frequency_fp3" type="real">
+          <ipxact:name>hp_actual_output_clock_frequency_fp3</ipxact:name>
+          <ipxact:displayName>hp_actual_output_clock_frequency_fp3</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_output_clock_frequency_fp4" type="real">
+          <ipxact:name>hp_actual_output_clock_frequency_fp4</ipxact:name>
+          <ipxact:displayName>hp_actual_output_clock_frequency_fp4</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_output_clock_frequency_fp5" type="real">
+          <ipxact:name>hp_actual_output_clock_frequency_fp5</ipxact:name>
+          <ipxact:displayName>hp_actual_output_clock_frequency_fp5</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_output_clock_frequency_fp6" type="real">
+          <ipxact:name>hp_actual_output_clock_frequency_fp6</ipxact:name>
+          <ipxact:displayName>hp_actual_output_clock_frequency_fp6</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_output_clock_frequency_fp7" type="real">
+          <ipxact:name>hp_actual_output_clock_frequency_fp7</ipxact:name>
+          <ipxact:displayName>hp_actual_output_clock_frequency_fp7</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_output_clock_frequency_fp8" type="real">
+          <ipxact:name>hp_actual_output_clock_frequency_fp8</ipxact:name>
+          <ipxact:displayName>hp_actual_output_clock_frequency_fp8</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_output_clock_frequency_fp9" type="real">
+          <ipxact:name>hp_actual_output_clock_frequency_fp9</ipxact:name>
+          <ipxact:displayName>hp_actual_output_clock_frequency_fp9</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_output_clock_frequency_fp10" type="real">
+          <ipxact:name>hp_actual_output_clock_frequency_fp10</ipxact:name>
+          <ipxact:displayName>hp_actual_output_clock_frequency_fp10</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_output_clock_frequency_fp11" type="real">
+          <ipxact:name>hp_actual_output_clock_frequency_fp11</ipxact:name>
+          <ipxact:displayName>hp_actual_output_clock_frequency_fp11</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_output_clock_frequency_fp12" type="real">
+          <ipxact:name>hp_actual_output_clock_frequency_fp12</ipxact:name>
+          <ipxact:displayName>hp_actual_output_clock_frequency_fp12</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_output_clock_frequency_fp13" type="real">
+          <ipxact:name>hp_actual_output_clock_frequency_fp13</ipxact:name>
+          <ipxact:displayName>hp_actual_output_clock_frequency_fp13</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_output_clock_frequency_fp14" type="real">
+          <ipxact:name>hp_actual_output_clock_frequency_fp14</ipxact:name>
+          <ipxact:displayName>hp_actual_output_clock_frequency_fp14</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_output_clock_frequency_fp15" type="real">
+          <ipxact:name>hp_actual_output_clock_frequency_fp15</ipxact:name>
+          <ipxact:displayName>hp_actual_output_clock_frequency_fp15</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_output_clock_frequency_fp16" type="real">
+          <ipxact:name>hp_actual_output_clock_frequency_fp16</ipxact:name>
+          <ipxact:displayName>hp_actual_output_clock_frequency_fp16</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_output_clock_frequency_fp17" type="real">
+          <ipxact:name>hp_actual_output_clock_frequency_fp17</ipxact:name>
+          <ipxact:displayName>hp_actual_output_clock_frequency_fp17</ipxact:displayName>
+          <ipxact:value>100.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_phase_shift_fp0" type="real">
+          <ipxact:name>hp_actual_phase_shift_fp0</ipxact:name>
+          <ipxact:displayName>hp_actual_phase_shift_fp0</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_phase_shift_fp1" type="real">
+          <ipxact:name>hp_actual_phase_shift_fp1</ipxact:name>
+          <ipxact:displayName>hp_actual_phase_shift_fp1</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_phase_shift_fp2" type="real">
+          <ipxact:name>hp_actual_phase_shift_fp2</ipxact:name>
+          <ipxact:displayName>hp_actual_phase_shift_fp2</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_phase_shift_fp3" type="real">
+          <ipxact:name>hp_actual_phase_shift_fp3</ipxact:name>
+          <ipxact:displayName>hp_actual_phase_shift_fp3</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_phase_shift_fp4" type="real">
+          <ipxact:name>hp_actual_phase_shift_fp4</ipxact:name>
+          <ipxact:displayName>hp_actual_phase_shift_fp4</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_phase_shift_fp5" type="real">
+          <ipxact:name>hp_actual_phase_shift_fp5</ipxact:name>
+          <ipxact:displayName>hp_actual_phase_shift_fp5</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_phase_shift_fp6" type="real">
+          <ipxact:name>hp_actual_phase_shift_fp6</ipxact:name>
+          <ipxact:displayName>hp_actual_phase_shift_fp6</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_phase_shift_fp7" type="real">
+          <ipxact:name>hp_actual_phase_shift_fp7</ipxact:name>
+          <ipxact:displayName>hp_actual_phase_shift_fp7</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_phase_shift_fp8" type="real">
+          <ipxact:name>hp_actual_phase_shift_fp8</ipxact:name>
+          <ipxact:displayName>hp_actual_phase_shift_fp8</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_phase_shift_fp9" type="real">
+          <ipxact:name>hp_actual_phase_shift_fp9</ipxact:name>
+          <ipxact:displayName>hp_actual_phase_shift_fp9</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_phase_shift_fp10" type="real">
+          <ipxact:name>hp_actual_phase_shift_fp10</ipxact:name>
+          <ipxact:displayName>hp_actual_phase_shift_fp10</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_phase_shift_fp11" type="real">
+          <ipxact:name>hp_actual_phase_shift_fp11</ipxact:name>
+          <ipxact:displayName>hp_actual_phase_shift_fp11</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_phase_shift_fp12" type="real">
+          <ipxact:name>hp_actual_phase_shift_fp12</ipxact:name>
+          <ipxact:displayName>hp_actual_phase_shift_fp12</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_phase_shift_fp13" type="real">
+          <ipxact:name>hp_actual_phase_shift_fp13</ipxact:name>
+          <ipxact:displayName>hp_actual_phase_shift_fp13</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_phase_shift_fp14" type="real">
+          <ipxact:name>hp_actual_phase_shift_fp14</ipxact:name>
+          <ipxact:displayName>hp_actual_phase_shift_fp14</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_phase_shift_fp15" type="real">
+          <ipxact:name>hp_actual_phase_shift_fp15</ipxact:name>
+          <ipxact:displayName>hp_actual_phase_shift_fp15</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_phase_shift_fp16" type="real">
+          <ipxact:name>hp_actual_phase_shift_fp16</ipxact:name>
+          <ipxact:displayName>hp_actual_phase_shift_fp16</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_phase_shift_fp17" type="real">
+          <ipxact:name>hp_actual_phase_shift_fp17</ipxact:name>
+          <ipxact:displayName>hp_actual_phase_shift_fp17</ipxact:displayName>
+          <ipxact:value>0.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_duty_cycle_fp0" type="real">
+          <ipxact:name>hp_actual_duty_cycle_fp0</ipxact:name>
+          <ipxact:displayName>hp_actual_duty_cycle_fp0</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_duty_cycle_fp1" type="real">
+          <ipxact:name>hp_actual_duty_cycle_fp1</ipxact:name>
+          <ipxact:displayName>hp_actual_duty_cycle_fp1</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_duty_cycle_fp2" type="real">
+          <ipxact:name>hp_actual_duty_cycle_fp2</ipxact:name>
+          <ipxact:displayName>hp_actual_duty_cycle_fp2</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_duty_cycle_fp3" type="real">
+          <ipxact:name>hp_actual_duty_cycle_fp3</ipxact:name>
+          <ipxact:displayName>hp_actual_duty_cycle_fp3</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_duty_cycle_fp4" type="real">
+          <ipxact:name>hp_actual_duty_cycle_fp4</ipxact:name>
+          <ipxact:displayName>hp_actual_duty_cycle_fp4</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_duty_cycle_fp5" type="real">
+          <ipxact:name>hp_actual_duty_cycle_fp5</ipxact:name>
+          <ipxact:displayName>hp_actual_duty_cycle_fp5</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_duty_cycle_fp6" type="real">
+          <ipxact:name>hp_actual_duty_cycle_fp6</ipxact:name>
+          <ipxact:displayName>hp_actual_duty_cycle_fp6</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_duty_cycle_fp7" type="real">
+          <ipxact:name>hp_actual_duty_cycle_fp7</ipxact:name>
+          <ipxact:displayName>hp_actual_duty_cycle_fp7</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_duty_cycle_fp8" type="real">
+          <ipxact:name>hp_actual_duty_cycle_fp8</ipxact:name>
+          <ipxact:displayName>hp_actual_duty_cycle_fp8</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_duty_cycle_fp9" type="real">
+          <ipxact:name>hp_actual_duty_cycle_fp9</ipxact:name>
+          <ipxact:displayName>hp_actual_duty_cycle_fp9</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_duty_cycle_fp10" type="real">
+          <ipxact:name>hp_actual_duty_cycle_fp10</ipxact:name>
+          <ipxact:displayName>hp_actual_duty_cycle_fp10</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_duty_cycle_fp11" type="real">
+          <ipxact:name>hp_actual_duty_cycle_fp11</ipxact:name>
+          <ipxact:displayName>hp_actual_duty_cycle_fp11</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_duty_cycle_fp12" type="real">
+          <ipxact:name>hp_actual_duty_cycle_fp12</ipxact:name>
+          <ipxact:displayName>hp_actual_duty_cycle_fp12</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_duty_cycle_fp13" type="real">
+          <ipxact:name>hp_actual_duty_cycle_fp13</ipxact:name>
+          <ipxact:displayName>hp_actual_duty_cycle_fp13</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_duty_cycle_fp14" type="real">
+          <ipxact:name>hp_actual_duty_cycle_fp14</ipxact:name>
+          <ipxact:displayName>hp_actual_duty_cycle_fp14</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_duty_cycle_fp15" type="real">
+          <ipxact:name>hp_actual_duty_cycle_fp15</ipxact:name>
+          <ipxact:displayName>hp_actual_duty_cycle_fp15</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_duty_cycle_fp16" type="real">
+          <ipxact:name>hp_actual_duty_cycle_fp16</ipxact:name>
+          <ipxact:displayName>hp_actual_duty_cycle_fp16</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hp_actual_duty_cycle_fp17" type="real">
+          <ipxact:name>hp_actual_duty_cycle_fp17</ipxact:name>
+          <ipxact:displayName>hp_actual_duty_cycle_fp17</ipxact:displayName>
+          <ipxact:value>50.0</ipxact:value>
+        </ipxact:parameter>
+      </ipxact:parameters>
+    </altera:altera_module_parameters>
+    <altera:altera_assignments>
+      <ipxact:parameters>
+        <ipxact:parameter parameterId="embeddedsw.dts.compatible" type="string">
+          <ipxact:name>embeddedsw.dts.compatible</ipxact:name>
+          <ipxact:value>altr,pll</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="embeddedsw.dts.group" type="string">
+          <ipxact:name>embeddedsw.dts.group</ipxact:name>
+          <ipxact:value>clock</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="embeddedsw.dts.vendor" type="string">
+          <ipxact:name>embeddedsw.dts.vendor</ipxact:name>
+          <ipxact:value>altr</ipxact:value>
+        </ipxact:parameter>
+      </ipxact:parameters>
+    </altera:altera_assignments>
+    <altera:altera_system_parameters>
+      <ipxact:parameters>
+        <ipxact:parameter parameterId="device" type="string">
+          <ipxact:name>device</ipxact:name>
+          <ipxact:displayName>Device</ipxact:displayName>
+          <ipxact:value>10AX115U3F45E2SG</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="deviceFamily" type="string">
+          <ipxact:name>deviceFamily</ipxact:name>
+          <ipxact:displayName>Device family</ipxact:displayName>
+          <ipxact:value>Arria 10</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="deviceSpeedGrade" type="string">
+          <ipxact:name>deviceSpeedGrade</ipxact:name>
+          <ipxact:displayName>Device Speed Grade</ipxact:displayName>
+          <ipxact:value>2</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="generationId" type="int">
+          <ipxact:name>generationId</ipxact:name>
+          <ipxact:displayName>Generation Id</ipxact:displayName>
+          <ipxact:value>0</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="bonusData" type="string">
+          <ipxact:name>bonusData</ipxact:name>
+          <ipxact:displayName>bonusData</ipxact:displayName>
+          <ipxact:value>bonusData 
+{
+   element core_pll
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="hideFromIPCatalog" type="bit">
+          <ipxact:name>hideFromIPCatalog</ipxact:name>
+          <ipxact:displayName>Hide from IP Catalog</ipxact:displayName>
+          <ipxact:value>false</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="lockedInterfaceDefinition" type="string">
+          <ipxact:name>lockedInterfaceDefinition</ipxact:name>
+          <ipxact:displayName>lockedInterfaceDefinition</ipxact:displayName>
+          <ipxact:value>&lt;boundaryDefinition&gt;
+    &lt;interfaces&gt;
+        &lt;interface&gt;
+            &lt;name&gt;locked&lt;/name&gt;
+            &lt;type&gt;conduit&lt;/type&gt;
+            &lt;isStart&gt;false&lt;/isStart&gt;
+            &lt;ports&gt;
+                &lt;port&gt;
+                    &lt;name&gt;locked&lt;/name&gt;
+                    &lt;role&gt;export&lt;/role&gt;
+                    &lt;direction&gt;Output&lt;/direction&gt;
+                    &lt;width&gt;1&lt;/width&gt;
+                    &lt;lowerBound&gt;0&lt;/lowerBound&gt;
+                    &lt;vhdlType&gt;STD_LOGIC&lt;/vhdlType&gt;
+                &lt;/port&gt;
+            &lt;/ports&gt;
+            &lt;assignments&gt;
+                &lt;assignmentValueMap&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;ui.blockdiagram.direction&lt;/key&gt;
+                        &lt;value&gt;output&lt;/value&gt;
+                    &lt;/entry&gt;
+                &lt;/assignmentValueMap&gt;
+            &lt;/assignments&gt;
+            &lt;parameters&gt;
+                &lt;parameterValueMap&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;associatedClock&lt;/key&gt;
+                    &lt;/entry&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;associatedReset&lt;/key&gt;
+                    &lt;/entry&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;prSafe&lt;/key&gt;
+                        &lt;value&gt;false&lt;/value&gt;
+                    &lt;/entry&gt;
+                &lt;/parameterValueMap&gt;
+            &lt;/parameters&gt;
+        &lt;/interface&gt;
+        &lt;interface&gt;
+            &lt;name&gt;outclk0&lt;/name&gt;
+            &lt;type&gt;clock&lt;/type&gt;
+            &lt;isStart&gt;true&lt;/isStart&gt;
+            &lt;ports&gt;
+                &lt;port&gt;
+                    &lt;name&gt;outclk_0&lt;/name&gt;
+                    &lt;role&gt;clk&lt;/role&gt;
+                    &lt;direction&gt;Output&lt;/direction&gt;
+                    &lt;width&gt;1&lt;/width&gt;
+                    &lt;lowerBound&gt;0&lt;/lowerBound&gt;
+                    &lt;vhdlType&gt;STD_LOGIC&lt;/vhdlType&gt;
+                &lt;/port&gt;
+            &lt;/ports&gt;
+            &lt;assignments&gt;
+                &lt;assignmentValueMap&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;ui.blockdiagram.direction&lt;/key&gt;
+                        &lt;value&gt;output&lt;/value&gt;
+                    &lt;/entry&gt;
+                &lt;/assignmentValueMap&gt;
+            &lt;/assignments&gt;
+            &lt;parameters&gt;
+                &lt;parameterValueMap&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;associatedDirectClock&lt;/key&gt;
+                    &lt;/entry&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;clockRate&lt;/key&gt;
+                        &lt;value&gt;100000000&lt;/value&gt;
+                    &lt;/entry&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;clockRateKnown&lt;/key&gt;
+                        &lt;value&gt;true&lt;/value&gt;
+                    &lt;/entry&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;externallyDriven&lt;/key&gt;
+                        &lt;value&gt;false&lt;/value&gt;
+                    &lt;/entry&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;ptfSchematicName&lt;/key&gt;
+                    &lt;/entry&gt;
+                &lt;/parameterValueMap&gt;
+            &lt;/parameters&gt;
+        &lt;/interface&gt;
+        &lt;interface&gt;
+            &lt;name&gt;outclk1&lt;/name&gt;
+            &lt;type&gt;clock&lt;/type&gt;
+            &lt;isStart&gt;true&lt;/isStart&gt;
+            &lt;ports&gt;
+                &lt;port&gt;
+                    &lt;name&gt;outclk_1&lt;/name&gt;
+                    &lt;role&gt;clk&lt;/role&gt;
+                    &lt;direction&gt;Output&lt;/direction&gt;
+                    &lt;width&gt;1&lt;/width&gt;
+                    &lt;lowerBound&gt;0&lt;/lowerBound&gt;
+                    &lt;vhdlType&gt;STD_LOGIC&lt;/vhdlType&gt;
+                &lt;/port&gt;
+            &lt;/ports&gt;
+            &lt;assignments&gt;
+                &lt;assignmentValueMap&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;ui.blockdiagram.direction&lt;/key&gt;
+                        &lt;value&gt;output&lt;/value&gt;
+                    &lt;/entry&gt;
+                &lt;/assignmentValueMap&gt;
+            &lt;/assignments&gt;
+            &lt;parameters&gt;
+                &lt;parameterValueMap&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;associatedDirectClock&lt;/key&gt;
+                    &lt;/entry&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;clockRate&lt;/key&gt;
+                        &lt;value&gt;100000000&lt;/value&gt;
+                    &lt;/entry&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;clockRateKnown&lt;/key&gt;
+                        &lt;value&gt;true&lt;/value&gt;
+                    &lt;/entry&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;externallyDriven&lt;/key&gt;
+                        &lt;value&gt;false&lt;/value&gt;
+                    &lt;/entry&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;ptfSchematicName&lt;/key&gt;
+                    &lt;/entry&gt;
+                &lt;/parameterValueMap&gt;
+            &lt;/parameters&gt;
+        &lt;/interface&gt;
+        &lt;interface&gt;
+            &lt;name&gt;refclk&lt;/name&gt;
+            &lt;type&gt;clock&lt;/type&gt;
+            &lt;isStart&gt;false&lt;/isStart&gt;
+            &lt;ports&gt;
+                &lt;port&gt;
+                    &lt;name&gt;refclk&lt;/name&gt;
+                    &lt;role&gt;clk&lt;/role&gt;
+                    &lt;direction&gt;Input&lt;/direction&gt;
+                    &lt;width&gt;1&lt;/width&gt;
+                    &lt;lowerBound&gt;0&lt;/lowerBound&gt;
+                    &lt;vhdlType&gt;STD_LOGIC&lt;/vhdlType&gt;
+                &lt;/port&gt;
+            &lt;/ports&gt;
+            &lt;assignments&gt;
+                &lt;assignmentValueMap&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;ui.blockdiagram.direction&lt;/key&gt;
+                        &lt;value&gt;input&lt;/value&gt;
+                    &lt;/entry&gt;
+                &lt;/assignmentValueMap&gt;
+            &lt;/assignments&gt;
+            &lt;parameters&gt;
+                &lt;parameterValueMap&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;clockRate&lt;/key&gt;
+                        &lt;value&gt;200000000&lt;/value&gt;
+                    &lt;/entry&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;externallyDriven&lt;/key&gt;
+                        &lt;value&gt;false&lt;/value&gt;
+                    &lt;/entry&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;ptfSchematicName&lt;/key&gt;
+                    &lt;/entry&gt;
+                &lt;/parameterValueMap&gt;
+            &lt;/parameters&gt;
+        &lt;/interface&gt;
+        &lt;interface&gt;
+            &lt;name&gt;reset&lt;/name&gt;
+            &lt;type&gt;reset&lt;/type&gt;
+            &lt;isStart&gt;false&lt;/isStart&gt;
+            &lt;ports&gt;
+                &lt;port&gt;
+                    &lt;name&gt;rst&lt;/name&gt;
+                    &lt;role&gt;reset&lt;/role&gt;
+                    &lt;direction&gt;Input&lt;/direction&gt;
+                    &lt;width&gt;1&lt;/width&gt;
+                    &lt;lowerBound&gt;0&lt;/lowerBound&gt;
+                    &lt;vhdlType&gt;STD_LOGIC&lt;/vhdlType&gt;
+                &lt;/port&gt;
+            &lt;/ports&gt;
+            &lt;assignments&gt;
+                &lt;assignmentValueMap&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;ui.blockdiagram.direction&lt;/key&gt;
+                        &lt;value&gt;input&lt;/value&gt;
+                    &lt;/entry&gt;
+                &lt;/assignmentValueMap&gt;
+            &lt;/assignments&gt;
+            &lt;parameters&gt;
+                &lt;parameterValueMap&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;associatedClock&lt;/key&gt;
+                    &lt;/entry&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;synchronousEdges&lt;/key&gt;
+                        &lt;value&gt;NONE&lt;/value&gt;
+                    &lt;/entry&gt;
+                &lt;/parameterValueMap&gt;
+            &lt;/parameters&gt;
+        &lt;/interface&gt;
+    &lt;/interfaces&gt;
+&lt;/boundaryDefinition&gt;</ipxact:value>
+        </ipxact:parameter>
+        <ipxact:parameter parameterId="systemInfos" type="string">
+          <ipxact:name>systemInfos</ipxact:name>
+          <ipxact:displayName>systemInfos</ipxact:displayName>
+          <ipxact:value>&lt;systemInfosDefinition&gt;
+    &lt;connPtSystemInfos&gt;
+        &lt;entry&gt;
+            &lt;key&gt;outclk0&lt;/key&gt;
+            &lt;value&gt;
+                &lt;connectionPointName&gt;outclk0&lt;/connectionPointName&gt;
+                &lt;suppliedSystemInfos/&gt;
+                &lt;consumedSystemInfos&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;CLOCK_RATE&lt;/key&gt;
+                        &lt;value&gt;100000000&lt;/value&gt;
+                    &lt;/entry&gt;
+                &lt;/consumedSystemInfos&gt;
+            &lt;/value&gt;
+        &lt;/entry&gt;
+        &lt;entry&gt;
+            &lt;key&gt;outclk1&lt;/key&gt;
+            &lt;value&gt;
+                &lt;connectionPointName&gt;outclk1&lt;/connectionPointName&gt;
+                &lt;suppliedSystemInfos/&gt;
+                &lt;consumedSystemInfos&gt;
+                    &lt;entry&gt;
+                        &lt;key&gt;CLOCK_RATE&lt;/key&gt;
+                        &lt;value&gt;200000000&lt;/value&gt;
+                    &lt;/entry&gt;
+                &lt;/consumedSystemInfos&gt;
+            &lt;/value&gt;
+        &lt;/entry&gt;
+    &lt;/connPtSystemInfos&gt;
+&lt;/systemInfosDefinition&gt;</ipxact:value>
+        </ipxact:parameter>
+      </ipxact:parameters>
+    </altera:altera_system_parameters>
+    <altera:altera_interface_boundary>
+      <altera:interface_mapping altera:name="locked" altera:internal="core_pll.locked" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="locked" altera:internal="locked"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="outclk0" altera:internal="core_pll.outclk0" altera:type="clock" altera:dir="start">
+        <altera:port_mapping altera:name="outclk_0" altera:internal="outclk_0"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="outclk1" altera:internal="core_pll.outclk1" altera:type="clock" altera:dir="start">
+        <altera:port_mapping altera:name="outclk_1" altera:internal="outclk_1"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="refclk" altera:internal="core_pll.refclk" altera:type="clock" altera:dir="end">
+        <altera:port_mapping altera:name="refclk" altera:internal="refclk"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="reset" altera:internal="core_pll.reset" altera:type="reset" altera:dir="end">
+        <altera:port_mapping altera:name="rst" altera:internal="rst"></altera:port_mapping>
+      </altera:interface_mapping>
+    </altera:altera_interface_boundary>
+    <altera:altera_has_warnings>false</altera:altera_has_warnings>
+    <altera:altera_has_errors>false</altera:altera_has_errors>
+  </ipxact:vendorExtensions>
+</ipxact:component>
\ No newline at end of file
diff --git a/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx_core_pll.qsys b/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx_core_pll.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..10c7ed2bac6d399eaa52ae730896d8393e6972d9
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx_core_pll.qsys
@@ -0,0 +1,572 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_jesd204b_rx_core_pll">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags=""
+   categories="System"
+   tool="QsysPro" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element iopll_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="false" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos>
+        <entry>
+            <key>outclk0</key>
+            <value>
+                <connectionPointName>outclk0</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>100000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+        <entry>
+            <key>outclk1</key>
+            <value>
+                <connectionPointName>outclk1</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>200000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+    </connPtSystemInfos>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface name="locked" internal="iopll_0.locked" type="conduit" dir="end" />
+ <interface name="outclk0" internal="iopll_0.outclk0" type="clock" dir="start" />
+ <interface name="outclk1" internal="iopll_0.outclk1" type="clock" dir="start" />
+ <interface name="refclk" internal="iopll_0.refclk" type="clock" dir="end" />
+ <interface name="reset" internal="iopll_0.reset" type="reset" dir="end" />
+ <module
+   name="iopll_0"
+   kind="altera_generic_component"
+   version="1.0"
+   enabled="1">
+  <parameter name="componentDefinition"><![CDATA[<componentDefinition>
+    <boundary>
+        <interfaces>
+            <interface>
+                <name>locked</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>locked</name>
+                        <role>export</role>
+                        <direction>Output</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>outclk0</name>
+                <type>clock</type>
+                <isStart>true</isStart>
+                <ports>
+                    <port>
+                        <name>outclk_0</name>
+                        <role>clk</role>
+                        <direction>Output</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedDirectClock</key>
+                        </entry>
+                        <entry>
+                            <key>clockRate</key>
+                            <value>100000000</value>
+                        </entry>
+                        <entry>
+                            <key>clockRateKnown</key>
+                            <value>true</value>
+                        </entry>
+                        <entry>
+                            <key>externallyDriven</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>ptfSchematicName</key>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>outclk1</name>
+                <type>clock</type>
+                <isStart>true</isStart>
+                <ports>
+                    <port>
+                        <name>outclk_1</name>
+                        <role>clk</role>
+                        <direction>Output</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedDirectClock</key>
+                        </entry>
+                        <entry>
+                            <key>clockRate</key>
+                            <value>200000000</value>
+                        </entry>
+                        <entry>
+                            <key>clockRateKnown</key>
+                            <value>true</value>
+                        </entry>
+                        <entry>
+                            <key>externallyDriven</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>ptfSchematicName</key>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>refclk</name>
+                <type>clock</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>refclk</name>
+                        <role>clk</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>input</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>clockRate</key>
+                            <value>200000000</value>
+                        </entry>
+                        <entry>
+                            <key>externallyDriven</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>ptfSchematicName</key>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>reset</name>
+                <type>reset</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>rst</name>
+                        <role>reset</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>input</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>synchronousEdges</key>
+                            <value>NONE</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+        </interfaces>
+    </boundary>
+    <originalModuleInfo>
+        <className>altera_iopll</className>
+        <version>19.3.0</version>
+        <displayName>IOPLL Intel FPGA IP</displayName>
+    </originalModuleInfo>
+    <systemInfoParameterDescriptors>
+        <descriptors/>
+    </systemInfoParameterDescriptors>
+    <systemInfos>
+        <connPtSystemInfos>
+            <entry>
+                <key>outclk0</key>
+                <value>
+                    <connectionPointName>outclk0</connectionPointName>
+                    <suppliedSystemInfos>
+                        <entry>
+                            <key>CLOCK_RATE</key>
+                            <value>100000000</value>
+                        </entry>
+                    </suppliedSystemInfos>
+                    <consumedSystemInfos/>
+                </value>
+            </entry>
+            <entry>
+                <key>outclk1</key>
+                <value>
+                    <connectionPointName>outclk1</connectionPointName>
+                    <suppliedSystemInfos>
+                        <entry>
+                            <key>CLOCK_RATE</key>
+                            <value>200000000</value>
+                        </entry>
+                    </suppliedSystemInfos>
+                    <consumedSystemInfos/>
+                </value>
+            </entry>
+        </connPtSystemInfos>
+    </systemInfos>
+</componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary"><![CDATA[<boundaryDefinition>
+    <interfaces>
+        <interface>
+            <name>reset</name>
+            <type>reset</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>rst</name>
+                    <role>reset</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap>
+                    <entry>
+                        <key>ui.blockdiagram.direction</key>
+                        <value>input</value>
+                    </entry>
+                </assignmentValueMap>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>NONE</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>refclk</name>
+            <type>clock</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>refclk</name>
+                    <role>clk</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap>
+                    <entry>
+                        <key>ui.blockdiagram.direction</key>
+                        <value>input</value>
+                    </entry>
+                </assignmentValueMap>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>clockRate</key>
+                        <value>200000000</value>
+                    </entry>
+                    <entry>
+                        <key>externallyDriven</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>ptfSchematicName</key>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>locked</name>
+            <type>conduit</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>locked</name>
+                    <role>export</role>
+                    <direction>Output</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap>
+                    <entry>
+                        <key>ui.blockdiagram.direction</key>
+                        <value>output</value>
+                    </entry>
+                </assignmentValueMap>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>associatedReset</key>
+                    </entry>
+                    <entry>
+                        <key>prSafe</key>
+                        <value>false</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>outclk0</name>
+            <type>clock</type>
+            <isStart>true</isStart>
+            <ports>
+                <port>
+                    <name>outclk_0</name>
+                    <role>clk</role>
+                    <direction>Output</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap>
+                    <entry>
+                        <key>ui.blockdiagram.direction</key>
+                        <value>output</value>
+                    </entry>
+                </assignmentValueMap>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedDirectClock</key>
+                    </entry>
+                    <entry>
+                        <key>clockRate</key>
+                        <value>100000000</value>
+                    </entry>
+                    <entry>
+                        <key>clockRateKnown</key>
+                        <value>true</value>
+                    </entry>
+                    <entry>
+                        <key>externallyDriven</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>ptfSchematicName</key>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>outclk1</name>
+            <type>clock</type>
+            <isStart>true</isStart>
+            <ports>
+                <port>
+                    <name>outclk_1</name>
+                    <role>clk</role>
+                    <direction>Output</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap>
+                    <entry>
+                        <key>ui.blockdiagram.direction</key>
+                        <value>output</value>
+                    </entry>
+                </assignmentValueMap>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedDirectClock</key>
+                    </entry>
+                    <entry>
+                        <key>clockRate</key>
+                        <value>200000000</value>
+                    </entry>
+                    <entry>
+                        <key>clockRateKnown</key>
+                        <value>true</value>
+                    </entry>
+                    <entry>
+                        <key>externallyDriven</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>ptfSchematicName</key>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+    </interfaces>
+</boundaryDefinition>]]></parameter>
+  <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
+    <hdlLibraryName>ip_arria10_e2sg_jesd204b_rx_core_pll</hdlLibraryName>
+    <fileSets>
+        <fileSet>
+            <fileSetName>ip_arria10_e2sg_jesd204b_rx_core_pll</fileSetName>
+            <fileSetFixedName>ip_arria10_e2sg_jesd204b_rx_core_pll</fileSetFixedName>
+            <fileSetKind>QUARTUS_SYNTH</fileSetKind>
+            <fileSetFiles/>
+        </fileSet>
+        <fileSet>
+            <fileSetName>ip_arria10_e2sg_jesd204b_rx_core_pll</fileSetName>
+            <fileSetFixedName>ip_arria10_e2sg_jesd204b_rx_core_pll</fileSetFixedName>
+            <fileSetKind>SIM_VERILOG</fileSetKind>
+            <fileSetFiles/>
+        </fileSet>
+        <fileSet>
+            <fileSetName>ip_arria10_e2sg_jesd204b_rx_core_pll</fileSetName>
+            <fileSetFixedName>ip_arria10_e2sg_jesd204b_rx_core_pll</fileSetFixedName>
+            <fileSetKind>SIM_VHDL</fileSetKind>
+            <fileSetFiles/>
+        </fileSet>
+    </fileSets>
+</generationInfoDefinition>]]></parameter>
+  <parameter name="hlsFile" value="" />
+  <parameter name="logicalView">/home/hargreaves/git/hdl/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx_core_pll.ip</parameter>
+  <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
+    <assignmentValueMap>
+        <entry>
+            <key>embeddedsw.dts.compatible</key>
+            <value>altr,pll</value>
+        </entry>
+        <entry>
+            <key>embeddedsw.dts.group</key>
+            <value>clock</value>
+        </entry>
+        <entry>
+            <key>embeddedsw.dts.vendor</key>
+            <value>altr</value>
+        </entry>
+    </assignmentValueMap>
+</assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx_reset_seq.ip b/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx_reset_seq.ip
new file mode 100644
index 0000000000000000000000000000000000000000..d0d2f5fa65ed2c07bea22141b8b890d42ffb87fb
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx_reset_seq.ip
@@ -0,0 +1,2318 @@
+<?xml version="1.0" ?>
+<spirit:component xmlns:altera="http://www.altera.com/XMLSchema/IPXact/extensions" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009">
+  <spirit:vendor>Intel Corporation</spirit:vendor>
+  <spirit:library>ip_arria10_e2sg_jesd204b_rx_reset_seq</spirit:library>
+  <spirit:name>reset_seq</spirit:name>
+  <spirit:version>18.0</spirit:version>
+  <spirit:busInterfaces>
+    <spirit:busInterface>
+      <spirit:name>av_csr</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="avalon" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>address</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>av_address</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>readdata</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>av_readdata</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>read</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>av_read</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>writedata</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>av_writedata</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>write</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>av_write</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>addressAlignment</spirit:name>
+          <spirit:displayName>Slave addressing</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="addressAlignment">DYNAMIC</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>addressGroup</spirit:name>
+          <spirit:displayName>Address group</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="addressGroup">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>addressSpan</spirit:name>
+          <spirit:displayName>Address span</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="addressSpan">256</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>addressUnits</spirit:name>
+          <spirit:displayName>Address units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="addressUnits">SYMBOLS</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>alwaysBurstMaxBurst</spirit:name>
+          <spirit:displayName>Always burst maximum burst</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="alwaysBurstMaxBurst">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>Associated clock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock">clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>Associated reset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset">csr_reset</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>bitsPerSymbol</spirit:name>
+          <spirit:displayName>Bits per symbol</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="bitsPerSymbol">8</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>bridgedAddressOffset</spirit:name>
+          <spirit:displayName>Bridged Address Offset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="bridgedAddressOffset">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>bridgesToMaster</spirit:name>
+          <spirit:displayName>Bridges to master</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="bridgesToMaster"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>burstOnBurstBoundariesOnly</spirit:name>
+          <spirit:displayName>Burst on burst boundaries only</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="burstOnBurstBoundariesOnly">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>burstcountUnits</spirit:name>
+          <spirit:displayName>Burstcount units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="burstcountUnits">SYMBOLS</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>constantBurstBehavior</spirit:name>
+          <spirit:displayName>Constant burst behavior</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="constantBurstBehavior">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>explicitAddressSpan</spirit:name>
+          <spirit:displayName>Explicit address span</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="explicitAddressSpan">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>holdTime</spirit:name>
+          <spirit:displayName>Hold</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="holdTime">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>interleaveBursts</spirit:name>
+          <spirit:displayName>Interleave bursts</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="interleaveBursts">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>isBigEndian</spirit:name>
+          <spirit:displayName>Big endian</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="isBigEndian">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>isFlash</spirit:name>
+          <spirit:displayName>Flash memory</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="isFlash">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>isMemoryDevice</spirit:name>
+          <spirit:displayName>Memory device</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="isMemoryDevice">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>isNonVolatileStorage</spirit:name>
+          <spirit:displayName>Non-volatile storage</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="isNonVolatileStorage">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>linewrapBursts</spirit:name>
+          <spirit:displayName>Linewrap bursts</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="linewrapBursts">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>maximumPendingReadTransactions</spirit:name>
+          <spirit:displayName>Maximum pending read transactions</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="maximumPendingReadTransactions">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>maximumPendingWriteTransactions</spirit:name>
+          <spirit:displayName>Maximum pending write transactions</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="maximumPendingWriteTransactions">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>minimumReadLatency</spirit:name>
+          <spirit:displayName>minimumReadLatency</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="minimumReadLatency">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>minimumResponseLatency</spirit:name>
+          <spirit:displayName>Minimum response latency</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="minimumResponseLatency">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>minimumUninterruptedRunLength</spirit:name>
+          <spirit:displayName>Minimum uninterrupted run length</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="minimumUninterruptedRunLength">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>printableDevice</spirit:name>
+          <spirit:displayName>Can receive stdout/stderr</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="printableDevice">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>readLatency</spirit:name>
+          <spirit:displayName>Read latency</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="readLatency">2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>readWaitStates</spirit:name>
+          <spirit:displayName>Read wait states</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="readWaitStates">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>readWaitTime</spirit:name>
+          <spirit:displayName>Read wait</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="readWaitTime">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>registerIncomingSignals</spirit:name>
+          <spirit:displayName>Register incoming signals</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="registerIncomingSignals">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>registerOutgoingSignals</spirit:name>
+          <spirit:displayName>Register outgoing signals</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="registerOutgoingSignals">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>setupTime</spirit:name>
+          <spirit:displayName>Setup</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="setupTime">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>timingUnits</spirit:name>
+          <spirit:displayName>Timing units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="timingUnits">Cycles</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>transparentBridge</spirit:name>
+          <spirit:displayName>Transparent bridge</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="transparentBridge">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>waitrequestAllowance</spirit:name>
+          <spirit:displayName>Waitrequest allowance</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="waitrequestAllowance">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>wellBehavedWaitrequest</spirit:name>
+          <spirit:displayName>Well-behaved waitrequest</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="wellBehavedWaitrequest">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>writeLatency</spirit:name>
+          <spirit:displayName>Write latency</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="writeLatency">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>writeWaitStates</spirit:name>
+          <spirit:displayName>Write wait states</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="writeWaitStates">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>writeWaitTime</spirit:name>
+          <spirit:displayName>Write wait</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="writeWaitTime">0</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>embeddedsw.configuration.isFlash</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="embeddedsw.configuration.isFlash">0</spirit:value>
+            </spirit:parameter>
+            <spirit:parameter>
+              <spirit:name>embeddedsw.configuration.isMemoryDevice</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="embeddedsw.configuration.isMemoryDevice">0</spirit:value>
+            </spirit:parameter>
+            <spirit:parameter>
+              <spirit:name>embeddedsw.configuration.isNonVolatileStorage</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="embeddedsw.configuration.isNonVolatileStorage">0</spirit:value>
+            </spirit:parameter>
+            <spirit:parameter>
+              <spirit:name>embeddedsw.configuration.isPrintableDevice</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="embeddedsw.configuration.isPrintableDevice">0</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>av_csr_irq</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="interrupt" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>irq</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>irq</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedAddressablePoint</spirit:name>
+          <spirit:displayName>Associated addressable interface</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedAddressablePoint">ip_arria10_e2sg_jesd204b_rx_reset_seq.av_csr</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>Associated clock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock">clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>Associated reset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset">csr_reset</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>bridgedReceiverOffset</spirit:name>
+          <spirit:displayName>Bridged receiver offset</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="bridgedReceiverOffset">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>bridgesToReceiver</spirit:name>
+          <spirit:displayName>Bridges to receiver</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="bridgesToReceiver"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>irqScheme</spirit:name>
+          <spirit:displayName>Interrupt scheme</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="irqScheme">NONE</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>clk</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="clock" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>clk</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>clk</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>clockRate</spirit:name>
+          <spirit:displayName>Clock rate</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="clockRate">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>externallyDriven</spirit:name>
+          <spirit:displayName>Externally driven</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="externallyDriven">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ptfSchematicName</spirit:name>
+          <spirit:displayName>PTF schematic name</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="ptfSchematicName"></spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>csr_reset</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="reset" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>reset</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>csr_reset</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>Associated clock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>synchronousEdges</spirit:name>
+          <spirit:displayName>Synchronous edges</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="synchronousEdges">NONE</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>reset1_dsrt_qual</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>reset1_dsrt_qual</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>reset1_dsrt_qual</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>reset2_dsrt_qual</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>reset2_dsrt_qual</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>reset2_dsrt_qual</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>reset5_dsrt_qual</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>reset5_dsrt_qual</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>reset5_dsrt_qual</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>reset_in0</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="reset" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>reset</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>reset_in0</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>Associated clock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>synchronousEdges</spirit:name>
+          <spirit:displayName>Synchronous edges</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="synchronousEdges">NONE</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>reset_out0</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="reset" spirit:version="18.0"></spirit:busType>
+      <spirit:master></spirit:master>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>reset</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>reset_out0</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>Associated clock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock">clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedDirectReset</spirit:name>
+          <spirit:displayName>Associated direct reset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedDirectReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedResetSinks</spirit:name>
+          <spirit:displayName>Associated reset sinks</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedResetSinks">reset_in0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>synchronousEdges</spirit:name>
+          <spirit:displayName>Synchronous edges</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="synchronousEdges">BOTH</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>reset_out1</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="reset" spirit:version="18.0"></spirit:busType>
+      <spirit:master></spirit:master>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>reset</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>reset_out1</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>Associated clock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock">clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedDirectReset</spirit:name>
+          <spirit:displayName>Associated direct reset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedDirectReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedResetSinks</spirit:name>
+          <spirit:displayName>Associated reset sinks</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedResetSinks">reset_in0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>synchronousEdges</spirit:name>
+          <spirit:displayName>Synchronous edges</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="synchronousEdges">BOTH</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>reset_out2</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="reset" spirit:version="18.0"></spirit:busType>
+      <spirit:master></spirit:master>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>reset</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>reset_out2</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>Associated clock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock">clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedDirectReset</spirit:name>
+          <spirit:displayName>Associated direct reset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedDirectReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedResetSinks</spirit:name>
+          <spirit:displayName>Associated reset sinks</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedResetSinks">reset_in0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>synchronousEdges</spirit:name>
+          <spirit:displayName>Synchronous edges</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="synchronousEdges">BOTH</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>reset_out3</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="reset" spirit:version="18.0"></spirit:busType>
+      <spirit:master></spirit:master>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>reset</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>reset_out3</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>Associated clock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock">clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedDirectReset</spirit:name>
+          <spirit:displayName>Associated direct reset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedDirectReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedResetSinks</spirit:name>
+          <spirit:displayName>Associated reset sinks</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedResetSinks">reset_in0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>synchronousEdges</spirit:name>
+          <spirit:displayName>Synchronous edges</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="synchronousEdges">BOTH</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>reset_out4</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="reset" spirit:version="18.0"></spirit:busType>
+      <spirit:master></spirit:master>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>reset</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>reset_out4</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>Associated clock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock">clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedDirectReset</spirit:name>
+          <spirit:displayName>Associated direct reset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedDirectReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedResetSinks</spirit:name>
+          <spirit:displayName>Associated reset sinks</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedResetSinks">reset_in0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>synchronousEdges</spirit:name>
+          <spirit:displayName>Synchronous edges</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="synchronousEdges">BOTH</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>reset_out5</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="reset" spirit:version="18.0"></spirit:busType>
+      <spirit:master></spirit:master>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>reset</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>reset_out5</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>Associated clock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock">clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedDirectReset</spirit:name>
+          <spirit:displayName>Associated direct reset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedDirectReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedResetSinks</spirit:name>
+          <spirit:displayName>Associated reset sinks</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedResetSinks">reset_in0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>synchronousEdges</spirit:name>
+          <spirit:displayName>Synchronous edges</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="synchronousEdges">BOTH</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>reset_out6</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="reset" spirit:version="18.0"></spirit:busType>
+      <spirit:master></spirit:master>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>reset</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>reset_out6</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>Associated clock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock">clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedDirectReset</spirit:name>
+          <spirit:displayName>Associated direct reset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedDirectReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedResetSinks</spirit:name>
+          <spirit:displayName>Associated reset sinks</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedResetSinks">reset_in0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>synchronousEdges</spirit:name>
+          <spirit:displayName>Synchronous edges</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="synchronousEdges">BOTH</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>reset_out7</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="reset" spirit:version="18.0"></spirit:busType>
+      <spirit:master></spirit:master>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>reset</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>reset_out7</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>Associated clock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock">clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedDirectReset</spirit:name>
+          <spirit:displayName>Associated direct reset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedDirectReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedResetSinks</spirit:name>
+          <spirit:displayName>Associated reset sinks</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedResetSinks">reset_in0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>synchronousEdges</spirit:name>
+          <spirit:displayName>Synchronous edges</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="synchronousEdges">BOTH</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+  </spirit:busInterfaces>
+  <spirit:model>
+    <spirit:views>
+      <spirit:view>
+        <spirit:name>QUARTUS_SYNTH</spirit:name>
+        <spirit:envIdentifier>:quartus.altera.com:</spirit:envIdentifier>
+        <spirit:modelName>altera_reset_sequencer</spirit:modelName>
+        <spirit:fileSetRef>
+          <spirit:localName>QUARTUS_SYNTH</spirit:localName>
+        </spirit:fileSetRef>
+      </spirit:view>
+    </spirit:views>
+    <spirit:ports>
+      <spirit:port>
+        <spirit:name>clk</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>reset_in0</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>reset_out0</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>reset_out1</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>reset_out2</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>reset_out3</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>reset_out4</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>reset_out5</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>reset_out6</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>reset_out7</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>reset1_dsrt_qual</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>reset2_dsrt_qual</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>reset5_dsrt_qual</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>csr_reset</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>av_address</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>7</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>av_readdata</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>31</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>av_read</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>av_writedata</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>31</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>av_write</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>irq</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+    </spirit:ports>
+  </spirit:model>
+  <spirit:vendorExtensions>
+    <altera:entity_info>
+      <spirit:vendor>Intel Corporation</spirit:vendor>
+      <spirit:library>ip_arria10_e2sg_jesd204b_rx_reset_seq</spirit:library>
+      <spirit:name>altera_reset_sequencer</spirit:name>
+      <spirit:version>18.0</spirit:version>
+    </altera:entity_info>
+    <altera:altera_module_parameters>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>NUM_OUTPUTS</spirit:name>
+          <spirit:displayName>Number of reset outputs</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="NUM_OUTPUTS">8</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>NUM_INPUTS</spirit:name>
+          <spirit:displayName>Number of reset inputs</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="NUM_INPUTS">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ENABLE_RESET_REQUEST_INPUT</spirit:name>
+          <spirit:displayName>Enable reset request as input to sequencer</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ENABLE_RESET_REQUEST_INPUT">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ENABLE_DEASSERTION_INPUT_QUAL</spirit:name>
+          <spirit:displayName>Bit-wise enable for input signal qualification</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ENABLE_DEASSERTION_INPUT_QUAL">38</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ENABLE_ASSERTION_SEQUENCE</spirit:name>
+          <spirit:displayName>Enable reset assertion sequence</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ENABLE_ASSERTION_SEQUENCE">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ENABLE_DEASSERTION_SEQUENCE</spirit:name>
+          <spirit:displayName>Enable reset de-assertion sequence</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ENABLE_DEASSERTION_SEQUENCE">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>MIN_ASRT_TIME</spirit:name>
+          <spirit:displayName>Minimum reset assertion time</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="MIN_ASRT_TIME">20</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASRT_DELAY0</spirit:name>
+          <spirit:displayName>Assertion Delay between reset_in to reset0</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ASRT_DELAY0">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_DELAY0</spirit:name>
+          <spirit:displayName>De-assertion Delay between reset_in to reset0</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_DELAY0">2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASRT_REMAP0</spirit:name>
+          <spirit:displayName>reset_out0 assert sequence #</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ASRT_REMAP0">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_REMAP0</spirit:name>
+          <spirit:displayName>reset_out0 de-assert sequence #</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_REMAP0">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_QUALCNT_0</spirit:name>
+          <spirit:displayName>Deglitch count for de-assertion of reset0_drst_qual</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_QUALCNT_0">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASRT_DELAY1</spirit:name>
+          <spirit:displayName>Assertion Delay between reset0 to reset1</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ASRT_DELAY1">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_DELAY1</spirit:name>
+          <spirit:displayName>De-assertion Delay between reset0 to reset1</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_DELAY1">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASRT_REMAP1</spirit:name>
+          <spirit:displayName>reset_out1 assert sequence #</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ASRT_REMAP1">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_REMAP1</spirit:name>
+          <spirit:displayName>reset_out1 de-assert sequence #</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_REMAP1">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_QUALCNT_1</spirit:name>
+          <spirit:displayName>Deglitch count for de-assertion of reset1_drst_qual</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_QUALCNT_1">2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASRT_DELAY2</spirit:name>
+          <spirit:displayName>Assertion Delay between reset1 to reset2</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ASRT_DELAY2">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_DELAY2</spirit:name>
+          <spirit:displayName>De-assertion Delay between reset1 to reset2</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_DELAY2">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASRT_REMAP2</spirit:name>
+          <spirit:displayName>reset_out2 assert sequence #</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ASRT_REMAP2">2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_REMAP2</spirit:name>
+          <spirit:displayName>reset_out2 de-assert sequence #</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_REMAP2">2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_QUALCNT_2</spirit:name>
+          <spirit:displayName>Deglitch count for de-assertion of reset2_drst_qual</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_QUALCNT_2">2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASRT_DELAY3</spirit:name>
+          <spirit:displayName>Assertion Delay between reset2 to reset3</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ASRT_DELAY3">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_DELAY3</spirit:name>
+          <spirit:displayName>De-assertion Delay between reset2 to reset3</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_DELAY3">20</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASRT_REMAP3</spirit:name>
+          <spirit:displayName>reset_out3 assert sequence #</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ASRT_REMAP3">3</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_REMAP3</spirit:name>
+          <spirit:displayName>reset_out3 de-assert sequence #</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_REMAP3">3</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_QUALCNT_3</spirit:name>
+          <spirit:displayName>Deglitch count for de-assertion of reset3_drst_qual</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_QUALCNT_3">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASRT_DELAY4</spirit:name>
+          <spirit:displayName>Assertion Delay between reset3 to reset4</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ASRT_DELAY4">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_DELAY4</spirit:name>
+          <spirit:displayName>De-assertion Delay between reset3 to reset4</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_DELAY4">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASRT_REMAP4</spirit:name>
+          <spirit:displayName>reset_out4 assert sequence #</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ASRT_REMAP4">4</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_REMAP4</spirit:name>
+          <spirit:displayName>reset_out4 de-assert sequence #</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_REMAP4">4</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_QUALCNT_4</spirit:name>
+          <spirit:displayName>Deglitch count for de-assertion of reset4_drst_qual</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_QUALCNT_4">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASRT_DELAY5</spirit:name>
+          <spirit:displayName>Assertion Delay between reset4 to reset5</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ASRT_DELAY5">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_DELAY5</spirit:name>
+          <spirit:displayName>De-assertion Delay between reset4 to reset5</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_DELAY5">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASRT_REMAP5</spirit:name>
+          <spirit:displayName>reset_out5 assert sequence #</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ASRT_REMAP5">5</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_REMAP5</spirit:name>
+          <spirit:displayName>reset_out5 de-assert sequence #</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_REMAP5">5</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_QUALCNT_5</spirit:name>
+          <spirit:displayName>Deglitch count for de-assertion of reset5_drst_qual</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_QUALCNT_5">2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASRT_DELAY6</spirit:name>
+          <spirit:displayName>Assertion Delay between reset5 to reset6</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ASRT_DELAY6">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_DELAY6</spirit:name>
+          <spirit:displayName>De-assertion Delay between reset5 to reset6</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_DELAY6">20</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASRT_REMAP6</spirit:name>
+          <spirit:displayName>reset_out6 assert sequence #</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ASRT_REMAP6">6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_REMAP6</spirit:name>
+          <spirit:displayName>reset_out6 de-assert sequence #</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_REMAP6">6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_QUALCNT_6</spirit:name>
+          <spirit:displayName>Deglitch count for de-assertion of reset6_drst_qual</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_QUALCNT_6">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASRT_DELAY7</spirit:name>
+          <spirit:displayName>Assertion Delay between reset6 to reset7</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ASRT_DELAY7">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_DELAY7</spirit:name>
+          <spirit:displayName>De-assertion Delay between reset6 to reset7</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_DELAY7">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASRT_REMAP7</spirit:name>
+          <spirit:displayName>reset_out7 assert sequence #</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ASRT_REMAP7">7</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_REMAP7</spirit:name>
+          <spirit:displayName>reset_out7 de-assert sequence #</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_REMAP7">7</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_QUALCNT_7</spirit:name>
+          <spirit:displayName>Deglitch count for de-assertion of reset7_drst_qual</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_QUALCNT_7">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASRT_DELAY8</spirit:name>
+          <spirit:displayName>Assertion Delay between reset7 to reset8</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ASRT_DELAY8">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_DELAY8</spirit:name>
+          <spirit:displayName>De-assertion Delay between reset7 to reset8</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_DELAY8">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASRT_REMAP8</spirit:name>
+          <spirit:displayName>reset_out8 assert sequence #</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ASRT_REMAP8">8</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_REMAP8</spirit:name>
+          <spirit:displayName>reset_out8 de-assert sequence #</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_REMAP8">8</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_QUALCNT_8</spirit:name>
+          <spirit:displayName>Deglitch count for de-assertion of reset8_drst_qual</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_QUALCNT_8">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASRT_DELAY9</spirit:name>
+          <spirit:displayName>Assertion Delay between reset8 to reset9</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ASRT_DELAY9">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_DELAY9</spirit:name>
+          <spirit:displayName>De-assertion Delay between reset8 to reset9</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_DELAY9">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASRT_REMAP9</spirit:name>
+          <spirit:displayName>reset_out9 assert sequence #</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ASRT_REMAP9">9</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_REMAP9</spirit:name>
+          <spirit:displayName>reset_out9 de-assert sequence #</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_REMAP9">9</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_QUALCNT_9</spirit:name>
+          <spirit:displayName>Deglitch count for de-assertion of reset9_drst_qual</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="DSRT_QUALCNT_9">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ENABLE_CSR</spirit:name>
+          <spirit:displayName>Enable Reset Sequencer CSR</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="ENABLE_CSR">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>RESET_OUT_NAME</spirit:name>
+          <spirit:displayName>reset_out#</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="RESET_OUT_NAME">reset_out0,reset_out1,reset_out2,reset_out3,reset_out4,reset_out5,reset_out6,reset_out7</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>LIST_ASRT_SEQ</spirit:name>
+          <spirit:displayName>ASRT Seq#</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="LIST_ASRT_SEQ">0,1,2,3,4,5,6,7,8,9</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>LIST_DSRT_SEQ</spirit:name>
+          <spirit:displayName>DSRT Seq #</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="LIST_DSRT_SEQ">0,1,2,3,4,5,6,7,8,9</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>LIST_ASRT_DELAY</spirit:name>
+          <spirit:displayName>ASRT Delay Cycle#</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="LIST_ASRT_DELAY">0,0,0,0,0,0,0,0,0,0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>LIST_DSRT_DELAY</spirit:name>
+          <spirit:displayName>DSRT Delay Cycle# / Deglitch#</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="LIST_DSRT_DELAY">2,2,2,20,0,2,20,0,0,0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>USE_DSRT_QUAL</spirit:name>
+          <spirit:displayName>USE_DSRT_QUAL</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="USE_DSRT_QUAL">0,1,1,0,0,1,0,0,0,0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ASRT_SEQ_MSG</spirit:name>
+          <spirit:displayName>Assertion Sequence</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="ASRT_SEQ_MSG">SEQUENCE DISABLED (All Delays are 0)</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>DSRT_SEQ_MSG</spirit:name>
+          <spirit:displayName>De-assertion Sequence</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="DSRT_SEQ_MSG"><![CDATA[reset_in_deasserted-> #2-> reset_out0 ->wait_dqual1-> reset_out1 ->wait_dqual2-> reset_out2 -> #20-> reset_out3 + reset_out4 ->wait_dqual5-> reset_out5 -> #20-> reset_out6 + reset_out7]]></spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </altera:altera_module_parameters>
+    <altera:altera_system_parameters>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>device</spirit:name>
+          <spirit:displayName>Device</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>deviceFamily</spirit:name>
+          <spirit:displayName>Device family</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="deviceFamily">Arria 10</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>deviceSpeedGrade</spirit:name>
+          <spirit:displayName>Device Speed Grade</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="deviceSpeedGrade">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>generationId</spirit:name>
+          <spirit:displayName>Generation Id</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="generationId">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>bonusData</spirit:name>
+          <spirit:displayName>bonusData</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="bonusData">bonusData 
+{
+   element reset_seq
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hideFromIPCatalog</spirit:name>
+          <spirit:displayName>Hide from IP Catalog</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="hideFromIPCatalog">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>lockedInterfaceDefinition</spirit:name>
+          <spirit:displayName>lockedInterfaceDefinition</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="lockedInterfaceDefinition"><![CDATA[<boundaryDefinition>
+    <interfaces>
+        <interface>
+            <name>av_csr</name>
+            <type>avalon</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>av_address</name>
+                    <role>address</role>
+                    <direction>Input</direction>
+                    <width>8</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                </port>
+                <port>
+                    <name>av_readdata</name>
+                    <role>readdata</role>
+                    <direction>Output</direction>
+                    <width>32</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                </port>
+                <port>
+                    <name>av_read</name>
+                    <role>read</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+                <port>
+                    <name>av_writedata</name>
+                    <role>writedata</role>
+                    <direction>Input</direction>
+                    <width>32</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                </port>
+                <port>
+                    <name>av_write</name>
+                    <role>write</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap>
+                    <entry>
+                        <key>embeddedsw.configuration.isFlash</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>embeddedsw.configuration.isMemoryDevice</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>embeddedsw.configuration.isNonVolatileStorage</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>embeddedsw.configuration.isPrintableDevice</key>
+                        <value>0</value>
+                    </entry>
+                </assignmentValueMap>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>addressAlignment</key>
+                        <value>DYNAMIC</value>
+                    </entry>
+                    <entry>
+                        <key>addressGroup</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>addressSpan</key>
+                        <value>256</value>
+                    </entry>
+                    <entry>
+                        <key>addressUnits</key>
+                        <value>SYMBOLS</value>
+                    </entry>
+                    <entry>
+                        <key>alwaysBurstMaxBurst</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>associatedClock</key>
+                        <value>clk</value>
+                    </entry>
+                    <entry>
+                        <key>associatedReset</key>
+                        <value>csr_reset</value>
+                    </entry>
+                    <entry>
+                        <key>bitsPerSymbol</key>
+                        <value>8</value>
+                    </entry>
+                    <entry>
+                        <key>bridgedAddressOffset</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>bridgesToMaster</key>
+                    </entry>
+                    <entry>
+                        <key>burstOnBurstBoundariesOnly</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>burstcountUnits</key>
+                        <value>SYMBOLS</value>
+                    </entry>
+                    <entry>
+                        <key>constantBurstBehavior</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>explicitAddressSpan</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>holdTime</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>interleaveBursts</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>isBigEndian</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>isFlash</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>isMemoryDevice</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>isNonVolatileStorage</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>linewrapBursts</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>maximumPendingReadTransactions</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>maximumPendingWriteTransactions</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>minimumReadLatency</key>
+                        <value>1</value>
+                    </entry>
+                    <entry>
+                        <key>minimumResponseLatency</key>
+                        <value>1</value>
+                    </entry>
+                    <entry>
+                        <key>minimumUninterruptedRunLength</key>
+                        <value>1</value>
+                    </entry>
+                    <entry>
+                        <key>prSafe</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>printableDevice</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>readLatency</key>
+                        <value>2</value>
+                    </entry>
+                    <entry>
+                        <key>readWaitStates</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>readWaitTime</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>registerIncomingSignals</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>registerOutgoingSignals</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>setupTime</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>timingUnits</key>
+                        <value>Cycles</value>
+                    </entry>
+                    <entry>
+                        <key>transparentBridge</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>waitrequestAllowance</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>wellBehavedWaitrequest</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>writeLatency</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>writeWaitStates</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>writeWaitTime</key>
+                        <value>0</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>av_csr_irq</name>
+            <type>interrupt</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>irq</name>
+                    <role>irq</role>
+                    <direction>Output</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedAddressablePoint</key>
+                        <value>altjesd_ss_RX_reset_seq.av_csr</value>
+                    </entry>
+                    <entry>
+                        <key>associatedClock</key>
+                        <value>clk</value>
+                    </entry>
+                    <entry>
+                        <key>associatedReset</key>
+                        <value>csr_reset</value>
+                    </entry>
+                    <entry>
+                        <key>bridgedReceiverOffset</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>bridgesToReceiver</key>
+                    </entry>
+                    <entry>
+                        <key>irqScheme</key>
+                        <value>NONE</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>clk</name>
+            <type>clock</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>clk</name>
+                    <role>clk</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>clockRate</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>externallyDriven</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>ptfSchematicName</key>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>csr_reset</name>
+            <type>reset</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>csr_reset</name>
+                    <role>reset</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>NONE</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset1_dsrt_qual</name>
+            <type>conduit</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>reset1_dsrt_qual</name>
+                    <role>reset1_dsrt_qual</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>associatedReset</key>
+                    </entry>
+                    <entry>
+                        <key>prSafe</key>
+                        <value>false</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset2_dsrt_qual</name>
+            <type>conduit</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>reset2_dsrt_qual</name>
+                    <role>reset2_dsrt_qual</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>associatedReset</key>
+                    </entry>
+                    <entry>
+                        <key>prSafe</key>
+                        <value>false</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset5_dsrt_qual</name>
+            <type>conduit</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>reset5_dsrt_qual</name>
+                    <role>reset5_dsrt_qual</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>associatedReset</key>
+                    </entry>
+                    <entry>
+                        <key>prSafe</key>
+                        <value>false</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset_in0</name>
+            <type>reset</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>reset_in0</name>
+                    <role>reset</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>NONE</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset_out0</name>
+            <type>reset</type>
+            <isStart>true</isStart>
+            <ports>
+                <port>
+                    <name>reset_out0</name>
+                    <role>reset</role>
+                    <direction>Output</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                        <value>clk</value>
+                    </entry>
+                    <entry>
+                        <key>associatedDirectReset</key>
+                    </entry>
+                    <entry>
+                        <key>associatedResetSinks</key>
+                        <value>reset_in0</value>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>BOTH</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset_out1</name>
+            <type>reset</type>
+            <isStart>true</isStart>
+            <ports>
+                <port>
+                    <name>reset_out1</name>
+                    <role>reset</role>
+                    <direction>Output</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                        <value>clk</value>
+                    </entry>
+                    <entry>
+                        <key>associatedDirectReset</key>
+                    </entry>
+                    <entry>
+                        <key>associatedResetSinks</key>
+                        <value>reset_in0</value>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>BOTH</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset_out2</name>
+            <type>reset</type>
+            <isStart>true</isStart>
+            <ports>
+                <port>
+                    <name>reset_out2</name>
+                    <role>reset</role>
+                    <direction>Output</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                        <value>clk</value>
+                    </entry>
+                    <entry>
+                        <key>associatedDirectReset</key>
+                    </entry>
+                    <entry>
+                        <key>associatedResetSinks</key>
+                        <value>reset_in0</value>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>BOTH</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset_out3</name>
+            <type>reset</type>
+            <isStart>true</isStart>
+            <ports>
+                <port>
+                    <name>reset_out3</name>
+                    <role>reset</role>
+                    <direction>Output</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                        <value>clk</value>
+                    </entry>
+                    <entry>
+                        <key>associatedDirectReset</key>
+                    </entry>
+                    <entry>
+                        <key>associatedResetSinks</key>
+                        <value>reset_in0</value>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>BOTH</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset_out4</name>
+            <type>reset</type>
+            <isStart>true</isStart>
+            <ports>
+                <port>
+                    <name>reset_out4</name>
+                    <role>reset</role>
+                    <direction>Output</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                        <value>clk</value>
+                    </entry>
+                    <entry>
+                        <key>associatedDirectReset</key>
+                    </entry>
+                    <entry>
+                        <key>associatedResetSinks</key>
+                        <value>reset_in0</value>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>BOTH</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset_out5</name>
+            <type>reset</type>
+            <isStart>true</isStart>
+            <ports>
+                <port>
+                    <name>reset_out5</name>
+                    <role>reset</role>
+                    <direction>Output</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                        <value>clk</value>
+                    </entry>
+                    <entry>
+                        <key>associatedDirectReset</key>
+                    </entry>
+                    <entry>
+                        <key>associatedResetSinks</key>
+                        <value>reset_in0</value>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>BOTH</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset_out6</name>
+            <type>reset</type>
+            <isStart>true</isStart>
+            <ports>
+                <port>
+                    <name>reset_out6</name>
+                    <role>reset</role>
+                    <direction>Output</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                        <value>clk</value>
+                    </entry>
+                    <entry>
+                        <key>associatedDirectReset</key>
+                    </entry>
+                    <entry>
+                        <key>associatedResetSinks</key>
+                        <value>reset_in0</value>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>BOTH</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset_out7</name>
+            <type>reset</type>
+            <isStart>true</isStart>
+            <ports>
+                <port>
+                    <name>reset_out7</name>
+                    <role>reset</role>
+                    <direction>Output</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                        <value>clk</value>
+                    </entry>
+                    <entry>
+                        <key>associatedDirectReset</key>
+                    </entry>
+                    <entry>
+                        <key>associatedResetSinks</key>
+                        <value>reset_in0</value>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>BOTH</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+    </interfaces>
+</boundaryDefinition>]]></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>systemInfos</spirit:name>
+          <spirit:displayName>systemInfos</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos>
+        <entry>
+            <key>av_csr</key>
+            <value>
+                <connectionPointName>av_csr</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>ADDRESS_MAP</key>
+                        <value>&lt;address-map&gt;&lt;slave name='av_csr' start='0x0' end='0x100' datawidth='32' /&gt;&lt;/address-map&gt;</value>
+                    </entry>
+                    <entry>
+                        <key>ADDRESS_WIDTH</key>
+                        <value>8</value>
+                    </entry>
+                    <entry>
+                        <key>MAX_SLAVE_DATA_WIDTH</key>
+                        <value>32</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+    </connPtSystemInfos>
+</systemInfosDefinition>]]></spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </altera:altera_system_parameters>
+    <altera:altera_interface_boundary>
+      <altera:interface_mapping altera:name="av_csr" altera:internal="reset_seq.av_csr" altera:type="avalon" altera:dir="end">
+        <altera:port_mapping altera:name="av_address" altera:internal="av_address"></altera:port_mapping>
+        <altera:port_mapping altera:name="av_read" altera:internal="av_read"></altera:port_mapping>
+        <altera:port_mapping altera:name="av_readdata" altera:internal="av_readdata"></altera:port_mapping>
+        <altera:port_mapping altera:name="av_write" altera:internal="av_write"></altera:port_mapping>
+        <altera:port_mapping altera:name="av_writedata" altera:internal="av_writedata"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="av_csr_irq" altera:internal="reset_seq.av_csr_irq" altera:type="interrupt" altera:dir="end">
+        <altera:port_mapping altera:name="irq" altera:internal="irq"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="clk" altera:internal="reset_seq.clk" altera:type="clock" altera:dir="end">
+        <altera:port_mapping altera:name="clk" altera:internal="clk"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="csr_reset" altera:internal="reset_seq.csr_reset" altera:type="reset" altera:dir="end">
+        <altera:port_mapping altera:name="csr_reset" altera:internal="csr_reset"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="reset1_dsrt_qual" altera:internal="reset_seq.reset1_dsrt_qual" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="reset1_dsrt_qual" altera:internal="reset1_dsrt_qual"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="reset2_dsrt_qual" altera:internal="reset_seq.reset2_dsrt_qual" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="reset2_dsrt_qual" altera:internal="reset2_dsrt_qual"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="reset5_dsrt_qual" altera:internal="reset_seq.reset5_dsrt_qual" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="reset5_dsrt_qual" altera:internal="reset5_dsrt_qual"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="reset_in0" altera:internal="reset_seq.reset_in0" altera:type="reset" altera:dir="end">
+        <altera:port_mapping altera:name="reset_in0" altera:internal="reset_in0"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="reset_out0" altera:internal="reset_seq.reset_out0" altera:type="reset" altera:dir="start">
+        <altera:port_mapping altera:name="reset_out0" altera:internal="reset_out0"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="reset_out1" altera:internal="reset_seq.reset_out1" altera:type="reset" altera:dir="start">
+        <altera:port_mapping altera:name="reset_out1" altera:internal="reset_out1"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="reset_out2" altera:internal="reset_seq.reset_out2" altera:type="reset" altera:dir="start">
+        <altera:port_mapping altera:name="reset_out2" altera:internal="reset_out2"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="reset_out3" altera:internal="reset_seq.reset_out3" altera:type="reset" altera:dir="start">
+        <altera:port_mapping altera:name="reset_out3" altera:internal="reset_out3"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="reset_out4" altera:internal="reset_seq.reset_out4" altera:type="reset" altera:dir="start">
+        <altera:port_mapping altera:name="reset_out4" altera:internal="reset_out4"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="reset_out5" altera:internal="reset_seq.reset_out5" altera:type="reset" altera:dir="start">
+        <altera:port_mapping altera:name="reset_out5" altera:internal="reset_out5"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="reset_out6" altera:internal="reset_seq.reset_out6" altera:type="reset" altera:dir="start">
+        <altera:port_mapping altera:name="reset_out6" altera:internal="reset_out6"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="reset_out7" altera:internal="reset_seq.reset_out7" altera:type="reset" altera:dir="start">
+        <altera:port_mapping altera:name="reset_out7" altera:internal="reset_out7"></altera:port_mapping>
+      </altera:interface_mapping>
+    </altera:altera_interface_boundary>
+    <altera:altera_has_warnings>false</altera:altera_has_warnings>
+    <altera:altera_has_errors>false</altera:altera_has_errors>
+  </spirit:vendorExtensions>
+</spirit:component>
\ No newline at end of file
diff --git a/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx_reset_seq.qsys b/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx_reset_seq.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..8e3e83dad53fc0a0e9d8bdd00c8afef2cbc54ca7
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx_reset_seq.qsys
@@ -0,0 +1,1740 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_jesd204b_rx_reset_seq">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags=""
+   categories="System"
+   tool="QsysPro" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element reset_sequencer_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="false" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos>
+        <entry>
+            <key>av_csr</key>
+            <value>
+                <connectionPointName>av_csr</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>ADDRESS_MAP</key>
+                        <value>&lt;address-map&gt;&lt;slave name='reset_sequencer_0.av_csr' start='0x0' end='0x100' datawidth='32' /&gt;&lt;/address-map&gt;</value>
+                    </entry>
+                    <entry>
+                        <key>ADDRESS_WIDTH</key>
+                        <value>8</value>
+                    </entry>
+                    <entry>
+                        <key>MAX_SLAVE_DATA_WIDTH</key>
+                        <value>32</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+    </connPtSystemInfos>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="av_csr"
+   internal="reset_sequencer_0.av_csr"
+   type="avalon"
+   dir="end" />
+ <interface name="clk" internal="reset_sequencer_0.clk" type="clock" dir="end" />
+ <interface
+   name="csr_reset"
+   internal="reset_sequencer_0.csr_reset"
+   type="reset"
+   dir="end" />
+ <interface
+   name="irq"
+   internal="reset_sequencer_0.av_csr_irq"
+   type="interrupt"
+   dir="end" />
+ <interface
+   name="reset1_dsrt_qual"
+   internal="reset_sequencer_0.reset1_dsrt_qual"
+   type="conduit"
+   dir="end" />
+ <interface
+   name="reset2_dsrt_qual"
+   internal="reset_sequencer_0.reset2_dsrt_qual"
+   type="conduit"
+   dir="end" />
+ <interface
+   name="reset5_dsrt_qual"
+   internal="reset_sequencer_0.reset5_dsrt_qual"
+   type="conduit"
+   dir="end" />
+ <interface
+   name="reset_in0"
+   internal="reset_sequencer_0.reset_in0"
+   type="reset"
+   dir="end" />
+ <interface
+   name="reset_out0"
+   internal="reset_sequencer_0.reset_out0"
+   type="reset"
+   dir="start" />
+ <interface
+   name="reset_out1"
+   internal="reset_sequencer_0.reset_out1"
+   type="reset"
+   dir="start" />
+ <interface
+   name="reset_out2"
+   internal="reset_sequencer_0.reset_out2"
+   type="reset"
+   dir="start" />
+ <interface
+   name="reset_out3"
+   internal="reset_sequencer_0.reset_out3"
+   type="reset"
+   dir="start" />
+ <interface
+   name="reset_out4"
+   internal="reset_sequencer_0.reset_out4"
+   type="reset"
+   dir="start" />
+ <interface
+   name="reset_out5"
+   internal="reset_sequencer_0.reset_out5"
+   type="reset"
+   dir="start" />
+ <interface
+   name="reset_out6"
+   internal="reset_sequencer_0.reset_out6"
+   type="reset"
+   dir="start" />
+ <interface
+   name="reset_out7"
+   internal="reset_sequencer_0.reset_out7"
+   type="reset"
+   dir="start" />
+ <module
+   name="reset_sequencer_0"
+   kind="altera_generic_component"
+   version="1.0"
+   enabled="1">
+  <parameter name="componentDefinition"><![CDATA[<componentDefinition>
+    <boundary>
+        <interfaces>
+            <interface>
+                <name>av_csr</name>
+                <type>avalon</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>av_address</name>
+                        <role>address</role>
+                        <direction>Input</direction>
+                        <width>8</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                    <port>
+                        <name>av_readdata</name>
+                        <role>readdata</role>
+                        <direction>Output</direction>
+                        <width>32</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                    <port>
+                        <name>av_read</name>
+                        <role>read</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                    <port>
+                        <name>av_writedata</name>
+                        <role>writedata</role>
+                        <direction>Input</direction>
+                        <width>32</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                    <port>
+                        <name>av_write</name>
+                        <role>write</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>embeddedsw.configuration.isFlash</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>embeddedsw.configuration.isMemoryDevice</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>embeddedsw.configuration.isNonVolatileStorage</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>embeddedsw.configuration.isPrintableDevice</key>
+                            <value>0</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>addressAlignment</key>
+                            <value>DYNAMIC</value>
+                        </entry>
+                        <entry>
+                            <key>addressGroup</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>addressSpan</key>
+                            <value>256</value>
+                        </entry>
+                        <entry>
+                            <key>addressUnits</key>
+                            <value>SYMBOLS</value>
+                        </entry>
+                        <entry>
+                            <key>alwaysBurstMaxBurst</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>associatedClock</key>
+                            <value>clk</value>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                            <value>csr_reset</value>
+                        </entry>
+                        <entry>
+                            <key>bitsPerSymbol</key>
+                            <value>8</value>
+                        </entry>
+                        <entry>
+                            <key>bridgedAddressOffset</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>bridgesToMaster</key>
+                        </entry>
+                        <entry>
+                            <key>burstOnBurstBoundariesOnly</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>burstcountUnits</key>
+                            <value>SYMBOLS</value>
+                        </entry>
+                        <entry>
+                            <key>constantBurstBehavior</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>explicitAddressSpan</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>holdTime</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>interleaveBursts</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>isBigEndian</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>isFlash</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>isMemoryDevice</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>isNonVolatileStorage</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>linewrapBursts</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>maximumPendingReadTransactions</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>maximumPendingWriteTransactions</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>minimumReadLatency</key>
+                            <value>1</value>
+                        </entry>
+                        <entry>
+                            <key>minimumResponseLatency</key>
+                            <value>1</value>
+                        </entry>
+                        <entry>
+                            <key>minimumUninterruptedRunLength</key>
+                            <value>1</value>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>printableDevice</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>readLatency</key>
+                            <value>2</value>
+                        </entry>
+                        <entry>
+                            <key>readWaitStates</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>readWaitTime</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>registerIncomingSignals</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>registerOutgoingSignals</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>setupTime</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>timingUnits</key>
+                            <value>Cycles</value>
+                        </entry>
+                        <entry>
+                            <key>transparentBridge</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>waitrequestAllowance</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>wellBehavedWaitrequest</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>writeLatency</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>writeWaitStates</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>writeWaitTime</key>
+                            <value>0</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>av_csr_irq</name>
+                <type>interrupt</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>irq</name>
+                        <role>irq</role>
+                        <direction>Output</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedAddressablePoint</key>
+                            <value>reset_sequencer_0.av_csr</value>
+                        </entry>
+                        <entry>
+                            <key>associatedClock</key>
+                            <value>clk</value>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                            <value>csr_reset</value>
+                        </entry>
+                        <entry>
+                            <key>bridgedReceiverOffset</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>bridgesToReceiver</key>
+                        </entry>
+                        <entry>
+                            <key>irqScheme</key>
+                            <value>NONE</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>clk</name>
+                <type>clock</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>clk</name>
+                        <role>clk</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>clockRate</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>externallyDriven</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>ptfSchematicName</key>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>csr_reset</name>
+                <type>reset</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>csr_reset</name>
+                        <role>reset</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>synchronousEdges</key>
+                            <value>NONE</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>reset1_dsrt_qual</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>reset1_dsrt_qual</name>
+                        <role>reset1_dsrt_qual</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>reset2_dsrt_qual</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>reset2_dsrt_qual</name>
+                        <role>reset2_dsrt_qual</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>reset5_dsrt_qual</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>reset5_dsrt_qual</name>
+                        <role>reset5_dsrt_qual</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>reset_in0</name>
+                <type>reset</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>reset_in0</name>
+                        <role>reset</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>synchronousEdges</key>
+                            <value>NONE</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>reset_out0</name>
+                <type>reset</type>
+                <isStart>true</isStart>
+                <ports>
+                    <port>
+                        <name>reset_out0</name>
+                        <role>reset</role>
+                        <direction>Output</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                            <value>clk</value>
+                        </entry>
+                        <entry>
+                            <key>associatedDirectReset</key>
+                        </entry>
+                        <entry>
+                            <key>associatedResetSinks</key>
+                            <value>reset_in0</value>
+                        </entry>
+                        <entry>
+                            <key>synchronousEdges</key>
+                            <value>BOTH</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>reset_out1</name>
+                <type>reset</type>
+                <isStart>true</isStart>
+                <ports>
+                    <port>
+                        <name>reset_out1</name>
+                        <role>reset</role>
+                        <direction>Output</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                            <value>clk</value>
+                        </entry>
+                        <entry>
+                            <key>associatedDirectReset</key>
+                        </entry>
+                        <entry>
+                            <key>associatedResetSinks</key>
+                            <value>reset_in0</value>
+                        </entry>
+                        <entry>
+                            <key>synchronousEdges</key>
+                            <value>BOTH</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>reset_out2</name>
+                <type>reset</type>
+                <isStart>true</isStart>
+                <ports>
+                    <port>
+                        <name>reset_out2</name>
+                        <role>reset</role>
+                        <direction>Output</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                            <value>clk</value>
+                        </entry>
+                        <entry>
+                            <key>associatedDirectReset</key>
+                        </entry>
+                        <entry>
+                            <key>associatedResetSinks</key>
+                            <value>reset_in0</value>
+                        </entry>
+                        <entry>
+                            <key>synchronousEdges</key>
+                            <value>BOTH</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>reset_out3</name>
+                <type>reset</type>
+                <isStart>true</isStart>
+                <ports>
+                    <port>
+                        <name>reset_out3</name>
+                        <role>reset</role>
+                        <direction>Output</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                            <value>clk</value>
+                        </entry>
+                        <entry>
+                            <key>associatedDirectReset</key>
+                        </entry>
+                        <entry>
+                            <key>associatedResetSinks</key>
+                            <value>reset_in0</value>
+                        </entry>
+                        <entry>
+                            <key>synchronousEdges</key>
+                            <value>BOTH</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>reset_out4</name>
+                <type>reset</type>
+                <isStart>true</isStart>
+                <ports>
+                    <port>
+                        <name>reset_out4</name>
+                        <role>reset</role>
+                        <direction>Output</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                            <value>clk</value>
+                        </entry>
+                        <entry>
+                            <key>associatedDirectReset</key>
+                        </entry>
+                        <entry>
+                            <key>associatedResetSinks</key>
+                            <value>reset_in0</value>
+                        </entry>
+                        <entry>
+                            <key>synchronousEdges</key>
+                            <value>BOTH</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>reset_out5</name>
+                <type>reset</type>
+                <isStart>true</isStart>
+                <ports>
+                    <port>
+                        <name>reset_out5</name>
+                        <role>reset</role>
+                        <direction>Output</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                            <value>clk</value>
+                        </entry>
+                        <entry>
+                            <key>associatedDirectReset</key>
+                        </entry>
+                        <entry>
+                            <key>associatedResetSinks</key>
+                            <value>reset_in0</value>
+                        </entry>
+                        <entry>
+                            <key>synchronousEdges</key>
+                            <value>BOTH</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>reset_out6</name>
+                <type>reset</type>
+                <isStart>true</isStart>
+                <ports>
+                    <port>
+                        <name>reset_out6</name>
+                        <role>reset</role>
+                        <direction>Output</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                            <value>clk</value>
+                        </entry>
+                        <entry>
+                            <key>associatedDirectReset</key>
+                        </entry>
+                        <entry>
+                            <key>associatedResetSinks</key>
+                            <value>reset_in0</value>
+                        </entry>
+                        <entry>
+                            <key>synchronousEdges</key>
+                            <value>BOTH</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>reset_out7</name>
+                <type>reset</type>
+                <isStart>true</isStart>
+                <ports>
+                    <port>
+                        <name>reset_out7</name>
+                        <role>reset</role>
+                        <direction>Output</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                            <value>clk</value>
+                        </entry>
+                        <entry>
+                            <key>associatedDirectReset</key>
+                        </entry>
+                        <entry>
+                            <key>associatedResetSinks</key>
+                            <value>reset_in0</value>
+                        </entry>
+                        <entry>
+                            <key>synchronousEdges</key>
+                            <value>BOTH</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+        </interfaces>
+    </boundary>
+    <originalModuleInfo>
+        <className>altera_reset_sequencer</className>
+        <version>19.1</version>
+        <displayName>Reset Sequencer Intel FPGA IP</displayName>
+    </originalModuleInfo>
+    <systemInfoParameterDescriptors>
+        <descriptors/>
+    </systemInfoParameterDescriptors>
+    <systemInfos>
+        <connPtSystemInfos>
+            <entry>
+                <key>av_csr</key>
+                <value>
+                    <connectionPointName>av_csr</connectionPointName>
+                    <suppliedSystemInfos>
+                        <entry>
+                            <key>ADDRESS_MAP</key>
+                            <value>&lt;address-map&gt;&lt;slave name='av_csr' start='0x0' end='0x100' datawidth='32' /&gt;&lt;/address-map&gt;</value>
+                        </entry>
+                        <entry>
+                            <key>ADDRESS_WIDTH</key>
+                            <value>8</value>
+                        </entry>
+                        <entry>
+                            <key>MAX_SLAVE_DATA_WIDTH</key>
+                            <value>32</value>
+                        </entry>
+                    </suppliedSystemInfos>
+                    <consumedSystemInfos/>
+                </value>
+            </entry>
+        </connPtSystemInfos>
+    </systemInfos>
+</componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary"><![CDATA[<boundaryDefinition>
+    <interfaces>
+        <interface>
+            <name>clk</name>
+            <type>clock</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>clk</name>
+                    <role>clk</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>clockRate</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>externallyDriven</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>ptfSchematicName</key>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset_in0</name>
+            <type>reset</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>reset_in0</name>
+                    <role>reset</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>NONE</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset_out0</name>
+            <type>reset</type>
+            <isStart>true</isStart>
+            <ports>
+                <port>
+                    <name>reset_out0</name>
+                    <role>reset</role>
+                    <direction>Output</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                        <value>clk</value>
+                    </entry>
+                    <entry>
+                        <key>associatedDirectReset</key>
+                    </entry>
+                    <entry>
+                        <key>associatedResetSinks</key>
+                        <value>reset_in0</value>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>BOTH</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset_out1</name>
+            <type>reset</type>
+            <isStart>true</isStart>
+            <ports>
+                <port>
+                    <name>reset_out1</name>
+                    <role>reset</role>
+                    <direction>Output</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                        <value>clk</value>
+                    </entry>
+                    <entry>
+                        <key>associatedDirectReset</key>
+                    </entry>
+                    <entry>
+                        <key>associatedResetSinks</key>
+                        <value>reset_in0</value>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>BOTH</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset_out2</name>
+            <type>reset</type>
+            <isStart>true</isStart>
+            <ports>
+                <port>
+                    <name>reset_out2</name>
+                    <role>reset</role>
+                    <direction>Output</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                        <value>clk</value>
+                    </entry>
+                    <entry>
+                        <key>associatedDirectReset</key>
+                    </entry>
+                    <entry>
+                        <key>associatedResetSinks</key>
+                        <value>reset_in0</value>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>BOTH</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset_out3</name>
+            <type>reset</type>
+            <isStart>true</isStart>
+            <ports>
+                <port>
+                    <name>reset_out3</name>
+                    <role>reset</role>
+                    <direction>Output</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                        <value>clk</value>
+                    </entry>
+                    <entry>
+                        <key>associatedDirectReset</key>
+                    </entry>
+                    <entry>
+                        <key>associatedResetSinks</key>
+                        <value>reset_in0</value>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>BOTH</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset_out4</name>
+            <type>reset</type>
+            <isStart>true</isStart>
+            <ports>
+                <port>
+                    <name>reset_out4</name>
+                    <role>reset</role>
+                    <direction>Output</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                        <value>clk</value>
+                    </entry>
+                    <entry>
+                        <key>associatedDirectReset</key>
+                    </entry>
+                    <entry>
+                        <key>associatedResetSinks</key>
+                        <value>reset_in0</value>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>BOTH</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset_out5</name>
+            <type>reset</type>
+            <isStart>true</isStart>
+            <ports>
+                <port>
+                    <name>reset_out5</name>
+                    <role>reset</role>
+                    <direction>Output</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                        <value>clk</value>
+                    </entry>
+                    <entry>
+                        <key>associatedDirectReset</key>
+                    </entry>
+                    <entry>
+                        <key>associatedResetSinks</key>
+                        <value>reset_in0</value>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>BOTH</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset_out6</name>
+            <type>reset</type>
+            <isStart>true</isStart>
+            <ports>
+                <port>
+                    <name>reset_out6</name>
+                    <role>reset</role>
+                    <direction>Output</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                        <value>clk</value>
+                    </entry>
+                    <entry>
+                        <key>associatedDirectReset</key>
+                    </entry>
+                    <entry>
+                        <key>associatedResetSinks</key>
+                        <value>reset_in0</value>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>BOTH</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset_out7</name>
+            <type>reset</type>
+            <isStart>true</isStart>
+            <ports>
+                <port>
+                    <name>reset_out7</name>
+                    <role>reset</role>
+                    <direction>Output</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                        <value>clk</value>
+                    </entry>
+                    <entry>
+                        <key>associatedDirectReset</key>
+                    </entry>
+                    <entry>
+                        <key>associatedResetSinks</key>
+                        <value>reset_in0</value>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>BOTH</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset1_dsrt_qual</name>
+            <type>conduit</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>reset1_dsrt_qual</name>
+                    <role>reset1_dsrt_qual</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>associatedReset</key>
+                    </entry>
+                    <entry>
+                        <key>prSafe</key>
+                        <value>false</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset2_dsrt_qual</name>
+            <type>conduit</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>reset2_dsrt_qual</name>
+                    <role>reset2_dsrt_qual</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>associatedReset</key>
+                    </entry>
+                    <entry>
+                        <key>prSafe</key>
+                        <value>false</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset5_dsrt_qual</name>
+            <type>conduit</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>reset5_dsrt_qual</name>
+                    <role>reset5_dsrt_qual</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>associatedReset</key>
+                    </entry>
+                    <entry>
+                        <key>prSafe</key>
+                        <value>false</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>csr_reset</name>
+            <type>reset</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>csr_reset</name>
+                    <role>reset</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>NONE</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>av_csr</name>
+            <type>avalon</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>av_address</name>
+                    <role>address</role>
+                    <direction>Input</direction>
+                    <width>8</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                </port>
+                <port>
+                    <name>av_readdata</name>
+                    <role>readdata</role>
+                    <direction>Output</direction>
+                    <width>32</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                </port>
+                <port>
+                    <name>av_read</name>
+                    <role>read</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+                <port>
+                    <name>av_writedata</name>
+                    <role>writedata</role>
+                    <direction>Input</direction>
+                    <width>32</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                </port>
+                <port>
+                    <name>av_write</name>
+                    <role>write</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap>
+                    <entry>
+                        <key>embeddedsw.configuration.isMemoryDevice</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>embeddedsw.configuration.isNonVolatileStorage</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>embeddedsw.configuration.isPrintableDevice</key>
+                        <value>false</value>
+                    </entry>
+                </assignmentValueMap>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>addressAlignment</key>
+                        <value>DYNAMIC</value>
+                    </entry>
+                    <entry>
+                        <key>addressGroup</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>addressSpan</key>
+                        <value>256</value>
+                    </entry>
+                    <entry>
+                        <key>addressUnits</key>
+                        <value>SYMBOLS</value>
+                    </entry>
+                    <entry>
+                        <key>alwaysBurstMaxBurst</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>associatedClock</key>
+                        <value>clk</value>
+                    </entry>
+                    <entry>
+                        <key>associatedReset</key>
+                        <value>csr_reset</value>
+                    </entry>
+                    <entry>
+                        <key>bitsPerSymbol</key>
+                        <value>8</value>
+                    </entry>
+                    <entry>
+                        <key>bridgedAddressOffset</key>
+                    </entry>
+                    <entry>
+                        <key>bridgesToMaster</key>
+                    </entry>
+                    <entry>
+                        <key>burstOnBurstBoundariesOnly</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>burstcountUnits</key>
+                        <value>SYMBOLS</value>
+                    </entry>
+                    <entry>
+                        <key>constantBurstBehavior</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>explicitAddressSpan</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>holdTime</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>interleaveBursts</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>isBigEndian</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>isFlash</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>isMemoryDevice</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>isNonVolatileStorage</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>linewrapBursts</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>maximumPendingReadTransactions</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>maximumPendingWriteTransactions</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>minimumReadLatency</key>
+                        <value>1</value>
+                    </entry>
+                    <entry>
+                        <key>minimumResponseLatency</key>
+                        <value>1</value>
+                    </entry>
+                    <entry>
+                        <key>minimumUninterruptedRunLength</key>
+                        <value>1</value>
+                    </entry>
+                    <entry>
+                        <key>prSafe</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>printableDevice</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>readLatency</key>
+                        <value>2</value>
+                    </entry>
+                    <entry>
+                        <key>readWaitStates</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>readWaitTime</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>registerIncomingSignals</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>registerOutgoingSignals</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>setupTime</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>timingUnits</key>
+                        <value>Cycles</value>
+                    </entry>
+                    <entry>
+                        <key>transparentBridge</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>waitrequestAllowance</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>wellBehavedWaitrequest</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>writeLatency</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>writeWaitStates</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>writeWaitTime</key>
+                        <value>0</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>av_csr_irq</name>
+            <type>interrupt</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>irq</name>
+                    <role>irq</role>
+                    <direction>Output</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedAddressablePoint</key>
+                        <value>reset_seq.av_csr</value>
+                    </entry>
+                    <entry>
+                        <key>associatedClock</key>
+                        <value>clk</value>
+                    </entry>
+                    <entry>
+                        <key>associatedReset</key>
+                        <value>csr_reset</value>
+                    </entry>
+                    <entry>
+                        <key>bridgedReceiverOffset</key>
+                    </entry>
+                    <entry>
+                        <key>bridgesToReceiver</key>
+                    </entry>
+                    <entry>
+                        <key>irqScheme</key>
+                        <value>NONE</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+    </interfaces>
+</boundaryDefinition>]]></parameter>
+  <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
+    <hdlLibraryName>ip_arria10_e2sg_jesd204b_rx_reset_seq</hdlLibraryName>
+    <fileSets>
+        <fileSet>
+            <fileSetName>ip_arria10_e2sg_jesd204b_rx_reset_seq</fileSetName>
+            <fileSetFixedName>ip_arria10_e2sg_jesd204b_rx_reset_seq</fileSetFixedName>
+            <fileSetKind>QUARTUS_SYNTH</fileSetKind>
+            <fileSetFiles/>
+        </fileSet>
+        <fileSet>
+            <fileSetName>ip_arria10_e2sg_jesd204b_rx_reset_seq</fileSetName>
+            <fileSetFixedName>ip_arria10_e2sg_jesd204b_rx_reset_seq</fileSetFixedName>
+            <fileSetKind>SIM_VERILOG</fileSetKind>
+            <fileSetFiles/>
+        </fileSet>
+        <fileSet>
+            <fileSetName>ip_arria10_e2sg_jesd204b_rx_reset_seq</fileSetName>
+            <fileSetFixedName>ip_arria10_e2sg_jesd204b_rx_reset_seq</fileSetFixedName>
+            <fileSetKind>SIM_VHDL</fileSetKind>
+            <fileSetFiles/>
+        </fileSet>
+    </fileSets>
+</generationInfoDefinition>]]></parameter>
+  <parameter name="hlsFile" value="" />
+  <parameter name="logicalView">/home/hargreaves/git/hdl/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx_reset_seq.ip</parameter>
+  <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
+    <assignmentValueMap/>
+</assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12.ip b/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12.ip
new file mode 100644
index 0000000000000000000000000000000000000000..918b5bc3bfef526bc0bbb86c83c9c3d2b9e0c7eb
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12.ip
@@ -0,0 +1,912 @@
+<?xml version="1.0" ?>
+<spirit:component xmlns:altera="http://www.altera.com/XMLSchema/IPXact/extensions" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009">
+  <spirit:vendor>Intel Corporation</spirit:vendor>
+  <spirit:library>ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12</spirit:library>
+  <spirit:name>xcvr_reset_control_0</spirit:name>
+  <spirit:version>18.0</spirit:version>
+  <spirit:busInterfaces>
+    <spirit:busInterface>
+      <spirit:name>clock</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="clock" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>clk</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>clock</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>clockRate</spirit:name>
+          <spirit:displayName>Clock rate</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="clockRate">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>externallyDriven</spirit:name>
+          <spirit:displayName>Externally driven</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="externallyDriven">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>ptfSchematicName</spirit:name>
+          <spirit:displayName>PTF schematic name</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="ptfSchematicName"></spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>reset</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="reset" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>reset</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>reset</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>Associated clock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>synchronousEdges</spirit:name>
+          <spirit:displayName>Synchronous edges</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="synchronousEdges">NONE</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>rx_analogreset</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>rx_analogreset</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>rx_analogreset</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">output</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>rx_cal_busy</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>rx_cal_busy</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>rx_cal_busy</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">input</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>rx_digitalreset</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>rx_digitalreset</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>rx_digitalreset</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">output</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>rx_is_lockedtodata</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>rx_is_lockedtodata</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>rx_is_lockedtodata</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">input</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+    <spirit:busInterface>
+      <spirit:name>rx_ready</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="conduit" spirit:version="18.0"></spirit:busType>
+      <spirit:slave></spirit:slave>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>rx_ready</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>rx_ready</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedClock</spirit:name>
+          <spirit:displayName>associatedClock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>associatedReset</spirit:name>
+          <spirit:displayName>associatedReset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedReset"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prSafe</spirit:name>
+          <spirit:displayName>Partial Reconfiguration Safe</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="prSafe">false</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+      <spirit:vendorExtensions>
+        <altera:altera_assignments>
+          <spirit:parameters>
+            <spirit:parameter>
+              <spirit:name>ui.blockdiagram.direction</spirit:name>
+              <spirit:value spirit:format="string" spirit:id="ui.blockdiagram.direction">output</spirit:value>
+            </spirit:parameter>
+          </spirit:parameters>
+        </altera:altera_assignments>
+      </spirit:vendorExtensions>
+    </spirit:busInterface>
+  </spirit:busInterfaces>
+  <spirit:model>
+    <spirit:views>
+      <spirit:view>
+        <spirit:name>QUARTUS_SYNTH</spirit:name>
+        <spirit:envIdentifier>:quartus.altera.com:</spirit:envIdentifier>
+        <spirit:modelName>altera_xcvr_reset_control</spirit:modelName>
+        <spirit:fileSetRef>
+          <spirit:localName>QUARTUS_SYNTH</spirit:localName>
+        </spirit:fileSetRef>
+      </spirit:view>
+    </spirit:views>
+    <spirit:ports>
+      <spirit:port>
+        <spirit:name>clock</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>reset</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>rx_analogreset</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>11</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>rx_digitalreset</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>11</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>rx_ready</spirit:name>
+        <spirit:wire>
+          <spirit:direction>out</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>11</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>rx_is_lockedtodata</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>11</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+      <spirit:port>
+        <spirit:name>rx_cal_busy</spirit:name>
+        <spirit:wire>
+          <spirit:direction>in</spirit:direction>
+          <spirit:vector>
+            <spirit:left>0</spirit:left>
+            <spirit:right>11</spirit:right>
+          </spirit:vector>
+          <spirit:wireTypeDefs>
+            <spirit:wireTypeDef>
+              <spirit:typeName>STD_LOGIC_VECTOR</spirit:typeName>
+              <spirit:viewNameRef>QUARTUS_SYNTH</spirit:viewNameRef>
+            </spirit:wireTypeDef>
+          </spirit:wireTypeDefs>
+        </spirit:wire>
+      </spirit:port>
+    </spirit:ports>
+  </spirit:model>
+  <spirit:vendorExtensions>
+    <altera:entity_info>
+      <spirit:vendor>Intel Corporation</spirit:vendor>
+      <spirit:library>ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12</spirit:library>
+      <spirit:name>altera_xcvr_reset_control</spirit:name>
+      <spirit:version>18.0</spirit:version>
+    </altera:entity_info>
+    <altera:altera_module_parameters>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>device_family</spirit:name>
+          <spirit:displayName>device_family</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="device_family">Arria 10</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>CHANNELS</spirit:name>
+          <spirit:displayName>Number of transceiver channels</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="CHANNELS">12</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>PLLS</spirit:name>
+          <spirit:displayName>Number of TX PLLs</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="PLLS">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>SYS_CLK_IN_MHZ</spirit:name>
+          <spirit:displayName>Input clock frequency</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="SYS_CLK_IN_MHZ">100</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>SYNCHRONIZE_RESET</spirit:name>
+          <spirit:displayName>Synchronize reset input</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="SYNCHRONIZE_RESET">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>REDUCED_SIM_TIME</spirit:name>
+          <spirit:displayName>Use fast reset for simulation</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="REDUCED_SIM_TIME">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_split_interfaces</spirit:name>
+          <spirit:displayName>Separate interface per channel/PLL</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_split_interfaces">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>TX_PLL_ENABLE</spirit:name>
+          <spirit:displayName>Enable TX PLL reset control</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="TX_PLL_ENABLE">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>T_PLL_POWERDOWN</spirit:name>
+          <spirit:displayName>pll_powerdown duration</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="T_PLL_POWERDOWN">1000</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>SYNCHRONIZE_PLL_RESET</spirit:name>
+          <spirit:displayName>Synchronize reset input for PLL powerdown</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="SYNCHRONIZE_PLL_RESET">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>TX_ENABLE</spirit:name>
+          <spirit:displayName>Enable TX channel reset control</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="TX_ENABLE">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>TX_PER_CHANNEL</spirit:name>
+          <spirit:displayName>Use separate TX reset per channel</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="TX_PER_CHANNEL">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_tx_auto_reset</spirit:name>
+          <spirit:displayName>TX digital reset mode</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_tx_auto_reset">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>T_TX_ANALOGRESET</spirit:name>
+          <spirit:displayName>tx_analogreset duration</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="T_TX_ANALOGRESET">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>T_TX_DIGITALRESET</spirit:name>
+          <spirit:displayName>tx_digitalreset duration</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="T_TX_DIGITALRESET">20</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>T_PLL_LOCK_HYST</spirit:name>
+          <spirit:displayName>pll_locked input hysteresis</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="T_PLL_LOCK_HYST">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_pll_cal_busy</spirit:name>
+          <spirit:displayName>Enable pll_cal_busy input port</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_pll_cal_busy">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>EN_PLL_CAL_BUSY</spirit:name>
+          <spirit:displayName>EN_PLL_CAL_BUSY</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="EN_PLL_CAL_BUSY">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>RX_ENABLE</spirit:name>
+          <spirit:displayName>Enable RX channel reset control</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="RX_ENABLE">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>RX_PER_CHANNEL</spirit:name>
+          <spirit:displayName>Use separate RX reset per channel</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="RX_PER_CHANNEL">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_rx_auto_reset</spirit:name>
+          <spirit:displayName>RX digital reset mode</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_rx_auto_reset">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>T_RX_ANALOGRESET</spirit:name>
+          <spirit:displayName>rx_analogreset duration</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="T_RX_ANALOGRESET">70000</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>T_RX_DIGITALRESET</spirit:name>
+          <spirit:displayName>rx_digitalreset duration</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="T_RX_DIGITALRESET">4000</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>l_terminate_pll</spirit:name>
+          <spirit:displayName>l_terminate_pll</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="l_terminate_pll">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>l_terminate_tx</spirit:name>
+          <spirit:displayName>l_terminate_tx</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="l_terminate_tx">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>l_terminate_rx</spirit:name>
+          <spirit:displayName>l_terminate_rx</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="l_terminate_rx">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>l_terminate_tx_manual</spirit:name>
+          <spirit:displayName>l_terminate_tx_manual</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="l_terminate_tx_manual">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>l_terminate_rx_manual</spirit:name>
+          <spirit:displayName>l_terminate_rx_manual</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="l_terminate_rx_manual">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>l_tx_manual_term</spirit:name>
+          <spirit:displayName>l_tx_manual_term</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="l_tx_manual_term">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>l_rx_manual_term</spirit:name>
+          <spirit:displayName>l_rx_manual_term</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="l_rx_manual_term">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>l_pll_select_split</spirit:name>
+          <spirit:displayName>l_pll_select_split</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="l_pll_select_split">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>l_pll_select_width</spirit:name>
+          <spirit:displayName>l_pll_select_width</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="l_pll_select_width">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>l_pll_select_base</spirit:name>
+          <spirit:displayName>l_pll_select_base</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="l_pll_select_base">1</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </altera:altera_module_parameters>
+    <altera:altera_system_parameters>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>device</spirit:name>
+          <spirit:displayName>Device</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="device">10AX115U3F45E2SG</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>deviceFamily</spirit:name>
+          <spirit:displayName>Device family</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="deviceFamily">Arria 10</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>deviceSpeedGrade</spirit:name>
+          <spirit:displayName>Device Speed Grade</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="deviceSpeedGrade">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>generationId</spirit:name>
+          <spirit:displayName>Generation Id</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="generationId">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>bonusData</spirit:name>
+          <spirit:displayName>bonusData</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="bonusData">bonusData 
+{
+   element xcvr_reset_control_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hideFromIPCatalog</spirit:name>
+          <spirit:displayName>Hide from IP Catalog</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="hideFromIPCatalog">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>lockedInterfaceDefinition</spirit:name>
+          <spirit:displayName>lockedInterfaceDefinition</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="lockedInterfaceDefinition"><![CDATA[<boundaryDefinition>
+    <interfaces>
+        <interface>
+            <name>clock</name>
+            <type>clock</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>clock</name>
+                    <role>clk</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>clockRate</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>externallyDriven</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>ptfSchematicName</key>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset</name>
+            <type>reset</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>reset</name>
+                    <role>reset</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>NONE</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>rx_analogreset</name>
+            <type>conduit</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>rx_analogreset</name>
+                    <role>rx_analogreset</role>
+                    <direction>Output</direction>
+                    <width>12</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap>
+                    <entry>
+                        <key>ui.blockdiagram.direction</key>
+                        <value>output</value>
+                    </entry>
+                </assignmentValueMap>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>associatedReset</key>
+                    </entry>
+                    <entry>
+                        <key>prSafe</key>
+                        <value>false</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>rx_cal_busy</name>
+            <type>conduit</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>rx_cal_busy</name>
+                    <role>rx_cal_busy</role>
+                    <direction>Input</direction>
+                    <width>12</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap>
+                    <entry>
+                        <key>ui.blockdiagram.direction</key>
+                        <value>input</value>
+                    </entry>
+                </assignmentValueMap>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>associatedReset</key>
+                    </entry>
+                    <entry>
+                        <key>prSafe</key>
+                        <value>false</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>rx_digitalreset</name>
+            <type>conduit</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>rx_digitalreset</name>
+                    <role>rx_digitalreset</role>
+                    <direction>Output</direction>
+                    <width>12</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap>
+                    <entry>
+                        <key>ui.blockdiagram.direction</key>
+                        <value>output</value>
+                    </entry>
+                </assignmentValueMap>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>associatedReset</key>
+                    </entry>
+                    <entry>
+                        <key>prSafe</key>
+                        <value>false</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>rx_is_lockedtodata</name>
+            <type>conduit</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>rx_is_lockedtodata</name>
+                    <role>rx_is_lockedtodata</role>
+                    <direction>Input</direction>
+                    <width>12</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap>
+                    <entry>
+                        <key>ui.blockdiagram.direction</key>
+                        <value>input</value>
+                    </entry>
+                </assignmentValueMap>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>associatedReset</key>
+                    </entry>
+                    <entry>
+                        <key>prSafe</key>
+                        <value>false</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>rx_ready</name>
+            <type>conduit</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>rx_ready</name>
+                    <role>rx_ready</role>
+                    <direction>Output</direction>
+                    <width>12</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap>
+                    <entry>
+                        <key>ui.blockdiagram.direction</key>
+                        <value>output</value>
+                    </entry>
+                </assignmentValueMap>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>associatedReset</key>
+                    </entry>
+                    <entry>
+                        <key>prSafe</key>
+                        <value>false</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+    </interfaces>
+</boundaryDefinition>]]></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>systemInfos</spirit:name>
+          <spirit:displayName>systemInfos</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </altera:altera_system_parameters>
+    <altera:altera_interface_boundary>
+      <altera:interface_mapping altera:name="clock" altera:internal="xcvr_reset_control_0.clock" altera:type="clock" altera:dir="end">
+        <altera:port_mapping altera:name="clock" altera:internal="clock"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="pll_locked" altera:internal="xcvr_reset_control_0.pll_locked"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="pll_powerdown" altera:internal="xcvr_reset_control_0.pll_powerdown"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="pll_select" altera:internal="xcvr_reset_control_0.pll_select"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="reset" altera:internal="xcvr_reset_control_0.reset" altera:type="reset" altera:dir="end">
+        <altera:port_mapping altera:name="reset" altera:internal="reset"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_analogreset" altera:internal="xcvr_reset_control_0.rx_analogreset" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="rx_analogreset" altera:internal="rx_analogreset"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_cal_busy" altera:internal="xcvr_reset_control_0.rx_cal_busy" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="rx_cal_busy" altera:internal="rx_cal_busy"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_digitalreset" altera:internal="xcvr_reset_control_0.rx_digitalreset" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="rx_digitalreset" altera:internal="rx_digitalreset"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_is_lockedtodata" altera:internal="xcvr_reset_control_0.rx_is_lockedtodata" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="rx_is_lockedtodata" altera:internal="rx_is_lockedtodata"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="rx_ready" altera:internal="xcvr_reset_control_0.rx_ready" altera:type="conduit" altera:dir="end">
+        <altera:port_mapping altera:name="rx_ready" altera:internal="rx_ready"></altera:port_mapping>
+      </altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_analogreset" altera:internal="xcvr_reset_control_0.tx_analogreset"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_cal_busy" altera:internal="xcvr_reset_control_0.tx_cal_busy"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_digitalreset" altera:internal="xcvr_reset_control_0.tx_digitalreset"></altera:interface_mapping>
+      <altera:interface_mapping altera:name="tx_ready" altera:internal="xcvr_reset_control_0.tx_ready"></altera:interface_mapping>
+    </altera:altera_interface_boundary>
+    <altera:altera_has_warnings>false</altera:altera_has_warnings>
+    <altera:altera_has_errors>false</altera:altera_has_errors>
+  </spirit:vendorExtensions>
+</spirit:component>
\ No newline at end of file
diff --git a/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12.qsys b/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..82f1f86bd8b82518a6439ce5e9b84caacd45ede4
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12.qsys
@@ -0,0 +1,639 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags=""
+   categories="System"
+   tool="QsysPro" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element xcvr_reset_control_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="false" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="clock"
+   internal="xcvr_reset_control_0.clock"
+   type="clock"
+   dir="end" />
+ <interface name="pll_powerdown" internal="xcvr_reset_control_0.pll_powerdown" />
+ <interface
+   name="reset"
+   internal="xcvr_reset_control_0.reset"
+   type="reset"
+   dir="end" />
+ <interface
+   name="rx_analogreset"
+   internal="xcvr_reset_control_0.rx_analogreset"
+   type="conduit"
+   dir="end" />
+ <interface
+   name="rx_cal_busy"
+   internal="xcvr_reset_control_0.rx_cal_busy"
+   type="conduit"
+   dir="end" />
+ <interface
+   name="rx_digitalreset"
+   internal="xcvr_reset_control_0.rx_digitalreset"
+   type="conduit"
+   dir="end" />
+ <interface
+   name="rx_is_lockedtodata"
+   internal="xcvr_reset_control_0.rx_is_lockedtodata"
+   type="conduit"
+   dir="end" />
+ <interface
+   name="rx_ready"
+   internal="xcvr_reset_control_0.rx_ready"
+   type="conduit"
+   dir="end" />
+ <module
+   name="xcvr_reset_control_0"
+   kind="altera_generic_component"
+   version="1.0"
+   enabled="1">
+  <parameter name="componentDefinition"><![CDATA[<componentDefinition>
+    <boundary>
+        <interfaces>
+            <interface>
+                <name>clock</name>
+                <type>clock</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>clock</name>
+                        <role>clk</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>clockRate</key>
+                            <value>0</value>
+                        </entry>
+                        <entry>
+                            <key>externallyDriven</key>
+                            <value>false</value>
+                        </entry>
+                        <entry>
+                            <key>ptfSchematicName</key>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>reset</name>
+                <type>reset</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>reset</name>
+                        <role>reset</role>
+                        <direction>Input</direction>
+                        <width>1</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap/>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>synchronousEdges</key>
+                            <value>NONE</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>rx_analogreset</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>rx_analogreset</name>
+                        <role>rx_analogreset</role>
+                        <direction>Output</direction>
+                        <width>12</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>rx_cal_busy</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>rx_cal_busy</name>
+                        <role>rx_cal_busy</role>
+                        <direction>Input</direction>
+                        <width>12</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>input</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>rx_digitalreset</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>rx_digitalreset</name>
+                        <role>rx_digitalreset</role>
+                        <direction>Output</direction>
+                        <width>12</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>rx_is_lockedtodata</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>rx_is_lockedtodata</name>
+                        <role>rx_is_lockedtodata</role>
+                        <direction>Input</direction>
+                        <width>12</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>input</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+            <interface>
+                <name>rx_ready</name>
+                <type>conduit</type>
+                <isStart>false</isStart>
+                <ports>
+                    <port>
+                        <name>rx_ready</name>
+                        <role>rx_ready</role>
+                        <direction>Output</direction>
+                        <width>12</width>
+                        <lowerBound>0</lowerBound>
+                        <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                    </port>
+                </ports>
+                <assignments>
+                    <assignmentValueMap>
+                        <entry>
+                            <key>ui.blockdiagram.direction</key>
+                            <value>output</value>
+                        </entry>
+                    </assignmentValueMap>
+                </assignments>
+                <parameters>
+                    <parameterValueMap>
+                        <entry>
+                            <key>associatedClock</key>
+                        </entry>
+                        <entry>
+                            <key>associatedReset</key>
+                        </entry>
+                        <entry>
+                            <key>prSafe</key>
+                            <value>false</value>
+                        </entry>
+                    </parameterValueMap>
+                </parameters>
+            </interface>
+        </interfaces>
+    </boundary>
+    <originalModuleInfo>
+        <className>altera_xcvr_reset_control</className>
+        <version>19.1</version>
+        <displayName>Transceiver PHY Reset Controller Intel FPGA IP</displayName>
+    </originalModuleInfo>
+    <systemInfoParameterDescriptors>
+        <descriptors>
+            <descriptor>
+                <parameterDefaultValue>Stratix V</parameterDefaultValue>
+                <parameterName>device_family</parameterName>
+                <parameterType>java.lang.String</parameterType>
+                <systemInfotype>DEVICE_FAMILY</systemInfotype>
+            </descriptor>
+        </descriptors>
+    </systemInfoParameterDescriptors>
+    <systemInfos>
+        <connPtSystemInfos/>
+    </systemInfos>
+</componentDefinition>]]></parameter>
+  <parameter name="defaultBoundary"><![CDATA[<boundaryDefinition>
+    <interfaces>
+        <interface>
+            <name>clock</name>
+            <type>clock</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>clock</name>
+                    <role>clk</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>clockRate</key>
+                        <value>0</value>
+                    </entry>
+                    <entry>
+                        <key>externallyDriven</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>ptfSchematicName</key>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>reset</name>
+            <type>reset</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>reset</name>
+                    <role>reset</role>
+                    <direction>Input</direction>
+                    <width>1</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap/>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>synchronousEdges</key>
+                        <value>NONE</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>rx_analogreset</name>
+            <type>conduit</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>rx_analogreset</name>
+                    <role>rx_analogreset</role>
+                    <direction>Output</direction>
+                    <width>12</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap>
+                    <entry>
+                        <key>ui.blockdiagram.direction</key>
+                        <value>output</value>
+                    </entry>
+                </assignmentValueMap>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>associatedReset</key>
+                    </entry>
+                    <entry>
+                        <key>prSafe</key>
+                        <value>false</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>rx_digitalreset</name>
+            <type>conduit</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>rx_digitalreset</name>
+                    <role>rx_digitalreset</role>
+                    <direction>Output</direction>
+                    <width>12</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap>
+                    <entry>
+                        <key>ui.blockdiagram.direction</key>
+                        <value>output</value>
+                    </entry>
+                </assignmentValueMap>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>associatedReset</key>
+                    </entry>
+                    <entry>
+                        <key>prSafe</key>
+                        <value>false</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>rx_ready</name>
+            <type>conduit</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>rx_ready</name>
+                    <role>rx_ready</role>
+                    <direction>Output</direction>
+                    <width>12</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap>
+                    <entry>
+                        <key>ui.blockdiagram.direction</key>
+                        <value>output</value>
+                    </entry>
+                </assignmentValueMap>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>associatedReset</key>
+                    </entry>
+                    <entry>
+                        <key>prSafe</key>
+                        <value>false</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>rx_is_lockedtodata</name>
+            <type>conduit</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>rx_is_lockedtodata</name>
+                    <role>rx_is_lockedtodata</role>
+                    <direction>Input</direction>
+                    <width>12</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap>
+                    <entry>
+                        <key>ui.blockdiagram.direction</key>
+                        <value>input</value>
+                    </entry>
+                </assignmentValueMap>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>associatedReset</key>
+                    </entry>
+                    <entry>
+                        <key>prSafe</key>
+                        <value>false</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+        <interface>
+            <name>rx_cal_busy</name>
+            <type>conduit</type>
+            <isStart>false</isStart>
+            <ports>
+                <port>
+                    <name>rx_cal_busy</name>
+                    <role>rx_cal_busy</role>
+                    <direction>Input</direction>
+                    <width>12</width>
+                    <lowerBound>0</lowerBound>
+                    <vhdlType>STD_LOGIC_VECTOR</vhdlType>
+                </port>
+            </ports>
+            <assignments>
+                <assignmentValueMap>
+                    <entry>
+                        <key>ui.blockdiagram.direction</key>
+                        <value>input</value>
+                    </entry>
+                </assignmentValueMap>
+            </assignments>
+            <parameters>
+                <parameterValueMap>
+                    <entry>
+                        <key>associatedClock</key>
+                    </entry>
+                    <entry>
+                        <key>associatedReset</key>
+                    </entry>
+                    <entry>
+                        <key>prSafe</key>
+                        <value>false</value>
+                    </entry>
+                </parameterValueMap>
+            </parameters>
+        </interface>
+    </interfaces>
+</boundaryDefinition>]]></parameter>
+  <parameter name="generationInfoDefinition"><![CDATA[<generationInfoDefinition>
+    <hdlLibraryName>ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12</hdlLibraryName>
+    <fileSets>
+        <fileSet>
+            <fileSetName>ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12</fileSetName>
+            <fileSetFixedName>ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12</fileSetFixedName>
+            <fileSetKind>QUARTUS_SYNTH</fileSetKind>
+            <fileSetFiles/>
+        </fileSet>
+        <fileSet>
+            <fileSetName>ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12</fileSetName>
+            <fileSetFixedName>ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12</fileSetFixedName>
+            <fileSetKind>SIM_VERILOG</fileSetKind>
+            <fileSetFiles/>
+        </fileSet>
+        <fileSet>
+            <fileSetName>ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12</fileSetName>
+            <fileSetFixedName>ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12</fileSetFixedName>
+            <fileSetKind>SIM_VHDL</fileSetKind>
+            <fileSetFiles/>
+        </fileSet>
+    </fileSets>
+</generationInfoDefinition>]]></parameter>
+  <parameter name="hlsFile" value="" />
+  <parameter name="logicalView">/home/hargreaves/git/hdl/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12.ip</parameter>
+  <parameter name="moduleAssignmentDefinition"><![CDATA[<assignmentDefinition>
+    <assignmentValueMap/>
+</assignmentDefinition>]]></parameter>
+  <parameter name="svInterfaceDefinition" value="" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/mac_10g/README.txt b/libraries/technology/ip_arria10_e2sg/mac_10g/README.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c775402d02b409cbc5f046ee91549577ddf8c52a
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/mac_10g/README.txt
@@ -0,0 +1,55 @@
+README.txt for $RADIOHDL_WORK/libraries/technology/ip_arria10/mac_10g
+
+1) Porting
+2) IP component
+3) Compilation, simulation and verification
+4) Synthesis
+5) Remarks
+
+
+1) Porting
+
+The mac_10g IP was ported manually from Quartus v11.1 for Stratix IV  to Quartus 14.0a10 for Arria10 by creating it in Qsys using
+the same parameter settings.
+
+
+2) IP component
+
+The generated IP is not kept in SVN, only the Qsys source file:
+
+  ip_arria10_mac_10g.qsys
+
+Therefore first the IP needs to be generated using:
+
+  ./generate_ip.sh
+  
+
+3) Compilation, simulation and verification
+
+The genrated IP also contains a msim_setup.tcl file that was used to manually create:
+
+  compile_ip.tcl
+  
+This compile_ip.tcl is in the hdllib.cfg and gets compiled before the other code.
+
+
+4) Synthesis
+
+No synthesis trials were done, because this will implicitely be done when the IP is used in a design. The QIP file:
+
+  ip_arria10_mac_10g.qip
+
+is included in the hdllib.cfg and contains what is needed to synthesize the IP.
+
+
+5) Remarks
+
+a) Use generated IP specific library clause name
+
+  The generated ip_arria10_<lib_name>.vhd uses an IP specific library name. Therefore the hdllib.cfg uses the IP
+  specific library as library claus name to make it known:
+  
+    hdl_lib_name = ip_arria10_<lib_name>
+    hdl_library_clause_name = ip_arria10_<lib_name>_<ip_specific>
+    
+ 
\ No newline at end of file
diff --git a/libraries/technology/ip_arria10_e2sg/mac_10g/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/mac_10g/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..f7f37290b061064ae6303e4ce53f382935df23d6
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/mac_10g/compile_ip.tcl
@@ -0,0 +1,35 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_mac_10g/sim"
+
+     
+  vcom     "$IP_DIR/ip_arria10_e2sg_mac_10g.vhd"                                                                                        
diff --git a/libraries/technology/ip_arria10_e2sg/mac_10g/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/mac_10g/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..3b8a784dce20fe212396acf98edd0d99f656c522
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/mac_10g/hdllib.cfg
@@ -0,0 +1,27 @@
+hdl_lib_name = ip_arria10_e2sg_mac_10g
+hdl_library_clause_name = ip_arria10_e2sg_mac_10g_alt_em10g32_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_alt_em10g32_194
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+    # The generated testbench is listed here to create a simulation configuration for it. However
+    # the tb is commented because it is not useful, see generate_ip.sh.
+    #$RADIOHDL_BUILD_DIR/sim/ip_arria10_e2sg_mac_10g_tb.vhd
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/mac_10g/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_mac_10g/ip_arria10_e2sg_mac_10g.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_mac_10g.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/mac_10g/ip_arria10_e2sg_mac_10g.qsys b/libraries/technology/ip_arria10_e2sg/mac_10g/ip_arria10_e2sg_mac_10g.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..d6d1f04d8531b2f5b81e9d2bebe1610ffbdf4073
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/mac_10g/ip_arria10_e2sg_mac_10g.qsys
@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_mac_10g">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element alt_em10g32_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos>
+        <entry>
+            <key>csr</key>
+            <value>
+                <connectionPointName>csr</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>ADDRESS_MAP</key>
+                        <value>&lt;address-map&gt;&lt;slave name='csr' start='0x0' end='0x8000' datawidth='32' /&gt;&lt;/address-map&gt;</value>
+                    </entry>
+                    <entry>
+                        <key>ADDRESS_WIDTH</key>
+                        <value>15</value>
+                    </entry>
+                    <entry>
+                        <key>MAX_SLAVE_DATA_WIDTH</key>
+                        <value>32</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+    </connPtSystemInfos>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="avalon_st_pause"
+   internal="alt_em10g32_0.avalon_st_pause"
+   type="avalon_streaming"
+   dir="end">
+  <port name="avalon_st_pause_data" internal="avalon_st_pause_data" />
+ </interface>
+ <interface
+   name="avalon_st_rx"
+   internal="alt_em10g32_0.avalon_st_rx"
+   type="avalon_streaming"
+   dir="start">
+  <port name="avalon_st_rx_data" internal="avalon_st_rx_data" />
+  <port name="avalon_st_rx_empty" internal="avalon_st_rx_empty" />
+  <port name="avalon_st_rx_endofpacket" internal="avalon_st_rx_endofpacket" />
+  <port name="avalon_st_rx_error" internal="avalon_st_rx_error" />
+  <port name="avalon_st_rx_ready" internal="avalon_st_rx_ready" />
+  <port
+     name="avalon_st_rx_startofpacket"
+     internal="avalon_st_rx_startofpacket" />
+  <port name="avalon_st_rx_valid" internal="avalon_st_rx_valid" />
+ </interface>
+ <interface
+   name="avalon_st_rxstatus"
+   internal="alt_em10g32_0.avalon_st_rxstatus"
+   type="avalon_streaming"
+   dir="start">
+  <port name="avalon_st_rxstatus_data" internal="avalon_st_rxstatus_data" />
+  <port name="avalon_st_rxstatus_error" internal="avalon_st_rxstatus_error" />
+  <port name="avalon_st_rxstatus_valid" internal="avalon_st_rxstatus_valid" />
+ </interface>
+ <interface
+   name="avalon_st_tx"
+   internal="alt_em10g32_0.avalon_st_tx"
+   type="avalon_streaming"
+   dir="end">
+  <port name="avalon_st_tx_data" internal="avalon_st_tx_data" />
+  <port name="avalon_st_tx_empty" internal="avalon_st_tx_empty" />
+  <port name="avalon_st_tx_endofpacket" internal="avalon_st_tx_endofpacket" />
+  <port name="avalon_st_tx_error" internal="avalon_st_tx_error" />
+  <port name="avalon_st_tx_ready" internal="avalon_st_tx_ready" />
+  <port
+     name="avalon_st_tx_startofpacket"
+     internal="avalon_st_tx_startofpacket" />
+  <port name="avalon_st_tx_valid" internal="avalon_st_tx_valid" />
+ </interface>
+ <interface
+   name="avalon_st_txstatus"
+   internal="alt_em10g32_0.avalon_st_txstatus"
+   type="avalon_streaming"
+   dir="start">
+  <port name="avalon_st_txstatus_data" internal="avalon_st_txstatus_data" />
+  <port name="avalon_st_txstatus_error" internal="avalon_st_txstatus_error" />
+  <port name="avalon_st_txstatus_valid" internal="avalon_st_txstatus_valid" />
+ </interface>
+ <interface name="csr" internal="alt_em10g32_0.csr" type="avalon" dir="end">
+  <port name="csr_address" internal="csr_address" />
+  <port name="csr_read" internal="csr_read" />
+  <port name="csr_readdata" internal="csr_readdata" />
+  <port name="csr_waitrequest" internal="csr_waitrequest" />
+  <port name="csr_write" internal="csr_write" />
+  <port name="csr_writedata" internal="csr_writedata" />
+ </interface>
+ <interface
+   name="csr_clk"
+   internal="alt_em10g32_0.csr_clk"
+   type="clock"
+   dir="end">
+  <port name="csr_clk" internal="csr_clk" />
+ </interface>
+ <interface
+   name="csr_rst_n"
+   internal="alt_em10g32_0.csr_rst_n"
+   type="reset"
+   dir="end">
+  <port name="csr_rst_n" internal="csr_rst_n" />
+ </interface>
+ <interface
+   name="link_fault_status_xgmii_rx"
+   internal="alt_em10g32_0.link_fault_status_xgmii_rx"
+   type="avalon_streaming"
+   dir="start">
+  <port
+     name="link_fault_status_xgmii_rx_data"
+     internal="link_fault_status_xgmii_rx_data" />
+ </interface>
+ <interface
+   name="rx_156_25_clk"
+   internal="alt_em10g32_0.rx_156_25_clk"
+   type="clock"
+   dir="end">
+  <port name="rx_156_25_clk" internal="rx_156_25_clk" />
+ </interface>
+ <interface
+   name="rx_312_5_clk"
+   internal="alt_em10g32_0.rx_312_5_clk"
+   type="clock"
+   dir="end">
+  <port name="rx_312_5_clk" internal="rx_312_5_clk" />
+ </interface>
+ <interface
+   name="rx_rst_n"
+   internal="alt_em10g32_0.rx_rst_n"
+   type="reset"
+   dir="end">
+  <port name="rx_rst_n" internal="rx_rst_n" />
+ </interface>
+ <interface
+   name="tx_156_25_clk"
+   internal="alt_em10g32_0.tx_156_25_clk"
+   type="clock"
+   dir="end">
+  <port name="tx_156_25_clk" internal="tx_156_25_clk" />
+ </interface>
+ <interface
+   name="tx_312_5_clk"
+   internal="alt_em10g32_0.tx_312_5_clk"
+   type="clock"
+   dir="end">
+  <port name="tx_312_5_clk" internal="tx_312_5_clk" />
+ </interface>
+ <interface
+   name="tx_rst_n"
+   internal="alt_em10g32_0.tx_rst_n"
+   type="reset"
+   dir="end">
+  <port name="tx_rst_n" internal="tx_rst_n" />
+ </interface>
+ <interface
+   name="unidirectional"
+   internal="alt_em10g32_0.unidirectional"
+   type="conduit"
+   dir="end">
+  <port name="unidirectional_en" internal="unidirectional_en" />
+  <port
+     name="unidirectional_force_remote_fault"
+     internal="unidirectional_force_remote_fault" />
+  <port
+     name="unidirectional_remote_fault_dis"
+     internal="unidirectional_remote_fault_dis" />
+ </interface>
+ <interface
+   name="xgmii_rx"
+   internal="alt_em10g32_0.xgmii_rx"
+   type="avalon_streaming"
+   dir="end">
+  <port name="xgmii_rx" internal="xgmii_rx" />
+ </interface>
+ <interface name="xgmii_rx_control" internal="alt_em10g32_0.xgmii_rx_control" />
+ <interface name="xgmii_rx_data" internal="alt_em10g32_0.xgmii_rx_data" />
+ <interface
+   name="xgmii_tx"
+   internal="alt_em10g32_0.xgmii_tx"
+   type="avalon_streaming"
+   dir="start">
+  <port name="xgmii_tx" internal="xgmii_tx" />
+ </interface>
+ <interface name="xgmii_tx_control" internal="alt_em10g32_0.xgmii_tx_control" />
+ <interface name="xgmii_tx_data" internal="alt_em10g32_0.xgmii_tx_data" />
+ <module
+   name="alt_em10g32_0"
+   kind="alt_em10g32"
+   version="19.3.0"
+   enabled="1"
+   autoexport="1">
+  <parameter name="ANLG_VOLTAGE" value="1_0V" />
+  <parameter name="DATAPATH_OPTION" value="3" />
+  <parameter name="DEVICE" value="10AX115U3F45E2SG" />
+  <parameter name="DEVICE_FAMILY" value="Arria 10" />
+  <parameter name="DEVKIT_DEVICE" value="10AX115S4F45E3SGE3" />
+  <parameter name="ENABLE_10GBASER_REG_MODE" value="0" />
+  <parameter name="ENABLE_1G10G_MAC" value="0" />
+  <parameter name="ENABLE_ADME" value="0" />
+  <parameter name="ENABLE_ASYMMETRY" value="0" />
+  <parameter name="ENABLE_ED_FILESET_SIM" value="1" />
+  <parameter name="ENABLE_ED_FILESET_SYNTHESIS" value="1" />
+  <parameter name="ENABLE_MEM_ECC" value="0" />
+  <parameter name="ENABLE_P2P" value="0" />
+  <parameter name="ENABLE_PFC" value="0" />
+  <parameter name="ENABLE_PTP_1STEP" value="0" />
+  <parameter name="ENABLE_SUPP_ADDR" value="0" />
+  <parameter name="ENABLE_TIMESTAMPING" value="0" />
+  <parameter name="ENABLE_TXRX_DATAPATH" value="1" />
+  <parameter name="ENABLE_UNIDIRECTIONAL" value="1" />
+  <parameter name="INSERT_CSR_ADAPTOR" value="1" />
+  <parameter name="INSERT_ST_ADAPTOR" value="1" />
+  <parameter name="INSERT_XGMII_ADAPTOR" value="1" />
+  <parameter name="INSTANTIATE_STATISTICS" value="1" />
+  <parameter name="INTERNAL_FEATURE" value="false" />
+  <parameter name="PFC_PRIORITY_NUMBER" value="8" />
+  <parameter name="PREAMBLE_PASSTHROUGH" value="0" />
+  <parameter name="PR_READY" value="0" />
+  <parameter name="QSF_PATH">LL10G_Ethernet_A10_10GBASER/</parameter>
+  <parameter name="REGISTER_BASED_STATISTICS" value="1" />
+  <parameter name="SELECT_CUSTOM_DEVICE" value="1" />
+  <parameter name="SELECT_ED_FILESET" value="0" />
+  <parameter name="SELECT_NUMBER_OF_CHANNEL" value="1" />
+  <parameter name="SELECT_SUPPORTED_VARIANT" value="10" />
+  <parameter name="SELECT_TARGETED_DEVICE" value="0" />
+  <parameter name="SHOW_HIDDEN_OPTIONS" value="0" />
+  <parameter name="TIME_OF_DAY_FORMAT" value="2" />
+  <parameter name="TSTAMP_FP_WIDTH" value="4" />
+  <parameter name="die_types" value="" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/mult_add2/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/mult_add2/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..15a889ac4bd6c99e72081b80cdb069dd0fc62f3a
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/mult_add2/hdllib.cfg
@@ -0,0 +1,17 @@
+hdl_lib_name = 	ip_arria10_e2sg_mult_add2
+hdl_library_clause_name = ip_arria10_e2sg_mult_add2_lib
+hdl_lib_uses_synth = technology common
+hdl_lib_uses_sim = 
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    ip_arria10_e2sg_mult_add2_rtl.vhd
+    
+test_bench_files =
+
+
+[modelsim_project_file]
+
+
+[quartus_project_file]
+
diff --git a/libraries/technology/ip_arria10_e2sg/mult_add2/ip_arria10_e2sg_mult_add2_rtl.vhd b/libraries/technology/ip_arria10_e2sg/mult_add2/ip_arria10_e2sg_mult_add2_rtl.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..2e42f1afb5ecf058fbdc4f85a38e624161f1eb64
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/mult_add2/ip_arria10_e2sg_mult_add2_rtl.vhd
@@ -0,0 +1,203 @@
+-------------------------------------------------------------------------------
+--
+-- Copyright (C) 2009
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+-- Based on ip_stratixiv_mult_add2_rtl
+
+LIBRARY IEEE, common_lib;
+USE IEEE.std_logic_1164.ALL;
+USE IEEE.numeric_std.ALL;
+USE common_lib.common_pkg.ALL;
+
+
+------------------------------------------------------------------------------
+-- Function:
+-- . res = a0 * b0 + a1 * b1
+-- . res = a0 * b0 - a1 * b1
+------------------------------------------------------------------------------
+
+ENTITY ip_arria10_e2sg_mult_add2_rtl IS
+  GENERIC (
+    g_in_a_w           : POSITIVE;
+    g_in_b_w           : POSITIVE;
+    g_res_w            : POSITIVE;          -- g_in_a_w + g_in_b_w + log2(2)
+    g_force_dsp        : BOOLEAN := TRUE;   -- when TRUE resize input width to >= 18
+    g_add_sub          : STRING := "ADD";   -- or "SUB"
+    g_nof_mult         : INTEGER := 2;      -- fixed
+    g_pipeline_input   : NATURAL := 1;      -- 0 or 1
+    g_pipeline_product : NATURAL := 0;      -- 0 or 1
+    g_pipeline_adder   : NATURAL := 1;      -- 0 or 1
+    g_pipeline_output  : NATURAL := 1       -- >= 0
+  );
+  PORT (
+    rst        : IN  STD_LOGIC := '0';
+    clk        : IN  STD_LOGIC;
+    clken      : IN  STD_LOGIC := '1';
+    in_a       : IN  STD_LOGIC_VECTOR(g_nof_mult*g_in_a_w-1 DOWNTO 0);
+    in_b       : IN  STD_LOGIC_VECTOR(g_nof_mult*g_in_b_w-1 DOWNTO 0);
+    res        : OUT STD_LOGIC_VECTOR(g_res_w-1 DOWNTO 0)
+  );
+END ip_arria10_e2sg_mult_add2_rtl;
+
+
+ARCHITECTURE str OF ip_arria10_e2sg_mult_add2_rtl IS
+
+  -- Extra output pipelining is only needed when g_pipeline_output > 1
+  CONSTANT c_pipeline_output : NATURAL := sel_a_b(g_pipeline_output>0, g_pipeline_output-1, 0);
+
+  CONSTANT c_prod_w     : NATURAL := g_in_a_w+g_in_b_w;
+  CONSTANT c_sum_w      : NATURAL := c_prod_w+1;
+
+  -- registers
+  SIGNAL reg_a0         : SIGNED(g_in_a_w-1 DOWNTO 0);
+  SIGNAL reg_b0         : SIGNED(g_in_b_w-1 DOWNTO 0);
+  SIGNAL reg_a1         : SIGNED(g_in_a_w-1 DOWNTO 0);
+  SIGNAL reg_b1         : SIGNED(g_in_b_w-1 DOWNTO 0);
+  SIGNAL reg_prod0      : SIGNED(c_prod_w-1 DOWNTO 0);
+  SIGNAL reg_prod1      : SIGNED(c_prod_w-1 DOWNTO 0);
+  SIGNAL reg_sum        : SIGNED(c_sum_w-1 DOWNTO 0);
+  SIGNAL reg_result     : SIGNED(g_res_w-1 DOWNTO 0);
+
+  -- combinatorial
+  SIGNAL nxt_a0     : SIGNED(g_in_a_w-1 DOWNTO 0);
+  SIGNAL nxt_b0     : SIGNED(g_in_b_w-1 DOWNTO 0);
+  SIGNAL nxt_a1     : SIGNED(g_in_a_w-1 DOWNTO 0);
+  SIGNAL nxt_b1     : SIGNED(g_in_b_w-1 DOWNTO 0);
+  SIGNAL nxt_prod0  : SIGNED(c_prod_w-1 DOWNTO 0);
+  SIGNAL nxt_prod1  : SIGNED(c_prod_w-1 DOWNTO 0);
+  SIGNAL nxt_sum    : SIGNED(c_sum_w-1 DOWNTO 0);
+  SIGNAL nxt_result : SIGNED(g_res_w-1 DOWNTO 0);
+
+  -- the active signals
+  SIGNAL a0         : SIGNED(g_in_a_w-1 DOWNTO 0);
+  SIGNAL b0         : SIGNED(g_in_b_w-1 DOWNTO 0);
+  SIGNAL a1         : SIGNED(g_in_a_w-1 DOWNTO 0);
+  SIGNAL b1         : SIGNED(g_in_b_w-1 DOWNTO 0);
+  SIGNAL prod0      : SIGNED(c_prod_w-1 DOWNTO 0);
+  SIGNAL prod1      : SIGNED(c_prod_w-1 DOWNTO 0);
+  SIGNAL sum        : SIGNED(c_sum_w-1 DOWNTO 0);
+  SIGNAL result     : SIGNED(g_res_w-1 DOWNTO 0);
+
+BEGIN
+
+  ------------------------------------------------------------------------------
+  -- Registers
+  ------------------------------------------------------------------------------
+
+  -- Put all potential registers in a single process for optimal DSP inferrence
+  -- Use rst only if it is supported by the DSP primitive, else leave it at '0'
+  p_reg : PROCESS (rst, clk)
+  BEGIN
+    IF rising_edge(clk) THEN
+      IF rst='1' THEN
+        reg_a0     <= (OTHERS=>'0');
+        reg_b0     <= (OTHERS=>'0');
+        reg_a1     <= (OTHERS=>'0');
+        reg_b1     <= (OTHERS=>'0');
+        reg_prod0  <= (OTHERS=>'0');
+        reg_prod1  <= (OTHERS=>'0');
+        reg_sum    <= (OTHERS=>'0');
+        reg_result <= (OTHERS=>'0');
+      ELSIF clken='1' THEN
+        reg_a0     <= nxt_a0;       -- inputs
+        reg_b0     <= nxt_b0;
+        reg_a1     <= nxt_a1;
+        reg_b1     <= nxt_b1;
+        reg_prod0  <= nxt_prod0;    -- products
+        reg_prod1  <= nxt_prod1;
+        reg_sum    <= nxt_sum;      -- sum
+        reg_result <= nxt_result;   -- result sum after optional rounding
+      END IF;
+    END IF;
+  END PROCESS;
+
+  ------------------------------------------------------------------------------
+  -- Inputs
+  ------------------------------------------------------------------------------
+
+  nxt_a0 <= SIGNED(in_a(  g_in_a_w-1 DOWNTO 0));
+  nxt_b0 <= SIGNED(in_b(  g_in_b_w-1 DOWNTO 0));
+  nxt_a1 <= SIGNED(in_a(2*g_in_a_w-1 DOWNTO g_in_a_w));
+  nxt_b1 <= SIGNED(in_b(2*g_in_b_w-1 DOWNTO g_in_b_w));
+
+  no_input_reg : IF g_pipeline_input=0 GENERATE   -- wired
+    a0 <= nxt_a0;
+    b0 <= nxt_b0;
+    a1 <= nxt_a1;
+    b1 <= nxt_b1;
+  END GENERATE;
+
+  gen_input_reg : IF g_pipeline_input>0 GENERATE  -- register input
+    a0 <= reg_a0;
+    b0 <= reg_b0;
+    a1 <= reg_a1;
+    b1 <= reg_b1;
+  END GENERATE;
+
+  ------------------------------------------------------------------------------
+  -- Products
+  ------------------------------------------------------------------------------
+
+  nxt_prod0 <= a0 * b0;
+  nxt_prod1 <= a1 * b1;
+
+  no_product_reg : IF g_pipeline_product=0 GENERATE   -- wired
+    prod0 <= nxt_prod0;
+    prod1 <= nxt_prod1;
+  END GENERATE;
+  gen_product_reg : IF g_pipeline_product>0 GENERATE  -- register
+    prod0 <= reg_prod0;
+    prod1 <= reg_prod1;
+  END GENERATE;
+
+  ------------------------------------------------------------------------------
+  -- Sum
+  ------------------------------------------------------------------------------
+  gen_add : IF g_add_sub = "ADD" GENERATE
+    nxt_sum <= RESIZE_NUM(prod0, c_sum_w) + prod1;
+  END GENERATE;
+  gen_sub : IF g_add_sub = "SUB" GENERATE
+    nxt_sum <= RESIZE_NUM(prod0, c_sum_w) - prod1;
+  END GENERATE;
+
+  no_adder_reg : IF g_pipeline_adder=0 GENERATE   -- wired
+    sum <= nxt_sum;
+  END GENERATE;
+  gen_adder_reg : IF g_pipeline_adder>0 GENERATE  -- register
+    sum <= reg_sum;
+  END GENERATE;
+
+
+  ------------------------------------------------------------------------------
+  -- Result sum after optional rounding
+  ------------------------------------------------------------------------------
+
+  nxt_result <= RESIZE_NUM(sum, g_res_w);
+
+  no_result_reg : IF g_pipeline_output=0 GENERATE   -- wired
+    result <= nxt_result;
+  END GENERATE;
+  gen_result_reg : IF g_pipeline_output>0 GENERATE  -- register
+    result <= reg_result;
+  END GENERATE;
+
+  res <= STD_LOGIC_VECTOR(result);
+
+END str;
diff --git a/libraries/technology/ip_arria10_e2sg/mult_add4/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/mult_add4/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..79f44d7c2db3faf9a08b339040a789848b3f7f8a
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/mult_add4/compile_ip.tcl
@@ -0,0 +1,39 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_mult_add4/sim"
+
+vmap  ip_arria10_e2sg_mult_add4 ./work/
+vmap  altera_mult_add_194       ./work/
+
+
+  vcom  "$IP_DIR/../altera_mult_add_194/sim/ip_arria10_e2sg_mult_add4_altera_mult_add_194_o5e3uui.vhd" -work altera_mult_add_194      
+  vcom  "$IP_DIR/ip_arria10_e2sg_mult_add4.vhd"                                                        -work ip_arria10_e2sg_mult_add4
diff --git a/libraries/technology/ip_arria10_e2sg/mult_add4/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/mult_add4/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..e8b3a294ca7e43ede41bc70fbf3690ce96ec4690
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/mult_add4/hdllib.cfg
@@ -0,0 +1,21 @@
+hdl_lib_name = ip_arria10_e2sg_mult_add4
+hdl_library_clause_name = ip_arria10_e2sg_mult_add4_lib
+hdl_lib_uses_synth = technology common
+hdl_lib_uses_sim = 
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    ip_arria10_e2sg_mult_add4_rtl.vhd
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+
+
+[quartus_project_file]
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_mult_add4.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/mult_add4/ip_arria10_e2sg_mult_add4.qsys b/libraries/technology/ip_arria10_e2sg/mult_add4/ip_arria10_e2sg_mult_add4.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..77fd3072a015667b6ab3ce865976eb41b1322b78
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/mult_add4/ip_arria10_e2sg_mult_add4.qsys
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_mult_add4">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element mult_add_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface name="aclr0" internal="mult_add_0.aclr0" type="reset" dir="end">
+  <port name="aclr0" internal="aclr0" />
+ </interface>
+ <interface name="clock0" internal="mult_add_0.clock0" type="clock" dir="end">
+  <port name="clock0" internal="clock0" />
+ </interface>
+ <interface name="dataa_0" internal="mult_add_0.dataa_0" type="conduit" dir="end">
+  <port name="dataa_0" internal="dataa_0" />
+ </interface>
+ <interface name="dataa_1" internal="mult_add_0.dataa_1" type="conduit" dir="end">
+  <port name="dataa_1" internal="dataa_1" />
+ </interface>
+ <interface name="dataa_2" internal="mult_add_0.dataa_2" type="conduit" dir="end">
+  <port name="dataa_2" internal="dataa_2" />
+ </interface>
+ <interface name="dataa_3" internal="mult_add_0.dataa_3" type="conduit" dir="end">
+  <port name="dataa_3" internal="dataa_3" />
+ </interface>
+ <interface name="datab_0" internal="mult_add_0.datab_0" type="conduit" dir="end">
+  <port name="datab_0" internal="datab_0" />
+ </interface>
+ <interface name="datab_1" internal="mult_add_0.datab_1" type="conduit" dir="end">
+  <port name="datab_1" internal="datab_1" />
+ </interface>
+ <interface name="datab_2" internal="mult_add_0.datab_2" type="conduit" dir="end">
+  <port name="datab_2" internal="datab_2" />
+ </interface>
+ <interface name="datab_3" internal="mult_add_0.datab_3" type="conduit" dir="end">
+  <port name="datab_3" internal="datab_3" />
+ </interface>
+ <interface name="datac_0" internal="mult_add_0.datac_0" />
+ <interface name="datac_1" internal="mult_add_0.datac_1" />
+ <interface name="datac_2" internal="mult_add_0.datac_2" />
+ <interface name="datac_3" internal="mult_add_0.datac_3" />
+ <interface name="ena0" internal="mult_add_0.ena0" type="conduit" dir="end">
+  <port name="ena0" internal="ena0" />
+ </interface>
+ <interface name="result" internal="mult_add_0.result" type="conduit" dir="end">
+  <port name="result" internal="result" />
+ </interface>
+ <module
+   name="mult_add_0"
+   kind="altera_mult_add"
+   version="19.1.0"
+   enabled="1"
+   autoexport="1">
+  <parameter name="accum_direction" value="ADD" />
+  <parameter name="accumulator" value="NO" />
+  <parameter name="chainout_adder" value="NO" />
+  <parameter name="chainout_adder_direction" value="ADD" />
+  <parameter name="coef0_0" value="0" />
+  <parameter name="coef0_1" value="0" />
+  <parameter name="coef0_2" value="0" />
+  <parameter name="coef0_3" value="0" />
+  <parameter name="coef0_4" value="0" />
+  <parameter name="coef0_5" value="0" />
+  <parameter name="coef0_6" value="0" />
+  <parameter name="coef0_7" value="0" />
+  <parameter name="coef1_0" value="0" />
+  <parameter name="coef1_1" value="0" />
+  <parameter name="coef1_2" value="0" />
+  <parameter name="coef1_3" value="0" />
+  <parameter name="coef1_4" value="0" />
+  <parameter name="coef1_5" value="0" />
+  <parameter name="coef1_6" value="0" />
+  <parameter name="coef1_7" value="0" />
+  <parameter name="coef2_0" value="0" />
+  <parameter name="coef2_1" value="0" />
+  <parameter name="coef2_2" value="0" />
+  <parameter name="coef2_3" value="0" />
+  <parameter name="coef2_4" value="0" />
+  <parameter name="coef2_5" value="0" />
+  <parameter name="coef2_6" value="0" />
+  <parameter name="coef2_7" value="0" />
+  <parameter name="coef3_0" value="0" />
+  <parameter name="coef3_1" value="0" />
+  <parameter name="coef3_2" value="0" />
+  <parameter name="coef3_3" value="0" />
+  <parameter name="coef3_4" value="0" />
+  <parameter name="coef3_5" value="0" />
+  <parameter name="coef3_6" value="0" />
+  <parameter name="coef3_7" value="0" />
+  <parameter name="gui_4th_asynchronous_clear" value="false" />
+  <parameter name="gui_accum_sload_register_aclr" value="NONE" />
+  <parameter name="gui_accum_sload_register_clock" value="CLOCK0" />
+  <parameter name="gui_accum_sload_register_sclr" value="NONE" />
+  <parameter name="gui_accumulate_port_select" value="0" />
+  <parameter name="gui_addnsub_multiplier_aclr1" value="NONE" />
+  <parameter name="gui_addnsub_multiplier_aclr3" value="NONE" />
+  <parameter name="gui_addnsub_multiplier_register1" value="false" />
+  <parameter name="gui_addnsub_multiplier_register1_clock" value="CLOCK0" />
+  <parameter name="gui_addnsub_multiplier_register3" value="false" />
+  <parameter name="gui_addnsub_multiplier_register3_clock" value="CLOCK0" />
+  <parameter name="gui_addnsub_multiplier_sclr1" value="NONE" />
+  <parameter name="gui_addnsub_multiplier_sclr3" value="NONE" />
+  <parameter name="gui_associated_clock_enable" value="true" />
+  <parameter name="gui_coef_register" value="false" />
+  <parameter name="gui_coef_register_aclr" value="NONE" />
+  <parameter name="gui_coef_register_clock" value="CLOCK0" />
+  <parameter name="gui_coef_register_sclr" value="NONE" />
+  <parameter name="gui_datac_input_register" value="false" />
+  <parameter name="gui_datac_input_register_aclr" value="ACLR0" />
+  <parameter name="gui_datac_input_register_clock" value="CLOCK0" />
+  <parameter name="gui_datac_input_register_sclr" value="NONE" />
+  <parameter name="gui_double_accum" value="false" />
+  <parameter name="gui_ena_preload_const" value="false" />
+  <parameter name="gui_input_latency_aclr" value="ACLR0" />
+  <parameter name="gui_input_latency_clock" value="CLOCK0" />
+  <parameter name="gui_input_latency_sclr" value="NONE" />
+  <parameter name="gui_input_register_a" value="false" />
+  <parameter name="gui_input_register_a_aclr" value="ACLR0" />
+  <parameter name="gui_input_register_a_clock" value="CLOCK0" />
+  <parameter name="gui_input_register_a_sclr" value="NONE" />
+  <parameter name="gui_input_register_b" value="false" />
+  <parameter name="gui_input_register_b_aclr" value="ACLR0" />
+  <parameter name="gui_input_register_b_clock" value="CLOCK0" />
+  <parameter name="gui_input_register_b_sclr" value="NONE" />
+  <parameter name="gui_multiplier1_direction" value="ADD" />
+  <parameter name="gui_multiplier3_direction" value="ADD" />
+  <parameter name="gui_multiplier_a_input" value="Multiplier input" />
+  <parameter name="gui_multiplier_b_input" value="Multiplier input" />
+  <parameter name="gui_multiplier_register" value="false" />
+  <parameter name="gui_multiplier_register_aclr" value="NONE" />
+  <parameter name="gui_multiplier_register_clock" value="CLOCK0" />
+  <parameter name="gui_multiplier_register_sclr" value="NONE" />
+  <parameter name="gui_output_register" value="false" />
+  <parameter name="gui_output_register_aclr" value="NONE" />
+  <parameter name="gui_output_register_clock" value="CLOCK0" />
+  <parameter name="gui_output_register_sclr" value="NONE" />
+  <parameter name="gui_pipelining" value="1" />
+  <parameter name="gui_preadder_direction" value="ADD" />
+  <parameter name="gui_register_signa" value="false" />
+  <parameter name="gui_register_signa_aclr" value="NONE" />
+  <parameter name="gui_register_signa_clock" value="CLOCK0" />
+  <parameter name="gui_register_signa_sclr" value="NONE" />
+  <parameter name="gui_register_signb" value="false" />
+  <parameter name="gui_register_signb_aclr" value="NONE" />
+  <parameter name="gui_register_signb_clock" value="CLOCK0" />
+  <parameter name="gui_register_signb_sclr" value="NONE" />
+  <parameter name="gui_representation_a" value="SIGNED" />
+  <parameter name="gui_representation_b" value="SIGNED" />
+  <parameter name="gui_scanouta_register" value="false" />
+  <parameter name="gui_scanouta_register_aclr" value="NONE" />
+  <parameter name="gui_scanouta_register_clock" value="CLOCK0" />
+  <parameter name="gui_scanouta_register_sclr" value="NONE" />
+  <parameter name="gui_systolic_delay" value="false" />
+  <parameter name="gui_systolic_delay_aclr" value="NONE" />
+  <parameter name="gui_systolic_delay_clock" value="CLOCK0" />
+  <parameter name="gui_systolic_delay_sclr" value="NONE" />
+  <parameter name="gui_use_subnadd" value="false" />
+  <parameter name="latency" value="3" />
+  <parameter name="loadconst_value" value="64" />
+  <parameter name="negate_aclr" value="NONE" />
+  <parameter name="negate_register" value="UNREGISTERED" />
+  <parameter name="negate_sclr" value="NONE" />
+  <parameter name="number_of_multipliers" value="4" />
+  <parameter name="port_negate" value="PORT_UNUSED" />
+  <parameter name="preadder_mode" value="SIMPLE" />
+  <parameter name="reg_autovec_sim" value="false" />
+  <parameter name="selected_device_family" value="Arria 10" />
+  <parameter name="width_a" value="18" />
+  <parameter name="width_b" value="18" />
+  <parameter name="width_c" value="16" />
+  <parameter name="width_coef" value="18" />
+  <parameter name="width_result" value="38" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/mult_add4/ip_arria10_e2sg_mult_add4_rtl.vhd b/libraries/technology/ip_arria10_e2sg/mult_add4/ip_arria10_e2sg_mult_add4_rtl.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..301d16b1c69e4502bff31e411595170a3fa21740
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/mult_add4/ip_arria10_e2sg_mult_add4_rtl.vhd
@@ -0,0 +1,272 @@
+-------------------------------------------------------------------------------
+--
+-- Copyright (C) 2010
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+LIBRARY IEEE, common_lib;
+USE IEEE.std_logic_1164.ALL;
+USE IEEE.numeric_std.ALL;
+USE common_lib.common_pkg.ALL;
+
+-- Function:
+-- . res = (a0 * b0 +- a1 * b1) +- (a2 * b2 +- a3 * b3)
+
+ENTITY ip_arria10_e2sg_mult_add4_rtl IS
+  GENERIC (
+    g_in_a_w           : POSITIVE;
+    g_in_b_w           : POSITIVE;
+    g_res_w            : POSITIVE;          -- g_in_a_w + g_in_b_w + log2(4)
+    g_force_dsp        : BOOLEAN := TRUE;   -- when TRUE resize input width to >= 18
+    g_add_sub0         : STRING := "ADD";   -- or "SUB"
+    g_add_sub1         : STRING := "ADD";   -- or "SUB"
+    g_add_sub          : STRING := "ADD";   -- or "SUB" only available with rtl architecture
+    g_nof_mult         : INTEGER := 4;      -- fixed
+    g_pipeline_input   : NATURAL := 1;      -- 0 or 1
+    g_pipeline_product : NATURAL := 0;      -- 0 or 1
+    g_pipeline_adder   : NATURAL := 1;      -- 0 or 1, first sum
+    g_pipeline_output  : NATURAL := 1       -- >= 0,   second sum and optional rounding
+  );
+  PORT (
+    rst        : IN  STD_LOGIC := '0';
+    clk        : IN  STD_LOGIC;
+    clken      : IN  STD_LOGIC := '1';
+    in_a       : IN  STD_LOGIC_VECTOR(g_nof_mult*g_in_a_w-1 DOWNTO 0);
+    in_b       : IN  STD_LOGIC_VECTOR(g_nof_mult*g_in_b_w-1 DOWNTO 0);
+    res        : OUT STD_LOGIC_VECTOR(g_res_w-1 DOWNTO 0)
+  );
+END ip_arria10_e2sg_mult_add4_rtl;
+
+ARCHITECTURE str OF ip_arria10_e2sg_mult_add4_rtl IS
+
+  -- Extra output pipelining is only needed when g_pipeline_output > 1
+  CONSTANT c_pipeline_output : NATURAL := sel_a_b(g_pipeline_output>0, g_pipeline_output-1, 0);
+
+  -- registers
+  SIGNAL reg_a0         : SIGNED(g_in_a_w-1 DOWNTO 0);
+  SIGNAL reg_b0         : SIGNED(g_in_b_w-1 DOWNTO 0);
+  SIGNAL reg_a1         : SIGNED(g_in_a_w-1 DOWNTO 0);
+  SIGNAL reg_b1         : SIGNED(g_in_b_w-1 DOWNTO 0);
+  SIGNAL reg_a2         : SIGNED(g_in_a_w-1 DOWNTO 0);
+  SIGNAL reg_b2         : SIGNED(g_in_b_w-1 DOWNTO 0);
+  SIGNAL reg_a3         : SIGNED(g_in_a_w-1 DOWNTO 0);
+  SIGNAL reg_b3         : SIGNED(g_in_b_w-1 DOWNTO 0);
+  SIGNAL reg_prod0      : SIGNED(g_in_a_w+g_in_b_w-1 DOWNTO 0);
+  SIGNAL reg_prod1      : SIGNED(g_in_a_w+g_in_b_w-1 DOWNTO 0);
+  SIGNAL reg_prod2      : SIGNED(g_in_a_w+g_in_b_w-1 DOWNTO 0);
+  SIGNAL reg_prod3      : SIGNED(g_in_a_w+g_in_b_w-1 DOWNTO 0);
+  SIGNAL reg_sum0       : SIGNED(g_in_a_w+g_in_b_w   DOWNTO 0);
+  SIGNAL reg_sum1       : SIGNED(g_in_a_w+g_in_b_w   DOWNTO 0);
+  SIGNAL reg_result     : SIGNED(res'RANGE);
+  
+  -- combinatorial
+  SIGNAL nxt_a0         : SIGNED(g_in_a_w-1 DOWNTO 0);
+  SIGNAL nxt_b0         : SIGNED(g_in_b_w-1 DOWNTO 0);
+  SIGNAL nxt_a1         : SIGNED(g_in_a_w-1 DOWNTO 0);
+  SIGNAL nxt_b1         : SIGNED(g_in_b_w-1 DOWNTO 0);
+  SIGNAL nxt_a2         : SIGNED(g_in_a_w-1 DOWNTO 0);
+  SIGNAL nxt_b2         : SIGNED(g_in_b_w-1 DOWNTO 0);
+  SIGNAL nxt_a3         : SIGNED(g_in_a_w-1 DOWNTO 0);
+  SIGNAL nxt_b3         : SIGNED(g_in_b_w-1 DOWNTO 0);
+  SIGNAL nxt_prod0      : SIGNED(g_in_a_w+g_in_b_w-1 DOWNTO 0);
+  SIGNAL nxt_prod1      : SIGNED(g_in_a_w+g_in_b_w-1 DOWNTO 0);
+  SIGNAL nxt_prod2      : SIGNED(g_in_a_w+g_in_b_w-1 DOWNTO 0);
+  SIGNAL nxt_prod3      : SIGNED(g_in_a_w+g_in_b_w-1 DOWNTO 0);
+  SIGNAL nxt_sum0       : SIGNED(g_in_a_w+g_in_b_w   DOWNTO 0);
+  SIGNAL nxt_sum1       : SIGNED(g_in_a_w+g_in_b_w   DOWNTO 0);
+  SIGNAL nxt_result     : SIGNED(res'RANGE);
+  
+  -- the active signals
+  SIGNAL a0             : SIGNED(g_in_a_w-1 DOWNTO 0);
+  SIGNAL b0             : SIGNED(g_in_b_w-1 DOWNTO 0);
+  SIGNAL a1             : SIGNED(g_in_a_w-1 DOWNTO 0);
+  SIGNAL b1             : SIGNED(g_in_b_w-1 DOWNTO 0);
+  SIGNAL a2             : SIGNED(g_in_a_w-1 DOWNTO 0);
+  SIGNAL b2             : SIGNED(g_in_b_w-1 DOWNTO 0);
+  SIGNAL a3             : SIGNED(g_in_a_w-1 DOWNTO 0);
+  SIGNAL b3             : SIGNED(g_in_b_w-1 DOWNTO 0);
+  SIGNAL prod0          : SIGNED(g_in_a_w+g_in_b_w-1 DOWNTO 0);
+  SIGNAL prod1          : SIGNED(g_in_a_w+g_in_b_w-1 DOWNTO 0);
+  SIGNAL prod2          : SIGNED(g_in_a_w+g_in_b_w-1 DOWNTO 0);
+  SIGNAL prod3          : SIGNED(g_in_a_w+g_in_b_w-1 DOWNTO 0);
+  SIGNAL sum0           : SIGNED(g_in_a_w+g_in_b_w   DOWNTO 0);
+  SIGNAL sum1           : SIGNED(g_in_a_w+g_in_b_w   DOWNTO 0);
+  SIGNAL sum            : SIGNED(g_in_a_w+g_in_b_w+1 DOWNTO 0);
+  SIGNAL result         : SIGNED(res'RANGE);
+
+BEGIN
+
+  ------------------------------------------------------------------------------
+  -- Registers
+  ------------------------------------------------------------------------------
+  
+  -- Put all potential registers in a single process for optimal DSP inferrence
+  -- Use rst only if it is supported by the DSP primitive, else leave it at '0'
+  p_reg : PROCESS (rst, clk)
+  BEGIN
+    IF rising_edge(clk) THEN
+      IF rst='1' THEN
+        reg_a0     <= (OTHERS=>'0');
+        reg_b0     <= (OTHERS=>'0');
+        reg_a1     <= (OTHERS=>'0');
+        reg_b1     <= (OTHERS=>'0');
+        reg_a2     <= (OTHERS=>'0');
+        reg_b2     <= (OTHERS=>'0');
+        reg_a3     <= (OTHERS=>'0');
+        reg_b3     <= (OTHERS=>'0');
+        reg_prod0  <= (OTHERS=>'0');
+        reg_prod1  <= (OTHERS=>'0');
+        reg_prod2  <= (OTHERS=>'0');
+        reg_prod3  <= (OTHERS=>'0');
+        reg_sum0   <= (OTHERS=>'0');
+        reg_sum1   <= (OTHERS=>'0');
+        reg_result <= (OTHERS=>'0');
+      ELSIF clken='1' THEN
+        reg_a0     <= nxt_a0;       -- inputs
+        reg_b0     <= nxt_b0;
+        reg_a1     <= nxt_a1;
+        reg_b1     <= nxt_b1;
+        reg_a2     <= nxt_a2;
+        reg_b2     <= nxt_b2;
+        reg_a3     <= nxt_a3;
+        reg_b3     <= nxt_b3;
+        reg_prod0  <= nxt_prod0;    -- products
+        reg_prod1  <= nxt_prod1;
+        reg_prod2  <= nxt_prod2;
+        reg_prod3  <= nxt_prod3;
+        reg_sum0   <= nxt_sum0;     -- first sum
+        reg_sum1   <= nxt_sum1;
+        reg_result <= nxt_result;   -- result second sum after optional rounding
+      END IF;
+    END IF;
+  END PROCESS;
+  
+  ------------------------------------------------------------------------------
+  -- Inputs
+  ------------------------------------------------------------------------------
+  
+  nxt_a0 <= SIGNED(in_a(  g_in_a_w-1 DOWNTO   0));
+  nxt_b0 <= SIGNED(in_b(  g_in_b_w-1 DOWNTO   0));
+  nxt_a1 <= SIGNED(in_a(2*g_in_a_w-1 DOWNTO   g_in_a_w));
+  nxt_b1 <= SIGNED(in_b(2*g_in_b_w-1 DOWNTO   g_in_b_w));
+  nxt_a2 <= SIGNED(in_a(3*g_in_a_w-1 DOWNTO 2*g_in_a_w));
+  nxt_b2 <= SIGNED(in_b(3*g_in_b_w-1 DOWNTO 2*g_in_b_w));
+  nxt_a3 <= SIGNED(in_a(4*g_in_a_w-1 DOWNTO 3*g_in_a_w));
+  nxt_b3 <= SIGNED(in_b(4*g_in_b_w-1 DOWNTO 3*g_in_b_w));
+
+  no_input_reg : IF g_pipeline_input=0 GENERATE   -- wired
+    a0 <= nxt_a0;
+    b0 <= nxt_b0;
+    a1 <= nxt_a1;
+    b1 <= nxt_b1;
+    a2 <= nxt_a2;
+    b2 <= nxt_b2;
+    a3 <= nxt_a3;
+    b3 <= nxt_b3;
+  END GENERATE;
+  
+  gen_input_reg : IF g_pipeline_input>0 GENERATE  -- register input
+    a0 <= reg_a0;
+    b0 <= reg_b0;
+    a1 <= reg_a1;
+    b1 <= reg_b1;
+    a2 <= reg_a2;
+    b2 <= reg_b2;
+    a3 <= reg_a3;
+    b3 <= reg_b3;
+  END GENERATE;
+  
+  ------------------------------------------------------------------------------
+  -- Products
+  ------------------------------------------------------------------------------
+  
+  nxt_prod0 <= a0 * b0;
+  nxt_prod1 <= a1 * b1;
+  nxt_prod2 <= a2 * b2;
+  nxt_prod3 <= a3 * b3;
+  
+  no_product_reg : IF g_pipeline_product=0 GENERATE   -- wired
+    prod0 <= nxt_prod0;
+    prod1 <= nxt_prod1;
+    prod2 <= nxt_prod2;
+    prod3 <= nxt_prod3;
+  END GENERATE;  
+  gen_product_reg : IF g_pipeline_product>0 GENERATE  -- register
+    prod0 <= reg_prod0;
+    prod1 <= reg_prod1;
+    prod2 <= reg_prod2;
+    prod3 <= reg_prod3;
+  END GENERATE;
+
+  ------------------------------------------------------------------------------
+  -- First sum
+  ------------------------------------------------------------------------------
+  gen_add0 : IF g_add_sub0 = "ADD" GENERATE
+    nxt_sum0 <= RESIZE_NUM(prod0, sum0'LENGTH) + prod1;
+  END GENERATE;
+  gen_sub0 : IF g_add_sub0 = "SUB" GENERATE
+    nxt_sum0 <= RESIZE_NUM(prod0, sum0'LENGTH) - prod1;
+  END GENERATE;
+  
+  gen_add1 : IF g_add_sub1 = "ADD" GENERATE
+    nxt_sum1 <= RESIZE_NUM(prod2, sum1'LENGTH) + prod3;
+  END GENERATE;
+  gen_sub1 : IF g_add_sub1 = "SUB" GENERATE
+    nxt_sum1 <= RESIZE_NUM(prod2, sum1'LENGTH) - prod3;
+  END GENERATE;
+  
+  -- Optinal first sum register
+  no_adder_reg : IF g_pipeline_adder=0 GENERATE   -- wired
+    sum0 <= nxt_sum0;
+    sum1 <= nxt_sum1;
+  END GENERATE;
+  gen_adder_reg : IF g_pipeline_adder>0 GENERATE  -- register
+    sum0 <= reg_sum0;
+    sum1 <= reg_sum1;
+  END GENERATE;
+  
+  
+  ------------------------------------------------------------------------------
+  -- Second sum
+  ------------------------------------------------------------------------------
+  
+  -- No register for second sum, gets combined with result register
+  gen_add : IF g_add_sub = "ADD" GENERATE
+    sum <= RESIZE_NUM(sum0, sum'LENGTH) + sum1;
+  END GENERATE;
+  gen_sub : IF g_add_sub = "SUB" GENERATE
+    sum <= RESIZE_NUM(sum0, sum'LENGTH) - sum1;
+  END GENERATE;
+  
+  
+  ------------------------------------------------------------------------------
+  -- Result sum after optional rounding
+  ------------------------------------------------------------------------------
+  
+  nxt_result <= RESIZE_NUM(sum, res'LENGTH);
+  
+  no_result_reg : IF g_pipeline_output=0 GENERATE   -- wired
+    result <= nxt_result;
+  END GENERATE;
+  gen_result_reg : IF g_pipeline_output>0 GENERATE  -- register
+    result <= reg_result;
+  END GENERATE;
+  
+  res <= STD_LOGIC_VECTOR(result);
+  
+END str;
diff --git a/libraries/technology/ip_arria10_e2sg/phy_10gbase_r/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..77ae9c3528d82b79d00f43e19726275fedb5a807
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r/compile_ip.tcl
@@ -0,0 +1,35 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_phy_10gbase_r/sim"
+
+
+  vcom         "$IP_DIR/ip_arria10_e2sg_phy_10gbase_r.vhd"                                                                                                  
diff --git a/libraries/technology/ip_arria10_e2sg/phy_10gbase_r/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..1b8890d3d7ac9d1ec6df284c9e5ceb86a050593a
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_phy_10gbase_r
+hdl_library_clause_name = ip_arria10_e2sg_phy_10gbase_r_altera_xcvr_native_a10_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_native_a10_194
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/phy_10gbase_r/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_phy_10gbase_r/ip_arria10_e2sg_phy_10gbase_r.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_phy_10gbase_r.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/phy_10gbase_r/ip_arria10_e2sg_phy_10gbase_r.qsys b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r/ip_arria10_e2sg_phy_10gbase_r.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..6f53174fb2e76821c8a15f2b2a9ee9dc9c237226
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r/ip_arria10_e2sg_phy_10gbase_r.qsys
@@ -0,0 +1,604 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_phy_10gbase_r">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element xcvr_native_a10_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface name="reconfig_avmm" internal="xcvr_native_a10_0.reconfig_avmm" />
+ <interface name="reconfig_clk" internal="xcvr_native_a10_0.reconfig_clk" />
+ <interface name="reconfig_reset" internal="xcvr_native_a10_0.reconfig_reset" />
+ <interface
+   name="rx_analogreset"
+   internal="xcvr_native_a10_0.rx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_analogreset" internal="rx_analogreset" />
+ </interface>
+ <interface
+   name="rx_cal_busy"
+   internal="xcvr_native_a10_0.rx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="rx_cal_busy" internal="rx_cal_busy" />
+ </interface>
+ <interface
+   name="rx_cdr_refclk0"
+   internal="xcvr_native_a10_0.rx_cdr_refclk0"
+   type="conduit"
+   dir="end">
+  <port name="rx_cdr_refclk0" internal="rx_cdr_refclk0" />
+ </interface>
+ <interface
+   name="rx_clkout"
+   internal="xcvr_native_a10_0.rx_clkout"
+   type="conduit"
+   dir="end">
+  <port name="rx_clkout" internal="rx_clkout" />
+ </interface>
+ <interface
+   name="rx_control"
+   internal="xcvr_native_a10_0.rx_control"
+   type="conduit"
+   dir="end">
+  <port name="rx_control" internal="rx_control" />
+ </interface>
+ <interface
+   name="rx_coreclkin"
+   internal="xcvr_native_a10_0.rx_coreclkin"
+   type="conduit"
+   dir="end">
+  <port name="rx_coreclkin" internal="rx_coreclkin" />
+ </interface>
+ <interface
+   name="rx_digitalreset"
+   internal="xcvr_native_a10_0.rx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_digitalreset" internal="rx_digitalreset" />
+ </interface>
+ <interface
+   name="rx_enh_blk_lock"
+   internal="xcvr_native_a10_0.rx_enh_blk_lock"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_blk_lock" internal="rx_enh_blk_lock" />
+ </interface>
+ <interface
+   name="rx_enh_data_valid"
+   internal="xcvr_native_a10_0.rx_enh_data_valid"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_data_valid" internal="rx_enh_data_valid" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_del"
+   internal="xcvr_native_a10_0.rx_enh_fifo_del"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_del" internal="rx_enh_fifo_del" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_empty"
+   internal="xcvr_native_a10_0.rx_enh_fifo_empty"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_empty" internal="rx_enh_fifo_empty" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_full"
+   internal="xcvr_native_a10_0.rx_enh_fifo_full"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_full" internal="rx_enh_fifo_full" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_insert"
+   internal="xcvr_native_a10_0.rx_enh_fifo_insert"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_insert" internal="rx_enh_fifo_insert" />
+ </interface>
+ <interface
+   name="rx_enh_highber"
+   internal="xcvr_native_a10_0.rx_enh_highber"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_highber" internal="rx_enh_highber" />
+ </interface>
+ <interface
+   name="rx_is_lockedtodata"
+   internal="xcvr_native_a10_0.rx_is_lockedtodata"
+   type="conduit"
+   dir="end">
+  <port name="rx_is_lockedtodata" internal="rx_is_lockedtodata" />
+ </interface>
+ <interface
+   name="rx_is_lockedtoref"
+   internal="xcvr_native_a10_0.rx_is_lockedtoref"
+   type="conduit"
+   dir="end">
+  <port name="rx_is_lockedtoref" internal="rx_is_lockedtoref" />
+ </interface>
+ <interface
+   name="rx_parallel_data"
+   internal="xcvr_native_a10_0.rx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="rx_parallel_data" internal="rx_parallel_data" />
+ </interface>
+ <interface
+   name="rx_prbs_done"
+   internal="xcvr_native_a10_0.rx_prbs_done"
+   type="conduit"
+   dir="end">
+  <port name="rx_prbs_done" internal="rx_prbs_done" />
+ </interface>
+ <interface
+   name="rx_prbs_err"
+   internal="xcvr_native_a10_0.rx_prbs_err"
+   type="conduit"
+   dir="end">
+  <port name="rx_prbs_err" internal="rx_prbs_err" />
+ </interface>
+ <interface
+   name="rx_prbs_err_clr"
+   internal="xcvr_native_a10_0.rx_prbs_err_clr"
+   type="conduit"
+   dir="end">
+  <port name="rx_prbs_err_clr" internal="rx_prbs_err_clr" />
+ </interface>
+ <interface
+   name="rx_serial_data"
+   internal="xcvr_native_a10_0.rx_serial_data"
+   type="conduit"
+   dir="end">
+  <port name="rx_serial_data" internal="rx_serial_data" />
+ </interface>
+ <interface
+   name="rx_seriallpbken"
+   internal="xcvr_native_a10_0.rx_seriallpbken"
+   type="conduit"
+   dir="end">
+  <port name="rx_seriallpbken" internal="rx_seriallpbken" />
+ </interface>
+ <interface
+   name="tx_analogreset"
+   internal="xcvr_native_a10_0.tx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_analogreset" internal="tx_analogreset" />
+ </interface>
+ <interface
+   name="tx_cal_busy"
+   internal="xcvr_native_a10_0.tx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="tx_cal_busy" internal="tx_cal_busy" />
+ </interface>
+ <interface
+   name="tx_clkout"
+   internal="xcvr_native_a10_0.tx_clkout"
+   type="conduit"
+   dir="end">
+  <port name="tx_clkout" internal="tx_clkout" />
+ </interface>
+ <interface
+   name="tx_control"
+   internal="xcvr_native_a10_0.tx_control"
+   type="conduit"
+   dir="end">
+  <port name="tx_control" internal="tx_control" />
+ </interface>
+ <interface
+   name="tx_coreclkin"
+   internal="xcvr_native_a10_0.tx_coreclkin"
+   type="conduit"
+   dir="end">
+  <port name="tx_coreclkin" internal="tx_coreclkin" />
+ </interface>
+ <interface
+   name="tx_digitalreset"
+   internal="xcvr_native_a10_0.tx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_digitalreset" internal="tx_digitalreset" />
+ </interface>
+ <interface
+   name="tx_enh_data_valid"
+   internal="xcvr_native_a10_0.tx_enh_data_valid"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_data_valid" internal="tx_enh_data_valid" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_empty"
+   internal="xcvr_native_a10_0.tx_enh_fifo_empty"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_empty" internal="tx_enh_fifo_empty" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_full"
+   internal="xcvr_native_a10_0.tx_enh_fifo_full"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_full" internal="tx_enh_fifo_full" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_pempty"
+   internal="xcvr_native_a10_0.tx_enh_fifo_pempty"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_pempty" internal="tx_enh_fifo_pempty" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_pfull"
+   internal="xcvr_native_a10_0.tx_enh_fifo_pfull"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_pfull" internal="tx_enh_fifo_pfull" />
+ </interface>
+ <interface
+   name="tx_err_ins"
+   internal="xcvr_native_a10_0.tx_err_ins"
+   type="conduit"
+   dir="end">
+  <port name="tx_err_ins" internal="tx_err_ins" />
+ </interface>
+ <interface
+   name="tx_parallel_data"
+   internal="xcvr_native_a10_0.tx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="tx_parallel_data" internal="tx_parallel_data" />
+ </interface>
+ <interface name="tx_pma_clkout" internal="xcvr_native_a10_0.tx_pma_clkout" />
+ <interface
+   name="tx_pma_div_clkout"
+   internal="xcvr_native_a10_0.tx_pma_div_clkout" />
+ <interface
+   name="tx_serial_clk0"
+   internal="xcvr_native_a10_0.tx_serial_clk0"
+   type="conduit"
+   dir="end">
+  <port name="tx_serial_clk0" internal="tx_serial_clk0" />
+ </interface>
+ <interface
+   name="tx_serial_data"
+   internal="xcvr_native_a10_0.tx_serial_data"
+   type="conduit"
+   dir="end">
+  <port name="tx_serial_data" internal="tx_serial_data" />
+ </interface>
+ <interface
+   name="unused_rx_control"
+   internal="xcvr_native_a10_0.unused_rx_control"
+   type="conduit"
+   dir="end">
+  <port name="unused_rx_control" internal="unused_rx_control" />
+ </interface>
+ <interface
+   name="unused_rx_parallel_data"
+   internal="xcvr_native_a10_0.unused_rx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="unused_rx_parallel_data" internal="unused_rx_parallel_data" />
+ </interface>
+ <interface
+   name="unused_tx_control"
+   internal="xcvr_native_a10_0.unused_tx_control"
+   type="conduit"
+   dir="end">
+  <port name="unused_tx_control" internal="unused_tx_control" />
+ </interface>
+ <interface
+   name="unused_tx_parallel_data"
+   internal="xcvr_native_a10_0.unused_tx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="unused_tx_parallel_data" internal="unused_tx_parallel_data" />
+ </interface>
+ <module
+   name="xcvr_native_a10_0"
+   kind="altera_xcvr_native_a10"
+   version="19.1"
+   enabled="1"
+   autoexport="1">
+  <parameter name="anlg_enable_rx_default_ovr" value="0" />
+  <parameter name="anlg_enable_tx_default_ovr" value="0" />
+  <parameter name="anlg_link" value="sr" />
+  <parameter name="anlg_rx_adp_ctle_acgain_4s">radp_ctle_acgain_4s_1</parameter>
+  <parameter name="anlg_rx_adp_ctle_eqz_1s_sel">radp_ctle_eqz_1s_sel_3</parameter>
+  <parameter name="anlg_rx_adp_dfe_fxtap1" value="radp_dfe_fxtap1_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap10" value="radp_dfe_fxtap10_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap11" value="radp_dfe_fxtap11_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap2" value="radp_dfe_fxtap2_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap3" value="radp_dfe_fxtap3_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap4" value="radp_dfe_fxtap4_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap5" value="radp_dfe_fxtap5_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap6" value="radp_dfe_fxtap6_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap7" value="radp_dfe_fxtap7_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap8" value="radp_dfe_fxtap8_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap9" value="radp_dfe_fxtap9_0" />
+  <parameter name="anlg_rx_adp_vga_sel" value="radp_vga_sel_2" />
+  <parameter name="anlg_rx_eq_dc_gain_trim" value="stg2_gain7" />
+  <parameter name="anlg_rx_one_stage_enable" value="s1_mode" />
+  <parameter name="anlg_rx_term_sel" value="r_r1" />
+  <parameter name="anlg_tx_analog_mode" value="user_custom" />
+  <parameter name="anlg_tx_compensation_en" value="enable" />
+  <parameter name="anlg_tx_pre_emp_sign_1st_post_tap" value="fir_post_1t_neg" />
+  <parameter name="anlg_tx_pre_emp_sign_2nd_post_tap" value="fir_post_2t_neg" />
+  <parameter name="anlg_tx_pre_emp_sign_pre_tap_1t" value="fir_pre_1t_neg" />
+  <parameter name="anlg_tx_pre_emp_sign_pre_tap_2t" value="fir_pre_2t_neg" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_1st_post_tap" value="0" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_2nd_post_tap" value="0" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_pre_tap_1t" value="0" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_pre_tap_2t" value="0" />
+  <parameter name="anlg_tx_slew_rate_ctrl" value="slew_r7" />
+  <parameter name="anlg_tx_term_sel" value="r_r1" />
+  <parameter name="anlg_tx_vod_output_swing_ctrl" value="0" />
+  <parameter name="anlg_voltage" value="1_1V" />
+  <parameter name="base_device" value="NIGHTFURY5" />
+  <parameter name="bonded_mode" value="not_bonded" />
+  <parameter name="cdr_refclk_cnt" value="1" />
+  <parameter name="cdr_refclk_select" value="0" />
+  <parameter name="channels" value="1" />
+  <parameter name="design_environment" value="NATIVE" />
+  <parameter name="device" value="10AX115U3F45E2SG" />
+  <parameter name="device_family" value="Arria 10" />
+  <parameter name="disable_continuous_dfe" value="false" />
+  <parameter name="duplex_mode" value="duplex" />
+  <parameter name="enable_analog_settings" value="0" />
+  <parameter name="enable_hard_reset" value="0" />
+  <parameter name="enable_hip" value="0" />
+  <parameter name="enable_parallel_loopback" value="0" />
+  <parameter name="enable_pcie_data_mask_option" value="0" />
+  <parameter name="enable_pcie_dfe_ip" value="false" />
+  <parameter name="enable_port_krfec_rx_enh_frame" value="0" />
+  <parameter name="enable_port_krfec_rx_enh_frame_diag_status" value="0" />
+  <parameter name="enable_port_krfec_tx_enh_frame" value="0" />
+  <parameter name="enable_port_pipe_rx_polarity" value="0" />
+  <parameter name="enable_port_rx_analog_reset_ack" value="0" />
+  <parameter name="enable_port_rx_enh_bitslip" value="0" />
+  <parameter name="enable_port_rx_enh_blk_lock" value="1" />
+  <parameter name="enable_port_rx_enh_clr_errblk_count" value="0" />
+  <parameter name="enable_port_rx_enh_clr_errblk_count_c10" value="0" />
+  <parameter name="enable_port_rx_enh_crc32_err" value="0" />
+  <parameter name="enable_port_rx_enh_data_valid" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_align_clr" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_align_val" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_cnt" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_del" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_empty" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_full" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_insert" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_pempty" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_pfull" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_rd_en" value="0" />
+  <parameter name="enable_port_rx_enh_frame" value="0" />
+  <parameter name="enable_port_rx_enh_frame_diag_status" value="0" />
+  <parameter name="enable_port_rx_enh_frame_lock" value="0" />
+  <parameter name="enable_port_rx_enh_highber" value="1" />
+  <parameter name="enable_port_rx_enh_highber_clr_cnt" value="0" />
+  <parameter name="enable_port_rx_is_lockedtodata" value="1" />
+  <parameter name="enable_port_rx_is_lockedtoref" value="1" />
+  <parameter name="enable_port_rx_pma_clkout" value="0" />
+  <parameter name="enable_port_rx_pma_clkslip" value="0" />
+  <parameter name="enable_port_rx_pma_div_clkout" value="0" />
+  <parameter name="enable_port_rx_pma_iqtxrx_clkout" value="0" />
+  <parameter name="enable_port_rx_pma_qpipulldn" value="0" />
+  <parameter name="enable_port_rx_polinv" value="0" />
+  <parameter name="enable_port_rx_seriallpbken" value="1" />
+  <parameter name="enable_port_rx_seriallpbken_tx" value="1" />
+  <parameter name="enable_port_rx_signaldetect" value="0" />
+  <parameter name="enable_port_rx_std_bitrev_ena" value="0" />
+  <parameter name="enable_port_rx_std_bitslip" value="0" />
+  <parameter name="enable_port_rx_std_bitslipboundarysel" value="0" />
+  <parameter name="enable_port_rx_std_byterev_ena" value="0" />
+  <parameter name="enable_port_rx_std_pcfifo_empty" value="0" />
+  <parameter name="enable_port_rx_std_pcfifo_full" value="0" />
+  <parameter name="enable_port_rx_std_rmfifo_empty" value="0" />
+  <parameter name="enable_port_rx_std_rmfifo_full" value="0" />
+  <parameter name="enable_port_rx_std_signaldetect" value="0" />
+  <parameter name="enable_port_rx_std_wa_a1a2size" value="0" />
+  <parameter name="enable_port_rx_std_wa_patternalign" value="0" />
+  <parameter name="enable_port_tx_analog_reset_ack" value="0" />
+  <parameter name="enable_port_tx_enh_bitslip" value="0" />
+  <parameter name="enable_port_tx_enh_fifo_cnt" value="0" />
+  <parameter name="enable_port_tx_enh_fifo_empty" value="1" />
+  <parameter name="enable_port_tx_enh_fifo_full" value="1" />
+  <parameter name="enable_port_tx_enh_fifo_pempty" value="1" />
+  <parameter name="enable_port_tx_enh_fifo_pfull" value="1" />
+  <parameter name="enable_port_tx_enh_frame" value="0" />
+  <parameter name="enable_port_tx_enh_frame_burst_en" value="0" />
+  <parameter name="enable_port_tx_enh_frame_diag_status" value="0" />
+  <parameter name="enable_port_tx_pma_clkout" value="0" />
+  <parameter name="enable_port_tx_pma_div_clkout" value="0" />
+  <parameter name="enable_port_tx_pma_elecidle" value="0" />
+  <parameter name="enable_port_tx_pma_iqtxrx_clkout" value="0" />
+  <parameter name="enable_port_tx_pma_qpipulldn" value="0" />
+  <parameter name="enable_port_tx_pma_qpipullup" value="0" />
+  <parameter name="enable_port_tx_pma_rxfound" value="0" />
+  <parameter name="enable_port_tx_pma_txdetectrx" value="0" />
+  <parameter name="enable_port_tx_polinv" value="0" />
+  <parameter name="enable_port_tx_std_bitslipboundarysel" value="0" />
+  <parameter name="enable_port_tx_std_pcfifo_empty" value="0" />
+  <parameter name="enable_port_tx_std_pcfifo_full" value="0" />
+  <parameter name="enable_ports_adaptation" value="0" />
+  <parameter name="enable_ports_pipe_g3_analog" value="0" />
+  <parameter name="enable_ports_pipe_hclk" value="0" />
+  <parameter name="enable_ports_pipe_rx_elecidle" value="0" />
+  <parameter name="enable_ports_pipe_sw" value="0" />
+  <parameter name="enable_ports_rx_manual_cdr_mode" value="0" />
+  <parameter name="enable_ports_rx_manual_ppm" value="0" />
+  <parameter name="enable_ports_rx_prbs" value="1" />
+  <parameter name="enable_simple_interface" value="1" />
+  <parameter name="enable_skp_ports" value="0" />
+  <parameter name="enable_split_interface" value="0" />
+  <parameter name="enable_transparent_pcs" value="0" />
+  <parameter name="enable_upi_pipeline_options" value="0" />
+  <parameter name="enh_low_latency_enable" value="0" />
+  <parameter name="enh_pcs_pma_width" value="32" />
+  <parameter name="enh_pld_pcs_width" value="66" />
+  <parameter name="enh_rx_64b66b_enable" value="1" />
+  <parameter name="enh_rx_bitslip_enable" value="0" />
+  <parameter name="enh_rx_blksync_enable" value="1" />
+  <parameter name="enh_rx_crcchk_enable" value="0" />
+  <parameter name="enh_rx_descram_enable" value="1" />
+  <parameter name="enh_rx_dispchk_enable" value="0" />
+  <parameter name="enh_rx_frmsync_enable" value="0" />
+  <parameter name="enh_rx_frmsync_mfrm_length" value="2048" />
+  <parameter name="enh_rx_krfec_err_mark_enable" value="0" />
+  <parameter name="enh_rx_krfec_err_mark_type" value="10G" />
+  <parameter name="enh_rx_polinv_enable" value="0" />
+  <parameter name="enh_rxfifo_align_del" value="0" />
+  <parameter name="enh_rxfifo_control_del" value="0" />
+  <parameter name="enh_rxfifo_mode" value="10GBase-R" />
+  <parameter name="enh_rxfifo_pempty" value="2" />
+  <parameter name="enh_rxfifo_pfull" value="23" />
+  <parameter name="enh_rxtxfifo_double_width" value="0" />
+  <parameter name="enh_tx_64b66b_enable" value="1" />
+  <parameter name="enh_tx_bitslip_enable" value="0" />
+  <parameter name="enh_tx_crcerr_enable" value="0" />
+  <parameter name="enh_tx_crcgen_enable" value="0" />
+  <parameter name="enh_tx_dispgen_enable" value="0" />
+  <parameter name="enh_tx_frmgen_burst_enable" value="0" />
+  <parameter name="enh_tx_frmgen_enable" value="0" />
+  <parameter name="enh_tx_frmgen_mfrm_length" value="2048" />
+  <parameter name="enh_tx_krfec_burst_err_enable" value="0" />
+  <parameter name="enh_tx_krfec_burst_err_len" value="1" />
+  <parameter name="enh_tx_polinv_enable" value="0" />
+  <parameter name="enh_tx_randomdispbit_enable" value="0" />
+  <parameter name="enh_tx_scram_enable" value="1" />
+  <parameter name="enh_tx_scram_seed" value="288230376151711743" />
+  <parameter name="enh_tx_sh_err" value="0" />
+  <parameter name="enh_txfifo_mode" value="Phase compensation" />
+  <parameter name="enh_txfifo_pempty" value="2" />
+  <parameter name="enh_txfifo_pfull" value="11" />
+  <parameter name="generate_add_hdl_instance_example" value="0" />
+  <parameter name="generate_docs" value="1" />
+  <parameter name="message_level" value="error" />
+  <parameter name="number_physical_bonding_clocks" value="1" />
+  <parameter name="pcie_rate_match" value="Bypass" />
+  <parameter name="pcs_direct_width" value="8" />
+  <parameter name="pcs_tx_delay1_ctrl" value="delay1_path0" />
+  <parameter name="pcs_tx_delay1_data_sel" value="one_ff_delay" />
+  <parameter name="pcs_tx_delay2_ctrl" value="delay2_path0" />
+  <parameter name="pll_select" value="0" />
+  <parameter name="plls" value="1" />
+  <parameter name="pma_mode" value="basic" />
+  <parameter name="protocol_mode" value="teng_baser_mode" />
+  <parameter name="rcfg_enable" value="0" />
+  <parameter name="rcfg_enable_avmm_busy_port" value="0" />
+  <parameter name="rcfg_file_prefix">altera_xcvr_native_a10</parameter>
+  <parameter name="rcfg_h_file_enable" value="0" />
+  <parameter name="rcfg_iface_enable" value="0" />
+  <parameter name="rcfg_jtag_enable" value="0" />
+  <parameter name="rcfg_mif_file_enable" value="0" />
+  <parameter name="rcfg_multi_enable" value="0" />
+  <parameter name="rcfg_profile_cnt" value="2" />
+  <parameter name="rcfg_profile_data0" value="" />
+  <parameter name="rcfg_profile_data1" value="" />
+  <parameter name="rcfg_profile_data2" value="" />
+  <parameter name="rcfg_profile_data3" value="" />
+  <parameter name="rcfg_profile_data4" value="" />
+  <parameter name="rcfg_profile_data5" value="" />
+  <parameter name="rcfg_profile_data6" value="" />
+  <parameter name="rcfg_profile_data7" value="" />
+  <parameter name="rcfg_profile_select" value="1" />
+  <parameter name="rcfg_reduced_files_enable" value="0" />
+  <parameter name="rcfg_separate_avmm_busy" value="0" />
+  <parameter name="rcfg_shared" value="0" />
+  <parameter name="rcfg_sv_file_enable" value="0" />
+  <parameter name="rx_pma_ctle_adaptation_mode" value="manual" />
+  <parameter name="rx_pma_dfe_adaptation_mode" value="disabled" />
+  <parameter name="rx_pma_dfe_fixed_taps" value="3" />
+  <parameter name="rx_pma_div_clkout_divider" value="0" />
+  <parameter name="rx_ppm_detect_threshold" value="1000" />
+  <parameter name="set_capability_reg_enable" value="0" />
+  <parameter name="set_cdr_refclk_freq" value="644.531250" />
+  <parameter name="set_csr_soft_logic_enable" value="0" />
+  <parameter name="set_data_rate" value="10312.5" />
+  <parameter name="set_disconnect_analog_resets" value="0" />
+  <parameter name="set_embedded_debug_enable" value="0" />
+  <parameter name="set_enable_calibration" value="0" />
+  <parameter name="set_hip_cal_en" value="0" />
+  <parameter name="set_odi_soft_logic_enable" value="0" />
+  <parameter name="set_pcs_bonding_master" value="Auto" />
+  <parameter name="set_prbs_soft_logic_enable" value="0" />
+  <parameter name="set_rcfg_emb_strm_enable" value="0" />
+  <parameter name="set_user_identifier" value="0" />
+  <parameter name="sim_reduced_counters" value="false" />
+  <parameter name="std_data_mask_count_multi" value="0" />
+  <parameter name="std_low_latency_bypass_enable" value="0" />
+  <parameter name="std_pcs_pma_width" value="10" />
+  <parameter name="std_rx_8b10b_enable" value="0" />
+  <parameter name="std_rx_bitrev_enable" value="0" />
+  <parameter name="std_rx_byte_deser_mode" value="Disabled" />
+  <parameter name="std_rx_byterev_enable" value="0" />
+  <parameter name="std_rx_pcfifo_mode" value="low_latency" />
+  <parameter name="std_rx_polinv_enable" value="0" />
+  <parameter name="std_rx_rmfifo_mode" value="disabled" />
+  <parameter name="std_rx_rmfifo_pattern_n" value="0" />
+  <parameter name="std_rx_rmfifo_pattern_p" value="0" />
+  <parameter name="std_rx_word_aligner_fast_sync_status_enable" value="0" />
+  <parameter name="std_rx_word_aligner_mode" value="bitslip" />
+  <parameter name="std_rx_word_aligner_pattern" value="0" />
+  <parameter name="std_rx_word_aligner_pattern_len" value="7" />
+  <parameter name="std_rx_word_aligner_renumber" value="3" />
+  <parameter name="std_rx_word_aligner_rgnumber" value="3" />
+  <parameter name="std_rx_word_aligner_rknumber" value="3" />
+  <parameter name="std_rx_word_aligner_rvnumber" value="0" />
+  <parameter name="std_tx_8b10b_disp_ctrl_enable" value="0" />
+  <parameter name="std_tx_8b10b_enable" value="0" />
+  <parameter name="std_tx_bitrev_enable" value="0" />
+  <parameter name="std_tx_bitslip_enable" value="0" />
+  <parameter name="std_tx_byte_ser_mode" value="Disabled" />
+  <parameter name="std_tx_byterev_enable" value="0" />
+  <parameter name="std_tx_pcfifo_mode" value="low_latency" />
+  <parameter name="std_tx_polinv_enable" value="0" />
+  <parameter name="support_mode" value="user_mode" />
+  <parameter name="tx_pma_clk_div" value="1" />
+  <parameter name="tx_pma_div_clkout_divider" value="33" />
+  <parameter name="validation_rule_select" value="" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_12/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_12/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..e3603311ebdf462074c795637f193835cc925a10
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_12/compile_ip.tcl
@@ -0,0 +1,35 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_phy_10gbase_r_12/sim"
+
+    
+  vcom         "$IP_DIR/ip_arria10_e2sg_phy_10gbase_r_12.vhd"   
diff --git a/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_12/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_12/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..3567d01df643b48e8f8ab8162a1f5fcb02c8554c
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_12/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_phy_10gbase_r_12
+hdl_library_clause_name = ip_arria10_e2sg_phy_10gbase_r_12_altera_xcvr_native_a10_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_native_a10_194
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_12/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_phy_10gbase_r_12/ip_arria10_e2sg_phy_10gbase_r_12.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_phy_10gbase_r_12.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_12/ip_arria10_e2sg_phy_10gbase_r_12.qsys b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_12/ip_arria10_e2sg_phy_10gbase_r_12.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..86f7cea5e91563f3508c9405f6c9c61a95b48a45
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_12/ip_arria10_e2sg_phy_10gbase_r_12.qsys
@@ -0,0 +1,627 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_phy_10gbase_r_12">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element xcvr_native_a10_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="reconfig_avmm"
+   internal="xcvr_native_a10_0.reconfig_avmm"
+   type="conduit"
+   dir="end">
+  <port name="reconfig_address" internal="reconfig_address" />
+  <port name="reconfig_read" internal="reconfig_read" />
+  <port name="reconfig_readdata" internal="reconfig_readdata" />
+  <port name="reconfig_waitrequest" internal="reconfig_waitrequest" />
+  <port name="reconfig_write" internal="reconfig_write" />
+  <port name="reconfig_writedata" internal="reconfig_writedata" />
+ </interface>
+ <interface
+   name="reconfig_clk"
+   internal="xcvr_native_a10_0.reconfig_clk"
+   type="conduit"
+   dir="end">
+  <port name="reconfig_clk" internal="reconfig_clk" />
+ </interface>
+ <interface
+   name="reconfig_reset"
+   internal="xcvr_native_a10_0.reconfig_reset"
+   type="conduit"
+   dir="end">
+  <port name="reconfig_reset" internal="reconfig_reset" />
+ </interface>
+ <interface
+   name="rx_analogreset"
+   internal="xcvr_native_a10_0.rx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_analogreset" internal="rx_analogreset" />
+ </interface>
+ <interface
+   name="rx_cal_busy"
+   internal="xcvr_native_a10_0.rx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="rx_cal_busy" internal="rx_cal_busy" />
+ </interface>
+ <interface
+   name="rx_cdr_refclk0"
+   internal="xcvr_native_a10_0.rx_cdr_refclk0"
+   type="conduit"
+   dir="end">
+  <port name="rx_cdr_refclk0" internal="rx_cdr_refclk0" />
+ </interface>
+ <interface
+   name="rx_clkout"
+   internal="xcvr_native_a10_0.rx_clkout"
+   type="conduit"
+   dir="end">
+  <port name="rx_clkout" internal="rx_clkout" />
+ </interface>
+ <interface
+   name="rx_control"
+   internal="xcvr_native_a10_0.rx_control"
+   type="conduit"
+   dir="end">
+  <port name="rx_control" internal="rx_control" />
+ </interface>
+ <interface
+   name="rx_coreclkin"
+   internal="xcvr_native_a10_0.rx_coreclkin"
+   type="conduit"
+   dir="end">
+  <port name="rx_coreclkin" internal="rx_coreclkin" />
+ </interface>
+ <interface
+   name="rx_digitalreset"
+   internal="xcvr_native_a10_0.rx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_digitalreset" internal="rx_digitalreset" />
+ </interface>
+ <interface
+   name="rx_enh_blk_lock"
+   internal="xcvr_native_a10_0.rx_enh_blk_lock"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_blk_lock" internal="rx_enh_blk_lock" />
+ </interface>
+ <interface
+   name="rx_enh_data_valid"
+   internal="xcvr_native_a10_0.rx_enh_data_valid"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_data_valid" internal="rx_enh_data_valid" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_del"
+   internal="xcvr_native_a10_0.rx_enh_fifo_del"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_del" internal="rx_enh_fifo_del" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_empty"
+   internal="xcvr_native_a10_0.rx_enh_fifo_empty"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_empty" internal="rx_enh_fifo_empty" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_full"
+   internal="xcvr_native_a10_0.rx_enh_fifo_full"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_full" internal="rx_enh_fifo_full" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_insert"
+   internal="xcvr_native_a10_0.rx_enh_fifo_insert"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_insert" internal="rx_enh_fifo_insert" />
+ </interface>
+ <interface
+   name="rx_enh_highber"
+   internal="xcvr_native_a10_0.rx_enh_highber"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_highber" internal="rx_enh_highber" />
+ </interface>
+ <interface
+   name="rx_is_lockedtodata"
+   internal="xcvr_native_a10_0.rx_is_lockedtodata"
+   type="conduit"
+   dir="end">
+  <port name="rx_is_lockedtodata" internal="rx_is_lockedtodata" />
+ </interface>
+ <interface
+   name="rx_is_lockedtoref"
+   internal="xcvr_native_a10_0.rx_is_lockedtoref"
+   type="conduit"
+   dir="end">
+  <port name="rx_is_lockedtoref" internal="rx_is_lockedtoref" />
+ </interface>
+ <interface
+   name="rx_parallel_data"
+   internal="xcvr_native_a10_0.rx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="rx_parallel_data" internal="rx_parallel_data" />
+ </interface>
+ <interface
+   name="rx_prbs_done"
+   internal="xcvr_native_a10_0.rx_prbs_done"
+   type="conduit"
+   dir="end">
+  <port name="rx_prbs_done" internal="rx_prbs_done" />
+ </interface>
+ <interface
+   name="rx_prbs_err"
+   internal="xcvr_native_a10_0.rx_prbs_err"
+   type="conduit"
+   dir="end">
+  <port name="rx_prbs_err" internal="rx_prbs_err" />
+ </interface>
+ <interface
+   name="rx_prbs_err_clr"
+   internal="xcvr_native_a10_0.rx_prbs_err_clr"
+   type="conduit"
+   dir="end">
+  <port name="rx_prbs_err_clr" internal="rx_prbs_err_clr" />
+ </interface>
+ <interface
+   name="rx_serial_data"
+   internal="xcvr_native_a10_0.rx_serial_data"
+   type="conduit"
+   dir="end">
+  <port name="rx_serial_data" internal="rx_serial_data" />
+ </interface>
+ <interface
+   name="rx_seriallpbken"
+   internal="xcvr_native_a10_0.rx_seriallpbken"
+   type="conduit"
+   dir="end">
+  <port name="rx_seriallpbken" internal="rx_seriallpbken" />
+ </interface>
+ <interface
+   name="tx_analogreset"
+   internal="xcvr_native_a10_0.tx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_analogreset" internal="tx_analogreset" />
+ </interface>
+ <interface
+   name="tx_cal_busy"
+   internal="xcvr_native_a10_0.tx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="tx_cal_busy" internal="tx_cal_busy" />
+ </interface>
+ <interface
+   name="tx_clkout"
+   internal="xcvr_native_a10_0.tx_clkout"
+   type="conduit"
+   dir="end">
+  <port name="tx_clkout" internal="tx_clkout" />
+ </interface>
+ <interface
+   name="tx_control"
+   internal="xcvr_native_a10_0.tx_control"
+   type="conduit"
+   dir="end">
+  <port name="tx_control" internal="tx_control" />
+ </interface>
+ <interface
+   name="tx_coreclkin"
+   internal="xcvr_native_a10_0.tx_coreclkin"
+   type="conduit"
+   dir="end">
+  <port name="tx_coreclkin" internal="tx_coreclkin" />
+ </interface>
+ <interface
+   name="tx_digitalreset"
+   internal="xcvr_native_a10_0.tx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_digitalreset" internal="tx_digitalreset" />
+ </interface>
+ <interface
+   name="tx_enh_data_valid"
+   internal="xcvr_native_a10_0.tx_enh_data_valid"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_data_valid" internal="tx_enh_data_valid" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_empty"
+   internal="xcvr_native_a10_0.tx_enh_fifo_empty"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_empty" internal="tx_enh_fifo_empty" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_full"
+   internal="xcvr_native_a10_0.tx_enh_fifo_full"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_full" internal="tx_enh_fifo_full" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_pempty"
+   internal="xcvr_native_a10_0.tx_enh_fifo_pempty"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_pempty" internal="tx_enh_fifo_pempty" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_pfull"
+   internal="xcvr_native_a10_0.tx_enh_fifo_pfull"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_pfull" internal="tx_enh_fifo_pfull" />
+ </interface>
+ <interface
+   name="tx_err_ins"
+   internal="xcvr_native_a10_0.tx_err_ins"
+   type="conduit"
+   dir="end">
+  <port name="tx_err_ins" internal="tx_err_ins" />
+ </interface>
+ <interface
+   name="tx_parallel_data"
+   internal="xcvr_native_a10_0.tx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="tx_parallel_data" internal="tx_parallel_data" />
+ </interface>
+ <interface name="tx_pma_clkout" internal="xcvr_native_a10_0.tx_pma_clkout" />
+ <interface
+   name="tx_pma_div_clkout"
+   internal="xcvr_native_a10_0.tx_pma_div_clkout" />
+ <interface
+   name="tx_serial_clk0"
+   internal="xcvr_native_a10_0.tx_serial_clk0"
+   type="conduit"
+   dir="end">
+  <port name="tx_serial_clk0" internal="tx_serial_clk0" />
+ </interface>
+ <interface
+   name="tx_serial_data"
+   internal="xcvr_native_a10_0.tx_serial_data"
+   type="conduit"
+   dir="end">
+  <port name="tx_serial_data" internal="tx_serial_data" />
+ </interface>
+ <interface
+   name="unused_rx_control"
+   internal="xcvr_native_a10_0.unused_rx_control"
+   type="conduit"
+   dir="end">
+  <port name="unused_rx_control" internal="unused_rx_control" />
+ </interface>
+ <interface
+   name="unused_rx_parallel_data"
+   internal="xcvr_native_a10_0.unused_rx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="unused_rx_parallel_data" internal="unused_rx_parallel_data" />
+ </interface>
+ <interface
+   name="unused_tx_control"
+   internal="xcvr_native_a10_0.unused_tx_control"
+   type="conduit"
+   dir="end">
+  <port name="unused_tx_control" internal="unused_tx_control" />
+ </interface>
+ <interface
+   name="unused_tx_parallel_data"
+   internal="xcvr_native_a10_0.unused_tx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="unused_tx_parallel_data" internal="unused_tx_parallel_data" />
+ </interface>
+ <module
+   name="xcvr_native_a10_0"
+   kind="altera_xcvr_native_a10"
+   version="19.1"
+   enabled="1"
+   autoexport="1">
+  <parameter name="anlg_enable_rx_default_ovr" value="0" />
+  <parameter name="anlg_enable_tx_default_ovr" value="0" />
+  <parameter name="anlg_link" value="sr" />
+  <parameter name="anlg_rx_adp_ctle_acgain_4s">radp_ctle_acgain_4s_1</parameter>
+  <parameter name="anlg_rx_adp_ctle_eqz_1s_sel">radp_ctle_eqz_1s_sel_3</parameter>
+  <parameter name="anlg_rx_adp_dfe_fxtap1" value="radp_dfe_fxtap1_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap10" value="radp_dfe_fxtap10_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap11" value="radp_dfe_fxtap11_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap2" value="radp_dfe_fxtap2_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap3" value="radp_dfe_fxtap3_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap4" value="radp_dfe_fxtap4_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap5" value="radp_dfe_fxtap5_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap6" value="radp_dfe_fxtap6_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap7" value="radp_dfe_fxtap7_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap8" value="radp_dfe_fxtap8_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap9" value="radp_dfe_fxtap9_0" />
+  <parameter name="anlg_rx_adp_vga_sel" value="radp_vga_sel_2" />
+  <parameter name="anlg_rx_eq_dc_gain_trim" value="stg2_gain7" />
+  <parameter name="anlg_rx_one_stage_enable" value="s1_mode" />
+  <parameter name="anlg_rx_term_sel" value="r_r1" />
+  <parameter name="anlg_tx_analog_mode" value="user_custom" />
+  <parameter name="anlg_tx_compensation_en" value="enable" />
+  <parameter name="anlg_tx_pre_emp_sign_1st_post_tap" value="fir_post_1t_neg" />
+  <parameter name="anlg_tx_pre_emp_sign_2nd_post_tap" value="fir_post_2t_neg" />
+  <parameter name="anlg_tx_pre_emp_sign_pre_tap_1t" value="fir_pre_1t_neg" />
+  <parameter name="anlg_tx_pre_emp_sign_pre_tap_2t" value="fir_pre_2t_neg" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_1st_post_tap" value="0" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_2nd_post_tap" value="0" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_pre_tap_1t" value="0" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_pre_tap_2t" value="0" />
+  <parameter name="anlg_tx_slew_rate_ctrl" value="slew_r7" />
+  <parameter name="anlg_tx_term_sel" value="r_r1" />
+  <parameter name="anlg_tx_vod_output_swing_ctrl" value="0" />
+  <parameter name="anlg_voltage" value="1_1V" />
+  <parameter name="base_device" value="NIGHTFURY5" />
+  <parameter name="bonded_mode" value="not_bonded" />
+  <parameter name="cdr_refclk_cnt" value="1" />
+  <parameter name="cdr_refclk_select" value="0" />
+  <parameter name="channels" value="12" />
+  <parameter name="design_environment" value="NATIVE" />
+  <parameter name="device" value="10AX115U3F45E2SG" />
+  <parameter name="device_family" value="Arria 10" />
+  <parameter name="disable_continuous_dfe" value="false" />
+  <parameter name="duplex_mode" value="duplex" />
+  <parameter name="enable_analog_settings" value="0" />
+  <parameter name="enable_hard_reset" value="0" />
+  <parameter name="enable_hip" value="0" />
+  <parameter name="enable_parallel_loopback" value="0" />
+  <parameter name="enable_pcie_data_mask_option" value="0" />
+  <parameter name="enable_pcie_dfe_ip" value="false" />
+  <parameter name="enable_port_krfec_rx_enh_frame" value="0" />
+  <parameter name="enable_port_krfec_rx_enh_frame_diag_status" value="0" />
+  <parameter name="enable_port_krfec_tx_enh_frame" value="0" />
+  <parameter name="enable_port_pipe_rx_polarity" value="0" />
+  <parameter name="enable_port_rx_analog_reset_ack" value="0" />
+  <parameter name="enable_port_rx_enh_bitslip" value="0" />
+  <parameter name="enable_port_rx_enh_blk_lock" value="1" />
+  <parameter name="enable_port_rx_enh_clr_errblk_count" value="0" />
+  <parameter name="enable_port_rx_enh_clr_errblk_count_c10" value="0" />
+  <parameter name="enable_port_rx_enh_crc32_err" value="0" />
+  <parameter name="enable_port_rx_enh_data_valid" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_align_clr" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_align_val" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_cnt" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_del" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_empty" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_full" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_insert" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_pempty" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_pfull" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_rd_en" value="0" />
+  <parameter name="enable_port_rx_enh_frame" value="0" />
+  <parameter name="enable_port_rx_enh_frame_diag_status" value="0" />
+  <parameter name="enable_port_rx_enh_frame_lock" value="0" />
+  <parameter name="enable_port_rx_enh_highber" value="1" />
+  <parameter name="enable_port_rx_enh_highber_clr_cnt" value="0" />
+  <parameter name="enable_port_rx_is_lockedtodata" value="1" />
+  <parameter name="enable_port_rx_is_lockedtoref" value="1" />
+  <parameter name="enable_port_rx_pma_clkout" value="0" />
+  <parameter name="enable_port_rx_pma_clkslip" value="0" />
+  <parameter name="enable_port_rx_pma_div_clkout" value="0" />
+  <parameter name="enable_port_rx_pma_iqtxrx_clkout" value="0" />
+  <parameter name="enable_port_rx_pma_qpipulldn" value="0" />
+  <parameter name="enable_port_rx_polinv" value="0" />
+  <parameter name="enable_port_rx_seriallpbken" value="1" />
+  <parameter name="enable_port_rx_seriallpbken_tx" value="1" />
+  <parameter name="enable_port_rx_signaldetect" value="0" />
+  <parameter name="enable_port_rx_std_bitrev_ena" value="0" />
+  <parameter name="enable_port_rx_std_bitslip" value="0" />
+  <parameter name="enable_port_rx_std_bitslipboundarysel" value="0" />
+  <parameter name="enable_port_rx_std_byterev_ena" value="0" />
+  <parameter name="enable_port_rx_std_pcfifo_empty" value="0" />
+  <parameter name="enable_port_rx_std_pcfifo_full" value="0" />
+  <parameter name="enable_port_rx_std_rmfifo_empty" value="0" />
+  <parameter name="enable_port_rx_std_rmfifo_full" value="0" />
+  <parameter name="enable_port_rx_std_signaldetect" value="0" />
+  <parameter name="enable_port_rx_std_wa_a1a2size" value="0" />
+  <parameter name="enable_port_rx_std_wa_patternalign" value="0" />
+  <parameter name="enable_port_tx_analog_reset_ack" value="0" />
+  <parameter name="enable_port_tx_enh_bitslip" value="0" />
+  <parameter name="enable_port_tx_enh_fifo_cnt" value="0" />
+  <parameter name="enable_port_tx_enh_fifo_empty" value="1" />
+  <parameter name="enable_port_tx_enh_fifo_full" value="1" />
+  <parameter name="enable_port_tx_enh_fifo_pempty" value="1" />
+  <parameter name="enable_port_tx_enh_fifo_pfull" value="1" />
+  <parameter name="enable_port_tx_enh_frame" value="0" />
+  <parameter name="enable_port_tx_enh_frame_burst_en" value="0" />
+  <parameter name="enable_port_tx_enh_frame_diag_status" value="0" />
+  <parameter name="enable_port_tx_pma_clkout" value="0" />
+  <parameter name="enable_port_tx_pma_div_clkout" value="0" />
+  <parameter name="enable_port_tx_pma_elecidle" value="0" />
+  <parameter name="enable_port_tx_pma_iqtxrx_clkout" value="0" />
+  <parameter name="enable_port_tx_pma_qpipulldn" value="0" />
+  <parameter name="enable_port_tx_pma_qpipullup" value="0" />
+  <parameter name="enable_port_tx_pma_rxfound" value="0" />
+  <parameter name="enable_port_tx_pma_txdetectrx" value="0" />
+  <parameter name="enable_port_tx_polinv" value="0" />
+  <parameter name="enable_port_tx_std_bitslipboundarysel" value="0" />
+  <parameter name="enable_port_tx_std_pcfifo_empty" value="0" />
+  <parameter name="enable_port_tx_std_pcfifo_full" value="0" />
+  <parameter name="enable_ports_adaptation" value="0" />
+  <parameter name="enable_ports_pipe_g3_analog" value="0" />
+  <parameter name="enable_ports_pipe_hclk" value="0" />
+  <parameter name="enable_ports_pipe_rx_elecidle" value="0" />
+  <parameter name="enable_ports_pipe_sw" value="0" />
+  <parameter name="enable_ports_rx_manual_cdr_mode" value="0" />
+  <parameter name="enable_ports_rx_manual_ppm" value="0" />
+  <parameter name="enable_ports_rx_prbs" value="1" />
+  <parameter name="enable_simple_interface" value="1" />
+  <parameter name="enable_skp_ports" value="0" />
+  <parameter name="enable_split_interface" value="0" />
+  <parameter name="enable_transparent_pcs" value="0" />
+  <parameter name="enable_upi_pipeline_options" value="0" />
+  <parameter name="enh_low_latency_enable" value="0" />
+  <parameter name="enh_pcs_pma_width" value="32" />
+  <parameter name="enh_pld_pcs_width" value="66" />
+  <parameter name="enh_rx_64b66b_enable" value="1" />
+  <parameter name="enh_rx_bitslip_enable" value="0" />
+  <parameter name="enh_rx_blksync_enable" value="1" />
+  <parameter name="enh_rx_crcchk_enable" value="0" />
+  <parameter name="enh_rx_descram_enable" value="1" />
+  <parameter name="enh_rx_dispchk_enable" value="0" />
+  <parameter name="enh_rx_frmsync_enable" value="0" />
+  <parameter name="enh_rx_frmsync_mfrm_length" value="2048" />
+  <parameter name="enh_rx_krfec_err_mark_enable" value="0" />
+  <parameter name="enh_rx_krfec_err_mark_type" value="10G" />
+  <parameter name="enh_rx_polinv_enable" value="0" />
+  <parameter name="enh_rxfifo_align_del" value="0" />
+  <parameter name="enh_rxfifo_control_del" value="0" />
+  <parameter name="enh_rxfifo_mode" value="10GBase-R" />
+  <parameter name="enh_rxfifo_pempty" value="2" />
+  <parameter name="enh_rxfifo_pfull" value="23" />
+  <parameter name="enh_rxtxfifo_double_width" value="0" />
+  <parameter name="enh_tx_64b66b_enable" value="1" />
+  <parameter name="enh_tx_bitslip_enable" value="0" />
+  <parameter name="enh_tx_crcerr_enable" value="0" />
+  <parameter name="enh_tx_crcgen_enable" value="0" />
+  <parameter name="enh_tx_dispgen_enable" value="0" />
+  <parameter name="enh_tx_frmgen_burst_enable" value="0" />
+  <parameter name="enh_tx_frmgen_enable" value="0" />
+  <parameter name="enh_tx_frmgen_mfrm_length" value="2048" />
+  <parameter name="enh_tx_krfec_burst_err_enable" value="0" />
+  <parameter name="enh_tx_krfec_burst_err_len" value="1" />
+  <parameter name="enh_tx_polinv_enable" value="0" />
+  <parameter name="enh_tx_randomdispbit_enable" value="0" />
+  <parameter name="enh_tx_scram_enable" value="1" />
+  <parameter name="enh_tx_scram_seed" value="288230376151711743" />
+  <parameter name="enh_tx_sh_err" value="0" />
+  <parameter name="enh_txfifo_mode" value="Phase compensation" />
+  <parameter name="enh_txfifo_pempty" value="2" />
+  <parameter name="enh_txfifo_pfull" value="11" />
+  <parameter name="generate_add_hdl_instance_example" value="0" />
+  <parameter name="generate_docs" value="1" />
+  <parameter name="message_level" value="error" />
+  <parameter name="number_physical_bonding_clocks" value="1" />
+  <parameter name="pcie_rate_match" value="Bypass" />
+  <parameter name="pcs_direct_width" value="8" />
+  <parameter name="pcs_tx_delay1_ctrl" value="delay1_path0" />
+  <parameter name="pcs_tx_delay1_data_sel" value="one_ff_delay" />
+  <parameter name="pcs_tx_delay2_ctrl" value="delay2_path0" />
+  <parameter name="pll_select" value="0" />
+  <parameter name="plls" value="1" />
+  <parameter name="pma_mode" value="basic" />
+  <parameter name="protocol_mode" value="teng_baser_mode" />
+  <parameter name="rcfg_enable" value="1" />
+  <parameter name="rcfg_enable_avmm_busy_port" value="0" />
+  <parameter name="rcfg_file_prefix">altera_xcvr_native_a10</parameter>
+  <parameter name="rcfg_h_file_enable" value="1" />
+  <parameter name="rcfg_iface_enable" value="0" />
+  <parameter name="rcfg_jtag_enable" value="1" />
+  <parameter name="rcfg_mif_file_enable" value="1" />
+  <parameter name="rcfg_multi_enable" value="0" />
+  <parameter name="rcfg_profile_cnt" value="2" />
+  <parameter name="rcfg_profile_data0" value="" />
+  <parameter name="rcfg_profile_data1" value="" />
+  <parameter name="rcfg_profile_data2" value="" />
+  <parameter name="rcfg_profile_data3" value="" />
+  <parameter name="rcfg_profile_data4" value="" />
+  <parameter name="rcfg_profile_data5" value="" />
+  <parameter name="rcfg_profile_data6" value="" />
+  <parameter name="rcfg_profile_data7" value="" />
+  <parameter name="rcfg_profile_select" value="1" />
+  <parameter name="rcfg_reduced_files_enable" value="0" />
+  <parameter name="rcfg_separate_avmm_busy" value="0" />
+  <parameter name="rcfg_shared" value="1" />
+  <parameter name="rcfg_sv_file_enable" value="1" />
+  <parameter name="rx_pma_ctle_adaptation_mode" value="manual" />
+  <parameter name="rx_pma_dfe_adaptation_mode" value="disabled" />
+  <parameter name="rx_pma_dfe_fixed_taps" value="3" />
+  <parameter name="rx_pma_div_clkout_divider" value="0" />
+  <parameter name="rx_ppm_detect_threshold" value="1000" />
+  <parameter name="set_capability_reg_enable" value="1" />
+  <parameter name="set_cdr_refclk_freq" value="644.531250" />
+  <parameter name="set_csr_soft_logic_enable" value="1" />
+  <parameter name="set_data_rate" value="10312.5" />
+  <parameter name="set_disconnect_analog_resets" value="0" />
+  <parameter name="set_embedded_debug_enable" value="0" />
+  <parameter name="set_enable_calibration" value="0" />
+  <parameter name="set_hip_cal_en" value="0" />
+  <parameter name="set_odi_soft_logic_enable" value="0" />
+  <parameter name="set_pcs_bonding_master" value="Auto" />
+  <parameter name="set_prbs_soft_logic_enable" value="1" />
+  <parameter name="set_rcfg_emb_strm_enable" value="0" />
+  <parameter name="set_user_identifier" value="0" />
+  <parameter name="sim_reduced_counters" value="false" />
+  <parameter name="std_data_mask_count_multi" value="0" />
+  <parameter name="std_low_latency_bypass_enable" value="0" />
+  <parameter name="std_pcs_pma_width" value="10" />
+  <parameter name="std_rx_8b10b_enable" value="0" />
+  <parameter name="std_rx_bitrev_enable" value="0" />
+  <parameter name="std_rx_byte_deser_mode" value="Disabled" />
+  <parameter name="std_rx_byterev_enable" value="0" />
+  <parameter name="std_rx_pcfifo_mode" value="low_latency" />
+  <parameter name="std_rx_polinv_enable" value="0" />
+  <parameter name="std_rx_rmfifo_mode" value="disabled" />
+  <parameter name="std_rx_rmfifo_pattern_n" value="0" />
+  <parameter name="std_rx_rmfifo_pattern_p" value="0" />
+  <parameter name="std_rx_word_aligner_fast_sync_status_enable" value="0" />
+  <parameter name="std_rx_word_aligner_mode" value="bitslip" />
+  <parameter name="std_rx_word_aligner_pattern" value="0" />
+  <parameter name="std_rx_word_aligner_pattern_len" value="7" />
+  <parameter name="std_rx_word_aligner_renumber" value="3" />
+  <parameter name="std_rx_word_aligner_rgnumber" value="3" />
+  <parameter name="std_rx_word_aligner_rknumber" value="3" />
+  <parameter name="std_rx_word_aligner_rvnumber" value="0" />
+  <parameter name="std_tx_8b10b_disp_ctrl_enable" value="0" />
+  <parameter name="std_tx_8b10b_enable" value="0" />
+  <parameter name="std_tx_bitrev_enable" value="0" />
+  <parameter name="std_tx_bitslip_enable" value="0" />
+  <parameter name="std_tx_byte_ser_mode" value="Disabled" />
+  <parameter name="std_tx_byterev_enable" value="0" />
+  <parameter name="std_tx_pcfifo_mode" value="low_latency" />
+  <parameter name="std_tx_polinv_enable" value="0" />
+  <parameter name="support_mode" value="user_mode" />
+  <parameter name="tx_pma_clk_div" value="1" />
+  <parameter name="tx_pma_div_clkout_divider" value="33" />
+  <parameter name="validation_rule_select" value="" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_24/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_24/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..c1b9278620d266e5a3926578eec8685e5521ae37
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_24/compile_ip.tcl
@@ -0,0 +1,35 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_phy_10gbase_r_24/sim"
+
+
+  vcom         "$IP_DIR/ip_arria10_e2sg_phy_10gbase_r_24.vhd"         
diff --git a/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_24/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_24/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..aa36a182974bf125e05ed35c10a4589ff647fbec
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_24/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_phy_10gbase_r_24
+hdl_library_clause_name = ip_arria10_e2sg_phy_10gbase_r_24_altera_xcvr_native_a10_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_native_a10_194
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_24/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_phy_10gbase_r_24/ip_arria10_e2sg_phy_10gbase_r_24.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_phy_10gbase_r_24.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_24/ip_arria10_e2sg_phy_10gbase_r_24.qsys b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_24/ip_arria10_e2sg_phy_10gbase_r_24.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..e1de6c2958a8f20801ff66e1e4b64807168e4902
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_24/ip_arria10_e2sg_phy_10gbase_r_24.qsys
@@ -0,0 +1,627 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_phy_10gbase_r_24">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element xcvr_native_a10_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="reconfig_avmm"
+   internal="xcvr_native_a10_0.reconfig_avmm"
+   type="conduit"
+   dir="end">
+  <port name="reconfig_address" internal="reconfig_address" />
+  <port name="reconfig_read" internal="reconfig_read" />
+  <port name="reconfig_readdata" internal="reconfig_readdata" />
+  <port name="reconfig_waitrequest" internal="reconfig_waitrequest" />
+  <port name="reconfig_write" internal="reconfig_write" />
+  <port name="reconfig_writedata" internal="reconfig_writedata" />
+ </interface>
+ <interface
+   name="reconfig_clk"
+   internal="xcvr_native_a10_0.reconfig_clk"
+   type="conduit"
+   dir="end">
+  <port name="reconfig_clk" internal="reconfig_clk" />
+ </interface>
+ <interface
+   name="reconfig_reset"
+   internal="xcvr_native_a10_0.reconfig_reset"
+   type="conduit"
+   dir="end">
+  <port name="reconfig_reset" internal="reconfig_reset" />
+ </interface>
+ <interface
+   name="rx_analogreset"
+   internal="xcvr_native_a10_0.rx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_analogreset" internal="rx_analogreset" />
+ </interface>
+ <interface
+   name="rx_cal_busy"
+   internal="xcvr_native_a10_0.rx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="rx_cal_busy" internal="rx_cal_busy" />
+ </interface>
+ <interface
+   name="rx_cdr_refclk0"
+   internal="xcvr_native_a10_0.rx_cdr_refclk0"
+   type="conduit"
+   dir="end">
+  <port name="rx_cdr_refclk0" internal="rx_cdr_refclk0" />
+ </interface>
+ <interface
+   name="rx_clkout"
+   internal="xcvr_native_a10_0.rx_clkout"
+   type="conduit"
+   dir="end">
+  <port name="rx_clkout" internal="rx_clkout" />
+ </interface>
+ <interface
+   name="rx_control"
+   internal="xcvr_native_a10_0.rx_control"
+   type="conduit"
+   dir="end">
+  <port name="rx_control" internal="rx_control" />
+ </interface>
+ <interface
+   name="rx_coreclkin"
+   internal="xcvr_native_a10_0.rx_coreclkin"
+   type="conduit"
+   dir="end">
+  <port name="rx_coreclkin" internal="rx_coreclkin" />
+ </interface>
+ <interface
+   name="rx_digitalreset"
+   internal="xcvr_native_a10_0.rx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_digitalreset" internal="rx_digitalreset" />
+ </interface>
+ <interface
+   name="rx_enh_blk_lock"
+   internal="xcvr_native_a10_0.rx_enh_blk_lock"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_blk_lock" internal="rx_enh_blk_lock" />
+ </interface>
+ <interface
+   name="rx_enh_data_valid"
+   internal="xcvr_native_a10_0.rx_enh_data_valid"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_data_valid" internal="rx_enh_data_valid" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_del"
+   internal="xcvr_native_a10_0.rx_enh_fifo_del"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_del" internal="rx_enh_fifo_del" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_empty"
+   internal="xcvr_native_a10_0.rx_enh_fifo_empty"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_empty" internal="rx_enh_fifo_empty" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_full"
+   internal="xcvr_native_a10_0.rx_enh_fifo_full"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_full" internal="rx_enh_fifo_full" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_insert"
+   internal="xcvr_native_a10_0.rx_enh_fifo_insert"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_insert" internal="rx_enh_fifo_insert" />
+ </interface>
+ <interface
+   name="rx_enh_highber"
+   internal="xcvr_native_a10_0.rx_enh_highber"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_highber" internal="rx_enh_highber" />
+ </interface>
+ <interface
+   name="rx_is_lockedtodata"
+   internal="xcvr_native_a10_0.rx_is_lockedtodata"
+   type="conduit"
+   dir="end">
+  <port name="rx_is_lockedtodata" internal="rx_is_lockedtodata" />
+ </interface>
+ <interface
+   name="rx_is_lockedtoref"
+   internal="xcvr_native_a10_0.rx_is_lockedtoref"
+   type="conduit"
+   dir="end">
+  <port name="rx_is_lockedtoref" internal="rx_is_lockedtoref" />
+ </interface>
+ <interface
+   name="rx_parallel_data"
+   internal="xcvr_native_a10_0.rx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="rx_parallel_data" internal="rx_parallel_data" />
+ </interface>
+ <interface
+   name="rx_prbs_done"
+   internal="xcvr_native_a10_0.rx_prbs_done"
+   type="conduit"
+   dir="end">
+  <port name="rx_prbs_done" internal="rx_prbs_done" />
+ </interface>
+ <interface
+   name="rx_prbs_err"
+   internal="xcvr_native_a10_0.rx_prbs_err"
+   type="conduit"
+   dir="end">
+  <port name="rx_prbs_err" internal="rx_prbs_err" />
+ </interface>
+ <interface
+   name="rx_prbs_err_clr"
+   internal="xcvr_native_a10_0.rx_prbs_err_clr"
+   type="conduit"
+   dir="end">
+  <port name="rx_prbs_err_clr" internal="rx_prbs_err_clr" />
+ </interface>
+ <interface
+   name="rx_serial_data"
+   internal="xcvr_native_a10_0.rx_serial_data"
+   type="conduit"
+   dir="end">
+  <port name="rx_serial_data" internal="rx_serial_data" />
+ </interface>
+ <interface
+   name="rx_seriallpbken"
+   internal="xcvr_native_a10_0.rx_seriallpbken"
+   type="conduit"
+   dir="end">
+  <port name="rx_seriallpbken" internal="rx_seriallpbken" />
+ </interface>
+ <interface
+   name="tx_analogreset"
+   internal="xcvr_native_a10_0.tx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_analogreset" internal="tx_analogreset" />
+ </interface>
+ <interface
+   name="tx_cal_busy"
+   internal="xcvr_native_a10_0.tx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="tx_cal_busy" internal="tx_cal_busy" />
+ </interface>
+ <interface
+   name="tx_clkout"
+   internal="xcvr_native_a10_0.tx_clkout"
+   type="conduit"
+   dir="end">
+  <port name="tx_clkout" internal="tx_clkout" />
+ </interface>
+ <interface
+   name="tx_control"
+   internal="xcvr_native_a10_0.tx_control"
+   type="conduit"
+   dir="end">
+  <port name="tx_control" internal="tx_control" />
+ </interface>
+ <interface
+   name="tx_coreclkin"
+   internal="xcvr_native_a10_0.tx_coreclkin"
+   type="conduit"
+   dir="end">
+  <port name="tx_coreclkin" internal="tx_coreclkin" />
+ </interface>
+ <interface
+   name="tx_digitalreset"
+   internal="xcvr_native_a10_0.tx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_digitalreset" internal="tx_digitalreset" />
+ </interface>
+ <interface
+   name="tx_enh_data_valid"
+   internal="xcvr_native_a10_0.tx_enh_data_valid"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_data_valid" internal="tx_enh_data_valid" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_empty"
+   internal="xcvr_native_a10_0.tx_enh_fifo_empty"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_empty" internal="tx_enh_fifo_empty" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_full"
+   internal="xcvr_native_a10_0.tx_enh_fifo_full"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_full" internal="tx_enh_fifo_full" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_pempty"
+   internal="xcvr_native_a10_0.tx_enh_fifo_pempty"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_pempty" internal="tx_enh_fifo_pempty" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_pfull"
+   internal="xcvr_native_a10_0.tx_enh_fifo_pfull"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_pfull" internal="tx_enh_fifo_pfull" />
+ </interface>
+ <interface
+   name="tx_err_ins"
+   internal="xcvr_native_a10_0.tx_err_ins"
+   type="conduit"
+   dir="end">
+  <port name="tx_err_ins" internal="tx_err_ins" />
+ </interface>
+ <interface
+   name="tx_parallel_data"
+   internal="xcvr_native_a10_0.tx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="tx_parallel_data" internal="tx_parallel_data" />
+ </interface>
+ <interface name="tx_pma_clkout" internal="xcvr_native_a10_0.tx_pma_clkout" />
+ <interface
+   name="tx_pma_div_clkout"
+   internal="xcvr_native_a10_0.tx_pma_div_clkout" />
+ <interface
+   name="tx_serial_clk0"
+   internal="xcvr_native_a10_0.tx_serial_clk0"
+   type="conduit"
+   dir="end">
+  <port name="tx_serial_clk0" internal="tx_serial_clk0" />
+ </interface>
+ <interface
+   name="tx_serial_data"
+   internal="xcvr_native_a10_0.tx_serial_data"
+   type="conduit"
+   dir="end">
+  <port name="tx_serial_data" internal="tx_serial_data" />
+ </interface>
+ <interface
+   name="unused_rx_control"
+   internal="xcvr_native_a10_0.unused_rx_control"
+   type="conduit"
+   dir="end">
+  <port name="unused_rx_control" internal="unused_rx_control" />
+ </interface>
+ <interface
+   name="unused_rx_parallel_data"
+   internal="xcvr_native_a10_0.unused_rx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="unused_rx_parallel_data" internal="unused_rx_parallel_data" />
+ </interface>
+ <interface
+   name="unused_tx_control"
+   internal="xcvr_native_a10_0.unused_tx_control"
+   type="conduit"
+   dir="end">
+  <port name="unused_tx_control" internal="unused_tx_control" />
+ </interface>
+ <interface
+   name="unused_tx_parallel_data"
+   internal="xcvr_native_a10_0.unused_tx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="unused_tx_parallel_data" internal="unused_tx_parallel_data" />
+ </interface>
+ <module
+   name="xcvr_native_a10_0"
+   kind="altera_xcvr_native_a10"
+   version="19.1"
+   enabled="1"
+   autoexport="1">
+  <parameter name="anlg_enable_rx_default_ovr" value="0" />
+  <parameter name="anlg_enable_tx_default_ovr" value="0" />
+  <parameter name="anlg_link" value="sr" />
+  <parameter name="anlg_rx_adp_ctle_acgain_4s">radp_ctle_acgain_4s_1</parameter>
+  <parameter name="anlg_rx_adp_ctle_eqz_1s_sel">radp_ctle_eqz_1s_sel_3</parameter>
+  <parameter name="anlg_rx_adp_dfe_fxtap1" value="radp_dfe_fxtap1_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap10" value="radp_dfe_fxtap10_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap11" value="radp_dfe_fxtap11_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap2" value="radp_dfe_fxtap2_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap3" value="radp_dfe_fxtap3_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap4" value="radp_dfe_fxtap4_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap5" value="radp_dfe_fxtap5_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap6" value="radp_dfe_fxtap6_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap7" value="radp_dfe_fxtap7_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap8" value="radp_dfe_fxtap8_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap9" value="radp_dfe_fxtap9_0" />
+  <parameter name="anlg_rx_adp_vga_sel" value="radp_vga_sel_2" />
+  <parameter name="anlg_rx_eq_dc_gain_trim" value="stg2_gain7" />
+  <parameter name="anlg_rx_one_stage_enable" value="s1_mode" />
+  <parameter name="anlg_rx_term_sel" value="r_r1" />
+  <parameter name="anlg_tx_analog_mode" value="user_custom" />
+  <parameter name="anlg_tx_compensation_en" value="enable" />
+  <parameter name="anlg_tx_pre_emp_sign_1st_post_tap" value="fir_post_1t_neg" />
+  <parameter name="anlg_tx_pre_emp_sign_2nd_post_tap" value="fir_post_2t_neg" />
+  <parameter name="anlg_tx_pre_emp_sign_pre_tap_1t" value="fir_pre_1t_neg" />
+  <parameter name="anlg_tx_pre_emp_sign_pre_tap_2t" value="fir_pre_2t_neg" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_1st_post_tap" value="0" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_2nd_post_tap" value="0" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_pre_tap_1t" value="0" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_pre_tap_2t" value="0" />
+  <parameter name="anlg_tx_slew_rate_ctrl" value="slew_r7" />
+  <parameter name="anlg_tx_term_sel" value="r_r1" />
+  <parameter name="anlg_tx_vod_output_swing_ctrl" value="0" />
+  <parameter name="anlg_voltage" value="1_1V" />
+  <parameter name="base_device" value="NIGHTFURY5" />
+  <parameter name="bonded_mode" value="not_bonded" />
+  <parameter name="cdr_refclk_cnt" value="1" />
+  <parameter name="cdr_refclk_select" value="0" />
+  <parameter name="channels" value="24" />
+  <parameter name="design_environment" value="NATIVE" />
+  <parameter name="device" value="10AX115U3F45E2SG" />
+  <parameter name="device_family" value="Arria 10" />
+  <parameter name="disable_continuous_dfe" value="false" />
+  <parameter name="duplex_mode" value="duplex" />
+  <parameter name="enable_analog_settings" value="0" />
+  <parameter name="enable_hard_reset" value="0" />
+  <parameter name="enable_hip" value="0" />
+  <parameter name="enable_parallel_loopback" value="0" />
+  <parameter name="enable_pcie_data_mask_option" value="0" />
+  <parameter name="enable_pcie_dfe_ip" value="false" />
+  <parameter name="enable_port_krfec_rx_enh_frame" value="0" />
+  <parameter name="enable_port_krfec_rx_enh_frame_diag_status" value="0" />
+  <parameter name="enable_port_krfec_tx_enh_frame" value="0" />
+  <parameter name="enable_port_pipe_rx_polarity" value="0" />
+  <parameter name="enable_port_rx_analog_reset_ack" value="0" />
+  <parameter name="enable_port_rx_enh_bitslip" value="0" />
+  <parameter name="enable_port_rx_enh_blk_lock" value="1" />
+  <parameter name="enable_port_rx_enh_clr_errblk_count" value="0" />
+  <parameter name="enable_port_rx_enh_clr_errblk_count_c10" value="0" />
+  <parameter name="enable_port_rx_enh_crc32_err" value="0" />
+  <parameter name="enable_port_rx_enh_data_valid" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_align_clr" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_align_val" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_cnt" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_del" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_empty" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_full" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_insert" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_pempty" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_pfull" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_rd_en" value="0" />
+  <parameter name="enable_port_rx_enh_frame" value="0" />
+  <parameter name="enable_port_rx_enh_frame_diag_status" value="0" />
+  <parameter name="enable_port_rx_enh_frame_lock" value="0" />
+  <parameter name="enable_port_rx_enh_highber" value="1" />
+  <parameter name="enable_port_rx_enh_highber_clr_cnt" value="0" />
+  <parameter name="enable_port_rx_is_lockedtodata" value="1" />
+  <parameter name="enable_port_rx_is_lockedtoref" value="1" />
+  <parameter name="enable_port_rx_pma_clkout" value="0" />
+  <parameter name="enable_port_rx_pma_clkslip" value="0" />
+  <parameter name="enable_port_rx_pma_div_clkout" value="0" />
+  <parameter name="enable_port_rx_pma_iqtxrx_clkout" value="0" />
+  <parameter name="enable_port_rx_pma_qpipulldn" value="0" />
+  <parameter name="enable_port_rx_polinv" value="0" />
+  <parameter name="enable_port_rx_seriallpbken" value="1" />
+  <parameter name="enable_port_rx_seriallpbken_tx" value="1" />
+  <parameter name="enable_port_rx_signaldetect" value="0" />
+  <parameter name="enable_port_rx_std_bitrev_ena" value="0" />
+  <parameter name="enable_port_rx_std_bitslip" value="0" />
+  <parameter name="enable_port_rx_std_bitslipboundarysel" value="0" />
+  <parameter name="enable_port_rx_std_byterev_ena" value="0" />
+  <parameter name="enable_port_rx_std_pcfifo_empty" value="0" />
+  <parameter name="enable_port_rx_std_pcfifo_full" value="0" />
+  <parameter name="enable_port_rx_std_rmfifo_empty" value="0" />
+  <parameter name="enable_port_rx_std_rmfifo_full" value="0" />
+  <parameter name="enable_port_rx_std_signaldetect" value="0" />
+  <parameter name="enable_port_rx_std_wa_a1a2size" value="0" />
+  <parameter name="enable_port_rx_std_wa_patternalign" value="0" />
+  <parameter name="enable_port_tx_analog_reset_ack" value="0" />
+  <parameter name="enable_port_tx_enh_bitslip" value="0" />
+  <parameter name="enable_port_tx_enh_fifo_cnt" value="0" />
+  <parameter name="enable_port_tx_enh_fifo_empty" value="1" />
+  <parameter name="enable_port_tx_enh_fifo_full" value="1" />
+  <parameter name="enable_port_tx_enh_fifo_pempty" value="1" />
+  <parameter name="enable_port_tx_enh_fifo_pfull" value="1" />
+  <parameter name="enable_port_tx_enh_frame" value="0" />
+  <parameter name="enable_port_tx_enh_frame_burst_en" value="0" />
+  <parameter name="enable_port_tx_enh_frame_diag_status" value="0" />
+  <parameter name="enable_port_tx_pma_clkout" value="0" />
+  <parameter name="enable_port_tx_pma_div_clkout" value="0" />
+  <parameter name="enable_port_tx_pma_elecidle" value="0" />
+  <parameter name="enable_port_tx_pma_iqtxrx_clkout" value="0" />
+  <parameter name="enable_port_tx_pma_qpipulldn" value="0" />
+  <parameter name="enable_port_tx_pma_qpipullup" value="0" />
+  <parameter name="enable_port_tx_pma_rxfound" value="0" />
+  <parameter name="enable_port_tx_pma_txdetectrx" value="0" />
+  <parameter name="enable_port_tx_polinv" value="0" />
+  <parameter name="enable_port_tx_std_bitslipboundarysel" value="0" />
+  <parameter name="enable_port_tx_std_pcfifo_empty" value="0" />
+  <parameter name="enable_port_tx_std_pcfifo_full" value="0" />
+  <parameter name="enable_ports_adaptation" value="0" />
+  <parameter name="enable_ports_pipe_g3_analog" value="0" />
+  <parameter name="enable_ports_pipe_hclk" value="0" />
+  <parameter name="enable_ports_pipe_rx_elecidle" value="0" />
+  <parameter name="enable_ports_pipe_sw" value="0" />
+  <parameter name="enable_ports_rx_manual_cdr_mode" value="0" />
+  <parameter name="enable_ports_rx_manual_ppm" value="0" />
+  <parameter name="enable_ports_rx_prbs" value="1" />
+  <parameter name="enable_simple_interface" value="1" />
+  <parameter name="enable_skp_ports" value="0" />
+  <parameter name="enable_split_interface" value="0" />
+  <parameter name="enable_transparent_pcs" value="0" />
+  <parameter name="enable_upi_pipeline_options" value="0" />
+  <parameter name="enh_low_latency_enable" value="0" />
+  <parameter name="enh_pcs_pma_width" value="32" />
+  <parameter name="enh_pld_pcs_width" value="66" />
+  <parameter name="enh_rx_64b66b_enable" value="1" />
+  <parameter name="enh_rx_bitslip_enable" value="0" />
+  <parameter name="enh_rx_blksync_enable" value="1" />
+  <parameter name="enh_rx_crcchk_enable" value="0" />
+  <parameter name="enh_rx_descram_enable" value="1" />
+  <parameter name="enh_rx_dispchk_enable" value="0" />
+  <parameter name="enh_rx_frmsync_enable" value="0" />
+  <parameter name="enh_rx_frmsync_mfrm_length" value="2048" />
+  <parameter name="enh_rx_krfec_err_mark_enable" value="0" />
+  <parameter name="enh_rx_krfec_err_mark_type" value="10G" />
+  <parameter name="enh_rx_polinv_enable" value="0" />
+  <parameter name="enh_rxfifo_align_del" value="0" />
+  <parameter name="enh_rxfifo_control_del" value="0" />
+  <parameter name="enh_rxfifo_mode" value="10GBase-R" />
+  <parameter name="enh_rxfifo_pempty" value="2" />
+  <parameter name="enh_rxfifo_pfull" value="23" />
+  <parameter name="enh_rxtxfifo_double_width" value="0" />
+  <parameter name="enh_tx_64b66b_enable" value="1" />
+  <parameter name="enh_tx_bitslip_enable" value="0" />
+  <parameter name="enh_tx_crcerr_enable" value="0" />
+  <parameter name="enh_tx_crcgen_enable" value="0" />
+  <parameter name="enh_tx_dispgen_enable" value="0" />
+  <parameter name="enh_tx_frmgen_burst_enable" value="0" />
+  <parameter name="enh_tx_frmgen_enable" value="0" />
+  <parameter name="enh_tx_frmgen_mfrm_length" value="2048" />
+  <parameter name="enh_tx_krfec_burst_err_enable" value="0" />
+  <parameter name="enh_tx_krfec_burst_err_len" value="1" />
+  <parameter name="enh_tx_polinv_enable" value="0" />
+  <parameter name="enh_tx_randomdispbit_enable" value="0" />
+  <parameter name="enh_tx_scram_enable" value="1" />
+  <parameter name="enh_tx_scram_seed" value="288230376151711743" />
+  <parameter name="enh_tx_sh_err" value="0" />
+  <parameter name="enh_txfifo_mode" value="Phase compensation" />
+  <parameter name="enh_txfifo_pempty" value="2" />
+  <parameter name="enh_txfifo_pfull" value="11" />
+  <parameter name="generate_add_hdl_instance_example" value="0" />
+  <parameter name="generate_docs" value="1" />
+  <parameter name="message_level" value="error" />
+  <parameter name="number_physical_bonding_clocks" value="1" />
+  <parameter name="pcie_rate_match" value="Bypass" />
+  <parameter name="pcs_direct_width" value="8" />
+  <parameter name="pcs_tx_delay1_ctrl" value="delay1_path0" />
+  <parameter name="pcs_tx_delay1_data_sel" value="one_ff_delay" />
+  <parameter name="pcs_tx_delay2_ctrl" value="delay2_path0" />
+  <parameter name="pll_select" value="0" />
+  <parameter name="plls" value="1" />
+  <parameter name="pma_mode" value="basic" />
+  <parameter name="protocol_mode" value="teng_baser_mode" />
+  <parameter name="rcfg_enable" value="1" />
+  <parameter name="rcfg_enable_avmm_busy_port" value="0" />
+  <parameter name="rcfg_file_prefix">altera_xcvr_native_a10</parameter>
+  <parameter name="rcfg_h_file_enable" value="1" />
+  <parameter name="rcfg_iface_enable" value="0" />
+  <parameter name="rcfg_jtag_enable" value="1" />
+  <parameter name="rcfg_mif_file_enable" value="1" />
+  <parameter name="rcfg_multi_enable" value="0" />
+  <parameter name="rcfg_profile_cnt" value="2" />
+  <parameter name="rcfg_profile_data0" value="" />
+  <parameter name="rcfg_profile_data1" value="" />
+  <parameter name="rcfg_profile_data2" value="" />
+  <parameter name="rcfg_profile_data3" value="" />
+  <parameter name="rcfg_profile_data4" value="" />
+  <parameter name="rcfg_profile_data5" value="" />
+  <parameter name="rcfg_profile_data6" value="" />
+  <parameter name="rcfg_profile_data7" value="" />
+  <parameter name="rcfg_profile_select" value="1" />
+  <parameter name="rcfg_reduced_files_enable" value="0" />
+  <parameter name="rcfg_separate_avmm_busy" value="0" />
+  <parameter name="rcfg_shared" value="1" />
+  <parameter name="rcfg_sv_file_enable" value="1" />
+  <parameter name="rx_pma_ctle_adaptation_mode" value="manual" />
+  <parameter name="rx_pma_dfe_adaptation_mode" value="disabled" />
+  <parameter name="rx_pma_dfe_fixed_taps" value="3" />
+  <parameter name="rx_pma_div_clkout_divider" value="0" />
+  <parameter name="rx_ppm_detect_threshold" value="1000" />
+  <parameter name="set_capability_reg_enable" value="1" />
+  <parameter name="set_cdr_refclk_freq" value="644.531250" />
+  <parameter name="set_csr_soft_logic_enable" value="1" />
+  <parameter name="set_data_rate" value="10312.5" />
+  <parameter name="set_disconnect_analog_resets" value="0" />
+  <parameter name="set_embedded_debug_enable" value="0" />
+  <parameter name="set_enable_calibration" value="0" />
+  <parameter name="set_hip_cal_en" value="0" />
+  <parameter name="set_odi_soft_logic_enable" value="0" />
+  <parameter name="set_pcs_bonding_master" value="Auto" />
+  <parameter name="set_prbs_soft_logic_enable" value="1" />
+  <parameter name="set_rcfg_emb_strm_enable" value="0" />
+  <parameter name="set_user_identifier" value="0" />
+  <parameter name="sim_reduced_counters" value="false" />
+  <parameter name="std_data_mask_count_multi" value="0" />
+  <parameter name="std_low_latency_bypass_enable" value="0" />
+  <parameter name="std_pcs_pma_width" value="10" />
+  <parameter name="std_rx_8b10b_enable" value="0" />
+  <parameter name="std_rx_bitrev_enable" value="0" />
+  <parameter name="std_rx_byte_deser_mode" value="Disabled" />
+  <parameter name="std_rx_byterev_enable" value="0" />
+  <parameter name="std_rx_pcfifo_mode" value="low_latency" />
+  <parameter name="std_rx_polinv_enable" value="0" />
+  <parameter name="std_rx_rmfifo_mode" value="disabled" />
+  <parameter name="std_rx_rmfifo_pattern_n" value="0" />
+  <parameter name="std_rx_rmfifo_pattern_p" value="0" />
+  <parameter name="std_rx_word_aligner_fast_sync_status_enable" value="0" />
+  <parameter name="std_rx_word_aligner_mode" value="bitslip" />
+  <parameter name="std_rx_word_aligner_pattern" value="0" />
+  <parameter name="std_rx_word_aligner_pattern_len" value="7" />
+  <parameter name="std_rx_word_aligner_renumber" value="3" />
+  <parameter name="std_rx_word_aligner_rgnumber" value="3" />
+  <parameter name="std_rx_word_aligner_rknumber" value="3" />
+  <parameter name="std_rx_word_aligner_rvnumber" value="0" />
+  <parameter name="std_tx_8b10b_disp_ctrl_enable" value="0" />
+  <parameter name="std_tx_8b10b_enable" value="0" />
+  <parameter name="std_tx_bitrev_enable" value="0" />
+  <parameter name="std_tx_bitslip_enable" value="0" />
+  <parameter name="std_tx_byte_ser_mode" value="Disabled" />
+  <parameter name="std_tx_byterev_enable" value="0" />
+  <parameter name="std_tx_pcfifo_mode" value="low_latency" />
+  <parameter name="std_tx_polinv_enable" value="0" />
+  <parameter name="support_mode" value="user_mode" />
+  <parameter name="tx_pma_clk_div" value="1" />
+  <parameter name="tx_pma_div_clkout_divider" value="33" />
+  <parameter name="validation_rule_select" value="" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_3/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_3/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..5e81bb41af29029a71012512b1c3c2fe2d1a61a5
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_3/compile_ip.tcl
@@ -0,0 +1,35 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_phy_10gbase_r_3/sim"
+
+   
+  vcom         "$IP_DIR/ip_arria10_e2sg_phy_10gbase_r_3.vhd"                                                                                               
diff --git a/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_3/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_3/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..9f3ddacb670df61ec45739c9689a0613c391ca8c
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_3/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_phy_10gbase_r_3
+hdl_library_clause_name = ip_arria10_e2sg_phy_10gbase_r_3_altera_xcvr_native_a10_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_native_a10_194
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_3/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_phy_10gbase_r_3/ip_arria10_e2sg_phy_10gbase_r_3.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_phy_10gbase_r_3.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_3/ip_arria10_e2sg_phy_10gbase_r_3.qsys b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_3/ip_arria10_e2sg_phy_10gbase_r_3.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..a54c573db2d8b70ac8e684c40d16655284c1afe7
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_3/ip_arria10_e2sg_phy_10gbase_r_3.qsys
@@ -0,0 +1,627 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_phy_10gbase_r_3">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element xcvr_native_a10_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="reconfig_avmm"
+   internal="xcvr_native_a10_0.reconfig_avmm"
+   type="conduit"
+   dir="end">
+  <port name="reconfig_address" internal="reconfig_address" />
+  <port name="reconfig_read" internal="reconfig_read" />
+  <port name="reconfig_readdata" internal="reconfig_readdata" />
+  <port name="reconfig_waitrequest" internal="reconfig_waitrequest" />
+  <port name="reconfig_write" internal="reconfig_write" />
+  <port name="reconfig_writedata" internal="reconfig_writedata" />
+ </interface>
+ <interface
+   name="reconfig_clk"
+   internal="xcvr_native_a10_0.reconfig_clk"
+   type="conduit"
+   dir="end">
+  <port name="reconfig_clk" internal="reconfig_clk" />
+ </interface>
+ <interface
+   name="reconfig_reset"
+   internal="xcvr_native_a10_0.reconfig_reset"
+   type="conduit"
+   dir="end">
+  <port name="reconfig_reset" internal="reconfig_reset" />
+ </interface>
+ <interface
+   name="rx_analogreset"
+   internal="xcvr_native_a10_0.rx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_analogreset" internal="rx_analogreset" />
+ </interface>
+ <interface
+   name="rx_cal_busy"
+   internal="xcvr_native_a10_0.rx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="rx_cal_busy" internal="rx_cal_busy" />
+ </interface>
+ <interface
+   name="rx_cdr_refclk0"
+   internal="xcvr_native_a10_0.rx_cdr_refclk0"
+   type="conduit"
+   dir="end">
+  <port name="rx_cdr_refclk0" internal="rx_cdr_refclk0" />
+ </interface>
+ <interface
+   name="rx_clkout"
+   internal="xcvr_native_a10_0.rx_clkout"
+   type="conduit"
+   dir="end">
+  <port name="rx_clkout" internal="rx_clkout" />
+ </interface>
+ <interface
+   name="rx_control"
+   internal="xcvr_native_a10_0.rx_control"
+   type="conduit"
+   dir="end">
+  <port name="rx_control" internal="rx_control" />
+ </interface>
+ <interface
+   name="rx_coreclkin"
+   internal="xcvr_native_a10_0.rx_coreclkin"
+   type="conduit"
+   dir="end">
+  <port name="rx_coreclkin" internal="rx_coreclkin" />
+ </interface>
+ <interface
+   name="rx_digitalreset"
+   internal="xcvr_native_a10_0.rx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_digitalreset" internal="rx_digitalreset" />
+ </interface>
+ <interface
+   name="rx_enh_blk_lock"
+   internal="xcvr_native_a10_0.rx_enh_blk_lock"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_blk_lock" internal="rx_enh_blk_lock" />
+ </interface>
+ <interface
+   name="rx_enh_data_valid"
+   internal="xcvr_native_a10_0.rx_enh_data_valid"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_data_valid" internal="rx_enh_data_valid" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_del"
+   internal="xcvr_native_a10_0.rx_enh_fifo_del"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_del" internal="rx_enh_fifo_del" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_empty"
+   internal="xcvr_native_a10_0.rx_enh_fifo_empty"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_empty" internal="rx_enh_fifo_empty" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_full"
+   internal="xcvr_native_a10_0.rx_enh_fifo_full"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_full" internal="rx_enh_fifo_full" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_insert"
+   internal="xcvr_native_a10_0.rx_enh_fifo_insert"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_insert" internal="rx_enh_fifo_insert" />
+ </interface>
+ <interface
+   name="rx_enh_highber"
+   internal="xcvr_native_a10_0.rx_enh_highber"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_highber" internal="rx_enh_highber" />
+ </interface>
+ <interface
+   name="rx_is_lockedtodata"
+   internal="xcvr_native_a10_0.rx_is_lockedtodata"
+   type="conduit"
+   dir="end">
+  <port name="rx_is_lockedtodata" internal="rx_is_lockedtodata" />
+ </interface>
+ <interface
+   name="rx_is_lockedtoref"
+   internal="xcvr_native_a10_0.rx_is_lockedtoref"
+   type="conduit"
+   dir="end">
+  <port name="rx_is_lockedtoref" internal="rx_is_lockedtoref" />
+ </interface>
+ <interface
+   name="rx_parallel_data"
+   internal="xcvr_native_a10_0.rx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="rx_parallel_data" internal="rx_parallel_data" />
+ </interface>
+ <interface
+   name="rx_prbs_done"
+   internal="xcvr_native_a10_0.rx_prbs_done"
+   type="conduit"
+   dir="end">
+  <port name="rx_prbs_done" internal="rx_prbs_done" />
+ </interface>
+ <interface
+   name="rx_prbs_err"
+   internal="xcvr_native_a10_0.rx_prbs_err"
+   type="conduit"
+   dir="end">
+  <port name="rx_prbs_err" internal="rx_prbs_err" />
+ </interface>
+ <interface
+   name="rx_prbs_err_clr"
+   internal="xcvr_native_a10_0.rx_prbs_err_clr"
+   type="conduit"
+   dir="end">
+  <port name="rx_prbs_err_clr" internal="rx_prbs_err_clr" />
+ </interface>
+ <interface
+   name="rx_serial_data"
+   internal="xcvr_native_a10_0.rx_serial_data"
+   type="conduit"
+   dir="end">
+  <port name="rx_serial_data" internal="rx_serial_data" />
+ </interface>
+ <interface
+   name="rx_seriallpbken"
+   internal="xcvr_native_a10_0.rx_seriallpbken"
+   type="conduit"
+   dir="end">
+  <port name="rx_seriallpbken" internal="rx_seriallpbken" />
+ </interface>
+ <interface
+   name="tx_analogreset"
+   internal="xcvr_native_a10_0.tx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_analogreset" internal="tx_analogreset" />
+ </interface>
+ <interface
+   name="tx_cal_busy"
+   internal="xcvr_native_a10_0.tx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="tx_cal_busy" internal="tx_cal_busy" />
+ </interface>
+ <interface
+   name="tx_clkout"
+   internal="xcvr_native_a10_0.tx_clkout"
+   type="conduit"
+   dir="end">
+  <port name="tx_clkout" internal="tx_clkout" />
+ </interface>
+ <interface
+   name="tx_control"
+   internal="xcvr_native_a10_0.tx_control"
+   type="conduit"
+   dir="end">
+  <port name="tx_control" internal="tx_control" />
+ </interface>
+ <interface
+   name="tx_coreclkin"
+   internal="xcvr_native_a10_0.tx_coreclkin"
+   type="conduit"
+   dir="end">
+  <port name="tx_coreclkin" internal="tx_coreclkin" />
+ </interface>
+ <interface
+   name="tx_digitalreset"
+   internal="xcvr_native_a10_0.tx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_digitalreset" internal="tx_digitalreset" />
+ </interface>
+ <interface
+   name="tx_enh_data_valid"
+   internal="xcvr_native_a10_0.tx_enh_data_valid"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_data_valid" internal="tx_enh_data_valid" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_empty"
+   internal="xcvr_native_a10_0.tx_enh_fifo_empty"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_empty" internal="tx_enh_fifo_empty" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_full"
+   internal="xcvr_native_a10_0.tx_enh_fifo_full"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_full" internal="tx_enh_fifo_full" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_pempty"
+   internal="xcvr_native_a10_0.tx_enh_fifo_pempty"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_pempty" internal="tx_enh_fifo_pempty" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_pfull"
+   internal="xcvr_native_a10_0.tx_enh_fifo_pfull"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_pfull" internal="tx_enh_fifo_pfull" />
+ </interface>
+ <interface
+   name="tx_err_ins"
+   internal="xcvr_native_a10_0.tx_err_ins"
+   type="conduit"
+   dir="end">
+  <port name="tx_err_ins" internal="tx_err_ins" />
+ </interface>
+ <interface
+   name="tx_parallel_data"
+   internal="xcvr_native_a10_0.tx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="tx_parallel_data" internal="tx_parallel_data" />
+ </interface>
+ <interface name="tx_pma_clkout" internal="xcvr_native_a10_0.tx_pma_clkout" />
+ <interface
+   name="tx_pma_div_clkout"
+   internal="xcvr_native_a10_0.tx_pma_div_clkout" />
+ <interface
+   name="tx_serial_clk0"
+   internal="xcvr_native_a10_0.tx_serial_clk0"
+   type="conduit"
+   dir="end">
+  <port name="tx_serial_clk0" internal="tx_serial_clk0" />
+ </interface>
+ <interface
+   name="tx_serial_data"
+   internal="xcvr_native_a10_0.tx_serial_data"
+   type="conduit"
+   dir="end">
+  <port name="tx_serial_data" internal="tx_serial_data" />
+ </interface>
+ <interface
+   name="unused_rx_control"
+   internal="xcvr_native_a10_0.unused_rx_control"
+   type="conduit"
+   dir="end">
+  <port name="unused_rx_control" internal="unused_rx_control" />
+ </interface>
+ <interface
+   name="unused_rx_parallel_data"
+   internal="xcvr_native_a10_0.unused_rx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="unused_rx_parallel_data" internal="unused_rx_parallel_data" />
+ </interface>
+ <interface
+   name="unused_tx_control"
+   internal="xcvr_native_a10_0.unused_tx_control"
+   type="conduit"
+   dir="end">
+  <port name="unused_tx_control" internal="unused_tx_control" />
+ </interface>
+ <interface
+   name="unused_tx_parallel_data"
+   internal="xcvr_native_a10_0.unused_tx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="unused_tx_parallel_data" internal="unused_tx_parallel_data" />
+ </interface>
+ <module
+   name="xcvr_native_a10_0"
+   kind="altera_xcvr_native_a10"
+   version="19.1"
+   enabled="1"
+   autoexport="1">
+  <parameter name="anlg_enable_rx_default_ovr" value="0" />
+  <parameter name="anlg_enable_tx_default_ovr" value="0" />
+  <parameter name="anlg_link" value="sr" />
+  <parameter name="anlg_rx_adp_ctle_acgain_4s">radp_ctle_acgain_4s_1</parameter>
+  <parameter name="anlg_rx_adp_ctle_eqz_1s_sel">radp_ctle_eqz_1s_sel_3</parameter>
+  <parameter name="anlg_rx_adp_dfe_fxtap1" value="radp_dfe_fxtap1_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap10" value="radp_dfe_fxtap10_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap11" value="radp_dfe_fxtap11_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap2" value="radp_dfe_fxtap2_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap3" value="radp_dfe_fxtap3_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap4" value="radp_dfe_fxtap4_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap5" value="radp_dfe_fxtap5_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap6" value="radp_dfe_fxtap6_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap7" value="radp_dfe_fxtap7_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap8" value="radp_dfe_fxtap8_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap9" value="radp_dfe_fxtap9_0" />
+  <parameter name="anlg_rx_adp_vga_sel" value="radp_vga_sel_2" />
+  <parameter name="anlg_rx_eq_dc_gain_trim" value="stg2_gain7" />
+  <parameter name="anlg_rx_one_stage_enable" value="s1_mode" />
+  <parameter name="anlg_rx_term_sel" value="r_r1" />
+  <parameter name="anlg_tx_analog_mode" value="user_custom" />
+  <parameter name="anlg_tx_compensation_en" value="enable" />
+  <parameter name="anlg_tx_pre_emp_sign_1st_post_tap" value="fir_post_1t_neg" />
+  <parameter name="anlg_tx_pre_emp_sign_2nd_post_tap" value="fir_post_2t_neg" />
+  <parameter name="anlg_tx_pre_emp_sign_pre_tap_1t" value="fir_pre_1t_neg" />
+  <parameter name="anlg_tx_pre_emp_sign_pre_tap_2t" value="fir_pre_2t_neg" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_1st_post_tap" value="0" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_2nd_post_tap" value="0" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_pre_tap_1t" value="0" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_pre_tap_2t" value="0" />
+  <parameter name="anlg_tx_slew_rate_ctrl" value="slew_r7" />
+  <parameter name="anlg_tx_term_sel" value="r_r1" />
+  <parameter name="anlg_tx_vod_output_swing_ctrl" value="0" />
+  <parameter name="anlg_voltage" value="1_1V" />
+  <parameter name="base_device" value="NIGHTFURY5" />
+  <parameter name="bonded_mode" value="not_bonded" />
+  <parameter name="cdr_refclk_cnt" value="1" />
+  <parameter name="cdr_refclk_select" value="0" />
+  <parameter name="channels" value="3" />
+  <parameter name="design_environment" value="NATIVE" />
+  <parameter name="device" value="10AX115U3F45E2SG" />
+  <parameter name="device_family" value="Arria 10" />
+  <parameter name="disable_continuous_dfe" value="false" />
+  <parameter name="duplex_mode" value="duplex" />
+  <parameter name="enable_analog_settings" value="0" />
+  <parameter name="enable_hard_reset" value="0" />
+  <parameter name="enable_hip" value="0" />
+  <parameter name="enable_parallel_loopback" value="0" />
+  <parameter name="enable_pcie_data_mask_option" value="0" />
+  <parameter name="enable_pcie_dfe_ip" value="false" />
+  <parameter name="enable_port_krfec_rx_enh_frame" value="0" />
+  <parameter name="enable_port_krfec_rx_enh_frame_diag_status" value="0" />
+  <parameter name="enable_port_krfec_tx_enh_frame" value="0" />
+  <parameter name="enable_port_pipe_rx_polarity" value="0" />
+  <parameter name="enable_port_rx_analog_reset_ack" value="0" />
+  <parameter name="enable_port_rx_enh_bitslip" value="0" />
+  <parameter name="enable_port_rx_enh_blk_lock" value="1" />
+  <parameter name="enable_port_rx_enh_clr_errblk_count" value="0" />
+  <parameter name="enable_port_rx_enh_clr_errblk_count_c10" value="0" />
+  <parameter name="enable_port_rx_enh_crc32_err" value="0" />
+  <parameter name="enable_port_rx_enh_data_valid" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_align_clr" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_align_val" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_cnt" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_del" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_empty" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_full" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_insert" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_pempty" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_pfull" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_rd_en" value="0" />
+  <parameter name="enable_port_rx_enh_frame" value="0" />
+  <parameter name="enable_port_rx_enh_frame_diag_status" value="0" />
+  <parameter name="enable_port_rx_enh_frame_lock" value="0" />
+  <parameter name="enable_port_rx_enh_highber" value="1" />
+  <parameter name="enable_port_rx_enh_highber_clr_cnt" value="0" />
+  <parameter name="enable_port_rx_is_lockedtodata" value="1" />
+  <parameter name="enable_port_rx_is_lockedtoref" value="1" />
+  <parameter name="enable_port_rx_pma_clkout" value="0" />
+  <parameter name="enable_port_rx_pma_clkslip" value="0" />
+  <parameter name="enable_port_rx_pma_div_clkout" value="0" />
+  <parameter name="enable_port_rx_pma_iqtxrx_clkout" value="0" />
+  <parameter name="enable_port_rx_pma_qpipulldn" value="0" />
+  <parameter name="enable_port_rx_polinv" value="0" />
+  <parameter name="enable_port_rx_seriallpbken" value="1" />
+  <parameter name="enable_port_rx_seriallpbken_tx" value="1" />
+  <parameter name="enable_port_rx_signaldetect" value="0" />
+  <parameter name="enable_port_rx_std_bitrev_ena" value="0" />
+  <parameter name="enable_port_rx_std_bitslip" value="0" />
+  <parameter name="enable_port_rx_std_bitslipboundarysel" value="0" />
+  <parameter name="enable_port_rx_std_byterev_ena" value="0" />
+  <parameter name="enable_port_rx_std_pcfifo_empty" value="0" />
+  <parameter name="enable_port_rx_std_pcfifo_full" value="0" />
+  <parameter name="enable_port_rx_std_rmfifo_empty" value="0" />
+  <parameter name="enable_port_rx_std_rmfifo_full" value="0" />
+  <parameter name="enable_port_rx_std_signaldetect" value="0" />
+  <parameter name="enable_port_rx_std_wa_a1a2size" value="0" />
+  <parameter name="enable_port_rx_std_wa_patternalign" value="0" />
+  <parameter name="enable_port_tx_analog_reset_ack" value="0" />
+  <parameter name="enable_port_tx_enh_bitslip" value="0" />
+  <parameter name="enable_port_tx_enh_fifo_cnt" value="0" />
+  <parameter name="enable_port_tx_enh_fifo_empty" value="1" />
+  <parameter name="enable_port_tx_enh_fifo_full" value="1" />
+  <parameter name="enable_port_tx_enh_fifo_pempty" value="1" />
+  <parameter name="enable_port_tx_enh_fifo_pfull" value="1" />
+  <parameter name="enable_port_tx_enh_frame" value="0" />
+  <parameter name="enable_port_tx_enh_frame_burst_en" value="0" />
+  <parameter name="enable_port_tx_enh_frame_diag_status" value="0" />
+  <parameter name="enable_port_tx_pma_clkout" value="0" />
+  <parameter name="enable_port_tx_pma_div_clkout" value="0" />
+  <parameter name="enable_port_tx_pma_elecidle" value="0" />
+  <parameter name="enable_port_tx_pma_iqtxrx_clkout" value="0" />
+  <parameter name="enable_port_tx_pma_qpipulldn" value="0" />
+  <parameter name="enable_port_tx_pma_qpipullup" value="0" />
+  <parameter name="enable_port_tx_pma_rxfound" value="0" />
+  <parameter name="enable_port_tx_pma_txdetectrx" value="0" />
+  <parameter name="enable_port_tx_polinv" value="0" />
+  <parameter name="enable_port_tx_std_bitslipboundarysel" value="0" />
+  <parameter name="enable_port_tx_std_pcfifo_empty" value="0" />
+  <parameter name="enable_port_tx_std_pcfifo_full" value="0" />
+  <parameter name="enable_ports_adaptation" value="0" />
+  <parameter name="enable_ports_pipe_g3_analog" value="0" />
+  <parameter name="enable_ports_pipe_hclk" value="0" />
+  <parameter name="enable_ports_pipe_rx_elecidle" value="0" />
+  <parameter name="enable_ports_pipe_sw" value="0" />
+  <parameter name="enable_ports_rx_manual_cdr_mode" value="0" />
+  <parameter name="enable_ports_rx_manual_ppm" value="0" />
+  <parameter name="enable_ports_rx_prbs" value="1" />
+  <parameter name="enable_simple_interface" value="1" />
+  <parameter name="enable_skp_ports" value="0" />
+  <parameter name="enable_split_interface" value="0" />
+  <parameter name="enable_transparent_pcs" value="0" />
+  <parameter name="enable_upi_pipeline_options" value="0" />
+  <parameter name="enh_low_latency_enable" value="0" />
+  <parameter name="enh_pcs_pma_width" value="32" />
+  <parameter name="enh_pld_pcs_width" value="66" />
+  <parameter name="enh_rx_64b66b_enable" value="1" />
+  <parameter name="enh_rx_bitslip_enable" value="0" />
+  <parameter name="enh_rx_blksync_enable" value="1" />
+  <parameter name="enh_rx_crcchk_enable" value="0" />
+  <parameter name="enh_rx_descram_enable" value="1" />
+  <parameter name="enh_rx_dispchk_enable" value="0" />
+  <parameter name="enh_rx_frmsync_enable" value="0" />
+  <parameter name="enh_rx_frmsync_mfrm_length" value="2048" />
+  <parameter name="enh_rx_krfec_err_mark_enable" value="0" />
+  <parameter name="enh_rx_krfec_err_mark_type" value="10G" />
+  <parameter name="enh_rx_polinv_enable" value="0" />
+  <parameter name="enh_rxfifo_align_del" value="0" />
+  <parameter name="enh_rxfifo_control_del" value="0" />
+  <parameter name="enh_rxfifo_mode" value="10GBase-R" />
+  <parameter name="enh_rxfifo_pempty" value="2" />
+  <parameter name="enh_rxfifo_pfull" value="23" />
+  <parameter name="enh_rxtxfifo_double_width" value="0" />
+  <parameter name="enh_tx_64b66b_enable" value="1" />
+  <parameter name="enh_tx_bitslip_enable" value="0" />
+  <parameter name="enh_tx_crcerr_enable" value="0" />
+  <parameter name="enh_tx_crcgen_enable" value="0" />
+  <parameter name="enh_tx_dispgen_enable" value="0" />
+  <parameter name="enh_tx_frmgen_burst_enable" value="0" />
+  <parameter name="enh_tx_frmgen_enable" value="0" />
+  <parameter name="enh_tx_frmgen_mfrm_length" value="2048" />
+  <parameter name="enh_tx_krfec_burst_err_enable" value="0" />
+  <parameter name="enh_tx_krfec_burst_err_len" value="1" />
+  <parameter name="enh_tx_polinv_enable" value="0" />
+  <parameter name="enh_tx_randomdispbit_enable" value="0" />
+  <parameter name="enh_tx_scram_enable" value="1" />
+  <parameter name="enh_tx_scram_seed" value="288230376151711743" />
+  <parameter name="enh_tx_sh_err" value="0" />
+  <parameter name="enh_txfifo_mode" value="Phase compensation" />
+  <parameter name="enh_txfifo_pempty" value="2" />
+  <parameter name="enh_txfifo_pfull" value="11" />
+  <parameter name="generate_add_hdl_instance_example" value="0" />
+  <parameter name="generate_docs" value="1" />
+  <parameter name="message_level" value="error" />
+  <parameter name="number_physical_bonding_clocks" value="1" />
+  <parameter name="pcie_rate_match" value="Bypass" />
+  <parameter name="pcs_direct_width" value="8" />
+  <parameter name="pcs_tx_delay1_ctrl" value="delay1_path0" />
+  <parameter name="pcs_tx_delay1_data_sel" value="one_ff_delay" />
+  <parameter name="pcs_tx_delay2_ctrl" value="delay2_path0" />
+  <parameter name="pll_select" value="0" />
+  <parameter name="plls" value="1" />
+  <parameter name="pma_mode" value="basic" />
+  <parameter name="protocol_mode" value="teng_baser_mode" />
+  <parameter name="rcfg_enable" value="1" />
+  <parameter name="rcfg_enable_avmm_busy_port" value="0" />
+  <parameter name="rcfg_file_prefix">altera_xcvr_native_a10</parameter>
+  <parameter name="rcfg_h_file_enable" value="1" />
+  <parameter name="rcfg_iface_enable" value="0" />
+  <parameter name="rcfg_jtag_enable" value="1" />
+  <parameter name="rcfg_mif_file_enable" value="1" />
+  <parameter name="rcfg_multi_enable" value="0" />
+  <parameter name="rcfg_profile_cnt" value="2" />
+  <parameter name="rcfg_profile_data0" value="" />
+  <parameter name="rcfg_profile_data1" value="" />
+  <parameter name="rcfg_profile_data2" value="" />
+  <parameter name="rcfg_profile_data3" value="" />
+  <parameter name="rcfg_profile_data4" value="" />
+  <parameter name="rcfg_profile_data5" value="" />
+  <parameter name="rcfg_profile_data6" value="" />
+  <parameter name="rcfg_profile_data7" value="" />
+  <parameter name="rcfg_profile_select" value="1" />
+  <parameter name="rcfg_reduced_files_enable" value="0" />
+  <parameter name="rcfg_separate_avmm_busy" value="0" />
+  <parameter name="rcfg_shared" value="1" />
+  <parameter name="rcfg_sv_file_enable" value="1" />
+  <parameter name="rx_pma_ctle_adaptation_mode" value="manual" />
+  <parameter name="rx_pma_dfe_adaptation_mode" value="disabled" />
+  <parameter name="rx_pma_dfe_fixed_taps" value="3" />
+  <parameter name="rx_pma_div_clkout_divider" value="0" />
+  <parameter name="rx_ppm_detect_threshold" value="1000" />
+  <parameter name="set_capability_reg_enable" value="1" />
+  <parameter name="set_cdr_refclk_freq" value="644.531250" />
+  <parameter name="set_csr_soft_logic_enable" value="1" />
+  <parameter name="set_data_rate" value="10312.5" />
+  <parameter name="set_disconnect_analog_resets" value="0" />
+  <parameter name="set_embedded_debug_enable" value="0" />
+  <parameter name="set_enable_calibration" value="0" />
+  <parameter name="set_hip_cal_en" value="0" />
+  <parameter name="set_odi_soft_logic_enable" value="0" />
+  <parameter name="set_pcs_bonding_master" value="Auto" />
+  <parameter name="set_prbs_soft_logic_enable" value="1" />
+  <parameter name="set_rcfg_emb_strm_enable" value="0" />
+  <parameter name="set_user_identifier" value="0" />
+  <parameter name="sim_reduced_counters" value="false" />
+  <parameter name="std_data_mask_count_multi" value="0" />
+  <parameter name="std_low_latency_bypass_enable" value="0" />
+  <parameter name="std_pcs_pma_width" value="10" />
+  <parameter name="std_rx_8b10b_enable" value="0" />
+  <parameter name="std_rx_bitrev_enable" value="0" />
+  <parameter name="std_rx_byte_deser_mode" value="Disabled" />
+  <parameter name="std_rx_byterev_enable" value="0" />
+  <parameter name="std_rx_pcfifo_mode" value="low_latency" />
+  <parameter name="std_rx_polinv_enable" value="0" />
+  <parameter name="std_rx_rmfifo_mode" value="disabled" />
+  <parameter name="std_rx_rmfifo_pattern_n" value="0" />
+  <parameter name="std_rx_rmfifo_pattern_p" value="0" />
+  <parameter name="std_rx_word_aligner_fast_sync_status_enable" value="0" />
+  <parameter name="std_rx_word_aligner_mode" value="bitslip" />
+  <parameter name="std_rx_word_aligner_pattern" value="0" />
+  <parameter name="std_rx_word_aligner_pattern_len" value="7" />
+  <parameter name="std_rx_word_aligner_renumber" value="3" />
+  <parameter name="std_rx_word_aligner_rgnumber" value="3" />
+  <parameter name="std_rx_word_aligner_rknumber" value="3" />
+  <parameter name="std_rx_word_aligner_rvnumber" value="0" />
+  <parameter name="std_tx_8b10b_disp_ctrl_enable" value="0" />
+  <parameter name="std_tx_8b10b_enable" value="0" />
+  <parameter name="std_tx_bitrev_enable" value="0" />
+  <parameter name="std_tx_bitslip_enable" value="0" />
+  <parameter name="std_tx_byte_ser_mode" value="Disabled" />
+  <parameter name="std_tx_byterev_enable" value="0" />
+  <parameter name="std_tx_pcfifo_mode" value="low_latency" />
+  <parameter name="std_tx_polinv_enable" value="0" />
+  <parameter name="support_mode" value="user_mode" />
+  <parameter name="tx_pma_clk_div" value="1" />
+  <parameter name="tx_pma_div_clkout_divider" value="33" />
+  <parameter name="validation_rule_select" value="" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_4/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_4/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..a969be29f8e1d8f990c37f3356ee44cb0c3a3b0a
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_4/compile_ip.tcl
@@ -0,0 +1,35 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_phy_10gbase_r_4/sim"
+
+   
+  vcom         "$IP_DIR/ip_arria10_e2sg_phy_10gbase_r_4.vhd"                                                                                               
diff --git a/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_4/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_4/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..2b6b7c7beee15d8903f6c817de82c78c03579e08
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_4/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_phy_10gbase_r_4
+hdl_library_clause_name = ip_arria10_e2sg_phy_10gbase_r_4_altera_xcvr_native_a10_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_native_a10_194
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_4/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_phy_10gbase_r_4/ip_arria10_e2sg_phy_10gbase_r_4.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_phy_10gbase_r_4.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_4/ip_arria10_e2sg_phy_10gbase_r_4.qsys b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_4/ip_arria10_e2sg_phy_10gbase_r_4.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..ee891a25cff5b6335aeb9daf282dac3dca6f84e0
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_4/ip_arria10_e2sg_phy_10gbase_r_4.qsys
@@ -0,0 +1,627 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_phy_10gbase_r_4">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element xcvr_native_a10_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="reconfig_avmm"
+   internal="xcvr_native_a10_0.reconfig_avmm"
+   type="conduit"
+   dir="end">
+  <port name="reconfig_address" internal="reconfig_address" />
+  <port name="reconfig_read" internal="reconfig_read" />
+  <port name="reconfig_readdata" internal="reconfig_readdata" />
+  <port name="reconfig_waitrequest" internal="reconfig_waitrequest" />
+  <port name="reconfig_write" internal="reconfig_write" />
+  <port name="reconfig_writedata" internal="reconfig_writedata" />
+ </interface>
+ <interface
+   name="reconfig_clk"
+   internal="xcvr_native_a10_0.reconfig_clk"
+   type="conduit"
+   dir="end">
+  <port name="reconfig_clk" internal="reconfig_clk" />
+ </interface>
+ <interface
+   name="reconfig_reset"
+   internal="xcvr_native_a10_0.reconfig_reset"
+   type="conduit"
+   dir="end">
+  <port name="reconfig_reset" internal="reconfig_reset" />
+ </interface>
+ <interface
+   name="rx_analogreset"
+   internal="xcvr_native_a10_0.rx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_analogreset" internal="rx_analogreset" />
+ </interface>
+ <interface
+   name="rx_cal_busy"
+   internal="xcvr_native_a10_0.rx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="rx_cal_busy" internal="rx_cal_busy" />
+ </interface>
+ <interface
+   name="rx_cdr_refclk0"
+   internal="xcvr_native_a10_0.rx_cdr_refclk0"
+   type="conduit"
+   dir="end">
+  <port name="rx_cdr_refclk0" internal="rx_cdr_refclk0" />
+ </interface>
+ <interface
+   name="rx_clkout"
+   internal="xcvr_native_a10_0.rx_clkout"
+   type="conduit"
+   dir="end">
+  <port name="rx_clkout" internal="rx_clkout" />
+ </interface>
+ <interface
+   name="rx_control"
+   internal="xcvr_native_a10_0.rx_control"
+   type="conduit"
+   dir="end">
+  <port name="rx_control" internal="rx_control" />
+ </interface>
+ <interface
+   name="rx_coreclkin"
+   internal="xcvr_native_a10_0.rx_coreclkin"
+   type="conduit"
+   dir="end">
+  <port name="rx_coreclkin" internal="rx_coreclkin" />
+ </interface>
+ <interface
+   name="rx_digitalreset"
+   internal="xcvr_native_a10_0.rx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_digitalreset" internal="rx_digitalreset" />
+ </interface>
+ <interface
+   name="rx_enh_blk_lock"
+   internal="xcvr_native_a10_0.rx_enh_blk_lock"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_blk_lock" internal="rx_enh_blk_lock" />
+ </interface>
+ <interface
+   name="rx_enh_data_valid"
+   internal="xcvr_native_a10_0.rx_enh_data_valid"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_data_valid" internal="rx_enh_data_valid" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_del"
+   internal="xcvr_native_a10_0.rx_enh_fifo_del"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_del" internal="rx_enh_fifo_del" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_empty"
+   internal="xcvr_native_a10_0.rx_enh_fifo_empty"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_empty" internal="rx_enh_fifo_empty" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_full"
+   internal="xcvr_native_a10_0.rx_enh_fifo_full"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_full" internal="rx_enh_fifo_full" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_insert"
+   internal="xcvr_native_a10_0.rx_enh_fifo_insert"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_insert" internal="rx_enh_fifo_insert" />
+ </interface>
+ <interface
+   name="rx_enh_highber"
+   internal="xcvr_native_a10_0.rx_enh_highber"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_highber" internal="rx_enh_highber" />
+ </interface>
+ <interface
+   name="rx_is_lockedtodata"
+   internal="xcvr_native_a10_0.rx_is_lockedtodata"
+   type="conduit"
+   dir="end">
+  <port name="rx_is_lockedtodata" internal="rx_is_lockedtodata" />
+ </interface>
+ <interface
+   name="rx_is_lockedtoref"
+   internal="xcvr_native_a10_0.rx_is_lockedtoref"
+   type="conduit"
+   dir="end">
+  <port name="rx_is_lockedtoref" internal="rx_is_lockedtoref" />
+ </interface>
+ <interface
+   name="rx_parallel_data"
+   internal="xcvr_native_a10_0.rx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="rx_parallel_data" internal="rx_parallel_data" />
+ </interface>
+ <interface
+   name="rx_prbs_done"
+   internal="xcvr_native_a10_0.rx_prbs_done"
+   type="conduit"
+   dir="end">
+  <port name="rx_prbs_done" internal="rx_prbs_done" />
+ </interface>
+ <interface
+   name="rx_prbs_err"
+   internal="xcvr_native_a10_0.rx_prbs_err"
+   type="conduit"
+   dir="end">
+  <port name="rx_prbs_err" internal="rx_prbs_err" />
+ </interface>
+ <interface
+   name="rx_prbs_err_clr"
+   internal="xcvr_native_a10_0.rx_prbs_err_clr"
+   type="conduit"
+   dir="end">
+  <port name="rx_prbs_err_clr" internal="rx_prbs_err_clr" />
+ </interface>
+ <interface
+   name="rx_serial_data"
+   internal="xcvr_native_a10_0.rx_serial_data"
+   type="conduit"
+   dir="end">
+  <port name="rx_serial_data" internal="rx_serial_data" />
+ </interface>
+ <interface
+   name="rx_seriallpbken"
+   internal="xcvr_native_a10_0.rx_seriallpbken"
+   type="conduit"
+   dir="end">
+  <port name="rx_seriallpbken" internal="rx_seriallpbken" />
+ </interface>
+ <interface
+   name="tx_analogreset"
+   internal="xcvr_native_a10_0.tx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_analogreset" internal="tx_analogreset" />
+ </interface>
+ <interface
+   name="tx_cal_busy"
+   internal="xcvr_native_a10_0.tx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="tx_cal_busy" internal="tx_cal_busy" />
+ </interface>
+ <interface
+   name="tx_clkout"
+   internal="xcvr_native_a10_0.tx_clkout"
+   type="conduit"
+   dir="end">
+  <port name="tx_clkout" internal="tx_clkout" />
+ </interface>
+ <interface
+   name="tx_control"
+   internal="xcvr_native_a10_0.tx_control"
+   type="conduit"
+   dir="end">
+  <port name="tx_control" internal="tx_control" />
+ </interface>
+ <interface
+   name="tx_coreclkin"
+   internal="xcvr_native_a10_0.tx_coreclkin"
+   type="conduit"
+   dir="end">
+  <port name="tx_coreclkin" internal="tx_coreclkin" />
+ </interface>
+ <interface
+   name="tx_digitalreset"
+   internal="xcvr_native_a10_0.tx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_digitalreset" internal="tx_digitalreset" />
+ </interface>
+ <interface
+   name="tx_enh_data_valid"
+   internal="xcvr_native_a10_0.tx_enh_data_valid"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_data_valid" internal="tx_enh_data_valid" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_empty"
+   internal="xcvr_native_a10_0.tx_enh_fifo_empty"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_empty" internal="tx_enh_fifo_empty" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_full"
+   internal="xcvr_native_a10_0.tx_enh_fifo_full"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_full" internal="tx_enh_fifo_full" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_pempty"
+   internal="xcvr_native_a10_0.tx_enh_fifo_pempty"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_pempty" internal="tx_enh_fifo_pempty" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_pfull"
+   internal="xcvr_native_a10_0.tx_enh_fifo_pfull"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_pfull" internal="tx_enh_fifo_pfull" />
+ </interface>
+ <interface
+   name="tx_err_ins"
+   internal="xcvr_native_a10_0.tx_err_ins"
+   type="conduit"
+   dir="end">
+  <port name="tx_err_ins" internal="tx_err_ins" />
+ </interface>
+ <interface
+   name="tx_parallel_data"
+   internal="xcvr_native_a10_0.tx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="tx_parallel_data" internal="tx_parallel_data" />
+ </interface>
+ <interface name="tx_pma_clkout" internal="xcvr_native_a10_0.tx_pma_clkout" />
+ <interface
+   name="tx_pma_div_clkout"
+   internal="xcvr_native_a10_0.tx_pma_div_clkout" />
+ <interface
+   name="tx_serial_clk0"
+   internal="xcvr_native_a10_0.tx_serial_clk0"
+   type="conduit"
+   dir="end">
+  <port name="tx_serial_clk0" internal="tx_serial_clk0" />
+ </interface>
+ <interface
+   name="tx_serial_data"
+   internal="xcvr_native_a10_0.tx_serial_data"
+   type="conduit"
+   dir="end">
+  <port name="tx_serial_data" internal="tx_serial_data" />
+ </interface>
+ <interface
+   name="unused_rx_control"
+   internal="xcvr_native_a10_0.unused_rx_control"
+   type="conduit"
+   dir="end">
+  <port name="unused_rx_control" internal="unused_rx_control" />
+ </interface>
+ <interface
+   name="unused_rx_parallel_data"
+   internal="xcvr_native_a10_0.unused_rx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="unused_rx_parallel_data" internal="unused_rx_parallel_data" />
+ </interface>
+ <interface
+   name="unused_tx_control"
+   internal="xcvr_native_a10_0.unused_tx_control"
+   type="conduit"
+   dir="end">
+  <port name="unused_tx_control" internal="unused_tx_control" />
+ </interface>
+ <interface
+   name="unused_tx_parallel_data"
+   internal="xcvr_native_a10_0.unused_tx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="unused_tx_parallel_data" internal="unused_tx_parallel_data" />
+ </interface>
+ <module
+   name="xcvr_native_a10_0"
+   kind="altera_xcvr_native_a10"
+   version="19.1"
+   enabled="1"
+   autoexport="1">
+  <parameter name="anlg_enable_rx_default_ovr" value="0" />
+  <parameter name="anlg_enable_tx_default_ovr" value="0" />
+  <parameter name="anlg_link" value="sr" />
+  <parameter name="anlg_rx_adp_ctle_acgain_4s">radp_ctle_acgain_4s_1</parameter>
+  <parameter name="anlg_rx_adp_ctle_eqz_1s_sel">radp_ctle_eqz_1s_sel_3</parameter>
+  <parameter name="anlg_rx_adp_dfe_fxtap1" value="radp_dfe_fxtap1_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap10" value="radp_dfe_fxtap10_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap11" value="radp_dfe_fxtap11_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap2" value="radp_dfe_fxtap2_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap3" value="radp_dfe_fxtap3_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap4" value="radp_dfe_fxtap4_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap5" value="radp_dfe_fxtap5_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap6" value="radp_dfe_fxtap6_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap7" value="radp_dfe_fxtap7_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap8" value="radp_dfe_fxtap8_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap9" value="radp_dfe_fxtap9_0" />
+  <parameter name="anlg_rx_adp_vga_sel" value="radp_vga_sel_2" />
+  <parameter name="anlg_rx_eq_dc_gain_trim" value="stg2_gain7" />
+  <parameter name="anlg_rx_one_stage_enable" value="s1_mode" />
+  <parameter name="anlg_rx_term_sel" value="r_r1" />
+  <parameter name="anlg_tx_analog_mode" value="user_custom" />
+  <parameter name="anlg_tx_compensation_en" value="enable" />
+  <parameter name="anlg_tx_pre_emp_sign_1st_post_tap" value="fir_post_1t_neg" />
+  <parameter name="anlg_tx_pre_emp_sign_2nd_post_tap" value="fir_post_2t_neg" />
+  <parameter name="anlg_tx_pre_emp_sign_pre_tap_1t" value="fir_pre_1t_neg" />
+  <parameter name="anlg_tx_pre_emp_sign_pre_tap_2t" value="fir_pre_2t_neg" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_1st_post_tap" value="0" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_2nd_post_tap" value="0" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_pre_tap_1t" value="0" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_pre_tap_2t" value="0" />
+  <parameter name="anlg_tx_slew_rate_ctrl" value="slew_r7" />
+  <parameter name="anlg_tx_term_sel" value="r_r1" />
+  <parameter name="anlg_tx_vod_output_swing_ctrl" value="0" />
+  <parameter name="anlg_voltage" value="1_1V" />
+  <parameter name="base_device" value="NIGHTFURY5" />
+  <parameter name="bonded_mode" value="not_bonded" />
+  <parameter name="cdr_refclk_cnt" value="1" />
+  <parameter name="cdr_refclk_select" value="0" />
+  <parameter name="channels" value="4" />
+  <parameter name="design_environment" value="NATIVE" />
+  <parameter name="device" value="10AX115U3F45E2SG" />
+  <parameter name="device_family" value="Arria 10" />
+  <parameter name="disable_continuous_dfe" value="false" />
+  <parameter name="duplex_mode" value="duplex" />
+  <parameter name="enable_analog_settings" value="0" />
+  <parameter name="enable_hard_reset" value="0" />
+  <parameter name="enable_hip" value="0" />
+  <parameter name="enable_parallel_loopback" value="0" />
+  <parameter name="enable_pcie_data_mask_option" value="0" />
+  <parameter name="enable_pcie_dfe_ip" value="false" />
+  <parameter name="enable_port_krfec_rx_enh_frame" value="0" />
+  <parameter name="enable_port_krfec_rx_enh_frame_diag_status" value="0" />
+  <parameter name="enable_port_krfec_tx_enh_frame" value="0" />
+  <parameter name="enable_port_pipe_rx_polarity" value="0" />
+  <parameter name="enable_port_rx_analog_reset_ack" value="0" />
+  <parameter name="enable_port_rx_enh_bitslip" value="0" />
+  <parameter name="enable_port_rx_enh_blk_lock" value="1" />
+  <parameter name="enable_port_rx_enh_clr_errblk_count" value="0" />
+  <parameter name="enable_port_rx_enh_clr_errblk_count_c10" value="0" />
+  <parameter name="enable_port_rx_enh_crc32_err" value="0" />
+  <parameter name="enable_port_rx_enh_data_valid" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_align_clr" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_align_val" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_cnt" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_del" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_empty" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_full" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_insert" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_pempty" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_pfull" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_rd_en" value="0" />
+  <parameter name="enable_port_rx_enh_frame" value="0" />
+  <parameter name="enable_port_rx_enh_frame_diag_status" value="0" />
+  <parameter name="enable_port_rx_enh_frame_lock" value="0" />
+  <parameter name="enable_port_rx_enh_highber" value="1" />
+  <parameter name="enable_port_rx_enh_highber_clr_cnt" value="0" />
+  <parameter name="enable_port_rx_is_lockedtodata" value="1" />
+  <parameter name="enable_port_rx_is_lockedtoref" value="1" />
+  <parameter name="enable_port_rx_pma_clkout" value="0" />
+  <parameter name="enable_port_rx_pma_clkslip" value="0" />
+  <parameter name="enable_port_rx_pma_div_clkout" value="0" />
+  <parameter name="enable_port_rx_pma_iqtxrx_clkout" value="0" />
+  <parameter name="enable_port_rx_pma_qpipulldn" value="0" />
+  <parameter name="enable_port_rx_polinv" value="0" />
+  <parameter name="enable_port_rx_seriallpbken" value="1" />
+  <parameter name="enable_port_rx_seriallpbken_tx" value="1" />
+  <parameter name="enable_port_rx_signaldetect" value="0" />
+  <parameter name="enable_port_rx_std_bitrev_ena" value="0" />
+  <parameter name="enable_port_rx_std_bitslip" value="0" />
+  <parameter name="enable_port_rx_std_bitslipboundarysel" value="0" />
+  <parameter name="enable_port_rx_std_byterev_ena" value="0" />
+  <parameter name="enable_port_rx_std_pcfifo_empty" value="0" />
+  <parameter name="enable_port_rx_std_pcfifo_full" value="0" />
+  <parameter name="enable_port_rx_std_rmfifo_empty" value="0" />
+  <parameter name="enable_port_rx_std_rmfifo_full" value="0" />
+  <parameter name="enable_port_rx_std_signaldetect" value="0" />
+  <parameter name="enable_port_rx_std_wa_a1a2size" value="0" />
+  <parameter name="enable_port_rx_std_wa_patternalign" value="0" />
+  <parameter name="enable_port_tx_analog_reset_ack" value="0" />
+  <parameter name="enable_port_tx_enh_bitslip" value="0" />
+  <parameter name="enable_port_tx_enh_fifo_cnt" value="0" />
+  <parameter name="enable_port_tx_enh_fifo_empty" value="1" />
+  <parameter name="enable_port_tx_enh_fifo_full" value="1" />
+  <parameter name="enable_port_tx_enh_fifo_pempty" value="1" />
+  <parameter name="enable_port_tx_enh_fifo_pfull" value="1" />
+  <parameter name="enable_port_tx_enh_frame" value="0" />
+  <parameter name="enable_port_tx_enh_frame_burst_en" value="0" />
+  <parameter name="enable_port_tx_enh_frame_diag_status" value="0" />
+  <parameter name="enable_port_tx_pma_clkout" value="0" />
+  <parameter name="enable_port_tx_pma_div_clkout" value="0" />
+  <parameter name="enable_port_tx_pma_elecidle" value="0" />
+  <parameter name="enable_port_tx_pma_iqtxrx_clkout" value="0" />
+  <parameter name="enable_port_tx_pma_qpipulldn" value="0" />
+  <parameter name="enable_port_tx_pma_qpipullup" value="0" />
+  <parameter name="enable_port_tx_pma_rxfound" value="0" />
+  <parameter name="enable_port_tx_pma_txdetectrx" value="0" />
+  <parameter name="enable_port_tx_polinv" value="0" />
+  <parameter name="enable_port_tx_std_bitslipboundarysel" value="0" />
+  <parameter name="enable_port_tx_std_pcfifo_empty" value="0" />
+  <parameter name="enable_port_tx_std_pcfifo_full" value="0" />
+  <parameter name="enable_ports_adaptation" value="0" />
+  <parameter name="enable_ports_pipe_g3_analog" value="0" />
+  <parameter name="enable_ports_pipe_hclk" value="0" />
+  <parameter name="enable_ports_pipe_rx_elecidle" value="0" />
+  <parameter name="enable_ports_pipe_sw" value="0" />
+  <parameter name="enable_ports_rx_manual_cdr_mode" value="0" />
+  <parameter name="enable_ports_rx_manual_ppm" value="0" />
+  <parameter name="enable_ports_rx_prbs" value="1" />
+  <parameter name="enable_simple_interface" value="1" />
+  <parameter name="enable_skp_ports" value="0" />
+  <parameter name="enable_split_interface" value="0" />
+  <parameter name="enable_transparent_pcs" value="0" />
+  <parameter name="enable_upi_pipeline_options" value="0" />
+  <parameter name="enh_low_latency_enable" value="0" />
+  <parameter name="enh_pcs_pma_width" value="32" />
+  <parameter name="enh_pld_pcs_width" value="66" />
+  <parameter name="enh_rx_64b66b_enable" value="1" />
+  <parameter name="enh_rx_bitslip_enable" value="0" />
+  <parameter name="enh_rx_blksync_enable" value="1" />
+  <parameter name="enh_rx_crcchk_enable" value="0" />
+  <parameter name="enh_rx_descram_enable" value="1" />
+  <parameter name="enh_rx_dispchk_enable" value="0" />
+  <parameter name="enh_rx_frmsync_enable" value="0" />
+  <parameter name="enh_rx_frmsync_mfrm_length" value="2048" />
+  <parameter name="enh_rx_krfec_err_mark_enable" value="0" />
+  <parameter name="enh_rx_krfec_err_mark_type" value="10G" />
+  <parameter name="enh_rx_polinv_enable" value="0" />
+  <parameter name="enh_rxfifo_align_del" value="0" />
+  <parameter name="enh_rxfifo_control_del" value="0" />
+  <parameter name="enh_rxfifo_mode" value="10GBase-R" />
+  <parameter name="enh_rxfifo_pempty" value="2" />
+  <parameter name="enh_rxfifo_pfull" value="23" />
+  <parameter name="enh_rxtxfifo_double_width" value="0" />
+  <parameter name="enh_tx_64b66b_enable" value="1" />
+  <parameter name="enh_tx_bitslip_enable" value="0" />
+  <parameter name="enh_tx_crcerr_enable" value="0" />
+  <parameter name="enh_tx_crcgen_enable" value="0" />
+  <parameter name="enh_tx_dispgen_enable" value="0" />
+  <parameter name="enh_tx_frmgen_burst_enable" value="0" />
+  <parameter name="enh_tx_frmgen_enable" value="0" />
+  <parameter name="enh_tx_frmgen_mfrm_length" value="2048" />
+  <parameter name="enh_tx_krfec_burst_err_enable" value="0" />
+  <parameter name="enh_tx_krfec_burst_err_len" value="1" />
+  <parameter name="enh_tx_polinv_enable" value="0" />
+  <parameter name="enh_tx_randomdispbit_enable" value="0" />
+  <parameter name="enh_tx_scram_enable" value="1" />
+  <parameter name="enh_tx_scram_seed" value="288230376151711743" />
+  <parameter name="enh_tx_sh_err" value="0" />
+  <parameter name="enh_txfifo_mode" value="Phase compensation" />
+  <parameter name="enh_txfifo_pempty" value="2" />
+  <parameter name="enh_txfifo_pfull" value="11" />
+  <parameter name="generate_add_hdl_instance_example" value="0" />
+  <parameter name="generate_docs" value="1" />
+  <parameter name="message_level" value="error" />
+  <parameter name="number_physical_bonding_clocks" value="1" />
+  <parameter name="pcie_rate_match" value="Bypass" />
+  <parameter name="pcs_direct_width" value="8" />
+  <parameter name="pcs_tx_delay1_ctrl" value="delay1_path0" />
+  <parameter name="pcs_tx_delay1_data_sel" value="one_ff_delay" />
+  <parameter name="pcs_tx_delay2_ctrl" value="delay2_path0" />
+  <parameter name="pll_select" value="0" />
+  <parameter name="plls" value="1" />
+  <parameter name="pma_mode" value="basic" />
+  <parameter name="protocol_mode" value="teng_baser_mode" />
+  <parameter name="rcfg_enable" value="1" />
+  <parameter name="rcfg_enable_avmm_busy_port" value="0" />
+  <parameter name="rcfg_file_prefix">altera_xcvr_native_a10</parameter>
+  <parameter name="rcfg_h_file_enable" value="1" />
+  <parameter name="rcfg_iface_enable" value="0" />
+  <parameter name="rcfg_jtag_enable" value="1" />
+  <parameter name="rcfg_mif_file_enable" value="1" />
+  <parameter name="rcfg_multi_enable" value="0" />
+  <parameter name="rcfg_profile_cnt" value="2" />
+  <parameter name="rcfg_profile_data0" value="" />
+  <parameter name="rcfg_profile_data1" value="" />
+  <parameter name="rcfg_profile_data2" value="" />
+  <parameter name="rcfg_profile_data3" value="" />
+  <parameter name="rcfg_profile_data4" value="" />
+  <parameter name="rcfg_profile_data5" value="" />
+  <parameter name="rcfg_profile_data6" value="" />
+  <parameter name="rcfg_profile_data7" value="" />
+  <parameter name="rcfg_profile_select" value="1" />
+  <parameter name="rcfg_reduced_files_enable" value="0" />
+  <parameter name="rcfg_separate_avmm_busy" value="0" />
+  <parameter name="rcfg_shared" value="1" />
+  <parameter name="rcfg_sv_file_enable" value="1" />
+  <parameter name="rx_pma_ctle_adaptation_mode" value="manual" />
+  <parameter name="rx_pma_dfe_adaptation_mode" value="disabled" />
+  <parameter name="rx_pma_dfe_fixed_taps" value="3" />
+  <parameter name="rx_pma_div_clkout_divider" value="0" />
+  <parameter name="rx_ppm_detect_threshold" value="1000" />
+  <parameter name="set_capability_reg_enable" value="1" />
+  <parameter name="set_cdr_refclk_freq" value="644.531250" />
+  <parameter name="set_csr_soft_logic_enable" value="1" />
+  <parameter name="set_data_rate" value="10312.5" />
+  <parameter name="set_disconnect_analog_resets" value="0" />
+  <parameter name="set_embedded_debug_enable" value="0" />
+  <parameter name="set_enable_calibration" value="0" />
+  <parameter name="set_hip_cal_en" value="0" />
+  <parameter name="set_odi_soft_logic_enable" value="0" />
+  <parameter name="set_pcs_bonding_master" value="Auto" />
+  <parameter name="set_prbs_soft_logic_enable" value="1" />
+  <parameter name="set_rcfg_emb_strm_enable" value="0" />
+  <parameter name="set_user_identifier" value="0" />
+  <parameter name="sim_reduced_counters" value="false" />
+  <parameter name="std_data_mask_count_multi" value="0" />
+  <parameter name="std_low_latency_bypass_enable" value="0" />
+  <parameter name="std_pcs_pma_width" value="10" />
+  <parameter name="std_rx_8b10b_enable" value="0" />
+  <parameter name="std_rx_bitrev_enable" value="0" />
+  <parameter name="std_rx_byte_deser_mode" value="Disabled" />
+  <parameter name="std_rx_byterev_enable" value="0" />
+  <parameter name="std_rx_pcfifo_mode" value="low_latency" />
+  <parameter name="std_rx_polinv_enable" value="0" />
+  <parameter name="std_rx_rmfifo_mode" value="disabled" />
+  <parameter name="std_rx_rmfifo_pattern_n" value="0" />
+  <parameter name="std_rx_rmfifo_pattern_p" value="0" />
+  <parameter name="std_rx_word_aligner_fast_sync_status_enable" value="0" />
+  <parameter name="std_rx_word_aligner_mode" value="bitslip" />
+  <parameter name="std_rx_word_aligner_pattern" value="0" />
+  <parameter name="std_rx_word_aligner_pattern_len" value="7" />
+  <parameter name="std_rx_word_aligner_renumber" value="3" />
+  <parameter name="std_rx_word_aligner_rgnumber" value="3" />
+  <parameter name="std_rx_word_aligner_rknumber" value="3" />
+  <parameter name="std_rx_word_aligner_rvnumber" value="0" />
+  <parameter name="std_tx_8b10b_disp_ctrl_enable" value="0" />
+  <parameter name="std_tx_8b10b_enable" value="0" />
+  <parameter name="std_tx_bitrev_enable" value="0" />
+  <parameter name="std_tx_bitslip_enable" value="0" />
+  <parameter name="std_tx_byte_ser_mode" value="Disabled" />
+  <parameter name="std_tx_byterev_enable" value="0" />
+  <parameter name="std_tx_pcfifo_mode" value="low_latency" />
+  <parameter name="std_tx_polinv_enable" value="0" />
+  <parameter name="support_mode" value="user_mode" />
+  <parameter name="tx_pma_clk_div" value="1" />
+  <parameter name="tx_pma_div_clkout_divider" value="33" />
+  <parameter name="validation_rule_select" value="" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_48/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_48/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..0cd5157ee40b2b4afba70f273e3ce4a86eddd40d
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_48/compile_ip.tcl
@@ -0,0 +1,35 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_phy_10gbase_r_48/sim"
+
+    
+  vcom      "$IP_DIR/ip_arria10_e2sg_phy_10gbase_r_48.vhd"                                                                    
diff --git a/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_48/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_48/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..4723a9d7c4592bdf870979da5a0f539181fc6cad
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_48/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_phy_10gbase_r_48
+hdl_library_clause_name = ip_arria10_e2sg_phy_10gbase_r_48_altera_xcvr_native_a10_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_native_a10_194
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_48/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_phy_10gbase_r_48/ip_arria10_e2sg_phy_10gbase_r_48.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_phy_10gbase_r_48.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_48/ip_arria10_e2sg_phy_10gbase_r_48.qsys b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_48/ip_arria10_e2sg_phy_10gbase_r_48.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..f4ae71f53f4e6df729599c1f522fdc0a2b5fd3f3
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/phy_10gbase_r_48/ip_arria10_e2sg_phy_10gbase_r_48.qsys
@@ -0,0 +1,627 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_phy_10gbase_r_48">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element xcvr_native_a10_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="reconfig_avmm"
+   internal="xcvr_native_a10_0.reconfig_avmm"
+   type="conduit"
+   dir="end">
+  <port name="reconfig_address" internal="reconfig_address" />
+  <port name="reconfig_read" internal="reconfig_read" />
+  <port name="reconfig_readdata" internal="reconfig_readdata" />
+  <port name="reconfig_waitrequest" internal="reconfig_waitrequest" />
+  <port name="reconfig_write" internal="reconfig_write" />
+  <port name="reconfig_writedata" internal="reconfig_writedata" />
+ </interface>
+ <interface
+   name="reconfig_clk"
+   internal="xcvr_native_a10_0.reconfig_clk"
+   type="conduit"
+   dir="end">
+  <port name="reconfig_clk" internal="reconfig_clk" />
+ </interface>
+ <interface
+   name="reconfig_reset"
+   internal="xcvr_native_a10_0.reconfig_reset"
+   type="conduit"
+   dir="end">
+  <port name="reconfig_reset" internal="reconfig_reset" />
+ </interface>
+ <interface
+   name="rx_analogreset"
+   internal="xcvr_native_a10_0.rx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_analogreset" internal="rx_analogreset" />
+ </interface>
+ <interface
+   name="rx_cal_busy"
+   internal="xcvr_native_a10_0.rx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="rx_cal_busy" internal="rx_cal_busy" />
+ </interface>
+ <interface
+   name="rx_cdr_refclk0"
+   internal="xcvr_native_a10_0.rx_cdr_refclk0"
+   type="conduit"
+   dir="end">
+  <port name="rx_cdr_refclk0" internal="rx_cdr_refclk0" />
+ </interface>
+ <interface
+   name="rx_clkout"
+   internal="xcvr_native_a10_0.rx_clkout"
+   type="conduit"
+   dir="end">
+  <port name="rx_clkout" internal="rx_clkout" />
+ </interface>
+ <interface
+   name="rx_control"
+   internal="xcvr_native_a10_0.rx_control"
+   type="conduit"
+   dir="end">
+  <port name="rx_control" internal="rx_control" />
+ </interface>
+ <interface
+   name="rx_coreclkin"
+   internal="xcvr_native_a10_0.rx_coreclkin"
+   type="conduit"
+   dir="end">
+  <port name="rx_coreclkin" internal="rx_coreclkin" />
+ </interface>
+ <interface
+   name="rx_digitalreset"
+   internal="xcvr_native_a10_0.rx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_digitalreset" internal="rx_digitalreset" />
+ </interface>
+ <interface
+   name="rx_enh_blk_lock"
+   internal="xcvr_native_a10_0.rx_enh_blk_lock"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_blk_lock" internal="rx_enh_blk_lock" />
+ </interface>
+ <interface
+   name="rx_enh_data_valid"
+   internal="xcvr_native_a10_0.rx_enh_data_valid"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_data_valid" internal="rx_enh_data_valid" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_del"
+   internal="xcvr_native_a10_0.rx_enh_fifo_del"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_del" internal="rx_enh_fifo_del" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_empty"
+   internal="xcvr_native_a10_0.rx_enh_fifo_empty"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_empty" internal="rx_enh_fifo_empty" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_full"
+   internal="xcvr_native_a10_0.rx_enh_fifo_full"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_full" internal="rx_enh_fifo_full" />
+ </interface>
+ <interface
+   name="rx_enh_fifo_insert"
+   internal="xcvr_native_a10_0.rx_enh_fifo_insert"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_fifo_insert" internal="rx_enh_fifo_insert" />
+ </interface>
+ <interface
+   name="rx_enh_highber"
+   internal="xcvr_native_a10_0.rx_enh_highber"
+   type="conduit"
+   dir="end">
+  <port name="rx_enh_highber" internal="rx_enh_highber" />
+ </interface>
+ <interface
+   name="rx_is_lockedtodata"
+   internal="xcvr_native_a10_0.rx_is_lockedtodata"
+   type="conduit"
+   dir="end">
+  <port name="rx_is_lockedtodata" internal="rx_is_lockedtodata" />
+ </interface>
+ <interface
+   name="rx_is_lockedtoref"
+   internal="xcvr_native_a10_0.rx_is_lockedtoref"
+   type="conduit"
+   dir="end">
+  <port name="rx_is_lockedtoref" internal="rx_is_lockedtoref" />
+ </interface>
+ <interface
+   name="rx_parallel_data"
+   internal="xcvr_native_a10_0.rx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="rx_parallel_data" internal="rx_parallel_data" />
+ </interface>
+ <interface
+   name="rx_prbs_done"
+   internal="xcvr_native_a10_0.rx_prbs_done"
+   type="conduit"
+   dir="end">
+  <port name="rx_prbs_done" internal="rx_prbs_done" />
+ </interface>
+ <interface
+   name="rx_prbs_err"
+   internal="xcvr_native_a10_0.rx_prbs_err"
+   type="conduit"
+   dir="end">
+  <port name="rx_prbs_err" internal="rx_prbs_err" />
+ </interface>
+ <interface
+   name="rx_prbs_err_clr"
+   internal="xcvr_native_a10_0.rx_prbs_err_clr"
+   type="conduit"
+   dir="end">
+  <port name="rx_prbs_err_clr" internal="rx_prbs_err_clr" />
+ </interface>
+ <interface
+   name="rx_serial_data"
+   internal="xcvr_native_a10_0.rx_serial_data"
+   type="conduit"
+   dir="end">
+  <port name="rx_serial_data" internal="rx_serial_data" />
+ </interface>
+ <interface
+   name="rx_seriallpbken"
+   internal="xcvr_native_a10_0.rx_seriallpbken"
+   type="conduit"
+   dir="end">
+  <port name="rx_seriallpbken" internal="rx_seriallpbken" />
+ </interface>
+ <interface
+   name="tx_analogreset"
+   internal="xcvr_native_a10_0.tx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_analogreset" internal="tx_analogreset" />
+ </interface>
+ <interface
+   name="tx_cal_busy"
+   internal="xcvr_native_a10_0.tx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="tx_cal_busy" internal="tx_cal_busy" />
+ </interface>
+ <interface
+   name="tx_clkout"
+   internal="xcvr_native_a10_0.tx_clkout"
+   type="conduit"
+   dir="end">
+  <port name="tx_clkout" internal="tx_clkout" />
+ </interface>
+ <interface
+   name="tx_control"
+   internal="xcvr_native_a10_0.tx_control"
+   type="conduit"
+   dir="end">
+  <port name="tx_control" internal="tx_control" />
+ </interface>
+ <interface
+   name="tx_coreclkin"
+   internal="xcvr_native_a10_0.tx_coreclkin"
+   type="conduit"
+   dir="end">
+  <port name="tx_coreclkin" internal="tx_coreclkin" />
+ </interface>
+ <interface
+   name="tx_digitalreset"
+   internal="xcvr_native_a10_0.tx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_digitalreset" internal="tx_digitalreset" />
+ </interface>
+ <interface
+   name="tx_enh_data_valid"
+   internal="xcvr_native_a10_0.tx_enh_data_valid"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_data_valid" internal="tx_enh_data_valid" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_empty"
+   internal="xcvr_native_a10_0.tx_enh_fifo_empty"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_empty" internal="tx_enh_fifo_empty" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_full"
+   internal="xcvr_native_a10_0.tx_enh_fifo_full"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_full" internal="tx_enh_fifo_full" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_pempty"
+   internal="xcvr_native_a10_0.tx_enh_fifo_pempty"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_pempty" internal="tx_enh_fifo_pempty" />
+ </interface>
+ <interface
+   name="tx_enh_fifo_pfull"
+   internal="xcvr_native_a10_0.tx_enh_fifo_pfull"
+   type="conduit"
+   dir="end">
+  <port name="tx_enh_fifo_pfull" internal="tx_enh_fifo_pfull" />
+ </interface>
+ <interface
+   name="tx_err_ins"
+   internal="xcvr_native_a10_0.tx_err_ins"
+   type="conduit"
+   dir="end">
+  <port name="tx_err_ins" internal="tx_err_ins" />
+ </interface>
+ <interface
+   name="tx_parallel_data"
+   internal="xcvr_native_a10_0.tx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="tx_parallel_data" internal="tx_parallel_data" />
+ </interface>
+ <interface name="tx_pma_clkout" internal="xcvr_native_a10_0.tx_pma_clkout" />
+ <interface
+   name="tx_pma_div_clkout"
+   internal="xcvr_native_a10_0.tx_pma_div_clkout" />
+ <interface
+   name="tx_serial_clk0"
+   internal="xcvr_native_a10_0.tx_serial_clk0"
+   type="conduit"
+   dir="end">
+  <port name="tx_serial_clk0" internal="tx_serial_clk0" />
+ </interface>
+ <interface
+   name="tx_serial_data"
+   internal="xcvr_native_a10_0.tx_serial_data"
+   type="conduit"
+   dir="end">
+  <port name="tx_serial_data" internal="tx_serial_data" />
+ </interface>
+ <interface
+   name="unused_rx_control"
+   internal="xcvr_native_a10_0.unused_rx_control"
+   type="conduit"
+   dir="end">
+  <port name="unused_rx_control" internal="unused_rx_control" />
+ </interface>
+ <interface
+   name="unused_rx_parallel_data"
+   internal="xcvr_native_a10_0.unused_rx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="unused_rx_parallel_data" internal="unused_rx_parallel_data" />
+ </interface>
+ <interface
+   name="unused_tx_control"
+   internal="xcvr_native_a10_0.unused_tx_control"
+   type="conduit"
+   dir="end">
+  <port name="unused_tx_control" internal="unused_tx_control" />
+ </interface>
+ <interface
+   name="unused_tx_parallel_data"
+   internal="xcvr_native_a10_0.unused_tx_parallel_data"
+   type="conduit"
+   dir="end">
+  <port name="unused_tx_parallel_data" internal="unused_tx_parallel_data" />
+ </interface>
+ <module
+   name="xcvr_native_a10_0"
+   kind="altera_xcvr_native_a10"
+   version="19.1"
+   enabled="1"
+   autoexport="1">
+  <parameter name="anlg_enable_rx_default_ovr" value="0" />
+  <parameter name="anlg_enable_tx_default_ovr" value="0" />
+  <parameter name="anlg_link" value="sr" />
+  <parameter name="anlg_rx_adp_ctle_acgain_4s">radp_ctle_acgain_4s_1</parameter>
+  <parameter name="anlg_rx_adp_ctle_eqz_1s_sel">radp_ctle_eqz_1s_sel_3</parameter>
+  <parameter name="anlg_rx_adp_dfe_fxtap1" value="radp_dfe_fxtap1_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap10" value="radp_dfe_fxtap10_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap11" value="radp_dfe_fxtap11_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap2" value="radp_dfe_fxtap2_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap3" value="radp_dfe_fxtap3_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap4" value="radp_dfe_fxtap4_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap5" value="radp_dfe_fxtap5_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap6" value="radp_dfe_fxtap6_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap7" value="radp_dfe_fxtap7_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap8" value="radp_dfe_fxtap8_0" />
+  <parameter name="anlg_rx_adp_dfe_fxtap9" value="radp_dfe_fxtap9_0" />
+  <parameter name="anlg_rx_adp_vga_sel" value="radp_vga_sel_2" />
+  <parameter name="anlg_rx_eq_dc_gain_trim" value="stg2_gain7" />
+  <parameter name="anlg_rx_one_stage_enable" value="s1_mode" />
+  <parameter name="anlg_rx_term_sel" value="r_r1" />
+  <parameter name="anlg_tx_analog_mode" value="user_custom" />
+  <parameter name="anlg_tx_compensation_en" value="enable" />
+  <parameter name="anlg_tx_pre_emp_sign_1st_post_tap" value="fir_post_1t_neg" />
+  <parameter name="anlg_tx_pre_emp_sign_2nd_post_tap" value="fir_post_2t_neg" />
+  <parameter name="anlg_tx_pre_emp_sign_pre_tap_1t" value="fir_pre_1t_neg" />
+  <parameter name="anlg_tx_pre_emp_sign_pre_tap_2t" value="fir_pre_2t_neg" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_1st_post_tap" value="0" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_2nd_post_tap" value="0" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_pre_tap_1t" value="0" />
+  <parameter name="anlg_tx_pre_emp_switching_ctrl_pre_tap_2t" value="0" />
+  <parameter name="anlg_tx_slew_rate_ctrl" value="slew_r7" />
+  <parameter name="anlg_tx_term_sel" value="r_r1" />
+  <parameter name="anlg_tx_vod_output_swing_ctrl" value="0" />
+  <parameter name="anlg_voltage" value="1_1V" />
+  <parameter name="base_device" value="NIGHTFURY5" />
+  <parameter name="bonded_mode" value="not_bonded" />
+  <parameter name="cdr_refclk_cnt" value="1" />
+  <parameter name="cdr_refclk_select" value="0" />
+  <parameter name="channels" value="48" />
+  <parameter name="design_environment" value="NATIVE" />
+  <parameter name="device" value="10AX115U3F45E2SG" />
+  <parameter name="device_family" value="Arria 10" />
+  <parameter name="disable_continuous_dfe" value="false" />
+  <parameter name="duplex_mode" value="duplex" />
+  <parameter name="enable_analog_settings" value="0" />
+  <parameter name="enable_hard_reset" value="0" />
+  <parameter name="enable_hip" value="0" />
+  <parameter name="enable_parallel_loopback" value="0" />
+  <parameter name="enable_pcie_data_mask_option" value="0" />
+  <parameter name="enable_pcie_dfe_ip" value="false" />
+  <parameter name="enable_port_krfec_rx_enh_frame" value="0" />
+  <parameter name="enable_port_krfec_rx_enh_frame_diag_status" value="0" />
+  <parameter name="enable_port_krfec_tx_enh_frame" value="0" />
+  <parameter name="enable_port_pipe_rx_polarity" value="0" />
+  <parameter name="enable_port_rx_analog_reset_ack" value="0" />
+  <parameter name="enable_port_rx_enh_bitslip" value="0" />
+  <parameter name="enable_port_rx_enh_blk_lock" value="1" />
+  <parameter name="enable_port_rx_enh_clr_errblk_count" value="0" />
+  <parameter name="enable_port_rx_enh_clr_errblk_count_c10" value="0" />
+  <parameter name="enable_port_rx_enh_crc32_err" value="0" />
+  <parameter name="enable_port_rx_enh_data_valid" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_align_clr" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_align_val" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_cnt" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_del" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_empty" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_full" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_insert" value="1" />
+  <parameter name="enable_port_rx_enh_fifo_pempty" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_pfull" value="0" />
+  <parameter name="enable_port_rx_enh_fifo_rd_en" value="0" />
+  <parameter name="enable_port_rx_enh_frame" value="0" />
+  <parameter name="enable_port_rx_enh_frame_diag_status" value="0" />
+  <parameter name="enable_port_rx_enh_frame_lock" value="0" />
+  <parameter name="enable_port_rx_enh_highber" value="1" />
+  <parameter name="enable_port_rx_enh_highber_clr_cnt" value="0" />
+  <parameter name="enable_port_rx_is_lockedtodata" value="1" />
+  <parameter name="enable_port_rx_is_lockedtoref" value="1" />
+  <parameter name="enable_port_rx_pma_clkout" value="0" />
+  <parameter name="enable_port_rx_pma_clkslip" value="0" />
+  <parameter name="enable_port_rx_pma_div_clkout" value="0" />
+  <parameter name="enable_port_rx_pma_iqtxrx_clkout" value="0" />
+  <parameter name="enable_port_rx_pma_qpipulldn" value="0" />
+  <parameter name="enable_port_rx_polinv" value="0" />
+  <parameter name="enable_port_rx_seriallpbken" value="1" />
+  <parameter name="enable_port_rx_seriallpbken_tx" value="1" />
+  <parameter name="enable_port_rx_signaldetect" value="0" />
+  <parameter name="enable_port_rx_std_bitrev_ena" value="0" />
+  <parameter name="enable_port_rx_std_bitslip" value="0" />
+  <parameter name="enable_port_rx_std_bitslipboundarysel" value="0" />
+  <parameter name="enable_port_rx_std_byterev_ena" value="0" />
+  <parameter name="enable_port_rx_std_pcfifo_empty" value="0" />
+  <parameter name="enable_port_rx_std_pcfifo_full" value="0" />
+  <parameter name="enable_port_rx_std_rmfifo_empty" value="0" />
+  <parameter name="enable_port_rx_std_rmfifo_full" value="0" />
+  <parameter name="enable_port_rx_std_signaldetect" value="0" />
+  <parameter name="enable_port_rx_std_wa_a1a2size" value="0" />
+  <parameter name="enable_port_rx_std_wa_patternalign" value="0" />
+  <parameter name="enable_port_tx_analog_reset_ack" value="0" />
+  <parameter name="enable_port_tx_enh_bitslip" value="0" />
+  <parameter name="enable_port_tx_enh_fifo_cnt" value="0" />
+  <parameter name="enable_port_tx_enh_fifo_empty" value="1" />
+  <parameter name="enable_port_tx_enh_fifo_full" value="1" />
+  <parameter name="enable_port_tx_enh_fifo_pempty" value="1" />
+  <parameter name="enable_port_tx_enh_fifo_pfull" value="1" />
+  <parameter name="enable_port_tx_enh_frame" value="0" />
+  <parameter name="enable_port_tx_enh_frame_burst_en" value="0" />
+  <parameter name="enable_port_tx_enh_frame_diag_status" value="0" />
+  <parameter name="enable_port_tx_pma_clkout" value="0" />
+  <parameter name="enable_port_tx_pma_div_clkout" value="0" />
+  <parameter name="enable_port_tx_pma_elecidle" value="0" />
+  <parameter name="enable_port_tx_pma_iqtxrx_clkout" value="0" />
+  <parameter name="enable_port_tx_pma_qpipulldn" value="0" />
+  <parameter name="enable_port_tx_pma_qpipullup" value="0" />
+  <parameter name="enable_port_tx_pma_rxfound" value="0" />
+  <parameter name="enable_port_tx_pma_txdetectrx" value="0" />
+  <parameter name="enable_port_tx_polinv" value="0" />
+  <parameter name="enable_port_tx_std_bitslipboundarysel" value="0" />
+  <parameter name="enable_port_tx_std_pcfifo_empty" value="0" />
+  <parameter name="enable_port_tx_std_pcfifo_full" value="0" />
+  <parameter name="enable_ports_adaptation" value="0" />
+  <parameter name="enable_ports_pipe_g3_analog" value="0" />
+  <parameter name="enable_ports_pipe_hclk" value="0" />
+  <parameter name="enable_ports_pipe_rx_elecidle" value="0" />
+  <parameter name="enable_ports_pipe_sw" value="0" />
+  <parameter name="enable_ports_rx_manual_cdr_mode" value="0" />
+  <parameter name="enable_ports_rx_manual_ppm" value="0" />
+  <parameter name="enable_ports_rx_prbs" value="1" />
+  <parameter name="enable_simple_interface" value="1" />
+  <parameter name="enable_skp_ports" value="0" />
+  <parameter name="enable_split_interface" value="0" />
+  <parameter name="enable_transparent_pcs" value="0" />
+  <parameter name="enable_upi_pipeline_options" value="0" />
+  <parameter name="enh_low_latency_enable" value="0" />
+  <parameter name="enh_pcs_pma_width" value="32" />
+  <parameter name="enh_pld_pcs_width" value="66" />
+  <parameter name="enh_rx_64b66b_enable" value="1" />
+  <parameter name="enh_rx_bitslip_enable" value="0" />
+  <parameter name="enh_rx_blksync_enable" value="1" />
+  <parameter name="enh_rx_crcchk_enable" value="0" />
+  <parameter name="enh_rx_descram_enable" value="1" />
+  <parameter name="enh_rx_dispchk_enable" value="0" />
+  <parameter name="enh_rx_frmsync_enable" value="0" />
+  <parameter name="enh_rx_frmsync_mfrm_length" value="2048" />
+  <parameter name="enh_rx_krfec_err_mark_enable" value="0" />
+  <parameter name="enh_rx_krfec_err_mark_type" value="10G" />
+  <parameter name="enh_rx_polinv_enable" value="0" />
+  <parameter name="enh_rxfifo_align_del" value="0" />
+  <parameter name="enh_rxfifo_control_del" value="0" />
+  <parameter name="enh_rxfifo_mode" value="10GBase-R" />
+  <parameter name="enh_rxfifo_pempty" value="2" />
+  <parameter name="enh_rxfifo_pfull" value="23" />
+  <parameter name="enh_rxtxfifo_double_width" value="0" />
+  <parameter name="enh_tx_64b66b_enable" value="1" />
+  <parameter name="enh_tx_bitslip_enable" value="0" />
+  <parameter name="enh_tx_crcerr_enable" value="0" />
+  <parameter name="enh_tx_crcgen_enable" value="0" />
+  <parameter name="enh_tx_dispgen_enable" value="0" />
+  <parameter name="enh_tx_frmgen_burst_enable" value="0" />
+  <parameter name="enh_tx_frmgen_enable" value="0" />
+  <parameter name="enh_tx_frmgen_mfrm_length" value="2048" />
+  <parameter name="enh_tx_krfec_burst_err_enable" value="0" />
+  <parameter name="enh_tx_krfec_burst_err_len" value="1" />
+  <parameter name="enh_tx_polinv_enable" value="0" />
+  <parameter name="enh_tx_randomdispbit_enable" value="0" />
+  <parameter name="enh_tx_scram_enable" value="1" />
+  <parameter name="enh_tx_scram_seed" value="288230376151711743" />
+  <parameter name="enh_tx_sh_err" value="0" />
+  <parameter name="enh_txfifo_mode" value="Phase compensation" />
+  <parameter name="enh_txfifo_pempty" value="2" />
+  <parameter name="enh_txfifo_pfull" value="11" />
+  <parameter name="generate_add_hdl_instance_example" value="0" />
+  <parameter name="generate_docs" value="1" />
+  <parameter name="message_level" value="error" />
+  <parameter name="number_physical_bonding_clocks" value="1" />
+  <parameter name="pcie_rate_match" value="Bypass" />
+  <parameter name="pcs_direct_width" value="8" />
+  <parameter name="pcs_tx_delay1_ctrl" value="delay1_path0" />
+  <parameter name="pcs_tx_delay1_data_sel" value="one_ff_delay" />
+  <parameter name="pcs_tx_delay2_ctrl" value="delay2_path0" />
+  <parameter name="pll_select" value="0" />
+  <parameter name="plls" value="1" />
+  <parameter name="pma_mode" value="basic" />
+  <parameter name="protocol_mode" value="teng_baser_mode" />
+  <parameter name="rcfg_enable" value="1" />
+  <parameter name="rcfg_enable_avmm_busy_port" value="0" />
+  <parameter name="rcfg_file_prefix">altera_xcvr_native_a10</parameter>
+  <parameter name="rcfg_h_file_enable" value="1" />
+  <parameter name="rcfg_iface_enable" value="0" />
+  <parameter name="rcfg_jtag_enable" value="1" />
+  <parameter name="rcfg_mif_file_enable" value="1" />
+  <parameter name="rcfg_multi_enable" value="0" />
+  <parameter name="rcfg_profile_cnt" value="2" />
+  <parameter name="rcfg_profile_data0" value="" />
+  <parameter name="rcfg_profile_data1" value="" />
+  <parameter name="rcfg_profile_data2" value="" />
+  <parameter name="rcfg_profile_data3" value="" />
+  <parameter name="rcfg_profile_data4" value="" />
+  <parameter name="rcfg_profile_data5" value="" />
+  <parameter name="rcfg_profile_data6" value="" />
+  <parameter name="rcfg_profile_data7" value="" />
+  <parameter name="rcfg_profile_select" value="1" />
+  <parameter name="rcfg_reduced_files_enable" value="0" />
+  <parameter name="rcfg_separate_avmm_busy" value="0" />
+  <parameter name="rcfg_shared" value="1" />
+  <parameter name="rcfg_sv_file_enable" value="1" />
+  <parameter name="rx_pma_ctle_adaptation_mode" value="manual" />
+  <parameter name="rx_pma_dfe_adaptation_mode" value="disabled" />
+  <parameter name="rx_pma_dfe_fixed_taps" value="3" />
+  <parameter name="rx_pma_div_clkout_divider" value="0" />
+  <parameter name="rx_ppm_detect_threshold" value="1000" />
+  <parameter name="set_capability_reg_enable" value="1" />
+  <parameter name="set_cdr_refclk_freq" value="644.531250" />
+  <parameter name="set_csr_soft_logic_enable" value="1" />
+  <parameter name="set_data_rate" value="10312.5" />
+  <parameter name="set_disconnect_analog_resets" value="0" />
+  <parameter name="set_embedded_debug_enable" value="0" />
+  <parameter name="set_enable_calibration" value="0" />
+  <parameter name="set_hip_cal_en" value="0" />
+  <parameter name="set_odi_soft_logic_enable" value="0" />
+  <parameter name="set_pcs_bonding_master" value="Auto" />
+  <parameter name="set_prbs_soft_logic_enable" value="1" />
+  <parameter name="set_rcfg_emb_strm_enable" value="0" />
+  <parameter name="set_user_identifier" value="0" />
+  <parameter name="sim_reduced_counters" value="false" />
+  <parameter name="std_data_mask_count_multi" value="0" />
+  <parameter name="std_low_latency_bypass_enable" value="0" />
+  <parameter name="std_pcs_pma_width" value="10" />
+  <parameter name="std_rx_8b10b_enable" value="0" />
+  <parameter name="std_rx_bitrev_enable" value="0" />
+  <parameter name="std_rx_byte_deser_mode" value="Disabled" />
+  <parameter name="std_rx_byterev_enable" value="0" />
+  <parameter name="std_rx_pcfifo_mode" value="low_latency" />
+  <parameter name="std_rx_polinv_enable" value="0" />
+  <parameter name="std_rx_rmfifo_mode" value="disabled" />
+  <parameter name="std_rx_rmfifo_pattern_n" value="0" />
+  <parameter name="std_rx_rmfifo_pattern_p" value="0" />
+  <parameter name="std_rx_word_aligner_fast_sync_status_enable" value="0" />
+  <parameter name="std_rx_word_aligner_mode" value="bitslip" />
+  <parameter name="std_rx_word_aligner_pattern" value="0" />
+  <parameter name="std_rx_word_aligner_pattern_len" value="7" />
+  <parameter name="std_rx_word_aligner_renumber" value="3" />
+  <parameter name="std_rx_word_aligner_rgnumber" value="3" />
+  <parameter name="std_rx_word_aligner_rknumber" value="3" />
+  <parameter name="std_rx_word_aligner_rvnumber" value="0" />
+  <parameter name="std_tx_8b10b_disp_ctrl_enable" value="0" />
+  <parameter name="std_tx_8b10b_enable" value="0" />
+  <parameter name="std_tx_bitrev_enable" value="0" />
+  <parameter name="std_tx_bitslip_enable" value="0" />
+  <parameter name="std_tx_byte_ser_mode" value="Disabled" />
+  <parameter name="std_tx_byterev_enable" value="0" />
+  <parameter name="std_tx_pcfifo_mode" value="low_latency" />
+  <parameter name="std_tx_polinv_enable" value="0" />
+  <parameter name="support_mode" value="user_mode" />
+  <parameter name="tx_pma_clk_div" value="1" />
+  <parameter name="tx_pma_div_clkout_divider" value="33" />
+  <parameter name="validation_rule_select" value="" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/pll_clk125/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/pll_clk125/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..d3104e52cfcc79d3cbdc527a1c4f3258379ff5b5
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/pll_clk125/compile_ip.tcl
@@ -0,0 +1,34 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_pll_clk125/sim"
+   
+  vcom     "$IP_DIR/ip_arria10_e2sg_pll_clk125.vhd"                                              
diff --git a/libraries/technology/ip_arria10_e2sg/pll_clk125/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/pll_clk125/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..8fe6e7c5ba294776c89ad0a02100de15b2554bb6
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/pll_clk125/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_pll_clk125 
+hdl_library_clause_name = ip_arria10_e2sg_pll_clk125_altera_iopll_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_iopll_194
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/pll_clk125/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_pll_clk125/ip_arria10_e2sg_pll_clk125.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_pll_clk125.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/pll_clk125/ip_arria10_e2sg_pll_clk125.qsys b/libraries/technology/ip_arria10_e2sg/pll_clk125/ip_arria10_e2sg_pll_clk125.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..68b20e0418e9fe3d37c7967963bc857821890374
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/pll_clk125/ip_arria10_e2sg_pll_clk125.qsys
@@ -0,0 +1,376 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_pll_clk125">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element iopll_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos>
+        <entry>
+            <key>outclk0</key>
+            <value>
+                <connectionPointName>outclk0</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>20000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+        <entry>
+            <key>outclk1</key>
+            <value>
+                <connectionPointName>outclk1</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>50000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+        <entry>
+            <key>outclk2</key>
+            <value>
+                <connectionPointName>outclk2</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>100000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+        <entry>
+            <key>outclk3</key>
+            <value>
+                <connectionPointName>outclk3</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>125000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+    </connPtSystemInfos>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface name="locked" internal="iopll_0.locked" type="conduit" dir="end">
+  <port name="locked" internal="locked" />
+ </interface>
+ <interface name="outclk0" internal="iopll_0.outclk0" type="clock" dir="start">
+  <port name="outclk_0" internal="outclk_0" />
+ </interface>
+ <interface name="outclk1" internal="iopll_0.outclk1" type="clock" dir="start">
+  <port name="outclk_1" internal="outclk_1" />
+ </interface>
+ <interface name="outclk2" internal="iopll_0.outclk2" type="clock" dir="start">
+  <port name="outclk_2" internal="outclk_2" />
+ </interface>
+ <interface name="outclk3" internal="iopll_0.outclk3" type="clock" dir="start">
+  <port name="outclk_3" internal="outclk_3" />
+ </interface>
+ <interface name="refclk" internal="iopll_0.refclk" type="clock" dir="end">
+  <port name="refclk" internal="refclk" />
+ </interface>
+ <interface name="reset" internal="iopll_0.reset" type="reset" dir="end">
+  <port name="rst" internal="rst" />
+ </interface>
+ <module
+   name="iopll_0"
+   kind="altera_iopll"
+   version="19.3.0"
+   enabled="1"
+   autoexport="1">
+  <parameter name="gui_active_clk" value="false" />
+  <parameter name="gui_c_cnt_in_src0">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src1">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src2">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src3">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src4">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src5">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src6">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src7">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src8">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_cal_code_hex_file" value="iossm.hex" />
+  <parameter name="gui_cal_converge" value="false" />
+  <parameter name="gui_cal_error" value="cal_clean" />
+  <parameter name="gui_cascade_counter0" value="false" />
+  <parameter name="gui_cascade_counter1" value="false" />
+  <parameter name="gui_cascade_counter10" value="false" />
+  <parameter name="gui_cascade_counter11" value="false" />
+  <parameter name="gui_cascade_counter12" value="false" />
+  <parameter name="gui_cascade_counter13" value="false" />
+  <parameter name="gui_cascade_counter14" value="false" />
+  <parameter name="gui_cascade_counter15" value="false" />
+  <parameter name="gui_cascade_counter16" value="false" />
+  <parameter name="gui_cascade_counter17" value="false" />
+  <parameter name="gui_cascade_counter2" value="false" />
+  <parameter name="gui_cascade_counter3" value="false" />
+  <parameter name="gui_cascade_counter4" value="false" />
+  <parameter name="gui_cascade_counter5" value="false" />
+  <parameter name="gui_cascade_counter6" value="false" />
+  <parameter name="gui_cascade_counter7" value="false" />
+  <parameter name="gui_cascade_counter8" value="false" />
+  <parameter name="gui_cascade_counter9" value="false" />
+  <parameter name="gui_cascade_outclk_index" value="0" />
+  <parameter name="gui_clk_bad" value="false" />
+  <parameter name="gui_clock_name_global" value="false" />
+  <parameter name="gui_clock_name_string0" value="pll_clk20" />
+  <parameter name="gui_clock_name_string1" value="pll_clk50" />
+  <parameter name="gui_clock_name_string10" value="outclk10" />
+  <parameter name="gui_clock_name_string11" value="outclk11" />
+  <parameter name="gui_clock_name_string12" value="outclk12" />
+  <parameter name="gui_clock_name_string13" value="outclk13" />
+  <parameter name="gui_clock_name_string14" value="outclk14" />
+  <parameter name="gui_clock_name_string15" value="outclk15" />
+  <parameter name="gui_clock_name_string16" value="outclk16" />
+  <parameter name="gui_clock_name_string17" value="outclk17" />
+  <parameter name="gui_clock_name_string2" value="pll_clk100" />
+  <parameter name="gui_clock_name_string3" value="pll_clk125" />
+  <parameter name="gui_clock_name_string4" value="outclk4" />
+  <parameter name="gui_clock_name_string5" value="outclk5" />
+  <parameter name="gui_clock_name_string6" value="outclk6" />
+  <parameter name="gui_clock_name_string7" value="outclk7" />
+  <parameter name="gui_clock_name_string8" value="outclk8" />
+  <parameter name="gui_clock_name_string9" value="outclk9" />
+  <parameter name="gui_clock_to_compensate" value="0" />
+  <parameter name="gui_debug_mode" value="false" />
+  <parameter name="gui_divide_factor_c0" value="6" />
+  <parameter name="gui_divide_factor_c1" value="6" />
+  <parameter name="gui_divide_factor_c10" value="6" />
+  <parameter name="gui_divide_factor_c11" value="6" />
+  <parameter name="gui_divide_factor_c12" value="6" />
+  <parameter name="gui_divide_factor_c13" value="6" />
+  <parameter name="gui_divide_factor_c14" value="6" />
+  <parameter name="gui_divide_factor_c15" value="6" />
+  <parameter name="gui_divide_factor_c16" value="6" />
+  <parameter name="gui_divide_factor_c17" value="6" />
+  <parameter name="gui_divide_factor_c2" value="6" />
+  <parameter name="gui_divide_factor_c3" value="6" />
+  <parameter name="gui_divide_factor_c4" value="6" />
+  <parameter name="gui_divide_factor_c5" value="6" />
+  <parameter name="gui_divide_factor_c6" value="6" />
+  <parameter name="gui_divide_factor_c7" value="6" />
+  <parameter name="gui_divide_factor_c8" value="6" />
+  <parameter name="gui_divide_factor_c9" value="6" />
+  <parameter name="gui_divide_factor_n" value="1" />
+  <parameter name="gui_dps_cntr" value="C0" />
+  <parameter name="gui_dps_dir" value="Positive" />
+  <parameter name="gui_dps_num" value="1" />
+  <parameter name="gui_dsm_out_sel" value="1st_order" />
+  <parameter name="gui_duty_cycle0" value="50.0" />
+  <parameter name="gui_duty_cycle1" value="50.0" />
+  <parameter name="gui_duty_cycle10" value="50.0" />
+  <parameter name="gui_duty_cycle11" value="50.0" />
+  <parameter name="gui_duty_cycle12" value="50.0" />
+  <parameter name="gui_duty_cycle13" value="50.0" />
+  <parameter name="gui_duty_cycle14" value="50.0" />
+  <parameter name="gui_duty_cycle15" value="50.0" />
+  <parameter name="gui_duty_cycle16" value="50.0" />
+  <parameter name="gui_duty_cycle17" value="50.0" />
+  <parameter name="gui_duty_cycle2" value="50.0" />
+  <parameter name="gui_duty_cycle3" value="50.0" />
+  <parameter name="gui_duty_cycle4" value="50.0" />
+  <parameter name="gui_duty_cycle5" value="50.0" />
+  <parameter name="gui_duty_cycle6" value="50.0" />
+  <parameter name="gui_duty_cycle7" value="50.0" />
+  <parameter name="gui_duty_cycle8" value="50.0" />
+  <parameter name="gui_duty_cycle9" value="50.0" />
+  <parameter name="gui_en_adv_params" value="false" />
+  <parameter name="gui_en_dps_ports" value="false" />
+  <parameter name="gui_en_extclkout_ports" value="false" />
+  <parameter name="gui_en_lvds_ports" value="Disabled" />
+  <parameter name="gui_en_phout_ports" value="false" />
+  <parameter name="gui_en_reconf" value="false" />
+  <parameter name="gui_enable_cascade_in" value="false" />
+  <parameter name="gui_enable_cascade_out" value="false" />
+  <parameter name="gui_enable_mif_dps" value="false" />
+  <parameter name="gui_enable_output_counter_cascading" value="false" />
+  <parameter name="gui_enable_permit_cal" value="false" />
+  <parameter name="gui_existing_mif_file_path" value="~/pll.mif" />
+  <parameter name="gui_extclkout_0_source" value="C0" />
+  <parameter name="gui_extclkout_1_source" value="C0" />
+  <parameter name="gui_feedback_clock" value="Global Clock" />
+  <parameter name="gui_fix_vco_frequency" value="false" />
+  <parameter name="gui_fixed_vco_frequency" value="600.0" />
+  <parameter name="gui_fixed_vco_frequency_ps" value="1667.0" />
+  <parameter name="gui_frac_multiply_factor" value="1" />
+  <parameter name="gui_fractional_cout" value="32" />
+  <parameter name="gui_include_iossm" value="false" />
+  <parameter name="gui_location_type" value="I/O Bank" />
+  <parameter name="gui_lock_setting" value="Low Lock Time" />
+  <parameter name="gui_mif_config_name" value="unnamed" />
+  <parameter name="gui_mif_gen_options">Generate New MIF File</parameter>
+  <parameter name="gui_multiply_factor" value="6" />
+  <parameter name="gui_new_mif_file_path" value="~/pll.mif" />
+  <parameter name="gui_number_of_clocks" value="4" />
+  <parameter name="gui_operation_mode" value="direct" />
+  <parameter name="gui_output_clock_frequency0" value="20.0" />
+  <parameter name="gui_output_clock_frequency1" value="50.0" />
+  <parameter name="gui_output_clock_frequency10" value="100.0" />
+  <parameter name="gui_output_clock_frequency11" value="100.0" />
+  <parameter name="gui_output_clock_frequency12" value="100.0" />
+  <parameter name="gui_output_clock_frequency13" value="100.0" />
+  <parameter name="gui_output_clock_frequency14" value="100.0" />
+  <parameter name="gui_output_clock_frequency15" value="100.0" />
+  <parameter name="gui_output_clock_frequency16" value="100.0" />
+  <parameter name="gui_output_clock_frequency17" value="100.0" />
+  <parameter name="gui_output_clock_frequency2" value="100.0" />
+  <parameter name="gui_output_clock_frequency3" value="125.0" />
+  <parameter name="gui_output_clock_frequency4" value="100.0" />
+  <parameter name="gui_output_clock_frequency5" value="100.0" />
+  <parameter name="gui_output_clock_frequency6" value="100.0" />
+  <parameter name="gui_output_clock_frequency7" value="100.0" />
+  <parameter name="gui_output_clock_frequency8" value="100.0" />
+  <parameter name="gui_output_clock_frequency9" value="100.0" />
+  <parameter name="gui_output_clock_frequency_ps0" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps1" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps10" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps11" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps12" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps13" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps14" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps15" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps16" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps17" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps2" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps3" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps4" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps5" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps6" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps7" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps8" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps9" value="10000.0" />
+  <parameter name="gui_parameter_table_hex_file" value="seq_params_sim.hex" />
+  <parameter name="gui_phase_shift0" value="0.0" />
+  <parameter name="gui_phase_shift1" value="0.0" />
+  <parameter name="gui_phase_shift10" value="0.0" />
+  <parameter name="gui_phase_shift11" value="0.0" />
+  <parameter name="gui_phase_shift12" value="0.0" />
+  <parameter name="gui_phase_shift13" value="0.0" />
+  <parameter name="gui_phase_shift14" value="0.0" />
+  <parameter name="gui_phase_shift15" value="0.0" />
+  <parameter name="gui_phase_shift16" value="0.0" />
+  <parameter name="gui_phase_shift17" value="0.0" />
+  <parameter name="gui_phase_shift2" value="0.0" />
+  <parameter name="gui_phase_shift3" value="0.0" />
+  <parameter name="gui_phase_shift4" value="0.0" />
+  <parameter name="gui_phase_shift5" value="0.0" />
+  <parameter name="gui_phase_shift6" value="0.0" />
+  <parameter name="gui_phase_shift7" value="0.0" />
+  <parameter name="gui_phase_shift8" value="0.0" />
+  <parameter name="gui_phase_shift9" value="0.0" />
+  <parameter name="gui_phase_shift_deg0" value="0.0" />
+  <parameter name="gui_phase_shift_deg1" value="0.0" />
+  <parameter name="gui_phase_shift_deg10" value="0.0" />
+  <parameter name="gui_phase_shift_deg11" value="0.0" />
+  <parameter name="gui_phase_shift_deg12" value="0.0" />
+  <parameter name="gui_phase_shift_deg13" value="0.0" />
+  <parameter name="gui_phase_shift_deg14" value="0.0" />
+  <parameter name="gui_phase_shift_deg15" value="0.0" />
+  <parameter name="gui_phase_shift_deg16" value="0.0" />
+  <parameter name="gui_phase_shift_deg17" value="0.0" />
+  <parameter name="gui_phase_shift_deg2" value="0.0" />
+  <parameter name="gui_phase_shift_deg3" value="0.0" />
+  <parameter name="gui_phase_shift_deg4" value="0.0" />
+  <parameter name="gui_phase_shift_deg5" value="0.0" />
+  <parameter name="gui_phase_shift_deg6" value="0.0" />
+  <parameter name="gui_phase_shift_deg7" value="0.0" />
+  <parameter name="gui_phase_shift_deg8" value="0.0" />
+  <parameter name="gui_phase_shift_deg9" value="0.0" />
+  <parameter name="gui_phout_division" value="1" />
+  <parameter name="gui_pll_auto_reset" value="false" />
+  <parameter name="gui_pll_bandwidth_preset" value="Low" />
+  <parameter name="gui_pll_cal_done" value="false" />
+  <parameter name="gui_pll_cascading_mode" value="adjpllin" />
+  <parameter name="gui_pll_freqcal_en" value="true" />
+  <parameter name="gui_pll_freqcal_req_flag" value="true" />
+  <parameter name="gui_pll_m_cnt_in_src">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_pll_mode" value="Integer-N PLL" />
+  <parameter name="gui_pll_tclk_mux_en" value="false" />
+  <parameter name="gui_pll_tclk_sel" value="pll_tclk_m_src" />
+  <parameter name="gui_pll_type" value="S10_Simple" />
+  <parameter name="gui_pll_vco_freq_band_0">pll_freq_clk0_disabled</parameter>
+  <parameter name="gui_pll_vco_freq_band_1">pll_freq_clk1_disabled</parameter>
+  <parameter name="gui_prot_mode" value="UNUSED" />
+  <parameter name="gui_ps_units0" value="ps" />
+  <parameter name="gui_ps_units1" value="ps" />
+  <parameter name="gui_ps_units10" value="ps" />
+  <parameter name="gui_ps_units11" value="ps" />
+  <parameter name="gui_ps_units12" value="ps" />
+  <parameter name="gui_ps_units13" value="ps" />
+  <parameter name="gui_ps_units14" value="ps" />
+  <parameter name="gui_ps_units15" value="ps" />
+  <parameter name="gui_ps_units16" value="ps" />
+  <parameter name="gui_ps_units17" value="ps" />
+  <parameter name="gui_ps_units2" value="ps" />
+  <parameter name="gui_ps_units3" value="ps" />
+  <parameter name="gui_ps_units4" value="ps" />
+  <parameter name="gui_ps_units5" value="ps" />
+  <parameter name="gui_ps_units6" value="ps" />
+  <parameter name="gui_ps_units7" value="ps" />
+  <parameter name="gui_ps_units8" value="ps" />
+  <parameter name="gui_ps_units9" value="ps" />
+  <parameter name="gui_refclk1_frequency" value="100.0" />
+  <parameter name="gui_refclk_might_change" value="false" />
+  <parameter name="gui_refclk_switch" value="false" />
+  <parameter name="gui_reference_clock_frequency" value="125.0" />
+  <parameter name="gui_reference_clock_frequency_ps" value="10000.0" />
+  <parameter name="gui_skip_sdc_generation" value="false" />
+  <parameter name="gui_switchover_delay" value="0" />
+  <parameter name="gui_switchover_mode">Automatic Switchover</parameter>
+  <parameter name="gui_use_NDFB_modes" value="false" />
+  <parameter name="gui_use_coreclk" value="false" />
+  <parameter name="gui_use_locked" value="true" />
+  <parameter name="gui_use_logical" value="false" />
+  <parameter name="gui_usr_device_speed_grade" value="1" />
+  <parameter name="gui_vco_frequency" value="600.0" />
+  <parameter name="hp_qsys_scripting_mode" value="false" />
+  <parameter name="system_info_device_component" value="10AX115U3F45E2SG" />
+  <parameter name="system_info_device_family" value="Arria 10" />
+  <parameter name="system_info_device_speed_grade" value="2" />
+  <parameter name="system_part_trait_speed_grade" value="2" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/pll_clk200/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/pll_clk200/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..ef4a13259c720ebf73155d8d51d62c5a4d99469b
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/pll_clk200/compile_ip.tcl
@@ -0,0 +1,33 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_pll_clk200/sim"
+  vcom  "$IP_DIR/ip_arria10_e2sg_pll_clk200.vhd"                                           
diff --git a/libraries/technology/ip_arria10_e2sg/pll_clk200/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/pll_clk200/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..fc7bb42449bc3ef1bd7d39afb16c6ef9db3834ef
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/pll_clk200/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_pll_clk200  
+hdl_library_clause_name = ip_arria10_e2sg_pll_clk200_altera_iopll_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_iopll_194
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/pll_clk200/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_pll_clk200/ip_arria10_e2sg_pll_clk200.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_pll_clk200.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/pll_clk200/ip_arria10_e2sg_pll_clk200.qsys b/libraries/technology/ip_arria10_e2sg/pll_clk200/ip_arria10_e2sg_pll_clk200.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..02b2df87bcaa5104645bd6eacc052e0af5546e49
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/pll_clk200/ip_arria10_e2sg_pll_clk200.qsys
@@ -0,0 +1,360 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_pll_clk200">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element iopll_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos>
+        <entry>
+            <key>outclk0</key>
+            <value>
+                <connectionPointName>outclk0</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>200000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+        <entry>
+            <key>outclk1</key>
+            <value>
+                <connectionPointName>outclk1</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>200000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+        <entry>
+            <key>outclk2</key>
+            <value>
+                <connectionPointName>outclk2</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>400000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+    </connPtSystemInfos>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface name="locked" internal="iopll_0.locked" type="conduit" dir="end">
+  <port name="locked" internal="locked" />
+ </interface>
+ <interface name="outclk0" internal="iopll_0.outclk0" type="clock" dir="start">
+  <port name="outclk_0" internal="outclk_0" />
+ </interface>
+ <interface name="outclk1" internal="iopll_0.outclk1" type="clock" dir="start">
+  <port name="outclk_1" internal="outclk_1" />
+ </interface>
+ <interface name="outclk2" internal="iopll_0.outclk2" type="clock" dir="start">
+  <port name="outclk_2" internal="outclk_2" />
+ </interface>
+ <interface name="refclk" internal="iopll_0.refclk" type="clock" dir="end">
+  <port name="refclk" internal="refclk" />
+ </interface>
+ <interface name="reset" internal="iopll_0.reset" type="reset" dir="end">
+  <port name="rst" internal="rst" />
+ </interface>
+ <module
+   name="iopll_0"
+   kind="altera_iopll"
+   version="19.3.0"
+   enabled="1"
+   autoexport="1">
+  <parameter name="gui_active_clk" value="false" />
+  <parameter name="gui_c_cnt_in_src0">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src1">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src2">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src3">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src4">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src5">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src6">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src7">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src8">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_cal_code_hex_file" value="iossm.hex" />
+  <parameter name="gui_cal_converge" value="false" />
+  <parameter name="gui_cal_error" value="cal_clean" />
+  <parameter name="gui_cascade_counter0" value="false" />
+  <parameter name="gui_cascade_counter1" value="false" />
+  <parameter name="gui_cascade_counter10" value="false" />
+  <parameter name="gui_cascade_counter11" value="false" />
+  <parameter name="gui_cascade_counter12" value="false" />
+  <parameter name="gui_cascade_counter13" value="false" />
+  <parameter name="gui_cascade_counter14" value="false" />
+  <parameter name="gui_cascade_counter15" value="false" />
+  <parameter name="gui_cascade_counter16" value="false" />
+  <parameter name="gui_cascade_counter17" value="false" />
+  <parameter name="gui_cascade_counter2" value="false" />
+  <parameter name="gui_cascade_counter3" value="false" />
+  <parameter name="gui_cascade_counter4" value="false" />
+  <parameter name="gui_cascade_counter5" value="false" />
+  <parameter name="gui_cascade_counter6" value="false" />
+  <parameter name="gui_cascade_counter7" value="false" />
+  <parameter name="gui_cascade_counter8" value="false" />
+  <parameter name="gui_cascade_counter9" value="false" />
+  <parameter name="gui_cascade_outclk_index" value="0" />
+  <parameter name="gui_clk_bad" value="false" />
+  <parameter name="gui_clock_name_global" value="false" />
+  <parameter name="gui_clock_name_string0" value="pll_clk200" />
+  <parameter name="gui_clock_name_string1" value="pll_clk200p" />
+  <parameter name="gui_clock_name_string10" value="outclk10" />
+  <parameter name="gui_clock_name_string11" value="outclk11" />
+  <parameter name="gui_clock_name_string12" value="outclk12" />
+  <parameter name="gui_clock_name_string13" value="outclk13" />
+  <parameter name="gui_clock_name_string14" value="outclk14" />
+  <parameter name="gui_clock_name_string15" value="outclk15" />
+  <parameter name="gui_clock_name_string16" value="outclk16" />
+  <parameter name="gui_clock_name_string17" value="outclk17" />
+  <parameter name="gui_clock_name_string2" value="pll_clk400" />
+  <parameter name="gui_clock_name_string3" value="outclk3" />
+  <parameter name="gui_clock_name_string4" value="outclk4" />
+  <parameter name="gui_clock_name_string5" value="outclk5" />
+  <parameter name="gui_clock_name_string6" value="outclk6" />
+  <parameter name="gui_clock_name_string7" value="outclk7" />
+  <parameter name="gui_clock_name_string8" value="outclk8" />
+  <parameter name="gui_clock_name_string9" value="outclk9" />
+  <parameter name="gui_clock_to_compensate" value="0" />
+  <parameter name="gui_debug_mode" value="false" />
+  <parameter name="gui_divide_factor_c0" value="6" />
+  <parameter name="gui_divide_factor_c1" value="6" />
+  <parameter name="gui_divide_factor_c10" value="6" />
+  <parameter name="gui_divide_factor_c11" value="6" />
+  <parameter name="gui_divide_factor_c12" value="6" />
+  <parameter name="gui_divide_factor_c13" value="6" />
+  <parameter name="gui_divide_factor_c14" value="6" />
+  <parameter name="gui_divide_factor_c15" value="6" />
+  <parameter name="gui_divide_factor_c16" value="6" />
+  <parameter name="gui_divide_factor_c17" value="6" />
+  <parameter name="gui_divide_factor_c2" value="6" />
+  <parameter name="gui_divide_factor_c3" value="6" />
+  <parameter name="gui_divide_factor_c4" value="6" />
+  <parameter name="gui_divide_factor_c5" value="6" />
+  <parameter name="gui_divide_factor_c6" value="6" />
+  <parameter name="gui_divide_factor_c7" value="6" />
+  <parameter name="gui_divide_factor_c8" value="6" />
+  <parameter name="gui_divide_factor_c9" value="6" />
+  <parameter name="gui_divide_factor_n" value="1" />
+  <parameter name="gui_dps_cntr" value="C0" />
+  <parameter name="gui_dps_dir" value="Positive" />
+  <parameter name="gui_dps_num" value="1" />
+  <parameter name="gui_dsm_out_sel" value="1st_order" />
+  <parameter name="gui_duty_cycle0" value="50.0" />
+  <parameter name="gui_duty_cycle1" value="50.0" />
+  <parameter name="gui_duty_cycle10" value="50.0" />
+  <parameter name="gui_duty_cycle11" value="50.0" />
+  <parameter name="gui_duty_cycle12" value="50.0" />
+  <parameter name="gui_duty_cycle13" value="50.0" />
+  <parameter name="gui_duty_cycle14" value="50.0" />
+  <parameter name="gui_duty_cycle15" value="50.0" />
+  <parameter name="gui_duty_cycle16" value="50.0" />
+  <parameter name="gui_duty_cycle17" value="50.0" />
+  <parameter name="gui_duty_cycle2" value="50.0" />
+  <parameter name="gui_duty_cycle3" value="50.0" />
+  <parameter name="gui_duty_cycle4" value="50.0" />
+  <parameter name="gui_duty_cycle5" value="50.0" />
+  <parameter name="gui_duty_cycle6" value="50.0" />
+  <parameter name="gui_duty_cycle7" value="50.0" />
+  <parameter name="gui_duty_cycle8" value="50.0" />
+  <parameter name="gui_duty_cycle9" value="50.0" />
+  <parameter name="gui_en_adv_params" value="false" />
+  <parameter name="gui_en_dps_ports" value="false" />
+  <parameter name="gui_en_extclkout_ports" value="false" />
+  <parameter name="gui_en_lvds_ports" value="Disabled" />
+  <parameter name="gui_en_phout_ports" value="false" />
+  <parameter name="gui_en_reconf" value="false" />
+  <parameter name="gui_enable_cascade_in" value="false" />
+  <parameter name="gui_enable_cascade_out" value="false" />
+  <parameter name="gui_enable_mif_dps" value="false" />
+  <parameter name="gui_enable_output_counter_cascading" value="false" />
+  <parameter name="gui_enable_permit_cal" value="false" />
+  <parameter name="gui_existing_mif_file_path" value="~/pll.mif" />
+  <parameter name="gui_extclkout_0_source" value="C0" />
+  <parameter name="gui_extclkout_1_source" value="C0" />
+  <parameter name="gui_feedback_clock" value="Global Clock" />
+  <parameter name="gui_fix_vco_frequency" value="false" />
+  <parameter name="gui_fixed_vco_frequency" value="600.0" />
+  <parameter name="gui_fixed_vco_frequency_ps" value="1667.0" />
+  <parameter name="gui_frac_multiply_factor" value="1" />
+  <parameter name="gui_fractional_cout" value="32" />
+  <parameter name="gui_include_iossm" value="false" />
+  <parameter name="gui_location_type" value="I/O Bank" />
+  <parameter name="gui_lock_setting" value="Low Lock Time" />
+  <parameter name="gui_mif_config_name" value="unnamed" />
+  <parameter name="gui_mif_gen_options">Generate New MIF File</parameter>
+  <parameter name="gui_multiply_factor" value="6" />
+  <parameter name="gui_new_mif_file_path" value="~/pll.mif" />
+  <parameter name="gui_number_of_clocks" value="3" />
+  <parameter name="gui_operation_mode" value="direct" />
+  <parameter name="gui_output_clock_frequency0" value="200.0" />
+  <parameter name="gui_output_clock_frequency1" value="200.0" />
+  <parameter name="gui_output_clock_frequency10" value="100.0" />
+  <parameter name="gui_output_clock_frequency11" value="100.0" />
+  <parameter name="gui_output_clock_frequency12" value="100.0" />
+  <parameter name="gui_output_clock_frequency13" value="100.0" />
+  <parameter name="gui_output_clock_frequency14" value="100.0" />
+  <parameter name="gui_output_clock_frequency15" value="100.0" />
+  <parameter name="gui_output_clock_frequency16" value="100.0" />
+  <parameter name="gui_output_clock_frequency17" value="100.0" />
+  <parameter name="gui_output_clock_frequency2" value="400.0" />
+  <parameter name="gui_output_clock_frequency3" value="100.0" />
+  <parameter name="gui_output_clock_frequency4" value="100.0" />
+  <parameter name="gui_output_clock_frequency5" value="100.0" />
+  <parameter name="gui_output_clock_frequency6" value="100.0" />
+  <parameter name="gui_output_clock_frequency7" value="100.0" />
+  <parameter name="gui_output_clock_frequency8" value="100.0" />
+  <parameter name="gui_output_clock_frequency9" value="100.0" />
+  <parameter name="gui_output_clock_frequency_ps0" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps1" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps10" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps11" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps12" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps13" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps14" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps15" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps16" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps17" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps2" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps3" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps4" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps5" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps6" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps7" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps8" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps9" value="10000.0" />
+  <parameter name="gui_parameter_table_hex_file" value="seq_params_sim.hex" />
+  <parameter name="gui_phase_shift0" value="0.0" />
+  <parameter name="gui_phase_shift1" value="0.0" />
+  <parameter name="gui_phase_shift10" value="0.0" />
+  <parameter name="gui_phase_shift11" value="0.0" />
+  <parameter name="gui_phase_shift12" value="0.0" />
+  <parameter name="gui_phase_shift13" value="0.0" />
+  <parameter name="gui_phase_shift14" value="0.0" />
+  <parameter name="gui_phase_shift15" value="0.0" />
+  <parameter name="gui_phase_shift16" value="0.0" />
+  <parameter name="gui_phase_shift17" value="0.0" />
+  <parameter name="gui_phase_shift2" value="0.0" />
+  <parameter name="gui_phase_shift3" value="0.0" />
+  <parameter name="gui_phase_shift4" value="0.0" />
+  <parameter name="gui_phase_shift5" value="0.0" />
+  <parameter name="gui_phase_shift6" value="0.0" />
+  <parameter name="gui_phase_shift7" value="0.0" />
+  <parameter name="gui_phase_shift8" value="0.0" />
+  <parameter name="gui_phase_shift9" value="0.0" />
+  <parameter name="gui_phase_shift_deg0" value="0.0" />
+  <parameter name="gui_phase_shift_deg1" value="0.0" />
+  <parameter name="gui_phase_shift_deg10" value="0.0" />
+  <parameter name="gui_phase_shift_deg11" value="0.0" />
+  <parameter name="gui_phase_shift_deg12" value="0.0" />
+  <parameter name="gui_phase_shift_deg13" value="0.0" />
+  <parameter name="gui_phase_shift_deg14" value="0.0" />
+  <parameter name="gui_phase_shift_deg15" value="0.0" />
+  <parameter name="gui_phase_shift_deg16" value="0.0" />
+  <parameter name="gui_phase_shift_deg17" value="0.0" />
+  <parameter name="gui_phase_shift_deg2" value="0.0" />
+  <parameter name="gui_phase_shift_deg3" value="0.0" />
+  <parameter name="gui_phase_shift_deg4" value="0.0" />
+  <parameter name="gui_phase_shift_deg5" value="0.0" />
+  <parameter name="gui_phase_shift_deg6" value="0.0" />
+  <parameter name="gui_phase_shift_deg7" value="0.0" />
+  <parameter name="gui_phase_shift_deg8" value="0.0" />
+  <parameter name="gui_phase_shift_deg9" value="0.0" />
+  <parameter name="gui_phout_division" value="1" />
+  <parameter name="gui_pll_auto_reset" value="false" />
+  <parameter name="gui_pll_bandwidth_preset" value="Low" />
+  <parameter name="gui_pll_cal_done" value="false" />
+  <parameter name="gui_pll_cascading_mode" value="adjpllin" />
+  <parameter name="gui_pll_freqcal_en" value="true" />
+  <parameter name="gui_pll_freqcal_req_flag" value="true" />
+  <parameter name="gui_pll_m_cnt_in_src">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_pll_mode" value="Integer-N PLL" />
+  <parameter name="gui_pll_tclk_mux_en" value="false" />
+  <parameter name="gui_pll_tclk_sel" value="pll_tclk_m_src" />
+  <parameter name="gui_pll_type" value="S10_Simple" />
+  <parameter name="gui_pll_vco_freq_band_0">pll_freq_clk0_disabled</parameter>
+  <parameter name="gui_pll_vco_freq_band_1">pll_freq_clk1_disabled</parameter>
+  <parameter name="gui_prot_mode" value="UNUSED" />
+  <parameter name="gui_ps_units0" value="ps" />
+  <parameter name="gui_ps_units1" value="ps" />
+  <parameter name="gui_ps_units10" value="ps" />
+  <parameter name="gui_ps_units11" value="ps" />
+  <parameter name="gui_ps_units12" value="ps" />
+  <parameter name="gui_ps_units13" value="ps" />
+  <parameter name="gui_ps_units14" value="ps" />
+  <parameter name="gui_ps_units15" value="ps" />
+  <parameter name="gui_ps_units16" value="ps" />
+  <parameter name="gui_ps_units17" value="ps" />
+  <parameter name="gui_ps_units2" value="ps" />
+  <parameter name="gui_ps_units3" value="ps" />
+  <parameter name="gui_ps_units4" value="ps" />
+  <parameter name="gui_ps_units5" value="ps" />
+  <parameter name="gui_ps_units6" value="ps" />
+  <parameter name="gui_ps_units7" value="ps" />
+  <parameter name="gui_ps_units8" value="ps" />
+  <parameter name="gui_ps_units9" value="ps" />
+  <parameter name="gui_refclk1_frequency" value="100.0" />
+  <parameter name="gui_refclk_might_change" value="false" />
+  <parameter name="gui_refclk_switch" value="false" />
+  <parameter name="gui_reference_clock_frequency" value="200.0" />
+  <parameter name="gui_reference_clock_frequency_ps" value="10000.0" />
+  <parameter name="gui_skip_sdc_generation" value="false" />
+  <parameter name="gui_switchover_delay" value="0" />
+  <parameter name="gui_switchover_mode">Automatic Switchover</parameter>
+  <parameter name="gui_use_NDFB_modes" value="false" />
+  <parameter name="gui_use_coreclk" value="false" />
+  <parameter name="gui_use_locked" value="true" />
+  <parameter name="gui_use_logical" value="false" />
+  <parameter name="gui_usr_device_speed_grade" value="1" />
+  <parameter name="gui_vco_frequency" value="600.0" />
+  <parameter name="hp_qsys_scripting_mode" value="false" />
+  <parameter name="system_info_device_component" value="10AX115U3F45E2SG" />
+  <parameter name="system_info_device_family" value="Arria 10" />
+  <parameter name="system_info_device_speed_grade" value="2" />
+  <parameter name="system_part_trait_speed_grade" value="2" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/pll_clk25/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/pll_clk25/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..284b7227b32d1e3a3ec10d0c42c9a45ee8d1d0e3
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/pll_clk25/compile_ip.tcl
@@ -0,0 +1,35 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_pll_clk25/sim"
+
+     
+  vcom  "$IP_DIR/ip_arria10_e2sg_pll_clk25.vhd"                                        
diff --git a/libraries/technology/ip_arria10_e2sg/pll_clk25/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/pll_clk25/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..4ebb54d09a00304cd89b64303cddd5c30b36a815
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/pll_clk25/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_pll_clk25 
+hdl_library_clause_name = ip_arria10_e2sg_pll_clk25_altera_iopll_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_iopll_194
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/pll_clk25/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_pll_clk25/ip_arria10_e2sg_pll_clk25.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_pll_clk25.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/pll_clk25/ip_arria10_e2sg_pll_clk25.qsys b/libraries/technology/ip_arria10_e2sg/pll_clk25/ip_arria10_e2sg_pll_clk25.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..b9bf7c707c0522e8d160b0e728372499a1987e51
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/pll_clk25/ip_arria10_e2sg_pll_clk25.qsys
@@ -0,0 +1,376 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_pll_clk25">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element iopll_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos>
+        <entry>
+            <key>outclk0</key>
+            <value>
+                <connectionPointName>outclk0</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>20000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+        <entry>
+            <key>outclk1</key>
+            <value>
+                <connectionPointName>outclk1</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>50000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+        <entry>
+            <key>outclk2</key>
+            <value>
+                <connectionPointName>outclk2</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>100000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+        <entry>
+            <key>outclk3</key>
+            <value>
+                <connectionPointName>outclk3</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>125000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+    </connPtSystemInfos>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface name="locked" internal="iopll_0.locked" type="conduit" dir="end">
+  <port name="locked" internal="locked" />
+ </interface>
+ <interface name="outclk0" internal="iopll_0.outclk0" type="clock" dir="start">
+  <port name="outclk_0" internal="outclk_0" />
+ </interface>
+ <interface name="outclk1" internal="iopll_0.outclk1" type="clock" dir="start">
+  <port name="outclk_1" internal="outclk_1" />
+ </interface>
+ <interface name="outclk2" internal="iopll_0.outclk2" type="clock" dir="start">
+  <port name="outclk_2" internal="outclk_2" />
+ </interface>
+ <interface name="outclk3" internal="iopll_0.outclk3" type="clock" dir="start">
+  <port name="outclk_3" internal="outclk_3" />
+ </interface>
+ <interface name="refclk" internal="iopll_0.refclk" type="clock" dir="end">
+  <port name="refclk" internal="refclk" />
+ </interface>
+ <interface name="reset" internal="iopll_0.reset" type="reset" dir="end">
+  <port name="rst" internal="rst" />
+ </interface>
+ <module
+   name="iopll_0"
+   kind="altera_iopll"
+   version="19.3.0"
+   enabled="1"
+   autoexport="1">
+  <parameter name="gui_active_clk" value="false" />
+  <parameter name="gui_c_cnt_in_src0">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src1">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src2">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src3">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src4">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src5">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src6">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src7">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_c_cnt_in_src8">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_cal_code_hex_file" value="iossm.hex" />
+  <parameter name="gui_cal_converge" value="false" />
+  <parameter name="gui_cal_error" value="cal_clean" />
+  <parameter name="gui_cascade_counter0" value="false" />
+  <parameter name="gui_cascade_counter1" value="false" />
+  <parameter name="gui_cascade_counter10" value="false" />
+  <parameter name="gui_cascade_counter11" value="false" />
+  <parameter name="gui_cascade_counter12" value="false" />
+  <parameter name="gui_cascade_counter13" value="false" />
+  <parameter name="gui_cascade_counter14" value="false" />
+  <parameter name="gui_cascade_counter15" value="false" />
+  <parameter name="gui_cascade_counter16" value="false" />
+  <parameter name="gui_cascade_counter17" value="false" />
+  <parameter name="gui_cascade_counter2" value="false" />
+  <parameter name="gui_cascade_counter3" value="false" />
+  <parameter name="gui_cascade_counter4" value="false" />
+  <parameter name="gui_cascade_counter5" value="false" />
+  <parameter name="gui_cascade_counter6" value="false" />
+  <parameter name="gui_cascade_counter7" value="false" />
+  <parameter name="gui_cascade_counter8" value="false" />
+  <parameter name="gui_cascade_counter9" value="false" />
+  <parameter name="gui_cascade_outclk_index" value="0" />
+  <parameter name="gui_clk_bad" value="false" />
+  <parameter name="gui_clock_name_global" value="false" />
+  <parameter name="gui_clock_name_string0" value="pll_clk20" />
+  <parameter name="gui_clock_name_string1" value="pll_clk50" />
+  <parameter name="gui_clock_name_string10" value="outclk10" />
+  <parameter name="gui_clock_name_string11" value="outclk11" />
+  <parameter name="gui_clock_name_string12" value="outclk12" />
+  <parameter name="gui_clock_name_string13" value="outclk13" />
+  <parameter name="gui_clock_name_string14" value="outclk14" />
+  <parameter name="gui_clock_name_string15" value="outclk15" />
+  <parameter name="gui_clock_name_string16" value="outclk16" />
+  <parameter name="gui_clock_name_string17" value="outclk17" />
+  <parameter name="gui_clock_name_string2" value="pll_clk100" />
+  <parameter name="gui_clock_name_string3" value="pll_clk125" />
+  <parameter name="gui_clock_name_string4" value="outclk4" />
+  <parameter name="gui_clock_name_string5" value="outclk5" />
+  <parameter name="gui_clock_name_string6" value="outclk6" />
+  <parameter name="gui_clock_name_string7" value="outclk7" />
+  <parameter name="gui_clock_name_string8" value="outclk8" />
+  <parameter name="gui_clock_name_string9" value="outclk9" />
+  <parameter name="gui_clock_to_compensate" value="0" />
+  <parameter name="gui_debug_mode" value="false" />
+  <parameter name="gui_divide_factor_c0" value="6" />
+  <parameter name="gui_divide_factor_c1" value="6" />
+  <parameter name="gui_divide_factor_c10" value="6" />
+  <parameter name="gui_divide_factor_c11" value="6" />
+  <parameter name="gui_divide_factor_c12" value="6" />
+  <parameter name="gui_divide_factor_c13" value="6" />
+  <parameter name="gui_divide_factor_c14" value="6" />
+  <parameter name="gui_divide_factor_c15" value="6" />
+  <parameter name="gui_divide_factor_c16" value="6" />
+  <parameter name="gui_divide_factor_c17" value="6" />
+  <parameter name="gui_divide_factor_c2" value="6" />
+  <parameter name="gui_divide_factor_c3" value="6" />
+  <parameter name="gui_divide_factor_c4" value="6" />
+  <parameter name="gui_divide_factor_c5" value="6" />
+  <parameter name="gui_divide_factor_c6" value="6" />
+  <parameter name="gui_divide_factor_c7" value="6" />
+  <parameter name="gui_divide_factor_c8" value="6" />
+  <parameter name="gui_divide_factor_c9" value="6" />
+  <parameter name="gui_divide_factor_n" value="1" />
+  <parameter name="gui_dps_cntr" value="C0" />
+  <parameter name="gui_dps_dir" value="Positive" />
+  <parameter name="gui_dps_num" value="1" />
+  <parameter name="gui_dsm_out_sel" value="1st_order" />
+  <parameter name="gui_duty_cycle0" value="50.0" />
+  <parameter name="gui_duty_cycle1" value="50.0" />
+  <parameter name="gui_duty_cycle10" value="50.0" />
+  <parameter name="gui_duty_cycle11" value="50.0" />
+  <parameter name="gui_duty_cycle12" value="50.0" />
+  <parameter name="gui_duty_cycle13" value="50.0" />
+  <parameter name="gui_duty_cycle14" value="50.0" />
+  <parameter name="gui_duty_cycle15" value="50.0" />
+  <parameter name="gui_duty_cycle16" value="50.0" />
+  <parameter name="gui_duty_cycle17" value="50.0" />
+  <parameter name="gui_duty_cycle2" value="50.0" />
+  <parameter name="gui_duty_cycle3" value="50.0" />
+  <parameter name="gui_duty_cycle4" value="50.0" />
+  <parameter name="gui_duty_cycle5" value="50.0" />
+  <parameter name="gui_duty_cycle6" value="50.0" />
+  <parameter name="gui_duty_cycle7" value="50.0" />
+  <parameter name="gui_duty_cycle8" value="50.0" />
+  <parameter name="gui_duty_cycle9" value="50.0" />
+  <parameter name="gui_en_adv_params" value="false" />
+  <parameter name="gui_en_dps_ports" value="false" />
+  <parameter name="gui_en_extclkout_ports" value="false" />
+  <parameter name="gui_en_lvds_ports" value="Disabled" />
+  <parameter name="gui_en_phout_ports" value="false" />
+  <parameter name="gui_en_reconf" value="false" />
+  <parameter name="gui_enable_cascade_in" value="false" />
+  <parameter name="gui_enable_cascade_out" value="false" />
+  <parameter name="gui_enable_mif_dps" value="false" />
+  <parameter name="gui_enable_output_counter_cascading" value="false" />
+  <parameter name="gui_enable_permit_cal" value="false" />
+  <parameter name="gui_existing_mif_file_path" value="~/pll.mif" />
+  <parameter name="gui_extclkout_0_source" value="C0" />
+  <parameter name="gui_extclkout_1_source" value="C0" />
+  <parameter name="gui_feedback_clock" value="Global Clock" />
+  <parameter name="gui_fix_vco_frequency" value="false" />
+  <parameter name="gui_fixed_vco_frequency" value="600.0" />
+  <parameter name="gui_fixed_vco_frequency_ps" value="1667.0" />
+  <parameter name="gui_frac_multiply_factor" value="1" />
+  <parameter name="gui_fractional_cout" value="32" />
+  <parameter name="gui_include_iossm" value="false" />
+  <parameter name="gui_location_type" value="I/O Bank" />
+  <parameter name="gui_lock_setting" value="Low Lock Time" />
+  <parameter name="gui_mif_config_name" value="unnamed" />
+  <parameter name="gui_mif_gen_options">Generate New MIF File</parameter>
+  <parameter name="gui_multiply_factor" value="6" />
+  <parameter name="gui_new_mif_file_path" value="~/pll.mif" />
+  <parameter name="gui_number_of_clocks" value="4" />
+  <parameter name="gui_operation_mode" value="direct" />
+  <parameter name="gui_output_clock_frequency0" value="20.0" />
+  <parameter name="gui_output_clock_frequency1" value="50.0" />
+  <parameter name="gui_output_clock_frequency10" value="100.0" />
+  <parameter name="gui_output_clock_frequency11" value="100.0" />
+  <parameter name="gui_output_clock_frequency12" value="100.0" />
+  <parameter name="gui_output_clock_frequency13" value="100.0" />
+  <parameter name="gui_output_clock_frequency14" value="100.0" />
+  <parameter name="gui_output_clock_frequency15" value="100.0" />
+  <parameter name="gui_output_clock_frequency16" value="100.0" />
+  <parameter name="gui_output_clock_frequency17" value="100.0" />
+  <parameter name="gui_output_clock_frequency2" value="100.0" />
+  <parameter name="gui_output_clock_frequency3" value="125.0" />
+  <parameter name="gui_output_clock_frequency4" value="100.0" />
+  <parameter name="gui_output_clock_frequency5" value="100.0" />
+  <parameter name="gui_output_clock_frequency6" value="100.0" />
+  <parameter name="gui_output_clock_frequency7" value="100.0" />
+  <parameter name="gui_output_clock_frequency8" value="100.0" />
+  <parameter name="gui_output_clock_frequency9" value="100.0" />
+  <parameter name="gui_output_clock_frequency_ps0" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps1" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps10" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps11" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps12" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps13" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps14" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps15" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps16" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps17" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps2" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps3" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps4" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps5" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps6" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps7" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps8" value="10000.0" />
+  <parameter name="gui_output_clock_frequency_ps9" value="10000.0" />
+  <parameter name="gui_parameter_table_hex_file" value="seq_params_sim.hex" />
+  <parameter name="gui_phase_shift0" value="0.0" />
+  <parameter name="gui_phase_shift1" value="0.0" />
+  <parameter name="gui_phase_shift10" value="0.0" />
+  <parameter name="gui_phase_shift11" value="0.0" />
+  <parameter name="gui_phase_shift12" value="0.0" />
+  <parameter name="gui_phase_shift13" value="0.0" />
+  <parameter name="gui_phase_shift14" value="0.0" />
+  <parameter name="gui_phase_shift15" value="0.0" />
+  <parameter name="gui_phase_shift16" value="0.0" />
+  <parameter name="gui_phase_shift17" value="0.0" />
+  <parameter name="gui_phase_shift2" value="0.0" />
+  <parameter name="gui_phase_shift3" value="0.0" />
+  <parameter name="gui_phase_shift4" value="0.0" />
+  <parameter name="gui_phase_shift5" value="0.0" />
+  <parameter name="gui_phase_shift6" value="0.0" />
+  <parameter name="gui_phase_shift7" value="0.0" />
+  <parameter name="gui_phase_shift8" value="0.0" />
+  <parameter name="gui_phase_shift9" value="0.0" />
+  <parameter name="gui_phase_shift_deg0" value="0.0" />
+  <parameter name="gui_phase_shift_deg1" value="0.0" />
+  <parameter name="gui_phase_shift_deg10" value="0.0" />
+  <parameter name="gui_phase_shift_deg11" value="0.0" />
+  <parameter name="gui_phase_shift_deg12" value="0.0" />
+  <parameter name="gui_phase_shift_deg13" value="0.0" />
+  <parameter name="gui_phase_shift_deg14" value="0.0" />
+  <parameter name="gui_phase_shift_deg15" value="0.0" />
+  <parameter name="gui_phase_shift_deg16" value="0.0" />
+  <parameter name="gui_phase_shift_deg17" value="0.0" />
+  <parameter name="gui_phase_shift_deg2" value="0.0" />
+  <parameter name="gui_phase_shift_deg3" value="0.0" />
+  <parameter name="gui_phase_shift_deg4" value="0.0" />
+  <parameter name="gui_phase_shift_deg5" value="0.0" />
+  <parameter name="gui_phase_shift_deg6" value="0.0" />
+  <parameter name="gui_phase_shift_deg7" value="0.0" />
+  <parameter name="gui_phase_shift_deg8" value="0.0" />
+  <parameter name="gui_phase_shift_deg9" value="0.0" />
+  <parameter name="gui_phout_division" value="1" />
+  <parameter name="gui_pll_auto_reset" value="false" />
+  <parameter name="gui_pll_bandwidth_preset" value="Low" />
+  <parameter name="gui_pll_cal_done" value="false" />
+  <parameter name="gui_pll_cascading_mode" value="adjpllin" />
+  <parameter name="gui_pll_freqcal_en" value="true" />
+  <parameter name="gui_pll_freqcal_req_flag" value="true" />
+  <parameter name="gui_pll_m_cnt_in_src">c_m_cnt_in_src_ph_mux_clk</parameter>
+  <parameter name="gui_pll_mode" value="Integer-N PLL" />
+  <parameter name="gui_pll_tclk_mux_en" value="false" />
+  <parameter name="gui_pll_tclk_sel" value="pll_tclk_m_src" />
+  <parameter name="gui_pll_type" value="S10_Simple" />
+  <parameter name="gui_pll_vco_freq_band_0">pll_freq_clk0_disabled</parameter>
+  <parameter name="gui_pll_vco_freq_band_1">pll_freq_clk1_disabled</parameter>
+  <parameter name="gui_prot_mode" value="UNUSED" />
+  <parameter name="gui_ps_units0" value="ps" />
+  <parameter name="gui_ps_units1" value="ps" />
+  <parameter name="gui_ps_units10" value="ps" />
+  <parameter name="gui_ps_units11" value="ps" />
+  <parameter name="gui_ps_units12" value="ps" />
+  <parameter name="gui_ps_units13" value="ps" />
+  <parameter name="gui_ps_units14" value="ps" />
+  <parameter name="gui_ps_units15" value="ps" />
+  <parameter name="gui_ps_units16" value="ps" />
+  <parameter name="gui_ps_units17" value="ps" />
+  <parameter name="gui_ps_units2" value="ps" />
+  <parameter name="gui_ps_units3" value="ps" />
+  <parameter name="gui_ps_units4" value="ps" />
+  <parameter name="gui_ps_units5" value="ps" />
+  <parameter name="gui_ps_units6" value="ps" />
+  <parameter name="gui_ps_units7" value="ps" />
+  <parameter name="gui_ps_units8" value="ps" />
+  <parameter name="gui_ps_units9" value="ps" />
+  <parameter name="gui_refclk1_frequency" value="100.0" />
+  <parameter name="gui_refclk_might_change" value="false" />
+  <parameter name="gui_refclk_switch" value="false" />
+  <parameter name="gui_reference_clock_frequency" value="25.0" />
+  <parameter name="gui_reference_clock_frequency_ps" value="10000.0" />
+  <parameter name="gui_skip_sdc_generation" value="false" />
+  <parameter name="gui_switchover_delay" value="0" />
+  <parameter name="gui_switchover_mode">Automatic Switchover</parameter>
+  <parameter name="gui_use_NDFB_modes" value="false" />
+  <parameter name="gui_use_coreclk" value="false" />
+  <parameter name="gui_use_locked" value="true" />
+  <parameter name="gui_use_logical" value="false" />
+  <parameter name="gui_usr_device_speed_grade" value="1" />
+  <parameter name="gui_vco_frequency" value="600.0" />
+  <parameter name="hp_qsys_scripting_mode" value="false" />
+  <parameter name="system_info_device_component" value="10AX115U3F45E2SG" />
+  <parameter name="system_info_device_family" value="Arria 10" />
+  <parameter name="system_info_device_speed_grade" value="2" />
+  <parameter name="system_part_trait_speed_grade" value="2" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/pll_xgmii_mac_clocks/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/pll_xgmii_mac_clocks/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..2b7ee9fed6f9909fb0117460b1ad72520b7c0eae
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/pll_xgmii_mac_clocks/compile_ip.tcl
@@ -0,0 +1,35 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_pll_xgmii_mac_clocks/sim"
+
+       
+  vcom         "$IP_DIR/ip_arria10_e2sg_pll_xgmii_mac_clocks.vhd"                              
diff --git a/libraries/technology/ip_arria10_e2sg/pll_xgmii_mac_clocks/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/pll_xgmii_mac_clocks/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..c5c174a33131944754d4446a5aa5342b5f719b16
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/pll_xgmii_mac_clocks/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_pll_xgmii_mac_clocks  
+hdl_library_clause_name = ip_arria10_e2sg_pll_xgmii_mac_clocks_altera_xcvr_fpll_a10_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_fpll_a10_194
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/pll_xgmii_mac_clocks/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_pll_xgmii_mac_clocks/ip_arria10_e2sg_pll_xgmii_mac_clocks.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_pll_xgmii_mac_clocks.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/pll_xgmii_mac_clocks/ip_arria10_e2sg_pll_xgmii_mac_clocks.qsys b/libraries/technology/ip_arria10_e2sg/pll_xgmii_mac_clocks/ip_arria10_e2sg_pll_xgmii_mac_clocks.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..572839a271d7296292735dce0f2e58ac508cf155
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/pll_xgmii_mac_clocks/ip_arria10_e2sg_pll_xgmii_mac_clocks.qsys
@@ -0,0 +1,222 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_pll_xgmii_mac_clocks">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element xcvr_fpll_a10_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos>
+        <entry>
+            <key>outclk0</key>
+            <value>
+                <connectionPointName>outclk0</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>100000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+        <entry>
+            <key>outclk1</key>
+            <value>
+                <connectionPointName>outclk1</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>CLOCK_RATE</key>
+                        <value>100000000</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+    </connPtSystemInfos>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="outclk0"
+   internal="xcvr_fpll_a10_0.outclk0"
+   type="clock"
+   dir="start">
+  <port name="outclk0" internal="outclk0" />
+ </interface>
+ <interface
+   name="outclk1"
+   internal="xcvr_fpll_a10_0.outclk1"
+   type="clock"
+   dir="start">
+  <port name="outclk1" internal="outclk1" />
+ </interface>
+ <interface
+   name="pll_cal_busy"
+   internal="xcvr_fpll_a10_0.pll_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="pll_cal_busy" internal="pll_cal_busy" />
+ </interface>
+ <interface
+   name="pll_locked"
+   internal="xcvr_fpll_a10_0.pll_locked"
+   type="conduit"
+   dir="end">
+  <port name="pll_locked" internal="pll_locked" />
+ </interface>
+ <interface
+   name="pll_powerdown"
+   internal="xcvr_fpll_a10_0.pll_powerdown"
+   type="conduit"
+   dir="end">
+  <port name="pll_powerdown" internal="pll_powerdown" />
+ </interface>
+ <interface
+   name="pll_refclk0"
+   internal="xcvr_fpll_a10_0.pll_refclk0"
+   type="clock"
+   dir="end">
+  <port name="pll_refclk0" internal="pll_refclk0" />
+ </interface>
+ <module
+   name="xcvr_fpll_a10_0"
+   kind="altera_xcvr_fpll_a10"
+   version="19.1"
+   enabled="1"
+   autoexport="1">
+  <parameter name="base_device" value="NIGHTFURY5" />
+  <parameter name="device" value="10AX115U3F45E2SG" />
+  <parameter name="enable_analog_resets" value="0" />
+  <parameter name="enable_bonding_clks" value="0" />
+  <parameter name="enable_ext_lockdetect_ports" value="0" />
+  <parameter name="enable_fb_comp_bonding" value="0" />
+  <parameter name="enable_hfreq_clk" value="0" />
+  <parameter name="enable_mcgb" value="0" />
+  <parameter name="enable_mcgb_pcie_clksw" value="0" />
+  <parameter name="enable_pld_mcgb_cal_busy_port" value="0" />
+  <parameter name="enable_pll_reconfig" value="0" />
+  <parameter name="generate_add_hdl_instance_example" value="0" />
+  <parameter name="generate_docs" value="1" />
+  <parameter name="gui_actual_outclk0_frequency" value="100.0" />
+  <parameter name="gui_actual_outclk1_frequency" value="100.0" />
+  <parameter name="gui_actual_outclk2_frequency" value="100.0" />
+  <parameter name="gui_actual_outclk3_frequency" value="100.0" />
+  <parameter name="gui_actual_refclk_frequency" value="100.0" />
+  <parameter name="gui_bw_sel" value="low" />
+  <parameter name="gui_cascade_outclk_index" value="0" />
+  <parameter name="gui_desired_hssi_cascade_frequency" value="100.0" />
+  <parameter name="gui_desired_outclk0_frequency" value="156.25" />
+  <parameter name="gui_desired_outclk1_frequency" value="312.5" />
+  <parameter name="gui_desired_outclk2_frequency" value="100.0" />
+  <parameter name="gui_desired_outclk3_frequency" value="100.0" />
+  <parameter name="gui_desired_refclk_frequency" value="100.0" />
+  <parameter name="gui_enable_50G_support" value="false" />
+  <parameter name="gui_enable_active_clk" value="false" />
+  <parameter name="gui_enable_cascade_out" value="false" />
+  <parameter name="gui_enable_clk_bad" value="false" />
+  <parameter name="gui_enable_dps" value="false" />
+  <parameter name="gui_enable_fractional" value="false" />
+  <parameter name="gui_enable_hip_cal_done_port" value="0" />
+  <parameter name="gui_enable_manual_config" value="false" />
+  <parameter name="gui_enable_manual_hssi_counters" value="false" />
+  <parameter name="gui_enable_phase_alignment" value="false" />
+  <parameter name="gui_enable_pld_cal_busy_port" value="1" />
+  <parameter name="gui_fpll_mode" value="0" />
+  <parameter name="gui_fractional_x" value="32" />
+  <parameter name="gui_hip_cal_en" value="0" />
+  <parameter name="gui_hssi_output_clock_frequency" value="1250.0" />
+  <parameter name="gui_hssi_prot_mode" value="0" />
+  <parameter name="gui_iqtxrxclk_outclk_index" value="0" />
+  <parameter name="gui_is_downstream_cascaded_pll" value="false" />
+  <parameter name="gui_number_of_output_clocks" value="2" />
+  <parameter name="gui_operation_mode" value="0" />
+  <parameter name="gui_outclk0_actual_phase_shift" value="0.0" />
+  <parameter name="gui_outclk0_actual_phase_shift_deg" value="0.0" />
+  <parameter name="gui_outclk0_desired_phase_shift" value="0.0" />
+  <parameter name="gui_outclk0_phase_shift_unit" value="0" />
+  <parameter name="gui_outclk1_actual_phase_shift" value="0.0" />
+  <parameter name="gui_outclk1_actual_phase_shift_deg" value="0.0" />
+  <parameter name="gui_outclk1_desired_phase_shift" value="0" />
+  <parameter name="gui_outclk1_phase_shift_unit" value="0" />
+  <parameter name="gui_outclk2_actual_phase_shift" value="0 ps" />
+  <parameter name="gui_outclk2_actual_phase_shift_deg" value="0 deg" />
+  <parameter name="gui_outclk2_desired_phase_shift" value="0" />
+  <parameter name="gui_outclk2_phase_shift_unit" value="0" />
+  <parameter name="gui_outclk3_actual_phase_shift" value="0.0" />
+  <parameter name="gui_outclk3_actual_phase_shift_deg" value="0.0" />
+  <parameter name="gui_outclk3_desired_phase_shift" value="0" />
+  <parameter name="gui_outclk3_phase_shift_unit" value="0" />
+  <parameter name="gui_pll_c_counter_0" value="1" />
+  <parameter name="gui_pll_c_counter_1" value="1" />
+  <parameter name="gui_pll_c_counter_2" value="1" />
+  <parameter name="gui_pll_c_counter_3" value="1" />
+  <parameter name="gui_pll_dsm_fractional_division" value="1" />
+  <parameter name="gui_pll_m_counter" value="1" />
+  <parameter name="gui_pll_n_counter" value="1" />
+  <parameter name="gui_pll_set_hssi_k_counter" value="1" />
+  <parameter name="gui_pll_set_hssi_l_counter" value="1" />
+  <parameter name="gui_pll_set_hssi_m_counter" value="1" />
+  <parameter name="gui_pll_set_hssi_n_counter" value="1" />
+  <parameter name="gui_refclk1_frequency" value="100.0" />
+  <parameter name="gui_refclk_cnt" value="1" />
+  <parameter name="gui_refclk_index" value="0" />
+  <parameter name="gui_refclk_switch" value="false" />
+  <parameter name="gui_reference_clock_frequency" value="644.53125" />
+  <parameter name="gui_self_reset_enabled" value="false" />
+  <parameter name="gui_switchover_delay" value="0" />
+  <parameter name="gui_switchover_mode">Automatic Switchover</parameter>
+  <parameter name="mcgb_aux_clkin_cnt" value="0" />
+  <parameter name="mcgb_div" value="1" />
+  <parameter name="phase_alignment_check_var" value="false" />
+  <parameter name="pma_width" value="64" />
+  <parameter name="rcfg_debug" value="0" />
+  <parameter name="rcfg_enable_avmm_busy_port" value="0" />
+  <parameter name="rcfg_file_prefix">altera_xcvr_fpll_a10</parameter>
+  <parameter name="rcfg_h_file_enable" value="0" />
+  <parameter name="rcfg_jtag_enable" value="0" />
+  <parameter name="rcfg_mif_file_enable" value="0" />
+  <parameter name="rcfg_separate_avmm_busy" value="0" />
+  <parameter name="rcfg_sv_file_enable" value="0" />
+  <parameter name="rcfg_txt_file_enable" value="0" />
+  <parameter name="set_altera_xcvr_fpll_a10_calibration_en" value="1" />
+  <parameter name="set_capability_reg_enable" value="0" />
+  <parameter name="set_csr_soft_logic_enable" value="0" />
+  <parameter name="set_user_identifier" value="0" />
+  <parameter name="silicon_rev" value="false" />
+  <parameter name="support_mode" value="user_mode" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/ram/README.txt b/libraries/technology/ip_arria10_e2sg/ram/README.txt
new file mode 100755
index 0000000000000000000000000000000000000000..24ad4ab94e542bd2d642eaa079f4e18624d8c163
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ram/README.txt
@@ -0,0 +1,97 @@
+README.txt for $RADIOHDL_WORK/libraries/technology/ip_arria10/ram
+
+Contents:
+
+1) RAM components
+2) ROM components
+3) Arria10 IP
+4) Inferred IP
+5) Memory initialisation file
+6) Implementation options (LUTs or block RAM)
+7) Synthesis trials
+
+
+1) RAM components:
+
+  ip_arria10_ram_crwk_crw = Two read/write ports each port with own port clock and with power of two ratio between port widths
+  ip_arria10_ram_crw_crw  = Two read/write ports each port with own port clock and with same address and data width on both ports
+  ip_arria10_ram_cr_cw    = One read port with clock and one write port with clock and with same address and data width on both ports
+  ip_arria10_ram_r_w      = Single clock, one read port and one write port and with same address and data width on both ports
+  
+
+2) ROM components:
+  ip_arria10_rom_r_w      = Not available and not needed, because the ip_arria10_ram_r_w can be used for ROM IP by not connecting the
+                            write port.
+
+
+3) Arria10 IP
+
+  The IP only needs to be generated with
+  
+   ./generate_ip.sh
+   
+  if it need to be modified, because the ip_arria10_ram_*.vhd directly instantiates the altera_syncram component.
+  
+  The instantiation is copied manually from the ip_arria10_ram_*/ram_2port_140/sim/ip_arria10_ram_*.vhd.
+  
+  It appears that the altera_syncram component can be synthesized even though it comes from the altera_lnsim package, 
+  that is a simulation package. However it resembles how it worked for Straix IV with altera_mf.
+
+
+4) Inferred IP
+
+  The inferred Altera code was obtained using template insert with Quartus 14.0a10.
+  The ram_crwk_crw can not be inferred.
+  For the other RAM the g_inferred generic is set to FALSE because the inferred instances do not yet support g_init_file.
+  It is possible to init the RAM using a function e.g.:
+ 
+      function init_ram
+        return memory_t is 
+        variable tmp : memory_t := (others => (others => '0'));
+      begin 
+        for addr_pos in 0 to 2**ADDR_WIDTH - 1 loop 
+          -- Initialize each address with the address itself
+          tmp(addr_pos) := std_logic_vector(to_unsigned(addr_pos, DATA_WIDTH));
+        end loop;
+        return tmp;
+      end init_ram;  
+    
+      -- Declare the RAM signal and specify a default value.  Quartus II
+      -- will create a memory initialization file (.mif) based on the 
+      -- default value.
+      signal ram : memory_t := init_ram;
+
+5) Memory initialisation file
+
+  To support the g_init_file requires first reading the file in a certain format. For us an integer format or SLV format
+  with one value per line (line number = address) would be fine. Using SLV format is necessary if the RAM data is wider
+  than 32 bit, because VHDL integer range is only 2**32. The tb_common_pkg has functiosn to read such a file. Quartus
+  creates a mif file from this when it infers the RAM. However our current UniBoard1 designs provide a mif file that fits
+  the RAM IP. Therefore it is easier initially to also use the RAM IP for Arria10. In future for RadioHDL a generic
+  RAM init file format is preferrable though.
+ 
+
+6) Implementation options (LUTs or block RAM)
+
+  The IP and inferred RAM can be set to use LUTs (MLAB) or block RAM (M20K), however this is not supported yet.
+  
+  . For IP RAM this would imply adding a generic to set the appropriate parameter in the altera_syncram
+  . For inferred RAM is would imply adding a generic to be used for the syntype attribute. 
+    From http://www.alterawiki.com/wiki/Mapping_SRLs_to_registers,_MLABs,_or_Block_RAMs:  
+
+      entity
+          g_ramstyle : STRING := "MLAB,no_rw_check"
+      architecture  
+          attribute ramstyle : string;
+    
+          signal ram : memory_t := init_ram;
+          attribute ramstyle of ram : signal is g_ramstyle; 
+  
+
+7) Synthesis trials
+
+  The quartus/ram.qpf Quartus project was used to verify that the inferred RAM and the block RAM IP actually synthesise
+  to the appropriate FPGA resources.
+  Use the Quartus GUI to manually select a top level component for synthesis e.g. by right clicking the entity vhd file
+  in the file tab of the Quartus project navigator window.
+  Then check the resource usage in the synthesis and fitter reports.
diff --git a/libraries/technology/ip_arria10_e2sg/ram/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/ram/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..14fff7a66160db3dce13ac379c7db2811d2f972e
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ram/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_ram
+hdl_library_clause_name = ip_arria10_e2sg_ram_lib
+hdl_lib_uses_synth = technology
+hdl_lib_uses_sim = 
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    ip_arria10_e2sg_true_dual_port_ram_dual_clock.vhd
+    ip_arria10_e2sg_simple_dual_port_ram_dual_clock.vhd
+    ip_arria10_e2sg_simple_dual_port_ram_single_clock.vhd
+    
+    ip_arria10_e2sg_ram_crwk_crw.vhd
+    ip_arria10_e2sg_ram_crw_crw.vhd
+    ip_arria10_e2sg_ram_cr_cw.vhd
+    ip_arria10_e2sg_ram_r_w.vhd
+    
+test_bench_files =
+
+
+[modelsim_project_file]
+
+
+[quartus_project_file]
+
diff --git a/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_cr_cw.qsys b/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_cr_cw.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..b5f64e7f840dcf16f9fd7099cfc5080da291b775
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_cr_cw.qsys
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_ram_cr_cw">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element ram_2port_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface name="data" internal="ram_2port_0.data" type="conduit" dir="end">
+  <port name="data" internal="data" />
+ </interface>
+ <interface name="q" internal="ram_2port_0.q" type="conduit" dir="end">
+  <port name="q" internal="q" />
+ </interface>
+ <interface name="ram_input" internal="ram_2port_0.ram_input" />
+ <interface name="ram_output" internal="ram_2port_0.ram_output" />
+ <interface
+   name="rdaddress"
+   internal="ram_2port_0.rdaddress"
+   type="conduit"
+   dir="end">
+  <port name="rdaddress" internal="rdaddress" />
+ </interface>
+ <interface name="rdclock" internal="ram_2port_0.rdclock" type="clock" dir="end">
+  <port name="rdclock" internal="rdclock" />
+ </interface>
+ <interface
+   name="wraddress"
+   internal="ram_2port_0.wraddress"
+   type="conduit"
+   dir="end">
+  <port name="wraddress" internal="wraddress" />
+ </interface>
+ <interface name="wrclock" internal="ram_2port_0.wrclock" type="clock" dir="end">
+  <port name="wrclock" internal="wrclock" />
+ </interface>
+ <interface name="wren" internal="ram_2port_0.wren" type="conduit" dir="end">
+  <port name="wren" internal="wren" />
+ </interface>
+ <module
+   name="ram_2port_0"
+   kind="ram_2port"
+   version="20.0.0"
+   enabled="1"
+   autoexport="1">
+  <parameter name="DEVICE_FAMILY" value="Arria 10" />
+  <parameter name="GUI_ACLR_READ_INPUT_RDADDRESS" value="false" />
+  <parameter name="GUI_ACLR_READ_OUTPUT_QA" value="false" />
+  <parameter name="GUI_ACLR_READ_OUTPUT_QB" value="false" />
+  <parameter name="GUI_BLANK_MEMORY" value="1" />
+  <parameter name="GUI_BYTE_ENABLE_A" value="false" />
+  <parameter name="GUI_BYTE_ENABLE_B" value="false" />
+  <parameter name="GUI_BYTE_ENABLE_WIDTH" value="8" />
+  <parameter name="GUI_CLKEN_ADDRESS_STALL_A" value="false" />
+  <parameter name="GUI_CLKEN_ADDRESS_STALL_B" value="false" />
+  <parameter name="GUI_CLKEN_INPUT_REG_A" value="false" />
+  <parameter name="GUI_CLKEN_INPUT_REG_B" value="false" />
+  <parameter name="GUI_CLKEN_OUTPUT_REG_A" value="false" />
+  <parameter name="GUI_CLKEN_OUTPUT_REG_B" value="false" />
+  <parameter name="GUI_CLKEN_RDADDRESSSTALL" value="false" />
+  <parameter name="GUI_CLKEN_READ_INPUT_REG" value="false" />
+  <parameter name="GUI_CLKEN_READ_OUTPUT_REG" value="false" />
+  <parameter name="GUI_CLKEN_WRADDRESSSTALL" value="false" />
+  <parameter name="GUI_CLKEN_WRITE_INPUT_REG" value="false" />
+  <parameter name="GUI_CLOCK_TYPE" value="1" />
+  <parameter name="GUI_COHERENT_READ" value="false" />
+  <parameter name="GUI_CONSTRAINED_DONT_CARE" value="true" />
+  <parameter name="GUI_DATAA_WIDTH" value="8" />
+  <parameter name="GUI_DIFFERENT_CLKENS" value="false" />
+  <parameter name="GUI_ECCENCBYPASS" value="false" />
+  <parameter name="GUI_ECC_DOUBLE" value="false" />
+  <parameter name="GUI_ECC_PIPELINE" value="false" />
+  <parameter name="GUI_ECC_TRIPLE" value="false" />
+  <parameter name="GUI_FILE_REFERENCE" value="0" />
+  <parameter name="GUI_FORCE_TO_ZERO" value="false" />
+  <parameter name="GUI_INIT_FILE_LAYOUT" value="PORT_B" />
+  <parameter name="GUI_INIT_SIM_TO_X" value="false" />
+  <parameter name="GUI_LC_IMPLEMENTION_OPTIONS" value="0" />
+  <parameter name="GUI_MAX_DEPTH" value="Auto" />
+  <parameter name="GUI_MEMSIZE_BITS" value="256" />
+  <parameter name="GUI_MEMSIZE_WORDS" value="32" />
+  <parameter name="GUI_MEM_IN_BITS" value="0" />
+  <parameter name="GUI_MIF_FILENAME" value="./ram_1024.hex" />
+  <parameter name="GUI_MODE" value="0" />
+  <parameter name="GUI_NBE_A" value="false" />
+  <parameter name="GUI_NBE_B" value="false" />
+  <parameter name="GUI_OPTIMIZATION_OPTION" value="0" />
+  <parameter name="GUI_PR" value="false" />
+  <parameter name="GUI_QA_WIDTH" value="8" />
+  <parameter name="GUI_QB_WIDTH" value="8" />
+  <parameter name="GUI_Q_PORT_MODE" value="2" />
+  <parameter name="GUI_RAM_BLOCK_TYPE" value="Auto" />
+  <parameter name="GUI_RDEN_DOUBLE" value="false" />
+  <parameter name="GUI_RDEN_SINGLE" value="false" />
+  <parameter name="GUI_RDW_A_MODE" value="New Data" />
+  <parameter name="GUI_RDW_B_MODE" value="New Data" />
+  <parameter name="GUI_READ_INPUT_RDADDRESS" value="true" />
+  <parameter name="GUI_READ_OUTPUT_QA" value="true" />
+  <parameter name="GUI_READ_OUTPUT_QB" value="true" />
+  <parameter name="GUI_SCLR_READ_OUTPUT_QA" value="false" />
+  <parameter name="GUI_SCLR_READ_OUTPUT_QB" value="false" />
+  <parameter name="GUI_TBENCH" value="false" />
+  <parameter name="GUI_TDP_EMULATE" value="false" />
+  <parameter name="GUI_VAR_WIDTH" value="false" />
+  <parameter name="GUI_WIDTH_ECCENCPARITY" value="8" />
+  <parameter name="GUI_WRITE_INPUT_PORTS" value="true" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_cr_cw.vhd b/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_cr_cw.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..7e4d82cefceacecd4814eb924098c5d4a2eea6a6
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_cr_cw.vhd
@@ -0,0 +1,160 @@
+-------------------------------------------------------------------------------
+--
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+-- RadioHDL wrapper
+
+LIBRARY ieee, technology_lib;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+USE technology_lib.technology_pkg.all;
+
+LIBRARY altera_lnsim;
+USE altera_lnsim.altera_lnsim_components.all;
+
+ENTITY ip_arria10_e2sg_ram_cr_cw IS
+  GENERIC (
+    g_inferred   : BOOLEAN := FALSE;
+    g_adr_w      : NATURAL := 5;
+    g_dat_w      : NATURAL := 8;
+    g_nof_words  : NATURAL := 2**5;
+    g_rd_latency : NATURAL := 1;  -- choose 1 or 2
+    g_init_file  : STRING  := "UNUSED"
+  );
+  PORT
+  (
+    data      : IN  STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+    rdaddress : IN  STD_LOGIC_VECTOR (g_adr_w-1 DOWNTO 0);
+    rdclk     : IN  STD_LOGIC ;
+    wraddress : IN  STD_LOGIC_VECTOR (g_adr_w-1 DOWNTO 0);
+    wrclk     : IN  STD_LOGIC  := '1';
+    wren      : IN  STD_LOGIC  := '0';
+    q         : OUT STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0)
+  );
+END ip_arria10_e2sg_ram_cr_cw;
+
+
+ARCHITECTURE SYN OF ip_arria10_e2sg_ram_cr_cw IS
+
+  CONSTANT c_outdata_reg_b : STRING := tech_sel_a_b(g_rd_latency=1, "UNREGISTERED", "CLOCK1");
+
+  COMPONENT altera_syncram
+  GENERIC (
+          address_aclr_b  : string;
+          address_reg_b  : string;
+          clock_enable_input_a  : string;
+          clock_enable_input_b  : string;
+          clock_enable_output_b  : string;
+          init_file  : string;
+          intended_device_family  : string;
+          lpm_type  : string;
+          numwords_a  : integer;
+          numwords_b  : integer;
+          operation_mode  : string;
+          outdata_aclr_b  : string;
+          outdata_reg_b  : string;
+          power_up_uninitialized  : string;
+          widthad_a  : integer;
+          widthad_b  : integer;
+          width_a  : integer;
+          width_b  : integer;
+          width_byteena_a  : integer
+  );
+  PORT (
+      address_a : in std_logic_vector(g_adr_w-1 downto 0);
+      address_b : in std_logic_vector(g_adr_w-1 downto 0);
+      clock0 : in std_logic;
+      clock1 : in std_logic;
+      data_a : in std_logic_vector(g_dat_w-1 downto 0);
+      wren_a : in std_logic;
+      q_b : out std_logic_vector(g_dat_w-1 downto 0)
+  );
+  END COMPONENT;
+  
+  SIGNAL rdaddr : natural range 0 to g_nof_words - 1;
+  SIGNAL wraddr : natural range 0 to g_nof_words - 1;
+  
+  SIGNAL out_q  : STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+  SIGNAL reg_q  : STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+  
+BEGIN
+
+  ASSERT g_rd_latency=1 OR g_rd_latency=2 REPORT "ip_arria10_e2sg_ram_cr_cw : read latency must be 1 (default) or 2" SEVERITY FAILURE;
+  
+  gen_ip : IF g_inferred=FALSE GENERATE
+    -- Copied from ip_arria10_e2sg_ram_cr_cw/ram_2port_140/sim/ip_arria10_e2sg_ram_cr_cw_ram_2port_140_72tpmcy.vhd
+    u_altera_syncram : altera_syncram
+    GENERIC MAP (
+            address_aclr_b  => "NONE",
+            address_reg_b  => "CLOCK1",
+            clock_enable_input_a  => "BYPASS",
+            clock_enable_input_b  => "BYPASS",
+            clock_enable_output_b  => "BYPASS",
+            init_file  => g_init_file,
+            intended_device_family  => "Arria 10",
+            lpm_type  => "altera_syncram",
+            numwords_a  => g_nof_words,
+            numwords_b  => g_nof_words,
+            operation_mode  => "DUAL_PORT",
+            outdata_aclr_b  => "NONE",
+            outdata_reg_b  => c_outdata_reg_b,
+            power_up_uninitialized  => "FALSE",
+            widthad_a  => g_adr_w,
+            widthad_b  => g_adr_w,
+            width_a  => g_dat_w,
+            width_b  => g_dat_w,
+            width_byteena_a  => 1
+    )
+    PORT MAP (
+        address_a => wraddress,
+        address_b => rdaddress,
+        clock0 => wrclk,
+        clock1 => rdclk,
+        data_a => data,
+        wren_a => wren,
+        q_b => q
+    );
+  END GENERATE;
+  
+  gen_inferred : IF g_inferred=TRUE GENERATE
+    rdaddr <= TO_INTEGER(UNSIGNED(rdaddress));
+    wraddr <= TO_INTEGER(UNSIGNED(wraddress));
+    
+    u_mem : entity work.ip_arria10_e2sg_simple_dual_port_ram_dual_clock
+    generic map (
+      DATA_WIDTH => g_dat_w,
+      ADDR_WIDTH => g_adr_w
+    )
+    port map (
+      rclk  => rdclk,
+      wclk  => wrclk,
+      raddr => rdaddr,
+      waddr => wraddr,
+      data  => data,
+      we    => wren,
+      q     => out_q
+    );
+  
+    reg_q <= out_q WHEN rising_edge(rdclk);
+    
+    q <= out_q WHEN g_rd_latency=1 ELSE reg_q;  
+  END GENERATE;
+  
+END SYN;
diff --git a/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_crw_crw.qsys b/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_crw_crw.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..caf4c8882658e34e990fa5e925ba783368569781
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_crw_crw.qsys
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_ram_crw_crw">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element ram_2port_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="address_a"
+   internal="ram_2port_0.address_a"
+   type="conduit"
+   dir="end">
+  <port name="address_a" internal="address_a" />
+ </interface>
+ <interface
+   name="address_b"
+   internal="ram_2port_0.address_b"
+   type="conduit"
+   dir="end">
+  <port name="address_b" internal="address_b" />
+ </interface>
+ <interface name="clock_a" internal="ram_2port_0.clock_a" type="clock" dir="end">
+  <port name="clock_a" internal="clock_a" />
+ </interface>
+ <interface name="clock_b" internal="ram_2port_0.clock_b" type="clock" dir="end">
+  <port name="clock_b" internal="clock_b" />
+ </interface>
+ <interface name="data_a" internal="ram_2port_0.data_a" type="conduit" dir="end">
+  <port name="data_a" internal="data_a" />
+ </interface>
+ <interface name="data_b" internal="ram_2port_0.data_b" type="conduit" dir="end">
+  <port name="data_b" internal="data_b" />
+ </interface>
+ <interface name="q_a" internal="ram_2port_0.q_a" type="conduit" dir="end">
+  <port name="q_a" internal="q_a" />
+ </interface>
+ <interface name="q_b" internal="ram_2port_0.q_b" type="conduit" dir="end">
+  <port name="q_b" internal="q_b" />
+ </interface>
+ <interface name="ram_input" internal="ram_2port_0.ram_input" />
+ <interface name="ram_output" internal="ram_2port_0.ram_output" />
+ <interface name="wren_a" internal="ram_2port_0.wren_a" type="conduit" dir="end">
+  <port name="wren_a" internal="wren_a" />
+ </interface>
+ <interface name="wren_b" internal="ram_2port_0.wren_b" type="conduit" dir="end">
+  <port name="wren_b" internal="wren_b" />
+ </interface>
+ <module
+   name="ram_2port_0"
+   kind="ram_2port"
+   version="20.0.0"
+   enabled="1"
+   autoexport="1">
+  <parameter name="DEVICE_FAMILY" value="Arria 10" />
+  <parameter name="GUI_ACLR_READ_INPUT_RDADDRESS" value="false" />
+  <parameter name="GUI_ACLR_READ_OUTPUT_QA" value="false" />
+  <parameter name="GUI_ACLR_READ_OUTPUT_QB" value="false" />
+  <parameter name="GUI_BLANK_MEMORY" value="1" />
+  <parameter name="GUI_BYTE_ENABLE_A" value="false" />
+  <parameter name="GUI_BYTE_ENABLE_B" value="false" />
+  <parameter name="GUI_BYTE_ENABLE_WIDTH" value="8" />
+  <parameter name="GUI_CLKEN_ADDRESS_STALL_A" value="false" />
+  <parameter name="GUI_CLKEN_ADDRESS_STALL_B" value="false" />
+  <parameter name="GUI_CLKEN_INPUT_REG_A" value="false" />
+  <parameter name="GUI_CLKEN_INPUT_REG_B" value="false" />
+  <parameter name="GUI_CLKEN_OUTPUT_REG_A" value="false" />
+  <parameter name="GUI_CLKEN_OUTPUT_REG_B" value="false" />
+  <parameter name="GUI_CLKEN_RDADDRESSSTALL" value="false" />
+  <parameter name="GUI_CLKEN_READ_INPUT_REG" value="false" />
+  <parameter name="GUI_CLKEN_READ_OUTPUT_REG" value="false" />
+  <parameter name="GUI_CLKEN_WRADDRESSSTALL" value="false" />
+  <parameter name="GUI_CLKEN_WRITE_INPUT_REG" value="false" />
+  <parameter name="GUI_CLOCK_TYPE" value="4" />
+  <parameter name="GUI_COHERENT_READ" value="false" />
+  <parameter name="GUI_CONSTRAINED_DONT_CARE" value="true" />
+  <parameter name="GUI_DATAA_WIDTH" value="8" />
+  <parameter name="GUI_DIFFERENT_CLKENS" value="false" />
+  <parameter name="GUI_ECCENCBYPASS" value="false" />
+  <parameter name="GUI_ECC_DOUBLE" value="false" />
+  <parameter name="GUI_ECC_PIPELINE" value="false" />
+  <parameter name="GUI_ECC_TRIPLE" value="false" />
+  <parameter name="GUI_FILE_REFERENCE" value="0" />
+  <parameter name="GUI_FORCE_TO_ZERO" value="false" />
+  <parameter name="GUI_INIT_FILE_LAYOUT" value="PORT_B" />
+  <parameter name="GUI_INIT_SIM_TO_X" value="false" />
+  <parameter name="GUI_LC_IMPLEMENTION_OPTIONS" value="0" />
+  <parameter name="GUI_MAX_DEPTH" value="Auto" />
+  <parameter name="GUI_MEMSIZE_BITS" value="256" />
+  <parameter name="GUI_MEMSIZE_WORDS" value="32" />
+  <parameter name="GUI_MEM_IN_BITS" value="0" />
+  <parameter name="GUI_MIF_FILENAME" value="./ram_1024.hex" />
+  <parameter name="GUI_MODE" value="1" />
+  <parameter name="GUI_NBE_A" value="true" />
+  <parameter name="GUI_NBE_B" value="true" />
+  <parameter name="GUI_OPTIMIZATION_OPTION" value="0" />
+  <parameter name="GUI_PR" value="false" />
+  <parameter name="GUI_QA_WIDTH" value="8" />
+  <parameter name="GUI_QB_WIDTH" value="8" />
+  <parameter name="GUI_Q_PORT_MODE" value="2" />
+  <parameter name="GUI_RAM_BLOCK_TYPE" value="Auto" />
+  <parameter name="GUI_RDEN_DOUBLE" value="false" />
+  <parameter name="GUI_RDEN_SINGLE" value="false" />
+  <parameter name="GUI_RDW_A_MODE" value="New Data" />
+  <parameter name="GUI_RDW_B_MODE" value="New Data" />
+  <parameter name="GUI_READ_INPUT_RDADDRESS" value="true" />
+  <parameter name="GUI_READ_OUTPUT_QA" value="true" />
+  <parameter name="GUI_READ_OUTPUT_QB" value="true" />
+  <parameter name="GUI_SCLR_READ_OUTPUT_QA" value="false" />
+  <parameter name="GUI_SCLR_READ_OUTPUT_QB" value="false" />
+  <parameter name="GUI_TBENCH" value="false" />
+  <parameter name="GUI_TDP_EMULATE" value="false" />
+  <parameter name="GUI_VAR_WIDTH" value="false" />
+  <parameter name="GUI_WIDTH_ECCENCPARITY" value="8" />
+  <parameter name="GUI_WRITE_INPUT_PORTS" value="true" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_crw_crw.vhd b/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_crw_crw.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..033a87880432c7f50eb7484d458df12e51518838
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_crw_crw.vhd
@@ -0,0 +1,190 @@
+-------------------------------------------------------------------------------
+--
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+-- RadioHDL wrapper
+
+LIBRARY ieee, technology_lib;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+USE technology_lib.technology_pkg.all;
+
+LIBRARY altera_lnsim;
+USE altera_lnsim.altera_lnsim_components.all;
+
+ENTITY ip_arria10_e2sg_ram_crw_crw IS
+  GENERIC (
+    g_inferred   : BOOLEAN := FALSE;
+    g_adr_w      : NATURAL := 5;
+    g_dat_w      : NATURAL := 8;
+    g_nof_words  : NATURAL := 2**5;
+    g_rd_latency : NATURAL := 1;  -- choose 1 or 2
+    g_init_file  : STRING  := "UNUSED"
+  );
+  PORT
+  (
+    address_a : IN STD_LOGIC_VECTOR (g_adr_w-1 DOWNTO 0);
+    address_b : IN STD_LOGIC_VECTOR (g_adr_w-1 DOWNTO 0);
+    clk_a     : IN STD_LOGIC  := '1';
+    clk_b     : IN STD_LOGIC ;
+    data_a    : IN STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+    data_b    : IN STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+    wren_a    : IN STD_LOGIC  := '0';
+    wren_b    : IN STD_LOGIC  := '0';
+    q_a       : OUT STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+    q_b       : OUT STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0)
+  );
+END ip_arria10_e2sg_ram_crw_crw;
+
+
+ARCHITECTURE SYN OF ip_arria10_e2sg_ram_crw_crw IS
+
+  CONSTANT c_outdata_reg_a : STRING := tech_sel_a_b(g_rd_latency=1, "UNREGISTERED", "CLOCK0");
+  CONSTANT c_outdata_reg_b : STRING := tech_sel_a_b(g_rd_latency=1, "UNREGISTERED", "CLOCK1");
+
+  COMPONENT altera_syncram
+  GENERIC (
+          address_reg_b  : string;
+          clock_enable_input_a  : string;
+          clock_enable_input_b  : string;
+          clock_enable_output_a  : string;
+          clock_enable_output_b  : string;
+          indata_reg_b  : string;
+          init_file  : string;
+          intended_device_family  : string;
+          lpm_type  : string;
+          numwords_a  : integer;
+          numwords_b  : integer;
+          operation_mode  : string;
+          outdata_aclr_a  : string;
+          outdata_aclr_b  : string;
+          outdata_reg_a  : string;
+          outdata_reg_b  : string;
+          power_up_uninitialized  : string;
+          read_during_write_mode_port_a  : string;
+          read_during_write_mode_port_b  : string;
+          widthad_a  : integer;
+          widthad_b  : integer;
+          width_a  : integer;
+          width_b  : integer;
+          width_byteena_a  : integer;
+          width_byteena_b  : integer
+  );
+  PORT (
+      address_a : in std_logic_vector(g_adr_w-1 downto 0);
+      address_b : in std_logic_vector(g_adr_w-1 downto 0);
+      clock0 : in std_logic;
+      clock1 : in std_logic;
+      data_a : in std_logic_vector(g_dat_w-1 downto 0);
+      data_b : in std_logic_vector(g_dat_w-1 downto 0);
+      wren_a : in std_logic;
+      wren_b : in std_logic;
+      q_a : out std_logic_vector(g_dat_w - 1 downto 0);
+      q_b : out std_logic_vector(g_dat_w - 1 downto 0)
+  );
+  END COMPONENT;
+  
+  SIGNAL addr_a : natural range 0 to g_nof_words - 1;
+  SIGNAL addr_b : natural range 0 to g_nof_words - 1;
+  
+  SIGNAL out_a  : STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+  SIGNAL out_b  : STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+  
+  SIGNAL reg_a  : STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+  SIGNAL reg_b  : STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+  
+BEGIN
+
+  ASSERT g_rd_latency=1 OR g_rd_latency=2 REPORT "ip_arria10_e2sg_ram_crw_crw : read latency must be 1 (default) or 2" SEVERITY FAILURE;
+  
+  gen_ip : IF g_inferred=FALSE GENERATE
+    -- Copied from ip_arria10_e2sg_ram_crw_crw/ram_2port_140/sim/ip_arria10_e2sg_ram_crw_crw_ram_2port_140_ehaf5aa.vhd
+    u_altera_syncram : altera_syncram
+    GENERIC MAP (
+            address_reg_b  => "CLOCK1",
+            clock_enable_input_a  => "BYPASS",
+            clock_enable_input_b  => "BYPASS",
+            clock_enable_output_a  => "BYPASS",
+            clock_enable_output_b  => "BYPASS",
+            indata_reg_b  => "CLOCK1",
+            init_file  => g_init_file,
+            intended_device_family  => "Arria 10",
+            lpm_type  => "altera_syncram",
+            numwords_a  => g_nof_words,
+            numwords_b  => g_nof_words,
+            operation_mode  => "BIDIR_DUAL_PORT",
+            outdata_aclr_a  => "NONE",
+            outdata_aclr_b  => "NONE",
+            outdata_reg_a  => c_outdata_reg_a,
+            outdata_reg_b  => c_outdata_reg_b,
+            power_up_uninitialized  => "FALSE",
+            read_during_write_mode_port_a  => "NEW_DATA_NO_NBE_READ",
+            read_during_write_mode_port_b  => "NEW_DATA_NO_NBE_READ",
+            widthad_a  => g_adr_w,
+            widthad_b  => g_adr_w,
+            width_a  => g_dat_w,
+            width_b  => g_dat_w,
+            width_byteena_a  => 1,
+            width_byteena_b  => 1
+    )
+    PORT MAP (
+        address_a => address_a,
+        address_b => address_b,
+        clock0 => clk_a,
+        clock1 => clk_b,
+        data_a => data_a,
+        data_b => data_b,
+        wren_a => wren_a,
+        wren_b => wren_b,
+        q_a => q_a,
+        q_b => q_b
+    );
+  END GENERATE;
+  
+  gen_inferred : IF g_inferred=TRUE GENERATE
+    addr_a <= TO_INTEGER(UNSIGNED(address_a));
+    addr_b <= TO_INTEGER(UNSIGNED(address_b));
+  
+    u_mem : entity work.ip_arria10_e2sg_true_dual_port_ram_dual_clock
+    generic map (
+      DATA_WIDTH => g_dat_w,
+      ADDR_WIDTH => g_adr_w
+    )
+    port map (
+      clk_a  => clk_a,
+      clk_b  => clk_b,
+      addr_a => addr_a,
+      addr_b => addr_b,
+      data_a => data_a,
+      data_b => data_b,
+      we_a   => wren_a,
+      we_b   => wren_b,
+      q_a    => out_a,
+      q_b    => out_b
+    );
+  
+    reg_a <= out_a WHEN rising_edge(clk_a);
+    reg_b <= out_b WHEN rising_edge(clk_b);
+    
+    q_a <= out_a WHEN g_rd_latency=1 ELSE reg_a;
+    q_b <= out_b WHEN g_rd_latency=1 ELSE reg_b;
+  END GENERATE;
+    
+END SYN;
diff --git a/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_crwk_crw.qsys b/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_crwk_crw.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..96293db15f305b586537a930a11c5482496d2811
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_crwk_crw.qsys
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_ram_crwk_crw">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation"
+   categories="System"
+   tool="QsysPro" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element ip_arria10_ram_crwk_crw
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="false" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="address_a"
+   internal="ip_arria10_ram_crwk_crw.address_a"
+   type="conduit"
+   dir="end">
+  <port name="address_a" internal="address_a" />
+ </interface>
+ <interface
+   name="address_b"
+   internal="ip_arria10_ram_crwk_crw.address_b"
+   type="conduit"
+   dir="end">
+  <port name="address_b" internal="address_b" />
+ </interface>
+ <interface
+   name="clock_a"
+   internal="ip_arria10_ram_crwk_crw.clock_a"
+   type="clock"
+   dir="end">
+  <port name="clock_a" internal="clock_a" />
+ </interface>
+ <interface
+   name="clock_b"
+   internal="ip_arria10_ram_crwk_crw.clock_b"
+   type="clock"
+   dir="end">
+  <port name="clock_b" internal="clock_b" />
+ </interface>
+ <interface
+   name="data_a"
+   internal="ip_arria10_ram_crwk_crw.data_a"
+   type="conduit"
+   dir="end">
+  <port name="data_a" internal="data_a" />
+ </interface>
+ <interface
+   name="data_b"
+   internal="ip_arria10_ram_crwk_crw.data_b"
+   type="conduit"
+   dir="end">
+  <port name="data_b" internal="data_b" />
+ </interface>
+ <interface
+   name="q_a"
+   internal="ip_arria10_ram_crwk_crw.q_a"
+   type="conduit"
+   dir="end">
+  <port name="q_a" internal="q_a" />
+ </interface>
+ <interface
+   name="q_b"
+   internal="ip_arria10_ram_crwk_crw.q_b"
+   type="conduit"
+   dir="end">
+  <port name="q_b" internal="q_b" />
+ </interface>
+ <interface name="ram_input" internal="ip_arria10_ram_crwk_crw.ram_input" />
+ <interface name="ram_output" internal="ip_arria10_ram_crwk_crw.ram_output" />
+ <interface
+   name="rden_a"
+   internal="ip_arria10_ram_crwk_crw.rden_a"
+   type="conduit"
+   dir="end">
+  <port name="rden_a" internal="rden_a" />
+ </interface>
+ <interface
+   name="rden_b"
+   internal="ip_arria10_ram_crwk_crw.rden_b"
+   type="conduit"
+   dir="end">
+  <port name="rden_b" internal="rden_b" />
+ </interface>
+ <interface
+   name="wren_a"
+   internal="ip_arria10_ram_crwk_crw.wren_a"
+   type="conduit"
+   dir="end">
+  <port name="wren_a" internal="wren_a" />
+ </interface>
+ <interface
+   name="wren_b"
+   internal="ip_arria10_ram_crwk_crw.wren_b"
+   type="conduit"
+   dir="end">
+  <port name="wren_b" internal="wren_b" />
+ </interface>
+ <module
+   name="ip_arria10_ram_crwk_crw"
+   kind="ram_2port"
+   version="20.0.0"
+   enabled="1"
+   autoexport="1">
+  <parameter name="DEVICE_FAMILY" value="Arria 10" />
+  <parameter name="GUI_ACLR_READ_INPUT_RDADDRESS" value="false" />
+  <parameter name="GUI_ACLR_READ_OUTPUT_QA" value="false" />
+  <parameter name="GUI_ACLR_READ_OUTPUT_QB" value="false" />
+  <parameter name="GUI_BLANK_MEMORY" value="1" />
+  <parameter name="GUI_BYTE_ENABLE_A" value="false" />
+  <parameter name="GUI_BYTE_ENABLE_B" value="false" />
+  <parameter name="GUI_BYTE_ENABLE_WIDTH" value="8" />
+  <parameter name="GUI_CLKEN_ADDRESS_STALL_A" value="false" />
+  <parameter name="GUI_CLKEN_ADDRESS_STALL_B" value="false" />
+  <parameter name="GUI_CLKEN_INPUT_REG_A" value="false" />
+  <parameter name="GUI_CLKEN_INPUT_REG_B" value="false" />
+  <parameter name="GUI_CLKEN_OUTPUT_REG_A" value="false" />
+  <parameter name="GUI_CLKEN_OUTPUT_REG_B" value="false" />
+  <parameter name="GUI_CLKEN_RDADDRESSSTALL" value="false" />
+  <parameter name="GUI_CLKEN_READ_INPUT_REG" value="true" />
+  <parameter name="GUI_CLKEN_READ_OUTPUT_REG" value="true" />
+  <parameter name="GUI_CLKEN_WRADDRESSSTALL" value="false" />
+  <parameter name="GUI_CLKEN_WRITE_INPUT_REG" value="true" />
+  <parameter name="GUI_CLOCK_TYPE" value="4" />
+  <parameter name="GUI_COHERENT_READ" value="false" />
+  <parameter name="GUI_CONSTRAINED_DONT_CARE" value="true" />
+  <parameter name="GUI_DATAA_WIDTH" value="32" />
+  <parameter name="GUI_DIFFERENT_CLKENS" value="false" />
+  <parameter name="GUI_ECCENCBYPASS" value="false" />
+  <parameter name="GUI_ECC_DOUBLE" value="false" />
+  <parameter name="GUI_ECC_PIPELINE" value="false" />
+  <parameter name="GUI_ECC_TRIPLE" value="false" />
+  <parameter name="GUI_FILE_REFERENCE" value="0" />
+  <parameter name="GUI_FORCE_TO_ZERO" value="false" />
+  <parameter name="GUI_INIT_FILE_LAYOUT" value="PORT_B" />
+  <parameter name="GUI_INIT_SIM_TO_X" value="false" />
+  <parameter name="GUI_LC_IMPLEMENTION_OPTIONS" value="0" />
+  <parameter name="GUI_MAX_DEPTH" value="Auto" />
+  <parameter name="GUI_MEMSIZE_BITS" value="256" />
+  <parameter name="GUI_MEMSIZE_WORDS" value="256" />
+  <parameter name="GUI_MEM_IN_BITS" value="0" />
+  <parameter name="GUI_MIF_FILENAME" value="./ram_1024.hex" />
+  <parameter name="GUI_MODE" value="1" />
+  <parameter name="GUI_NBE_A" value="true" />
+  <parameter name="GUI_NBE_B" value="true" />
+  <parameter name="GUI_OPTIMIZATION_OPTION" value="0" />
+  <parameter name="GUI_PR" value="false" />
+  <parameter name="GUI_QA_WIDTH" value="32" />
+  <parameter name="GUI_QB_WIDTH" value="8" />
+  <parameter name="GUI_Q_PORT_MODE" value="2" />
+  <parameter name="GUI_RAM_BLOCK_TYPE" value="Auto" />
+  <parameter name="GUI_RDEN_DOUBLE" value="true" />
+  <parameter name="GUI_RDEN_SINGLE" value="true" />
+  <parameter name="GUI_RDW_A_MODE" value="New Data" />
+  <parameter name="GUI_RDW_B_MODE" value="New Data" />
+  <parameter name="GUI_READ_INPUT_RDADDRESS" value="true" />
+  <parameter name="GUI_READ_OUTPUT_QA" value="true" />
+  <parameter name="GUI_READ_OUTPUT_QB" value="true" />
+  <parameter name="GUI_SCLR_READ_OUTPUT_QA" value="false" />
+  <parameter name="GUI_SCLR_READ_OUTPUT_QB" value="false" />
+  <parameter name="GUI_TBENCH" value="false" />
+  <parameter name="GUI_TDP_EMULATE" value="false" />
+  <parameter name="GUI_VAR_WIDTH" value="true" />
+  <parameter name="GUI_WIDTH_ECCENCPARITY" value="8" />
+  <parameter name="GUI_WRITE_INPUT_PORTS" value="true" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_crwk_crw.vhd b/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_crwk_crw.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..6d2cee79a7125b5435aaf8b1d09482ccb9de83f6
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_crwk_crw.vhd
@@ -0,0 +1,142 @@
+-- (C) 2001-2014 Altera Corporation. All rights reserved.
+-- Your use of Altera Corporation's design tools, logic functions and other 
+-- software and tools, and its AMPP partner logic functions, and any output 
+-- files any of the foregoing (including device programming or simulation 
+-- files), and any associated documentation or information are expressly subject 
+-- to the terms and conditions of the Altera Program License Subscription 
+-- Agreement, Altera MegaCore Function License Agreement, or other applicable 
+-- license agreement, including, without limitation, that your use is for the 
+-- sole purpose of programming logic devices manufactured by Altera and sold by 
+-- Altera or its authorized distributors.  Please refer to the applicable 
+-- agreement for further details.
+
+
+LIBRARY ieee, technology_lib;
+USE ieee.std_logic_1164.all;
+USE technology_lib.technology_pkg.all;
+
+LIBRARY altera_lnsim;
+USE altera_lnsim.altera_lnsim_components.all;
+
+ENTITY ip_arria10_e2sg_ram_crwk_crw IS
+  GENERIC (
+    g_adr_a_w     : NATURAL := 5;
+    g_dat_a_w     : NATURAL := 32;
+    g_adr_b_w     : NATURAL := 4;
+    g_dat_b_w     : NATURAL := 64;
+    g_nof_words_a : NATURAL := 2**5;
+    g_nof_words_b : NATURAL := 2**4;
+    g_rd_latency  : NATURAL := 1;     -- choose 1 or 2
+    g_init_file   : STRING  := "UNUSED"
+  );
+  PORT
+  (
+    address_a : IN STD_LOGIC_VECTOR (g_adr_a_w-1 DOWNTO 0);
+    address_b : IN STD_LOGIC_VECTOR (g_adr_b_w-1 DOWNTO 0);
+    clk_a     : IN STD_LOGIC  := '1';
+    clk_b     : IN STD_LOGIC ;
+    data_a    : IN STD_LOGIC_VECTOR (g_dat_a_w-1 DOWNTO 0);
+    data_b    : IN STD_LOGIC_VECTOR (g_dat_b_w-1 DOWNTO 0);
+    wren_a    : IN STD_LOGIC  := '0';
+    wren_b    : IN STD_LOGIC  := '0';
+    q_a       : OUT STD_LOGIC_VECTOR (g_dat_a_w-1 DOWNTO 0);
+    q_b       : OUT STD_LOGIC_VECTOR (g_dat_b_w-1 DOWNTO 0)
+  );
+END ip_arria10_e2sg_ram_crwk_crw;
+
+
+ARCHITECTURE SYN OF ip_arria10_e2sg_ram_crwk_crw IS
+
+  CONSTANT c_outdata_reg_a : STRING := tech_sel_a_b(g_rd_latency=1, "UNREGISTERED", "CLOCK0");
+  CONSTANT c_outdata_reg_b : STRING := tech_sel_a_b(g_rd_latency=1, "UNREGISTERED", "CLOCK1");
+
+  COMPONENT altera_syncram
+  GENERIC (
+          address_reg_b  : string;
+          clock_enable_input_a  : string;
+          clock_enable_input_b  : string;
+          clock_enable_output_a  : string;
+          clock_enable_output_b  : string;
+          indata_reg_b  : string;
+          init_file  : string;
+          init_file_layout  : string;
+          intended_device_family  : string;
+          lpm_type  : string;
+          numwords_a  : integer;
+          numwords_b  : integer;
+          operation_mode  : string;
+          outdata_aclr_a  : string;
+          outdata_aclr_b  : string;
+          outdata_reg_a  : string;
+          outdata_reg_b  : string;
+          power_up_uninitialized  : string;
+          read_during_write_mode_port_a  : string;
+          read_during_write_mode_port_b  : string;
+          widthad_a  : integer;
+          widthad_b  : integer;
+          width_a  : integer;
+          width_b  : integer;
+          width_byteena_a  : integer;
+          width_byteena_b  : integer
+  );
+  PORT (
+      address_a : in std_logic_vector(g_adr_a_w-1 downto 0);
+      address_b : in std_logic_vector(g_adr_b_w-1 downto 0);
+      clock0 : in std_logic;
+      clock1 : in std_logic;
+      data_a : in std_logic_vector(g_dat_a_w-1 downto 0);
+      data_b : in std_logic_vector(g_dat_b_w-1 downto 0);
+      wren_a : in std_logic;
+      wren_b : in std_logic;
+      q_a : out std_logic_vector(g_dat_a_w - 1 downto 0);
+      q_b : out std_logic_vector(g_dat_b_w - 1 downto 0)
+  );
+  END COMPONENT;
+
+BEGIN
+
+  -- Copied from ip_arria10_e2sg_ram_crwk_crw/ram_2port_140/sim/ip_arria10_e2sg_ram_crwk_crw_ram_2port_140_iyfl3wi.vhd
+  u_altera_syncram : altera_syncram
+  GENERIC MAP (
+          address_reg_b  => "CLOCK1",
+          clock_enable_input_a  => "BYPASS",
+          clock_enable_input_b  => "BYPASS",
+          clock_enable_output_a  => "BYPASS",
+          clock_enable_output_b  => "BYPASS",
+          indata_reg_b  => "CLOCK1",
+          init_file  => g_init_file,
+          init_file_layout  => "PORT_B",
+          intended_device_family  => "Arria 10",
+          lpm_type  => "altera_syncram",
+          numwords_a  => g_nof_words_a,
+          numwords_b  => g_nof_words_b,
+          operation_mode  => "BIDIR_DUAL_PORT",
+          outdata_aclr_a  => "NONE",
+          outdata_aclr_b  => "NONE",
+          outdata_reg_a  => c_outdata_reg_a,
+          outdata_reg_b  => c_outdata_reg_b,
+          power_up_uninitialized  => "FALSE",
+          read_during_write_mode_port_a  => "NEW_DATA_NO_NBE_READ",
+          read_during_write_mode_port_b  => "NEW_DATA_NO_NBE_READ",
+          widthad_a  => g_adr_a_w,
+          widthad_b  => g_adr_b_w,
+          width_a  => g_dat_a_w,
+          width_b  => g_dat_b_w,
+          width_byteena_a  => 1,
+          width_byteena_b  => 1
+  )
+  PORT MAP (
+      address_a => address_a,
+      address_b => address_b,
+      clock0 => clk_a,
+      clock1 => clk_b,
+      data_a => data_a,
+      data_b => data_b,
+      wren_a => wren_a,
+      wren_b => wren_b,
+      q_a => q_a,
+      q_b => q_b
+  );
+
+END SYN;
+
diff --git a/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_r_w.qsys b/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_r_w.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..5d2254302de088f9dd94018653a683825655ca3f
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_r_w.qsys
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_ram_r_w">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element ram_2port_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface name="clock" internal="ram_2port_0.clock" type="clock" dir="end">
+  <port name="clock" internal="clock" />
+ </interface>
+ <interface name="data" internal="ram_2port_0.data" type="conduit" dir="end">
+  <port name="data" internal="data" />
+ </interface>
+ <interface name="q" internal="ram_2port_0.q" type="conduit" dir="end">
+  <port name="q" internal="q" />
+ </interface>
+ <interface name="ram_input" internal="ram_2port_0.ram_input" />
+ <interface name="ram_output" internal="ram_2port_0.ram_output" />
+ <interface
+   name="rdaddress"
+   internal="ram_2port_0.rdaddress"
+   type="conduit"
+   dir="end">
+  <port name="rdaddress" internal="rdaddress" />
+ </interface>
+ <interface
+   name="wraddress"
+   internal="ram_2port_0.wraddress"
+   type="conduit"
+   dir="end">
+  <port name="wraddress" internal="wraddress" />
+ </interface>
+ <interface name="wren" internal="ram_2port_0.wren" type="conduit" dir="end">
+  <port name="wren" internal="wren" />
+ </interface>
+ <module
+   name="ram_2port_0"
+   kind="ram_2port"
+   version="20.0.0"
+   enabled="1"
+   autoexport="1">
+  <parameter name="DEVICE_FAMILY" value="Arria 10" />
+  <parameter name="GUI_ACLR_READ_INPUT_RDADDRESS" value="false" />
+  <parameter name="GUI_ACLR_READ_OUTPUT_QA" value="false" />
+  <parameter name="GUI_ACLR_READ_OUTPUT_QB" value="false" />
+  <parameter name="GUI_BLANK_MEMORY" value="1" />
+  <parameter name="GUI_BYTE_ENABLE_A" value="false" />
+  <parameter name="GUI_BYTE_ENABLE_B" value="false" />
+  <parameter name="GUI_BYTE_ENABLE_WIDTH" value="8" />
+  <parameter name="GUI_CLKEN_ADDRESS_STALL_A" value="false" />
+  <parameter name="GUI_CLKEN_ADDRESS_STALL_B" value="false" />
+  <parameter name="GUI_CLKEN_INPUT_REG_A" value="false" />
+  <parameter name="GUI_CLKEN_INPUT_REG_B" value="false" />
+  <parameter name="GUI_CLKEN_OUTPUT_REG_A" value="false" />
+  <parameter name="GUI_CLKEN_OUTPUT_REG_B" value="false" />
+  <parameter name="GUI_CLKEN_RDADDRESSSTALL" value="false" />
+  <parameter name="GUI_CLKEN_READ_INPUT_REG" value="false" />
+  <parameter name="GUI_CLKEN_READ_OUTPUT_REG" value="false" />
+  <parameter name="GUI_CLKEN_WRADDRESSSTALL" value="false" />
+  <parameter name="GUI_CLKEN_WRITE_INPUT_REG" value="false" />
+  <parameter name="GUI_CLOCK_TYPE" value="0" />
+  <parameter name="GUI_COHERENT_READ" value="false" />
+  <parameter name="GUI_CONSTRAINED_DONT_CARE" value="true" />
+  <parameter name="GUI_DATAA_WIDTH" value="8" />
+  <parameter name="GUI_DIFFERENT_CLKENS" value="false" />
+  <parameter name="GUI_ECCENCBYPASS" value="false" />
+  <parameter name="GUI_ECC_DOUBLE" value="false" />
+  <parameter name="GUI_ECC_PIPELINE" value="false" />
+  <parameter name="GUI_ECC_TRIPLE" value="false" />
+  <parameter name="GUI_FILE_REFERENCE" value="0" />
+  <parameter name="GUI_FORCE_TO_ZERO" value="false" />
+  <parameter name="GUI_INIT_FILE_LAYOUT" value="PORT_B" />
+  <parameter name="GUI_INIT_SIM_TO_X" value="false" />
+  <parameter name="GUI_LC_IMPLEMENTION_OPTIONS" value="0" />
+  <parameter name="GUI_MAX_DEPTH" value="Auto" />
+  <parameter name="GUI_MEMSIZE_BITS" value="256" />
+  <parameter name="GUI_MEMSIZE_WORDS" value="32" />
+  <parameter name="GUI_MEM_IN_BITS" value="0" />
+  <parameter name="GUI_MIF_FILENAME" value="./ram_1024.hex" />
+  <parameter name="GUI_MODE" value="0" />
+  <parameter name="GUI_NBE_A" value="false" />
+  <parameter name="GUI_NBE_B" value="false" />
+  <parameter name="GUI_OPTIMIZATION_OPTION" value="0" />
+  <parameter name="GUI_PR" value="false" />
+  <parameter name="GUI_QA_WIDTH" value="8" />
+  <parameter name="GUI_QB_WIDTH" value="8" />
+  <parameter name="GUI_Q_PORT_MODE" value="2" />
+  <parameter name="GUI_RAM_BLOCK_TYPE" value="Auto" />
+  <parameter name="GUI_RDEN_DOUBLE" value="false" />
+  <parameter name="GUI_RDEN_SINGLE" value="false" />
+  <parameter name="GUI_RDW_A_MODE" value="New Data" />
+  <parameter name="GUI_RDW_B_MODE" value="New Data" />
+  <parameter name="GUI_READ_INPUT_RDADDRESS" value="true" />
+  <parameter name="GUI_READ_OUTPUT_QA" value="true" />
+  <parameter name="GUI_READ_OUTPUT_QB" value="true" />
+  <parameter name="GUI_SCLR_READ_OUTPUT_QA" value="false" />
+  <parameter name="GUI_SCLR_READ_OUTPUT_QB" value="false" />
+  <parameter name="GUI_TBENCH" value="false" />
+  <parameter name="GUI_TDP_EMULATE" value="false" />
+  <parameter name="GUI_VAR_WIDTH" value="false" />
+  <parameter name="GUI_WIDTH_ECCENCPARITY" value="8" />
+  <parameter name="GUI_WRITE_INPUT_PORTS" value="true" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_r_w.vhd b/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_r_w.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..0c8dbbb41bf31a85cc111e8b2668a9d848b7f1ba
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_ram_r_w.vhd
@@ -0,0 +1,155 @@
+-------------------------------------------------------------------------------
+--
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+-- RadioHDL wrapper
+
+LIBRARY ieee, technology_lib;
+USE ieee.std_logic_1164.all;
+USE ieee.numeric_std.all;
+USE technology_lib.technology_pkg.all;
+
+LIBRARY altera_lnsim;
+USE altera_lnsim.altera_lnsim_components.all;
+
+ENTITY ip_arria10_e2sg_ram_r_w IS
+  GENERIC (
+    g_inferred   : BOOLEAN := FALSE;
+    g_adr_w      : NATURAL := 5;
+    g_dat_w      : NATURAL := 8;
+    g_nof_words  : NATURAL := 2**5;
+    g_rd_latency : NATURAL := 1;     -- choose 1 or 2
+    g_init_file  : STRING  := "UNUSED"
+  );
+  PORT (
+    clk         : IN STD_LOGIC  := '1';
+    data        : IN STD_LOGIC_VECTOR(g_dat_w-1 DOWNTO 0) := (OTHERS=>'0');
+    rdaddress   : IN STD_LOGIC_VECTOR(g_adr_w-1 DOWNTO 0) := (OTHERS=>'0');
+    wraddress   : IN STD_LOGIC_VECTOR(g_adr_w-1 DOWNTO 0) := (OTHERS=>'0');
+    wren        : IN STD_LOGIC  := '0';
+    q           : OUT STD_LOGIC_VECTOR(g_dat_w-1 DOWNTO 0)
+  );
+END ip_arria10_e2sg_ram_r_w;
+
+
+ARCHITECTURE SYN OF ip_arria10_e2sg_ram_r_w IS
+
+  CONSTANT c_outdata_reg_b : STRING := tech_sel_a_b(g_rd_latency=1, "UNREGISTERED", "CLOCK1");
+
+  COMPONENT altera_syncram
+  GENERIC (
+          address_aclr_b  : string;
+          address_reg_b  : string;
+          clock_enable_input_a  : string;
+          clock_enable_input_b  : string;
+          clock_enable_output_b  : string;
+          init_file  : string;
+          intended_device_family  : string;
+          lpm_type  : string;
+          numwords_a  : integer;
+          numwords_b  : integer;
+          operation_mode  : string;
+          outdata_aclr_b  : string;
+          outdata_reg_b  : string;
+          power_up_uninitialized  : string;
+          widthad_a  : integer;
+          widthad_b  : integer;
+          width_a  : integer;
+          width_b  : integer;
+          width_byteena_a  : integer
+  );
+  PORT (
+      address_a : in std_logic_vector(g_adr_w-1 downto 0);
+      address_b : in std_logic_vector(g_adr_w-1 downto 0);
+      clock0 : in std_logic;
+      data_a : in std_logic_vector(g_dat_w-1 downto 0);
+      wren_a : in std_logic;
+      q_b : out std_logic_vector(g_dat_w-1 downto 0)
+  );
+  END COMPONENT;
+
+  SIGNAL rdaddr : natural range 0 to g_nof_words - 1;
+  SIGNAL wraddr : natural range 0 to g_nof_words - 1;
+  
+  SIGNAL out_q  : STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+  SIGNAL reg_q  : STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+  
+BEGIN
+
+  ASSERT g_rd_latency=1 OR g_rd_latency=2 REPORT "ip_arria10_e2sg_ram_r_w : read latency must be 1 (default) or 2" SEVERITY FAILURE;
+  
+  gen_ip : IF g_inferred=FALSE GENERATE
+    -- Copied from ip_arria10_e2sg_ram_r_w/ram_2port_140/sim/ip_arria10_e2sg_ram_r_w_ram_2port_140_hukd7xi.vhd
+    u_altera_syncram : altera_syncram
+    GENERIC MAP (
+            address_aclr_b  => "NONE",
+            address_reg_b  => "CLOCK0",
+            clock_enable_input_a  => "BYPASS",
+            clock_enable_input_b  => "BYPASS",
+            clock_enable_output_b  => "BYPASS",
+            init_file  => g_init_file,
+            intended_device_family  => "Arria 10",
+            lpm_type  => "altera_syncram",
+            numwords_a  => g_nof_words,
+            numwords_b  => g_nof_words,
+            operation_mode  => "DUAL_PORT",
+            outdata_aclr_b  => "NONE",
+            outdata_reg_b  => c_outdata_reg_b,
+            power_up_uninitialized  => "FALSE",
+            widthad_a  => g_adr_w,
+            widthad_b  => g_adr_w,
+            width_a  => g_dat_w,
+            width_b  => g_dat_w,
+            width_byteena_a  => 1
+    )
+    PORT MAP (
+        address_a => wraddress,
+        address_b => rdaddress,
+        clock0 => clk,
+        data_a => data,
+        wren_a => wren,
+        q_b => q
+    );
+  END GENERATE;
+  
+  gen_inferred : IF g_inferred=TRUE GENERATE
+    rdaddr <= TO_INTEGER(UNSIGNED(rdaddress));
+    wraddr <= TO_INTEGER(UNSIGNED(wraddress));
+  
+    u_mem : entity work.ip_arria10_e2sg_simple_dual_port_ram_single_clock
+    generic map (
+      DATA_WIDTH => g_dat_w,
+      ADDR_WIDTH => g_adr_w
+    )
+    port map (
+      clk   => clk,
+      raddr => rdaddr,
+      waddr => wraddr,
+      data  => data,
+      we    => wren,
+      q     => out_q
+    );
+  
+    reg_q <= out_q WHEN rising_edge(clk);
+    
+    q <= out_q WHEN g_rd_latency=1 ELSE reg_q;
+  END GENERATE;
+   
+END SYN;
diff --git a/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_simple_dual_port_ram_dual_clock.vhd b/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_simple_dual_port_ram_dual_clock.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..1b73b9194dd5f0240966844dc63525c8ef427c98
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_simple_dual_port_ram_dual_clock.vhd
@@ -0,0 +1,80 @@
+-------------------------------------------------------------------------------
+--
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+-------------------------------------------------------------------------------
+-- The inferred Altera code was obtained using template insert with Quartus 14.0a10.
+
+-- Quartus II VHDL Template
+-- Simple Dual-Port RAM with different read/write addresses and
+-- different read/write clock
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity ip_arria10_e2sg_simple_dual_port_ram_dual_clock is
+
+  generic 
+  (
+    DATA_WIDTH : natural := 8;
+    ADDR_WIDTH : natural := 6
+  );
+
+  port 
+  (
+    rclk  : in std_logic;
+    wclk  : in std_logic;
+    raddr : in natural range 0 to 2**ADDR_WIDTH - 1;
+    waddr : in natural range 0 to 2**ADDR_WIDTH - 1;
+    data  : in std_logic_vector((DATA_WIDTH-1) downto 0);
+    we    : in std_logic := '1';
+    q   : out std_logic_vector((DATA_WIDTH -1) downto 0)
+  );
+
+end ip_arria10_e2sg_simple_dual_port_ram_dual_clock;
+
+architecture rtl of ip_arria10_e2sg_simple_dual_port_ram_dual_clock is
+
+  -- Build a 2-D array type for the RAM
+  subtype word_t is std_logic_vector((DATA_WIDTH-1) downto 0);
+  type memory_t is array(2**ADDR_WIDTH-1 downto 0) of word_t;
+
+  -- Declare the RAM signal.  
+  signal ram : memory_t;
+
+begin
+
+  process(wclk)
+  begin
+  if(rising_edge(wclk)) then 
+    if(we = '1') then
+      ram(waddr) <= data;
+    end if;
+  end if;
+  end process;
+
+  process(rclk)
+  begin
+  if(rising_edge(rclk)) then 
+    q <= ram(raddr);
+  end if;
+  end process;
+
+end rtl;
diff --git a/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_simple_dual_port_ram_single_clock.vhd b/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_simple_dual_port_ram_single_clock.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..bf4b74439e465171aa09ffee45eaa3c3a16b85f9
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_simple_dual_port_ram_single_clock.vhd
@@ -0,0 +1,76 @@
+-------------------------------------------------------------------------------
+--
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+-------------------------------------------------------------------------------
+-- The inferred Altera code was obtained using template insert with Quartus 14.0a10.
+-- Quartus II VHDL Template
+-- Simple Dual-Port RAM with different read/write addresses but
+-- single read/write clock
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity ip_arria10_e2sg_simple_dual_port_ram_single_clock is
+
+  generic 
+  (
+    DATA_WIDTH : natural := 8;
+    ADDR_WIDTH : natural := 6
+  );
+
+  port 
+  (
+    clk   : in std_logic;
+    raddr : in natural range 0 to 2**ADDR_WIDTH - 1;
+    waddr : in natural range 0 to 2**ADDR_WIDTH - 1;
+    data  : in std_logic_vector((DATA_WIDTH-1) downto 0);
+    we    : in std_logic := '1';
+    q   : out std_logic_vector((DATA_WIDTH -1) downto 0)
+  );
+
+end ip_arria10_e2sg_simple_dual_port_ram_single_clock;
+
+architecture rtl of ip_arria10_e2sg_simple_dual_port_ram_single_clock is
+
+  -- Build a 2-D array type for the RAM
+  subtype word_t is std_logic_vector((DATA_WIDTH-1) downto 0);
+  type memory_t is array(2**ADDR_WIDTH-1 downto 0) of word_t;
+
+  -- Declare the RAM signal.  
+  signal ram : memory_t;
+
+begin
+
+  process(clk)
+  begin
+  if(rising_edge(clk)) then 
+    if(we = '1') then
+      ram(waddr) <= data;
+    end if;
+ 
+    -- On a read during a write to the same address, the read will
+    -- return the OLD data at the address
+    q <= ram(raddr);
+  end if;
+  end process;
+
+end rtl;
+
diff --git a/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_true_dual_port_ram_dual_clock.vhd b/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_true_dual_port_ram_dual_clock.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..c460b74fc2e3f879e00897578ad2515d27270407
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/ram/ip_arria10_e2sg_true_dual_port_ram_dual_clock.vhd
@@ -0,0 +1,92 @@
+-------------------------------------------------------------------------------
+--
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+-------------------------------------------------------------------------------
+-- The inferred Altera code was obtained using template insert with Quartus 14.0a10.
+
+-- Quartus II VHDL Template
+-- True Dual-Port RAM with dual clock
+--
+-- Read-during-write on port A or B returns newly written data
+-- 
+-- Read-during-write on port A and B returns unknown data.
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity ip_arria10_e2sg_true_dual_port_ram_dual_clock is
+
+  generic 
+  (
+    DATA_WIDTH : natural := 8;
+    ADDR_WIDTH : natural := 6
+  );
+
+  port 
+  (
+    clk_a : in std_logic;
+    clk_b : in std_logic;
+    addr_a  : in natural range 0 to 2**ADDR_WIDTH - 1;
+    addr_b  : in natural range 0 to 2**ADDR_WIDTH - 1;
+    data_a  : in std_logic_vector((DATA_WIDTH-1) downto 0);
+    data_b  : in std_logic_vector((DATA_WIDTH-1) downto 0);
+    we_a  : in std_logic := '1';
+    we_b  : in std_logic := '1';
+    q_a   : out std_logic_vector((DATA_WIDTH -1) downto 0);
+    q_b   : out std_logic_vector((DATA_WIDTH -1) downto 0)
+  );
+
+end ip_arria10_e2sg_true_dual_port_ram_dual_clock;
+
+architecture rtl of ip_arria10_e2sg_true_dual_port_ram_dual_clock is
+
+  -- Build a 2-D array type for the RAM
+  subtype word_t is std_logic_vector((DATA_WIDTH-1) downto 0);
+  type memory_t is array(2**ADDR_WIDTH-1 downto 0) of word_t;
+
+  -- Declare the RAM 
+  shared variable ram : memory_t;
+
+begin
+
+  -- Port A
+  process(clk_a)
+  begin
+  if(rising_edge(clk_a)) then 
+    if(we_a = '1') then
+      ram(addr_a) := data_a;
+    end if;
+    q_a <= ram(addr_a);
+  end if;
+  end process;
+
+  -- Port B
+  process(clk_b)
+  begin
+  if(rising_edge(clk_b)) then 
+    if(we_b = '1') then
+      ram(addr_b) := data_b;
+    end if;
+    q_b <= ram(addr_b);
+  end if;
+  end process;
+
+end rtl;
diff --git a/libraries/technology/ip_arria10_e2sg/temp_sense/README.patch b/libraries/technology/ip_arria10_e2sg/temp_sense/README.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5d049715990215f956082a0c913d1a6816a1758f
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/temp_sense/README.patch
@@ -0,0 +1,4 @@
+The patch is generated with:
+
+diff -cB ip_arria10_e3sge3_temp_sense/altera_temp_sense_151/synth/altera_temp_sense.sdc generated/altera_temp_sense_151/synth/altera_temp_sense.sdc >altera_temp_sense.sdc.patch
+
diff --git a/libraries/technology/ip_arria10_e2sg/temp_sense/altera_temp_sense.sdc.patch b/libraries/technology/ip_arria10_e2sg/temp_sense/altera_temp_sense.sdc.patch
new file mode 100644
index 0000000000000000000000000000000000000000..443cbc214f44448ef772f2e3fbc18771491088f4
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/temp_sense/altera_temp_sense.sdc.patch
@@ -0,0 +1,19 @@
+*** ip_arria10_e3sge3_temp_sense/altera_temp_sense_151/synth/altera_temp_sense.sdc	2016-01-29 09:56:26.683213797 +0100
+--- generated/altera_temp_sense_151/synth/altera_temp_sense.sdc	2016-01-29 09:58:08.553558667 +0100
+***************
+*** 11,15 ****
+  # agreement for further details.
+  
+  
+! # Create clock for temperature sensor internal clock
+! create_clock -period 1000 -name altera_ts_clk [get_nodes {*altera_temp_sense:temp_sense_0|sd1~sn_adc_ts_clk}]
+\ No newline at end of file
+--- 11,18 ----
+  # agreement for further details.
+  
+  
+! # Create clock for temperature sensor internal clock
+! create_clock -period 1000 -name altera_ts_clk [get_nodes {*altera_temp_sense:temp_sense_0|sd1~sn_adc_ts_clk}]
+! # extra virtual clock:
+! create_clock -period 1000 -name altera_ts_clk.reg [get_nodes {*altera_temp_sense:temp_sense_0|sd1~sn_adc_ts_clk.reg}]
+! 
diff --git a/libraries/technology/ip_arria10_e2sg/temp_sense/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/temp_sense/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..a93714fcde2da9b623187e3f54ae19695e82c8a9
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/temp_sense/compile_ip.tcl
@@ -0,0 +1,37 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_temp_sense/sim"
+
+vmap  altera_temp_sense_194      ./work/
+
+  vlog  "$IP_DIR/../altera_temp_sense_194/sim/altera_temp_sense.v" -work altera_temp_sense_194     
+  vcom  "$IP_DIR/ip_arria10_e2sg_temp_sense.vhd"                   
diff --git a/libraries/technology/ip_arria10_e2sg/temp_sense/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/temp_sense/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..f09c783550f73e540f02d6b49ba886ff2f82781f
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/temp_sense/hdllib.cfg
@@ -0,0 +1,23 @@
+hdl_lib_name = ip_arria10_e2sg_temp_sense 
+hdl_library_clause_name = ip_arria10_e2sg_temp_sense_altera_temp_sense_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = 
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+#modelsim_compile_ip_files =
+#    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/temp_sense/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files = 
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_temp_sense/ip_arria10_e2sg_temp_sense.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_temp_sense.qsys
\ No newline at end of file
diff --git a/libraries/technology/ip_arria10_e2sg/temp_sense/ip_arria10_e2sg_temp_sense.qsys b/libraries/technology/ip_arria10_e2sg/temp_sense/ip_arria10_e2sg_temp_sense.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..7a0d713c54f77e77eab892068799d3addaf33db7
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/temp_sense/ip_arria10_e2sg_temp_sense.qsys
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_temp_sense">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element temp_sense_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface name="clk" internal="temp_sense_0.clk" />
+ <interface
+   name="corectl"
+   internal="temp_sense_0.corectl"
+   type="conduit"
+   dir="end">
+  <port name="corectl" internal="corectl" />
+ </interface>
+ <interface name="eoc" internal="temp_sense_0.eoc" type="conduit" dir="end">
+  <port name="eoc" internal="eoc" />
+ </interface>
+ <interface name="reset" internal="temp_sense_0.reset" type="conduit" dir="end">
+  <port name="reset" internal="reset" />
+ </interface>
+ <interface
+   name="tempout"
+   internal="temp_sense_0.tempout"
+   type="conduit"
+   dir="end">
+  <port name="tempout" internal="tempout" />
+ </interface>
+ <interface name="tsdcaldone" internal="temp_sense_0.tsdcaldone" />
+ <interface name="tsdcalo" internal="temp_sense_0.tsdcalo" />
+ <module
+   name="temp_sense_0"
+   kind="altera_temp_sense"
+   version="19.1.0"
+   enabled="1"
+   autoexport="1">
+  <parameter name="CBX_AUTO_BLACKBOX" value="ALL" />
+  <parameter name="CE_CHECK" value="false" />
+  <parameter name="CLK_FREQUENCY" value="1.0" />
+  <parameter name="CLOCK_DIVIDER_VALUE" value="40" />
+  <parameter name="CLR_CHECK" value="false" />
+  <parameter name="DEVICE_FAMILY" value="Arria 10" />
+  <parameter name="NUMBER_OF_SAMPLES" value="128" />
+  <parameter name="POI_CAL_TEMPERATURE" value="85" />
+  <parameter name="SIM_TSDCALO" value="0" />
+  <parameter name="USER_OFFSET_ENABLE" value="off" />
+  <parameter name="USE_WYS" value="on" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/temp_sense/run_patch.sh b/libraries/technology/ip_arria10_e2sg/temp_sense/run_patch.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c03ae5de5d6f063efe85dc30b77bf10aa55c4dc2
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/temp_sense/run_patch.sh
@@ -0,0 +1,10 @@
+#!/bin/bash 
+
+patchfile='altera_temp_sense.sdc.patch'
+
+echo -e "Applying patch: $patchfile\n"
+
+cd generated/altera_temp_sense_151/synth/
+patch  <../../../${patchfile}
+
+echo "done."
diff --git a/libraries/technology/ip_arria10_e2sg/transceiver_pll_10g/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/transceiver_pll_10g/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..fb04e579cf4beec06569ffc587aa25476ef515ab
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/transceiver_pll_10g/compile_ip.tcl
@@ -0,0 +1,34 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_transceiver_pll_10g/sim"
+
+  vcom       "$IP_DIR/ip_arria10_e2sg_transceiver_pll_10g.vhd"                                                                                                    
diff --git a/libraries/technology/ip_arria10_e2sg/transceiver_pll_10g/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/transceiver_pll_10g/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..b4ecca03eb26663a84dde9666bb06658ff0e473f
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/transceiver_pll_10g/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_transceiver_pll_10g
+hdl_library_clause_name = ip_arria10_e2sg_transceiver_pll_10g_altera_xcvr_atx_pll_a10_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_atx_pll_a10_194
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/transceiver_pll_10g/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_transceiver_pll_10g/ip_arria10_e2sg_transceiver_pll_10g.qip
+
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_transceiver_pll_10g.qsys
\ No newline at end of file
diff --git a/libraries/technology/ip_arria10_e2sg/transceiver_pll_10g/ip_arria10_e2sg_transceiver_pll_10g.qsys b/libraries/technology/ip_arria10_e2sg/transceiver_pll_10g/ip_arria10_e2sg_transceiver_pll_10g.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..3096bce5a3e313d3279a5f0e16ef6331f3d51b44
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/transceiver_pll_10g/ip_arria10_e2sg_transceiver_pll_10g.qsys
@@ -0,0 +1,221 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_transceiver_pll_10g">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element xcvr_atx_pll_a10_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos>
+        <entry>
+            <key>reconfig_avmm0</key>
+            <value>
+                <connectionPointName>reconfig_avmm0</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>ADDRESS_MAP</key>
+                        <value>&lt;address-map&gt;&lt;slave name='reconfig_avmm0' start='0x0' end='0x1000' datawidth='32' /&gt;&lt;/address-map&gt;</value>
+                    </entry>
+                    <entry>
+                        <key>ADDRESS_WIDTH</key>
+                        <value>12</value>
+                    </entry>
+                    <entry>
+                        <key>MAX_SLAVE_DATA_WIDTH</key>
+                        <value>32</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+    </connPtSystemInfos>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="mcgb_rst"
+   internal="xcvr_atx_pll_a10_0.mcgb_rst"
+   type="conduit"
+   dir="end">
+  <port name="mcgb_rst" internal="mcgb_rst" />
+ </interface>
+ <interface
+   name="mcgb_serial_clk"
+   internal="xcvr_atx_pll_a10_0.mcgb_serial_clk"
+   type="hssi_serial_clock"
+   dir="start">
+  <port name="mcgb_serial_clk" internal="mcgb_serial_clk" />
+ </interface>
+ <interface
+   name="pll_cal_busy"
+   internal="xcvr_atx_pll_a10_0.pll_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="pll_cal_busy" internal="pll_cal_busy" />
+ </interface>
+ <interface
+   name="pll_locked"
+   internal="xcvr_atx_pll_a10_0.pll_locked"
+   type="conduit"
+   dir="end">
+  <port name="pll_locked" internal="pll_locked" />
+ </interface>
+ <interface
+   name="pll_powerdown"
+   internal="xcvr_atx_pll_a10_0.pll_powerdown"
+   type="conduit"
+   dir="end">
+  <port name="pll_powerdown" internal="pll_powerdown" />
+ </interface>
+ <interface
+   name="pll_refclk0"
+   internal="xcvr_atx_pll_a10_0.pll_refclk0"
+   type="clock"
+   dir="end">
+  <port name="pll_refclk0" internal="pll_refclk0" />
+ </interface>
+ <interface
+   name="reconfig_avmm0"
+   internal="xcvr_atx_pll_a10_0.reconfig_avmm0"
+   type="avalon"
+   dir="end">
+  <port name="reconfig_address0" internal="reconfig_address0" />
+  <port name="reconfig_read0" internal="reconfig_read0" />
+  <port name="reconfig_readdata0" internal="reconfig_readdata0" />
+  <port name="reconfig_waitrequest0" internal="reconfig_waitrequest0" />
+  <port name="reconfig_write0" internal="reconfig_write0" />
+  <port name="reconfig_writedata0" internal="reconfig_writedata0" />
+ </interface>
+ <interface
+   name="reconfig_clk0"
+   internal="xcvr_atx_pll_a10_0.reconfig_clk0"
+   type="clock"
+   dir="end">
+  <port name="reconfig_clk0" internal="reconfig_clk0" />
+ </interface>
+ <interface
+   name="reconfig_reset0"
+   internal="xcvr_atx_pll_a10_0.reconfig_reset0"
+   type="reset"
+   dir="end">
+  <port name="reconfig_reset0" internal="reconfig_reset0" />
+ </interface>
+ <interface
+   name="tx_serial_clk"
+   internal="xcvr_atx_pll_a10_0.tx_serial_clk"
+   type="hssi_serial_clock"
+   dir="start">
+  <port name="tx_serial_clk" internal="tx_serial_clk" />
+ </interface>
+ <module
+   name="xcvr_atx_pll_a10_0"
+   kind="altera_xcvr_atx_pll_a10"
+   version="19.1"
+   enabled="1"
+   autoexport="1">
+  <parameter name="base_device" value="NIGHTFURY5" />
+  <parameter name="bw_sel" value="low" />
+  <parameter name="device" value="10AX115U3F45E2SG" />
+  <parameter name="device_family" value="Arria 10" />
+  <parameter name="enable_16G_path" value="0" />
+  <parameter name="enable_8G_path" value="1" />
+  <parameter name="enable_analog_resets" value="0" />
+  <parameter name="enable_bonding_clks" value="0" />
+  <parameter name="enable_cascade_out" value="0" />
+  <parameter name="enable_debug_ports_parameters" value="0" />
+  <parameter name="enable_ext_lockdetect_ports" value="0" />
+  <parameter name="enable_fb_comp_bonding" value="0" />
+  <parameter name="enable_hfreq_clk" value="1" />
+  <parameter name="enable_hip_cal_done_port" value="0" />
+  <parameter name="enable_manual_configuration" value="1" />
+  <parameter name="enable_mcgb" value="1" />
+  <parameter name="enable_mcgb_pcie_clksw" value="0" />
+  <parameter name="enable_pcie_clk" value="0" />
+  <parameter name="enable_pld_atx_cal_busy_port" value="1" />
+  <parameter name="enable_pld_mcgb_cal_busy_port" value="0" />
+  <parameter name="enable_pll_reconfig" value="1" />
+  <parameter name="generate_add_hdl_instance_example" value="0" />
+  <parameter name="generate_docs" value="1" />
+  <parameter name="mcgb_aux_clkin_cnt" value="0" />
+  <parameter name="mcgb_div" value="1" />
+  <parameter name="message_level" value="error" />
+  <parameter name="pma_width" value="64" />
+  <parameter name="primary_pll_buffer">GX clock output buffer</parameter>
+  <parameter name="prot_mode" value="Basic" />
+  <parameter name="rcfg_debug" value="0" />
+  <parameter name="rcfg_enable_avmm_busy_port" value="0" />
+  <parameter name="rcfg_file_prefix">altera_xcvr_atx_pll_a10</parameter>
+  <parameter name="rcfg_h_file_enable" value="1" />
+  <parameter name="rcfg_jtag_enable" value="1" />
+  <parameter name="rcfg_mif_file_enable" value="1" />
+  <parameter name="rcfg_multi_enable" value="0" />
+  <parameter name="rcfg_profile_cnt" value="2" />
+  <parameter name="rcfg_profile_data0" value="" />
+  <parameter name="rcfg_profile_data1" value="" />
+  <parameter name="rcfg_profile_data2" value="" />
+  <parameter name="rcfg_profile_data3" value="" />
+  <parameter name="rcfg_profile_data4" value="" />
+  <parameter name="rcfg_profile_data5" value="" />
+  <parameter name="rcfg_profile_data6" value="" />
+  <parameter name="rcfg_profile_data7" value="" />
+  <parameter name="rcfg_profile_select" value="1" />
+  <parameter name="rcfg_reduced_files_enable" value="0" />
+  <parameter name="rcfg_separate_avmm_busy" value="0" />
+  <parameter name="rcfg_sv_file_enable" value="1" />
+  <parameter name="rcfg_txt_file_enable" value="0" />
+  <parameter name="refclk_cnt" value="1" />
+  <parameter name="refclk_index" value="0" />
+  <parameter name="set_altera_xcvr_atx_pll_a10_calibration_en" value="1" />
+  <parameter name="set_auto_reference_clock_frequency" value="644.53125" />
+  <parameter name="set_capability_reg_enable" value="1" />
+  <parameter name="set_csr_soft_logic_enable" value="1" />
+  <parameter name="set_fref_clock_frequency" value="100.0" />
+  <parameter name="set_hip_cal_en" value="0" />
+  <parameter name="set_k_counter" value="1" />
+  <parameter name="set_l_cascade_counter" value="4" />
+  <parameter name="set_l_cascade_predivider" value="1" />
+  <parameter name="set_l_counter" value="2" />
+  <parameter name="set_m_counter" value="1" />
+  <parameter name="set_manual_reference_clock_frequency" value="100.0" />
+  <parameter name="set_output_clock_frequency" value="5156.25" />
+  <parameter name="set_rcfg_emb_strm_enable" value="0" />
+  <parameter name="set_ref_clk_div" value="1" />
+  <parameter name="set_user_identifier" value="0" />
+  <parameter name="silicon_rev" value="false" />
+  <parameter name="support_mode" value="user_mode" />
+  <parameter name="test_mode" value="0" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_1/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_1/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..acd0d01beafdf9a36f59f649285fa21e7a6e2bb6
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_1/compile_ip.tcl
@@ -0,0 +1,35 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_transceiver_reset_controller_1/sim"
+
+               
+  vcom         "$IP_DIR/ip_arria10_e2sg_transceiver_reset_controller_1.vhd"                    
diff --git a/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_1/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_1/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..d30d7f16bee770d2c03ddd9d4c7521aeb2a2a520
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_1/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_transceiver_reset_controller_1
+hdl_library_clause_name = ip_arria10_e2sg_transceiver_reset_controller_1_altera_xcvr_reset_control_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_reset_control_194
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_1/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_transceiver_reset_controller_1/ip_arria10_e2sg_transceiver_reset_controller_1.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_transceiver_reset_controller_1.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_1/ip_arria10_e2sg_transceiver_reset_controller_1.qsys b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_1/ip_arria10_e2sg_transceiver_reset_controller_1.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..9f64271e088f3eaeedfdd763af49313099cdebab
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_1/ip_arria10_e2sg_transceiver_reset_controller_1.qsys
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_transceiver_reset_controller_1">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element xcvr_reset_control_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="clock"
+   internal="xcvr_reset_control_0.clock"
+   type="clock"
+   dir="end">
+  <port name="clock" internal="clock" />
+ </interface>
+ <interface
+   name="pll_locked"
+   internal="xcvr_reset_control_0.pll_locked"
+   type="conduit"
+   dir="end">
+  <port name="pll_locked" internal="pll_locked" />
+ </interface>
+ <interface
+   name="pll_powerdown"
+   internal="xcvr_reset_control_0.pll_powerdown"
+   type="conduit"
+   dir="end">
+  <port name="pll_powerdown" internal="pll_powerdown" />
+ </interface>
+ <interface
+   name="pll_select"
+   internal="xcvr_reset_control_0.pll_select"
+   type="conduit"
+   dir="end">
+  <port name="pll_select" internal="pll_select" />
+ </interface>
+ <interface
+   name="reset"
+   internal="xcvr_reset_control_0.reset"
+   type="reset"
+   dir="end">
+  <port name="reset" internal="reset" />
+ </interface>
+ <interface
+   name="rx_analogreset"
+   internal="xcvr_reset_control_0.rx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_analogreset" internal="rx_analogreset" />
+ </interface>
+ <interface
+   name="rx_cal_busy"
+   internal="xcvr_reset_control_0.rx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="rx_cal_busy" internal="rx_cal_busy" />
+ </interface>
+ <interface
+   name="rx_digitalreset"
+   internal="xcvr_reset_control_0.rx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_digitalreset" internal="rx_digitalreset" />
+ </interface>
+ <interface
+   name="rx_is_lockedtodata"
+   internal="xcvr_reset_control_0.rx_is_lockedtodata"
+   type="conduit"
+   dir="end">
+  <port name="rx_is_lockedtodata" internal="rx_is_lockedtodata" />
+ </interface>
+ <interface
+   name="rx_ready"
+   internal="xcvr_reset_control_0.rx_ready"
+   type="conduit"
+   dir="end">
+  <port name="rx_ready" internal="rx_ready" />
+ </interface>
+ <interface
+   name="tx_analogreset"
+   internal="xcvr_reset_control_0.tx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_analogreset" internal="tx_analogreset" />
+ </interface>
+ <interface
+   name="tx_cal_busy"
+   internal="xcvr_reset_control_0.tx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="tx_cal_busy" internal="tx_cal_busy" />
+ </interface>
+ <interface
+   name="tx_digitalreset"
+   internal="xcvr_reset_control_0.tx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_digitalreset" internal="tx_digitalreset" />
+ </interface>
+ <interface
+   name="tx_ready"
+   internal="xcvr_reset_control_0.tx_ready"
+   type="conduit"
+   dir="end">
+  <port name="tx_ready" internal="tx_ready" />
+ </interface>
+ <module
+   name="xcvr_reset_control_0"
+   kind="altera_xcvr_reset_control"
+   version="19.1"
+   enabled="1"
+   autoexport="1">
+  <parameter name="CHANNELS" value="1" />
+  <parameter name="PLLS" value="1" />
+  <parameter name="REDUCED_SIM_TIME" value="1" />
+  <parameter name="RX_ENABLE" value="1" />
+  <parameter name="RX_PER_CHANNEL" value="1" />
+  <parameter name="SYNCHRONIZE_PLL_RESET" value="0" />
+  <parameter name="SYNCHRONIZE_RESET" value="1" />
+  <parameter name="SYS_CLK_IN_MHZ" value="156" />
+  <parameter name="TX_ENABLE" value="1" />
+  <parameter name="TX_PER_CHANNEL" value="0" />
+  <parameter name="TX_PLL_ENABLE" value="1" />
+  <parameter name="T_PLL_LOCK_HYST" value="60" />
+  <parameter name="T_PLL_POWERDOWN" value="1000" />
+  <parameter name="T_RX_ANALOGRESET" value="70000" />
+  <parameter name="T_RX_DIGITALRESET" value="4000" />
+  <parameter name="T_TX_ANALOGRESET" value="70000" />
+  <parameter name="T_TX_DIGITALRESET" value="70000" />
+  <parameter name="device_family" value="Arria 10" />
+  <parameter name="gui_pll_cal_busy" value="0" />
+  <parameter name="gui_rx_auto_reset" value="0" />
+  <parameter name="gui_split_interfaces" value="0" />
+  <parameter name="gui_tx_auto_reset" value="0" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_12/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_12/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..e5371e0872f8623555348a631ced65524bab8743
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_12/compile_ip.tcl
@@ -0,0 +1,34 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_transceiver_reset_controller_12/sim"
+
+  vcom         "$IP_DIR/ip_arria10_e2sg_transceiver_reset_controller_12.vhd"                      
diff --git a/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_12/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_12/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..3cafe88bc5af067697dc5cdaa0615eaf22eb80c4
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_12/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_transceiver_reset_controller_12
+hdl_library_clause_name = ip_arria10_e2sg_transceiver_reset_controller_12_altera_xcvr_reset_control_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_reset_control_194
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_12/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_transceiver_reset_controller_12/ip_arria10_e2sg_transceiver_reset_controller_12.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_transceiver_reset_controller_12.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_12/ip_arria10_e2sg_transceiver_reset_controller_12.qsys b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_12/ip_arria10_e2sg_transceiver_reset_controller_12.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..7750717329ce3ef943f9a7eee6127de5473d082b
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_12/ip_arria10_e2sg_transceiver_reset_controller_12.qsys
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_transceiver_reset_controller_12">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element transceiver_reset_controller_inst
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="clock"
+   internal="transceiver_reset_controller_inst.clock"
+   type="clock"
+   dir="end">
+  <port name="clock" internal="clock" />
+ </interface>
+ <interface
+   name="pll_locked"
+   internal="transceiver_reset_controller_inst.pll_locked"
+   type="conduit"
+   dir="end">
+  <port name="pll_locked" internal="pll_locked" />
+ </interface>
+ <interface
+   name="pll_powerdown"
+   internal="transceiver_reset_controller_inst.pll_powerdown"
+   type="conduit"
+   dir="end">
+  <port name="pll_powerdown" internal="pll_powerdown" />
+ </interface>
+ <interface
+   name="pll_select"
+   internal="transceiver_reset_controller_inst.pll_select"
+   type="conduit"
+   dir="end">
+  <port name="pll_select" internal="pll_select" />
+ </interface>
+ <interface
+   name="reset"
+   internal="transceiver_reset_controller_inst.reset"
+   type="reset"
+   dir="end">
+  <port name="reset" internal="reset" />
+ </interface>
+ <interface
+   name="rx_analogreset"
+   internal="transceiver_reset_controller_inst.rx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_analogreset" internal="rx_analogreset" />
+ </interface>
+ <interface
+   name="rx_cal_busy"
+   internal="transceiver_reset_controller_inst.rx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="rx_cal_busy" internal="rx_cal_busy" />
+ </interface>
+ <interface
+   name="rx_digitalreset"
+   internal="transceiver_reset_controller_inst.rx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_digitalreset" internal="rx_digitalreset" />
+ </interface>
+ <interface
+   name="rx_is_lockedtodata"
+   internal="transceiver_reset_controller_inst.rx_is_lockedtodata"
+   type="conduit"
+   dir="end">
+  <port name="rx_is_lockedtodata" internal="rx_is_lockedtodata" />
+ </interface>
+ <interface
+   name="rx_ready"
+   internal="transceiver_reset_controller_inst.rx_ready"
+   type="conduit"
+   dir="end">
+  <port name="rx_ready" internal="rx_ready" />
+ </interface>
+ <interface
+   name="tx_analogreset"
+   internal="transceiver_reset_controller_inst.tx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_analogreset" internal="tx_analogreset" />
+ </interface>
+ <interface
+   name="tx_cal_busy"
+   internal="transceiver_reset_controller_inst.tx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="tx_cal_busy" internal="tx_cal_busy" />
+ </interface>
+ <interface
+   name="tx_digitalreset"
+   internal="transceiver_reset_controller_inst.tx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_digitalreset" internal="tx_digitalreset" />
+ </interface>
+ <interface
+   name="tx_ready"
+   internal="transceiver_reset_controller_inst.tx_ready"
+   type="conduit"
+   dir="end">
+  <port name="tx_ready" internal="tx_ready" />
+ </interface>
+ <module
+   name="transceiver_reset_controller_inst"
+   kind="altera_xcvr_reset_control"
+   version="19.1"
+   enabled="1"
+   autoexport="1">
+  <parameter name="CHANNELS" value="12" />
+  <parameter name="PLLS" value="1" />
+  <parameter name="REDUCED_SIM_TIME" value="1" />
+  <parameter name="RX_ENABLE" value="1" />
+  <parameter name="RX_PER_CHANNEL" value="1" />
+  <parameter name="SYNCHRONIZE_PLL_RESET" value="0" />
+  <parameter name="SYNCHRONIZE_RESET" value="1" />
+  <parameter name="SYS_CLK_IN_MHZ" value="156" />
+  <parameter name="TX_ENABLE" value="1" />
+  <parameter name="TX_PER_CHANNEL" value="0" />
+  <parameter name="TX_PLL_ENABLE" value="1" />
+  <parameter name="T_PLL_LOCK_HYST" value="60" />
+  <parameter name="T_PLL_POWERDOWN" value="1000" />
+  <parameter name="T_RX_ANALOGRESET" value="70000" />
+  <parameter name="T_RX_DIGITALRESET" value="4000" />
+  <parameter name="T_TX_ANALOGRESET" value="70000" />
+  <parameter name="T_TX_DIGITALRESET" value="70000" />
+  <parameter name="device_family" value="Arria 10" />
+  <parameter name="gui_pll_cal_busy" value="0" />
+  <parameter name="gui_rx_auto_reset" value="0" />
+  <parameter name="gui_split_interfaces" value="0" />
+  <parameter name="gui_tx_auto_reset" value="0" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_24/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_24/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..5bbfb9dc8a990657cf60f8c99de0bc4118021b41
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_24/compile_ip.tcl
@@ -0,0 +1,35 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_transceiver_reset_controller_24/sim"
+
+                
+  vcom         "$IP_DIR/ip_arria10_e2sg_transceiver_reset_controller_24.vhd"                    
diff --git a/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_24/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_24/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..ce9acb98293373d6e2be48e1e676d788246656ed
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_24/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_transceiver_reset_controller_24
+hdl_library_clause_name = ip_arria10_e2sg_transceiver_reset_controller_24_altera_xcvr_reset_control_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_reset_control_194
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_24/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_transceiver_reset_controller_24/ip_arria10_e2sg_transceiver_reset_controller_24.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_transceiver_reset_controller_24.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_24/ip_arria10_e2sg_transceiver_reset_controller_24.qsys b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_24/ip_arria10_e2sg_transceiver_reset_controller_24.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..fc126428a4794d88eb37f51e00811be752098590
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_24/ip_arria10_e2sg_transceiver_reset_controller_24.qsys
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_transceiver_reset_controller_24">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element transceiver_reset_controller_inst
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="clock"
+   internal="transceiver_reset_controller_inst.clock"
+   type="clock"
+   dir="end">
+  <port name="clock" internal="clock" />
+ </interface>
+ <interface
+   name="pll_locked"
+   internal="transceiver_reset_controller_inst.pll_locked"
+   type="conduit"
+   dir="end">
+  <port name="pll_locked" internal="pll_locked" />
+ </interface>
+ <interface
+   name="pll_powerdown"
+   internal="transceiver_reset_controller_inst.pll_powerdown"
+   type="conduit"
+   dir="end">
+  <port name="pll_powerdown" internal="pll_powerdown" />
+ </interface>
+ <interface
+   name="pll_select"
+   internal="transceiver_reset_controller_inst.pll_select"
+   type="conduit"
+   dir="end">
+  <port name="pll_select" internal="pll_select" />
+ </interface>
+ <interface
+   name="reset"
+   internal="transceiver_reset_controller_inst.reset"
+   type="reset"
+   dir="end">
+  <port name="reset" internal="reset" />
+ </interface>
+ <interface
+   name="rx_analogreset"
+   internal="transceiver_reset_controller_inst.rx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_analogreset" internal="rx_analogreset" />
+ </interface>
+ <interface
+   name="rx_cal_busy"
+   internal="transceiver_reset_controller_inst.rx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="rx_cal_busy" internal="rx_cal_busy" />
+ </interface>
+ <interface
+   name="rx_digitalreset"
+   internal="transceiver_reset_controller_inst.rx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_digitalreset" internal="rx_digitalreset" />
+ </interface>
+ <interface
+   name="rx_is_lockedtodata"
+   internal="transceiver_reset_controller_inst.rx_is_lockedtodata"
+   type="conduit"
+   dir="end">
+  <port name="rx_is_lockedtodata" internal="rx_is_lockedtodata" />
+ </interface>
+ <interface
+   name="rx_ready"
+   internal="transceiver_reset_controller_inst.rx_ready"
+   type="conduit"
+   dir="end">
+  <port name="rx_ready" internal="rx_ready" />
+ </interface>
+ <interface
+   name="tx_analogreset"
+   internal="transceiver_reset_controller_inst.tx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_analogreset" internal="tx_analogreset" />
+ </interface>
+ <interface
+   name="tx_cal_busy"
+   internal="transceiver_reset_controller_inst.tx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="tx_cal_busy" internal="tx_cal_busy" />
+ </interface>
+ <interface
+   name="tx_digitalreset"
+   internal="transceiver_reset_controller_inst.tx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_digitalreset" internal="tx_digitalreset" />
+ </interface>
+ <interface
+   name="tx_ready"
+   internal="transceiver_reset_controller_inst.tx_ready"
+   type="conduit"
+   dir="end">
+  <port name="tx_ready" internal="tx_ready" />
+ </interface>
+ <module
+   name="transceiver_reset_controller_inst"
+   kind="altera_xcvr_reset_control"
+   version="19.1"
+   enabled="1"
+   autoexport="1">
+  <parameter name="CHANNELS" value="24" />
+  <parameter name="PLLS" value="1" />
+  <parameter name="REDUCED_SIM_TIME" value="1" />
+  <parameter name="RX_ENABLE" value="1" />
+  <parameter name="RX_PER_CHANNEL" value="1" />
+  <parameter name="SYNCHRONIZE_PLL_RESET" value="0" />
+  <parameter name="SYNCHRONIZE_RESET" value="1" />
+  <parameter name="SYS_CLK_IN_MHZ" value="156" />
+  <parameter name="TX_ENABLE" value="1" />
+  <parameter name="TX_PER_CHANNEL" value="0" />
+  <parameter name="TX_PLL_ENABLE" value="1" />
+  <parameter name="T_PLL_LOCK_HYST" value="60" />
+  <parameter name="T_PLL_POWERDOWN" value="1000" />
+  <parameter name="T_RX_ANALOGRESET" value="70000" />
+  <parameter name="T_RX_DIGITALRESET" value="4000" />
+  <parameter name="T_TX_ANALOGRESET" value="70000" />
+  <parameter name="T_TX_DIGITALRESET" value="70000" />
+  <parameter name="device_family" value="Arria 10" />
+  <parameter name="gui_pll_cal_busy" value="0" />
+  <parameter name="gui_rx_auto_reset" value="0" />
+  <parameter name="gui_split_interfaces" value="0" />
+  <parameter name="gui_tx_auto_reset" value="0" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_3/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_3/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..aebd7ffc4380dabb3247066427752b3d60f9958d
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_3/compile_ip.tcl
@@ -0,0 +1,34 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_transceiver_reset_controller_3/sim"
+                
+  vcom         "$IP_DIR/ip_arria10_e2sg_transceiver_reset_controller_3.vhd"                     
diff --git a/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_3/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_3/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..7e5151ad9d64e50dc1f93a902a9d6b68a16bbff1
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_3/hdllib.cfg
@@ -0,0 +1,23 @@
+hdl_lib_name = ip_arria10_e2sg_transceiver_reset_controller_3
+hdl_library_clause_name = ip_arria10_e2sg_transceiver_reset_controller_3_altera_xcvr_reset_control_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_reset_control_194
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_3/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_transceiver_reset_controller_3/ip_arria10_e2sg_transceiver_reset_controller_3.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_transceiver_reset_controller_3.qsys
\ No newline at end of file
diff --git a/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_3/ip_arria10_e2sg_transceiver_reset_controller_3.qsys b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_3/ip_arria10_e2sg_transceiver_reset_controller_3.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..e5644189242728028e5c280c016d9d20059974cc
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_3/ip_arria10_e2sg_transceiver_reset_controller_3.qsys
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_transceiver_reset_controller_3">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element transceiver_reset_controller_inst
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="clock"
+   internal="transceiver_reset_controller_inst.clock"
+   type="clock"
+   dir="end">
+  <port name="clock" internal="clock" />
+ </interface>
+ <interface
+   name="pll_locked"
+   internal="transceiver_reset_controller_inst.pll_locked"
+   type="conduit"
+   dir="end">
+  <port name="pll_locked" internal="pll_locked" />
+ </interface>
+ <interface
+   name="pll_powerdown"
+   internal="transceiver_reset_controller_inst.pll_powerdown"
+   type="conduit"
+   dir="end">
+  <port name="pll_powerdown" internal="pll_powerdown" />
+ </interface>
+ <interface
+   name="pll_select"
+   internal="transceiver_reset_controller_inst.pll_select"
+   type="conduit"
+   dir="end">
+  <port name="pll_select" internal="pll_select" />
+ </interface>
+ <interface
+   name="reset"
+   internal="transceiver_reset_controller_inst.reset"
+   type="reset"
+   dir="end">
+  <port name="reset" internal="reset" />
+ </interface>
+ <interface
+   name="rx_analogreset"
+   internal="transceiver_reset_controller_inst.rx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_analogreset" internal="rx_analogreset" />
+ </interface>
+ <interface
+   name="rx_cal_busy"
+   internal="transceiver_reset_controller_inst.rx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="rx_cal_busy" internal="rx_cal_busy" />
+ </interface>
+ <interface
+   name="rx_digitalreset"
+   internal="transceiver_reset_controller_inst.rx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_digitalreset" internal="rx_digitalreset" />
+ </interface>
+ <interface
+   name="rx_is_lockedtodata"
+   internal="transceiver_reset_controller_inst.rx_is_lockedtodata"
+   type="conduit"
+   dir="end">
+  <port name="rx_is_lockedtodata" internal="rx_is_lockedtodata" />
+ </interface>
+ <interface
+   name="rx_ready"
+   internal="transceiver_reset_controller_inst.rx_ready"
+   type="conduit"
+   dir="end">
+  <port name="rx_ready" internal="rx_ready" />
+ </interface>
+ <interface
+   name="tx_analogreset"
+   internal="transceiver_reset_controller_inst.tx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_analogreset" internal="tx_analogreset" />
+ </interface>
+ <interface
+   name="tx_cal_busy"
+   internal="transceiver_reset_controller_inst.tx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="tx_cal_busy" internal="tx_cal_busy" />
+ </interface>
+ <interface
+   name="tx_digitalreset"
+   internal="transceiver_reset_controller_inst.tx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_digitalreset" internal="tx_digitalreset" />
+ </interface>
+ <interface
+   name="tx_ready"
+   internal="transceiver_reset_controller_inst.tx_ready"
+   type="conduit"
+   dir="end">
+  <port name="tx_ready" internal="tx_ready" />
+ </interface>
+ <module
+   name="transceiver_reset_controller_inst"
+   kind="altera_xcvr_reset_control"
+   version="19.1"
+   enabled="1"
+   autoexport="1">
+  <parameter name="CHANNELS" value="3" />
+  <parameter name="PLLS" value="1" />
+  <parameter name="REDUCED_SIM_TIME" value="1" />
+  <parameter name="RX_ENABLE" value="1" />
+  <parameter name="RX_PER_CHANNEL" value="1" />
+  <parameter name="SYNCHRONIZE_PLL_RESET" value="0" />
+  <parameter name="SYNCHRONIZE_RESET" value="1" />
+  <parameter name="SYS_CLK_IN_MHZ" value="156" />
+  <parameter name="TX_ENABLE" value="1" />
+  <parameter name="TX_PER_CHANNEL" value="0" />
+  <parameter name="TX_PLL_ENABLE" value="1" />
+  <parameter name="T_PLL_LOCK_HYST" value="60" />
+  <parameter name="T_PLL_POWERDOWN" value="1000" />
+  <parameter name="T_RX_ANALOGRESET" value="70000" />
+  <parameter name="T_RX_DIGITALRESET" value="4000" />
+  <parameter name="T_TX_ANALOGRESET" value="70000" />
+  <parameter name="T_TX_DIGITALRESET" value="70000" />
+  <parameter name="device_family" value="Arria 10" />
+  <parameter name="gui_pll_cal_busy" value="0" />
+  <parameter name="gui_rx_auto_reset" value="0" />
+  <parameter name="gui_split_interfaces" value="0" />
+  <parameter name="gui_tx_auto_reset" value="0" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_4/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_4/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..a0dddbff50147a52eddeb782e4516af07abf9fce
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_4/compile_ip.tcl
@@ -0,0 +1,34 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_transceiver_reset_controller_4/sim"
+                
+  vcom         "$IP_DIR/ip_arria10_e2sg_transceiver_reset_controller_4.vhd"                     
diff --git a/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_4/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_4/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..0e479834ad37b2e11d3aeb8ba4ef1f32e61abc80
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_4/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_transceiver_reset_controller_4
+hdl_library_clause_name = ip_arria10_e2sg_transceiver_reset_controller_4_altera_xcvr_reset_control_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_reset_control_194
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_4/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_transceiver_reset_controller_4/ip_arria10_e2sg_transceiver_reset_controller_4.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_transceiver_reset_controller_4.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_4/ip_arria10_e2sg_transceiver_reset_controller_4.qsys b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_4/ip_arria10_e2sg_transceiver_reset_controller_4.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..94c08ca1ab375536d3322ee6bae0f24b5be6ee2a
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_4/ip_arria10_e2sg_transceiver_reset_controller_4.qsys
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_transceiver_reset_controller_4">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element transceiver_reset_controller_inst
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="clock"
+   internal="transceiver_reset_controller_inst.clock"
+   type="clock"
+   dir="end">
+  <port name="clock" internal="clock" />
+ </interface>
+ <interface
+   name="pll_locked"
+   internal="transceiver_reset_controller_inst.pll_locked"
+   type="conduit"
+   dir="end">
+  <port name="pll_locked" internal="pll_locked" />
+ </interface>
+ <interface
+   name="pll_powerdown"
+   internal="transceiver_reset_controller_inst.pll_powerdown"
+   type="conduit"
+   dir="end">
+  <port name="pll_powerdown" internal="pll_powerdown" />
+ </interface>
+ <interface
+   name="pll_select"
+   internal="transceiver_reset_controller_inst.pll_select"
+   type="conduit"
+   dir="end">
+  <port name="pll_select" internal="pll_select" />
+ </interface>
+ <interface
+   name="reset"
+   internal="transceiver_reset_controller_inst.reset"
+   type="reset"
+   dir="end">
+  <port name="reset" internal="reset" />
+ </interface>
+ <interface
+   name="rx_analogreset"
+   internal="transceiver_reset_controller_inst.rx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_analogreset" internal="rx_analogreset" />
+ </interface>
+ <interface
+   name="rx_cal_busy"
+   internal="transceiver_reset_controller_inst.rx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="rx_cal_busy" internal="rx_cal_busy" />
+ </interface>
+ <interface
+   name="rx_digitalreset"
+   internal="transceiver_reset_controller_inst.rx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_digitalreset" internal="rx_digitalreset" />
+ </interface>
+ <interface
+   name="rx_is_lockedtodata"
+   internal="transceiver_reset_controller_inst.rx_is_lockedtodata"
+   type="conduit"
+   dir="end">
+  <port name="rx_is_lockedtodata" internal="rx_is_lockedtodata" />
+ </interface>
+ <interface
+   name="rx_ready"
+   internal="transceiver_reset_controller_inst.rx_ready"
+   type="conduit"
+   dir="end">
+  <port name="rx_ready" internal="rx_ready" />
+ </interface>
+ <interface
+   name="tx_analogreset"
+   internal="transceiver_reset_controller_inst.tx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_analogreset" internal="tx_analogreset" />
+ </interface>
+ <interface
+   name="tx_cal_busy"
+   internal="transceiver_reset_controller_inst.tx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="tx_cal_busy" internal="tx_cal_busy" />
+ </interface>
+ <interface
+   name="tx_digitalreset"
+   internal="transceiver_reset_controller_inst.tx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_digitalreset" internal="tx_digitalreset" />
+ </interface>
+ <interface
+   name="tx_ready"
+   internal="transceiver_reset_controller_inst.tx_ready"
+   type="conduit"
+   dir="end">
+  <port name="tx_ready" internal="tx_ready" />
+ </interface>
+ <module
+   name="transceiver_reset_controller_inst"
+   kind="altera_xcvr_reset_control"
+   version="19.1"
+   enabled="1"
+   autoexport="1">
+  <parameter name="CHANNELS" value="4" />
+  <parameter name="PLLS" value="1" />
+  <parameter name="REDUCED_SIM_TIME" value="1" />
+  <parameter name="RX_ENABLE" value="1" />
+  <parameter name="RX_PER_CHANNEL" value="1" />
+  <parameter name="SYNCHRONIZE_PLL_RESET" value="0" />
+  <parameter name="SYNCHRONIZE_RESET" value="1" />
+  <parameter name="SYS_CLK_IN_MHZ" value="156" />
+  <parameter name="TX_ENABLE" value="1" />
+  <parameter name="TX_PER_CHANNEL" value="0" />
+  <parameter name="TX_PLL_ENABLE" value="1" />
+  <parameter name="T_PLL_LOCK_HYST" value="60" />
+  <parameter name="T_PLL_POWERDOWN" value="1000" />
+  <parameter name="T_RX_ANALOGRESET" value="70000" />
+  <parameter name="T_RX_DIGITALRESET" value="4000" />
+  <parameter name="T_TX_ANALOGRESET" value="70000" />
+  <parameter name="T_TX_DIGITALRESET" value="70000" />
+  <parameter name="device_family" value="Arria 10" />
+  <parameter name="gui_pll_cal_busy" value="0" />
+  <parameter name="gui_rx_auto_reset" value="0" />
+  <parameter name="gui_split_interfaces" value="0" />
+  <parameter name="gui_tx_auto_reset" value="0" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_48/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_48/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..bb2f21d04ed3c93a447951c8676a4ff3010b772e
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_48/compile_ip.tcl
@@ -0,0 +1,35 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_transceiver_reset_controller_48/sim"
+
+                 
+  vcom      "$IP_DIR/ip_arria10_e2sg_transceiver_reset_controller_48.vhd"                     
diff --git a/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_48/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_48/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..240d3c9f516b09f5a9886eaa8a73cf69fdc6669f
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_48/hdllib.cfg
@@ -0,0 +1,24 @@
+hdl_lib_name = ip_arria10_e2sg_transceiver_reset_controller_48
+hdl_library_clause_name = ip_arria10_e2sg_transceiver_reset_controller_48_altera_xcvr_reset_control_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_reset_control_194
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_48/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_transceiver_reset_controller_48/ip_arria10_e2sg_transceiver_reset_controller_48.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_transceiver_reset_controller_48.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_48/ip_arria10_e2sg_transceiver_reset_controller_48.qsys b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_48/ip_arria10_e2sg_transceiver_reset_controller_48.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..17bf32e9f11ac10395838a44d5817b86b2ac506f
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/transceiver_reset_controller_48/ip_arria10_e2sg_transceiver_reset_controller_48.qsys
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_transceiver_reset_controller_48">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element transceiver_reset_controller_inst
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos/>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="clock"
+   internal="transceiver_reset_controller_inst.clock"
+   type="clock"
+   dir="end">
+  <port name="clock" internal="clock" />
+ </interface>
+ <interface
+   name="pll_locked"
+   internal="transceiver_reset_controller_inst.pll_locked"
+   type="conduit"
+   dir="end">
+  <port name="pll_locked" internal="pll_locked" />
+ </interface>
+ <interface
+   name="pll_powerdown"
+   internal="transceiver_reset_controller_inst.pll_powerdown"
+   type="conduit"
+   dir="end">
+  <port name="pll_powerdown" internal="pll_powerdown" />
+ </interface>
+ <interface
+   name="pll_select"
+   internal="transceiver_reset_controller_inst.pll_select"
+   type="conduit"
+   dir="end">
+  <port name="pll_select" internal="pll_select" />
+ </interface>
+ <interface
+   name="reset"
+   internal="transceiver_reset_controller_inst.reset"
+   type="reset"
+   dir="end">
+  <port name="reset" internal="reset" />
+ </interface>
+ <interface
+   name="rx_analogreset"
+   internal="transceiver_reset_controller_inst.rx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_analogreset" internal="rx_analogreset" />
+ </interface>
+ <interface
+   name="rx_cal_busy"
+   internal="transceiver_reset_controller_inst.rx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="rx_cal_busy" internal="rx_cal_busy" />
+ </interface>
+ <interface
+   name="rx_digitalreset"
+   internal="transceiver_reset_controller_inst.rx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_digitalreset" internal="rx_digitalreset" />
+ </interface>
+ <interface
+   name="rx_is_lockedtodata"
+   internal="transceiver_reset_controller_inst.rx_is_lockedtodata"
+   type="conduit"
+   dir="end">
+  <port name="rx_is_lockedtodata" internal="rx_is_lockedtodata" />
+ </interface>
+ <interface
+   name="rx_ready"
+   internal="transceiver_reset_controller_inst.rx_ready"
+   type="conduit"
+   dir="end">
+  <port name="rx_ready" internal="rx_ready" />
+ </interface>
+ <interface
+   name="tx_analogreset"
+   internal="transceiver_reset_controller_inst.tx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_analogreset" internal="tx_analogreset" />
+ </interface>
+ <interface
+   name="tx_cal_busy"
+   internal="transceiver_reset_controller_inst.tx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="tx_cal_busy" internal="tx_cal_busy" />
+ </interface>
+ <interface
+   name="tx_digitalreset"
+   internal="transceiver_reset_controller_inst.tx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_digitalreset" internal="tx_digitalreset" />
+ </interface>
+ <interface
+   name="tx_ready"
+   internal="transceiver_reset_controller_inst.tx_ready"
+   type="conduit"
+   dir="end">
+  <port name="tx_ready" internal="tx_ready" />
+ </interface>
+ <module
+   name="transceiver_reset_controller_inst"
+   kind="altera_xcvr_reset_control"
+   version="19.1"
+   enabled="1"
+   autoexport="1">
+  <parameter name="CHANNELS" value="48" />
+  <parameter name="PLLS" value="1" />
+  <parameter name="REDUCED_SIM_TIME" value="1" />
+  <parameter name="RX_ENABLE" value="1" />
+  <parameter name="RX_PER_CHANNEL" value="1" />
+  <parameter name="SYNCHRONIZE_PLL_RESET" value="0" />
+  <parameter name="SYNCHRONIZE_RESET" value="1" />
+  <parameter name="SYS_CLK_IN_MHZ" value="156" />
+  <parameter name="TX_ENABLE" value="1" />
+  <parameter name="TX_PER_CHANNEL" value="0" />
+  <parameter name="TX_PLL_ENABLE" value="1" />
+  <parameter name="T_PLL_LOCK_HYST" value="60" />
+  <parameter name="T_PLL_POWERDOWN" value="1000" />
+  <parameter name="T_RX_ANALOGRESET" value="70000" />
+  <parameter name="T_RX_DIGITALRESET" value="4000" />
+  <parameter name="T_TX_ANALOGRESET" value="70000" />
+  <parameter name="T_TX_DIGITALRESET" value="70000" />
+  <parameter name="device_family" value="Arria 10" />
+  <parameter name="gui_pll_cal_busy" value="0" />
+  <parameter name="gui_rx_auto_reset" value="0" />
+  <parameter name="gui_split_interfaces" value="0" />
+  <parameter name="gui_tx_auto_reset" value="0" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/tse_sgmii_gx/README.txt b/libraries/technology/ip_arria10_e2sg/tse_sgmii_gx/README.txt
new file mode 100755
index 0000000000000000000000000000000000000000..fa105db173e0dc963f59b1e10b143cf5cc782167
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/tse_sgmii_gx/README.txt
@@ -0,0 +1,8 @@
+README.txt for $RADIOHDL_WORK/libraries/technology/ip_arria10/tse_sgmii_gx
+
+The ip_arria10_tse_sgmii_gx IP was ported to Quartus 14.0a10 for Arria10 by creating it in Qsys using the same parameter settings as the ip_arria10_tse_sgmii_lvds, but with GX IO.
+
+The tb_ip_arria10_tse_sgmii_gx.vhd verifies the DUT and simulates OK.
+
+For more information see: $RADIOHDL_WORK/libraries/technology/ip_arria10/tse_sgmii_lvds/README.txt
+
diff --git a/libraries/technology/ip_arria10_e2sg/tse_sgmii_gx/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/tse_sgmii_gx/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..72131625fde500fcb42c32616d5f52925542f538
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/tse_sgmii_gx/compile_ip.tcl
@@ -0,0 +1,34 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_tse_sgmii_gx/sim"
+
+  vcom         "$IP_DIR/ip_arria10_e2sg_tse_sgmii_gx.vhd"        
diff --git a/libraries/technology/ip_arria10_e2sg/tse_sgmii_gx/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/tse_sgmii_gx/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..3b6dbf3dc99e11ae99bbf5cfbc198eb7feaf28ae
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/tse_sgmii_gx/hdllib.cfg
@@ -0,0 +1,25 @@
+hdl_lib_name = ip_arria10_e2sg_tse_sgmii_gx
+hdl_library_clause_name = ip_arria10_e2sg_tse_sgmii_gx_altera_eth_tse_194
+hdl_lib_uses_synth = common
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_eth_tse_194 
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+    tb_ip_arria10_e2sg_tse_sgmii_gx.vhd
+
+    
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/tse_sgmii_gx/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_tse_sgmii_gx/ip_arria10_e2sg_tse_sgmii_gx.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_tse_sgmii_gx.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/tse_sgmii_gx/ip_arria10_e2sg_tse_sgmii_gx.qsys b/libraries/technology/ip_arria10_e2sg/tse_sgmii_gx/ip_arria10_e2sg_tse_sgmii_gx.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..0395404ec584536a7f736171f612f2f878140507
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/tse_sgmii_gx/ip_arria10_e2sg_tse_sgmii_gx.qsys
@@ -0,0 +1,409 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_tse_sgmii_gx">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element eth_tse_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos>
+        <entry>
+            <key>control_port</key>
+            <value>
+                <connectionPointName>control_port</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>ADDRESS_MAP</key>
+                        <value>&lt;address-map&gt;&lt;slave name='control_port' start='0x0' end='0x400' datawidth='32' /&gt;&lt;/address-map&gt;</value>
+                    </entry>
+                    <entry>
+                        <key>ADDRESS_WIDTH</key>
+                        <value>10</value>
+                    </entry>
+                    <entry>
+                        <key>MAX_SLAVE_DATA_WIDTH</key>
+                        <value>32</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+    </connPtSystemInfos>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="control_port"
+   internal="eth_tse_0.control_port"
+   type="avalon"
+   dir="end">
+  <port name="reg_addr" internal="reg_addr" />
+  <port name="reg_busy" internal="reg_busy" />
+  <port name="reg_data_in" internal="reg_data_in" />
+  <port name="reg_data_out" internal="reg_data_out" />
+  <port name="reg_rd" internal="reg_rd" />
+  <port name="reg_wr" internal="reg_wr" />
+ </interface>
+ <interface
+   name="control_port_clock_connection"
+   internal="eth_tse_0.control_port_clock_connection"
+   type="clock"
+   dir="end">
+  <port name="clk" internal="clk" />
+ </interface>
+ <interface name="mac_gmii_connection" internal="eth_tse_0.mac_gmii_connection" />
+ <interface name="mac_mii_connection" internal="eth_tse_0.mac_mii_connection" />
+ <interface
+   name="mac_misc_connection"
+   internal="eth_tse_0.mac_misc_connection"
+   type="conduit"
+   dir="end">
+  <port name="ff_rx_a_empty" internal="ff_rx_a_empty" />
+  <port name="ff_rx_a_full" internal="ff_rx_a_full" />
+  <port name="ff_rx_dsav" internal="ff_rx_dsav" />
+  <port name="ff_tx_a_empty" internal="ff_tx_a_empty" />
+  <port name="ff_tx_a_full" internal="ff_tx_a_full" />
+  <port name="ff_tx_crc_fwd" internal="ff_tx_crc_fwd" />
+  <port name="ff_tx_septy" internal="ff_tx_septy" />
+  <port name="rx_err_stat" internal="rx_err_stat" />
+  <port name="rx_frm_type" internal="rx_frm_type" />
+  <port name="tx_ff_uflow" internal="tx_ff_uflow" />
+ </interface>
+ <interface
+   name="mac_status_connection"
+   internal="eth_tse_0.mac_status_connection" />
+ <interface
+   name="pcs_mac_rx_clock_connection"
+   internal="eth_tse_0.pcs_mac_rx_clock_connection" />
+ <interface
+   name="pcs_mac_tx_clock_connection"
+   internal="eth_tse_0.pcs_mac_tx_clock_connection" />
+ <interface
+   name="pcs_ref_clk_clock_connection"
+   internal="eth_tse_0.pcs_ref_clk_clock_connection"
+   type="clock"
+   dir="end">
+  <port name="ref_clk" internal="ref_clk" />
+ </interface>
+ <interface
+   name="receive"
+   internal="eth_tse_0.receive"
+   type="avalon_streaming"
+   dir="start">
+  <port name="ff_rx_data" internal="ff_rx_data" />
+  <port name="ff_rx_dval" internal="ff_rx_dval" />
+  <port name="ff_rx_eop" internal="ff_rx_eop" />
+  <port name="ff_rx_mod" internal="ff_rx_mod" />
+  <port name="ff_rx_rdy" internal="ff_rx_rdy" />
+  <port name="ff_rx_sop" internal="ff_rx_sop" />
+  <port name="rx_err" internal="rx_err" />
+ </interface>
+ <interface
+   name="receive_clock_connection"
+   internal="eth_tse_0.receive_clock_connection"
+   type="clock"
+   dir="end">
+  <port name="ff_rx_clk" internal="ff_rx_clk" />
+ </interface>
+ <interface
+   name="reset_connection"
+   internal="eth_tse_0.reset_connection"
+   type="reset"
+   dir="end">
+  <port name="reset" internal="reset" />
+ </interface>
+ <interface
+   name="rx_analogreset"
+   internal="eth_tse_0.rx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_analogreset" internal="rx_analogreset" />
+ </interface>
+ <interface
+   name="rx_cal_busy"
+   internal="eth_tse_0.rx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="rx_cal_busy" internal="rx_cal_busy" />
+ </interface>
+ <interface
+   name="rx_cdr_refclk"
+   internal="eth_tse_0.rx_cdr_refclk"
+   type="clock"
+   dir="end">
+  <port name="rx_cdr_refclk" internal="rx_cdr_refclk" />
+ </interface>
+ <interface
+   name="rx_digitalreset"
+   internal="eth_tse_0.rx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="rx_digitalreset" internal="rx_digitalreset" />
+ </interface>
+ <interface
+   name="rx_is_lockedtodata"
+   internal="eth_tse_0.rx_is_lockedtodata"
+   type="conduit"
+   dir="end">
+  <port name="rx_is_lockedtodata" internal="rx_is_lockedtodata" />
+ </interface>
+ <interface
+   name="rx_is_lockedtoref"
+   internal="eth_tse_0.rx_is_lockedtoref"
+   type="conduit"
+   dir="end">
+  <port name="rx_is_lockedtoref" internal="rx_is_lockedtoref" />
+ </interface>
+ <interface
+   name="rx_set_locktodata"
+   internal="eth_tse_0.rx_set_locktodata"
+   type="conduit"
+   dir="end">
+  <port name="rx_set_locktodata" internal="rx_set_locktodata" />
+ </interface>
+ <interface
+   name="rx_set_locktoref"
+   internal="eth_tse_0.rx_set_locktoref"
+   type="conduit"
+   dir="end">
+  <port name="rx_set_locktoref" internal="rx_set_locktoref" />
+ </interface>
+ <interface
+   name="serdes_control_connection"
+   internal="eth_tse_0.serdes_control_connection"
+   type="conduit"
+   dir="end">
+  <port name="rx_recovclkout" internal="rx_recovclkout" />
+ </interface>
+ <interface
+   name="serial_connection"
+   internal="eth_tse_0.serial_connection"
+   type="conduit"
+   dir="end">
+  <port name="rxp" internal="rxp" />
+  <port name="txp" internal="txp" />
+ </interface>
+ <interface
+   name="status_led_connection"
+   internal="eth_tse_0.status_led_connection"
+   type="conduit"
+   dir="end">
+  <port name="led_an" internal="led_an" />
+  <port name="led_char_err" internal="led_char_err" />
+  <port name="led_col" internal="led_col" />
+  <port name="led_crs" internal="led_crs" />
+  <port name="led_disp_err" internal="led_disp_err" />
+  <port name="led_link" internal="led_link" />
+  <port name="led_panel_link" internal="led_panel_link" />
+ </interface>
+ <interface name="tbi_connection" internal="eth_tse_0.tbi_connection" />
+ <interface
+   name="transmit"
+   internal="eth_tse_0.transmit"
+   type="avalon_streaming"
+   dir="end">
+  <port name="ff_tx_data" internal="ff_tx_data" />
+  <port name="ff_tx_eop" internal="ff_tx_eop" />
+  <port name="ff_tx_err" internal="ff_tx_err" />
+  <port name="ff_tx_mod" internal="ff_tx_mod" />
+  <port name="ff_tx_rdy" internal="ff_tx_rdy" />
+  <port name="ff_tx_sop" internal="ff_tx_sop" />
+  <port name="ff_tx_wren" internal="ff_tx_wren" />
+ </interface>
+ <interface
+   name="transmit_clock_connection"
+   internal="eth_tse_0.transmit_clock_connection"
+   type="clock"
+   dir="end">
+  <port name="ff_tx_clk" internal="ff_tx_clk" />
+ </interface>
+ <interface
+   name="tx_analogreset"
+   internal="eth_tse_0.tx_analogreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_analogreset" internal="tx_analogreset" />
+ </interface>
+ <interface
+   name="tx_cal_busy"
+   internal="eth_tse_0.tx_cal_busy"
+   type="conduit"
+   dir="end">
+  <port name="tx_cal_busy" internal="tx_cal_busy" />
+ </interface>
+ <interface
+   name="tx_digitalreset"
+   internal="eth_tse_0.tx_digitalreset"
+   type="conduit"
+   dir="end">
+  <port name="tx_digitalreset" internal="tx_digitalreset" />
+ </interface>
+ <interface
+   name="tx_serial_clk"
+   internal="eth_tse_0.tx_serial_clk"
+   type="hssi_serial_clock"
+   dir="end">
+  <port name="tx_serial_clk" internal="tx_serial_clk" />
+ </interface>
+ <module
+   name="eth_tse_0"
+   kind="altera_eth_tse"
+   version="19.4.0"
+   enabled="1"
+   autoexport="1">
+  <parameter name="AUTO_DEVICE" value="10AX115U3F45E2SG" />
+  <parameter name="AUTO_DEVICE_SPEEDGRADE" value="2" />
+  <parameter name="ND_XCVR_RCFG_JTAG_ENABLE" value="0" />
+  <parameter name="ND_XCVR_SET_CAPABILITY_REG_ENABLE" value="0" />
+  <parameter name="ND_XCVR_SET_CSR_SOFT_LOGIC_ENABLE" value="0" />
+  <parameter name="ND_XCVR_SET_USER_IDENTIFIER" value="0" />
+  <parameter name="XCVR_RCFG_JTAG_ENABLE" value="0" />
+  <parameter name="XCVR_SET_CAPABILITY_REG_ENABLE" value="0" />
+  <parameter name="XCVR_SET_CSR_SOFT_LOGIC_ENABLE" value="0" />
+  <parameter name="XCVR_SET_PRBS_SOFT_LOGIC_ENABLE" value="0" />
+  <parameter name="XCVR_SET_USER_IDENTIFIER" value="0" />
+  <parameter name="adpt_multi_enable" value="1" />
+  <parameter name="adpt_recipe_cnt" value="1" />
+  <parameter name="adpt_recipe_data0" value="" />
+  <parameter name="adpt_recipe_data1" value="" />
+  <parameter name="adpt_recipe_data2" value="" />
+  <parameter name="adpt_recipe_data3" value="" />
+  <parameter name="adpt_recipe_data4" value="" />
+  <parameter name="adpt_recipe_data5" value="" />
+  <parameter name="adpt_recipe_data6" value="" />
+  <parameter name="adpt_recipe_data7" value="" />
+  <parameter name="adpt_recipe_select" value="0" />
+  <parameter name="cal_recipe_sel" value="NRZ_28Gbps_VSR" />
+  <parameter name="core_variation" value="MAC_PCS" />
+  <parameter name="ctle_gs1_val_a" value="999" />
+  <parameter name="ctle_gs1_val_b" value="999" />
+  <parameter name="ctle_gs2_val_a" value="999" />
+  <parameter name="ctle_gs2_val_b" value="999" />
+  <parameter name="ctle_hf_max_a" value="999" />
+  <parameter name="ctle_hf_max_b" value="999" />
+  <parameter name="ctle_hf_min_a" value="999" />
+  <parameter name="ctle_hf_min_b" value="999" />
+  <parameter name="ctle_hf_val_a" value="999" />
+  <parameter name="ctle_hf_val_ada_a" value="adaptable" />
+  <parameter name="ctle_hf_val_ada_b" value="adaptable" />
+  <parameter name="ctle_hf_val_b" value="999" />
+  <parameter name="ctle_lf_max_a" value="999" />
+  <parameter name="ctle_lf_max_b" value="999" />
+  <parameter name="ctle_lf_min_a" value="999" />
+  <parameter name="ctle_lf_min_b" value="999" />
+  <parameter name="ctle_lf_val_a" value="999" />
+  <parameter name="ctle_lf_val_ada_a" value="adaptable" />
+  <parameter name="ctle_lf_val_ada_b" value="adaptable" />
+  <parameter name="ctle_lf_val_b" value="999" />
+  <parameter name="deviceDieList" value="" />
+  <parameter name="deviceFamilyName" value="Arria 10" />
+  <parameter name="eg_addr" value="11" />
+  <parameter name="ena_hash" value="false" />
+  <parameter name="enable_alt_reconfig" value="false" />
+  <parameter name="enable_ecc" value="false" />
+  <parameter name="enable_ena" value="32" />
+  <parameter name="enable_gmii_loopback" value="false" />
+  <parameter name="enable_hd_logic" value="false" />
+  <parameter name="enable_hidden_features" value="false" />
+  <parameter name="enable_mac_flow_ctrl" value="false" />
+  <parameter name="enable_mac_vlan" value="false" />
+  <parameter name="enable_magic_detect" value="false" />
+  <parameter name="enable_ptp_1step" value="false" />
+  <parameter name="enable_sgmii" value="false" />
+  <parameter name="enable_shift16" value="true" />
+  <parameter name="enable_sup_addr" value="false" />
+  <parameter name="enable_timestamping" value="false" />
+  <parameter name="enable_use_internal_fifo" value="true" />
+  <parameter name="export_pwrdn" value="false" />
+  <parameter name="ext_stat_cnt_ena" value="false" />
+  <parameter name="ifGMII" value="MII_GMII" />
+  <parameter name="ing_addr" value="11" />
+  <parameter name="max_channels" value="1" />
+  <parameter name="mdio_clk_div" value="40" />
+  <parameter name="nd_phyip_rcfg_enable" value="false" />
+  <parameter name="nf_phyip_rcfg_enable" value="false" />
+  <parameter name="part_trait_bd" value="NIGHTFURY5" />
+  <parameter name="phy_identifier" value="0" />
+  <parameter name="phyip_en_synce_support" value="false" />
+  <parameter name="phyip_pll_base_data_rate" value="1250 Mbps" />
+  <parameter name="phyip_pll_type" value="CMU" />
+  <parameter name="phyip_pma_bonding_mode" value="x1" />
+  <parameter name="rcp_load_enable" value="0" />
+  <parameter name="rf_a_a" value="999" />
+  <parameter name="rf_a_b" value="999" />
+  <parameter name="rf_b0_a" value="999" />
+  <parameter name="rf_b0_ada_a" value="adaptable" />
+  <parameter name="rf_b0_ada_b" value="adaptable" />
+  <parameter name="rf_b0_b" value="999" />
+  <parameter name="rf_b0t_a" value="999" />
+  <parameter name="rf_b0t_b" value="999" />
+  <parameter name="rf_b1_a" value="999" />
+  <parameter name="rf_b1_ada_a" value="adaptable" />
+  <parameter name="rf_b1_ada_b" value="adaptable" />
+  <parameter name="rf_b1_b" value="999" />
+  <parameter name="rf_p0_val_a" value="999" />
+  <parameter name="rf_p0_val_ada_a" value="adaptable" />
+  <parameter name="rf_p0_val_ada_b" value="adaptable" />
+  <parameter name="rf_p0_val_b" value="999" />
+  <parameter name="rf_p1_max_a" value="999" />
+  <parameter name="rf_p1_max_b" value="999" />
+  <parameter name="rf_p1_min_a" value="999" />
+  <parameter name="rf_p1_min_b" value="999" />
+  <parameter name="rf_p1_val_a" value="999" />
+  <parameter name="rf_p1_val_ada_a" value="adaptable" />
+  <parameter name="rf_p1_val_ada_b" value="adaptable" />
+  <parameter name="rf_p1_val_b" value="999" />
+  <parameter name="rf_p2_max_a" value="999" />
+  <parameter name="rf_p2_max_b" value="999" />
+  <parameter name="rf_p2_min_a" value="999" />
+  <parameter name="rf_p2_min_b" value="999" />
+  <parameter name="rf_p2_val_a" value="999" />
+  <parameter name="rf_p2_val_ada_a" value="adaptable" />
+  <parameter name="rf_p2_val_ada_b" value="adaptable" />
+  <parameter name="rf_p2_val_b" value="999" />
+  <parameter name="rf_reserved0_a" value="999" />
+  <parameter name="rf_reserved0_b" value="999" />
+  <parameter name="rf_reserved1_a" value="999" />
+  <parameter name="rf_reserved1_b" value="999" />
+  <parameter name="starting_channel_number" value="0" />
+  <parameter name="stat_cnt_ena" value="false" />
+  <parameter name="transceiver_type" value="GXB" />
+  <parameter name="tstamp_fp_width" value="4" />
+  <parameter name="useMDIO" value="false" />
+  <parameter name="use_mac_clken" value="false" />
+  <parameter name="use_misc_ports" value="true" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/tse_sgmii_gx/tb_ip_arria10_e2sg_tse_sgmii_gx.vhd b/libraries/technology/ip_arria10_e2sg/tse_sgmii_gx/tb_ip_arria10_e2sg_tse_sgmii_gx.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..60e82809ae330f6301193473965f0cea27126a23
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/tse_sgmii_gx/tb_ip_arria10_e2sg_tse_sgmii_gx.vhd
@@ -0,0 +1,748 @@
+-------------------------------------------------------------------------------
+--
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+-- Purpose: Testbench for ip_arria10_e2sg_tse_sgmii_gx.
+-- Description:
+--   The tb is self checking based on that tx_pkt_cnt=rx_pkt_cnt must be true
+--   at the tb_end.
+-- Usage:
+--   > as 10
+--   > run -all
+
+LIBRARY IEEE, common_lib;
+USE IEEE.std_logic_1164.ALL;
+USE IEEE.numeric_std.ALL;
+USE common_lib.common_pkg.ALL;
+
+
+ENTITY tb_ip_arria10_e2sg_tse_sgmii_gx IS
+END tb_ip_arria10_e2sg_tse_sgmii_gx;
+
+
+ARCHITECTURE tb OF tb_ip_arria10_e2sg_tse_sgmii_gx IS
+
+  CONSTANT sys_clk_period             : TIME := 10 ns;  -- 100 MHz
+  CONSTANT eth_clk_period             : TIME :=  8 ns;  -- 125 MHz
+  CONSTANT serial_clk_period          : TIME :=  800 ps;  -- 1250 MHz   ????
+  CONSTANT cdr_clk_period             : TIME :=  8000 ps;  -- 125  MHz  ????
+  
+  CONSTANT c_tse_reg_addr_w           : NATURAL := 8;         -- = max 256 MAC registers
+  CONSTANT c_tse_byte_addr_w          : NATURAL := c_tse_reg_addr_w + 2;
+  CONSTANT c_tse_byte_addr_pcs_offset : NATURAL := 16#200#;   -- table 4.8, 4.9 in ug_ethernet.pdf
+  CONSTANT c_tse_data_w               : NATURAL := c_word_w;  -- = 32
+  
+  CONSTANT c_tse_symbol_w             : NATURAL := c_byte_w;                       -- = 8
+  CONSTANT c_tse_symbol_max           : NATURAL := 2**c_tse_symbol_w-1;            -- = 255
+  CONSTANT c_tse_symbols_per_beat     : NATURAL := c_tse_data_w / c_tse_symbol_w;  -- = 4
+  
+  CONSTANT c_tse_pcs_reg_addr_w       : NATURAL := 5;         -- = max 32 PCS registers
+  CONSTANT c_tse_pcs_halfword_addr_w  : NATURAL := c_tse_pcs_reg_addr_w + 1;  -- table 4.17 in ug_ethernet.pdf
+  CONSTANT c_tse_pcs_byte_addr_w      : NATURAL := c_tse_pcs_reg_addr_w + 2;
+  CONSTANT c_tse_pcs_data_w           : NATURAL := c_halfword_w;  -- = 16;
+  
+  CONSTANT c_tse_empty_w              : NATURAL := 2;
+  CONSTANT c_tse_tx_error_w           : NATURAL := 1;
+  CONSTANT c_tse_rx_error_w           : NATURAL := 6;
+  CONSTANT c_tse_error_w              : NATURAL := largest(c_tse_tx_error_w, c_tse_rx_error_w);
+  CONSTANT c_tse_err_stat_w           : NATURAL := 18;
+  CONSTANT c_tse_frm_type_w           : NATURAL := 4;
+  
+  CONSTANT c_tse_tx_fifo_depth        : NATURAL := 256;  -- nof words for Tx FIFO
+  CONSTANT c_tse_rx_fifo_depth        : NATURAL := 256;  -- nof words for Rx FIFO
+  
+  CONSTANT c_tse_promis_en            : BOOLEAN := FALSE;
+  --CONSTANT c_tse_promis_en            : BOOLEAN := TRUE;
+  
+  CONSTANT c_tx_data_type             : NATURAL := 1;  -- 0 = symbols, 1 = counter
+  CONSTANT c_tx_ready_latency         : NATURAL := 0;
+  CONSTANT c_nof_tx_not_valid         : NATURAL := 0;  -- when > 0 then pull tx valid low for c_nof_tx_not_valid beats during tx
+  
+  CONSTANT c_eth_dst_mac              : STD_LOGIC_VECTOR(47 DOWNTO 0) := X"10FA01020300";
+  CONSTANT c_eth_src_mac              : STD_LOGIC_VECTOR(47 DOWNTO 0) := X"123456789ABC";  -- = 12-34-56-78-9A-BC
+  CONSTANT c_eth_ethertype            : STD_LOGIC_VECTOR(15 DOWNTO 0) := X"10FA";
+
+  TYPE t_mm_bus IS RECORD
+    -- Master In Slave Out
+    waitreq   : STD_LOGIC;
+    rddata    : STD_LOGIC_VECTOR(c_tse_data_w-1 DOWNTO 0);
+    -- Master Out Slave In
+    address   : STD_LOGIC_VECTOR(c_tse_byte_addr_w-1 DOWNTO 0);
+    wrdata    : STD_LOGIC_VECTOR(c_tse_data_w-1 DOWNTO 0);
+    wr        : STD_LOGIC;
+    rd        : STD_LOGIC;
+  END RECORD;
+
+  PROCEDURE proc_dbg_mm_bus(SIGNAL mm_miso  : IN  t_mm_bus;
+                            SIGNAL mm_mosi  : IN  t_mm_bus;
+                            SIGNAL dbg_mm   : OUT t_mm_bus) IS
+  BEGIN
+    dbg_mm.waitreq <= mm_miso.waitreq;
+    dbg_mm.rddata  <= mm_miso.rddata;
+    dbg_mm.address <= mm_mosi.address;
+    dbg_mm.wrdata  <= mm_mosi.wrdata;
+    dbg_mm.wr      <= mm_mosi.wr;
+    dbg_mm.rd      <= mm_mosi.rd;
+  END proc_dbg_mm_bus;
+  
+  -- Wait for MM access (either read or write) finished
+  PROCEDURE proc_mm_access(SIGNAL mm_clk      : IN  STD_LOGIC;
+                           SIGNAL mm_waitreq  : IN  STD_LOGIC;
+                           SIGNAL mm_access   : OUT STD_LOGIC) IS
+  BEGIN
+    mm_access <= '1';
+    WAIT UNTIL rising_edge(mm_clk);
+    WHILE mm_waitreq='1' LOOP
+      WAIT UNTIL rising_edge(mm_clk);
+    END LOOP;
+    mm_access <= '0';
+  END proc_mm_access;
+  
+  -- Use word addressing for MAC registers according to table 4.8, 4.9
+  PROCEDURE proc_wr_mac(CONSTANT mac_addr : IN  NATURAL;
+                        CONSTANT mac_data : IN  NATURAL;
+                        SIGNAL   mm_clk   : IN  STD_LOGIC;
+                        SIGNAL   mm_miso  : IN  t_mm_bus;
+                        SIGNAL   mm_mosi  : OUT t_mm_bus) IS
+  BEGIN
+    mm_mosi.address <= STD_LOGIC_VECTOR(TO_UNSIGNED(mac_addr, c_tse_byte_addr_w));
+    mm_mosi.wrdata  <= STD_LOGIC_VECTOR(TO_UNSIGNED(mac_data, c_tse_data_w));
+    proc_mm_access(mm_clk, mm_miso.waitreq, mm_mosi.wr);
+  END proc_wr_mac;
+  
+  PROCEDURE proc_rd_mac(CONSTANT mac_addr : IN  NATURAL;
+                        SIGNAL   mac_data : OUT NATURAL;
+                        SIGNAL   mm_clk   : IN  STD_LOGIC;
+                        SIGNAL   mm_miso  : IN  t_mm_bus;
+                        SIGNAL   mm_mosi  : OUT t_mm_bus) IS
+  BEGIN
+    mm_mosi.address <= STD_LOGIC_VECTOR(TO_UNSIGNED(mac_addr, c_tse_byte_addr_w));
+    proc_mm_access(mm_clk, mm_miso.waitreq, mm_mosi.rd);
+    MAC_data <= TO_INTEGER(UNSIGNED(mm_miso.rddata));
+  END proc_rd_mac;
+  
+  -- Use halfword addressing for PCS register to match table 4.17
+  PROCEDURE proc_wr_pcs(CONSTANT pcs_addr : IN  NATURAL;
+                        CONSTANT pcs_data : IN  NATURAL;
+                        SIGNAL   mm_clk   : IN  STD_LOGIC;
+                        SIGNAL   mm_miso  : IN  t_mm_bus;
+                        SIGNAL   mm_mosi  : OUT t_mm_bus) IS
+  BEGIN
+    mm_mosi.address                             <= STD_LOGIC_VECTOR(TO_UNSIGNED(pcs_addr*2 + c_tse_byte_addr_pcs_offset, c_tse_byte_addr_w));
+    mm_mosi.wrdata                              <= (OTHERS=>'0');
+    mm_mosi.wrdata(c_tse_pcs_data_w-1 DOWNTO 0) <= STD_LOGIC_VECTOR(TO_UNSIGNED(pcs_data, c_tse_pcs_data_w));
+    proc_mm_access(mm_clk, mm_miso.waitreq, mm_mosi.wr);
+  END proc_wr_pcs;
+
+  PROCEDURE proc_rd_pcs(CONSTANT pcs_addr : IN  NATURAL;
+                        SIGNAL   pcs_data : OUT NATURAL;
+                        SIGNAL   mm_clk   : IN  STD_LOGIC;
+                        SIGNAL   mm_miso  : IN  t_mm_bus;
+                        SIGNAL   mm_mosi  : OUT t_mm_bus) IS
+  BEGIN
+    mm_mosi.address <= STD_LOGIC_VECTOR(TO_UNSIGNED(pcs_addr*2 + c_tse_byte_addr_pcs_offset, c_tse_byte_addr_w));
+    proc_mm_access(mm_clk, mm_miso.waitreq, mm_mosi.rd);
+    pcs_data <= TO_INTEGER(UNSIGNED(mm_miso.rddata(c_tse_pcs_data_w-1 DOWNTO 0)));
+  END proc_rd_pcs;
+  
+  TYPE t_tse_stream IS RECORD
+    -- Source In or Sink Out
+    ready    : STD_LOGIC;
+    -- Source Out or Sink In
+    data     : STD_LOGIC_VECTOR(c_tse_data_w-1 DOWNTO 0);
+    valid    : STD_LOGIC;
+    sop      : STD_LOGIC;
+    eop      : STD_LOGIC;
+    empty    : STD_LOGIC_VECTOR(c_tse_empty_w-1 DOWNTO 0);
+    err      : STD_LOGIC_VECTOR(c_tse_error_w-1 DOWNTO 0);
+  END RECORD;
+    
+  PROCEDURE proc_dbg_tse_stream_src(SIGNAL src_in  : IN  t_tse_stream;
+                                    SIGNAL src_out : IN  t_tse_stream;
+                                    SIGNAL dbg_src : OUT t_tse_stream) IS
+  BEGIN
+    dbg_src.ready <= src_in.ready;
+    dbg_src.data  <= src_out.data;
+    dbg_src.valid <= src_out.valid;
+    dbg_src.sop   <= src_out.sop;
+    dbg_src.eop   <= src_out.eop;
+    dbg_src.empty <= src_out.empty;
+    dbg_src.err   <= src_out.err;
+  END proc_dbg_tse_stream_src;
+  
+  PROCEDURE proc_dbg_tse_stream_snk(SIGNAL snk_in  : IN  t_tse_stream;
+                                    SIGNAL snk_out : IN  t_tse_stream;
+                                    SIGNAL dbg_snk : OUT t_tse_stream) IS
+  BEGIN
+    dbg_snk.ready <= snk_out.ready;
+    dbg_snk.data  <= snk_in.data;
+    dbg_snk.valid <= snk_in.valid;
+    dbg_snk.sop   <= snk_in.sop;
+    dbg_snk.eop   <= snk_in.eop;
+    dbg_snk.empty <= snk_in.empty;
+    dbg_snk.err   <= snk_in.err;
+  END proc_dbg_tse_stream_snk;
+  
+  -- Handle TX ready
+  -- Only support tx_ready_latency=0 or 1, corresponding to TX_ALMOST_FULL=3 or 4
+  -- Support for tx_ready_latency>1 requires keeping previous ready information
+  -- in a STD_LOGIC_VECTOR(tx_ready_latency-1 DOWNTO 0).
+  PROCEDURE proc_ready_latency(CONSTANT c_latency : IN  NATURAL;
+                               SIGNAL   clk       : IN  STD_LOGIC;
+                               SIGNAL   ready     : IN  STD_LOGIC;
+                               CONSTANT c_valid   : IN  STD_LOGIC;
+                               CONSTANT c_sop     : IN  STD_LOGIC;
+                               CONSTANT c_eop     : IN  STD_LOGIC;
+                               SIGNAL   out_valid : OUT STD_LOGIC;
+                               SIGNAL   out_sop   : OUT STD_LOGIC;
+                               SIGNAL   out_eop   : OUT STD_LOGIC) IS
+  BEGIN
+    IF c_latency=0 THEN
+      out_valid <= c_valid;
+      out_sop   <= c_sop;
+      out_eop   <= c_eop;
+      WAIT UNTIL rising_edge(clk);
+      WHILE ready /= '1' LOOP
+        WAIT UNTIL rising_edge(clk);
+      END LOOP;
+    END IF;
+    IF c_latency=1 THEN
+      WHILE ready /= '1' LOOP
+        out_valid <= '0';
+        out_sop   <= '0';
+        out_eop   <= '0';
+        WAIT UNTIL rising_edge(clk);
+      END LOOP;
+      out_valid <= c_valid;
+      out_sop   <= c_sop;
+      out_eop   <= c_eop;
+      WAIT UNTIL rising_edge(clk);
+    END IF;
+  END proc_ready_latency;
+  
+  -- Transmit user packet
+  -- . Use word aligned payload data, so with half word inserted before the 14 byte header
+  -- . Packets can be send immediately after eachother so new sop directly after last eop
+  -- . The word rate is controlled by respecting ready from the MAC
+  PROCEDURE proc_tx_packet(CONSTANT dst_mac_addr : IN  STD_LOGIC_VECTOR(c_eth_dst_mac'RANGE);
+                           CONSTANT src_mac_addr : IN  STD_LOGIC_VECTOR(c_eth_src_mac'RANGE);
+                           CONSTANT ethertype    : IN  STD_LOGIC_VECTOR(c_eth_ethertype'RANGE);
+                           CONSTANT data_len     : IN  NATURAL;  -- in symbols = octets = bytes
+                           SIGNAL   dp_clk       : IN  STD_LOGIC;
+                           SIGNAL   dp_src_in    : IN  t_tse_stream;
+                           SIGNAL   dp_src_out   : OUT t_tse_stream) IS
+    CONSTANT c_mod            : NATURAL := data_len MOD c_tse_symbols_per_beat;
+    CONSTANT c_nof_data_beats : NATURAL := data_len   / c_tse_symbols_per_beat + sel_a_b(c_mod, 1, 0);
+    CONSTANT c_empty          : NATURAL := sel_a_b(c_mod, c_tse_symbols_per_beat - c_mod, 0);
+    VARIABLE v_sym            : UNSIGNED(c_tse_symbol_w-1 DOWNTO 0) := (OTHERS=>'0');
+    VARIABLE v_num            : UNSIGNED(c_tse_data_w-1 DOWNTO 0) := (OTHERS=>'0');
+  BEGIN
+    -- DST MAC
+    dp_src_out.empty <= STD_LOGIC_VECTOR(TO_UNSIGNED(0, c_tse_empty_w));
+    dp_src_out.data              <= (OTHERS=>'0');
+    dp_src_out.data(15 DOWNTO 0) <= hton(dst_mac_addr(15 DOWNTO 0));  -- send to itself
+    proc_ready_latency(c_tx_ready_latency, dp_clk, dp_src_in.ready, '1', '1', '0', dp_src_out.valid, dp_src_out.sop, dp_src_out.eop);
+    dp_src_out.data  <= hton(dst_mac_addr(47 DOWNTO 16));
+    proc_ready_latency(c_tx_ready_latency, dp_clk, dp_src_in.ready, '1', '0', '0', dp_src_out.valid, dp_src_out.sop, dp_src_out.eop);
+    -- SRC MAC
+    dp_src_out.data  <= hton(src_mac_addr(31 DOWNTO 0));
+    proc_ready_latency(c_tx_ready_latency, dp_clk, dp_src_in.ready, '1', '0', '0', dp_src_out.valid, dp_src_out.sop, dp_src_out.eop);
+    -- SRC MAC & ETHERTYPE
+    dp_src_out.data  <= hton(src_mac_addr(47 DOWNTO 32)) & hton(c_eth_ethertype);
+    -- DATA
+    FOR I IN 0 TO c_nof_data_beats-1 LOOP
+      proc_ready_latency(c_tx_ready_latency, dp_clk, dp_src_in.ready, '1', '0', '0', dp_src_out.valid, dp_src_out.sop, dp_src_out.eop);
+      IF c_tx_data_type=0 THEN
+        -- data : X"01020304", X"05060708", X"090A0B0C", etc
+        FOR J IN c_tse_symbols_per_beat-1 DOWNTO 0 LOOP
+          v_sym := v_sym + 1;
+          dp_src_out.data((J+1)*c_tse_symbol_w-1 DOWNTO J*c_tse_symbol_w) <= STD_LOGIC_VECTOR(v_sym);
+        END LOOP;
+      ELSE
+        -- data : X"00000001", X"00000002", X"00000003", etc
+        v_num := v_num + 1;
+        dp_src_out.data <= STD_LOGIC_VECTOR(v_num);
+      END IF;
+      -- tb : pull valid low for some time during the middle of the payload
+      IF c_nof_tx_not_valid > 0 AND I=c_nof_data_beats/2 THEN
+        dp_src_out.valid <= '0';
+        FOR I IN 0 TO c_nof_tx_not_valid LOOP WAIT UNTIL rising_edge(dp_clk); END LOOP;
+        dp_src_out.valid <= '1';
+      END IF;
+    END LOOP;
+    IF c_empty > 0 THEN
+      dp_src_out.empty <= STD_LOGIC_VECTOR(TO_UNSIGNED(c_empty, c_tse_empty_w));
+      FOR J IN c_empty-1 DOWNTO 0 LOOP
+        dp_src_out.data((J+1)*c_tse_symbol_w-1 DOWNTO J*c_tse_symbol_w) <= (OTHERS=>'0');
+      END LOOP;
+    END IF;
+    proc_ready_latency(c_tx_ready_latency, dp_clk, dp_src_in.ready, '1', '0', '1', dp_src_out.valid, dp_src_out.sop, dp_src_out.eop);
+    dp_src_out.data  <= (OTHERS=>'0');
+    dp_src_out.valid <= '0';
+    dp_src_out.eop   <= '0';
+    dp_src_out.empty <= STD_LOGIC_VECTOR(TO_UNSIGNED(0, c_tse_empty_w));
+  END proc_tx_packet;
+
+  PROCEDURE proc_valid_sop(SIGNAL   clk       : IN  STD_LOGIC;
+                           SIGNAL   in_valid  : IN  STD_LOGIC;
+                           SIGNAL   in_sop    : IN  STD_LOGIC) IS
+  BEGIN
+    WAIT UNTIL rising_edge(clk);
+    WHILE in_valid /= '1' AND in_sop /= '1' LOOP
+      WAIT UNTIL rising_edge(clk);
+    END LOOP;
+  END proc_valid_sop;
+  
+  PROCEDURE proc_valid(SIGNAL   clk       : IN  STD_LOGIC;
+                       SIGNAL   in_valid  : IN  STD_LOGIC) IS
+  BEGIN
+    WAIT UNTIL rising_edge(clk);
+    WHILE in_valid /= '1' LOOP
+      WAIT UNTIL rising_edge(clk);
+    END LOOP;
+  END proc_valid;
+  
+  -- Receive packet
+  -- . Use word aligned payload data, so with half word inserted before the 14 byte header
+  -- . Packets can be always be received, assume the user application is always ready
+  -- . The CRC32 is also passed on to the user at eop.
+  -- . Note that when empty/=0 then the CRC32 is not word aligned, so therefore use prev_data to be able
+  --   to handle part of last data word in case empty/=0 at eop
+  PROCEDURE proc_rx_packet(CONSTANT dst_mac_addr : IN  STD_LOGIC_VECTOR(c_eth_dst_mac'RANGE);
+                           CONSTANT src_mac_addr : IN  STD_LOGIC_VECTOR(c_eth_src_mac'RANGE);
+                           CONSTANT ethertype    : IN  STD_LOGIC_VECTOR(c_eth_ethertype'RANGE);
+                           SIGNAL   dp_clk       : IN  STD_LOGIC;
+                           SIGNAL   dp_snk_in    : IN  t_tse_stream;
+                           SIGNAL   dp_snk_out   : OUT t_tse_stream) IS
+    VARIABLE v_sym            : UNSIGNED(c_tse_symbol_w-1 DOWNTO 0) := (OTHERS=>'0');
+    VARIABLE v_num            : UNSIGNED(c_tse_data_w-1 DOWNTO 0) := (OTHERS=>'0');
+    VARIABLE v_empty          : NATURAL;
+    VARIABLE v_first          : BOOLEAN := TRUE;
+    VARIABLE v_data           : STD_LOGIC_VECTOR(c_tse_data_w-1 DOWNTO 0);
+    VARIABLE v_prev_data      : STD_LOGIC_VECTOR(c_tse_data_w-1 DOWNTO 0);
+  BEGIN
+    -- Keep ff_rx_snk_out.ready='1' all the time
+    dp_snk_out.ready <= '1';
+    -- Verify DST MAC
+    proc_valid_sop(dp_clk, dp_snk_in.valid, dp_snk_in.sop);
+    ASSERT dp_snk_in.data(31 DOWNTO 16) = X"0000"                           REPORT "RX: Alignment half word not zero" SEVERITY ERROR;
+    ASSERT dp_snk_in.data(15 DOWNTO  0) = hton(dst_mac_addr(15 DOWNTO 0))   REPORT "RX: Wrong dst_mac_addr(15 DOWNTO 0)" SEVERITY ERROR;
+    proc_valid(dp_clk, dp_snk_in.valid);
+    ASSERT dp_snk_in.data(31 DOWNTO  0) = hton(dst_mac_addr(47 DOWNTO 16))  REPORT "RX: Wrong dst_mac_addr(47 DOWNTO 16)" SEVERITY ERROR;
+    -- Verify SRC MAC
+    proc_valid(dp_clk, dp_snk_in.valid);
+    ASSERT dp_snk_in.data(31 DOWNTO  0) = hton(src_mac_addr(31 DOWNTO 0))   REPORT "RX: Wrong src_mac_addr(31 DOWNTO 0)" SEVERITY ERROR;
+    -- Verify SRC MAC & ETHERTYPE
+    proc_valid(dp_clk, dp_snk_in.valid);
+    ASSERT dp_snk_in.data(31 DOWNTO 16) = hton(src_mac_addr(47 DOWNTO 32))  REPORT "RX: Wrong src_mac_addr(47 DOWNTO 32)" SEVERITY ERROR;
+    ASSERT dp_snk_in.data(15 DOWNTO  0) = hton(c_eth_ethertype)             REPORT "RX: Wrong ethertype" SEVERITY ERROR;
+    -- Verify DATA
+    v_first := TRUE;
+    proc_valid(dp_clk, dp_snk_in.valid);
+    WHILE dp_snk_in.eop /= '1' LOOP
+      v_prev_data := v_data;
+      v_data      := dp_snk_in.data;
+      IF v_first = FALSE THEN
+        IF c_tx_data_type=0 THEN
+          -- data : X"01020304", X"05060708", X"090A0B0C", etc
+          FOR J IN c_tse_symbols_per_beat-1 DOWNTO 0 LOOP
+            v_sym := v_sym + 1;
+            ASSERT UNSIGNED(v_prev_data((J+1)*c_tse_symbol_w-1 DOWNTO J*c_tse_symbol_w)) = v_sym REPORT "RX: Wrong data symbol" SEVERITY ERROR;
+          END LOOP;
+        ELSE
+          -- data : X"00000001", X"00000002", X"00000003", etc
+          v_num := v_num + 1;
+          ASSERT UNSIGNED(v_prev_data) = v_num REPORT "RX: Wrong data word" SEVERITY ERROR;
+        END IF;
+      END IF;
+      v_first := FALSE;
+      proc_valid(dp_clk, dp_snk_in.valid);
+    END LOOP;
+    -- Verify last DATA and CRC32 if empty /=0 else the last word is only the CRC32
+    v_prev_data := v_data;
+    v_data      := dp_snk_in.data;
+    v_empty     := TO_INTEGER(UNSIGNED(dp_snk_in.empty));
+    IF v_empty > 0 THEN
+      FOR J IN v_empty-1 DOWNTO 0 LOOP
+        v_prev_data((J+1)*c_tse_symbol_w-1 DOWNTO J*c_tse_symbol_w) := (OTHERS=>'0');
+      END LOOP;
+      IF c_tx_data_type=0 THEN
+        -- data : X"01020304", X"05060708", X"090A0B0C", etc
+        FOR J IN c_tse_symbols_per_beat-1 DOWNTO v_empty LOOP  -- ignore CRC32 symbols in last data word
+          v_sym := v_sym + 1;
+          ASSERT UNSIGNED(v_prev_data((J+1)*c_tse_symbol_w-1 DOWNTO J*c_tse_symbol_w)) = v_sym REPORT "RX: Wrong empty data symbol" SEVERITY ERROR;
+        END LOOP;
+      ELSE
+        -- data : X"00000001", X"00000002", X"00000003", etc
+        v_num := v_num + 1;
+        FOR J IN v_empty-1 DOWNTO 0 LOOP
+          v_num((J+1)*c_tse_symbol_w-1 DOWNTO J*c_tse_symbol_w) := (OTHERS=>'0');  -- force CRC32 symbols in last data word to 0
+        END LOOP;
+        ASSERT UNSIGNED(v_prev_data) = v_num REPORT "RX: Wrong empty data word" SEVERITY ERROR;
+      END IF;
+    ELSE
+      -- No verify on CRC32 word
+    END IF;
+  END proc_rx_packet;
+
+  
+  -- Clocks and reset
+  SIGNAL tb_end         : STD_LOGIC := '0';
+  SIGNAL eth_clk        : STD_LOGIC := '0';
+  SIGNAL sys_clk        : STD_LOGIC := '0';
+  SIGNAL dp_clk         : STD_LOGIC;
+  SIGNAL mm_clk         : STD_LOGIC;
+  SIGNAL mm_rst         : STD_LOGIC;
+  
+  -- TSE MAC control interface
+  SIGNAL mm_init        : STD_LOGIC := '1';                 
+  SIGNAL mm_miso        : t_mm_bus;  -- master in  slave out
+  SIGNAL mm_mosi        : t_mm_bus;  -- master out slave in
+  
+  SIGNAL pcs_rddata     : NATURAL;  -- [c_tse_pcs_data_w-1:0]
+             
+  SIGNAL tse_led_an     : STD_LOGIC;
+  SIGNAL tse_led_link   : STD_LOGIC;
+    
+  -- TSE MAC transmit interface
+  -- . Avalon ST source
+  SIGNAL ff_tx_src_in   : t_tse_stream;
+  SIGNAL ff_tx_src_out  : t_tse_stream;
+  -- . MAC specific
+  SIGNAL ff_tx_crc_fwd  : STD_LOGIC;
+  SIGNAL ff_tx_septy    : STD_LOGIC;
+  SIGNAL ff_tx_a_full   : STD_LOGIC;
+  SIGNAL ff_tx_a_empty  : STD_LOGIC;
+  SIGNAL ff_tx_uflow    : STD_LOGIC;
+  
+  -- TSE MAC receive interface
+  -- . Avalon ST sink
+  SIGNAL ff_rx_snk_in   : t_tse_stream;
+  SIGNAL ff_rx_snk_out  : t_tse_stream;
+  -- . MAC specific
+  SIGNAL ff_rx_ethertype: STD_LOGIC_VECTOR(c_tse_err_stat_w-1 DOWNTO 0);
+  SIGNAL ff_rx_frm_type : STD_LOGIC_VECTOR(c_tse_frm_type_w-1 DOWNTO 0);
+  SIGNAL ff_rx_dsav     : STD_LOGIC;
+  SIGNAL ff_rx_a_full   : STD_LOGIC;
+  SIGNAL ff_rx_a_empty  : STD_LOGIC;
+  
+  -- TSE PHY interface
+  SIGNAL eth_txp        : STD_LOGIC;
+  SIGNAL eth_rxp        : STD_LOGIC;
+  
+  -- TSE PHY GX
+  SIGNAL tx_serial_clk  : STD_LOGIC_VECTOR(0 DOWNTO 0) := (OTHERS=>'0');
+  SIGNAL rx_cdr_refclk  : STD_LOGIC := '0';
+  
+  -- Verification
+  SIGNAL tx_pkt_cnt     : NATURAL := 0;
+  SIGNAL rx_pkt_cnt     : NATURAL := 0;
+  
+  -- Debug signals to combine valid in and out of records
+  SIGNAL dbg_mm         : t_mm_bus;
+  SIGNAL dbg_ff_tx      : t_tse_stream;
+  SIGNAL dbg_ff_rx      : t_tse_stream;
+  
+BEGIN
+
+  eth_clk <= NOT eth_clk AFTER eth_clk_period/2;  -- TSE reference clock
+  sys_clk <= NOT sys_clk AFTER sys_clk_period/2;  -- System clock
+
+  mm_clk  <= sys_clk;
+  dp_clk  <= sys_clk;
+  
+  -- Debug signals to combine valid in and out of records
+  proc_dbg_mm_bus(        mm_miso,      mm_mosi,       dbg_mm);
+  proc_dbg_tse_stream_src(ff_tx_src_in, ff_tx_src_out, dbg_ff_tx);
+  proc_dbg_tse_stream_snk(ff_rx_snk_in, ff_rx_snk_out, dbg_ff_rx);
+  
+  -- run 1 us
+  p_mm_stimuli : PROCESS
+  BEGIN
+    mm_init  <= '1';
+    mm_mosi.wr <= '0';
+    mm_mosi.rd <= '0';
+    
+    -- reset release
+    mm_rst <= '1';
+    FOR I IN 0 TO 9 LOOP WAIT UNTIL rising_edge(mm_clk); END LOOP;
+    mm_rst <= '0';
+    FOR I IN 0 TO 9 LOOP WAIT UNTIL rising_edge(mm_clk); END LOOP;
+    
+    -- PSC control
+    proc_rd_pcs(16#22#, pcs_rddata, mm_clk, mm_miso, mm_mosi);  -- REV --> 0x0901
+    proc_wr_pcs(16#28#,   16#0008#, mm_clk, mm_miso, mm_mosi);  -- IF_MODE <-- Force 1GbE, no autonegatiation
+    proc_rd_pcs(16#00#, pcs_rddata, mm_clk, mm_miso, mm_mosi);  -- CONTROL --> 0x1140
+    proc_rd_pcs(16#02#, pcs_rddata, mm_clk, mm_miso, mm_mosi);  -- STATUS --> 0x000D
+    proc_wr_pcs(16#00#,   16#0140#, mm_clk, mm_miso, mm_mosi);  -- CONTROL <-- Auto negotiate disable
+    
+    -- MAC control
+    proc_rd_mac(16#000#, pcs_rddata, mm_clk, mm_miso, mm_mosi);  -- REV --> CUST_VERSION & 0x0901
+    IF c_tse_promis_en=FALSE THEN
+      proc_wr_mac(16#008#, 16#0100004B#, mm_clk, mm_miso, mm_mosi);
+    ELSE
+      proc_wr_mac(16#008#, 16#0100005B#, mm_clk, mm_miso, mm_mosi);
+    END IF;
+      -- COMMAND_CONFIG <--
+      -- Only the bits relevant to UniBoard are explained here, others are 0
+      -- [    0] = TX_ENA             = 1, enable tx datapath
+      -- [    1] = RX_ENA             = 1, enable rx datapath
+      -- [    2] = XON_GEN            = 0
+      -- [    3] = ETH_SPEED          = 1, enable 1GbE operation
+      -- [    4] = PROMIS_EN          = 0, when 1 then receive all frames
+      -- [    5] = PAD_EN             = 0, when 1 enable receive padding removal (requires ethertype=payload length)
+      -- [    6] = CRC_FWD            = 1, enable receive CRC forward
+      -- [    7] = PAUSE_FWD          = 0
+      -- [    8] = PAUSE_IGNORE       = 0
+      -- [    9] = TX_ADDR_INS        = 0, when 1 then MAX overwrites tx SRC MAC with mac_0,1 or one of the supplemental mac
+      -- [   10] = HD_ENA             = 0
+      -- [   11] = EXCESS_COL         = 0
+      -- [   12] = LATE_COL           = 0
+      -- [   13] = SW_RESET           = 0, when 1 MAC disables tx and rx, clear statistics and flushes receive FIFO
+      -- [   14] = MHAS_SEL           = 0, select multicast address resolutions hash-code mode
+      -- [   15] = LOOP_ENA           = 0
+      -- [18-16] = TX_ADDR_SEL[2:0]   = 000, TX_ADDR_INS insert mac_0,1 or one of the supplemental mac
+      -- [   19] = MAGIC_EN           = 0
+      -- [   20] = SLEEP              = 0
+      -- [   21] = WAKEUP             = 0
+      -- [   22] = XOFF_GEN           = 0
+      -- [   23] = CNT_FRM_ENA        = 0
+      -- [   24] = NO_LGTH_CHECK      = 1, when 0 then check payload length of received frames (requires ethertype=payload length)
+      -- [   25] = ENA_10             = 0
+      -- [   26] = RX_ERR_DISC        = 0, when 1 then discard erroneous frames (requires store and forward mode, so rx_section_full=0)
+      --                                   when 0 then pass on with rx_err[0]=1
+      -- [   27] = DISABLE_RD_TIMEOUT = 0
+      -- [30-28] = RSVD               = 000
+      -- [   31] = CNT_RESET          = 0, when 1 clear statistics
+    proc_wr_mac(16#00C#, 16#56789ABC#, mm_clk, mm_miso, mm_mosi);  -- MAC_0
+    proc_wr_mac(16#010#, 16#00001234#, mm_clk, mm_miso, mm_mosi);  -- MAC_1 <-- SRC_MAC = 12-34-56-78-9A-BC
+    proc_wr_mac(16#05C#, 16#0000000C#, mm_clk, mm_miso, mm_mosi);  -- TX_IPG_LENGTH <-- interpacket gap = 12
+    proc_wr_mac(16#014#, 16#000005EE#, mm_clk, mm_miso, mm_mosi);  -- FRM_LENGTH <-- receive max frame length = 1518
+    
+    -- FIFO legenda:
+    -- . Tx section full  = There is enough data in the FIFO to start reading it, when 0 then store and forward.
+    -- . Rx section full  = There is enough data in the FIFO to start reading it, when 0 then store and forward.
+    -- . Tx section empty = There is not much empty space anymore in the FIFO, warn user via ff_tx_septy
+    -- . Rx section empty = There is not much empty space anymore in the FIFO, inform remote device via XOFF flow control
+    -- . Tx almost full   = Assert ff_tx_a_full and deassert ff_tx_rdy. Furthermore TX_ALMOST_FULL = c_tx_ready_latency+3,
+    --                      so choose 3 for zero tx ready latency
+    -- . Rx almost full   = Assert ff_rx_a_full and if the user is not ready ff_rx_rdy then:
+    --                      --> break off the reception with an error to avoid FIFO overflow
+    -- . Tx almost empty  = Assert ff_tx_a_empty and if the FIFO does not contain a eop yet then:
+    --                      --> break off the transmission with an error to avoid FIFO underflow
+    -- . Rx almost empty  = Assert ff_rx_a_empty
+    -- Typical FIFO values:
+    -- . TX_SECTION_FULL  = 16   > 8   = TX_ALMOST_EMPTY
+    -- . RX_SECTION_FULL  = 16   > 8   = RX_ALMOST_EMPTY
+    -- . TX_SECTION_EMPTY = D-16 < D-3 = Tx FIFO depth - TX_ALMOST_FULL
+    -- . RX_SECTION_EMPTY = D-16 < D-8 = Rx FIFO depth - RX_ALMOST_FULL
+    -- . c_tse_tx_fifo_depth = 1 M9K = 256*32b = 1k * 8b is sufficient when the Tx user respects ff_tx_rdy, to store a complete
+    --                         ETH packet would require 1518 byte, so 2 M9K = 2k * 8b
+    -- . c_tse_rx_fifo_depth = 1 M9K = 256*32b = 1k * 8b is sufficient when the Rx user ff_rx_rdy is sufficiently active
+    proc_wr_mac(16#01C#, c_tse_rx_fifo_depth-16, mm_clk, mm_miso, mm_mosi);  -- RX_SECTION_EMPTY <-- default FIFO depth - 16, >3
+    proc_wr_mac(16#020#,                     16, mm_clk, mm_miso, mm_mosi);  -- RX_SECTION_FULL  <-- default 16
+    proc_wr_mac(16#024#, c_tse_tx_fifo_depth-16, mm_clk, mm_miso, mm_mosi);  -- TX_SECTION_EMPTY <-- default FIFO depth - 16, >3
+    proc_wr_mac(16#028#,                     16, mm_clk, mm_miso, mm_mosi);  -- TX_SECTION_FULL  <-- default 16, >~ 8 otherwise no tx
+    proc_wr_mac(16#02C#,                      8, mm_clk, mm_miso, mm_mosi);  -- RX_ALMOST_EMPTY  <-- default 8
+    proc_wr_mac(16#030#,                      8, mm_clk, mm_miso, mm_mosi);  -- RX_ALMOST_FULL   <-- default 8
+    proc_wr_mac(16#034#,                      8, mm_clk, mm_miso, mm_mosi);  -- TX_ALMOST_EMPTY  <-- default 8
+    proc_wr_mac(16#038#,   c_tx_ready_latency+3, mm_clk, mm_miso, mm_mosi);  -- TX_ALMOST_FULL   <-- default 3
+    
+    proc_rd_mac(16#0E8#, pcs_rddata, mm_clk, mm_miso, mm_mosi);  -- TX_CMD_STAT --> 0x00040000 : [18]=1 TX_SHIFT16, [17]=0 OMIT_CRC
+    proc_rd_mac(16#0EC#, pcs_rddata, mm_clk, mm_miso, mm_mosi);  -- RX_CMD_STAT --> 0x02000000 : [25]=1 RX_SHIFT16
+    
+    WAIT UNTIL rising_edge(mm_clk);
+    mm_init <= '0';
+    
+    WAIT;
+  END PROCESS;
+
+  p_tx_frame : PROCESS
+  BEGIN
+    -- . Avalon ST
+    ff_tx_src_out.data  <= (OTHERS=>'0');
+    ff_tx_src_out.valid <= '0';
+    ff_tx_src_out.sop   <= '0';
+    ff_tx_src_out.eop   <= '0';
+    ff_tx_src_out.empty <= (OTHERS=>'0');
+    ff_tx_src_out.err   <= (OTHERS=>'0');
+    -- . MAC specific
+    ff_tx_crc_fwd <= '0';
+    
+    WHILE mm_init/='0' LOOP
+      WAIT UNTIL rising_edge(dp_clk);
+    END LOOP;
+    WHILE tse_led_link/='1' LOOP
+      WAIT UNTIL rising_edge(dp_clk);
+    END LOOP;
+    FOR I IN 0 TO 9 LOOP WAIT UNTIL rising_edge(dp_clk); END LOOP;
+    
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac, "0000000000010000",   16, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype,   16, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 16, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1500, dp_clk, ff_tx_src_in, ff_tx_src_out);
+    proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1499, dp_clk, ff_tx_src_in, ff_tx_src_out);  -- verify st empty
+    proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1500, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1500, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1500, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1500, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1500, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1500, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1500, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1500, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1500, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1500, dp_clk, ff_tx_src_in, ff_tx_src_out);
+    
+    FOR I IN 0 TO 1500 * 4 LOOP WAIT UNTIL rising_edge(dp_clk); END LOOP;
+    tb_end <= '1';
+    WAIT;
+  END PROCESS;
+  
+  p_rx_frame : PROCESS
+  BEGIN
+    -- . Avalon ST
+    ff_rx_snk_out.ready <= '0';
+    
+    WHILE mm_init/='0' LOOP
+      WAIT UNTIL rising_edge(dp_clk);
+    END LOOP;
+    
+    -- Receive forever
+    WHILE TRUE LOOP
+      proc_rx_packet(c_eth_src_mac, c_eth_src_mac, c_eth_ethertype, dp_clk, ff_rx_snk_in, ff_rx_snk_out);
+    END LOOP;
+    
+    WAIT;
+  END PROCESS;
+  
+  dut : ENTITY work.ip_arria10_e2sg_tse_sgmii_gx
+    -- The ip_arria10_e2sg_tse_sgmii_gx needs to be regenerated if its parameters are changed.
+    -- . ENABLE_SHIFT16  = 1   : Align packet headers to 32 bit, useful for Nios data handling
+    -- . ENABLE_SUP_ADDR = 0   : An extra MAC addresses can e.g. be used as service MAC for tests
+    -- . ENA_HASH        = 0   : A multi cast hash table can be used to address all nodes at once
+    -- . STAT_CNT_ENA    = 0   : PHY statistics counts are useful for monitoring, but not realy needed
+    -- . EG_FIFO         = 256 : Tx FIFO depth in nof 32 bit words (256 --> 1 M9K)
+    -- . ING_FIFO        = 256 : Rx FIFO depth in nof 32 bit words (256 --> 1 M9K)
+  PORT MAP (
+    -- MAC transmit interface
+    -- . Avalon ST
+    ff_tx_clk      => dp_clk,               -- : in  std_logic                     := '0';             --     transmit_clock_connection.clk
+    ff_tx_rdy      => ff_tx_src_in.ready,   -- : out std_logic;                                        --                              .ready
+    ff_tx_data     => ff_tx_src_out.data,   -- : in  std_logic_vector(31 downto 0) := (others => '0'); --                      transmit.data
+    ff_tx_wren     => ff_tx_src_out.valid,  -- : in  std_logic                     := '0';             --                              .valid
+    ff_tx_sop      => ff_tx_src_out.sop,    -- : in  std_logic                     := '0';             --                              .startofpacket
+    ff_tx_eop      => ff_tx_src_out.eop,    -- : in  std_logic                     := '0';             --                              .endofpacket
+    ff_tx_mod      => ff_tx_src_out.empty,  -- : in  std_logic_vector(1 downto 0)  := (others => '0'); --                              .empty
+    ff_tx_err      => ff_tx_src_out.err(0), -- : in  std_logic                     := '0';             --                              .error
+    -- . MAC specific
+    ff_tx_crc_fwd  => ff_tx_crc_fwd,        -- : in  std_logic                     := '0';             --           mac_misc_connection.ff_tx_crc_fwd     -- when '0' MAC inserts CRC32 after eop
+    ff_tx_septy    => ff_tx_septy,          -- : out std_logic;                                        --                              .ff_tx_septy       -- when '0' then tx FIFO goes above section-empty threshold
+    ff_tx_a_full   => ff_tx_a_full,         -- : out std_logic;                                        --                              .ff_tx_a_full      -- when '1' then tx FIFO goes above almost-full threshold 
+    ff_tx_a_empty  => ff_tx_a_empty,        -- : out std_logic;                                        --                              .ff_tx_a_empty     -- when '1' then tx FIFO goes below almost-empty threshold
+    tx_ff_uflow    => ff_tx_uflow,          -- : out std_logic;                                        --                              .tx_ff_uflow       -- when '1' then tx FIFO underflow
+    -- MAC receive interface
+    -- . Avalon STs
+    ff_rx_clk      => dp_clk,               -- : in  std_logic                     := '0';             --      receive_clock_connection.clk
+    ff_rx_rdy      => ff_rx_snk_out.ready,  -- : in  std_logic                     := '0';             --                              .ready
+    ff_rx_data     => ff_rx_snk_in.data,    -- : out std_logic_vector(31 downto 0);                    --                       receive.data
+    ff_rx_dval     => ff_rx_snk_in.valid,   -- : out std_logic;                                        --                              .valid
+    ff_rx_sop      => ff_rx_snk_in.sop,     -- : out std_logic;                                        --                              .startofpacket
+    ff_rx_eop      => ff_rx_snk_in.eop,     -- : out std_logic;                                        --                              .endofpacket
+    ff_rx_mod      => ff_rx_snk_in.empty,   -- : out std_logic_vector(1 downto 0);                     --                              .empty
+    rx_err         => ff_rx_snk_in.err,     -- : out std_logic_vector(5 downto 0);                     --                              .error
+                                            -- [5] collision error (can only occur in half duplex mode)
+                                            -- [4] PHY error on GMII
+                                            -- [3] receive frame truncated due to FIFO overflow
+                                            -- [2] CRC-32 error
+                                            -- [1] invalid length
+                                            -- [0] = OR of [1:5]
+    -- . MAC specific
+    rx_err_stat    => ff_rx_ethertype,      -- : out std_logic_vector(17 downto 0);                    --                              .rx_err_stat      -- [17,16] VLAN info, [15:0] Ethernet lentgh/type field
+    rx_frm_type    => ff_rx_frm_type,       -- : out std_logic_vector(3 downto 0);                     --                              .rx_frm_type      -- [3]=VLAN, [2]=Broadcast, [1]=Multicast, [0]=Unicast
+    ff_rx_dsav     => ff_rx_dsav,           -- : out std_logic;                                        --                              .ff_rx_dsav       -- rx frame available, but not necessarily a complete frame
+    ff_rx_a_full   => ff_rx_a_full,         -- : out std_logic;                                        --                              .ff_rx_a_full     -- when '1' then rx FIFO goes above almost-full threshold 
+    ff_rx_a_empty  => ff_rx_a_empty,        -- : out std_logic;                                        --                              .ff_rx_a_empty    -- when '1' sthen rx FIFO goes below almost-empty threshold
+    -- Reset
+    reset          => mm_rst,               -- : in  std_logic                     := '0';             --              reset_connection.reset            -- asynchronous reset (choose synchronous to mm_clk)
+    -- MM control interface
+    clk            => mm_clk,               -- : in  std_logic                     := '0';             -- control_port_clock_connection.clk
+    reg_addr       => mm_mosi.address(c_tse_byte_addr_w-1 DOWNTO 2),  -- : in  std_logic_vector(7 downto 0)  := (others => '0'); --                              .address
+    reg_data_out   => mm_miso.rddata,                                 -- : out std_logic_vector(31 downto 0);                    --                  control_port.readdata
+    reg_rd         => mm_mosi.rd,                                     -- : in  std_logic                     := '0';             --                              .read
+    reg_data_in    => mm_mosi.wrdata,                                 -- : in  std_logic_vector(31 downto 0) := (others => '0'); --                              .writedata
+    reg_wr         => mm_mosi.wr,                                     -- : in  std_logic                     := '0';             --                              .write
+    reg_busy       => mm_miso.waitreq,                                -- : out std_logic;                                        --                              .waitrequest
+    -- Status LEDs
+    led_an         => tse_led_an,           -- : out std_logic;                                        --                              .an        -- '1' = autonegation completed
+    led_link       => tse_led_link,         -- : out std_logic;                                        --                              .link      -- '1' = successful link synchronisation
+    led_disp_err   => OPEN,                 -- : out std_logic;                                        --                              .disp_err  -- TBI character error
+    led_char_err   => OPEN,                 -- : out std_logic;                                        --                              .char_err  -- TBI disparity errorreceived
+    led_crs        => OPEN,                 -- : out std_logic;                                        --         status_led_connection.crs
+    led_col        => OPEN,                 -- : out std_logic;                                        --                              .col
+    -- Serial 1.25 Gbps
+    rx_recovclkout => OPEN,                 -- : out std_logic;                                        --     serdes_control_connection.export
+    ref_clk        => eth_clk,              -- : in  std_logic                     := '0';             --  pcs_ref_clk_clock_connection.clk
+    txp            => eth_txp,              -- : out std_logic                                         --                              .txp_0
+    rxp            => eth_rxp,              -- : in  std_logic                     := '0';             --             serial_connection.rxp_0
+    
+    tx_serial_clk      => tx_serial_clk,    -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --                 tx_serial_clk.clk
+    rx_cdr_refclk      => rx_cdr_refclk,    -- : in  std_logic                     := '0';             --                 rx_cdr_refclk.clk
+    tx_analogreset     => (others => '0'),  -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --                tx_analogreset.tx_analogreset
+    tx_digitalreset    => (others => '0'),  -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --               tx_digitalreset.tx_digitalreset
+    rx_analogreset     => (others => '0'),  -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --                rx_analogreset.rx_analogreset
+    rx_digitalreset    => (others => '0'),  -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --               rx_digitalreset.rx_digitalreset
+    tx_cal_busy        => OPEN,             -- : out std_logic_vector(0 downto 0);                     --                   tx_cal_busy.tx_cal_busy
+    rx_cal_busy        => OPEN,             -- : out std_logic_vector(0 downto 0);                     --                   rx_cal_busy.rx_cal_busy
+    rx_set_locktodata  => (others => '0'),  -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --             rx_set_locktodata.rx_set_locktodata
+    rx_set_locktoref   => (others => '0'),  -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --              rx_set_locktoref.rx_set_locktoref
+    rx_is_lockedtoref  => OPEN,             -- : out std_logic_vector(0 downto 0);                     --             rx_is_lockedtoref.rx_is_lockedtoref
+    rx_is_lockedtodata => OPEN              -- : out std_logic_vector(0 downto 0)                      --            rx_is_lockedtodata.rx_is_lockedtodata
+  );
+  
+  -- To be corrected
+  tx_serial_clk(0) <= NOT tx_serial_clk(0) AFTER serial_clk_period/2;  -- ????
+  rx_cdr_refclk    <= NOT rx_cdr_refclk    AFTER cdr_clk_period/2;     -- ????
+  
+  -- Loopback
+  eth_rxp <= eth_txp;
+  
+  -- Verification
+  tx_pkt_cnt <= tx_pkt_cnt + 1 WHEN ff_tx_src_out.sop='1' AND rising_edge(dp_clk);
+  rx_pkt_cnt <= rx_pkt_cnt + 1 WHEN ff_rx_snk_in.eop='1'  AND rising_edge(dp_clk);
+  
+  p_tb_end : PROCESS  
+  BEGIN
+    WAIT UNTIL tb_end='1';
+    
+    -- Verify that all transmitted packets have been received
+    IF tx_pkt_cnt=0 THEN
+      REPORT "No packets were transmitted." SEVERITY ERROR;
+    ELSIF rx_pkt_cnt=0 THEN
+      REPORT "No packets were received." SEVERITY ERROR;
+    ELSIF tx_pkt_cnt/=rx_pkt_cnt THEN
+      REPORT "Not all transmitted packets were received." SEVERITY ERROR;
+    END IF;
+    
+    -- Stop the simulation
+    ASSERT FALSE REPORT "Simulation finished." SEVERITY FAILURE;
+    WAIT;
+  END PROCESS;
+  
+END tb;
diff --git a/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/README.patch b/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/README.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2fdf7a6eb7602fa32297fdc9b794576feafeefe8
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/README.patch
@@ -0,0 +1,3 @@
+The patch is generated with:
+
+diff -cB ip_arria10_e3sge3_tse_sgmii_lvds/altera_lvds_core20_151/synth/sdc_util.tcl generated/altera_lvds_core20_151/synth/sdc_util.tcl > sdc_util.sdc.patch
diff --git a/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/README.txt b/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/README.txt
new file mode 100755
index 0000000000000000000000000000000000000000..efe749e3a03ff7e95c29fd5bfc6bb62ae55040a2
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/README.txt
@@ -0,0 +1,4 @@
+README.txt for $RADIOHDL_WORK/libraries/technology/ip_arria10_e3sge3/tse_sgmii_lvds
+
+See README.txt for $RADIOHDL_WORK/libraries/technology/ip_arria10/tse_sgmii_lvds
+  
\ No newline at end of file
diff --git a/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..ec4f247a9caba7327656d1b02ae2247645e05a57
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/compile_ip.tcl
@@ -0,0 +1,34 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_tse_sgmii_lvds/sim"
+        
+  vcom         "$IP_DIR/ip_arria10_e2sg_tse_sgmii_lvds.vhd"                                                                 
diff --git a/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..46ed52d247e938125b9f95d58904df10414fa7a6
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/hdllib.cfg
@@ -0,0 +1,27 @@
+hdl_lib_name = ip_arria10_e2sg_tse_sgmii_lvds
+hdl_library_clause_name = ip_arria10_e2sg_tse_sgmii_lvds_altera_eth_tse_194
+hdl_lib_uses_synth = common
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_eth_tse_194
+
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+    tb_ip_arria10_e2sg_tse_sgmii_lvds.vhd
+
+
+[modelsim_project_file]
+modelsim_compile_ip_files =
+    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files =
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_tse_sgmii_lvds/ip_arria10_e2sg_tse_sgmii_lvds.qip
+
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_tse_sgmii_lvds.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/ip_arria10_e2sg_tse_sgmii_lvds.qsys b/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/ip_arria10_e2sg_tse_sgmii_lvds.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..16679fd6d186599d6cc1ee3f4c956c51b7154782
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/ip_arria10_e2sg_tse_sgmii_lvds.qsys
@@ -0,0 +1,325 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_tse_sgmii_lvds">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element eth_tse_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos>
+        <entry>
+            <key>control_port</key>
+            <value>
+                <connectionPointName>control_port</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>ADDRESS_MAP</key>
+                        <value>&lt;address-map&gt;&lt;slave name='control_port' start='0x0' end='0x400' datawidth='32' /&gt;&lt;/address-map&gt;</value>
+                    </entry>
+                    <entry>
+                        <key>ADDRESS_WIDTH</key>
+                        <value>10</value>
+                    </entry>
+                    <entry>
+                        <key>MAX_SLAVE_DATA_WIDTH</key>
+                        <value>32</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+    </connPtSystemInfos>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface
+   name="control_port"
+   internal="eth_tse_0.control_port"
+   type="avalon"
+   dir="end">
+  <port name="reg_addr" internal="reg_addr" />
+  <port name="reg_busy" internal="reg_busy" />
+  <port name="reg_data_in" internal="reg_data_in" />
+  <port name="reg_data_out" internal="reg_data_out" />
+  <port name="reg_rd" internal="reg_rd" />
+  <port name="reg_wr" internal="reg_wr" />
+ </interface>
+ <interface
+   name="control_port_clock_connection"
+   internal="eth_tse_0.control_port_clock_connection"
+   type="clock"
+   dir="end">
+  <port name="clk" internal="clk" />
+ </interface>
+ <interface name="mac_gmii_connection" internal="eth_tse_0.mac_gmii_connection" />
+ <interface name="mac_mii_connection" internal="eth_tse_0.mac_mii_connection" />
+ <interface
+   name="mac_misc_connection"
+   internal="eth_tse_0.mac_misc_connection"
+   type="conduit"
+   dir="end">
+  <port name="ff_rx_a_empty" internal="ff_rx_a_empty" />
+  <port name="ff_rx_a_full" internal="ff_rx_a_full" />
+  <port name="ff_rx_dsav" internal="ff_rx_dsav" />
+  <port name="ff_tx_a_empty" internal="ff_tx_a_empty" />
+  <port name="ff_tx_a_full" internal="ff_tx_a_full" />
+  <port name="ff_tx_crc_fwd" internal="ff_tx_crc_fwd" />
+  <port name="ff_tx_septy" internal="ff_tx_septy" />
+  <port name="rx_err_stat" internal="rx_err_stat" />
+  <port name="rx_frm_type" internal="rx_frm_type" />
+  <port name="tx_ff_uflow" internal="tx_ff_uflow" />
+ </interface>
+ <interface
+   name="mac_status_connection"
+   internal="eth_tse_0.mac_status_connection" />
+ <interface
+   name="pcs_mac_rx_clock_connection"
+   internal="eth_tse_0.pcs_mac_rx_clock_connection" />
+ <interface
+   name="pcs_mac_tx_clock_connection"
+   internal="eth_tse_0.pcs_mac_tx_clock_connection" />
+ <interface
+   name="pcs_ref_clk_clock_connection"
+   internal="eth_tse_0.pcs_ref_clk_clock_connection"
+   type="clock"
+   dir="end">
+  <port name="ref_clk" internal="ref_clk" />
+ </interface>
+ <interface
+   name="receive"
+   internal="eth_tse_0.receive"
+   type="avalon_streaming"
+   dir="start">
+  <port name="ff_rx_data" internal="ff_rx_data" />
+  <port name="ff_rx_dval" internal="ff_rx_dval" />
+  <port name="ff_rx_eop" internal="ff_rx_eop" />
+  <port name="ff_rx_mod" internal="ff_rx_mod" />
+  <port name="ff_rx_rdy" internal="ff_rx_rdy" />
+  <port name="ff_rx_sop" internal="ff_rx_sop" />
+  <port name="rx_err" internal="rx_err" />
+ </interface>
+ <interface
+   name="receive_clock_connection"
+   internal="eth_tse_0.receive_clock_connection"
+   type="clock"
+   dir="end">
+  <port name="ff_rx_clk" internal="ff_rx_clk" />
+ </interface>
+ <interface
+   name="reset_connection"
+   internal="eth_tse_0.reset_connection"
+   type="reset"
+   dir="end">
+  <port name="reset" internal="reset" />
+ </interface>
+ <interface
+   name="serdes_control_connection"
+   internal="eth_tse_0.serdes_control_connection"
+   type="conduit"
+   dir="end">
+  <port name="rx_recovclkout" internal="rx_recovclkout" />
+ </interface>
+ <interface
+   name="serial_connection"
+   internal="eth_tse_0.serial_connection"
+   type="conduit"
+   dir="end">
+  <port name="rxp" internal="rxp" />
+  <port name="txp" internal="txp" />
+ </interface>
+ <interface
+   name="status_led_connection"
+   internal="eth_tse_0.status_led_connection"
+   type="conduit"
+   dir="end">
+  <port name="led_an" internal="led_an" />
+  <port name="led_char_err" internal="led_char_err" />
+  <port name="led_col" internal="led_col" />
+  <port name="led_crs" internal="led_crs" />
+  <port name="led_disp_err" internal="led_disp_err" />
+  <port name="led_link" internal="led_link" />
+  <port name="led_panel_link" internal="led_panel_link" />
+ </interface>
+ <interface name="tbi_connection" internal="eth_tse_0.tbi_connection" />
+ <interface
+   name="transmit"
+   internal="eth_tse_0.transmit"
+   type="avalon_streaming"
+   dir="end">
+  <port name="ff_tx_data" internal="ff_tx_data" />
+  <port name="ff_tx_eop" internal="ff_tx_eop" />
+  <port name="ff_tx_err" internal="ff_tx_err" />
+  <port name="ff_tx_mod" internal="ff_tx_mod" />
+  <port name="ff_tx_rdy" internal="ff_tx_rdy" />
+  <port name="ff_tx_sop" internal="ff_tx_sop" />
+  <port name="ff_tx_wren" internal="ff_tx_wren" />
+ </interface>
+ <interface
+   name="transmit_clock_connection"
+   internal="eth_tse_0.transmit_clock_connection"
+   type="clock"
+   dir="end">
+  <port name="ff_tx_clk" internal="ff_tx_clk" />
+ </interface>
+ <module
+   name="eth_tse_0"
+   kind="altera_eth_tse"
+   version="19.4.0"
+   enabled="1"
+   autoexport="1">
+  <parameter name="AUTO_DEVICE" value="10AX115U3F45E2SG" />
+  <parameter name="AUTO_DEVICE_SPEEDGRADE" value="2" />
+  <parameter name="ND_XCVR_RCFG_JTAG_ENABLE" value="0" />
+  <parameter name="ND_XCVR_SET_CAPABILITY_REG_ENABLE" value="0" />
+  <parameter name="ND_XCVR_SET_CSR_SOFT_LOGIC_ENABLE" value="0" />
+  <parameter name="ND_XCVR_SET_USER_IDENTIFIER" value="0" />
+  <parameter name="XCVR_RCFG_JTAG_ENABLE" value="0" />
+  <parameter name="XCVR_SET_CAPABILITY_REG_ENABLE" value="0" />
+  <parameter name="XCVR_SET_CSR_SOFT_LOGIC_ENABLE" value="0" />
+  <parameter name="XCVR_SET_PRBS_SOFT_LOGIC_ENABLE" value="0" />
+  <parameter name="XCVR_SET_USER_IDENTIFIER" value="0" />
+  <parameter name="adpt_multi_enable" value="1" />
+  <parameter name="adpt_recipe_cnt" value="1" />
+  <parameter name="adpt_recipe_data0" value="" />
+  <parameter name="adpt_recipe_data1" value="" />
+  <parameter name="adpt_recipe_data2" value="" />
+  <parameter name="adpt_recipe_data3" value="" />
+  <parameter name="adpt_recipe_data4" value="" />
+  <parameter name="adpt_recipe_data5" value="" />
+  <parameter name="adpt_recipe_data6" value="" />
+  <parameter name="adpt_recipe_data7" value="" />
+  <parameter name="adpt_recipe_select" value="0" />
+  <parameter name="cal_recipe_sel" value="NRZ_28Gbps_VSR" />
+  <parameter name="core_variation" value="MAC_PCS" />
+  <parameter name="ctle_gs1_val_a" value="999" />
+  <parameter name="ctle_gs1_val_b" value="999" />
+  <parameter name="ctle_gs2_val_a" value="999" />
+  <parameter name="ctle_gs2_val_b" value="999" />
+  <parameter name="ctle_hf_max_a" value="999" />
+  <parameter name="ctle_hf_max_b" value="999" />
+  <parameter name="ctle_hf_min_a" value="999" />
+  <parameter name="ctle_hf_min_b" value="999" />
+  <parameter name="ctle_hf_val_a" value="999" />
+  <parameter name="ctle_hf_val_ada_a" value="adaptable" />
+  <parameter name="ctle_hf_val_ada_b" value="adaptable" />
+  <parameter name="ctle_hf_val_b" value="999" />
+  <parameter name="ctle_lf_max_a" value="999" />
+  <parameter name="ctle_lf_max_b" value="999" />
+  <parameter name="ctle_lf_min_a" value="999" />
+  <parameter name="ctle_lf_min_b" value="999" />
+  <parameter name="ctle_lf_val_a" value="999" />
+  <parameter name="ctle_lf_val_ada_a" value="adaptable" />
+  <parameter name="ctle_lf_val_ada_b" value="adaptable" />
+  <parameter name="ctle_lf_val_b" value="999" />
+  <parameter name="deviceDieList" value="" />
+  <parameter name="deviceFamilyName" value="Arria 10" />
+  <parameter name="eg_addr" value="8" />
+  <parameter name="ena_hash" value="false" />
+  <parameter name="enable_alt_reconfig" value="false" />
+  <parameter name="enable_ecc" value="false" />
+  <parameter name="enable_ena" value="32" />
+  <parameter name="enable_gmii_loopback" value="true" />
+  <parameter name="enable_hd_logic" value="false" />
+  <parameter name="enable_hidden_features" value="false" />
+  <parameter name="enable_mac_flow_ctrl" value="false" />
+  <parameter name="enable_mac_vlan" value="false" />
+  <parameter name="enable_magic_detect" value="false" />
+  <parameter name="enable_ptp_1step" value="false" />
+  <parameter name="enable_sgmii" value="false" />
+  <parameter name="enable_shift16" value="true" />
+  <parameter name="enable_sup_addr" value="false" />
+  <parameter name="enable_timestamping" value="false" />
+  <parameter name="enable_use_internal_fifo" value="true" />
+  <parameter name="export_pwrdn" value="false" />
+  <parameter name="ext_stat_cnt_ena" value="false" />
+  <parameter name="ifGMII" value="MII_GMII" />
+  <parameter name="ing_addr" value="8" />
+  <parameter name="max_channels" value="1" />
+  <parameter name="mdio_clk_div" value="40" />
+  <parameter name="nd_phyip_rcfg_enable" value="false" />
+  <parameter name="nf_phyip_rcfg_enable" value="false" />
+  <parameter name="part_trait_bd" value="NIGHTFURY5" />
+  <parameter name="phy_identifier" value="0" />
+  <parameter name="phyip_en_synce_support" value="false" />
+  <parameter name="phyip_pll_base_data_rate" value="1250 Mbps" />
+  <parameter name="phyip_pll_type" value="CMU" />
+  <parameter name="phyip_pma_bonding_mode" value="x1" />
+  <parameter name="rcp_load_enable" value="0" />
+  <parameter name="rf_a_a" value="999" />
+  <parameter name="rf_a_b" value="999" />
+  <parameter name="rf_b0_a" value="999" />
+  <parameter name="rf_b0_ada_a" value="adaptable" />
+  <parameter name="rf_b0_ada_b" value="adaptable" />
+  <parameter name="rf_b0_b" value="999" />
+  <parameter name="rf_b0t_a" value="999" />
+  <parameter name="rf_b0t_b" value="999" />
+  <parameter name="rf_b1_a" value="999" />
+  <parameter name="rf_b1_ada_a" value="adaptable" />
+  <parameter name="rf_b1_ada_b" value="adaptable" />
+  <parameter name="rf_b1_b" value="999" />
+  <parameter name="rf_p0_val_a" value="999" />
+  <parameter name="rf_p0_val_ada_a" value="adaptable" />
+  <parameter name="rf_p0_val_ada_b" value="adaptable" />
+  <parameter name="rf_p0_val_b" value="999" />
+  <parameter name="rf_p1_max_a" value="999" />
+  <parameter name="rf_p1_max_b" value="999" />
+  <parameter name="rf_p1_min_a" value="999" />
+  <parameter name="rf_p1_min_b" value="999" />
+  <parameter name="rf_p1_val_a" value="999" />
+  <parameter name="rf_p1_val_ada_a" value="adaptable" />
+  <parameter name="rf_p1_val_ada_b" value="adaptable" />
+  <parameter name="rf_p1_val_b" value="999" />
+  <parameter name="rf_p2_max_a" value="999" />
+  <parameter name="rf_p2_max_b" value="999" />
+  <parameter name="rf_p2_min_a" value="999" />
+  <parameter name="rf_p2_min_b" value="999" />
+  <parameter name="rf_p2_val_a" value="999" />
+  <parameter name="rf_p2_val_ada_a" value="adaptable" />
+  <parameter name="rf_p2_val_ada_b" value="adaptable" />
+  <parameter name="rf_p2_val_b" value="999" />
+  <parameter name="rf_reserved0_a" value="999" />
+  <parameter name="rf_reserved0_b" value="999" />
+  <parameter name="rf_reserved1_a" value="999" />
+  <parameter name="rf_reserved1_b" value="999" />
+  <parameter name="starting_channel_number" value="0" />
+  <parameter name="stat_cnt_ena" value="true" />
+  <parameter name="transceiver_type" value="LVDS_IO" />
+  <parameter name="tstamp_fp_width" value="4" />
+  <parameter name="useMDIO" value="false" />
+  <parameter name="use_mac_clken" value="false" />
+  <parameter name="use_misc_ports" value="true" />
+ </module>
+</system>
diff --git a/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/run_patch.sh b/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/run_patch.sh
new file mode 100755
index 0000000000000000000000000000000000000000..05a043f5a296d48fd8a9354894bef22b7c74d5af
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/run_patch.sh
@@ -0,0 +1,10 @@
+#!/bin/bash 
+
+patchfile='sdc_util.sdc.patch'
+
+echo -e "Applying patch: $patchfile\n"
+
+cd generated/altera_lvds_core20_160/synth
+patch  <../../../${patchfile}
+
+echo "done."
diff --git a/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/sdc_util.sdc.patch b/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/sdc_util.sdc.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1cd9335d8eb7728af5909e0af15591a97217f79b
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/sdc_util.sdc.patch
@@ -0,0 +1,31 @@
+*** ip_arria10_e3sge3_tse_sgmii_lvds/altera_lvds_core20_160/synth/sdc_util.tcl	2016-01-29 11:25:55.709095784 +0100
+--- generated/altera_lvds_core20_160/synth/sdc_util.tcl	2016-01-29 11:27:18.456556665 +0100
+***************
+*** 63,75 ****
+  
+     eval "create_generated_clock \
+           -name $opts(-name) \
+!          -source $opts(-source) \
+           -multiply_by $multiply_by \
+           -divide_by $opts(-divide_by) \
+           -phase $opts(-phase) \
+           -duty_cycle $opts(-duty_cycle) \
+           $extra_params \
+!          $opts(-target)"
+  }
+  
+  proc altera_iosubsystem_get_clock_name_from_target { target } {
+--- 63,75 ----
+  
+     eval "create_generated_clock \
+           -name $opts(-name) \
+!          -source \{$opts(-source)\} \
+           -multiply_by $multiply_by \
+           -divide_by $opts(-divide_by) \
+           -phase $opts(-phase) \
+           -duty_cycle $opts(-duty_cycle) \
+           $extra_params \
+!          \{$opts(-target)\}"
+  }
+  
+  proc altera_iosubsystem_get_clock_name_from_target { target } {
diff --git a/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/tb_ip_arria10_e2sg_tse_sgmii_lvds.vhd b/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/tb_ip_arria10_e2sg_tse_sgmii_lvds.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..74fdfe4c2826c3c24aa6769fdfce2ceb1eb31443
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/tse_sgmii_lvds/tb_ip_arria10_e2sg_tse_sgmii_lvds.vhd
@@ -0,0 +1,730 @@
+-------------------------------------------------------------------------------
+--
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+-- Purpose: Testbench for ip_arria10_e2sg_tse_sgmii_lvds.
+-- Description:
+--   The testbench in /testbench/tse_sgmii_lvds/tse_sgmii_lvds_tb.vhd that is
+--   generated by the MegaWizard provides an elaborate testbench. For
+--   Uniboard purposes in tb/ a minimal testbench tb_tse_sgmii_lvds.vhd was
+--   derived manually from the generated testbench. This tb_tse_sgmii_lvds
+--   is more easy to use.
+--   The tb is self checking based on that tx_pkt_cnt=rx_pkt_cnt must be true
+--   at the tb_end.
+-- Usage:
+--   > as 10
+--   > run -all
+
+LIBRARY IEEE, common_lib;
+USE IEEE.std_logic_1164.ALL;
+USE IEEE.numeric_std.ALL;
+USE common_lib.common_pkg.ALL;
+
+
+ENTITY tb_ip_arria10_e2sg_tse_sgmii_lvds IS
+END tb_ip_arria10_e2sg_tse_sgmii_lvds;
+
+
+ARCHITECTURE tb OF tb_ip_arria10_e2sg_tse_sgmii_lvds IS
+
+  CONSTANT sys_clk_period             : TIME := 10 ns;  -- 100 MHz
+  CONSTANT eth_clk_period             : TIME :=  8 ns;  -- 125 MHz
+  
+  CONSTANT c_tse_reg_addr_w           : NATURAL := 8;         -- = max 256 MAC registers
+  CONSTANT c_tse_byte_addr_w          : NATURAL := c_tse_reg_addr_w + 2;
+  CONSTANT c_tse_byte_addr_pcs_offset : NATURAL := 16#200#;   -- table 4.8, 4.9 in ug_ethernet.pdf
+  CONSTANT c_tse_data_w               : NATURAL := c_word_w;  -- = 32
+  
+  CONSTANT c_tse_symbol_w             : NATURAL := c_byte_w;                       -- = 8
+  CONSTANT c_tse_symbol_max           : NATURAL := 2**c_tse_symbol_w-1;            -- = 255
+  CONSTANT c_tse_symbols_per_beat     : NATURAL := c_tse_data_w / c_tse_symbol_w;  -- = 4
+  
+  CONSTANT c_tse_pcs_reg_addr_w       : NATURAL := 5;         -- = max 32 PCS registers
+  CONSTANT c_tse_pcs_halfword_addr_w  : NATURAL := c_tse_pcs_reg_addr_w + 1;  -- table 4.17 in ug_ethernet.pdf
+  CONSTANT c_tse_pcs_byte_addr_w      : NATURAL := c_tse_pcs_reg_addr_w + 2;
+  CONSTANT c_tse_pcs_data_w           : NATURAL := c_halfword_w;  -- = 16;
+  
+  CONSTANT c_tse_empty_w              : NATURAL := 2;
+  CONSTANT c_tse_tx_error_w           : NATURAL := 1;
+  CONSTANT c_tse_rx_error_w           : NATURAL := 6;
+  CONSTANT c_tse_error_w              : NATURAL := largest(c_tse_tx_error_w, c_tse_rx_error_w);
+  CONSTANT c_tse_err_stat_w           : NATURAL := 18;
+  CONSTANT c_tse_frm_type_w           : NATURAL := 4;
+  
+  CONSTANT c_tse_tx_fifo_depth        : NATURAL := 256;  -- nof words for Tx FIFO
+  CONSTANT c_tse_rx_fifo_depth        : NATURAL := 256;  -- nof words for Rx FIFO
+  
+  CONSTANT c_tse_promis_en            : BOOLEAN := FALSE;
+  --CONSTANT c_tse_promis_en            : BOOLEAN := TRUE;
+  
+  CONSTANT c_tx_data_type             : NATURAL := 1;  -- 0 = symbols, 1 = counter
+  CONSTANT c_tx_ready_latency         : NATURAL := 0;
+  CONSTANT c_nof_tx_not_valid         : NATURAL := 0;  -- when > 0 then pull tx valid low for c_nof_tx_not_valid beats during tx
+  
+  CONSTANT c_eth_dst_mac              : STD_LOGIC_VECTOR(47 DOWNTO 0) := X"10FA01020300";
+  CONSTANT c_eth_src_mac              : STD_LOGIC_VECTOR(47 DOWNTO 0) := X"123456789ABC";  -- = 12-34-56-78-9A-BC
+  CONSTANT c_eth_ethertype            : STD_LOGIC_VECTOR(15 DOWNTO 0) := X"10FA";
+
+  TYPE t_mm_bus IS RECORD
+    -- Master In Slave Out
+    waitreq   : STD_LOGIC;
+    rddata    : STD_LOGIC_VECTOR(c_tse_data_w-1 DOWNTO 0);
+    -- Master Out Slave In
+    address   : STD_LOGIC_VECTOR(c_tse_byte_addr_w-1 DOWNTO 0);
+    wrdata    : STD_LOGIC_VECTOR(c_tse_data_w-1 DOWNTO 0);
+    wr        : STD_LOGIC;
+    rd        : STD_LOGIC;
+  END RECORD;
+
+  PROCEDURE proc_dbg_mm_bus(SIGNAL mm_miso  : IN  t_mm_bus;
+                            SIGNAL mm_mosi  : IN  t_mm_bus;
+                            SIGNAL dbg_mm   : OUT t_mm_bus) IS
+  BEGIN
+    dbg_mm.waitreq <= mm_miso.waitreq;
+    dbg_mm.rddata  <= mm_miso.rddata;
+    dbg_mm.address <= mm_mosi.address;
+    dbg_mm.wrdata  <= mm_mosi.wrdata;
+    dbg_mm.wr      <= mm_mosi.wr;
+    dbg_mm.rd      <= mm_mosi.rd;
+  END proc_dbg_mm_bus;
+  
+  -- Wait for MM access (either read or write) finished
+  PROCEDURE proc_mm_access(SIGNAL mm_clk      : IN  STD_LOGIC;
+                           SIGNAL mm_waitreq  : IN  STD_LOGIC;
+                           SIGNAL mm_access   : OUT STD_LOGIC) IS
+  BEGIN
+    mm_access <= '1';
+    WAIT UNTIL rising_edge(mm_clk);
+    WHILE mm_waitreq='1' LOOP
+      WAIT UNTIL rising_edge(mm_clk);
+    END LOOP;
+    mm_access <= '0';
+  END proc_mm_access;
+  
+  -- Use word addressing for MAC registers according to table 4.8, 4.9
+  PROCEDURE proc_wr_mac(CONSTANT mac_addr : IN  NATURAL;
+                        CONSTANT mac_data : IN  NATURAL;
+                        SIGNAL   mm_clk   : IN  STD_LOGIC;
+                        SIGNAL   mm_miso  : IN  t_mm_bus;
+                        SIGNAL   mm_mosi  : OUT t_mm_bus) IS
+  BEGIN
+    mm_mosi.address <= STD_LOGIC_VECTOR(TO_UNSIGNED(mac_addr, c_tse_byte_addr_w));
+    mm_mosi.wrdata  <= STD_LOGIC_VECTOR(TO_UNSIGNED(mac_data, c_tse_data_w));
+    proc_mm_access(mm_clk, mm_miso.waitreq, mm_mosi.wr);
+  END proc_wr_mac;
+  
+  PROCEDURE proc_rd_mac(CONSTANT mac_addr : IN  NATURAL;
+                        SIGNAL   mac_data : OUT NATURAL;
+                        SIGNAL   mm_clk   : IN  STD_LOGIC;
+                        SIGNAL   mm_miso  : IN  t_mm_bus;
+                        SIGNAL   mm_mosi  : OUT t_mm_bus) IS
+  BEGIN
+    mm_mosi.address <= STD_LOGIC_VECTOR(TO_UNSIGNED(mac_addr, c_tse_byte_addr_w));
+    proc_mm_access(mm_clk, mm_miso.waitreq, mm_mosi.rd);
+    MAC_data <= TO_INTEGER(UNSIGNED(mm_miso.rddata));
+  END proc_rd_mac;
+  
+  -- Use halfword addressing for PCS register to match table 4.17
+  PROCEDURE proc_wr_pcs(CONSTANT pcs_addr : IN  NATURAL;
+                        CONSTANT pcs_data : IN  NATURAL;
+                        SIGNAL   mm_clk   : IN  STD_LOGIC;
+                        SIGNAL   mm_miso  : IN  t_mm_bus;
+                        SIGNAL   mm_mosi  : OUT t_mm_bus) IS
+  BEGIN
+    mm_mosi.address                             <= STD_LOGIC_VECTOR(TO_UNSIGNED(pcs_addr*2 + c_tse_byte_addr_pcs_offset, c_tse_byte_addr_w));
+    mm_mosi.wrdata                              <= (OTHERS=>'0');
+    mm_mosi.wrdata(c_tse_pcs_data_w-1 DOWNTO 0) <= STD_LOGIC_VECTOR(TO_UNSIGNED(pcs_data, c_tse_pcs_data_w));
+    proc_mm_access(mm_clk, mm_miso.waitreq, mm_mosi.wr);
+  END proc_wr_pcs;
+
+  PROCEDURE proc_rd_pcs(CONSTANT pcs_addr : IN  NATURAL;
+                        SIGNAL   pcs_data : OUT NATURAL;
+                        SIGNAL   mm_clk   : IN  STD_LOGIC;
+                        SIGNAL   mm_miso  : IN  t_mm_bus;
+                        SIGNAL   mm_mosi  : OUT t_mm_bus) IS
+  BEGIN
+    mm_mosi.address <= STD_LOGIC_VECTOR(TO_UNSIGNED(pcs_addr*2 + c_tse_byte_addr_pcs_offset, c_tse_byte_addr_w));
+    proc_mm_access(mm_clk, mm_miso.waitreq, mm_mosi.rd);
+    pcs_data <= TO_INTEGER(UNSIGNED(mm_miso.rddata(c_tse_pcs_data_w-1 DOWNTO 0)));
+  END proc_rd_pcs;
+  
+  TYPE t_tse_stream IS RECORD
+    -- Source In or Sink Out
+    ready    : STD_LOGIC;
+    -- Source Out or Sink In
+    data     : STD_LOGIC_VECTOR(c_tse_data_w-1 DOWNTO 0);
+    valid    : STD_LOGIC;
+    sop      : STD_LOGIC;
+    eop      : STD_LOGIC;
+    empty    : STD_LOGIC_VECTOR(c_tse_empty_w-1 DOWNTO 0);
+    err      : STD_LOGIC_VECTOR(c_tse_error_w-1 DOWNTO 0);
+  END RECORD;
+    
+  PROCEDURE proc_dbg_tse_stream_src(SIGNAL src_in  : IN  t_tse_stream;
+                                    SIGNAL src_out : IN  t_tse_stream;
+                                    SIGNAL dbg_src : OUT t_tse_stream) IS
+  BEGIN
+    dbg_src.ready <= src_in.ready;
+    dbg_src.data  <= src_out.data;
+    dbg_src.valid <= src_out.valid;
+    dbg_src.sop   <= src_out.sop;
+    dbg_src.eop   <= src_out.eop;
+    dbg_src.empty <= src_out.empty;
+    dbg_src.err   <= src_out.err;
+  END proc_dbg_tse_stream_src;
+  
+  PROCEDURE proc_dbg_tse_stream_snk(SIGNAL snk_in  : IN  t_tse_stream;
+                                    SIGNAL snk_out : IN  t_tse_stream;
+                                    SIGNAL dbg_snk : OUT t_tse_stream) IS
+  BEGIN
+    dbg_snk.ready <= snk_out.ready;
+    dbg_snk.data  <= snk_in.data;
+    dbg_snk.valid <= snk_in.valid;
+    dbg_snk.sop   <= snk_in.sop;
+    dbg_snk.eop   <= snk_in.eop;
+    dbg_snk.empty <= snk_in.empty;
+    dbg_snk.err   <= snk_in.err;
+  END proc_dbg_tse_stream_snk;
+  
+  -- Handle TX ready
+  -- Only support tx_ready_latency=0 or 1, corresponding to TX_ALMOST_FULL=3 or 4
+  -- Support for tx_ready_latency>1 requires keeping previous ready information
+  -- in a STD_LOGIC_VECTOR(tx_ready_latency-1 DOWNTO 0).
+  PROCEDURE proc_ready_latency(CONSTANT c_latency : IN  NATURAL;
+                               SIGNAL   clk       : IN  STD_LOGIC;
+                               SIGNAL   ready     : IN  STD_LOGIC;
+                               CONSTANT c_valid   : IN  STD_LOGIC;
+                               CONSTANT c_sop     : IN  STD_LOGIC;
+                               CONSTANT c_eop     : IN  STD_LOGIC;
+                               SIGNAL   out_valid : OUT STD_LOGIC;
+                               SIGNAL   out_sop   : OUT STD_LOGIC;
+                               SIGNAL   out_eop   : OUT STD_LOGIC) IS
+  BEGIN
+    IF c_latency=0 THEN
+      out_valid <= c_valid;
+      out_sop   <= c_sop;
+      out_eop   <= c_eop;
+      WAIT UNTIL rising_edge(clk);
+      WHILE ready /= '1' LOOP
+        WAIT UNTIL rising_edge(clk);
+      END LOOP;
+    END IF;
+    IF c_latency=1 THEN
+      WHILE ready /= '1' LOOP
+        out_valid <= '0';
+        out_sop   <= '0';
+        out_eop   <= '0';
+        WAIT UNTIL rising_edge(clk);
+      END LOOP;
+      out_valid <= c_valid;
+      out_sop   <= c_sop;
+      out_eop   <= c_eop;
+      WAIT UNTIL rising_edge(clk);
+    END IF;
+  END proc_ready_latency;
+  
+  -- Transmit user packet
+  -- . Use word aligned payload data, so with half word inserted before the 14 byte header
+  -- . Packets can be send immediately after eachother so new sop directly after last eop
+  -- . The word rate is controlled by respecting ready from the MAC
+  PROCEDURE proc_tx_packet(CONSTANT dst_mac_addr : IN  STD_LOGIC_VECTOR(c_eth_dst_mac'RANGE);
+                           CONSTANT src_mac_addr : IN  STD_LOGIC_VECTOR(c_eth_src_mac'RANGE);
+                           CONSTANT ethertype    : IN  STD_LOGIC_VECTOR(c_eth_ethertype'RANGE);
+                           CONSTANT data_len     : IN  NATURAL;  -- in symbols = octets = bytes
+                           SIGNAL   dp_clk       : IN  STD_LOGIC;
+                           SIGNAL   dp_src_in    : IN  t_tse_stream;
+                           SIGNAL   dp_src_out   : OUT t_tse_stream) IS
+    CONSTANT c_mod            : NATURAL := data_len MOD c_tse_symbols_per_beat;
+    CONSTANT c_nof_data_beats : NATURAL := data_len   / c_tse_symbols_per_beat + sel_a_b(c_mod, 1, 0);
+    CONSTANT c_empty          : NATURAL := sel_a_b(c_mod, c_tse_symbols_per_beat - c_mod, 0);
+    VARIABLE v_sym            : UNSIGNED(c_tse_symbol_w-1 DOWNTO 0) := (OTHERS=>'0');
+    VARIABLE v_num            : UNSIGNED(c_tse_data_w-1 DOWNTO 0) := (OTHERS=>'0');
+  BEGIN
+    -- DST MAC
+    dp_src_out.empty <= STD_LOGIC_VECTOR(TO_UNSIGNED(0, c_tse_empty_w));
+    dp_src_out.data              <= (OTHERS=>'0');
+    dp_src_out.data(15 DOWNTO 0) <= hton(dst_mac_addr(15 DOWNTO 0));  -- send to itself
+    proc_ready_latency(c_tx_ready_latency, dp_clk, dp_src_in.ready, '1', '1', '0', dp_src_out.valid, dp_src_out.sop, dp_src_out.eop);
+    dp_src_out.data  <= hton(dst_mac_addr(47 DOWNTO 16));
+    proc_ready_latency(c_tx_ready_latency, dp_clk, dp_src_in.ready, '1', '0', '0', dp_src_out.valid, dp_src_out.sop, dp_src_out.eop);
+    -- SRC MAC
+    dp_src_out.data  <= hton(src_mac_addr(31 DOWNTO 0));
+    proc_ready_latency(c_tx_ready_latency, dp_clk, dp_src_in.ready, '1', '0', '0', dp_src_out.valid, dp_src_out.sop, dp_src_out.eop);
+    -- SRC MAC & ETHERTYPE
+    dp_src_out.data  <= hton(src_mac_addr(47 DOWNTO 32)) & hton(c_eth_ethertype);
+    -- DATA
+    FOR I IN 0 TO c_nof_data_beats-1 LOOP
+      proc_ready_latency(c_tx_ready_latency, dp_clk, dp_src_in.ready, '1', '0', '0', dp_src_out.valid, dp_src_out.sop, dp_src_out.eop);
+      IF c_tx_data_type=0 THEN
+        -- data : X"01020304", X"05060708", X"090A0B0C", etc
+        FOR J IN c_tse_symbols_per_beat-1 DOWNTO 0 LOOP
+          v_sym := v_sym + 1;
+          dp_src_out.data((J+1)*c_tse_symbol_w-1 DOWNTO J*c_tse_symbol_w) <= STD_LOGIC_VECTOR(v_sym);
+        END LOOP;
+      ELSE
+        -- data : X"00000001", X"00000002", X"00000003", etc
+        v_num := v_num + 1;
+        dp_src_out.data <= STD_LOGIC_VECTOR(v_num);
+      END IF;
+      -- tb : pull valid low for some time during the middle of the payload
+      IF c_nof_tx_not_valid > 0 AND I=c_nof_data_beats/2 THEN
+        dp_src_out.valid <= '0';
+        FOR I IN 0 TO c_nof_tx_not_valid LOOP WAIT UNTIL rising_edge(dp_clk); END LOOP;
+        dp_src_out.valid <= '1';
+      END IF;
+    END LOOP;
+    IF c_empty > 0 THEN
+      dp_src_out.empty <= STD_LOGIC_VECTOR(TO_UNSIGNED(c_empty, c_tse_empty_w));
+      FOR J IN c_empty-1 DOWNTO 0 LOOP
+        dp_src_out.data((J+1)*c_tse_symbol_w-1 DOWNTO J*c_tse_symbol_w) <= (OTHERS=>'0');
+      END LOOP;
+    END IF;
+    proc_ready_latency(c_tx_ready_latency, dp_clk, dp_src_in.ready, '1', '0', '1', dp_src_out.valid, dp_src_out.sop, dp_src_out.eop);
+    dp_src_out.data  <= (OTHERS=>'0');
+    dp_src_out.valid <= '0';
+    dp_src_out.eop   <= '0';
+    dp_src_out.empty <= STD_LOGIC_VECTOR(TO_UNSIGNED(0, c_tse_empty_w));
+  END proc_tx_packet;
+
+  PROCEDURE proc_valid_sop(SIGNAL   clk       : IN  STD_LOGIC;
+                           SIGNAL   in_valid  : IN  STD_LOGIC;
+                           SIGNAL   in_sop    : IN  STD_LOGIC) IS
+  BEGIN
+    WAIT UNTIL rising_edge(clk);
+    WHILE in_valid /= '1' AND in_sop /= '1' LOOP
+      WAIT UNTIL rising_edge(clk);
+    END LOOP;
+  END proc_valid_sop;
+  
+  PROCEDURE proc_valid(SIGNAL   clk       : IN  STD_LOGIC;
+                       SIGNAL   in_valid  : IN  STD_LOGIC) IS
+  BEGIN
+    WAIT UNTIL rising_edge(clk);
+    WHILE in_valid /= '1' LOOP
+      WAIT UNTIL rising_edge(clk);
+    END LOOP;
+  END proc_valid;
+  
+  -- Receive packet
+  -- . Use word aligned payload data, so with half word inserted before the 14 byte header
+  -- . Packets can be always be received, assume the user application is always ready
+  -- . The CRC32 is also passed on to the user at eop.
+  -- . Note that when empty/=0 then the CRC32 is not word aligned, so therefore use prev_data to be able
+  --   to handle part of last data word in case empty/=0 at eop
+  PROCEDURE proc_rx_packet(CONSTANT dst_mac_addr : IN  STD_LOGIC_VECTOR(c_eth_dst_mac'RANGE);
+                           CONSTANT src_mac_addr : IN  STD_LOGIC_VECTOR(c_eth_src_mac'RANGE);
+                           CONSTANT ethertype    : IN  STD_LOGIC_VECTOR(c_eth_ethertype'RANGE);
+                           SIGNAL   dp_clk       : IN  STD_LOGIC;
+                           SIGNAL   dp_snk_in    : IN  t_tse_stream;
+                           SIGNAL   dp_snk_out   : OUT t_tse_stream) IS
+    VARIABLE v_sym            : UNSIGNED(c_tse_symbol_w-1 DOWNTO 0) := (OTHERS=>'0');
+    VARIABLE v_num            : UNSIGNED(c_tse_data_w-1 DOWNTO 0) := (OTHERS=>'0');
+    VARIABLE v_empty          : NATURAL;
+    VARIABLE v_first          : BOOLEAN := TRUE;
+    VARIABLE v_data           : STD_LOGIC_VECTOR(c_tse_data_w-1 DOWNTO 0);
+    VARIABLE v_prev_data      : STD_LOGIC_VECTOR(c_tse_data_w-1 DOWNTO 0);
+  BEGIN
+    -- Keep ff_rx_snk_out.ready='1' all the time
+    dp_snk_out.ready <= '1';
+    -- Verify DST MAC
+    proc_valid_sop(dp_clk, dp_snk_in.valid, dp_snk_in.sop);
+    ASSERT dp_snk_in.data(31 DOWNTO 16) = X"0000"                           REPORT "RX: Alignment half word not zero" SEVERITY ERROR;
+    ASSERT dp_snk_in.data(15 DOWNTO  0) = hton(dst_mac_addr(15 DOWNTO 0))   REPORT "RX: Wrong dst_mac_addr(15 DOWNTO 0)" SEVERITY ERROR;
+    proc_valid(dp_clk, dp_snk_in.valid);
+    ASSERT dp_snk_in.data(31 DOWNTO  0) = hton(dst_mac_addr(47 DOWNTO 16))  REPORT "RX: Wrong dst_mac_addr(47 DOWNTO 16)" SEVERITY ERROR;
+    -- Verify SRC MAC
+    proc_valid(dp_clk, dp_snk_in.valid);
+    ASSERT dp_snk_in.data(31 DOWNTO  0) = hton(src_mac_addr(31 DOWNTO 0))   REPORT "RX: Wrong src_mac_addr(31 DOWNTO 0)" SEVERITY ERROR;
+    -- Verify SRC MAC & ETHERTYPE
+    proc_valid(dp_clk, dp_snk_in.valid);
+    ASSERT dp_snk_in.data(31 DOWNTO 16) = hton(src_mac_addr(47 DOWNTO 32))  REPORT "RX: Wrong src_mac_addr(47 DOWNTO 32)" SEVERITY ERROR;
+    ASSERT dp_snk_in.data(15 DOWNTO  0) = hton(c_eth_ethertype)             REPORT "RX: Wrong ethertype" SEVERITY ERROR;
+    -- Verify DATA
+    v_first := TRUE;
+    proc_valid(dp_clk, dp_snk_in.valid);
+    WHILE dp_snk_in.eop /= '1' LOOP
+      v_prev_data := v_data;
+      v_data      := dp_snk_in.data;
+      IF v_first = FALSE THEN
+        IF c_tx_data_type=0 THEN
+          -- data : X"01020304", X"05060708", X"090A0B0C", etc
+          FOR J IN c_tse_symbols_per_beat-1 DOWNTO 0 LOOP
+            v_sym := v_sym + 1;
+            ASSERT UNSIGNED(v_prev_data((J+1)*c_tse_symbol_w-1 DOWNTO J*c_tse_symbol_w)) = v_sym REPORT "RX: Wrong data symbol" SEVERITY ERROR;
+          END LOOP;
+        ELSE
+          -- data : X"00000001", X"00000002", X"00000003", etc
+          v_num := v_num + 1;
+          ASSERT UNSIGNED(v_prev_data) = v_num REPORT "RX: Wrong data word" SEVERITY ERROR;
+        END IF;
+      END IF;
+      v_first := FALSE;
+      proc_valid(dp_clk, dp_snk_in.valid);
+    END LOOP;
+    -- Verify last DATA and CRC32 if empty /=0 else the last word is only the CRC32
+    v_prev_data := v_data;
+    v_data      := dp_snk_in.data;
+    v_empty     := TO_INTEGER(UNSIGNED(dp_snk_in.empty));
+    IF v_empty > 0 THEN
+      FOR J IN v_empty-1 DOWNTO 0 LOOP
+        v_prev_data((J+1)*c_tse_symbol_w-1 DOWNTO J*c_tse_symbol_w) := (OTHERS=>'0');
+      END LOOP;
+      IF c_tx_data_type=0 THEN
+        -- data : X"01020304", X"05060708", X"090A0B0C", etc
+        FOR J IN c_tse_symbols_per_beat-1 DOWNTO v_empty LOOP  -- ignore CRC32 symbols in last data word
+          v_sym := v_sym + 1;
+          ASSERT UNSIGNED(v_prev_data((J+1)*c_tse_symbol_w-1 DOWNTO J*c_tse_symbol_w)) = v_sym REPORT "RX: Wrong empty data symbol" SEVERITY ERROR;
+        END LOOP;
+      ELSE
+        -- data : X"00000001", X"00000002", X"00000003", etc
+        v_num := v_num + 1;
+        FOR J IN v_empty-1 DOWNTO 0 LOOP
+          v_num((J+1)*c_tse_symbol_w-1 DOWNTO J*c_tse_symbol_w) := (OTHERS=>'0');  -- force CRC32 symbols in last data word to 0
+        END LOOP;
+        ASSERT UNSIGNED(v_prev_data) = v_num REPORT "RX: Wrong empty data word" SEVERITY ERROR;
+      END IF;
+    ELSE
+      -- No verify on CRC32 word
+    END IF;
+  END proc_rx_packet;
+
+  
+  -- Clocks and reset
+  SIGNAL tb_end         : STD_LOGIC := '0';
+  SIGNAL eth_clk        : STD_LOGIC := '0';
+  SIGNAL sys_clk        : STD_LOGIC := '0';
+  SIGNAL dp_clk         : STD_LOGIC;
+  SIGNAL mm_clk         : STD_LOGIC;
+  SIGNAL mm_rst         : STD_LOGIC;
+  
+  -- TSE MAC control interface
+  SIGNAL mm_init        : STD_LOGIC := '1';                 
+  SIGNAL mm_miso        : t_mm_bus;  -- master in  slave out
+  SIGNAL mm_mosi        : t_mm_bus;  -- master out slave in
+  
+  SIGNAL pcs_rddata     : NATURAL;  -- [c_tse_pcs_data_w-1:0]
+             
+  SIGNAL tse_led_an     : STD_LOGIC;
+  SIGNAL tse_led_link   : STD_LOGIC;
+    
+  -- TSE MAC transmit interface
+  -- . Avalon ST source
+  SIGNAL ff_tx_src_in   : t_tse_stream;
+  SIGNAL ff_tx_src_out  : t_tse_stream;
+  -- . MAC specific
+  SIGNAL ff_tx_crc_fwd  : STD_LOGIC;
+  SIGNAL ff_tx_septy    : STD_LOGIC;
+  SIGNAL ff_tx_a_full   : STD_LOGIC;
+  SIGNAL ff_tx_a_empty  : STD_LOGIC;
+  SIGNAL ff_tx_uflow    : STD_LOGIC;
+  
+  -- TSE MAC receive interface
+  -- . Avalon ST sink
+  SIGNAL ff_rx_snk_in   : t_tse_stream;
+  SIGNAL ff_rx_snk_out  : t_tse_stream;
+  -- . MAC specific
+  SIGNAL ff_rx_ethertype: STD_LOGIC_VECTOR(c_tse_err_stat_w-1 DOWNTO 0);
+  SIGNAL ff_rx_frm_type : STD_LOGIC_VECTOR(c_tse_frm_type_w-1 DOWNTO 0);
+  SIGNAL ff_rx_dsav     : STD_LOGIC;
+  SIGNAL ff_rx_a_full   : STD_LOGIC;
+  SIGNAL ff_rx_a_empty  : STD_LOGIC;
+  
+  -- TSE PHY interface
+  SIGNAL eth_txp        : STD_LOGIC;
+  SIGNAL eth_rxp        : STD_LOGIC;
+  
+  -- Verification
+  SIGNAL tx_pkt_cnt     : NATURAL := 0;
+  SIGNAL rx_pkt_cnt     : NATURAL := 0;
+  
+  -- Debug signals to combine valid in and out of records
+  SIGNAL dbg_mm         : t_mm_bus;
+  SIGNAL dbg_ff_tx      : t_tse_stream;
+  SIGNAL dbg_ff_rx      : t_tse_stream;
+  
+BEGIN
+
+  eth_clk <= NOT eth_clk AFTER eth_clk_period/2;  -- TSE reference clock
+  sys_clk <= NOT sys_clk AFTER sys_clk_period/2;  -- System clock
+
+  mm_clk  <= sys_clk;
+  dp_clk  <= sys_clk;
+  
+  -- Debug signals to combine valid in and out of records
+  proc_dbg_mm_bus(        mm_miso,      mm_mosi,       dbg_mm);
+  proc_dbg_tse_stream_src(ff_tx_src_in, ff_tx_src_out, dbg_ff_tx);
+  proc_dbg_tse_stream_snk(ff_rx_snk_in, ff_rx_snk_out, dbg_ff_rx);
+  
+  -- run 1 us
+  p_mm_stimuli : PROCESS
+  BEGIN
+    mm_init  <= '1';
+    mm_mosi.wr <= '0';
+    mm_mosi.rd <= '0';
+    
+    -- reset release
+    mm_rst <= '1';
+    FOR I IN 0 TO 9 LOOP WAIT UNTIL rising_edge(mm_clk); END LOOP;
+    mm_rst <= '0';
+    FOR I IN 0 TO 9 LOOP WAIT UNTIL rising_edge(mm_clk); END LOOP;
+    
+    -- PSC control
+    proc_rd_pcs(16#22#, pcs_rddata, mm_clk, mm_miso, mm_mosi);  -- REV --> 0x0901
+    proc_wr_pcs(16#28#,   16#0008#, mm_clk, mm_miso, mm_mosi);  -- IF_MODE <-- Force 1GbE, no autonegatiation
+    proc_rd_pcs(16#00#, pcs_rddata, mm_clk, mm_miso, mm_mosi);  -- CONTROL --> 0x1140
+    proc_rd_pcs(16#02#, pcs_rddata, mm_clk, mm_miso, mm_mosi);  -- STATUS --> 0x000D
+    proc_wr_pcs(16#00#,   16#0140#, mm_clk, mm_miso, mm_mosi);  -- CONTROL <-- Auto negotiate disable
+    
+    -- MAC control
+    proc_rd_mac(16#000#, pcs_rddata, mm_clk, mm_miso, mm_mosi);  -- REV --> CUST_VERSION & 0x0901
+    IF c_tse_promis_en=FALSE THEN
+      proc_wr_mac(16#008#, 16#0100004B#, mm_clk, mm_miso, mm_mosi);
+    ELSE
+      proc_wr_mac(16#008#, 16#0100005B#, mm_clk, mm_miso, mm_mosi);
+    END IF;
+      -- COMMAND_CONFIG <--
+      -- Only the bits relevant to UniBoard are explained here, others are 0
+      -- [    0] = TX_ENA             = 1, enable tx datapath
+      -- [    1] = RX_ENA             = 1, enable rx datapath
+      -- [    2] = XON_GEN            = 0
+      -- [    3] = ETH_SPEED          = 1, enable 1GbE operation
+      -- [    4] = PROMIS_EN          = 0, when 1 then receive all frames
+      -- [    5] = PAD_EN             = 0, when 1 enable receive padding removal (requires ethertype=payload length)
+      -- [    6] = CRC_FWD            = 1, enable receive CRC forward
+      -- [    7] = PAUSE_FWD          = 0
+      -- [    8] = PAUSE_IGNORE       = 0
+      -- [    9] = TX_ADDR_INS        = 0, when 1 then MAX overwrites tx SRC MAC with mac_0,1 or one of the supplemental mac
+      -- [   10] = HD_ENA             = 0
+      -- [   11] = EXCESS_COL         = 0
+      -- [   12] = LATE_COL           = 0
+      -- [   13] = SW_RESET           = 0, when 1 MAC disables tx and rx, clear statistics and flushes receive FIFO
+      -- [   14] = MHAS_SEL           = 0, select multicast address resolutions hash-code mode
+      -- [   15] = LOOP_ENA           = 0
+      -- [18-16] = TX_ADDR_SEL[2:0]   = 000, TX_ADDR_INS insert mac_0,1 or one of the supplemental mac
+      -- [   19] = MAGIC_EN           = 0
+      -- [   20] = SLEEP              = 0
+      -- [   21] = WAKEUP             = 0
+      -- [   22] = XOFF_GEN           = 0
+      -- [   23] = CNT_FRM_ENA        = 0
+      -- [   24] = NO_LGTH_CHECK      = 1, when 0 then check payload length of received frames (requires ethertype=payload length)
+      -- [   25] = ENA_10             = 0
+      -- [   26] = RX_ERR_DISC        = 0, when 1 then discard erroneous frames (requires store and forward mode, so rx_section_full=0)
+      --                                   when 0 then pass on with rx_err[0]=1
+      -- [   27] = DISABLE_RD_TIMEOUT = 0
+      -- [30-28] = RSVD               = 000
+      -- [   31] = CNT_RESET          = 0, when 1 clear statistics
+    proc_wr_mac(16#00C#, 16#56789ABC#, mm_clk, mm_miso, mm_mosi);  -- MAC_0
+    proc_wr_mac(16#010#, 16#00001234#, mm_clk, mm_miso, mm_mosi);  -- MAC_1 <-- SRC_MAC = 12-34-56-78-9A-BC
+    proc_wr_mac(16#05C#, 16#0000000C#, mm_clk, mm_miso, mm_mosi);  -- TX_IPG_LENGTH <-- interpacket gap = 12
+    proc_wr_mac(16#014#, 16#000005EE#, mm_clk, mm_miso, mm_mosi);  -- FRM_LENGTH <-- receive max frame length = 1518
+    
+    -- FIFO legenda:
+    -- . Tx section full  = There is enough data in the FIFO to start reading it, when 0 then store and forward.
+    -- . Rx section full  = There is enough data in the FIFO to start reading it, when 0 then store and forward.
+    -- . Tx section empty = There is not much empty space anymore in the FIFO, warn user via ff_tx_septy
+    -- . Rx section empty = There is not much empty space anymore in the FIFO, inform remote device via XOFF flow control
+    -- . Tx almost full   = Assert ff_tx_a_full and deassert ff_tx_rdy. Furthermore TX_ALMOST_FULL = c_tx_ready_latency+3,
+    --                      so choose 3 for zero tx ready latency
+    -- . Rx almost full   = Assert ff_rx_a_full and if the user is not ready ff_rx_rdy then:
+    --                      --> break off the reception with an error to avoid FIFO overflow
+    -- . Tx almost empty  = Assert ff_tx_a_empty and if the FIFO does not contain a eop yet then:
+    --                      --> break off the transmission with an error to avoid FIFO underflow
+    -- . Rx almost empty  = Assert ff_rx_a_empty
+    -- Typical FIFO values:
+    -- . TX_SECTION_FULL  = 16   > 8   = TX_ALMOST_EMPTY
+    -- . RX_SECTION_FULL  = 16   > 8   = RX_ALMOST_EMPTY
+    -- . TX_SECTION_EMPTY = D-16 < D-3 = Tx FIFO depth - TX_ALMOST_FULL
+    -- . RX_SECTION_EMPTY = D-16 < D-8 = Rx FIFO depth - RX_ALMOST_FULL
+    -- . c_tse_tx_fifo_depth = 1 M9K = 256*32b = 1k * 8b is sufficient when the Tx user respects ff_tx_rdy, to store a complete
+    --                         ETH packet would require 1518 byte, so 2 M9K = 2k * 8b
+    -- . c_tse_rx_fifo_depth = 1 M9K = 256*32b = 1k * 8b is sufficient when the Rx user ff_rx_rdy is sufficiently active
+    proc_wr_mac(16#01C#, c_tse_rx_fifo_depth-16, mm_clk, mm_miso, mm_mosi);  -- RX_SECTION_EMPTY <-- default FIFO depth - 16, >3
+    proc_wr_mac(16#020#,                     16, mm_clk, mm_miso, mm_mosi);  -- RX_SECTION_FULL  <-- default 16
+    proc_wr_mac(16#024#, c_tse_tx_fifo_depth-16, mm_clk, mm_miso, mm_mosi);  -- TX_SECTION_EMPTY <-- default FIFO depth - 16, >3
+    proc_wr_mac(16#028#,                     16, mm_clk, mm_miso, mm_mosi);  -- TX_SECTION_FULL  <-- default 16, >~ 8 otherwise no tx
+    proc_wr_mac(16#02C#,                      8, mm_clk, mm_miso, mm_mosi);  -- RX_ALMOST_EMPTY  <-- default 8
+    proc_wr_mac(16#030#,                      8, mm_clk, mm_miso, mm_mosi);  -- RX_ALMOST_FULL   <-- default 8
+    proc_wr_mac(16#034#,                      8, mm_clk, mm_miso, mm_mosi);  -- TX_ALMOST_EMPTY  <-- default 8
+    proc_wr_mac(16#038#,   c_tx_ready_latency+3, mm_clk, mm_miso, mm_mosi);  -- TX_ALMOST_FULL   <-- default 3
+    
+    proc_rd_mac(16#0E8#, pcs_rddata, mm_clk, mm_miso, mm_mosi);  -- TX_CMD_STAT --> 0x00040000 : [18]=1 TX_SHIFT16, [17]=0 OMIT_CRC
+    proc_rd_mac(16#0EC#, pcs_rddata, mm_clk, mm_miso, mm_mosi);  -- RX_CMD_STAT --> 0x02000000 : [25]=1 RX_SHIFT16
+    
+    WAIT UNTIL rising_edge(mm_clk);
+    mm_init <= '0';
+    
+    WAIT;
+  END PROCESS;
+
+  p_tx_frame : PROCESS
+  BEGIN
+    -- . Avalon ST
+    ff_tx_src_out.data  <= (OTHERS=>'0');
+    ff_tx_src_out.valid <= '0';
+    ff_tx_src_out.sop   <= '0';
+    ff_tx_src_out.eop   <= '0';
+    ff_tx_src_out.empty <= (OTHERS=>'0');
+    ff_tx_src_out.err   <= (OTHERS=>'0');
+    -- . MAC specific
+    ff_tx_crc_fwd <= '0';
+    
+    WHILE mm_init/='0' LOOP
+      WAIT UNTIL rising_edge(dp_clk);
+    END LOOP;
+    WHILE tse_led_link/='1' LOOP
+      WAIT UNTIL rising_edge(dp_clk);
+    END LOOP;
+    FOR I IN 0 TO 9 LOOP WAIT UNTIL rising_edge(dp_clk); END LOOP;
+    
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac, "0000000000010000",   16, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype,   16, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 16, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1500, dp_clk, ff_tx_src_in, ff_tx_src_out);
+    proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1499, dp_clk, ff_tx_src_in, ff_tx_src_out);  -- verify st empty
+    proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1500, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1500, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1500, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1500, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1500, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1500, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1500, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1500, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1500, dp_clk, ff_tx_src_in, ff_tx_src_out);
+--     proc_tx_packet(c_eth_src_mac, c_eth_src_mac,    c_eth_ethertype, 1500, dp_clk, ff_tx_src_in, ff_tx_src_out);
+    
+    FOR I IN 0 TO 1500 * 2 LOOP WAIT UNTIL rising_edge(dp_clk); END LOOP;
+    tb_end <= '1';
+    WAIT;
+  END PROCESS;
+  
+  p_rx_frame : PROCESS
+  BEGIN
+    -- . Avalon ST
+    ff_rx_snk_out.ready <= '0';
+    
+    WHILE mm_init/='0' LOOP
+      WAIT UNTIL rising_edge(dp_clk);
+    END LOOP;
+    
+    -- Receive forever
+    WHILE TRUE LOOP
+      proc_rx_packet(c_eth_src_mac, c_eth_src_mac, c_eth_ethertype, dp_clk, ff_rx_snk_in, ff_rx_snk_out);
+    END LOOP;
+    
+    WAIT;
+  END PROCESS;
+  
+  dut : ENTITY work.ip_arria10_e2sg_tse_sgmii_lvds
+    -- The ip_arria10_e2sg_tse_sgmii_lvds needs to be regenerated if its parameters are changed.
+    -- . ENABLE_SHIFT16  = 1   : Align packet headers to 32 bit, useful for Nios data handling
+    -- . ENABLE_SUP_ADDR = 0   : An extra MAC addresses can e.g. be used as service MAC for tests
+    -- . ENA_HASH        = 0   : A multi cast hash table can be used to address all nodes at once
+    -- . STAT_CNT_ENA    = 0   : PHY statistics counts are useful for monitoring, but not realy needed
+    -- . EG_FIFO         = 256 : Tx FIFO depth in nof 32 bit words (256 --> 1 M9K)
+    -- . ING_FIFO        = 256 : Rx FIFO depth in nof 32 bit words (256 --> 1 M9K)
+  PORT MAP (
+    -- MAC transmit interface
+    -- . Avalon ST
+    ff_tx_clk      => dp_clk,               -- : in  std_logic                     := '0';             --     transmit_clock_connection.clk
+    ff_tx_rdy      => ff_tx_src_in.ready,   -- : out std_logic;                                        --                              .ready
+    ff_tx_data     => ff_tx_src_out.data,   -- : in  std_logic_vector(31 downto 0) := (others => '0'); --                      transmit.data
+    ff_tx_wren     => ff_tx_src_out.valid,  -- : in  std_logic                     := '0';             --                              .valid
+    ff_tx_sop      => ff_tx_src_out.sop,    -- : in  std_logic                     := '0';             --                              .startofpacket
+    ff_tx_eop      => ff_tx_src_out.eop,    -- : in  std_logic                     := '0';             --                              .endofpacket
+    ff_tx_mod      => ff_tx_src_out.empty,  -- : in  std_logic_vector(1 downto 0)  := (others => '0'); --                              .empty
+    ff_tx_err      => ff_tx_src_out.err(0), -- : in  std_logic                     := '0';             --                              .error
+    -- . MAC specific
+    ff_tx_crc_fwd  => ff_tx_crc_fwd,        -- : in  std_logic                     := '0';             --           mac_misc_connection.ff_tx_crc_fwd     -- when '0' MAC inserts CRC32 after eop
+    ff_tx_septy    => ff_tx_septy,          -- : out std_logic;                                        --                              .ff_tx_septy       -- when '0' then tx FIFO goes above section-empty threshold
+    ff_tx_a_full   => ff_tx_a_full,         -- : out std_logic;                                        --                              .ff_tx_a_full      -- when '1' then tx FIFO goes above almost-full threshold 
+    ff_tx_a_empty  => ff_tx_a_empty,        -- : out std_logic;                                        --                              .ff_tx_a_empty     -- when '1' then tx FIFO goes below almost-empty threshold
+    tx_ff_uflow    => ff_tx_uflow,          -- : out std_logic;                                        --                              .tx_ff_uflow       -- when '1' then tx FIFO underflow
+    -- MAC receive interface
+    -- . Avalon STs
+    ff_rx_clk      => dp_clk,               -- : in  std_logic                     := '0';             --      receive_clock_connection.clk
+    ff_rx_rdy      => ff_rx_snk_out.ready,  -- : in  std_logic                     := '0';             --                              .ready
+    ff_rx_data     => ff_rx_snk_in.data,    -- : out std_logic_vector(31 downto 0);                    --                       receive.data
+    ff_rx_dval     => ff_rx_snk_in.valid,   -- : out std_logic;                                        --                              .valid
+    ff_rx_sop      => ff_rx_snk_in.sop,     -- : out std_logic;                                        --                              .startofpacket
+    ff_rx_eop      => ff_rx_snk_in.eop,     -- : out std_logic;                                        --                              .endofpacket
+    ff_rx_mod      => ff_rx_snk_in.empty,   -- : out std_logic_vector(1 downto 0);                     --                              .empty
+    rx_err         => ff_rx_snk_in.err,     -- : out std_logic_vector(5 downto 0);                     --                              .error
+                                            -- [5] collision error (can only occur in half duplex mode)
+                                            -- [4] PHY error on GMII
+                                            -- [3] receive frame truncated due to FIFO overflow
+                                            -- [2] CRC-32 error
+                                            -- [1] invalid length
+                                            -- [0] = OR of [1:5]
+    -- . MAC specific
+    rx_err_stat    => ff_rx_ethertype,      -- : out std_logic_vector(17 downto 0);                    --                              .rx_err_stat      -- [17,16] VLAN info, [15:0] Ethernet lentgh/type field
+    rx_frm_type    => ff_rx_frm_type,       -- : out std_logic_vector(3 downto 0);                     --                              .rx_frm_type      -- [3]=VLAN, [2]=Broadcast, [1]=Multicast, [0]=Unicast
+    ff_rx_dsav     => ff_rx_dsav,           -- : out std_logic;                                        --                              .ff_rx_dsav       -- rx frame available, but not necessarily a complete frame
+    ff_rx_a_full   => ff_rx_a_full,         -- : out std_logic;                                        --                              .ff_rx_a_full     -- when '1' then rx FIFO goes above almost-full threshold 
+    ff_rx_a_empty  => ff_rx_a_empty,        -- : out std_logic;                                        --                              .ff_rx_a_empty    -- when '1' sthen rx FIFO goes below almost-empty threshold
+    -- Reset
+    reset          => mm_rst,               -- : in  std_logic                     := '0';             --              reset_connection.reset            -- asynchronous reset (choose synchronous to mm_clk)
+    -- MM control interface
+    clk            => mm_clk,               -- : in  std_logic                     := '0';             -- control_port_clock_connection.clk
+    reg_addr       => mm_mosi.address(c_tse_byte_addr_w-1 DOWNTO 2),  -- : in  std_logic_vector(7 downto 0)  := (others => '0'); --                              .address
+    reg_data_out   => mm_miso.rddata,                                 -- : out std_logic_vector(31 downto 0);                    --                  control_port.readdata
+    reg_rd         => mm_mosi.rd,                                     -- : in  std_logic                     := '0';             --                              .read
+    reg_data_in    => mm_mosi.wrdata,                                 -- : in  std_logic_vector(31 downto 0) := (others => '0'); --                              .writedata
+    reg_wr         => mm_mosi.wr,                                     -- : in  std_logic                     := '0';             --                              .write
+    reg_busy       => mm_miso.waitreq,                                -- : out std_logic;                                        --                              .waitrequest
+    -- Status LEDs
+    led_an         => tse_led_an,           -- : out std_logic;                                        --                              .an        -- '1' = autonegation completed
+    led_link       => tse_led_link,         -- : out std_logic;                                        --                              .link      -- '1' = successful link synchronisation
+    led_disp_err   => OPEN,                 -- : out std_logic;                                        --                              .disp_err  -- TBI character error
+    led_char_err   => OPEN,                 -- : out std_logic;                                        --                              .char_err  -- TBI disparity errorreceived
+    led_crs        => OPEN,                 -- : out std_logic;                                        --         status_led_connection.crs
+    led_col        => OPEN,                 -- : out std_logic;                                        --                              .col
+    -- Serial 1.25 Gbps
+    rx_recovclkout => OPEN,                 -- : out std_logic;                                        --     serdes_control_connection.export
+    ref_clk        => eth_clk,              -- : in  std_logic                     := '0';             --  pcs_ref_clk_clock_connection.clk
+    txp            => eth_txp,              -- : out std_logic                                         --                              .txp_0
+    rxp            => eth_rxp               -- : in  std_logic                     := '0';             --             serial_connection.rxp_0
+  );
+    
+  -- Loopback
+  eth_rxp <= eth_txp;
+  
+  -- Verification
+  tx_pkt_cnt <= tx_pkt_cnt + 1 WHEN ff_tx_src_out.sop='1' AND rising_edge(dp_clk);
+  rx_pkt_cnt <= rx_pkt_cnt + 1 WHEN ff_rx_snk_in.eop='1'  AND rising_edge(dp_clk);
+  
+  p_tb_end : PROCESS  
+  BEGIN
+    WAIT UNTIL tb_end='1';
+    
+    -- Verify that all transmitted packets have been received
+    IF tx_pkt_cnt=0 THEN
+      REPORT "No packets were transmitted." SEVERITY ERROR;
+    ELSIF rx_pkt_cnt=0 THEN
+      REPORT "No packets were received." SEVERITY ERROR;
+    ELSIF tx_pkt_cnt/=rx_pkt_cnt THEN
+      REPORT "Not all transmitted packets were received." SEVERITY ERROR;
+    END IF;
+    
+    -- Stop the simulation
+    ASSERT FALSE REPORT "Simulation finished." SEVERITY FAILURE;
+    WAIT;
+  END PROCESS;
+  
+END tb;
diff --git a/libraries/technology/ip_arria10_e2sg/voltage_sense/compile_ip.tcl b/libraries/technology/ip_arria10_e2sg/voltage_sense/compile_ip.tcl
new file mode 100644
index 0000000000000000000000000000000000000000..574c7ff82e22cdf84668ea0c7d8894ff820c29de
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/voltage_sense/compile_ip.tcl
@@ -0,0 +1,47 @@
+#------------------------------------------------------------------------------
+#
+# Copyright (C) 2017
+# 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.
+
+#vlib ./work/         ;# Assume library work already exist                                                                                        
+
+
+set IP_DIR   "$env(RADIOHDL_BUILD_DIR)/$env(BUILDSET)/qsys-generate/ip_arria10_e2sg_voltage_sense/sim"
+
+vmap  ip_arria10_e2sg_voltage_sense          ./work/
+vmap  altera_voltage_sensor_194              ./work/
+vmap  altera_voltage_sensor_control_194      ./work/
+vmap  altera_voltage_sensor_sample_store_194 ./work/
+
+
+  vlog -sv  "$IP_DIR/../altera_voltage_sensor_control_194/sim/mentor/altera_voltage_sensor_control.sv"                     -work altera_voltage_sensor_control_194     
+  vlog -sv  "$IP_DIR/../altera_voltage_sensor_control_194/sim/mentor/voltage_sensor_avalon_controlr.sv"                    -work altera_voltage_sensor_control_194     
+  vlog -sv  "$IP_DIR/../altera_voltage_sensor_control_194/sim/mentor/voltage_sensor_wrapper.sv"                            -work altera_voltage_sensor_control_194     
+  vlog -sv  "$IP_DIR/../altera_voltage_sensor_sample_store_194/sim/mentor/altera_voltage_sensor_sample_store.sv"           -work altera_voltage_sensor_sample_store_194
+  vlog -sv  "$IP_DIR/../altera_voltage_sensor_sample_store_194/sim/mentor/altera_voltage_sensor_sample_store_ram.sv"       -work altera_voltage_sensor_sample_store_194
+  vlog -sv  "$IP_DIR/../altera_voltage_sensor_sample_store_194/sim/mentor/altera_voltage_sensor_sample_store_register.sv"  -work altera_voltage_sensor_sample_store_194
+  vcom      "$IP_DIR/../altera_voltage_sensor_194/sim/ip_arria10_e2sg_voltage_sense_altera_voltage_sensor_194_bqre2vy.vhd" -work altera_voltage_sensor_194             
+  vcom      "$IP_DIR/ip_arria10_e2sg_voltage_sense.vhd"                                                                    -work ip_arria10_e2sg_voltage_sense         
diff --git a/libraries/technology/ip_arria10_e2sg/voltage_sense/hdllib.cfg b/libraries/technology/ip_arria10_e2sg/voltage_sense/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..fd5645bdb7cc84ad3c1a1047f015593b812697db
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/voltage_sense/hdllib.cfg
@@ -0,0 +1,25 @@
+hdl_lib_name = ip_arria10_e2sg_voltage_sense 
+hdl_library_clause_name = ip_arria10_e2sg_voltage_sense_altera_voltage_sense_194
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = 
+hdl_lib_technology = ip_arria10_e2sg
+
+synth_files =
+    
+test_bench_files = 
+
+
+[modelsim_project_file]
+# There is no simulation model for the FPGA voltage sensor IP
+#modelsim_compile_ip_files =
+#    $RADIOHDL_WORK/libraries/technology/ip_arria10_e2sg/voltage_sense/compile_ip.tcl
+
+
+[quartus_project_file]
+quartus_qip_files = 
+    $RADIOHDL_BUILD_DIR/<buildset_name>/qsys-generate/ip_arria10_e2sg_voltage_sense/ip_arria10_e2sg_voltage_sense.qip
+
+[generate_ip_libs]
+qsys-generate_ip_files = 
+    ip_arria10_e2sg_voltage_sense.qsys
+
diff --git a/libraries/technology/ip_arria10_e2sg/voltage_sense/ip_arria10_e2sg_voltage_sense.qsys b/libraries/technology/ip_arria10_e2sg/voltage_sense/ip_arria10_e2sg_voltage_sense.qsys
new file mode 100644
index 0000000000000000000000000000000000000000..bb8535c56275a0ef6b115a2575f25b333b9583f7
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/voltage_sense/ip_arria10_e2sg_voltage_sense.qsys
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<system name="ip_arria10_e2sg_voltage_sense">
+ <component
+   name="$${FILENAME}"
+   displayName="$${FILENAME}"
+   version="1.0"
+   description=""
+   tags="AUTHORSHIP=Intel Corporation /// INTERNAL_COMPONENT=true"
+   categories="System"
+   tool="QsysStandard" />
+ <parameter name="bonusData"><![CDATA[bonusData 
+{
+   element $system
+   {
+   }
+   element voltage_sensor_0
+   {
+      datum _sortIndex
+      {
+         value = "0";
+         type = "int";
+      }
+   }
+}
+]]></parameter>
+ <parameter name="device" value="10AX115U3F45E2SG" />
+ <parameter name="deviceFamily" value="Arria 10" />
+ <parameter name="deviceSpeedGrade" value="2" />
+ <parameter name="fabricMode" value="QSYS" />
+ <parameter name="generateLegacySim" value="false" />
+ <parameter name="generationId" value="0" />
+ <parameter name="globalResetBus" value="false" />
+ <parameter name="hdlLanguage" value="VERILOG" />
+ <parameter name="hideFromIPCatalog" value="true" />
+ <parameter name="lockedInterfaceDefinition" value="" />
+ <parameter name="sopcBorderPoints" value="false" />
+ <parameter name="systemHash" value="0" />
+ <parameter name="systemInfos"><![CDATA[<systemInfosDefinition>
+    <connPtSystemInfos>
+        <entry>
+            <key>controller_csr</key>
+            <value>
+                <connectionPointName>controller_csr</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>ADDRESS_MAP</key>
+                        <value>&lt;address-map&gt;&lt;slave name='controller_csr' start='0x0' end='0x8' datawidth='32' /&gt;&lt;/address-map&gt;</value>
+                    </entry>
+                    <entry>
+                        <key>ADDRESS_WIDTH</key>
+                        <value>3</value>
+                    </entry>
+                    <entry>
+                        <key>MAX_SLAVE_DATA_WIDTH</key>
+                        <value>32</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+        <entry>
+            <key>sample_store_csr</key>
+            <value>
+                <connectionPointName>sample_store_csr</connectionPointName>
+                <suppliedSystemInfos/>
+                <consumedSystemInfos>
+                    <entry>
+                        <key>ADDRESS_MAP</key>
+                        <value>&lt;address-map&gt;&lt;slave name='sample_store_csr' start='0x0' end='0x40' datawidth='32' /&gt;&lt;/address-map&gt;</value>
+                    </entry>
+                    <entry>
+                        <key>ADDRESS_WIDTH</key>
+                        <value>6</value>
+                    </entry>
+                    <entry>
+                        <key>MAX_SLAVE_DATA_WIDTH</key>
+                        <value>32</value>
+                    </entry>
+                </consumedSystemInfos>
+            </value>
+        </entry>
+    </connPtSystemInfos>
+</systemInfosDefinition>]]></parameter>
+ <parameter name="systemScripts" value="" />
+ <parameter name="testBenchDutName" value="" />
+ <parameter name="timeStamp" value="0" />
+ <parameter name="useTestBenchNamingPattern" value="false" />
+ <instanceScript></instanceScript>
+ <interface name="clock" internal="voltage_sensor_0.clock" type="clock" dir="end">
+  <port name="clock_clk" internal="clock_clk" />
+ </interface>
+ <interface
+   name="controller_csr"
+   internal="voltage_sensor_0.controller_csr"
+   type="avalon"
+   dir="end">
+  <port name="controller_csr_address" internal="controller_csr_address" />
+  <port name="controller_csr_read" internal="controller_csr_read" />
+  <port name="controller_csr_readdata" internal="controller_csr_readdata" />
+  <port name="controller_csr_write" internal="controller_csr_write" />
+  <port name="controller_csr_writedata" internal="controller_csr_writedata" />
+ </interface>
+ <interface
+   name="reset_sink"
+   internal="voltage_sensor_0.reset_sink"
+   type="reset"
+   dir="end">
+  <port name="reset_sink_reset" internal="reset_sink_reset" />
+ </interface>
+ <interface
+   name="sample_store_csr"
+   internal="voltage_sensor_0.sample_store_csr"
+   type="avalon"
+   dir="end">
+  <port name="sample_store_csr_address" internal="sample_store_csr_address" />
+  <port name="sample_store_csr_read" internal="sample_store_csr_read" />
+  <port name="sample_store_csr_readdata" internal="sample_store_csr_readdata" />
+  <port name="sample_store_csr_write" internal="sample_store_csr_write" />
+  <port
+     name="sample_store_csr_writedata"
+     internal="sample_store_csr_writedata" />
+ </interface>
+ <interface
+   name="sample_store_irq"
+   internal="voltage_sensor_0.sample_store_irq"
+   type="interrupt"
+   dir="end">
+  <port name="sample_store_irq_irq" internal="sample_store_irq_irq" />
+ </interface>
+ <module
+   name="voltage_sensor_0"
+   kind="altera_voltage_sensor"
+   version="19.1.0"
+   enabled="1"
+   autoexport="1">
+  <parameter name="AUTO_DEVICE" value="10AX115U3F45E2SG" />
+  <parameter name="AUTO_DEVICE_FAMILY" value="Arria 10" />
+  <parameter name="AUTO_DEVICE_SPEEDGRADE" value="2" />
+  <parameter name="CORE_VAR" value="0" />
+  <parameter name="MEM_TYPE" value="0" />
+ </module>
+</system>
diff --git a/libraries/technology/jesd204b/hdllib.cfg b/libraries/technology/jesd204b/hdllib.cfg
index b2666b1f15aece3806f8b35aa8212e0473fd6471..527eb616fd1e5bf8b5ef40d71c7dd46832af8c31 100644
--- a/libraries/technology/jesd204b/hdllib.cfg
+++ b/libraries/technology/jesd204b/hdllib.cfg
@@ -1,15 +1,18 @@
 hdl_lib_name = tech_jesd204b
 hdl_library_clause_name = tech_jesd204b_lib
-hdl_lib_uses_synth = technology common dp ip_arria10_e1sg_jesd204b
-hdl_lib_uses_ip = ip_arria10_e1sg_jesd204b
+hdl_lib_uses_synth = technology common dp
+hdl_lib_uses_ip = ip_arria10_e1sg_jesd204b ip_arria10_e2sg_jesd204b
 hdl_lib_uses_sim = 
-hdl_lib_technology = 
+#hdl_lib_technology = ip_arria10_e1sg ip_arria10_e2sg
+hdl_lib_technology =
 hdl_lib_disclose_library_clause_names =
-    ip_arria10_e1sg_jesd204b   ip_arria10_e1sg_jesd204b_alt_em10g32_180
+    ip_arria10_e1sg_jesd204b   ip_arria10_e1sg_jesd204b_180
+    ip_arria10_e2sg_jesd204b   ip_arria10_e2sg_jesd204b_194
 
 synth_files =
    tech_jesd204b_component_pkg.vhd
    tech_jesd204b_arria10_e1sg.vhd
+   tech_jesd204b_arria10_e2sg.vhd
    tech_jesd204b.vhd
 
 test_bench_files =
diff --git a/libraries/technology/jesd204b/tech_jesd204b.vhd b/libraries/technology/jesd204b/tech_jesd204b.vhd
index a301517a16297967fbcb88f400980baae3b48c30..3f9277b48a7329ef1dccfb00f6f2ddf694a00327 100644
--- a/libraries/technology/jesd204b/tech_jesd204b.vhd
+++ b/libraries/technology/jesd204b/tech_jesd204b.vhd
@@ -117,4 +117,33 @@ BEGIN
     );
   END GENERATE;
 
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+    u0 : ENTITY work.tech_jesd204b_arria10_e2sg
+    GENERIC MAP(
+      g_sim                => g_sim,                
+      g_sim_level          => g_sim_level,          
+      g_nof_channels       => g_nof_channels,      
+      g_direction          => g_direction
+    )
+    PORT MAP(
+      jesd204b_refclk      => jesd204b_refclk,   
+      jesd204b_sysref      => jesd204b_sysref,   
+      jesd204b_sync_n_arr  => jesd204b_sync_n_arr,   
+  
+      rx_src_out_arr       => rx_src_out_arr,          
+      jesd204b_frame_clk   => jesd204b_frame_clk,          
+  
+      -- MM
+      mm_clk               => mm_clk,           
+      mm_rst               => mm_rst,           
+  
+      jesd204b_mosi        => jesd204b_mosi,         
+      jesd204b_miso        => jesd204b_miso,         
+  
+       -- Serial
+      serial_tx_arr        => serial_tx_arr,
+      serial_rx_arr        => serial_rx_arr
+    );
+  END GENERATE;
+
 END str;
diff --git a/libraries/technology/jesd204b/tech_jesd204b_arria10_e2sg.vhd b/libraries/technology/jesd204b/tech_jesd204b_arria10_e2sg.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..b1476dadaf00c34d07943cb7d05dd7909328d112
--- /dev/null
+++ b/libraries/technology/jesd204b/tech_jesd204b_arria10_e2sg.vhd
@@ -0,0 +1,99 @@
+--------------------------------------------------------------------------------
+--
+-- 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/>.
+--
+--------------------------------------------------------------------------------
+
+
+-- Purpose: Wrapper for the Intel Arria 10 e2sg (unb2b, unb2c) tecnology version of the
+--   JESD204b interface for ADCs and DACs
+-- Description 
+--   
+--  
+
+LIBRARY IEEE, common_lib, dp_lib, technology_lib, ip_arria10_e2sg_jesd204b_lib;
+USE IEEE.STD_LOGIC_1164.ALL;
+USE technology_lib.technology_pkg.ALL;
+USE common_lib.common_pkg.ALL;
+USE common_lib.common_mem_pkg.ALL;
+USE dp_lib.dp_stream_pkg.ALL;
+USE work.tech_jesd204b_component_pkg.ALL;
+
+ENTITY tech_jesd204b_arria10_e2sg IS
+  GENERIC (
+    g_sim                 : BOOLEAN := FALSE;
+    g_sim_level           : NATURAL := 0;     -- 0 = use IP; 1 = use fast serdes model
+    g_nof_channels        : NATURAL := 12;
+    g_direction           : STRING := "RX_ONLY"  -- "TX_RX", "TX_ONLY", "RX_ONLY"
+  );
+  PORT (
+    -- JESD204B external signals
+    jesd204b_refclk       : IN STD_LOGIC := '0';                             -- Reference clock. For AD9683 use 200MHz direct from clock reference pin
+    jesd204b_sysref       : IN STD_LOGIC := '0';                             -- SYSREF should drive ADC and FPGA with correct phase wrt jesd204b_device_clk 
+    jesd204b_sync_n_arr   : OUT STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0); -- output to control ADC initialization/syncronization phase
+    
+    -- Data to fabric
+    rx_src_out_arr        : OUT t_dp_sosi_arr(g_nof_channels-1 DOWNTO 0);    -- Parallel data out to fabric
+    jesd204b_frame_clk    : OUT  STD_LOGIC := '0';                           -- Regenerated data clock to fabric
+
+    -- MM Control
+    mm_clk                : IN  STD_LOGIC;
+    mm_rst                : IN  STD_LOGIC;
+         
+    jesd204b_mosi         : IN  t_mem_mosi;         --  mm control
+    jesd204b_miso         : OUT t_mem_miso; 
+    
+    -- Serial connections to transceiver pins
+    serial_tx_arr         : OUT STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0);      -- Not used for ADC
+    serial_rx_arr         : IN  STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0)
+  );
+END tech_jesd204b_arria10_e2sg;
+
+
+ARCHITECTURE str OF tech_jesd204b_arria10_e2sg IS
+  
+BEGIN
+  u_ip_arria10_e2sg_jesd204b : ip_arria10_e2sg_jesd204b
+  GENERIC MAP(
+    g_sim                => g_sim,                
+    g_sim_level          => g_sim_level,          
+    g_nof_channels       => g_nof_channels,      
+    g_direction          => g_direction
+  )
+  PORT MAP(
+    jesd204b_refclk      => jesd204b_refclk,   
+    jesd204b_sysref      => jesd204b_sysref,   
+    jesd204b_sync_n_arr  => jesd204b_sync_n_arr,   
+
+    rx_src_out_arr       => rx_src_out_arr,          
+    jesd204b_frame_clk   => jesd204b_frame_clk,          
+
+    -- MM
+    mm_clk               => mm_clk,           
+    mm_rst               => mm_rst,           
+
+    jesd204b_mosi        => jesd204b_mosi,         
+    jesd204b_miso        => jesd204b_miso,         
+
+     -- Serial
+    serial_tx_arr        => serial_tx_arr,
+    serial_rx_arr        => serial_rx_arr
+  );
+  
+END str;
diff --git a/libraries/technology/jesd204b/tech_jesd204b_component_pkg.vhd b/libraries/technology/jesd204b/tech_jesd204b_component_pkg.vhd
index 59b6c20e9911cd6498573c4ccf5af19132f820cd..5ec26377673de0b9e17f26aa45b46c2379c0133f 100644
--- a/libraries/technology/jesd204b/tech_jesd204b_component_pkg.vhd
+++ b/libraries/technology/jesd204b/tech_jesd204b_component_pkg.vhd
@@ -65,6 +65,40 @@ PACKAGE tech_jesd204b_component_pkg IS
   );
   END COMPONENT;
 
+  ------------------------------------------------------------------------------
+  -- ip_arria10_e2sg
+  ------------------------------------------------------------------------------
+  
+  COMPONENT ip_arria10_e2sg_jesd204b IS
+  GENERIC (
+    g_sim                 : BOOLEAN := FALSE;
+    g_sim_level           : NATURAL := 0;     -- 0 = use IP; 1 = use fast serdes model
+    g_nof_channels        : NATURAL := 1;
+    g_direction           : STRING := "RX_ONLY"  -- "TX_RX", "TX_ONLY", "RX_ONLY"
+  );
+ PORT (
+    -- JESD204B external signals
+    jesd204b_refclk       : IN STD_LOGIC := '0';                 -- Reference clock. For AD9683 use 200MHz direct from clock reference pin
+    jesd204b_sysref       : IN STD_LOGIC := '0';                 -- SYSREF should drive ADC and FPGA with correct phase wrt jesd204b_device_clk 
+    jesd204b_sync_n_arr   : OUT STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0); -- output to control ADC initialization/syncronization phase
+    
+    -- Data to fabric
+    rx_src_out_arr        : OUT t_dp_sosi_arr(g_nof_channels-1 DOWNTO 0);    -- Parallel data out to fabric
+    jesd204b_frame_clk    : OUT  STD_LOGIC := '0';               -- Regenerated data clock to fabric
+
+    -- MM Control
+    mm_clk                : IN  STD_LOGIC;
+    mm_rst                : IN  STD_LOGIC;
+         
+    jesd204b_mosi         : IN  t_mem_mosi;                      --  mm control
+    jesd204b_miso         : OUT t_mem_miso; 
+         
+    -- Serial connections to transceiver pins
+    serial_tx_arr         : OUT STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0); -- Not used for ADC
+    serial_rx_arr         : IN  STD_LOGIC_VECTOR(g_nof_channels-1 DOWNTO 0)
+  );
+  END COMPONENT;
+
 END tech_jesd204b_component_pkg;
 
 PACKAGE BODY tech_jesd204b_component_pkg IS
diff --git a/libraries/technology/mac_10g/hdllib.cfg b/libraries/technology/mac_10g/hdllib.cfg
index 157235e48c95a9d9f3ca3f66aad5605dfaf2c733..c922483ad86242bafb51561600cc5021751d8df7 100644
--- a/libraries/technology/mac_10g/hdllib.cfg
+++ b/libraries/technology/mac_10g/hdllib.cfg
@@ -1,7 +1,7 @@
 hdl_lib_name = tech_mac_10g
 hdl_library_clause_name = tech_mac_10g_lib
 hdl_lib_uses_synth = technology common dp ip_stratixiv_mac_10g
-hdl_lib_uses_ip = ip_arria10_mac_10g ip_arria10_e3sge3_mac_10g ip_arria10_e1sg_mac_10g
+hdl_lib_uses_ip = ip_arria10_mac_10g ip_arria10_e3sge3_mac_10g ip_arria10_e1sg_mac_10g ip_arria10_e2sg_mac_10g
 hdl_lib_uses_sim = 
 hdl_lib_technology = 
 hdl_lib_disclose_library_clause_names =
@@ -9,6 +9,7 @@ hdl_lib_disclose_library_clause_names =
     ip_arria10_mac_10g        ip_arria10_mac_10g_alt_em10g32_150
     ip_arria10_e3sge3_mac_10g ip_arria10_e3sge3_mac_10g_alt_em10g32_151
     ip_arria10_e1sg_mac_10g   ip_arria10_e1sg_mac_10g_alt_em10g32_180
+    ip_arria10_e2sg_mac_10g   ip_arria10_e2sg_mac_10g_alt_em10g32_180
 
 synth_files =
     tech_mac_10g_component_pkg.vhd
@@ -16,6 +17,7 @@ synth_files =
     tech_mac_10g_arria10.vhd
     tech_mac_10g_arria10_e3sge3.vhd
     tech_mac_10g_arria10_e1sg.vhd
+    tech_mac_10g_arria10_e2sg.vhd
     tech_mac_10g.vhd
 
 test_bench_files =
diff --git a/libraries/technology/mac_10g/tech_mac_10g.vhd b/libraries/technology/mac_10g/tech_mac_10g.vhd
index 5937011b3ab82bf7fddb2d91f5b19581fb807468..8a5cf23b6863e9656130411d82c58ef09211c58c 100644
--- a/libraries/technology/mac_10g/tech_mac_10g.vhd
+++ b/libraries/technology/mac_10g/tech_mac_10g.vhd
@@ -118,8 +118,8 @@ END tech_mac_10g;
 ARCHITECTURE str OF tech_mac_10g IS
 
   -- Adapt ST ready latency 1 to IP ready latency
-  CONSTANT c_ip_tx_ready_latency : NATURAL := sel_a_b(g_technology=c_tech_stratixiv OR g_technology=c_tech_arria10 OR g_technology=c_tech_arria10_e3sge3 OR g_technology=c_tech_arria10_e1sg, 0, 1);
-  CONSTANT c_ip_rx_ready_latency : NATURAL := sel_a_b(g_technology=c_tech_stratixiv OR g_technology=c_tech_arria10 OR g_technology=c_tech_arria10_e3sge3 OR g_technology=c_tech_arria10_e1sg, 0, 1);
+  CONSTANT c_ip_tx_ready_latency : NATURAL := sel_a_b(g_technology=c_tech_stratixiv OR g_technology=c_tech_arria10 OR g_technology=c_tech_arria10_e3sge3 OR g_technology=c_tech_arria10_e1sg OR g_technology=c_tech_arria10_e2sg, 0, 1);
+  CONSTANT c_ip_rx_ready_latency : NATURAL := sel_a_b(g_technology=c_tech_stratixiv OR g_technology=c_tech_arria10 OR g_technology=c_tech_arria10_e3sge3 OR g_technology=c_tech_arria10_e1sg OR g_technology=c_tech_arria10_e2sg, 0, 1);
 
   SIGNAL tx_mac_snk_in_data  : STD_LOGIC_VECTOR(c_tech_mac_10g_data_w-1 DOWNTO 0);  -- 64 bit
   SIGNAL tx_mac_snk_in       : t_dp_sosi;
@@ -176,6 +176,14 @@ BEGIN
               rx_clk_312, rx_clk_156, rx_rst, rx_mac_src_out, rx_mac_src_in,
               xgmii_link_status, xgmii_tx_data, xgmii_rx_data);  
   END GENERATE;
+
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+    u0 : ENTITY work.tech_mac_10g_arria10_e2sg
+    PORT MAP (mm_clk, mm_rst, csr_mosi, csr_miso,
+              tx_clk_312, tx_clk_156, tx_rst, tx_mac_snk_in, tx_mac_snk_out,
+              rx_clk_312, rx_clk_156, rx_rst, rx_mac_src_out, rx_mac_src_in,
+              xgmii_link_status, xgmii_tx_data, xgmii_rx_data);  
+  END GENERATE;
   
   -----------------------------------------------------------------------------
   -- Debug signals to ease monitoring in wave window  
diff --git a/libraries/technology/mac_10g/tech_mac_10g_arria10_e2sg.vhd b/libraries/technology/mac_10g/tech_mac_10g_arria10_e2sg.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..c31fcb0a37cc2a3e532bbf99602589390aed6873
--- /dev/null
+++ b/libraries/technology/mac_10g/tech_mac_10g_arria10_e2sg.vhd
@@ -0,0 +1,145 @@
+--------------------------------------------------------------------------------
+--
+-- 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/>.
+--
+--------------------------------------------------------------------------------
+
+-- Declare IP libraries to ensure default binding in simulation. The IP library clause is ignored by synthesis.
+LIBRARY ip_arria10_e2sg_mac_10g_alt_em10g32_194;
+
+LIBRARY IEEE, technology_lib, common_lib, dp_lib;
+USE IEEE.STD_LOGIC_1164.ALL;
+USE common_lib.common_pkg.ALL;
+USE common_lib.common_mem_pkg.ALL;
+USE common_lib.common_interface_layers_pkg.ALL;
+USE dp_lib.dp_stream_pkg.ALL;
+USE technology_lib.technology_pkg.ALL;
+USE work.tech_mac_10g_component_pkg.ALL;
+
+ENTITY tech_mac_10g_arria10_e2sg IS
+  PORT (
+    -- MM
+    mm_clk            : IN  STD_LOGIC;
+    mm_rst            : IN  STD_LOGIC;
+    csr_mosi          : IN  t_mem_mosi;  -- CSR = control status register
+    csr_miso          : OUT t_mem_miso;
+
+    -- ST
+    tx_clk_312        : IN  STD_LOGIC;
+    tx_clk_156        : IN  STD_LOGIC;
+    tx_rst            : IN  STD_LOGIC;
+    tx_snk_in         : IN  t_dp_sosi; 
+    tx_snk_out        : OUT t_dp_siso; 
+    
+    rx_clk_312        : IN  STD_LOGIC;
+    rx_clk_156        : IN  STD_LOGIC;
+    rx_rst            : IN  STD_LOGIC;
+    rx_src_out        : OUT t_dp_sosi; 
+    rx_src_in         : IN  t_dp_siso; 
+    
+    -- XGMII
+    xgmii_link_status : OUT STD_LOGIC_VECTOR(c_tech_mac_10g_link_status_w-1 DOWNTO 0);  -- 2 bit
+    xgmii_tx_data     : OUT STD_LOGIC_VECTOR(c_xgmii_w-1 DOWNTO 0);  -- 72 bit
+    xgmii_rx_data     : IN  STD_LOGIC_VECTOR(c_xgmii_w-1 DOWNTO 0)   -- 72 bit
+  );
+END tech_mac_10g_arria10_e2sg;
+
+
+ARCHITECTURE str OF tech_mac_10g_arria10_e2sg IS  
+ 
+  CONSTANT c_mac_10g_csr_addr_w   : NATURAL := func_tech_mac_10g_csr_addr_w(c_tech_arria10);  -- = 13
+  
+  SIGNAL mm_rst_n     : STD_LOGIC;
+  SIGNAL tx_rst_n     : STD_LOGIC;
+  SIGNAL rx_rst_n     : STD_LOGIC;
+  
+  SIGNAL avalon_rx_src_out : t_dp_sosi := c_dp_sosi_rst;
+  
+BEGIN
+ 
+  mm_rst_n <= NOT mm_rst;
+  tx_rst_n <= NOT tx_rst;
+  rx_rst_n <= NOT rx_rst;
+  
+  -- Default frame level flow control
+  tx_snk_out.xon <= '1';
+  
+  -- Force rx_src_out.sop = 0 when rx_src_out.valid = '0'
+  p_rx_src_out : PROCESS(avalon_rx_src_out)
+  BEGIN
+    rx_src_out     <= avalon_rx_src_out;
+    rx_src_out.sop <= avalon_rx_src_out.sop AND avalon_rx_src_out.valid;
+  END PROCESS;
+  
+  u_ip_arria10_e2sg_mac_10g : ip_arria10_e2sg_mac_10g
+  PORT MAP (
+    csr_clk                         => mm_clk,
+    csr_rst_n                       => mm_rst_n,
+    
+    csr_address                     => csr_mosi.address(c_mac_10g_csr_addr_w-1 DOWNTO 0),     -- 13 bit
+    csr_read                        => csr_mosi.rd,
+    csr_write                       => csr_mosi.wr,
+    csr_writedata                   => csr_mosi.wrdata(c_word_w-1 DOWNTO 0),                  -- 32 bit
+    csr_readdata                    => csr_miso.rddata(c_word_w-1 DOWNTO 0),                  -- 32 bit
+    csr_waitrequest                 => csr_miso.waitrequest,
+    
+    tx_312_5_clk                    => tx_clk_312,
+    tx_156_25_clk                   => tx_clk_156,
+    tx_rst_n                        => tx_rst_n,
+    
+    avalon_st_tx_ready              => tx_snk_out.ready,
+    avalon_st_tx_startofpacket      => tx_snk_in.sop,
+    avalon_st_tx_endofpacket        => tx_snk_in.eop,
+    avalon_st_tx_valid              => tx_snk_in.valid,
+    avalon_st_tx_data               => tx_snk_in.data(c_xgmii_data_w-1 DOWNTO 0),             -- 64 bit
+    avalon_st_tx_empty              => tx_snk_in.empty(c_tech_mac_10g_empty_w-1 DOWNTO 0),    --  3 bit
+    avalon_st_tx_error              => tx_snk_in.err(0),                                      --  1 bit std_logic = c_tech_mac_10g_tx_error_w
+    avalon_st_pause_data            => (OTHERS=>'0'),
+    
+    xgmii_tx                        => xgmii_tx_data,                                         -- 72 bit
+    
+    avalon_st_txstatus_valid        => OPEN,
+    avalon_st_txstatus_data         => OPEN,
+    avalon_st_txstatus_error        => OPEN,
+    
+    rx_312_5_clk                    => rx_clk_312,
+    rx_156_25_clk                   => rx_clk_156,
+    rx_rst_n                        => rx_rst_n,
+    
+    xgmii_rx                        => xgmii_rx_data,                                         -- 72 bit
+    
+    avalon_st_rx_ready              => rx_src_in.ready,
+    avalon_st_rx_startofpacket      => avalon_rx_src_out.sop,
+    avalon_st_rx_endofpacket        => avalon_rx_src_out.eop,
+    avalon_st_rx_valid              => avalon_rx_src_out.valid,
+    avalon_st_rx_data               => avalon_rx_src_out.data(c_xgmii_data_w-1 DOWNTO 0),            -- 64 bit
+    avalon_st_rx_empty              => avalon_rx_src_out.empty(c_tech_mac_10g_empty_w-1 DOWNTO 0),   --  3 bit
+    avalon_st_rx_error              => avalon_rx_src_out.err(c_tech_mac_10g_rx_error_w-1 DOWNTO 0),  --  6 bit
+    
+    avalon_st_rxstatus_valid        => OPEN,
+    avalon_st_rxstatus_data         => OPEN,
+    avalon_st_rxstatus_error        => OPEN,
+    
+    link_fault_status_xgmii_rx_data => xgmii_link_status,  -- 0=ok, 1=local fault, 2=remote fault
+    
+    unidirectional_en               => OPEN,
+    unidirectional_remote_fault_dis => OPEN
+  );
+  
+END str;
diff --git a/libraries/technology/mac_10g/tech_mac_10g_component_pkg.vhd b/libraries/technology/mac_10g/tech_mac_10g_component_pkg.vhd
index f88b2836c2344b2f226f9206d77fe4a5600ef8a1..fe4e87ff6f7bada17431e5bd4c1d056c42ec01da 100644
--- a/libraries/technology/mac_10g/tech_mac_10g_component_pkg.vhd
+++ b/libraries/technology/mac_10g/tech_mac_10g_component_pkg.vhd
@@ -242,6 +242,55 @@ PACKAGE tech_mac_10g_component_pkg IS
   );
   END COMPONENT;
 
+  ------------------------------------------------------------------------------
+  -- ip_arria10_e2sg
+  ------------------------------------------------------------------------------
+  
+  COMPONENT ip_arria10_e2sg_mac_10g IS
+  PORT (
+    csr_read                        : in  std_logic                     := '0';             --                        csr.read
+    csr_write                       : in  std_logic                     := '0';             --                           .write
+    csr_writedata                   : in  std_logic_vector(31 downto 0) := (others => '0'); --                           .writedata
+    csr_readdata                    : out std_logic_vector(31 downto 0);                    --                           .readdata
+    csr_waitrequest                 : out std_logic;                                        --                           .waitrequest
+    csr_address                     : in  std_logic_vector(12 downto 0) := (others => '0'); --                           .address
+    tx_312_5_clk                    : in  std_logic                     := '0';             --               tx_312_5_clk.clk
+    tx_156_25_clk                   : in  std_logic                     := '0';             --              tx_156_25_clk.clk
+    rx_312_5_clk                    : in  std_logic                     := '0';             --               rx_312_5_clk.clk
+    rx_156_25_clk                   : in  std_logic                     := '0';             --              rx_156_25_clk.clk
+    csr_clk                         : in  std_logic                     := '0';             --                    csr_clk.clk
+    csr_rst_n                       : in  std_logic                     := '0';             --                  csr_rst_n.reset_n
+    tx_rst_n                        : in  std_logic                     := '0';             --                   tx_rst_n.reset_n
+    rx_rst_n                        : in  std_logic                     := '0';             --                   rx_rst_n.reset_n
+    avalon_st_tx_startofpacket      : in  std_logic                     := '0';             --               avalon_st_tx.startofpacket
+    avalon_st_tx_endofpacket        : in  std_logic                     := '0';             --                           .endofpacket
+    avalon_st_tx_valid              : in  std_logic                     := '0';             --                           .valid
+    avalon_st_tx_data               : in  std_logic_vector(63 downto 0) := (others => '0'); --                           .data
+    avalon_st_tx_empty              : in  std_logic_vector(2 downto 0)  := (others => '0'); --                           .empty
+    avalon_st_tx_error              : in  std_logic                     := '0';             --                           .error
+    avalon_st_tx_ready              : out std_logic;                                        --                           .ready
+    avalon_st_pause_data            : in  std_logic_vector(1 downto 0)  := (others => '0'); --            avalon_st_pause.data
+    xgmii_tx                        : out std_logic_vector(71 downto 0);                    --                   xgmii_tx.data
+    avalon_st_txstatus_valid        : out std_logic;                                        --         avalon_st_txstatus.valid
+    avalon_st_txstatus_data         : out std_logic_vector(39 downto 0);                    --                           .data
+    avalon_st_txstatus_error        : out std_logic_vector(6 downto 0);                     --                           .error
+    xgmii_rx                        : in  std_logic_vector(71 downto 0) := (others => '0'); --                   xgmii_rx.data
+    link_fault_status_xgmii_rx_data : out std_logic_vector(1 downto 0);                     -- link_fault_status_xgmii_rx.data
+    avalon_st_rx_data               : out std_logic_vector(63 downto 0);                    --               avalon_st_rx.data
+    avalon_st_rx_startofpacket      : out std_logic;                                        --                           .startofpacket
+    avalon_st_rx_valid              : out std_logic;                                        --                           .valid
+    avalon_st_rx_empty              : out std_logic_vector(2 downto 0);                     --                           .empty
+    avalon_st_rx_error              : out std_logic_vector(5 downto 0);                     --                           .error
+    avalon_st_rx_ready              : in  std_logic                     := '0';             --                           .ready
+    avalon_st_rx_endofpacket        : out std_logic;                                        --                           .endofpacket
+    avalon_st_rxstatus_valid        : out std_logic;                                        --         avalon_st_rxstatus.valid
+    avalon_st_rxstatus_data         : out std_logic_vector(39 downto 0);                    --                           .data
+    avalon_st_rxstatus_error        : out std_logic_vector(6 downto 0);                     --                           .error
+    unidirectional_en               : out std_logic;                                        --             unidirectional.en
+    unidirectional_remote_fault_dis : out std_logic                                         --                           .remote_fault_dis
+  );
+  END COMPONENT;
+
 END tech_mac_10g_component_pkg;
 
 PACKAGE BODY tech_mac_10g_component_pkg IS
@@ -254,6 +303,7 @@ PACKAGE BODY tech_mac_10g_component_pkg IS
       WHEN c_tech_arria10   => v_csr_addr_w := 13;  -- 13 with INSERT_CSR_ADAPTOR=1 in ip_arria10_mac_10g.qsys, 10 without
       WHEN c_tech_arria10_e3sge3   => v_csr_addr_w := 13;  -- 13 with INSERT_CSR_ADAPTOR=1 in ip_arria10_e3sge3_mac_10g.qsys, 10 without
       WHEN c_tech_arria10_e1sg   => v_csr_addr_w := 13;  -- 13 with INSERT_CSR_ADAPTOR=1 in ip_arria10_e1sg_mac_10g.qsys, 10 without
+      WHEN c_tech_arria10_e2sg   => v_csr_addr_w := 13;  -- 13 with INSERT_CSR_ADAPTOR=1 in ip_arria10_e1sg_mac_10g.qsys, 10 without
       WHEN OTHERS           => v_csr_addr_w := 13;  -- default to c_tech_stratixiv
     END CASE;
     RETURN v_csr_addr_w; 
diff --git a/libraries/technology/memory/hdllib.cfg b/libraries/technology/memory/hdllib.cfg
index a2d022fb948a335770537c4f0637d76a68f18289..5aa87085c513250719d8033851aa05b327891ed3 100644
--- a/libraries/technology/memory/hdllib.cfg
+++ b/libraries/technology/memory/hdllib.cfg
@@ -1,6 +1,6 @@
 hdl_lib_name = tech_memory
 hdl_library_clause_name = tech_memory_lib
-hdl_lib_uses_synth = technology ip_stratixiv_ram ip_arria10_ram ip_arria10_e3sge3_ram ip_arria10_e1sg_ram
+hdl_lib_uses_synth = technology ip_stratixiv_ram ip_arria10_ram ip_arria10_e3sge3_ram ip_arria10_e1sg_ram ip_arria10_e2sg_ram
 hdl_lib_uses_sim = 
 hdl_lib_technology = 
 hdl_lib_disclose_library_clause_names =
@@ -8,6 +8,7 @@ hdl_lib_disclose_library_clause_names =
     ip_arria10_ram        ip_arria10_ram_lib
     ip_arria10_e3sge3_ram ip_arria10_e3sge3_ram_lib
     ip_arria10_e1sg_ram   ip_arria10_e1sg_ram_lib
+    ip_arria10_e2sg_ram   ip_arria10_e2sg_ram_lib
 
 synth_files =
     tech_memory_component_pkg.vhd
diff --git a/libraries/technology/memory/tech_memory_component_pkg.vhd b/libraries/technology/memory/tech_memory_component_pkg.vhd
index c3baad490670edfcb84fe1d70995e33024893f89..d0c4b1ebcd5ef4580e3e94a0661e92aad6afa539 100644
--- a/libraries/technology/memory/tech_memory_component_pkg.vhd
+++ b/libraries/technology/memory/tech_memory_component_pkg.vhd
@@ -422,4 +422,98 @@ PACKAGE tech_memory_component_pkg IS
   );
   END COMPONENT;
 
+  -----------------------------------------------------------------------------
+  -- ip_arria10_e2sg
+  -----------------------------------------------------------------------------
+  
+  COMPONENT ip_arria10_e2sg_ram_crwk_crw IS
+  GENERIC (
+    g_adr_a_w     : NATURAL := 5;
+    g_dat_a_w     : NATURAL := 32;
+    g_adr_b_w     : NATURAL := 4;
+    g_dat_b_w     : NATURAL := 64;
+    g_nof_words_a : NATURAL := 2**5;
+    g_nof_words_b : NATURAL := 2**4;
+    g_rd_latency  : NATURAL := 1;     -- choose 1 or 2
+    g_init_file   : STRING  := "UNUSED"
+  );
+  PORT
+  (
+    address_a : IN STD_LOGIC_VECTOR (g_adr_a_w-1 DOWNTO 0);
+    address_b : IN STD_LOGIC_VECTOR (g_adr_b_w-1 DOWNTO 0);
+    clk_a     : IN STD_LOGIC  := '1';
+    clk_b     : IN STD_LOGIC ;
+    data_a    : IN STD_LOGIC_VECTOR (g_dat_a_w-1 DOWNTO 0);
+    data_b    : IN STD_LOGIC_VECTOR (g_dat_b_w-1 DOWNTO 0);
+    wren_a    : IN STD_LOGIC  := '0';
+    wren_b    : IN STD_LOGIC  := '0';
+    q_a       : OUT STD_LOGIC_VECTOR (g_dat_a_w-1 DOWNTO 0);
+    q_b       : OUT STD_LOGIC_VECTOR (g_dat_b_w-1 DOWNTO 0)
+  );
+  END COMPONENT;
+
+  COMPONENT ip_arria10_e2sg_ram_crw_crw IS
+  GENERIC (
+    g_inferred   : BOOLEAN := FALSE;
+    g_adr_w      : NATURAL := 5;
+    g_dat_w      : NATURAL := 8;
+    g_nof_words  : NATURAL := 2**5;
+    g_rd_latency : NATURAL := 1;  -- choose 1 or 2
+    g_init_file  : STRING  := "UNUSED"
+  );
+  PORT
+  (
+    address_a : IN STD_LOGIC_VECTOR (g_adr_w-1 DOWNTO 0);
+    address_b : IN STD_LOGIC_VECTOR (g_adr_w-1 DOWNTO 0);
+    clk_a     : IN STD_LOGIC  := '1';
+    clk_b     : IN STD_LOGIC ;
+    data_a    : IN STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+    data_b    : IN STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+    wren_a    : IN STD_LOGIC  := '0';
+    wren_b    : IN STD_LOGIC  := '0';
+    q_a       : OUT STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+    q_b       : OUT STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0)
+  );
+  END COMPONENT;
+  
+  COMPONENT ip_arria10_e2sg_ram_cr_cw IS
+  GENERIC (
+    g_inferred   : BOOLEAN := FALSE;
+    g_adr_w      : NATURAL := 5;
+    g_dat_w      : NATURAL := 8;
+    g_nof_words  : NATURAL := 2**5;
+    g_rd_latency : NATURAL := 1;  -- choose 1 or 2
+    g_init_file  : STRING  := "UNUSED"
+  );
+  PORT
+  (
+    data      : IN  STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0);
+    rdaddress : IN  STD_LOGIC_VECTOR (g_adr_w-1 DOWNTO 0);
+    rdclk     : IN  STD_LOGIC ;
+    wraddress : IN  STD_LOGIC_VECTOR (g_adr_w-1 DOWNTO 0);
+    wrclk     : IN  STD_LOGIC  := '1';
+    wren      : IN  STD_LOGIC  := '0';
+    q         : OUT STD_LOGIC_VECTOR (g_dat_w-1 DOWNTO 0)
+  );
+  END COMPONENT;
+  
+  COMPONENT ip_arria10_e2sg_ram_r_w IS
+  GENERIC (
+    g_inferred   : BOOLEAN := FALSE;
+    g_adr_w      : NATURAL := 5;
+    g_dat_w      : NATURAL := 8;
+    g_nof_words  : NATURAL := 2**5;
+    g_rd_latency : NATURAL := 1;     -- choose 1 or 2
+    g_init_file  : STRING  := "UNUSED"
+  );
+  PORT (
+    clk         : IN STD_LOGIC  := '1';
+    data        : IN STD_LOGIC_VECTOR(g_dat_w-1 DOWNTO 0) := (OTHERS=>'0');
+    rdaddress   : IN STD_LOGIC_VECTOR(g_adr_w-1 DOWNTO 0) := (OTHERS=>'0');
+    wraddress   : IN STD_LOGIC_VECTOR(g_adr_w-1 DOWNTO 0) := (OTHERS=>'0');
+    wren        : IN STD_LOGIC  := '0';
+    q           : OUT STD_LOGIC_VECTOR(g_dat_w-1 DOWNTO 0)
+  );
+  END COMPONENT;
+
 END tech_memory_component_pkg;
diff --git a/libraries/technology/memory/tech_memory_ram_cr_cw.vhd b/libraries/technology/memory/tech_memory_ram_cr_cw.vhd
index 412209602c24c27f2117369cba9311aec7612a56..342a964b8737673050135aec12b66cd544492667 100644
--- a/libraries/technology/memory/tech_memory_ram_cr_cw.vhd
+++ b/libraries/technology/memory/tech_memory_ram_cr_cw.vhd
@@ -30,6 +30,7 @@ LIBRARY ip_stratixiv_ram_lib;
 LIBRARY ip_arria10_ram_lib;
 LIBRARY ip_arria10_e3sge3_ram_lib;
 LIBRARY ip_arria10_e1sg_ram_lib;
+LIBRARY ip_arria10_e2sg_ram_lib;
 
 ENTITY tech_memory_ram_cr_cw IS
   GENERIC (
@@ -80,5 +81,11 @@ BEGIN
     GENERIC MAP (FALSE, g_adr_w, g_dat_w, g_nof_words, g_rd_latency, g_init_file)
     PORT MAP (data, rdaddress, rdclock, wraddress, wrclock, wren, q);
   END GENERATE;
+
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+    u0 : ip_arria10_e2sg_ram_cr_cw
+    GENERIC MAP (FALSE, g_adr_w, g_dat_w, g_nof_words, g_rd_latency, g_init_file)
+    PORT MAP (data, rdaddress, rdclock, wraddress, wrclock, wren, q);
+  END GENERATE;
   
 END ARCHITECTURE;
diff --git a/libraries/technology/memory/tech_memory_ram_crw_crw.vhd b/libraries/technology/memory/tech_memory_ram_crw_crw.vhd
index 501da0de254848e0e6790f98daf4e880f5ee05fd..6e43a2d1284c055676f71c34f8dd053971c4f4c0 100644
--- a/libraries/technology/memory/tech_memory_ram_crw_crw.vhd
+++ b/libraries/technology/memory/tech_memory_ram_crw_crw.vhd
@@ -30,6 +30,7 @@ LIBRARY ip_stratixiv_ram_lib;
 LIBRARY ip_arria10_ram_lib;
 LIBRARY ip_arria10_e3sge3_ram_lib;
 LIBRARY ip_arria10_e1sg_ram_lib;
+LIBRARY ip_arria10_e2sg_ram_lib;
 
 ENTITY tech_memory_ram_crw_crw IS
   GENERIC (
@@ -87,5 +88,11 @@ BEGIN
     GENERIC MAP (FALSE, g_adr_w, g_dat_w, g_nof_words, g_rd_latency, g_init_file)
     PORT MAP (address_a, address_b, clock_a, clock_b, data_a, data_b, wren_a, wren_b, q_a, q_b);
   END GENERATE;
-  
+ 
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+    u0 : ip_arria10_e2sg_ram_crw_crw
+    GENERIC MAP (FALSE, g_adr_w, g_dat_w, g_nof_words, g_rd_latency, g_init_file)
+    PORT MAP (address_a, address_b, clock_a, clock_b, data_a, data_b, wren_a, wren_b, q_a, q_b);
+  END GENERATE;
+ 
 END ARCHITECTURE;
diff --git a/libraries/technology/memory/tech_memory_ram_crwk_crw.vhd b/libraries/technology/memory/tech_memory_ram_crwk_crw.vhd
index 78b4e5c68c6f630bd9cfa666a59dbf6f5138be74..802e6d8e8557b7920c24c7f406b60dbd1125823e 100644
--- a/libraries/technology/memory/tech_memory_ram_crwk_crw.vhd
+++ b/libraries/technology/memory/tech_memory_ram_crwk_crw.vhd
@@ -30,6 +30,7 @@ LIBRARY ip_stratixiv_ram_lib;
 LIBRARY ip_arria10_ram_lib;
 LIBRARY ip_arria10_e3sge3_ram_lib;
 LIBRARY ip_arria10_e1sg_ram_lib;
+LIBRARY ip_arria10_e2sg_ram_lib;
 
 ENTITY tech_memory_ram_crwk_crw IS  -- support different port data widths and corresponding address ranges
   GENERIC (
@@ -89,5 +90,11 @@ BEGIN
     GENERIC MAP (g_adr_a_w, g_dat_a_w, g_adr_b_w, g_dat_b_w, g_nof_words_a, g_nof_words_b, g_rd_latency, g_init_file)
     PORT MAP (address_a, address_b, clock_a, clock_b, data_a, data_b, wren_a, wren_b, q_a, q_b);
   END GENERATE;
-  
+ 
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+    u0 : ip_arria10_e2sg_ram_crwk_crw
+    GENERIC MAP (g_adr_a_w, g_dat_a_w, g_adr_b_w, g_dat_b_w, g_nof_words_a, g_nof_words_b, g_rd_latency, g_init_file)
+    PORT MAP (address_a, address_b, clock_a, clock_b, data_a, data_b, wren_a, wren_b, q_a, q_b);
+  END GENERATE;
+ 
 END ARCHITECTURE;
diff --git a/libraries/technology/memory/tech_memory_ram_r_w.vhd b/libraries/technology/memory/tech_memory_ram_r_w.vhd
index ca9222873dd9af1543f5a4c319eb3ffec9bf2b8b..54203fc4941920ac51f4e3008577d71c9578bc49 100644
--- a/libraries/technology/memory/tech_memory_ram_r_w.vhd
+++ b/libraries/technology/memory/tech_memory_ram_r_w.vhd
@@ -30,6 +30,7 @@ LIBRARY ip_stratixiv_ram_lib;
 LIBRARY ip_arria10_ram_lib;
 LIBRARY ip_arria10_e3sge3_ram_lib;
 LIBRARY ip_arria10_e1sg_ram_lib;
+LIBRARY ip_arria10_e2sg_ram_lib;
 
 ENTITY tech_memory_ram_r_w IS
   GENERIC (
@@ -78,4 +79,10 @@ BEGIN
     PORT MAP (clock, data, rdaddress, wraddress, wren, q);
   END GENERATE;
   
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+    u0 : ip_arria10_e2sg_ram_r_w
+    GENERIC MAP (FALSE, g_adr_w, g_dat_w, g_nof_words, 1, g_init_file)
+    PORT MAP (clock, data, rdaddress, wraddress, wren, q);
+  END GENERATE;
+
 END ARCHITECTURE;
diff --git a/libraries/technology/memory/tech_memory_rom_r.vhd b/libraries/technology/memory/tech_memory_rom_r.vhd
index 9f961d977bedb868fcf4f0d84cc2bc2112a27741..2fadf629885af98854f6bbc378b6b97df3ce9915 100644
--- a/libraries/technology/memory/tech_memory_rom_r.vhd
+++ b/libraries/technology/memory/tech_memory_rom_r.vhd
@@ -30,6 +30,7 @@ LIBRARY ip_stratixiv_ram_lib;
 LIBRARY ip_arria10_ram_lib;
 LIBRARY ip_arria10_e3sge3_ram_lib;
 LIBRARY ip_arria10_e1sg_ram_lib;
+LIBRARY ip_arria10_e2sg_ram_lib;
 
 ENTITY tech_memory_rom_r IS
   GENERIC (
@@ -97,5 +98,19 @@ BEGIN
       q           => q
     );
   END GENERATE;
-  
+ 
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+    -- use ip_arria10_e1sg_ram_r_w as ROM
+    u0 : ip_arria10_e2sg_ram_r_w
+    GENERIC MAP (FALSE, g_adr_w, g_dat_w, g_nof_words, 1, g_init_file)
+    PORT MAP (
+      clk         => clock,
+      --data        => ,
+      rdaddress   => address,
+      --wraddress   => ,
+      --wren        => ,
+      q           => q
+    );
+  END GENERATE;
+ 
 END ARCHITECTURE;
diff --git a/libraries/technology/mult/hdllib.cfg b/libraries/technology/mult/hdllib.cfg
index 2b3f3f655d112e0fb00346756e14661765c577b1..5fbea82b38f96abd2a2e5925a89986fe90b01f0f 100644
--- a/libraries/technology/mult/hdllib.cfg
+++ b/libraries/technology/mult/hdllib.cfg
@@ -10,6 +10,9 @@ hdl_lib_uses_synth = common technology
                      ip_arria10_e3sge3_mult_add4
                      ip_arria10_e1sg_mult_add4
                      ip_arria10_e1sg_mult_add2
+                     ip_arria10_e2sg_mult_add4
+                     ip_arria10_e2sg_mult_add2
+                     ip_arria10_e2sg_complex_mult
 hdl_lib_uses_sim = 
 hdl_lib_technology = 
 hdl_lib_disclose_library_clause_names =
@@ -21,6 +24,9 @@ hdl_lib_disclose_library_clause_names =
     ip_arria10_e3sge3_mult_add4      ip_arria10_e3sge3_mult_add4_lib
     ip_arria10_e1sg_mult_add4        ip_arria10_e1sg_mult_add4_lib
     ip_arria10_e1sg_mult_add2        ip_arria10_e1sg_mult_add2_lib
+    ip_arria10_e2sg_mult_add4        ip_arria10_e2sg_mult_add4_lib
+    ip_arria10_e2sg_mult_add2        ip_arria10_e2sg_mult_add2_lib
+    ip_arria10_e2sg_complex_mult     ip_arria10_e2sg_complex_mult_altmult_complex_194
 
 
 synth_files =
diff --git a/libraries/technology/mult/tech_complex_mult.vhd b/libraries/technology/mult/tech_complex_mult.vhd
index 6432cf385e36cf90f7a7ee7e4911b6f6d039261f..680f89fb2ef4842278c785dd39318956bdbc8d57 100644
--- a/libraries/technology/mult/tech_complex_mult.vhd
+++ b/libraries/technology/mult/tech_complex_mult.vhd
@@ -32,6 +32,7 @@ LIBRARY ip_stratixiv_mult_lib;
 --LIBRARY ip_arria10_mult_rtl_lib;
 LIBRARY ip_arria10_complex_mult_altmult_complex_150;
 LIBRARY ip_arria10_e1sg_complex_mult_altmult_complex_180;
+LIBRARY ip_arria10_e2sg_complex_mult_altmult_complex_194;
 LIBRARY ip_arria10_complex_mult_rtl_lib;
 LIBRARY ip_arria10_complex_mult_rtl_canonical_lib;
 
@@ -248,6 +249,34 @@ begin
 
   END GENERATE;
 
+  gen_ip_arria10_e2sg_ip : IF (g_sim=FALSE OR (g_sim=TRUE AND g_sim_level=0)) AND (g_technology=c_tech_arria10_e2sg AND g_variant="IP") GENERATE
+
+    -- Adapt DSP input widths
+    ar <= RESIZE_SVEC(in_ar, c_dsp_dat_w);
+    ai <= RESIZE_SVEC(in_ai, c_dsp_dat_w);
+    br <= RESIZE_SVEC(in_br, c_dsp_dat_w);
+    bi <= RESIZE_SVEC(in_bi, c_dsp_dat_w) WHEN g_conjugate_b=FALSE ELSE TO_SVEC(-TO_SINT(in_bi), c_dsp_dat_w);
+
+
+    u0 : ip_arria10_e2sg_complex_mult
+    PORT MAP (
+         aclr        => rst,
+         clock       => clk,
+         dataa_imag  => ai,
+         dataa_real  => ar,
+         datab_imag  => bi,
+         datab_real  => br,
+         ena         => clken,
+         result_imag => mult_im,
+         result_real => mult_re
+         );
+
+    -- Back to true input widths and then resize for output width
+    result_re <= RESIZE_SVEC(mult_re, g_out_p_w);
+    result_im <= RESIZE_SVEC(mult_im, g_out_p_w);
+
+  END GENERATE;
+
   -------------------------------------------------------------------------------
   -- Model: forward concatenated inputs to the 'result' output
   -- 
diff --git a/libraries/technology/mult/tech_mult_add2.vhd b/libraries/technology/mult/tech_mult_add2.vhd
index 930dd258f22b743aeeea3c3f4280d8fbf579aadb..df55163ea2a967605ba6037e51a38574529409d1 100644
--- a/libraries/technology/mult/tech_mult_add2.vhd
+++ b/libraries/technology/mult/tech_mult_add2.vhd
@@ -29,6 +29,7 @@ USE work.tech_mult_component_pkg.ALL;
 -- Declare IP libraries to ensure default binding in simulation. The IP library clause is ignored by synthesis.
 LIBRARY ip_stratixiv_mult_lib;
 LIBRARY ip_arria10_e1sg_mult_add2_lib;
+LIBRARY ip_arria10_e2sg_mult_add2_lib;
 
 ENTITY tech_mult_add2 IS
   GENERIC (
@@ -107,5 +108,29 @@ begin
     );
   END GENERATE;
 
+  gen_ip_arria10_e2sg_rtl : IF (g_technology=c_tech_arria10_e2sg AND g_variant="RTL") GENERATE
+    u0 : ip_arria10_e2sg_mult_add2_rtl
+    GENERIC MAP(
+      g_in_a_w           => g_in_a_w,
+      g_in_b_w           => g_in_b_w,
+      g_res_w            => g_res_w,
+      g_force_dsp        => g_force_dsp,
+      g_add_sub          => g_add_sub,
+      g_nof_mult         => g_nof_mult,
+      g_pipeline_input   => g_pipeline_input,
+      g_pipeline_product => g_pipeline_product,
+      g_pipeline_adder   => g_pipeline_adder,
+      g_pipeline_output  => g_pipeline_output
+    )
+    PORT MAP(
+      rst   => rst,
+      clk   => clk,
+      clken => clken,
+      in_a  => in_a,
+      in_b  => in_b,
+      res   => res
+    );
+  END GENERATE;
+
 end str;
 
diff --git a/libraries/technology/mult/tech_mult_add4.vhd b/libraries/technology/mult/tech_mult_add4.vhd
index 434684633b40ecc2b474ad20ba3fab7501c2a7ed..b11d564997d1e60e65af881d56443c4d4f4cb81e 100644
--- a/libraries/technology/mult/tech_mult_add4.vhd
+++ b/libraries/technology/mult/tech_mult_add4.vhd
@@ -30,6 +30,7 @@ USE work.tech_mult_component_pkg.ALL;
 LIBRARY ip_stratixiv_mult_lib;
 LIBRARY ip_arria10_e3sge3_mult_add4_lib;
 LIBRARY ip_arria10_e1sg_mult_add4_lib;
+LIBRARY ip_arria10_e2sg_mult_add4_lib;
 
 ENTITY tech_mult_add4 IS
   GENERIC (
@@ -140,5 +141,31 @@ begin
     );
   END GENERATE;
 
+  gen_ip_arria10_e2sg_rtl : IF (g_technology=c_tech_arria10_e2sg AND g_variant="RTL") GENERATE
+    u0 : ip_arria10_e2sg_mult_add4_rtl
+    GENERIC MAP(
+      g_in_a_w           => g_in_a_w,
+      g_in_b_w           => g_in_b_w,
+      g_res_w            => g_res_w,
+      g_force_dsp        => g_force_dsp,
+      g_add_sub0         => g_add_sub0,
+      g_add_sub1         => g_add_sub1,
+      g_add_sub          => g_add_sub,
+      g_nof_mult         => g_nof_mult,
+      g_pipeline_input   => g_pipeline_input,
+      g_pipeline_product => g_pipeline_product,
+      g_pipeline_adder   => g_pipeline_adder,
+      g_pipeline_output  => g_pipeline_output
+    )
+    PORT MAP(
+      rst   => rst,
+      clk   => clk,
+      clken => clken,
+      in_a  => in_a,
+      in_b  => in_b,
+      res   => res
+    );
+  END GENERATE;
+
 end str;
 
diff --git a/libraries/technology/mult/tech_mult_component_pkg.vhd b/libraries/technology/mult/tech_mult_component_pkg.vhd
index d04ed4e9e138205e731b9f5e027e95f88795f1b3..912d3ea189adbb09aa243f42717e6c01d2ebd9dc 100644
--- a/libraries/technology/mult/tech_mult_component_pkg.vhd
+++ b/libraries/technology/mult/tech_mult_component_pkg.vhd
@@ -360,4 +360,70 @@ PACKAGE tech_mult_component_pkg IS
     result_imag : out std_logic_vector(35 downto 0)                     --               .result_imag
   );
   END COMPONENT;
+
+  -----------------------------------------------------------------------------
+  -- Arria 10 e2sg components
+  -----------------------------------------------------------------------------
+  COMPONENT ip_arria10_e2sg_mult_add2_rtl IS
+  GENERIC (
+    g_in_a_w           : POSITIVE;
+    g_in_b_w           : POSITIVE;
+    g_res_w            : POSITIVE;          -- g_in_a_w + g_in_b_w + log2(2)
+    g_force_dsp        : BOOLEAN := TRUE;   -- when TRUE resize input width to >= 18
+    g_add_sub          : STRING := "ADD";   -- or "SUB"
+    g_nof_mult         : INTEGER := 2;      -- fixed
+    g_pipeline_input   : NATURAL := 1;      -- 0 or 1
+    g_pipeline_product : NATURAL := 0;      -- 0 or 1
+    g_pipeline_adder   : NATURAL := 1;      -- 0 or 1
+    g_pipeline_output  : NATURAL := 1       -- >= 0
+  );
+  PORT (
+    rst        : IN  STD_LOGIC := '0';
+    clk        : IN  STD_LOGIC;
+    clken      : IN  STD_LOGIC := '1';
+    in_a       : IN  STD_LOGIC_VECTOR(g_nof_mult*g_in_a_w-1 DOWNTO 0);
+    in_b       : IN  STD_LOGIC_VECTOR(g_nof_mult*g_in_b_w-1 DOWNTO 0);
+    res        : OUT STD_LOGIC_VECTOR(g_res_w-1 DOWNTO 0)
+  );
+  END COMPONENT;
+
+  COMPONENT ip_arria10_e2sg_mult_add4_rtl IS
+  GENERIC (
+    g_in_a_w           : POSITIVE;
+    g_in_b_w           : POSITIVE;
+    g_res_w            : POSITIVE;          -- g_in_a_w + g_in_b_w + log2(4)
+    g_force_dsp        : BOOLEAN := TRUE;   -- when TRUE resize input width to >= 18
+    g_add_sub0         : STRING := "ADD";   -- or "SUB"
+    g_add_sub1         : STRING := "ADD";   -- or "SUB"
+    g_add_sub          : STRING := "ADD";   -- or "SUB" only available with rtl architecture
+    g_nof_mult         : INTEGER := 4;      -- fixed
+    g_pipeline_input   : NATURAL := 1;      -- 0 or 1
+    g_pipeline_product : NATURAL := 0;      -- 0 or 1
+    g_pipeline_adder   : NATURAL := 1;      -- 0 or 1, first sum
+    g_pipeline_output  : NATURAL := 1       -- >= 0,   second sum and optional rounding
+  );
+  PORT (
+    rst        : IN  STD_LOGIC := '0';
+    clk        : IN  STD_LOGIC;
+    clken      : IN  STD_LOGIC := '1';
+    in_a       : IN  STD_LOGIC_VECTOR(g_nof_mult*g_in_a_w-1 DOWNTO 0);
+    in_b       : IN  STD_LOGIC_VECTOR(g_nof_mult*g_in_b_w-1 DOWNTO 0);
+    res        : OUT STD_LOGIC_VECTOR(g_res_w-1 DOWNTO 0)
+  );
+  END COMPONENT;
+
+  COMPONENT ip_arria10_e2sg_complex_mult is
+  PORT (
+    dataa_real  : in  std_logic_vector(17 downto 0) := (others => '0'); --  complex_input.dataa_real
+    dataa_imag  : in  std_logic_vector(17 downto 0) := (others => '0'); --               .dataa_imag
+    datab_real  : in  std_logic_vector(17 downto 0) := (others => '0'); --               .datab_real
+    datab_imag  : in  std_logic_vector(17 downto 0) := (others => '0'); --               .datab_imag
+    clock       : in  std_logic                     := '0';             --               .clk
+    aclr        : in  std_logic                     := '0';             --               .aclr
+    ena         : in  std_logic                     := '0';             --               .ena
+    result_real : out std_logic_vector(35 downto 0);                    -- complex_output.result_real
+    result_imag : out std_logic_vector(35 downto 0)                     --               .result_imag
+  );
+  END COMPONENT;
+
 END tech_mult_component_pkg;
diff --git a/libraries/technology/pll/hdllib.cfg b/libraries/technology/pll/hdllib.cfg
index c7b3d55035279053a4c7be362f7ce4798e9d66c2..b91a8beeaf118fc6f33c72c989d68a9d09282543 100644
--- a/libraries/technology/pll/hdllib.cfg
+++ b/libraries/technology/pll/hdllib.cfg
@@ -5,6 +5,7 @@ hdl_lib_uses_ip = ip_stratixiv_pll       ip_arria10_pll_clk200           ip_arri
                   ip_stratixiv_pll_clk25 ip_arria10_pll_clk25            ip_arria10_e3sge3_pll_clk25  ip_arria10_e1sg_pll_clk25
                                          ip_arria10_pll_clk125           ip_arria10_e3sge3_pll_clk125 ip_arria10_e1sg_pll_clk125
                                          ip_arria10_pll_xgmii_mac_clocks ip_arria10_e3sge3_pll_xgmii_mac_clocks ip_arria10_e1sg_pll_xgmii_mac_clocks
+                  ip_arria10_e2sg_pll_clk200 ip_arria10_e2sg_pll_clk25 ip_arria10_e2sg_pll_clk125 ip_arria10_e2sg_pll_xgmii_mac_clocks
 hdl_lib_uses_sim = 
 hdl_lib_technology = 
 hdl_lib_disclose_library_clause_names =
@@ -22,6 +23,10 @@ hdl_lib_disclose_library_clause_names =
     ip_arria10_e1sg_pll_clk25              ip_arria10_e1sg_pll_clk25_altera_iopll_180           
     ip_arria10_e1sg_pll_clk125             ip_arria10_e1sg_pll_clk125_altera_iopll_180          
     ip_arria10_e1sg_pll_xgmii_mac_clocks   ip_arria10_e1sg_pll_xgmii_mac_clocks_altera_xcvr_fpll_a10_180
+    ip_arria10_e2sg_pll_clk200             ip_arria10_e2sg_pll_clk200_altera_iopll_194         
+    ip_arria10_e2sg_pll_clk25              ip_arria10_e2sg_pll_clk25_altera_iopll_194           
+    ip_arria10_e2sg_pll_clk125             ip_arria10_e2sg_pll_clk125_altera_iopll_194          
+    ip_arria10_e2sg_pll_xgmii_mac_clocks   ip_arria10_e2sg_pll_xgmii_mac_clocks_altera_xcvr_fpll_a10_194
 
 synth_files =
     tech_pll_component_pkg.vhd
diff --git a/libraries/technology/pll/tech_pll_clk125.vhd b/libraries/technology/pll/tech_pll_clk125.vhd
index df94261a8337360e01c8283d7079d38e92ef7c3d..fab5e6259a35cac787d14d1b21e7c94b843949e3 100644
--- a/libraries/technology/pll/tech_pll_clk125.vhd
+++ b/libraries/technology/pll/tech_pll_clk125.vhd
@@ -29,6 +29,7 @@ USE technology_lib.technology_select_pkg.ALL;
 LIBRARY ip_arria10_pll_clk125_altera_iopll_150;
 LIBRARY ip_arria10_e3sge3_pll_clk125_altera_iopll_151;
 LIBRARY ip_arria10_e1sg_pll_clk125_altera_iopll_180;
+LIBRARY ip_arria10_e2sg_pll_clk125_altera_iopll_194;
 
 ENTITY tech_pll_clk125 IS
   GENERIC (
@@ -88,4 +89,17 @@ BEGIN
     );
   END GENERATE;
 
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+    u0 : ip_arria10_e2sg_pll_clk125
+    PORT MAP (
+      rst      => areset, 
+      refclk   => inclk0, 
+      outclk_0 => c0, 
+      outclk_1 => c1, 
+      outclk_2 => c2, 
+      outclk_3 => c3, 
+      locked   => locked
+    );
+  END GENERATE;
+
 END ARCHITECTURE;
diff --git a/libraries/technology/pll/tech_pll_clk200.vhd b/libraries/technology/pll/tech_pll_clk200.vhd
index adf88609a918af520b4d93bea13a62c40d831313..1a38b8d778d7a3bb24e8ad623d293d95bbc45956 100644
--- a/libraries/technology/pll/tech_pll_clk200.vhd
+++ b/libraries/technology/pll/tech_pll_clk200.vhd
@@ -30,6 +30,7 @@ LIBRARY ip_stratixiv_pll_lib;
 LIBRARY ip_arria10_pll_clk200_altera_iopll_150;
 LIBRARY ip_arria10_e3sge3_pll_clk200_altera_iopll_151;
 LIBRARY ip_arria10_e1sg_pll_clk200_altera_iopll_180;
+LIBRARY ip_arria10_e2sg_pll_clk200_altera_iopll_194;
 
 ENTITY tech_pll_clk200 IS
   GENERIC (
@@ -94,4 +95,16 @@ BEGIN
     );
   END GENERATE;
 
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+    u0 : ip_arria10_e2sg_pll_clk200
+    PORT MAP (
+      rst      => areset, 
+      refclk   => inclk0, 
+      outclk_0 => c0, 
+      outclk_1 => c1, 
+      outclk_2 => c2, 
+      locked   => locked
+    );
+  END GENERATE;
+
 END ARCHITECTURE;
diff --git a/libraries/technology/pll/tech_pll_clk25.vhd b/libraries/technology/pll/tech_pll_clk25.vhd
index bfb242b469fe81c81b35920dc91ad24acb4aab02..68d5f876e3c6bd853e053a2abd63a9310f170455 100644
--- a/libraries/technology/pll/tech_pll_clk25.vhd
+++ b/libraries/technology/pll/tech_pll_clk25.vhd
@@ -30,6 +30,7 @@ LIBRARY ip_arria10_pll_clk25_altera_iopll_150;
 LIBRARY ip_stratixiv_pll_clk25_lib;
 LIBRARY ip_arria10_e3sge3_pll_clk25_altera_iopll_151;
 LIBRARY ip_arria10_e1sg_pll_clk25_altera_iopll_180;
+LIBRARY ip_arria10_e2sg_pll_clk25_altera_iopll_194;
 
 ENTITY tech_pll_clk25 IS
   GENERIC (
@@ -90,6 +91,19 @@ BEGIN
     );
   END GENERATE;
 
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+    u0 : ip_arria10_e2sg_pll_clk25
+    PORT MAP (
+      rst      => areset, 
+      refclk   => inclk0, 
+      outclk_0 => c0, 
+      outclk_1 => c1, 
+      outclk_2 => c2, 
+      outclk_3 => c3, 
+      locked   => locked
+    );
+  END GENERATE;
+
   gen_ip_stratixiv : IF g_technology=c_tech_stratixiv GENERATE
     u0 : ip_stratixiv_pll_clk25
     PORT MAP (
diff --git a/libraries/technology/pll/tech_pll_component_pkg.vhd b/libraries/technology/pll/tech_pll_component_pkg.vhd
index 99bc01b8029b24159d95c8a554f5602f9a354ab8..3eea0c5cc7ac2419fa8a4ab3bdfcdc0abdb5a607 100644
--- a/libraries/technology/pll/tech_pll_component_pkg.vhd
+++ b/libraries/technology/pll/tech_pll_component_pkg.vhd
@@ -283,6 +283,58 @@ PACKAGE tech_pll_component_pkg IS
   );
   END COMPONENT;
 
+  -----------------------------------------------------------------------------
+  -- ip_arria10_e2sg
+  -----------------------------------------------------------------------------
+  
+  COMPONENT ip_arria10_e2sg_pll_xgmii_mac_clocks IS
+  PORT (
+    pll_refclk0   : in  std_logic := '0'; --   pll_refclk0.clk
+    pll_powerdown : in  std_logic := '0'; -- pll_powerdown.pll_powerdown
+    pll_locked    : out std_logic;        --    pll_locked.pll_locked
+    outclk0       : out std_logic;        --       outclk0.clk
+    pll_cal_busy  : out std_logic;        --  pll_cal_busy.pll_cal_busy
+    outclk1       : out std_logic         --       outclk1.clk
+  );
+  END COMPONENT;
+
+  COMPONENT ip_arria10_e2sg_pll_clk200 IS
+  PORT
+  (
+    rst       : IN STD_LOGIC  := '0';
+    refclk    : IN STD_LOGIC  := '0';
+    outclk_0  : OUT STD_LOGIC ;
+    outclk_1  : OUT STD_LOGIC ;
+    outclk_2  : OUT STD_LOGIC ;
+    locked    : OUT STD_LOGIC 
+  );
+  END COMPONENT;
+
+  COMPONENT ip_arria10_e2sg_pll_clk25 IS
+  PORT
+  (
+    rst       : IN STD_LOGIC  := '0';
+    refclk    : IN STD_LOGIC  := '0';
+    outclk_0  : OUT STD_LOGIC ;
+    outclk_1  : OUT STD_LOGIC ;
+    outclk_2  : OUT STD_LOGIC ;
+    outclk_3  : OUT STD_LOGIC ;
+    locked    : OUT STD_LOGIC 
+  );
+  END COMPONENT;
+
+  COMPONENT ip_arria10_e2sg_pll_clk125 IS
+  PORT
+  (
+    rst       : IN STD_LOGIC  := '0';
+    refclk    : IN STD_LOGIC  := '0';
+    outclk_0  : OUT STD_LOGIC ;
+    outclk_1  : OUT STD_LOGIC ;
+    outclk_2  : OUT STD_LOGIC ;
+    outclk_3  : OUT STD_LOGIC ;
+    locked    : OUT STD_LOGIC 
+  );
+  END COMPONENT;
   
 END tech_pll_component_pkg;
 
diff --git a/libraries/technology/pll/tech_pll_xgmii_mac_clocks.vhd b/libraries/technology/pll/tech_pll_xgmii_mac_clocks.vhd
index ca3990942354cdc18be4a0cd19a240d9ea4239e8..674cb5379b1697ce7b32f48416e3947d8c4b8645 100644
--- a/libraries/technology/pll/tech_pll_xgmii_mac_clocks.vhd
+++ b/libraries/technology/pll/tech_pll_xgmii_mac_clocks.vhd
@@ -44,6 +44,7 @@ USE common_lib.common_pkg.ALL;
 LIBRARY ip_arria10_pll_xgmii_mac_clocks_altera_xcvr_fpll_a10_150;
 LIBRARY ip_arria10_e3sge3_pll_xgmii_mac_clocks_altera_xcvr_fpll_a10_151;
 LIBRARY ip_arria10_e1sg_pll_xgmii_mac_clocks_altera_xcvr_fpll_a10_180;
+LIBRARY ip_arria10_e2sg_pll_xgmii_mac_clocks_altera_xcvr_fpll_a10_194;
 
 ENTITY tech_pll_xgmii_mac_clocks IS
   GENERIC (
@@ -104,6 +105,18 @@ BEGIN
       outclk1       => i_clk_312
     );
   END GENERATE;
+
+  gen_ip_arria10_e2sg : IF g_technology=c_tech_arria10_e2sg GENERATE
+    u0 : ip_arria10_e2sg_pll_xgmii_mac_clocks
+    PORT MAP (
+      pll_refclk0   => refclk_644,
+      pll_powerdown => rst_in,
+      pll_locked    => pll_locked,
+      outclk0       => i_clk_156,
+      pll_cal_busy  => OPEN,
+      outclk1       => i_clk_312
+    );
+  END GENERATE;
   
   pll_locked_n <= NOT pll_locked;
   
diff --git a/libraries/technology/technology_pkg.vhd b/libraries/technology/technology_pkg.vhd
index 52b2a5404374720c7adfed9db9c66d097ab3968c..2d507dd10cf47e8087622161ac43b8ee4f8d67eb 100644
--- a/libraries/technology/technology_pkg.vhd
+++ b/libraries/technology/technology_pkg.vhd
@@ -48,7 +48,8 @@ PACKAGE technology_pkg IS
   CONSTANT c_tech_arria10            : INTEGER := 5;   -- e.g. used on UniBoard2 first proto (1 board version "00" may 2015)
   CONSTANT c_tech_arria10_e3sge3     : INTEGER := 6;   -- e.g. used on UniBoard2 second run (7 boards version "01" dec 2015)
   CONSTANT c_tech_arria10_e1sg       : INTEGER := 7;   -- e.g. used on UniBoard2 third run (5 'ARTS' boards version "01" feb 2017)
-  CONSTANT c_tech_nof_technologies   : INTEGER := 8;
+  CONSTANT c_tech_arria10_e2sg       : INTEGER := 8;   -- e.g. used on UniBoard2 third run (5 'ARTS' boards version "01" feb 2017)
+  CONSTANT c_tech_nof_technologies   : INTEGER := 9;
 
   -- Functions
   FUNCTION tech_sel_a_b(sel : BOOLEAN; a, b : STRING)  RETURN STRING;
diff --git a/libraries/technology/technology_select_pkg_unb2c.vhd b/libraries/technology/technology_select_pkg_unb2c.vhd
index c917c75addffbec503cff882baed27ca9a3c529b..90c39c8ce2d697b0858047605e8fb2d48f33736b 100644
--- a/libraries/technology/technology_select_pkg_unb2c.vhd
+++ b/libraries/technology/technology_select_pkg_unb2c.vhd
@@ -33,6 +33,6 @@ PACKAGE technology_select_pkg IS
  --CONSTANT c_tech_select_default : INTEGER := c_tech_stratixiv;
  --CONSTANT c_tech_select_default : INTEGER := c_tech_arria10;
  --CONSTANT c_tech_select_default : INTEGER := c_tech_arria10_e3sge3;
- CONSTANT c_tech_select_default : INTEGER := c_tech_arria10_e1sg;
+ CONSTANT c_tech_select_default : INTEGER := c_tech_arria10_e2sg;
   
 END technology_select_pkg;
diff --git a/libraries/technology/tse/hdllib.cfg b/libraries/technology/tse/hdllib.cfg
index 56d098e9b3533ac82bf3ca1f5a8e95647d16d07a..72a5ce131ed6b2709cd31234ac31e6f8831a3181 100644
--- a/libraries/technology/tse/hdllib.cfg
+++ b/libraries/technology/tse/hdllib.cfg
@@ -5,6 +5,7 @@ hdl_lib_uses_ip = ip_stratixiv_tse_sgmii_lvds        ip_stratixiv_tse_sgmii_gx
                   ip_arria10_tse_sgmii_lvds          ip_arria10_tse_sgmii_gx
                   ip_arria10_e3sge3_tse_sgmii_lvds   ip_arria10_e3sge3_tse_sgmii_gx
                   ip_arria10_e1sg_tse_sgmii_lvds     ip_arria10_e1sg_tse_sgmii_gx
+                  ip_arria10_e2sg_tse_sgmii_lvds     ip_arria10_e2sg_tse_sgmii_gx
 hdl_lib_uses_sim = tech_transceiver
 hdl_lib_technology = 
 hdl_lib_disclose_library_clause_names =
@@ -16,6 +17,8 @@ hdl_lib_disclose_library_clause_names =
     ip_arria10_e3sge3_tse_sgmii_gx    ip_arria10_e3sge3_tse_sgmii_gx_altera_eth_tse_151
     ip_arria10_e1sg_tse_sgmii_lvds    ip_arria10_e1sg_tse_sgmii_lvds_altera_eth_tse_180
     ip_arria10_e1sg_tse_sgmii_gx      ip_arria10_e1sg_tse_sgmii_gx_altera_eth_tse_180
+    ip_arria10_e2sg_tse_sgmii_lvds    ip_arria10_e2sg_tse_sgmii_lvds_altera_eth_tse_180
+    ip_arria10_e2sg_tse_sgmii_gx      ip_arria10_e2sg_tse_sgmii_gx_altera_eth_tse_180
 
 synth_files =
     tech_tse_component_pkg.vhd
@@ -24,6 +27,7 @@ synth_files =
     tech_tse_arria10.vhd
     tech_tse_arria10_e3sge3.vhd
     tech_tse_arria10_e1sg.vhd
+    tech_tse_arria10_e2sg.vhd
     tech_tse.vhd
     tb_tech_tse_pkg.vhd
 
diff --git a/libraries/technology/tse/tb_tech_tse_pkg.vhd b/libraries/technology/tse/tb_tech_tse_pkg.vhd
index 8cc33151b6020b5b72993a8941f413b83dfda008..801e1082466eed682da0c135674a34c1ab5c7d82 100644
--- a/libraries/technology/tse/tb_tech_tse_pkg.vhd
+++ b/libraries/technology/tse/tb_tech_tse_pkg.vhd
@@ -146,6 +146,7 @@ PACKAGE BODY tb_tech_tse_pkg IS
       WHEN c_tech_arria10        => proc_tech_tse_setup_arria10(c_promis_en, c_tse_tx_fifo_depth, c_tse_rx_fifo_depth, c_tx_ready_latency, src_mac, psc_access, mm_clk, mm_miso, mm_mosi);
       WHEN c_tech_arria10_e3sge3 => proc_tech_tse_setup_arria10(c_promis_en, c_tse_tx_fifo_depth, c_tse_rx_fifo_depth, c_tx_ready_latency, src_mac, psc_access, mm_clk, mm_miso, mm_mosi);
       WHEN c_tech_arria10_e1sg   => proc_tech_tse_setup_arria10(c_promis_en, c_tse_tx_fifo_depth, c_tse_rx_fifo_depth, c_tx_ready_latency, src_mac, psc_access, mm_clk, mm_miso, mm_mosi);
+      WHEN c_tech_arria10_e2sg   => proc_tech_tse_setup_arria10(c_promis_en, c_tse_tx_fifo_depth, c_tse_rx_fifo_depth, c_tx_ready_latency, src_mac, psc_access, mm_clk, mm_miso, mm_mosi);
       WHEN OTHERS              => proc_tech_tse_setup_stratixiv(c_promis_en, c_tse_tx_fifo_depth, c_tse_rx_fifo_depth, c_tx_ready_latency, src_mac, psc_access, mm_clk, mm_miso, mm_mosi); -- default to c_tech_stratixiv  
     END CASE;
   END proc_tech_tse_setup;
diff --git a/libraries/technology/tse/tech_tse.vhd b/libraries/technology/tse/tech_tse.vhd
index 49c6180925a05a56302b8eb6f9c970a6d4882b46..2afb13310bedc7f45b639377ae86dce758164165 100644
--- a/libraries/technology/tse/tech_tse.vhd
+++ b/libraries/technology/tse/tech_tse.vhd
@@ -176,6 +176,19 @@ BEGIN
               tse_led);
   END GENERATE;
 
+  gen_ip_arria10_e2sg : IF c_use_technology=TRUE AND g_technology=c_tech_arria10_e2sg GENERATE
+    u0 : ENTITY work.tech_tse_arria10_e2sg
+    GENERIC MAP (g_ETH_PHY)
+    PORT MAP (mm_rst, mm_clk, eth_clk, tx_snk_clk, rx_src_clk,
+              mm_sla_in, mm_sla_out,
+              tx_snk_in, tx_snk_out,
+              tx_mac_in, tx_mac_out,
+              rx_src_in, rx_src_out,
+              rx_mac_out,
+              eth_txp, eth_rxp,
+              tse_led);
+  END GENERATE;
+
   gen_sim_tse : IF c_use_sim_model=TRUE GENERATE
     u_sim_tse : sim_tse
     GENERIC MAP (g_sim_tx, g_sim_rx)
diff --git a/libraries/technology/tse/tech_tse_arria10_e2sg.vhd b/libraries/technology/tse/tech_tse_arria10_e2sg.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..81551c38d3ac57bd2fd7fb4fae64c5f464e2de28
--- /dev/null
+++ b/libraries/technology/tse/tech_tse_arria10_e2sg.vhd
@@ -0,0 +1,256 @@
+-------------------------------------------------------------------------------
+--
+-- 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/>.
+--
+-------------------------------------------------------------------------------
+
+LIBRARY IEEE, common_lib, dp_lib;
+USE IEEE.std_logic_1164.ALL;
+USE work.tech_tse_component_pkg.ALL;
+USE work.tech_tse_pkg.ALL;
+USE common_lib.common_mem_pkg.ALL;
+USE dp_lib.dp_stream_pkg.ALL;
+
+-- Declare IP libraries to ensure default binding in simulation. The IP library clause is ignored by synthesis.
+LIBRARY ip_arria10_e2sg_tse_sgmii_lvds_altera_eth_tse_194;
+LIBRARY ip_arria10_e2sg_tse_sgmii_gx_altera_eth_tse_194;
+
+ENTITY tech_tse_arria10_e2sg IS
+  GENERIC (
+    g_ETH_PHY      : STRING  := "LVDS" -- "LVDS" (default): uses LVDS IOs for ctrl_unb2_board, "XCVR": uses tranceiver PHY
+  );
+  PORT (
+    -- Clocks and reset
+    mm_rst         : IN  STD_LOGIC;
+    mm_clk         : IN  STD_LOGIC;
+    eth_clk        : IN  STD_LOGIC;
+    tx_snk_clk     : IN  STD_LOGIC;
+    rx_src_clk     : IN  STD_LOGIC;
+    
+    -- Memory Mapped Slave
+    mm_sla_in      : IN  t_mem_mosi;
+    mm_sla_out     : OUT t_mem_miso;
+    
+    -- MAC transmit interface
+    -- . ST sink
+    tx_snk_in      : IN  t_dp_sosi;
+    tx_snk_out     : OUT t_dp_siso;
+    -- . MAC specific
+    tx_mac_in      : IN  t_tech_tse_tx_mac;
+    tx_mac_out     : OUT t_tech_tse_tx_mac;
+    
+    -- MAC receive interface
+    -- . ST Source
+    rx_src_in      : IN  t_dp_siso;
+    rx_src_out     : OUT t_dp_sosi;
+    -- . MAC specific
+    rx_mac_out     : OUT t_tech_tse_rx_mac;
+
+    -- PHY interface
+    eth_txp        : OUT STD_LOGIC;
+    eth_rxp        : IN  STD_LOGIC;
+
+    tse_led        : OUT t_tech_tse_led
+  );
+END tech_tse_arria10_e2sg;
+
+ARCHITECTURE str OF tech_tse_arria10_e2sg IS
+
+  SIGNAL ff_tx_mod        : STD_LOGIC_VECTOR(c_tech_tse_empty_w-1 DOWNTO 0);
+  
+  SIGNAL ff_rx_out        : t_dp_sosi := c_dp_sosi_rst;
+  
+BEGIN
+
+  -- Default frame level flow control
+  tx_snk_out.xon <= '1';
+  
+  -- Force empty = 0 when eop = '0' to avoid TSE MAC bug of missing two bytes when empty = 2 (observed with v9.1)
+  ff_tx_mod <= tx_snk_in.empty(c_tech_tse_empty_w-1 DOWNTO 0) WHEN tx_snk_in.eop='1' ELSE (OTHERS=>'0');
+
+  -- Force unused bits and fields in rx_src_out to c_dp_sosi_rst to avoid confusing 'X' in wave window
+  rx_src_out <= ff_rx_out;
+  
+  u_LVDS_tse: IF g_ETH_PHY = "LVDS" GENERATE
+
+    u_tse : ip_arria10_e2sg_tse_sgmii_lvds
+      -- The tse_sgmii_lvds needs to be regenerated if its parameters are changed.
+      -- . ENABLE_SHIFT16  = 1   : Align packet headers to 32 bit, useful for Nios data handling
+      -- . ENABLE_SUP_ADDR = 0   : An extra MAC addresses can e.g. be used as service MAC for tests
+      -- . ENA_HASH        = 0   : A multi cast hash table can be used to address all nodes at once
+      -- . STAT_CNT_ENA    = 0   : PHY statistics counts are useful for monitoring, but not realy needed
+      -- . EG_FIFO         = 256 : Tx FIFO depth in nof 32 bit words (256 --> 1 M9K)
+      -- . ING_FIFO        = 256 : Rx FIFO depth in nof 32 bit words (256 --> 1 M9K)
+      -- . ENABLE_SGMII    = 0   : PHY access 1000BASE-X
+    PORT MAP (
+      -- MAC transmit interface
+      -- . Avalon ST
+      ff_tx_clk      => tx_snk_clk,
+      ff_tx_rdy      => tx_snk_out.ready,
+      ff_tx_data     => tx_snk_in.data(c_tech_tse_data_w-1 DOWNTO 0),
+      ff_tx_wren     => tx_snk_in.valid,
+      ff_tx_sop      => tx_snk_in.sop,
+      ff_tx_eop      => tx_snk_in.eop,
+      ff_tx_mod      => ff_tx_mod,
+      ff_tx_err      => tx_snk_in.err(0),
+      -- . MAC specific
+      ff_tx_crc_fwd  => tx_mac_in.crc_fwd,   -- when '0' MAC inserts CRC32 after eop
+      ff_tx_septy    => tx_mac_out.septy,    -- when '0' then tx FIFO goes above section-empty threshold
+      ff_tx_a_full   => tx_mac_out.a_full,   -- when '1' then tx FIFO goes above almost-full threshold
+      ff_tx_a_empty  => tx_mac_out.a_empty,  -- when '1' then tx FIFO goes below almost-empty threshold
+      tx_ff_uflow    => tx_mac_out.uflow,    -- when '1' then tx FIFO underflow
+      -- MAC receive interface
+      -- . Avalon ST
+      ff_rx_clk      => rx_src_clk,
+      ff_rx_rdy      => rx_src_in.ready,
+      ff_rx_data     => ff_rx_out.data(c_tech_tse_data_w-1 DOWNTO 0),
+      ff_rx_dval     => ff_rx_out.valid,
+      ff_rx_sop      => ff_rx_out.sop,
+      ff_rx_eop      => ff_rx_out.eop,
+      ff_rx_mod      => ff_rx_out.empty(c_tech_tse_empty_w-1 DOWNTO 0),
+      rx_err         => ff_rx_out.err(c_tech_tse_error_w-1 DOWNTO 0), -- [5] collision error (can only occur in half duplex mode)
+                                                                      -- [4] PHY error on GMII
+                                                                      -- [3] receive frame truncated due to FIFO overflow
+                                                                      -- [2] CRC-32 error
+                                                                      -- [1] invalid length
+                                                                      -- [0] = OR of [1:5]
+      -- . MAC specific
+      rx_err_stat    => rx_mac_out.ethertype,  -- [17,16] VLAN info, [15:0] Ethernet lentgh/type field
+      rx_frm_type    => rx_mac_out.frm_type,   -- [3]=VLAN, [2]=Broadcast, [1]=Multicast, [0]=Unicast
+      ff_rx_dsav     => rx_mac_out.dsav,       -- rx frame available, but not necessarily a complete frame
+      ff_rx_a_full   => rx_mac_out.a_full,     -- when '1' then rx FIFO goes above almost-full threshold
+      ff_rx_a_empty  => rx_mac_out.a_empty,    -- when '1' then rx FIFO goes below almost-empty threshold
+      -- Reset
+      reset          => mm_rst,           -- asynchronous reset (choose synchronous to mm_clk)
+      -- MM control interface
+      clk            => mm_clk,
+      reg_addr       => mm_sla_in.address(c_tech_tse_byte_addr_w-1 DOWNTO 2),
+      reg_data_out   => mm_sla_out.rddata(c_tech_tse_data_w-1 DOWNTO 0),
+      reg_rd         => mm_sla_in.rd,
+      reg_data_in    => mm_sla_in.wrdata(c_tech_tse_data_w-1 DOWNTO 0),
+      reg_wr         => mm_sla_in.wr,
+      reg_busy       => mm_sla_out.waitrequest,
+      -- Status LEDs
+      led_an         => tse_led.an,        -- '1' = autonegation completed
+      led_link       => tse_led.link,      -- '1' = successful link synchronisation
+      led_disp_err   => tse_led.disp_err,  -- TBI character error
+      led_char_err   => tse_led.char_err,  -- TBI disparity error
+      -- crs and col are only available with the SGMII bridge
+      led_crs        => tse_led.crs,       -- carrier sense '1' when there is tx/rx activity on the line
+      led_col        => tse_led.col,       -- tx collision detected (always '0' for full duplex)
+      -- Serial 1.25 Gbps
+      rx_recovclkout => OPEN,
+      ref_clk        => eth_clk,
+      txp            => eth_txp,
+      rxp            => eth_rxp
+    );
+
+  END GENERATE;
+  
+  u_XCVR_tse: IF g_ETH_PHY = "XCVR" GENERATE
+
+    u_tse : ip_arria10_e2sg_tse_sgmii_gx
+      -- The tse_sgmii_xcvr needs to be regenerated if its parameters are changed.
+      -- . ENABLE_SHIFT16  = 1   : Align packet headers to 32 bit, useful for Nios data handling
+      -- . ENABLE_SUP_ADDR = 0   : An extra MAC addresses can e.g. be used as service MAC for tests
+      -- . ENA_HASH        = 0   : A multi cast hash table can be used to address all nodes at once
+      -- . STAT_CNT_ENA    = 0   : PHY statistics counts are useful for monitoring, but not realy needed
+      -- . EG_FIFO         = 2048 : Tx FIFO depth in nof 32 bit words (2048 --> 4 M9K)
+      -- . ING_FIFO        = 2048 : Rx FIFO depth in nof 32 bit words (2048 --> 4 M9K)
+      -- . ENABLE_SGMII    = 0   : PHY access 1000BASE-X
+    PORT MAP (
+      -- MAC transmit interface
+      -- . Avalon ST
+      ff_tx_clk      => tx_snk_clk,
+      ff_tx_rdy      => tx_snk_out.ready,
+      ff_tx_data     => tx_snk_in.data(c_tech_tse_data_w-1 DOWNTO 0),
+      ff_tx_wren     => tx_snk_in.valid,
+      ff_tx_sop      => tx_snk_in.sop,
+      ff_tx_eop      => tx_snk_in.eop,
+      ff_tx_mod      => ff_tx_mod,
+      ff_tx_err      => tx_snk_in.err(0),
+      -- . MAC specific
+      ff_tx_crc_fwd  => tx_mac_in.crc_fwd,   -- when '0' MAC inserts CRC32 after eop
+      ff_tx_septy    => tx_mac_out.septy,    -- when '0' then tx FIFO goes above section-empty threshold
+      ff_tx_a_full   => tx_mac_out.a_full,   -- when '1' then tx FIFO goes above almost-full threshold
+      ff_tx_a_empty  => tx_mac_out.a_empty,  -- when '1' then tx FIFO goes below almost-empty threshold
+      tx_ff_uflow    => tx_mac_out.uflow,    -- when '1' then tx FIFO underflow
+      -- MAC receive interface
+      -- . Avalon ST
+      ff_rx_clk      => rx_src_clk,
+      ff_rx_rdy      => rx_src_in.ready,
+      ff_rx_data     => ff_rx_out.data(c_tech_tse_data_w-1 DOWNTO 0),
+      ff_rx_dval     => ff_rx_out.valid,
+      ff_rx_sop      => ff_rx_out.sop,
+      ff_rx_eop      => ff_rx_out.eop,
+      ff_rx_mod      => ff_rx_out.empty(c_tech_tse_empty_w-1 DOWNTO 0),
+      rx_err         => ff_rx_out.err(c_tech_tse_error_w-1 DOWNTO 0), -- [5] collision error (can only occur in half duplex mode)
+                                                                      -- [4] PHY error on GMII
+                                                                      -- [3] receive frame truncated due to FIFO overflow
+                                                                      -- [2] CRC-32 error
+                                                                      -- [1] invalid length
+                                                                      -- [0] = OR of [1:5]
+      -- . MAC specific
+      rx_err_stat    => rx_mac_out.ethertype,  -- [17,16] VLAN info, [15:0] Ethernet lentgh/type field
+      rx_frm_type    => rx_mac_out.frm_type,   -- [3]=VLAN, [2]=Broadcast, [1]=Multicast, [0]=Unicast
+      ff_rx_dsav     => rx_mac_out.dsav,       -- rx frame available, but not necessarily a complete frame
+      ff_rx_a_full   => rx_mac_out.a_full,     -- when '1' then rx FIFO goes above almost-full threshold
+      ff_rx_a_empty  => rx_mac_out.a_empty,    -- when '1' then rx FIFO goes below almost-empty threshold
+      -- Reset
+      reset          => mm_rst,           -- asynchronous reset (choose synchronous to mm_clk)
+      -- MM control interface
+      clk            => mm_clk,
+      reg_addr       => mm_sla_in.address(c_tech_tse_byte_addr_w-1 DOWNTO 2),
+      reg_data_out   => mm_sla_out.rddata(c_tech_tse_data_w-1 DOWNTO 0),
+      reg_rd         => mm_sla_in.rd,
+      reg_data_in    => mm_sla_in.wrdata(c_tech_tse_data_w-1 DOWNTO 0),
+      reg_wr         => mm_sla_in.wr,
+      reg_busy       => mm_sla_out.waitrequest,
+      -- Status LEDs
+      led_an         => tse_led.an,        -- '1' = autonegation completed
+      led_link       => tse_led.link,      -- '1' = successful link synchronisation
+      led_disp_err   => tse_led.disp_err,  -- TBI character error
+      led_char_err   => tse_led.char_err,  -- TBI disparity error
+      -- crs and col are only available with the SGMII bridge
+      led_crs        => tse_led.crs,       -- carrier sense '1' when there is tx/rx activity on the line
+      led_col        => tse_led.col,       -- tx collision detected (always '0' for full duplex)
+      -- Serial 1.25 Gbps
+      rx_recovclkout => OPEN,
+      ref_clk        => eth_clk,
+      txp            => eth_txp,
+      rxp            => eth_rxp,
+
+      -- GX connections ????
+      tx_serial_clk      => (others => '0'),  -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --                 tx_serial_clk.clk
+      rx_cdr_refclk      => '0',              -- : in  std_logic                     := '0';             --                 rx_cdr_refclk.clk
+      tx_analogreset     => (others => '0'),  -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --                tx_analogreset.tx_analogreset
+      tx_digitalreset    => (others => '0'),  -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --               tx_digitalreset.tx_digitalreset
+      rx_analogreset     => (others => '0'),  -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --                rx_analogreset.rx_analogreset
+      rx_digitalreset    => (others => '0'),  -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --               rx_digitalreset.rx_digitalreset
+      tx_cal_busy        => OPEN,             -- : out std_logic_vector(0 downto 0);                     --                   tx_cal_busy.tx_cal_busy
+      rx_cal_busy        => OPEN,             -- : out std_logic_vector(0 downto 0);                     --                   rx_cal_busy.rx_cal_busy
+      rx_set_locktodata  => (others => '0'),  -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --             rx_set_locktodata.rx_set_locktodata
+      rx_set_locktoref   => (others => '0'),  -- : in  std_logic_vector(0 downto 0)  := (others => '0'); --              rx_set_locktoref.rx_set_locktoref
+      rx_is_lockedtoref  => OPEN,             -- : out std_logic_vector(0 downto 0);                     --             rx_is_lockedtoref.rx_is_lockedtoref
+      rx_is_lockedtodata => OPEN              -- : out std_logic_vector(0 downto 0)                      --            rx_is_lockedtodata.rx_is_lockedtodata
+    );
+    
+  END GENERATE;
+  
+END str;
diff --git a/libraries/technology/tse/tech_tse_component_pkg.vhd b/libraries/technology/tse/tech_tse_component_pkg.vhd
index 64cac8c994213b141addda3a35238437cc8be30b..ec3f497a8e67769cbc0c51efbf08f6a2cabc4ae7 100644
--- a/libraries/technology/tse/tech_tse_component_pkg.vhd
+++ b/libraries/technology/tse/tech_tse_component_pkg.vhd
@@ -497,4 +497,120 @@ PACKAGE tech_tse_component_pkg IS
   );
   END COMPONENT;
 
+  ------------------------------------------------------------------------------
+  -- ip_arria10_e2sg
+  ------------------------------------------------------------------------------
+
+  COMPONENT ip_arria10_e2sg_tse_sgmii_lvds IS
+  PORT (
+    reg_data_out   : out std_logic_vector(31 downto 0);                    --                  control_port.readdata
+    reg_rd         : in  std_logic                     := '0';             --                              .read
+    reg_data_in    : in  std_logic_vector(31 downto 0) := (others => '0'); --                              .writedata
+    reg_wr         : in  std_logic                     := '0';             --                              .write
+    reg_busy       : out std_logic;                                        --                              .waitrequest
+    reg_addr       : in  std_logic_vector(7 downto 0)  := (others => '0'); --                              .address
+    clk            : in  std_logic                     := '0';             -- control_port_clock_connection.clk
+    ff_tx_crc_fwd  : in  std_logic                     := '0';             --           mac_misc_connection.ff_tx_crc_fwd
+    ff_tx_septy    : out std_logic;                                        --                              .ff_tx_septy
+    tx_ff_uflow    : out std_logic;                                        --                              .tx_ff_uflow
+    ff_tx_a_full   : out std_logic;                                        --                              .ff_tx_a_full
+    ff_tx_a_empty  : out std_logic;                                        --                              .ff_tx_a_empty
+    rx_err_stat    : out std_logic_vector(17 downto 0);                    --                              .rx_err_stat
+    rx_frm_type    : out std_logic_vector(3 downto 0);                     --                              .rx_frm_type
+    ff_rx_dsav     : out std_logic;                                        --                              .ff_rx_dsav
+    ff_rx_a_full   : out std_logic;                                        --                              .ff_rx_a_full
+    ff_rx_a_empty  : out std_logic;                                        --                              .ff_rx_a_empty
+    ref_clk        : in  std_logic                     := '0';             --  pcs_ref_clk_clock_connection.clk
+    ff_rx_data     : out std_logic_vector(31 downto 0);                    --                       receive.data
+    ff_rx_eop      : out std_logic;                                        --                              .endofpacket
+    rx_err         : out std_logic_vector(5 downto 0);                     --                              .error
+    ff_rx_mod      : out std_logic_vector(1 downto 0);                     --                              .empty
+    ff_rx_rdy      : in  std_logic                     := '0';             --                              .ready
+    ff_rx_sop      : out std_logic;                                        --                              .startofpacket
+    ff_rx_dval     : out std_logic;                                        --                              .valid
+    ff_rx_clk      : in  std_logic                     := '0';             --      receive_clock_connection.clk
+    reset          : in  std_logic                     := '0';             --              reset_connection.reset
+    rx_recovclkout : out std_logic;                                        --     serdes_control_connection.export
+    rxp            : in  std_logic                     := '0';             --             serial_connection.rxp_0
+    txp            : out std_logic;                                        --                              .txp_0
+    led_crs        : out std_logic;                                        --         status_led_connection.crs
+    led_link       : out std_logic;                                        --                              .link
+    led_col        : out std_logic;                                        --                              .col
+    led_an         : out std_logic;                                        --                              .an
+    led_char_err   : out std_logic;                                        --                              .char_err
+    led_disp_err   : out std_logic;                                        --                              .disp_err
+    ff_tx_data     : in  std_logic_vector(31 downto 0) := (others => '0'); --                      transmit.data
+    ff_tx_eop      : in  std_logic                     := '0';             --                              .endofpacket
+    ff_tx_err      : in  std_logic                     := '0';             --                              .error
+    ff_tx_mod      : in  std_logic_vector(1 downto 0)  := (others => '0'); --                              .empty
+    ff_tx_rdy      : out std_logic;                                        --                              .ready
+    ff_tx_sop      : in  std_logic                     := '0';             --                              .startofpacket
+    ff_tx_wren     : in  std_logic                     := '0';             --                              .valid
+    ff_tx_clk      : in  std_logic                     := '0'              --     transmit_clock_connection.clk
+  );
+  END COMPONENT;
+
+
+  COMPONENT ip_arria10_e2sg_tse_sgmii_gx IS
+  PORT (
+    reg_data_out       : out std_logic_vector(31 downto 0);                    --                  control_port.readdata
+    reg_rd             : in  std_logic                     := '0';             --                              .read
+    reg_data_in        : in  std_logic_vector(31 downto 0) := (others => '0'); --                              .writedata
+    reg_wr             : in  std_logic                     := '0';             --                              .write
+    reg_busy           : out std_logic;                                        --                              .waitrequest
+    reg_addr           : in  std_logic_vector(7 downto 0)  := (others => '0'); --                              .address
+    clk                : in  std_logic                     := '0';             -- control_port_clock_connection.clk
+    ff_tx_crc_fwd      : in  std_logic                     := '0';             --           mac_misc_connection.ff_tx_crc_fwd
+    ff_tx_septy        : out std_logic;                                        --                              .ff_tx_septy
+    tx_ff_uflow        : out std_logic;                                        --                              .tx_ff_uflow
+    ff_tx_a_full       : out std_logic;                                        --                              .ff_tx_a_full
+    ff_tx_a_empty      : out std_logic;                                        --                              .ff_tx_a_empty
+    rx_err_stat        : out std_logic_vector(17 downto 0);                    --                              .rx_err_stat
+    rx_frm_type        : out std_logic_vector(3 downto 0);                     --                              .rx_frm_type
+    ff_rx_dsav         : out std_logic;                                        --                              .ff_rx_dsav
+    ff_rx_a_full       : out std_logic;                                        --                              .ff_rx_a_full
+    ff_rx_a_empty      : out std_logic;                                        --                              .ff_rx_a_empty
+    ref_clk            : in  std_logic                     := '0';             --  pcs_ref_clk_clock_connection.clk
+    ff_rx_data         : out std_logic_vector(31 downto 0);                    --                       receive.data
+    ff_rx_eop          : out std_logic;                                        --                              .endofpacket
+    rx_err             : out std_logic_vector(5 downto 0);                     --                              .error
+    ff_rx_mod          : out std_logic_vector(1 downto 0);                     --                              .empty
+    ff_rx_rdy          : in  std_logic                     := '0';             --                              .ready
+    ff_rx_sop          : out std_logic;                                        --                              .startofpacket
+    ff_rx_dval         : out std_logic;                                        --                              .valid
+    ff_rx_clk          : in  std_logic                     := '0';             --      receive_clock_connection.clk
+    reset              : in  std_logic                     := '0';             --              reset_connection.reset
+    rx_analogreset     : in  std_logic_vector(0 downto 0)  := (others => '0'); --                rx_analogreset.rx_analogreset
+    rx_cal_busy        : out std_logic_vector(0 downto 0);                     --                   rx_cal_busy.rx_cal_busy
+    rx_cdr_refclk      : in  std_logic                     := '0';             --                 rx_cdr_refclk.clk
+    rx_digitalreset    : in  std_logic_vector(0 downto 0)  := (others => '0'); --               rx_digitalreset.rx_digitalreset
+    rx_is_lockedtodata : out std_logic_vector(0 downto 0);                     --            rx_is_lockedtodata.rx_is_lockedtodata
+    rx_is_lockedtoref  : out std_logic_vector(0 downto 0);                     --             rx_is_lockedtoref.rx_is_lockedtoref
+    rx_set_locktodata  : in  std_logic_vector(0 downto 0)  := (others => '0'); --             rx_set_locktodata.rx_set_locktodata
+    rx_set_locktoref   : in  std_logic_vector(0 downto 0)  := (others => '0'); --              rx_set_locktoref.rx_set_locktoref
+    rx_recovclkout     : out std_logic;                                        --     serdes_control_connection.export
+    rxp                : in  std_logic                     := '0';             --             serial_connection.rxp
+    txp                : out std_logic;                                        --                              .txp
+    led_crs            : out std_logic;                                        --         status_led_connection.crs
+    led_link           : out std_logic;                                        --                              .link
+    led_panel_link     : out std_logic;                                        --                              .panel_link
+    led_col            : out std_logic;                                        --                              .col
+    led_an             : out std_logic;                                        --                              .an
+    led_char_err       : out std_logic;                                        --                              .char_err
+    led_disp_err       : out std_logic;                                        --                              .disp_err
+    ff_tx_data         : in  std_logic_vector(31 downto 0) := (others => '0'); --                      transmit.data
+    ff_tx_eop          : in  std_logic                     := '0';             --                              .endofpacket
+    ff_tx_err          : in  std_logic                     := '0';             --                              .error
+    ff_tx_mod          : in  std_logic_vector(1 downto 0)  := (others => '0'); --                              .empty
+    ff_tx_rdy          : out std_logic;                                        --                              .ready
+    ff_tx_sop          : in  std_logic                     := '0';             --                              .startofpacket
+    ff_tx_wren         : in  std_logic                     := '0';             --                              .valid
+    ff_tx_clk          : in  std_logic                     := '0';             --     transmit_clock_connection.clk
+    tx_analogreset     : in  std_logic_vector(0 downto 0)  := (others => '0'); --                tx_analogreset.tx_analogreset
+    tx_cal_busy        : out std_logic_vector(0 downto 0);                     --                   tx_cal_busy.tx_cal_busy
+    tx_digitalreset    : in  std_logic_vector(0 downto 0)  := (others => '0'); --               tx_digitalreset.tx_digitalreset
+    tx_serial_clk      : in  std_logic_vector(0 downto 0)  := (others => '0')  --                 tx_serial_clk.clk
+  );
+  END COMPONENT;
+
 END tech_tse_component_pkg;