diff --git a/libraries/technology/10gbase_r/hdllib.cfg b/libraries/technology/10gbase_r/hdllib.cfg
index 6fd0f1dfc474cd08e7ebac4f872060e433a71daa..9b6302cee07394995810edc824cda4cfd3f5e6b7 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 = 
@@ -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_151
+    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..a48d4bc6571fcd72b8f853beb2c1c5399d04c811
--- /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_180;
+LIBRARY ip_arria10_e2sg_phy_10gbase_r_3_altera_xcvr_native_a10_180;
+LIBRARY ip_arria10_e2sg_phy_10gbase_r_4_altera_xcvr_native_a10_180;
+LIBRARY ip_arria10_e2sg_phy_10gbase_r_12_altera_xcvr_native_a10_180;
+LIBRARY ip_arria10_e2sg_phy_10gbase_r_24_altera_xcvr_native_a10_180;
+LIBRARY ip_arria10_e2sg_phy_10gbase_r_48_altera_xcvr_native_a10_180;
+LIBRARY ip_arria10_e2sg_transceiver_pll_10g_altera_xcvr_atx_pll_a10_180;
+LIBRARY ip_arria10_e2sg_transceiver_reset_controller_1_altera_xcvr_reset_control_180;
+LIBRARY ip_arria10_e2sg_transceiver_reset_controller_4_altera_xcvr_reset_control_180;
+LIBRARY ip_arria10_e2sg_transceiver_reset_controller_12_altera_xcvr_reset_control_180;
+LIBRARY ip_arria10_e2sg_transceiver_reset_controller_24_altera_xcvr_reset_control_180;
+LIBRARY ip_arria10_e2sg_transceiver_reset_controller_48_altera_xcvr_reset_control_180;
+
+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..d0efd721c144144382e46e7ced177bb48306fbde 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_e2Ssg_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..ec34468154f7d8a1e690ddec70b72df7f03e8dc4 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_e1sg : 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..c43b39cf5c12d362b45b9adb8f895359e5f17661 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_e1sg_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..a409789620ceb0978bc10892db447ee3db5ff0ba 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_esg_voltage_sense_altera_voltage_sense_180;
 
 
 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..d4dcea39a9e91d98ff824827e80aa2c5983c8558 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_e1sg_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_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..132a96bf48e9042ff866aac9261f6dcfbd2cfb80
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim =  ip_arria10_e2sg_altclkctrl_180
+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..c3522eac8615ad4fa5f72cec6cfa111a5668f7d5
--- /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_180 ./work/
+  vlog "$IP_DIR/../altmult_complex_180/synth/ip_arria10_e2sg_complex_mult_altmult_complex_180_nkpx3mi.v" -work altmult_complex_180
+  #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..5fe17d7cf2d9b78a2c21fc94f9a5f9e1e99a9b31
--- /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_180
+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..9dc7dea90223fbe552033843df38ead3707ef6c7
--- /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_180  ./work/
+    vmap ip_arria10_ddio_in_1_altera_gpio_180       ./work/
+    
+    vlog -sv "$IP_DIR/../altera_gpio_core_180/sim/mentor/altera_gpio.sv"                        -work ip_arria10_ddio_in_1_altera_gpio_core_180
+    
+    vcom     "$IP_DIR/../altera_gpio_180/sim/ip_arria10_ddio_in_1_altera_gpio_180_umwov7y.vhd"  -work ip_arria10_ddio_in_1_altera_gpio_180     
+    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_180 ./work/
+    vmap ip_arria10_ddio_out_1_altera_gpio_180      ./work/    
+    
+    vlog -sv "$IP_DIR/../altera_gpio_core_180/sim/mentor/altera_gpio.sv"                        -work ip_arria10_ddio_out_1_altera_gpio_core_180
+    
+    vcom     "$IP_DIR/../altera_gpio_180/sim/ip_arria10_ddio_out_1_altera_gpio_180_c3jcq7i.vhd" -work ip_arria10_ddio_out_1_altera_gpio_180     
+    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..27316bba4be0b2742ec1fd35669bbf8c0c09aad6
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_merlin_master_translator_180 ip_arria10_e2sg_altera_emif_cal_slave_nf_180 ip_arria10_e2sg_altera_avalon_onchip_memory2_180 ip_arria10_e2sg_altera_mm_interconnect_180 ip_arria10_e2sg_altera_reset_controller_180 ip_arria10_e2sg_altera_emif_arch_nf_180 ip_arria10_e2sg_altera_emif_180 ip_arria10_e2sg_altera_avalon_mm_bridge_180 ip_arria10_e2sg_altera_merlin_slave_translator_180 ip_arria10_e2sg_altera_avalon_sc_fifo_180 ip_arria10_e2sg_altera_avalon_st_packets_to_bytes_180 ip_arria10_e2sg_altera_ip_col_if_180 ip_arria10_e2sg_altera_jtag_dc_streaming_180 ip_arria10_e2sg_alt_mem_if_jtag_master_180 ip_arria10_e2sg_altera_avalon_st_bytes_to_packets_180 ip_arria10_e2sg_altera_avalon_packets_to_master_180 ip_arria10_e2sg_channel_adapter_180 ip_arria10_e2sg_timing_adapter_180
+
+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..ad4fc49ab4fe3afa4fc606e7442320901c26a26b
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_merlin_master_translator_180 ip_arria10_e2sg_altera_emif_cal_slave_nf_180 ip_arria10_e2sg_altera_avalon_onchip_memory2_180 ip_arria10_e2sg_altera_mm_interconnect_180 ip_arria10_e2sg_altera_reset_controller_180 ip_arria10_e2sg_altera_emif_arch_nf_180 ip_arria10_e2sg_altera_emif_180 ip_arria10_e2sg_altera_avalon_mm_bridge_180 ip_arria10_e2sg_altera_merlin_slave_translator_180
+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..d3d03d20d597882aff8f6a889c304868f273cc79
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_asmi_parallel_180
+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..348f30e1b597e086b6994fafe076e6956be9a538
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_remote_update_180
+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..37cd857cffe74616f8ae47e8d8fc77f4af6b1f1a
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_fpll_a10_180 
+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..e0b939fec744b93c49bcfc0064c622b24a781cf3
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_fpll_a10_180
+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..a936c6c687a3b00616ba7fc4d2ba3af701d0fbec
--- /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.qsys
+    ip_arria10_e2sg_jesd204b_rx_core_pll.qsys
+    ip_arria10_e2sg_jesd204b_rx_reset_seq.qsys
+    ip_arria10_e2sg_jesd204b_rx_xcvr_reset_control_12.qsys
+
+
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..70aea1f5b102f3aa37fb0aefb87ccf793e81b113
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx.qsys
@@ -0,0 +1,3598 @@
+<?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 $system
+   {
+   }
+   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>altera_jesd204</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"><![CDATA[<boundaryDefinition>
+    <interfaces>
+        <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>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_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_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>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>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>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>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>
+        <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>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_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_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_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_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>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_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_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_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>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_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_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_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_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>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>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>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_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_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_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_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>
+    </interfaces>
+</boundaryDefinition>]]></parameter>
+  <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">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..cd75f5aaff5bcf7698fdfa8131ec61f6721f3e88
--- /dev/null
+++ b/libraries/technology/ip_arria10_e2sg/jesd204b/ip_arria10_e2sg_jesd204b_rx_core_pll.ip
@@ -0,0 +1,4186 @@
+<?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_core_pll</spirit:library>
+  <spirit:name>core_pll</spirit:name>
+  <spirit:version>18.0</spirit:version>
+  <spirit:busInterfaces>
+    <spirit:busInterface>
+      <spirit:name>locked</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>locked</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>outclk0</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="clock" spirit:version="18.0"></spirit:busType>
+      <spirit:master></spirit:master>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>clk</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>outclk_0</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedDirectClock</spirit:name>
+          <spirit:displayName>Associated direct clock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedDirectClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clockRate</spirit:name>
+          <spirit:displayName>Clock rate</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="clockRate">100000000</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clockRateKnown</spirit:name>
+          <spirit:displayName>Clock rate known</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="clockRateKnown">true</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: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>outclk1</spirit:name>
+      <spirit:busType spirit:vendor="altera" spirit:library="altera" spirit:name="clock" spirit:version="18.0"></spirit:busType>
+      <spirit:master></spirit:master>
+      <spirit:portMaps>
+        <spirit:portMap>
+          <spirit:logicalPort>
+            <spirit:name>clk</spirit:name>
+          </spirit:logicalPort>
+          <spirit:physicalPort>
+            <spirit:name>outclk_1</spirit:name>
+          </spirit:physicalPort>
+        </spirit:portMap>
+      </spirit:portMaps>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>associatedDirectClock</spirit:name>
+          <spirit:displayName>Associated direct clock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="associatedDirectClock"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clockRate</spirit:name>
+          <spirit:displayName>Clock rate</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="clockRate">200000000</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clockRateKnown</spirit:name>
+          <spirit:displayName>Clock rate known</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="clockRateKnown">true</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: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>refclk</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>refclk</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">200000000</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: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>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>rst</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: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_iopll</spirit:modelName>
+        <spirit:fileSetRef>
+          <spirit:localName>QUARTUS_SYNTH</spirit:localName>
+        </spirit:fileSetRef>
+      </spirit:view>
+    </spirit:views>
+    <spirit:ports>
+      <spirit:port>
+        <spirit:name>rst</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>refclk</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>locked</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>outclk_0</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>outclk_1</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_core_pll</spirit:library>
+      <spirit:name>altera_iopll</spirit:name>
+      <spirit:version>18.0</spirit:version>
+    </altera:entity_info>
+    <altera:altera_module_parameters>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>gui_device_family</spirit:name>
+          <spirit:displayName>Device Family</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_device_family">Arria 10</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_device_component</spirit:name>
+          <spirit:displayName>Component</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_device_component">10AX115U3F45E2SG</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_device_speed_grade</spirit:name>
+          <spirit:displayName>Speed Grade</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_device_speed_grade">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_debug_mode</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_debug_mode">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_skip_sdc_generation</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_skip_sdc_generation">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_include_iossm</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_include_iossm">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_cal_code_hex_file</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_cal_code_hex_file">iossm.hex</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_parameter_table_hex_file</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_parameter_table_hex_file">seq_params_sim.hex</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_pll_tclk_mux_en</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_pll_tclk_mux_en">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_pll_tclk_sel</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_pll_tclk_sel">pll_tclk_m_src</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_pll_vco_freq_band_0</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_pll_vco_freq_band_0">pll_freq_clk0_disabled</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_pll_vco_freq_band_1</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_pll_vco_freq_band_1">pll_freq_clk1_disabled</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_pll_freqcal_en</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_pll_freqcal_en">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_pll_freqcal_req_flag</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_pll_freqcal_req_flag">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_cal_converge</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_cal_converge">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_cal_error</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_cal_error">cal_clean</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_pll_cal_done</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_pll_cal_done">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_pll_type</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_pll_type">S10_Simple</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_pll_m_cnt_in_src</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_pll_m_cnt_in_src">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_c_cnt_in_src0</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_c_cnt_in_src0">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_c_cnt_in_src1</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_c_cnt_in_src1">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_c_cnt_in_src2</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_c_cnt_in_src2">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_c_cnt_in_src3</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_c_cnt_in_src3">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_c_cnt_in_src4</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_c_cnt_in_src4">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_c_cnt_in_src5</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_c_cnt_in_src5">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_c_cnt_in_src6</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_c_cnt_in_src6">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_c_cnt_in_src7</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_c_cnt_in_src7">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_c_cnt_in_src8</spirit:name>
+          <spirit:displayName></spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_c_cnt_in_src8">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>system_info_device_family</spirit:name>
+          <spirit:displayName>Device Family</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="system_info_device_family">Arria 10</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>system_info_device_component</spirit:name>
+          <spirit:displayName>Component</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="system_info_device_component">10AX115U3F45E2SG</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>system_info_device_speed_grade</spirit:name>
+          <spirit:displayName>Speed Grade</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="system_info_device_speed_grade">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>system_part_trait_speed_grade</spirit:name>
+          <spirit:displayName>Speed Grade Trait</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="system_part_trait_speed_grade">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_usr_device_speed_grade</spirit:name>
+          <spirit:displayName>Speed Grade</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_usr_device_speed_grade">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_en_reconf</spirit:name>
+          <spirit:displayName>Enable dynamic reconfiguration of PLL</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_en_reconf">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_en_dps_ports</spirit:name>
+          <spirit:displayName>Enable access to dynamic phase shift ports</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_en_dps_ports">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_pll_mode</spirit:name>
+          <spirit:displayName>PLL Mode</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_pll_mode">Integer-N PLL</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_use_logical</spirit:name>
+          <spirit:displayName>Use logical PLL</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_use_logical">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_reference_clock_frequency</spirit:name>
+          <spirit:displayName>Reference Clock Frequency</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_reference_clock_frequency">200.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_use_coreclk</spirit:name>
+          <spirit:displayName>Refclk source is global clock</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_use_coreclk">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_refclk_might_change</spirit:name>
+          <spirit:displayName>My reference clock frequency might change</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_refclk_might_change">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_fractional_cout</spirit:name>
+          <spirit:displayName>Fractional carry out</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_fractional_cout">32</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_prot_mode</spirit:name>
+          <spirit:displayName>prot_mode</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_prot_mode">UNUSED</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_dsm_out_sel</spirit:name>
+          <spirit:displayName>DSM Order</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_dsm_out_sel">1st_order</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_use_locked</spirit:name>
+          <spirit:displayName>Enable locked output port</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_use_locked">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_en_adv_params</spirit:name>
+          <spirit:displayName>Enable physical output clock parameters</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_en_adv_params">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_pll_bandwidth_preset</spirit:name>
+          <spirit:displayName>PLL Bandwidth Preset</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_pll_bandwidth_preset">Low</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_lock_setting</spirit:name>
+          <spirit:displayName>Lock Threshold Setting</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_lock_setting">Low Lock Time</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_pll_auto_reset</spirit:name>
+          <spirit:displayName>PLL Auto Reset</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_pll_auto_reset">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_en_lvds_ports</spirit:name>
+          <spirit:displayName>Access to PLL LVDS_CLK/LOADEN output port</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_en_lvds_ports">Disabled</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_operation_mode</spirit:name>
+          <spirit:displayName>Compensation Mode</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_operation_mode">source synchronous</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_feedback_clock</spirit:name>
+          <spirit:displayName>Feedback Clock</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_feedback_clock">Global Clock</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_clock_to_compensate</spirit:name>
+          <spirit:displayName>Compensated Outclk</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_clock_to_compensate">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_use_NDFB_modes</spirit:name>
+          <spirit:displayName>Use Nondedicated Feedback Path</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_use_NDFB_modes">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_refclk_switch</spirit:name>
+          <spirit:displayName>Create a second input clock signal 'refclk1'</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_refclk_switch">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_refclk1_frequency</spirit:name>
+          <spirit:displayName>Second Reference Clock Frequency</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_refclk1_frequency">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_en_phout_ports</spirit:name>
+          <spirit:displayName>Enable access to PLL DPA output port</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_en_phout_ports">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phout_division</spirit:name>
+          <spirit:displayName>PLL DPA output division</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_phout_division">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_en_extclkout_ports</spirit:name>
+          <spirit:displayName>Enable access to PLL external clock output port</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_en_extclkout_ports">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_number_of_clocks</spirit:name>
+          <spirit:displayName>Number Of Clocks</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_number_of_clocks">2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_multiply_factor</spirit:name>
+          <spirit:displayName>Multiply Factor (M-Counter)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_multiply_factor">6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_divide_factor_n</spirit:name>
+          <spirit:displayName>Divide Factor (N-Counter)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_divide_factor_n">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_frac_multiply_factor</spirit:name>
+          <spirit:displayName>Fractional Multiply Factor (K)</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_frac_multiply_factor">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_fix_vco_frequency</spirit:name>
+          <spirit:displayName>Specify VCO frequency</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_fix_vco_frequency">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_fixed_vco_frequency</spirit:name>
+          <spirit:displayName>Desired VCO Frequency</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_fixed_vco_frequency">600.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_vco_frequency</spirit:name>
+          <spirit:displayName>Actual VCO Frequency</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_vco_frequency">600.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_enable_output_counter_cascading</spirit:name>
+          <spirit:displayName>Enable output counter cascading</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_enable_output_counter_cascading">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_mif_gen_options</spirit:name>
+          <spirit:displayName>MIF Generation Options</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_mif_gen_options">Generate New MIF File</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_new_mif_file_path</spirit:name>
+          <spirit:displayName>Path to New MIF file</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_new_mif_file_path">~/pll.mif</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_existing_mif_file_path</spirit:name>
+          <spirit:displayName>Path to Existing MIF file</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_existing_mif_file_path">~/pll.mif</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_mif_config_name</spirit:name>
+          <spirit:displayName>Name of Current Configuration</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_mif_config_name">unnamed</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_active_clk</spirit:name>
+          <spirit:displayName>Create an 'active_clk' signal to indicate the input clock in use</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_active_clk">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_clk_bad</spirit:name>
+          <spirit:displayName>Create a 'clkbad' signal for each of the input clocks</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_clk_bad">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_switchover_mode</spirit:name>
+          <spirit:displayName>Switchover Mode</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_switchover_mode">Automatic Switchover</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_switchover_delay</spirit:name>
+          <spirit:displayName>Switchover Delay</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_switchover_delay">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_enable_cascade_out</spirit:name>
+          <spirit:displayName>Create a 'cascade_out' signal to connect to a downstream PLL</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_enable_cascade_out">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_cascade_outclk_index</spirit:name>
+          <spirit:displayName>cascade_out source</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_cascade_outclk_index">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_enable_cascade_in</spirit:name>
+          <spirit:displayName>Create an 'adjpllin' (cascade in) signal to connect to an upstream PLL through IO Column Cascading</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_enable_cascade_in">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_enable_permit_cal</spirit:name>
+          <spirit:displayName>Connect to an upstream PLL through Core Clock Network Cascading (create a permit_cal input signal)</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_enable_permit_cal">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_pll_cascading_mode</spirit:name>
+          <spirit:displayName>Connection Signal Type to Upstream PLL</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_pll_cascading_mode">adjpllin</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_enable_mif_dps</spirit:name>
+          <spirit:displayName>Enable Dynamic Phase Shift for MIF streaming</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_enable_mif_dps">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_dps_cntr</spirit:name>
+          <spirit:displayName>DPS Counter Selection</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_dps_cntr">C0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_dps_num</spirit:name>
+          <spirit:displayName>Number of Dynamic Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_dps_num">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_dps_dir</spirit:name>
+          <spirit:displayName>Dynamic Phase Shift Direction</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_dps_dir">Positive</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_extclkout_0_source</spirit:name>
+          <spirit:displayName>extclk_out[0] source</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_extclkout_0_source">C0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_extclkout_1_source</spirit:name>
+          <spirit:displayName>extclk_out[1] source</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_extclkout_1_source">C0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_clock_name_global</spirit:name>
+          <spirit:displayName>Give clocks global names</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_clock_name_global">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_clock_name_string0</spirit:name>
+          <spirit:displayName>Clock Name</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_clock_name_string0">link_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_clock_name_string1</spirit:name>
+          <spirit:displayName>Clock Name</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_clock_name_string1">frame_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_clock_name_string2</spirit:name>
+          <spirit:displayName>Clock Name</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_clock_name_string2">outclk2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_clock_name_string3</spirit:name>
+          <spirit:displayName>Clock Name</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_clock_name_string3">outclk3</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_clock_name_string4</spirit:name>
+          <spirit:displayName>Clock Name</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_clock_name_string4">outclk4</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_clock_name_string5</spirit:name>
+          <spirit:displayName>Clock Name</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_clock_name_string5">outclk5</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_clock_name_string6</spirit:name>
+          <spirit:displayName>Clock Name</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_clock_name_string6">outclk6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_clock_name_string7</spirit:name>
+          <spirit:displayName>Clock Name</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_clock_name_string7">outclk7</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_clock_name_string8</spirit:name>
+          <spirit:displayName>Clock Name</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_clock_name_string8">outclk8</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_clock_name_string9</spirit:name>
+          <spirit:displayName>Clock Name</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_clock_name_string9">outclk9</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_clock_name_string10</spirit:name>
+          <spirit:displayName>Clock Name</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_clock_name_string10">outclk10</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_clock_name_string11</spirit:name>
+          <spirit:displayName>Clock Name</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_clock_name_string11">outclk11</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_clock_name_string12</spirit:name>
+          <spirit:displayName>Clock Name</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_clock_name_string12">outclk12</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_clock_name_string13</spirit:name>
+          <spirit:displayName>Clock Name</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_clock_name_string13">outclk13</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_clock_name_string14</spirit:name>
+          <spirit:displayName>Clock Name</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_clock_name_string14">outclk14</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_clock_name_string15</spirit:name>
+          <spirit:displayName>Clock Name</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_clock_name_string15">outclk15</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_clock_name_string16</spirit:name>
+          <spirit:displayName>Clock Name</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_clock_name_string16">outclk16</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_clock_name_string17</spirit:name>
+          <spirit:displayName>Clock Name</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_clock_name_string17">outclk17</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_divide_factor_c0</spirit:name>
+          <spirit:displayName>Divide Factor (C-Counter)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_divide_factor_c0">6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_divide_factor_c1</spirit:name>
+          <spirit:displayName>Divide Factor (C-Counter)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_divide_factor_c1">6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_divide_factor_c2</spirit:name>
+          <spirit:displayName>Divide Factor (C-Counter)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_divide_factor_c2">6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_divide_factor_c3</spirit:name>
+          <spirit:displayName>Divide Factor (C-Counter)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_divide_factor_c3">6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_divide_factor_c4</spirit:name>
+          <spirit:displayName>Divide Factor (C-Counter)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_divide_factor_c4">6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_divide_factor_c5</spirit:name>
+          <spirit:displayName>Divide Factor (C-Counter)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_divide_factor_c5">6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_divide_factor_c6</spirit:name>
+          <spirit:displayName>Divide Factor (C-Counter)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_divide_factor_c6">6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_divide_factor_c7</spirit:name>
+          <spirit:displayName>Divide Factor (C-Counter)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_divide_factor_c7">6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_divide_factor_c8</spirit:name>
+          <spirit:displayName>Divide Factor (C-Counter)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_divide_factor_c8">6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_divide_factor_c9</spirit:name>
+          <spirit:displayName>Divide Factor (C-Counter)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_divide_factor_c9">6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_divide_factor_c10</spirit:name>
+          <spirit:displayName>Divide Factor (C-Counter)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_divide_factor_c10">6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_divide_factor_c11</spirit:name>
+          <spirit:displayName>Divide Factor (C-Counter)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_divide_factor_c11">6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_divide_factor_c12</spirit:name>
+          <spirit:displayName>Divide Factor (C-Counter)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_divide_factor_c12">6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_divide_factor_c13</spirit:name>
+          <spirit:displayName>Divide Factor (C-Counter)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_divide_factor_c13">6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_divide_factor_c14</spirit:name>
+          <spirit:displayName>Divide Factor (C-Counter)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_divide_factor_c14">6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_divide_factor_c15</spirit:name>
+          <spirit:displayName>Divide Factor (C-Counter)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_divide_factor_c15">6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_divide_factor_c16</spirit:name>
+          <spirit:displayName>Divide Factor (C-Counter)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_divide_factor_c16">6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_divide_factor_c17</spirit:name>
+          <spirit:displayName>Divide Factor (C-Counter)</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="gui_divide_factor_c17">6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_cascade_counter0</spirit:name>
+          <spirit:displayName>Make this a cascade counter</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_cascade_counter0">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_cascade_counter1</spirit:name>
+          <spirit:displayName>Make this a cascade counter</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_cascade_counter1">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_cascade_counter2</spirit:name>
+          <spirit:displayName>Make this a cascade counter</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_cascade_counter2">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_cascade_counter3</spirit:name>
+          <spirit:displayName>Make this a cascade counter</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_cascade_counter3">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_cascade_counter4</spirit:name>
+          <spirit:displayName>Make this a cascade counter</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_cascade_counter4">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_cascade_counter5</spirit:name>
+          <spirit:displayName>Make this a cascade counter</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_cascade_counter5">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_cascade_counter6</spirit:name>
+          <spirit:displayName>Make this a cascade counter</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_cascade_counter6">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_cascade_counter7</spirit:name>
+          <spirit:displayName>Make this a cascade counter</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_cascade_counter7">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_cascade_counter8</spirit:name>
+          <spirit:displayName>Make this a cascade counter</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_cascade_counter8">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_cascade_counter9</spirit:name>
+          <spirit:displayName>Make this a cascade counter</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_cascade_counter9">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_cascade_counter10</spirit:name>
+          <spirit:displayName>Make this a cascade counter</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_cascade_counter10">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_cascade_counter11</spirit:name>
+          <spirit:displayName>Make this a cascade counter</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_cascade_counter11">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_cascade_counter12</spirit:name>
+          <spirit:displayName>Make this a cascade counter</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_cascade_counter12">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_cascade_counter13</spirit:name>
+          <spirit:displayName>Make this a cascade counter</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_cascade_counter13">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_cascade_counter14</spirit:name>
+          <spirit:displayName>Make this a cascade counter</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_cascade_counter14">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_cascade_counter15</spirit:name>
+          <spirit:displayName>Make this a cascade counter</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_cascade_counter15">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_cascade_counter16</spirit:name>
+          <spirit:displayName>Make this a cascade counter</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_cascade_counter16">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_cascade_counter17</spirit:name>
+          <spirit:displayName>Make this a cascade counter</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="gui_cascade_counter17">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_output_clock_frequency0</spirit:name>
+          <spirit:displayName>Desired Frequency</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_output_clock_frequency0">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_output_clock_frequency1</spirit:name>
+          <spirit:displayName>Desired Frequency</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_output_clock_frequency1">200.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_output_clock_frequency2</spirit:name>
+          <spirit:displayName>Desired Frequency</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_output_clock_frequency2">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_output_clock_frequency3</spirit:name>
+          <spirit:displayName>Desired Frequency</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_output_clock_frequency3">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_output_clock_frequency4</spirit:name>
+          <spirit:displayName>Desired Frequency</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_output_clock_frequency4">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_output_clock_frequency5</spirit:name>
+          <spirit:displayName>Desired Frequency</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_output_clock_frequency5">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_output_clock_frequency6</spirit:name>
+          <spirit:displayName>Desired Frequency</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_output_clock_frequency6">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_output_clock_frequency7</spirit:name>
+          <spirit:displayName>Desired Frequency</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_output_clock_frequency7">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_output_clock_frequency8</spirit:name>
+          <spirit:displayName>Desired Frequency</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_output_clock_frequency8">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_output_clock_frequency9</spirit:name>
+          <spirit:displayName>Desired Frequency</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_output_clock_frequency9">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_output_clock_frequency10</spirit:name>
+          <spirit:displayName>Desired Frequency</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_output_clock_frequency10">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_output_clock_frequency11</spirit:name>
+          <spirit:displayName>Desired Frequency</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_output_clock_frequency11">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_output_clock_frequency12</spirit:name>
+          <spirit:displayName>Desired Frequency</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_output_clock_frequency12">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_output_clock_frequency13</spirit:name>
+          <spirit:displayName>Desired Frequency</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_output_clock_frequency13">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_output_clock_frequency14</spirit:name>
+          <spirit:displayName>Desired Frequency</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_output_clock_frequency14">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_output_clock_frequency15</spirit:name>
+          <spirit:displayName>Desired Frequency</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_output_clock_frequency15">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_output_clock_frequency16</spirit:name>
+          <spirit:displayName>Desired Frequency</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_output_clock_frequency16">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_output_clock_frequency17</spirit:name>
+          <spirit:displayName>Desired Frequency</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_output_clock_frequency17">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency0</spirit:name>
+          <spirit:displayName>Actual Frequency</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency0">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency1</spirit:name>
+          <spirit:displayName>Actual Frequency</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency1">200.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency2</spirit:name>
+          <spirit:displayName>Actual Frequency</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency2">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency3</spirit:name>
+          <spirit:displayName>Actual Frequency</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency3">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency4</spirit:name>
+          <spirit:displayName>Actual Frequency</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency4">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency5</spirit:name>
+          <spirit:displayName>Actual Frequency</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency5">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency6</spirit:name>
+          <spirit:displayName>Actual Frequency</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency6">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency7</spirit:name>
+          <spirit:displayName>Actual Frequency</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency7">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency8</spirit:name>
+          <spirit:displayName>Actual Frequency</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency8">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency9</spirit:name>
+          <spirit:displayName>Actual Frequency</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency9">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency10</spirit:name>
+          <spirit:displayName>Actual Frequency</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency10">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency11</spirit:name>
+          <spirit:displayName>Actual Frequency</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency11">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency12</spirit:name>
+          <spirit:displayName>Actual Frequency</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency12">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency13</spirit:name>
+          <spirit:displayName>Actual Frequency</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency13">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency14</spirit:name>
+          <spirit:displayName>Actual Frequency</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency14">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency15</spirit:name>
+          <spirit:displayName>Actual Frequency</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency15">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency16</spirit:name>
+          <spirit:displayName>Actual Frequency</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency16">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency17</spirit:name>
+          <spirit:displayName>Actual Frequency</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency17">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency_range0</spirit:name>
+          <spirit:displayName>Legal Frequencies</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency_range0">99.595142,99.607843,99.649123,100.0,100.350877,100.392157</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency_range1</spirit:name>
+          <spirit:displayName>Legal Frequencies</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency_range1">183.333333,185.714286,187.5,200.0,214.285714,216.666667</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency_range2</spirit:name>
+          <spirit:displayName>Legal Frequencies</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency_range2">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency_range3</spirit:name>
+          <spirit:displayName>Legal Frequencies</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency_range3">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency_range4</spirit:name>
+          <spirit:displayName>Legal Frequencies</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency_range4">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency_range5</spirit:name>
+          <spirit:displayName>Legal Frequencies</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency_range5">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency_range6</spirit:name>
+          <spirit:displayName>Legal Frequencies</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency_range6">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency_range7</spirit:name>
+          <spirit:displayName>Legal Frequencies</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency_range7">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency_range8</spirit:name>
+          <spirit:displayName>Legal Frequencies</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency_range8">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency_range9</spirit:name>
+          <spirit:displayName>Legal Frequencies</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency_range9">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency_range10</spirit:name>
+          <spirit:displayName>Legal Frequencies</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency_range10">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency_range11</spirit:name>
+          <spirit:displayName>Legal Frequencies</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency_range11">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency_range12</spirit:name>
+          <spirit:displayName>Legal Frequencies</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency_range12">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency_range13</spirit:name>
+          <spirit:displayName>Legal Frequencies</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency_range13">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency_range14</spirit:name>
+          <spirit:displayName>Legal Frequencies</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency_range14">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency_range15</spirit:name>
+          <spirit:displayName>Legal Frequencies</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency_range15">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency_range16</spirit:name>
+          <spirit:displayName>Legal Frequencies</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency_range16">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_output_clock_frequency_range17</spirit:name>
+          <spirit:displayName>Legal Frequencies</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_output_clock_frequency_range17">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_ps_units0</spirit:name>
+          <spirit:displayName>Phase Shift Units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_ps_units0">ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_ps_units1</spirit:name>
+          <spirit:displayName>Phase Shift Units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_ps_units1">ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_ps_units2</spirit:name>
+          <spirit:displayName>Phase Shift Units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_ps_units2">ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_ps_units3</spirit:name>
+          <spirit:displayName>Phase Shift Units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_ps_units3">ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_ps_units4</spirit:name>
+          <spirit:displayName>Phase Shift Units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_ps_units4">ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_ps_units5</spirit:name>
+          <spirit:displayName>Phase Shift Units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_ps_units5">ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_ps_units6</spirit:name>
+          <spirit:displayName>Phase Shift Units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_ps_units6">ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_ps_units7</spirit:name>
+          <spirit:displayName>Phase Shift Units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_ps_units7">ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_ps_units8</spirit:name>
+          <spirit:displayName>Phase Shift Units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_ps_units8">ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_ps_units9</spirit:name>
+          <spirit:displayName>Phase Shift Units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_ps_units9">ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_ps_units10</spirit:name>
+          <spirit:displayName>Phase Shift Units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_ps_units10">ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_ps_units11</spirit:name>
+          <spirit:displayName>Phase Shift Units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_ps_units11">ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_ps_units12</spirit:name>
+          <spirit:displayName>Phase Shift Units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_ps_units12">ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_ps_units13</spirit:name>
+          <spirit:displayName>Phase Shift Units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_ps_units13">ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_ps_units14</spirit:name>
+          <spirit:displayName>Phase Shift Units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_ps_units14">ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_ps_units15</spirit:name>
+          <spirit:displayName>Phase Shift Units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_ps_units15">ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_ps_units16</spirit:name>
+          <spirit:displayName>Phase Shift Units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_ps_units16">ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_ps_units17</spirit:name>
+          <spirit:displayName>Phase Shift Units</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_ps_units17">ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift0</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift0">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift1</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift1">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift2</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift2">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift3</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift3">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift4</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift4">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift5</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift5">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift6</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift6">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift7</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift7">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift8</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift8">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift9</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift9">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift10</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift10">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift11</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift11">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift12</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift12">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift13</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift13">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift14</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift14">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift15</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift15">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift16</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift16">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift17</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift17">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift_deg0</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift_deg0">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift_deg1</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift_deg1">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift_deg2</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift_deg2">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift_deg3</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift_deg3">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift_deg4</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift_deg4">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift_deg5</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift_deg5">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift_deg6</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift_deg6">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift_deg7</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift_deg7">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift_deg8</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift_deg8">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift_deg9</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift_deg9">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift_deg10</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift_deg10">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift_deg11</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift_deg11">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift_deg12</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift_deg12">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift_deg13</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift_deg13">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift_deg14</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift_deg14">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift_deg15</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift_deg15">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift_deg16</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift_deg16">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_phase_shift_deg17</spirit:name>
+          <spirit:displayName>Desired Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_phase_shift_deg17">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift0</spirit:name>
+          <spirit:displayName>Actual phase shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift0">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift1</spirit:name>
+          <spirit:displayName>Actual phase shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift1">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift2</spirit:name>
+          <spirit:displayName>Actual phase shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift2">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift3</spirit:name>
+          <spirit:displayName>Actual phase shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift3">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift4</spirit:name>
+          <spirit:displayName>Actual phase shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift4">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift5</spirit:name>
+          <spirit:displayName>Actual phase shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift5">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift6</spirit:name>
+          <spirit:displayName>Actual phase shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift6">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift7</spirit:name>
+          <spirit:displayName>Actual phase shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift7">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift8</spirit:name>
+          <spirit:displayName>Actual phase shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift8">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift9</spirit:name>
+          <spirit:displayName>Actual phase shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift9">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift10</spirit:name>
+          <spirit:displayName>Actual phase shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift10">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift11</spirit:name>
+          <spirit:displayName>Actual phase shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift11">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift12</spirit:name>
+          <spirit:displayName>Actual phase shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift12">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift13</spirit:name>
+          <spirit:displayName>Actual phase shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift13">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift14</spirit:name>
+          <spirit:displayName>Actual phase shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift14">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift15</spirit:name>
+          <spirit:displayName>Actual phase shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift15">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift16</spirit:name>
+          <spirit:displayName>Actual phase shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift16">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift17</spirit:name>
+          <spirit:displayName>Actual phase shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift17">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_range0</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_range0">0.0,78.1,89.3,104.2,125.0,156.2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_range1</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_range1">0.0,78.1,89.3,104.2,125.0,156.2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_range2</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_range2">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_range3</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_range3">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_range4</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_range4">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_range5</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_range5">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_range6</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_range6">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_range7</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_range7">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_range8</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_range8">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_range9</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_range9">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_range10</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_range10">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_range11</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_range11">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_range12</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_range12">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_range13</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_range13">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_range14</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_range14">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_range15</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_range15">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_range16</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_range16">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_range17</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_range17">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg0</spirit:name>
+          <spirit:displayName>Actual Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg0">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg1</spirit:name>
+          <spirit:displayName>Actual Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg1">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg2</spirit:name>
+          <spirit:displayName>Actual Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg2">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg3</spirit:name>
+          <spirit:displayName>Actual Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg3">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg4</spirit:name>
+          <spirit:displayName>Actual Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg4">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg5</spirit:name>
+          <spirit:displayName>Actual Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg5">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg6</spirit:name>
+          <spirit:displayName>Actual Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg6">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg7</spirit:name>
+          <spirit:displayName>Actual Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg7">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg8</spirit:name>
+          <spirit:displayName>Actual Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg8">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg9</spirit:name>
+          <spirit:displayName>Actual Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg9">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg10</spirit:name>
+          <spirit:displayName>Actual Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg10">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg11</spirit:name>
+          <spirit:displayName>Actual Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg11">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg12</spirit:name>
+          <spirit:displayName>Actual Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg12">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg13</spirit:name>
+          <spirit:displayName>Actual Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg13">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg14</spirit:name>
+          <spirit:displayName>Actual Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg14">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg15</spirit:name>
+          <spirit:displayName>Actual Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg15">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg16</spirit:name>
+          <spirit:displayName>Actual Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg16">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg17</spirit:name>
+          <spirit:displayName>Actual Phase Shift</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg17">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg_range0</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg_range0">0.0,2.8,3.2,3.8,4.5,5.6</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg_range1</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg_range1">0.0,5.6,6.4,7.5,9.0,11.2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg_range2</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg_range2">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg_range3</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg_range3">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg_range4</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg_range4">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg_range5</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg_range5">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg_range6</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg_range6">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg_range7</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg_range7">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg_range8</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg_range8">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg_range9</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg_range9">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg_range10</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg_range10">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg_range11</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg_range11">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg_range12</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg_range12">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg_range13</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg_range13">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg_range14</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg_range14">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg_range15</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg_range15">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg_range16</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg_range16">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_phase_shift_deg_range17</spirit:name>
+          <spirit:displayName>Legal Phase Shifts</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_phase_shift_deg_range17">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_duty_cycle0</spirit:name>
+          <spirit:displayName>Desired Duty Cycle</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_duty_cycle0">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_duty_cycle1</spirit:name>
+          <spirit:displayName>Desired Duty Cycle</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_duty_cycle1">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_duty_cycle2</spirit:name>
+          <spirit:displayName>Desired Duty Cycle</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_duty_cycle2">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_duty_cycle3</spirit:name>
+          <spirit:displayName>Desired Duty Cycle</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_duty_cycle3">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_duty_cycle4</spirit:name>
+          <spirit:displayName>Desired Duty Cycle</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_duty_cycle4">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_duty_cycle5</spirit:name>
+          <spirit:displayName>Desired Duty Cycle</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_duty_cycle5">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_duty_cycle6</spirit:name>
+          <spirit:displayName>Desired Duty Cycle</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_duty_cycle6">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_duty_cycle7</spirit:name>
+          <spirit:displayName>Desired Duty Cycle</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_duty_cycle7">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_duty_cycle8</spirit:name>
+          <spirit:displayName>Desired Duty Cycle</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_duty_cycle8">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_duty_cycle9</spirit:name>
+          <spirit:displayName>Desired Duty Cycle</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_duty_cycle9">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_duty_cycle10</spirit:name>
+          <spirit:displayName>Desired Duty Cycle</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_duty_cycle10">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_duty_cycle11</spirit:name>
+          <spirit:displayName>Desired Duty Cycle</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_duty_cycle11">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_duty_cycle12</spirit:name>
+          <spirit:displayName>Desired Duty Cycle</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_duty_cycle12">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_duty_cycle13</spirit:name>
+          <spirit:displayName>Desired Duty Cycle</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_duty_cycle13">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_duty_cycle14</spirit:name>
+          <spirit:displayName>Desired Duty Cycle</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_duty_cycle14">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_duty_cycle15</spirit:name>
+          <spirit:displayName>Desired Duty Cycle</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_duty_cycle15">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_duty_cycle16</spirit:name>
+          <spirit:displayName>Desired Duty Cycle</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_duty_cycle16">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_duty_cycle17</spirit:name>
+          <spirit:displayName>Desired Duty Cycle</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="gui_duty_cycle17">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle0</spirit:name>
+          <spirit:displayName>Actual duty cycle</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle0">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle1</spirit:name>
+          <spirit:displayName>Actual duty cycle</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle1">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle2</spirit:name>
+          <spirit:displayName>Actual duty cycle</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle2">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle3</spirit:name>
+          <spirit:displayName>Actual duty cycle</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle3">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle4</spirit:name>
+          <spirit:displayName>Actual duty cycle</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle4">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle5</spirit:name>
+          <spirit:displayName>Actual duty cycle</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle5">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle6</spirit:name>
+          <spirit:displayName>Actual duty cycle</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle6">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle7</spirit:name>
+          <spirit:displayName>Actual duty cycle</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle7">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle8</spirit:name>
+          <spirit:displayName>Actual duty cycle</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle8">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle9</spirit:name>
+          <spirit:displayName>Actual duty cycle</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle9">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle10</spirit:name>
+          <spirit:displayName>Actual duty cycle</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle10">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle11</spirit:name>
+          <spirit:displayName>Actual duty cycle</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle11">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle12</spirit:name>
+          <spirit:displayName>Actual duty cycle</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle12">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle13</spirit:name>
+          <spirit:displayName>Actual duty cycle</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle13">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle14</spirit:name>
+          <spirit:displayName>Actual duty cycle</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle14">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle15</spirit:name>
+          <spirit:displayName>Actual duty cycle</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle15">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle16</spirit:name>
+          <spirit:displayName>Actual duty cycle</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle16">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle17</spirit:name>
+          <spirit:displayName>Actual duty cycle</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle17">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle_range0</spirit:name>
+          <spirit:displayName>Legal Duty Cycles</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle_range0">45.83,46.43,46.88,50.0,53.12,53.57</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle_range1</spirit:name>
+          <spirit:displayName>Legal Duty Cycles</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle_range1">41.67,42.86,43.75,50.0,56.25,57.14</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle_range2</spirit:name>
+          <spirit:displayName>Legal Duty Cycles</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle_range2">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle_range3</spirit:name>
+          <spirit:displayName>Legal Duty Cycles</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle_range3">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle_range4</spirit:name>
+          <spirit:displayName>Legal Duty Cycles</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle_range4">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle_range5</spirit:name>
+          <spirit:displayName>Legal Duty Cycles</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle_range5">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle_range6</spirit:name>
+          <spirit:displayName>Legal Duty Cycles</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle_range6">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle_range7</spirit:name>
+          <spirit:displayName>Legal Duty Cycles</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle_range7">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle_range8</spirit:name>
+          <spirit:displayName>Legal Duty Cycles</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle_range8">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle_range9</spirit:name>
+          <spirit:displayName>Legal Duty Cycles</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle_range9">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle_range10</spirit:name>
+          <spirit:displayName>Legal Duty Cycles</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle_range10">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle_range11</spirit:name>
+          <spirit:displayName>Legal Duty Cycles</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle_range11">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle_range12</spirit:name>
+          <spirit:displayName>Legal Duty Cycles</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle_range12">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle_range13</spirit:name>
+          <spirit:displayName>Legal Duty Cycles</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle_range13">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle_range14</spirit:name>
+          <spirit:displayName>Legal Duty Cycles</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle_range14">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle_range15</spirit:name>
+          <spirit:displayName>Legal Duty Cycles</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle_range15">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle_range16</spirit:name>
+          <spirit:displayName>Legal Duty Cycles</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle_range16">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>gui_actual_duty_cycle_range17</spirit:name>
+          <spirit:displayName>Legal Duty Cycles</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="gui_actual_duty_cycle_range17">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>parameterTable_names</spirit:name>
+          <spirit:displayName>Parameter Names</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="parameterTable_names">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</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>parameterTable_values</spirit:name>
+          <spirit:displayName>Parameter Values</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="parameterTable_values">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</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>mifTable_names</spirit:name>
+          <spirit:displayName>MIF File Property</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="mifTable_names">The MIF file specified does not yet exist</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>mifTable_values</spirit:name>
+          <spirit:displayName>Values</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="mifTable_values"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_m_cnt_basic</spirit:name>
+          <spirit:displayName>pll_m_cnt_basic</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="pll_m_cnt_basic">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_m_cnt</spirit:name>
+          <spirit:displayName>pll_m_cnt</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="pll_m_cnt">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>prot_mode</spirit:name>
+          <spirit:displayName>prot_mode</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="prot_mode">BASIC</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>m_cnt_hi_div</spirit:name>
+          <spirit:displayName>m_cnt_hi_div</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="m_cnt_hi_div">2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>eff_m_cnt</spirit:name>
+          <spirit:displayName>eff_m_cnt</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="eff_m_cnt">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>multiply_factor</spirit:name>
+          <spirit:displayName>multiply_factor</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="multiply_factor">4</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>use_core_refclk</spirit:name>
+          <spirit:displayName>use_core_refclk</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="use_core_refclk">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>m_cnt_lo_div</spirit:name>
+          <spirit:displayName>m_cnt_lo_div</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="m_cnt_lo_div">2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>n_cnt_hi_div</spirit:name>
+          <spirit:displayName>n_cnt_hi_div</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="n_cnt_hi_div">256</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>n_cnt_lo_div</spirit:name>
+          <spirit:displayName>n_cnt_lo_div</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="n_cnt_lo_div">256</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>m_cnt_bypass_en</spirit:name>
+          <spirit:displayName>m_cnt_bypass_en</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="m_cnt_bypass_en">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>n_cnt_bypass_en</spirit:name>
+          <spirit:displayName>n_cnt_bypass_en</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="n_cnt_bypass_en">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>m_cnt_odd_div_duty_en</spirit:name>
+          <spirit:displayName>m_cnt_odd_div_duty_en</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="m_cnt_odd_div_duty_en">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>n_cnt_odd_div_duty_en</spirit:name>
+          <spirit:displayName>n_cnt_odd_div_duty_en</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="n_cnt_odd_div_duty_en">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_vco_div</spirit:name>
+          <spirit:displayName>pll_vco_div</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="pll_vco_div">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_cp_current</spirit:name>
+          <spirit:displayName>pll_cp_current</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="pll_cp_current">pll_cp_setting10</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_bwctrl</spirit:name>
+          <spirit:displayName>pll_bwctrl</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="pll_bwctrl">pll_bw_res_setting2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_ripplecap_ctrl</spirit:name>
+          <spirit:displayName>pll_ripplecap_ctrl</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="pll_ripplecap_ctrl"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_fractional_division</spirit:name>
+          <spirit:displayName>pll_fractional_division</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="pll_fractional_division">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>fractional_vco_multiplier</spirit:name>
+          <spirit:displayName>fractional_vco_multiplier</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="fractional_vco_multiplier">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>reference_clock_frequency</spirit:name>
+          <spirit:displayName>reference_clock_frequency</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="reference_clock_frequency">200.0 MHz</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_fractional_cout</spirit:name>
+          <spirit:displayName>pll_fractional_cout</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="pll_fractional_cout">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_dsm_out_sel</spirit:name>
+          <spirit:displayName>pll_dsm_out_sel</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="pll_dsm_out_sel">1st_order</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>operation_mode</spirit:name>
+          <spirit:displayName>operation_mode</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="operation_mode">source_synchronous</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>number_of_clocks</spirit:name>
+          <spirit:displayName>number_of_clocks</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="number_of_clocks">2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>number_of_outclks</spirit:name>
+          <spirit:displayName>number_of_outclks</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="number_of_outclks">2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_vcoph_div</spirit:name>
+          <spirit:displayName>pll_vcoph_div</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="pll_vcoph_div">1</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">Arria 10</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_subtype</spirit:name>
+          <spirit:displayName>pll_subtype</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="pll_subtype">General</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_output_clk_frequency</spirit:name>
+          <spirit:displayName>pll_output_clk_frequency</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="pll_output_clk_frequency">800.0 MHz</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>mimic_fbclk_type</spirit:name>
+          <spirit:displayName>mimic_fbclk_type</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="mimic_fbclk_type">gclk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_bw_sel</spirit:name>
+          <spirit:displayName>pll_bw_sel</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="pll_bw_sel">Low</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_slf_rst</spirit:name>
+          <spirit:displayName>pll_slf_rst</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="pll_slf_rst">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_fbclk_mux_1</spirit:name>
+          <spirit:displayName>pll_fbclk_mux_1</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="pll_fbclk_mux_1">pll_fbclk_mux_1_glb</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_fbclk_mux_2</spirit:name>
+          <spirit:displayName>pll_fbclk_mux_2</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="pll_fbclk_mux_2">pll_fbclk_mux_2_fb_1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_m_cnt_in_src</spirit:name>
+          <spirit:displayName>pll_m_cnt_in_src</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="pll_m_cnt_in_src">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_clkin_0_src</spirit:name>
+          <spirit:displayName>pll_clkin_0_src</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="pll_clkin_0_src">clk_0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>refclk1_frequency</spirit:name>
+          <spirit:displayName>refclk1_frequency</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="refclk1_frequency">100.0 MHz</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_clk_loss_sw_en</spirit:name>
+          <spirit:displayName>pll_clk_loss_sw_en</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="pll_clk_loss_sw_en">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_manu_clk_sw_en</spirit:name>
+          <spirit:displayName>pll_manu_clk_sw_en</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="pll_manu_clk_sw_en">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_auto_clk_sw_en</spirit:name>
+          <spirit:displayName>pll_auto_clk_sw_en</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="pll_auto_clk_sw_en">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_clkin_1_src</spirit:name>
+          <spirit:displayName>pll_clkin_1_src</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="pll_clkin_1_src">clk_0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_clk_sw_dly</spirit:name>
+          <spirit:displayName>pll_clk_sw_dly</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="pll_clk_sw_dly">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_extclk_0_cnt_src</spirit:name>
+          <spirit:displayName>pll_extclk_0_cnt_src</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="pll_extclk_0_cnt_src">pll_extclk_cnt_src_vss</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_extclk_1_cnt_src</spirit:name>
+          <spirit:displayName>pll_extclk_1_cnt_src</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="pll_extclk_1_cnt_src">pll_extclk_cnt_src_vss</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_lock_fltr_cfg</spirit:name>
+          <spirit:displayName>pll_lock_fltr_cfg</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="pll_lock_fltr_cfg">100</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_unlock_fltr_cfg</spirit:name>
+          <spirit:displayName>pll_unlock_fltr_cfg</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="pll_unlock_fltr_cfg">2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>lock_mode</spirit:name>
+          <spirit:displayName>lock_mode</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="lock_mode">low_lock_time</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clock_to_compensate</spirit:name>
+          <spirit:displayName>clock_to_compensate</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="clock_to_compensate">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clock_name_global</spirit:name>
+          <spirit:displayName>clock_name_global</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="clock_name_global">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_freqcal_en</spirit:name>
+          <spirit:displayName>pll_freqcal_en</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="pll_freqcal_en">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_defer_cal_user_mode</spirit:name>
+          <spirit:displayName>pll_defer_cal_user_mode</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="pll_defer_cal_user_mode">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>dprio_interface_sel</spirit:name>
+          <spirit:displayName>dprio_interface_sel</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="dprio_interface_sel">3</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_hi_div0</spirit:name>
+          <spirit:displayName>c_cnt_hi_div0</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_hi_div0">4</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_hi_div1</spirit:name>
+          <spirit:displayName>c_cnt_hi_div1</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_hi_div1">2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_hi_div2</spirit:name>
+          <spirit:displayName>c_cnt_hi_div2</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_hi_div2">256</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_hi_div3</spirit:name>
+          <spirit:displayName>c_cnt_hi_div3</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_hi_div3">256</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_hi_div4</spirit:name>
+          <spirit:displayName>c_cnt_hi_div4</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_hi_div4">256</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_hi_div5</spirit:name>
+          <spirit:displayName>c_cnt_hi_div5</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_hi_div5">256</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_hi_div6</spirit:name>
+          <spirit:displayName>c_cnt_hi_div6</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_hi_div6">256</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_hi_div7</spirit:name>
+          <spirit:displayName>c_cnt_hi_div7</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_hi_div7">256</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_hi_div8</spirit:name>
+          <spirit:displayName>c_cnt_hi_div8</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_hi_div8">256</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_hi_div9</spirit:name>
+          <spirit:displayName>c_cnt_hi_div9</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_hi_div9">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_hi_div10</spirit:name>
+          <spirit:displayName>c_cnt_hi_div10</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_hi_div10">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_hi_div11</spirit:name>
+          <spirit:displayName>c_cnt_hi_div11</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_hi_div11">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_hi_div12</spirit:name>
+          <spirit:displayName>c_cnt_hi_div12</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_hi_div12">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_hi_div13</spirit:name>
+          <spirit:displayName>c_cnt_hi_div13</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_hi_div13">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_hi_div14</spirit:name>
+          <spirit:displayName>c_cnt_hi_div14</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_hi_div14">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_hi_div15</spirit:name>
+          <spirit:displayName>c_cnt_hi_div15</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_hi_div15">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_hi_div16</spirit:name>
+          <spirit:displayName>c_cnt_hi_div16</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_hi_div16">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_hi_div17</spirit:name>
+          <spirit:displayName>c_cnt_hi_div17</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_hi_div17">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_lo_div0</spirit:name>
+          <spirit:displayName>c_cnt_lo_div0</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_lo_div0">4</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_lo_div1</spirit:name>
+          <spirit:displayName>c_cnt_lo_div1</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_lo_div1">2</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_lo_div2</spirit:name>
+          <spirit:displayName>c_cnt_lo_div2</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_lo_div2">256</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_lo_div3</spirit:name>
+          <spirit:displayName>c_cnt_lo_div3</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_lo_div3">256</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_lo_div4</spirit:name>
+          <spirit:displayName>c_cnt_lo_div4</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_lo_div4">256</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_lo_div5</spirit:name>
+          <spirit:displayName>c_cnt_lo_div5</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_lo_div5">256</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_lo_div6</spirit:name>
+          <spirit:displayName>c_cnt_lo_div6</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_lo_div6">256</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_lo_div7</spirit:name>
+          <spirit:displayName>c_cnt_lo_div7</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_lo_div7">256</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_lo_div8</spirit:name>
+          <spirit:displayName>c_cnt_lo_div8</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_lo_div8">256</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_lo_div9</spirit:name>
+          <spirit:displayName>c_cnt_lo_div9</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_lo_div9">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_lo_div10</spirit:name>
+          <spirit:displayName>c_cnt_lo_div10</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_lo_div10">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_lo_div11</spirit:name>
+          <spirit:displayName>c_cnt_lo_div11</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_lo_div11">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_lo_div12</spirit:name>
+          <spirit:displayName>c_cnt_lo_div12</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_lo_div12">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_lo_div13</spirit:name>
+          <spirit:displayName>c_cnt_lo_div13</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_lo_div13">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_lo_div14</spirit:name>
+          <spirit:displayName>c_cnt_lo_div14</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_lo_div14">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_lo_div15</spirit:name>
+          <spirit:displayName>c_cnt_lo_div15</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_lo_div15">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_lo_div16</spirit:name>
+          <spirit:displayName>c_cnt_lo_div16</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_lo_div16">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_lo_div17</spirit:name>
+          <spirit:displayName>c_cnt_lo_div17</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_lo_div17">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_prst0</spirit:name>
+          <spirit:displayName>c_cnt_prst0</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_prst0">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_prst1</spirit:name>
+          <spirit:displayName>c_cnt_prst1</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_prst1">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_prst2</spirit:name>
+          <spirit:displayName>c_cnt_prst2</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_prst2">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_prst3</spirit:name>
+          <spirit:displayName>c_cnt_prst3</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_prst3">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_prst4</spirit:name>
+          <spirit:displayName>c_cnt_prst4</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_prst4">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_prst5</spirit:name>
+          <spirit:displayName>c_cnt_prst5</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_prst5">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_prst6</spirit:name>
+          <spirit:displayName>c_cnt_prst6</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_prst6">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_prst7</spirit:name>
+          <spirit:displayName>c_cnt_prst7</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_prst7">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_prst8</spirit:name>
+          <spirit:displayName>c_cnt_prst8</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_prst8">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_prst9</spirit:name>
+          <spirit:displayName>c_cnt_prst9</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_prst9">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_prst10</spirit:name>
+          <spirit:displayName>c_cnt_prst10</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_prst10">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_prst11</spirit:name>
+          <spirit:displayName>c_cnt_prst11</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_prst11">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_prst12</spirit:name>
+          <spirit:displayName>c_cnt_prst12</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_prst12">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_prst13</spirit:name>
+          <spirit:displayName>c_cnt_prst13</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_prst13">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_prst14</spirit:name>
+          <spirit:displayName>c_cnt_prst14</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_prst14">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_prst15</spirit:name>
+          <spirit:displayName>c_cnt_prst15</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_prst15">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_prst16</spirit:name>
+          <spirit:displayName>c_cnt_prst16</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_prst16">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_prst17</spirit:name>
+          <spirit:displayName>c_cnt_prst17</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_prst17">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_ph_mux_prst0</spirit:name>
+          <spirit:displayName>c_cnt_ph_mux_prst0</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_ph_mux_prst0">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_ph_mux_prst1</spirit:name>
+          <spirit:displayName>c_cnt_ph_mux_prst1</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_ph_mux_prst1">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_ph_mux_prst2</spirit:name>
+          <spirit:displayName>c_cnt_ph_mux_prst2</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_ph_mux_prst2">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_ph_mux_prst3</spirit:name>
+          <spirit:displayName>c_cnt_ph_mux_prst3</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_ph_mux_prst3">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_ph_mux_prst4</spirit:name>
+          <spirit:displayName>c_cnt_ph_mux_prst4</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_ph_mux_prst4">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_ph_mux_prst5</spirit:name>
+          <spirit:displayName>c_cnt_ph_mux_prst5</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_ph_mux_prst5">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_ph_mux_prst6</spirit:name>
+          <spirit:displayName>c_cnt_ph_mux_prst6</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_ph_mux_prst6">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_ph_mux_prst7</spirit:name>
+          <spirit:displayName>c_cnt_ph_mux_prst7</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_ph_mux_prst7">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_ph_mux_prst8</spirit:name>
+          <spirit:displayName>c_cnt_ph_mux_prst8</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_ph_mux_prst8">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_ph_mux_prst9</spirit:name>
+          <spirit:displayName>c_cnt_ph_mux_prst9</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_ph_mux_prst9">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_ph_mux_prst10</spirit:name>
+          <spirit:displayName>c_cnt_ph_mux_prst10</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_ph_mux_prst10">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_ph_mux_prst11</spirit:name>
+          <spirit:displayName>c_cnt_ph_mux_prst11</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_ph_mux_prst11">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_ph_mux_prst12</spirit:name>
+          <spirit:displayName>c_cnt_ph_mux_prst12</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_ph_mux_prst12">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_ph_mux_prst13</spirit:name>
+          <spirit:displayName>c_cnt_ph_mux_prst13</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_ph_mux_prst13">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_ph_mux_prst14</spirit:name>
+          <spirit:displayName>c_cnt_ph_mux_prst14</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_ph_mux_prst14">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_ph_mux_prst15</spirit:name>
+          <spirit:displayName>c_cnt_ph_mux_prst15</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_ph_mux_prst15">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_ph_mux_prst16</spirit:name>
+          <spirit:displayName>c_cnt_ph_mux_prst16</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_ph_mux_prst16">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_ph_mux_prst17</spirit:name>
+          <spirit:displayName>c_cnt_ph_mux_prst17</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="c_cnt_ph_mux_prst17">0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_in_src0</spirit:name>
+          <spirit:displayName>c_cnt_in_src0</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="c_cnt_in_src0">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_in_src1</spirit:name>
+          <spirit:displayName>c_cnt_in_src1</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="c_cnt_in_src1">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_in_src2</spirit:name>
+          <spirit:displayName>c_cnt_in_src2</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="c_cnt_in_src2">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_in_src3</spirit:name>
+          <spirit:displayName>c_cnt_in_src3</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="c_cnt_in_src3">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_in_src4</spirit:name>
+          <spirit:displayName>c_cnt_in_src4</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="c_cnt_in_src4">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_in_src5</spirit:name>
+          <spirit:displayName>c_cnt_in_src5</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="c_cnt_in_src5">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_in_src6</spirit:name>
+          <spirit:displayName>c_cnt_in_src6</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="c_cnt_in_src6">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_in_src7</spirit:name>
+          <spirit:displayName>c_cnt_in_src7</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="c_cnt_in_src7">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_in_src8</spirit:name>
+          <spirit:displayName>c_cnt_in_src8</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="c_cnt_in_src8">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_in_src9</spirit:name>
+          <spirit:displayName>c_cnt_in_src9</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="c_cnt_in_src9">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_in_src10</spirit:name>
+          <spirit:displayName>c_cnt_in_src10</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="c_cnt_in_src10">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_in_src11</spirit:name>
+          <spirit:displayName>c_cnt_in_src11</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="c_cnt_in_src11">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_in_src12</spirit:name>
+          <spirit:displayName>c_cnt_in_src12</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="c_cnt_in_src12">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_in_src13</spirit:name>
+          <spirit:displayName>c_cnt_in_src13</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="c_cnt_in_src13">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_in_src14</spirit:name>
+          <spirit:displayName>c_cnt_in_src14</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="c_cnt_in_src14">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_in_src15</spirit:name>
+          <spirit:displayName>c_cnt_in_src15</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="c_cnt_in_src15">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_in_src16</spirit:name>
+          <spirit:displayName>c_cnt_in_src16</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="c_cnt_in_src16">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_in_src17</spirit:name>
+          <spirit:displayName>c_cnt_in_src17</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="c_cnt_in_src17">c_m_cnt_in_src_ph_mux_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_bypass_en0</spirit:name>
+          <spirit:displayName>c_cnt_bypass_en0</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_bypass_en0">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_bypass_en1</spirit:name>
+          <spirit:displayName>c_cnt_bypass_en1</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_bypass_en1">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_bypass_en2</spirit:name>
+          <spirit:displayName>c_cnt_bypass_en2</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_bypass_en2">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_bypass_en3</spirit:name>
+          <spirit:displayName>c_cnt_bypass_en3</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_bypass_en3">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_bypass_en4</spirit:name>
+          <spirit:displayName>c_cnt_bypass_en4</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_bypass_en4">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_bypass_en5</spirit:name>
+          <spirit:displayName>c_cnt_bypass_en5</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_bypass_en5">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_bypass_en6</spirit:name>
+          <spirit:displayName>c_cnt_bypass_en6</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_bypass_en6">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_bypass_en7</spirit:name>
+          <spirit:displayName>c_cnt_bypass_en7</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_bypass_en7">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_bypass_en8</spirit:name>
+          <spirit:displayName>c_cnt_bypass_en8</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_bypass_en8">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_bypass_en9</spirit:name>
+          <spirit:displayName>c_cnt_bypass_en9</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_bypass_en9">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_bypass_en10</spirit:name>
+          <spirit:displayName>c_cnt_bypass_en10</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_bypass_en10">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_bypass_en11</spirit:name>
+          <spirit:displayName>c_cnt_bypass_en11</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_bypass_en11">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_bypass_en12</spirit:name>
+          <spirit:displayName>c_cnt_bypass_en12</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_bypass_en12">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_bypass_en13</spirit:name>
+          <spirit:displayName>c_cnt_bypass_en13</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_bypass_en13">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_bypass_en14</spirit:name>
+          <spirit:displayName>c_cnt_bypass_en14</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_bypass_en14">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_bypass_en15</spirit:name>
+          <spirit:displayName>c_cnt_bypass_en15</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_bypass_en15">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_bypass_en16</spirit:name>
+          <spirit:displayName>c_cnt_bypass_en16</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_bypass_en16">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_bypass_en17</spirit:name>
+          <spirit:displayName>c_cnt_bypass_en17</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_bypass_en17">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_odd_div_duty_en0</spirit:name>
+          <spirit:displayName>c_cnt_odd_div_duty_en0</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_odd_div_duty_en0">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_odd_div_duty_en1</spirit:name>
+          <spirit:displayName>c_cnt_odd_div_duty_en1</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_odd_div_duty_en1">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_odd_div_duty_en2</spirit:name>
+          <spirit:displayName>c_cnt_odd_div_duty_en2</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_odd_div_duty_en2">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_odd_div_duty_en3</spirit:name>
+          <spirit:displayName>c_cnt_odd_div_duty_en3</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_odd_div_duty_en3">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_odd_div_duty_en4</spirit:name>
+          <spirit:displayName>c_cnt_odd_div_duty_en4</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_odd_div_duty_en4">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_odd_div_duty_en5</spirit:name>
+          <spirit:displayName>c_cnt_odd_div_duty_en5</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_odd_div_duty_en5">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_odd_div_duty_en6</spirit:name>
+          <spirit:displayName>c_cnt_odd_div_duty_en6</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_odd_div_duty_en6">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_odd_div_duty_en7</spirit:name>
+          <spirit:displayName>c_cnt_odd_div_duty_en7</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_odd_div_duty_en7">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_odd_div_duty_en8</spirit:name>
+          <spirit:displayName>c_cnt_odd_div_duty_en8</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_odd_div_duty_en8">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_odd_div_duty_en9</spirit:name>
+          <spirit:displayName>c_cnt_odd_div_duty_en9</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_odd_div_duty_en9">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_odd_div_duty_en10</spirit:name>
+          <spirit:displayName>c_cnt_odd_div_duty_en10</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_odd_div_duty_en10">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_odd_div_duty_en11</spirit:name>
+          <spirit:displayName>c_cnt_odd_div_duty_en11</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_odd_div_duty_en11">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_odd_div_duty_en12</spirit:name>
+          <spirit:displayName>c_cnt_odd_div_duty_en12</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_odd_div_duty_en12">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_odd_div_duty_en13</spirit:name>
+          <spirit:displayName>c_cnt_odd_div_duty_en13</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_odd_div_duty_en13">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_odd_div_duty_en14</spirit:name>
+          <spirit:displayName>c_cnt_odd_div_duty_en14</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_odd_div_duty_en14">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_odd_div_duty_en15</spirit:name>
+          <spirit:displayName>c_cnt_odd_div_duty_en15</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_odd_div_duty_en15">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_odd_div_duty_en16</spirit:name>
+          <spirit:displayName>c_cnt_odd_div_duty_en16</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_odd_div_duty_en16">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>c_cnt_odd_div_duty_en17</spirit:name>
+          <spirit:displayName>c_cnt_odd_div_duty_en17</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="c_cnt_odd_div_duty_en17">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>output_clock_frequency0</spirit:name>
+          <spirit:displayName>output_clock_frequency0</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="output_clock_frequency0">100.000000 MHz</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>output_clock_frequency1</spirit:name>
+          <spirit:displayName>output_clock_frequency1</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="output_clock_frequency1">200.000000 MHz</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>output_clock_frequency2</spirit:name>
+          <spirit:displayName>output_clock_frequency2</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="output_clock_frequency2">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>output_clock_frequency3</spirit:name>
+          <spirit:displayName>output_clock_frequency3</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="output_clock_frequency3">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>output_clock_frequency4</spirit:name>
+          <spirit:displayName>output_clock_frequency4</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="output_clock_frequency4">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>output_clock_frequency5</spirit:name>
+          <spirit:displayName>output_clock_frequency5</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="output_clock_frequency5">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>output_clock_frequency6</spirit:name>
+          <spirit:displayName>output_clock_frequency6</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="output_clock_frequency6">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>output_clock_frequency7</spirit:name>
+          <spirit:displayName>output_clock_frequency7</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="output_clock_frequency7">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>output_clock_frequency8</spirit:name>
+          <spirit:displayName>output_clock_frequency8</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="output_clock_frequency8">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>output_clock_frequency9</spirit:name>
+          <spirit:displayName>output_clock_frequency9</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="output_clock_frequency9">0 MHz</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>output_clock_frequency10</spirit:name>
+          <spirit:displayName>output_clock_frequency10</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="output_clock_frequency10">0 MHz</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>output_clock_frequency11</spirit:name>
+          <spirit:displayName>output_clock_frequency11</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="output_clock_frequency11">0 MHz</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>output_clock_frequency12</spirit:name>
+          <spirit:displayName>output_clock_frequency12</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="output_clock_frequency12">0 MHz</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>output_clock_frequency13</spirit:name>
+          <spirit:displayName>output_clock_frequency13</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="output_clock_frequency13">0 MHz</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>output_clock_frequency14</spirit:name>
+          <spirit:displayName>output_clock_frequency14</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="output_clock_frequency14">0 MHz</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>output_clock_frequency15</spirit:name>
+          <spirit:displayName>output_clock_frequency15</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="output_clock_frequency15">0 MHz</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>output_clock_frequency16</spirit:name>
+          <spirit:displayName>output_clock_frequency16</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="output_clock_frequency16">0 MHz</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>output_clock_frequency17</spirit:name>
+          <spirit:displayName>output_clock_frequency17</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="output_clock_frequency17">0 MHz</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>phase_shift0</spirit:name>
+          <spirit:displayName>phase_shift0</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="phase_shift0">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>phase_shift1</spirit:name>
+          <spirit:displayName>phase_shift1</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="phase_shift1">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>phase_shift2</spirit:name>
+          <spirit:displayName>phase_shift2</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="phase_shift2">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>phase_shift3</spirit:name>
+          <spirit:displayName>phase_shift3</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="phase_shift3">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>phase_shift4</spirit:name>
+          <spirit:displayName>phase_shift4</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="phase_shift4">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>phase_shift5</spirit:name>
+          <spirit:displayName>phase_shift5</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="phase_shift5">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>phase_shift6</spirit:name>
+          <spirit:displayName>phase_shift6</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="phase_shift6">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>phase_shift7</spirit:name>
+          <spirit:displayName>phase_shift7</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="phase_shift7">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>phase_shift8</spirit:name>
+          <spirit:displayName>phase_shift8</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="phase_shift8">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>phase_shift9</spirit:name>
+          <spirit:displayName>phase_shift9</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="phase_shift9">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>phase_shift10</spirit:name>
+          <spirit:displayName>phase_shift10</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="phase_shift10">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>phase_shift11</spirit:name>
+          <spirit:displayName>phase_shift11</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="phase_shift11">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>phase_shift12</spirit:name>
+          <spirit:displayName>phase_shift12</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="phase_shift12">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>phase_shift13</spirit:name>
+          <spirit:displayName>phase_shift13</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="phase_shift13">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>phase_shift14</spirit:name>
+          <spirit:displayName>phase_shift14</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="phase_shift14">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>phase_shift15</spirit:name>
+          <spirit:displayName>phase_shift15</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="phase_shift15">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>phase_shift16</spirit:name>
+          <spirit:displayName>phase_shift16</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="phase_shift16">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>phase_shift17</spirit:name>
+          <spirit:displayName>phase_shift17</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="phase_shift17">0 ps</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>duty_cycle0</spirit:name>
+          <spirit:displayName>duty_cycle0</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="duty_cycle0">50</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>duty_cycle1</spirit:name>
+          <spirit:displayName>duty_cycle1</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="duty_cycle1">50</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>duty_cycle2</spirit:name>
+          <spirit:displayName>duty_cycle2</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="duty_cycle2">50</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>duty_cycle3</spirit:name>
+          <spirit:displayName>duty_cycle3</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="duty_cycle3">50</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>duty_cycle4</spirit:name>
+          <spirit:displayName>duty_cycle4</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="duty_cycle4">50</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>duty_cycle5</spirit:name>
+          <spirit:displayName>duty_cycle5</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="duty_cycle5">50</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>duty_cycle6</spirit:name>
+          <spirit:displayName>duty_cycle6</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="duty_cycle6">50</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>duty_cycle7</spirit:name>
+          <spirit:displayName>duty_cycle7</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="duty_cycle7">50</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>duty_cycle8</spirit:name>
+          <spirit:displayName>duty_cycle8</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="duty_cycle8">50</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>duty_cycle9</spirit:name>
+          <spirit:displayName>duty_cycle9</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="duty_cycle9">50</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>duty_cycle10</spirit:name>
+          <spirit:displayName>duty_cycle10</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="duty_cycle10">50</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>duty_cycle11</spirit:name>
+          <spirit:displayName>duty_cycle11</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="duty_cycle11">50</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>duty_cycle12</spirit:name>
+          <spirit:displayName>duty_cycle12</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="duty_cycle12">50</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>duty_cycle13</spirit:name>
+          <spirit:displayName>duty_cycle13</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="duty_cycle13">50</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>duty_cycle14</spirit:name>
+          <spirit:displayName>duty_cycle14</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="duty_cycle14">50</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>duty_cycle15</spirit:name>
+          <spirit:displayName>duty_cycle15</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="duty_cycle15">50</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>duty_cycle16</spirit:name>
+          <spirit:displayName>duty_cycle16</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="duty_cycle16">50</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>duty_cycle17</spirit:name>
+          <spirit:displayName>duty_cycle17</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="duty_cycle17">50</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clock_name_0</spirit:name>
+          <spirit:displayName>clock_name_0</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="clock_name_0">link_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clock_name_1</spirit:name>
+          <spirit:displayName>clock_name_1</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="clock_name_1">frame_clk</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clock_name_2</spirit:name>
+          <spirit:displayName>clock_name_2</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="clock_name_2"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clock_name_3</spirit:name>
+          <spirit:displayName>clock_name_3</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="clock_name_3"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clock_name_4</spirit:name>
+          <spirit:displayName>clock_name_4</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="clock_name_4"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clock_name_5</spirit:name>
+          <spirit:displayName>clock_name_5</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="clock_name_5"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clock_name_6</spirit:name>
+          <spirit:displayName>clock_name_6</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="clock_name_6"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clock_name_7</spirit:name>
+          <spirit:displayName>clock_name_7</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="clock_name_7"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clock_name_8</spirit:name>
+          <spirit:displayName>clock_name_8</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="clock_name_8"></spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clock_name_global_0</spirit:name>
+          <spirit:displayName>clock_name_global_0</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="clock_name_global_0">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clock_name_global_1</spirit:name>
+          <spirit:displayName>clock_name_global_1</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="clock_name_global_1">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clock_name_global_2</spirit:name>
+          <spirit:displayName>clock_name_global_2</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="clock_name_global_2">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clock_name_global_3</spirit:name>
+          <spirit:displayName>clock_name_global_3</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="clock_name_global_3">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clock_name_global_4</spirit:name>
+          <spirit:displayName>clock_name_global_4</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="clock_name_global_4">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clock_name_global_5</spirit:name>
+          <spirit:displayName>clock_name_global_5</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="clock_name_global_5">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clock_name_global_6</spirit:name>
+          <spirit:displayName>clock_name_global_6</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="clock_name_global_6">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clock_name_global_7</spirit:name>
+          <spirit:displayName>clock_name_global_7</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="clock_name_global_7">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>clock_name_global_8</spirit:name>
+          <spirit:displayName>clock_name_global_8</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="clock_name_global_8">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>divide_factor0</spirit:name>
+          <spirit:displayName>divide_factor0</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="divide_factor0">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>divide_factor1</spirit:name>
+          <spirit:displayName>divide_factor1</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="divide_factor1">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>divide_factor2</spirit:name>
+          <spirit:displayName>divide_factor2</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="divide_factor2">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>divide_factor3</spirit:name>
+          <spirit:displayName>divide_factor3</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="divide_factor3">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>divide_factor4</spirit:name>
+          <spirit:displayName>divide_factor4</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="divide_factor4">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>divide_factor5</spirit:name>
+          <spirit:displayName>divide_factor5</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="divide_factor5">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>divide_factor6</spirit:name>
+          <spirit:displayName>divide_factor6</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="divide_factor6">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>divide_factor7</spirit:name>
+          <spirit:displayName>divide_factor7</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="divide_factor7">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>divide_factor8</spirit:name>
+          <spirit:displayName>divide_factor8</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="divide_factor8">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_tclk_mux_en</spirit:name>
+          <spirit:displayName>pll_tclk_mux_en</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="pll_tclk_mux_en">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_tclk_sel</spirit:name>
+          <spirit:displayName>pll_tclk_sel</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="pll_tclk_sel">pll_tclk_m_src</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_vco_freq_band_0</spirit:name>
+          <spirit:displayName>pll_vco_freq_band_0</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="pll_vco_freq_band_0">pll_freq_clk0_disabled</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_vco_freq_band_1</spirit:name>
+          <spirit:displayName>pll_vco_freq_band_1</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="pll_vco_freq_band_1">pll_freq_clk1_disabled</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_freqcal_req_flag</spirit:name>
+          <spirit:displayName>pll_freqcal_req_flag</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="pll_freqcal_req_flag">true</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>cal_converge</spirit:name>
+          <spirit:displayName>cal_converge</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="cal_converge">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>cal_error</spirit:name>
+          <spirit:displayName>cal_error</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="cal_error">cal_clean</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>pll_cal_done</spirit:name>
+          <spirit:displayName>pll_cal_done</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="pll_cal_done">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>include_iossm</spirit:name>
+          <spirit:displayName>include_iossm</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="include_iossm">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>cal_code_hex_file</spirit:name>
+          <spirit:displayName>cal_code_hex_file</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="cal_code_hex_file">iossm.hex</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>parameter_table_hex_file</spirit:name>
+          <spirit:displayName>parameter_table_hex_file</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="parameter_table_hex_file">seq_params_sim.hex</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>iossm_nios_sim_clk_period_ps</spirit:name>
+          <spirit:displayName>iossm_nios_sim_clk_period_ps</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="iossm_nios_sim_clk_period_ps">1333</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_number_of_family_allowable_clocks</spirit:name>
+          <spirit:displayName>hp_number_of_family_allowable_clocks</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="hp_number_of_family_allowable_clocks">9</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_previous_num_clocks</spirit:name>
+          <spirit:displayName>hp_previous_num_clocks</spirit:displayName>
+          <spirit:value spirit:format="long" spirit:id="hp_previous_num_clocks">1</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_vco_frequency_fp</spirit:name>
+          <spirit:displayName>hp_actual_vco_frequency_fp</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_vco_frequency_fp">600.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_parameter_update_message</spirit:name>
+          <spirit:displayName>hp_parameter_update_message</spirit:displayName>
+          <spirit:value spirit:format="string" spirit:id="hp_parameter_update_message">{altera_iopll::util::pll_send_message DEBUG {Starting parameter update messages: gui_output_clock_frequency0}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_device_family }} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_device_component }} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_device_speed_grade }} {altera_iopll::util::pll_send_message DEBUG {-- in callback gui_output_clock_frequency_callback }} {altera_iopll::util::pll_send_message DEBUG { -- in update gui_output_clock_frequency0}} {altera_iopll::util::pll_send_message DEBUG { -- Updating all outclk values in order, starting with freq 0}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_output_clock_frequency0}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_output_clock_frequency1}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_phase_shift0}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_phase_shift1}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_duty_cycle0}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_duty_cycle1}} {altera_iopll::util::pll_send_message DEBUG {-- done callback gui_output_clock_frequency_callback }} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_device_family }} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_device_component }} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_device_speed_grade }} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_dps_cntr}} {altera_iopll::util::pll_send_message DEBUG { -- in update_gui_extclkout_source}} {altera_iopll::util::pll_send_message DEBUG { -- in update_gui_cascade_outclk_index}} {altera_iopll::util::pll_send_message DEBUG { -- in update gui_clock_to_compensate}} {altera_iopll::util::pll_send_message DEBUG { -- in update_gui_pll_bandwidth_preset}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_vco_frequency}} {altera_iopll::util::pll_send_message DEBUG { -- Updating all outclk values in order, starting with freq 0}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_output_clock_frequency0}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_output_clock_frequency1}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_phase_shift0}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_phase_shift1}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_duty_cycle0}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_duty_cycle1}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_output_clock_frequency2}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_phase_shift2}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_duty_cycle2}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_output_clock_frequency3}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_phase_shift3}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_duty_cycle3}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_output_clock_frequency4}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_phase_shift4}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_duty_cycle4}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_output_clock_frequency5}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_phase_shift5}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_duty_cycle5}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_output_clock_frequency6}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_phase_shift6}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_duty_cycle6}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_output_clock_frequency7}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_phase_shift7}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_duty_cycle7}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_output_clock_frequency8}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_phase_shift8}} {altera_iopll::util::pll_send_message DEBUG {-- in update gui_actual_duty_cycle8}}</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_qsys_scripting_mode</spirit:name>
+          <spirit:displayName>hp_qsys_scripting_mode</spirit:displayName>
+          <spirit:value spirit:format="bool" spirit:id="hp_qsys_scripting_mode">false</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_output_clock_frequency_fp0</spirit:name>
+          <spirit:displayName>hp_actual_output_clock_frequency_fp0</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_output_clock_frequency_fp0">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_output_clock_frequency_fp1</spirit:name>
+          <spirit:displayName>hp_actual_output_clock_frequency_fp1</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_output_clock_frequency_fp1">200.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_output_clock_frequency_fp2</spirit:name>
+          <spirit:displayName>hp_actual_output_clock_frequency_fp2</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_output_clock_frequency_fp2">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_output_clock_frequency_fp3</spirit:name>
+          <spirit:displayName>hp_actual_output_clock_frequency_fp3</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_output_clock_frequency_fp3">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_output_clock_frequency_fp4</spirit:name>
+          <spirit:displayName>hp_actual_output_clock_frequency_fp4</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_output_clock_frequency_fp4">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_output_clock_frequency_fp5</spirit:name>
+          <spirit:displayName>hp_actual_output_clock_frequency_fp5</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_output_clock_frequency_fp5">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_output_clock_frequency_fp6</spirit:name>
+          <spirit:displayName>hp_actual_output_clock_frequency_fp6</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_output_clock_frequency_fp6">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_output_clock_frequency_fp7</spirit:name>
+          <spirit:displayName>hp_actual_output_clock_frequency_fp7</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_output_clock_frequency_fp7">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_output_clock_frequency_fp8</spirit:name>
+          <spirit:displayName>hp_actual_output_clock_frequency_fp8</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_output_clock_frequency_fp8">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_output_clock_frequency_fp9</spirit:name>
+          <spirit:displayName>hp_actual_output_clock_frequency_fp9</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_output_clock_frequency_fp9">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_output_clock_frequency_fp10</spirit:name>
+          <spirit:displayName>hp_actual_output_clock_frequency_fp10</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_output_clock_frequency_fp10">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_output_clock_frequency_fp11</spirit:name>
+          <spirit:displayName>hp_actual_output_clock_frequency_fp11</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_output_clock_frequency_fp11">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_output_clock_frequency_fp12</spirit:name>
+          <spirit:displayName>hp_actual_output_clock_frequency_fp12</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_output_clock_frequency_fp12">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_output_clock_frequency_fp13</spirit:name>
+          <spirit:displayName>hp_actual_output_clock_frequency_fp13</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_output_clock_frequency_fp13">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_output_clock_frequency_fp14</spirit:name>
+          <spirit:displayName>hp_actual_output_clock_frequency_fp14</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_output_clock_frequency_fp14">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_output_clock_frequency_fp15</spirit:name>
+          <spirit:displayName>hp_actual_output_clock_frequency_fp15</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_output_clock_frequency_fp15">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_output_clock_frequency_fp16</spirit:name>
+          <spirit:displayName>hp_actual_output_clock_frequency_fp16</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_output_clock_frequency_fp16">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_output_clock_frequency_fp17</spirit:name>
+          <spirit:displayName>hp_actual_output_clock_frequency_fp17</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_output_clock_frequency_fp17">100.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_phase_shift_fp0</spirit:name>
+          <spirit:displayName>hp_actual_phase_shift_fp0</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_phase_shift_fp0">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_phase_shift_fp1</spirit:name>
+          <spirit:displayName>hp_actual_phase_shift_fp1</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_phase_shift_fp1">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_phase_shift_fp2</spirit:name>
+          <spirit:displayName>hp_actual_phase_shift_fp2</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_phase_shift_fp2">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_phase_shift_fp3</spirit:name>
+          <spirit:displayName>hp_actual_phase_shift_fp3</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_phase_shift_fp3">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_phase_shift_fp4</spirit:name>
+          <spirit:displayName>hp_actual_phase_shift_fp4</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_phase_shift_fp4">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_phase_shift_fp5</spirit:name>
+          <spirit:displayName>hp_actual_phase_shift_fp5</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_phase_shift_fp5">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_phase_shift_fp6</spirit:name>
+          <spirit:displayName>hp_actual_phase_shift_fp6</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_phase_shift_fp6">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_phase_shift_fp7</spirit:name>
+          <spirit:displayName>hp_actual_phase_shift_fp7</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_phase_shift_fp7">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_phase_shift_fp8</spirit:name>
+          <spirit:displayName>hp_actual_phase_shift_fp8</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_phase_shift_fp8">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_phase_shift_fp9</spirit:name>
+          <spirit:displayName>hp_actual_phase_shift_fp9</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_phase_shift_fp9">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_phase_shift_fp10</spirit:name>
+          <spirit:displayName>hp_actual_phase_shift_fp10</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_phase_shift_fp10">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_phase_shift_fp11</spirit:name>
+          <spirit:displayName>hp_actual_phase_shift_fp11</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_phase_shift_fp11">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_phase_shift_fp12</spirit:name>
+          <spirit:displayName>hp_actual_phase_shift_fp12</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_phase_shift_fp12">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_phase_shift_fp13</spirit:name>
+          <spirit:displayName>hp_actual_phase_shift_fp13</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_phase_shift_fp13">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_phase_shift_fp14</spirit:name>
+          <spirit:displayName>hp_actual_phase_shift_fp14</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_phase_shift_fp14">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_phase_shift_fp15</spirit:name>
+          <spirit:displayName>hp_actual_phase_shift_fp15</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_phase_shift_fp15">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_phase_shift_fp16</spirit:name>
+          <spirit:displayName>hp_actual_phase_shift_fp16</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_phase_shift_fp16">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_phase_shift_fp17</spirit:name>
+          <spirit:displayName>hp_actual_phase_shift_fp17</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_phase_shift_fp17">0.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_duty_cycle_fp0</spirit:name>
+          <spirit:displayName>hp_actual_duty_cycle_fp0</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_duty_cycle_fp0">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_duty_cycle_fp1</spirit:name>
+          <spirit:displayName>hp_actual_duty_cycle_fp1</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_duty_cycle_fp1">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_duty_cycle_fp2</spirit:name>
+          <spirit:displayName>hp_actual_duty_cycle_fp2</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_duty_cycle_fp2">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_duty_cycle_fp3</spirit:name>
+          <spirit:displayName>hp_actual_duty_cycle_fp3</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_duty_cycle_fp3">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_duty_cycle_fp4</spirit:name>
+          <spirit:displayName>hp_actual_duty_cycle_fp4</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_duty_cycle_fp4">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_duty_cycle_fp5</spirit:name>
+          <spirit:displayName>hp_actual_duty_cycle_fp5</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_duty_cycle_fp5">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_duty_cycle_fp6</spirit:name>
+          <spirit:displayName>hp_actual_duty_cycle_fp6</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_duty_cycle_fp6">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_duty_cycle_fp7</spirit:name>
+          <spirit:displayName>hp_actual_duty_cycle_fp7</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_duty_cycle_fp7">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_duty_cycle_fp8</spirit:name>
+          <spirit:displayName>hp_actual_duty_cycle_fp8</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_duty_cycle_fp8">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_duty_cycle_fp9</spirit:name>
+          <spirit:displayName>hp_actual_duty_cycle_fp9</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_duty_cycle_fp9">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_duty_cycle_fp10</spirit:name>
+          <spirit:displayName>hp_actual_duty_cycle_fp10</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_duty_cycle_fp10">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_duty_cycle_fp11</spirit:name>
+          <spirit:displayName>hp_actual_duty_cycle_fp11</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_duty_cycle_fp11">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_duty_cycle_fp12</spirit:name>
+          <spirit:displayName>hp_actual_duty_cycle_fp12</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_duty_cycle_fp12">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_duty_cycle_fp13</spirit:name>
+          <spirit:displayName>hp_actual_duty_cycle_fp13</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_duty_cycle_fp13">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_duty_cycle_fp14</spirit:name>
+          <spirit:displayName>hp_actual_duty_cycle_fp14</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_duty_cycle_fp14">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_duty_cycle_fp15</spirit:name>
+          <spirit:displayName>hp_actual_duty_cycle_fp15</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_duty_cycle_fp15">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_duty_cycle_fp16</spirit:name>
+          <spirit:displayName>hp_actual_duty_cycle_fp16</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_duty_cycle_fp16">50.0</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>hp_actual_duty_cycle_fp17</spirit:name>
+          <spirit:displayName>hp_actual_duty_cycle_fp17</spirit:displayName>
+          <spirit:value spirit:format="float" spirit:id="hp_actual_duty_cycle_fp17">50.0</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </altera:altera_module_parameters>
+    <altera:altera_assignments>
+      <spirit:parameters>
+        <spirit:parameter>
+          <spirit:name>embeddedsw.dts.compatible</spirit:name>
+          <spirit:value spirit:format="string" spirit:id="embeddedsw.dts.compatible">altr,pll</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>embeddedsw.dts.group</spirit:name>
+          <spirit:value spirit:format="string" spirit:id="embeddedsw.dts.group">clock</spirit:value>
+        </spirit:parameter>
+        <spirit:parameter>
+          <spirit:name>embeddedsw.dts.vendor</spirit:name>
+          <spirit:value spirit:format="string" spirit:id="embeddedsw.dts.vendor">altr</spirit:value>
+        </spirit:parameter>
+      </spirit:parameters>
+    </altera:altera_assignments>
+    <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 core_pll
+   {
+      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>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>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>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>
+</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>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>]]></spirit:value>
+        </spirit:parameter>
+      </spirit: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>
+  </spirit:vendorExtensions>
+</spirit: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..4f7ad9f6336c6e66ca5f51061d454c6b81195750
--- /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">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..a22b6e66b7e813a3e98b4e289a87c4cddd9ce6da
--- /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">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..afe9ab1627f52c3b5fc5ae0a6c84d128c1f595f3
--- /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">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..649239b180b8c5541e6fdc95ac39cea72c1ffb65
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_alt_em10g32_180
+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..53afb110624ab2fb326243e7a2feec2315811a09
--- /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_180       ./work/
+
+
+  vcom  "$IP_DIR/../altera_mult_add_180/sim/ip_arria10_e2sg_mult_add4_altera_mult_add_180_o5e3uui.vhd" -work altera_mult_add_180      
+  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..1af09e1d6aea8af29a176a0daba0b137329c05b1
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_native_a10_180
+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..629ab064772bfb78ad731f0f4ae066e8545d5fa5
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_native_a10_180
+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..ddf0e85afef65e03e6fd58bf78f2a58f034dd35c
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_native_a10_180
+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..c9cfcb42a0df532ff2a6c5a20f02f72d14cf5e12
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_native_a10_180
+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..f30aeb66334106332bd0bf27ac97983583c98f44
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_native_a10_180
+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..8710ab291e08cf3c9158453cd707480252a5b744
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_native_a10_180
+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..fda6b8e59ccd86456ce2815814c9473978cba1a9
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_iopll_180
+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..a6e13a55caf25212a950ddf1ed73cabaa79e8064
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_iopll_180
+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..899408e3da13746db868e5d261879ab663a1a5cf
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_iopll_180
+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..a92ff004f54896f99ecfc0cf7d72ee5aeb4c44a4
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_fpll_a10_180
+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..46289f9ec305459f1f5df9c3933c4cb12ebdec0e
--- /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_180      ./work/
+
+  vlog  "$IP_DIR/../altera_temp_sense_180/sim/altera_temp_sense.v" -work altera_temp_sense_180     
+  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..ffb3cf79622f2a691f8aa840291b6a1e4f72c209
--- /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_180
+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..e94957fba13f0b4249679ca54aa39867292d57ed
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_atx_pll_a10_180
+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..4a0b08c882118f346b32bddce722b1adc1d7a136
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_reset_control_180
+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..2508a58c562909e113b8f8c255a4823f4da31a50
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_reset_control_180
+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..77dad4207dc47e21b08e454a551c644bf736da4e
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_reset_control_180
+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..c3041472761a4d2222266c00aedd56a44f48c27b
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_reset_control_180
+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..1afba83300023fa1019d5288140501261b0d5b98
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_reset_control_180
+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..530f4e613ef31acf0e995e14245fa7f516834a17
--- /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_180
+hdl_lib_uses_synth = 
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_xcvr_reset_control_180
+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..80ce0bd3c7c62e5e4165a0eb0742dc7228129dc7
--- /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_180
+hdl_lib_uses_synth = common
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_eth_tse_180 
+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..f38591623c5f31378b6d5141b049539451165fec
--- /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_180
+hdl_lib_uses_synth = common
+hdl_lib_uses_sim = ip_arria10_e2sg_altera_eth_tse_180
+
+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..f7efd9f340be3decdca4296b302597caee3a104a
--- /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_180              ./work/
+vmap  altera_voltage_sensor_control_180      ./work/
+vmap  altera_voltage_sensor_sample_store_180 ./work/
+
+
+  vlog -sv  "$IP_DIR/../altera_voltage_sensor_control_180/sim/mentor/altera_voltage_sensor_control.sv"                     -work altera_voltage_sensor_control_180     
+  vlog -sv  "$IP_DIR/../altera_voltage_sensor_control_180/sim/mentor/voltage_sensor_avalon_controlr.sv"                    -work altera_voltage_sensor_control_180     
+  vlog -sv  "$IP_DIR/../altera_voltage_sensor_control_180/sim/mentor/voltage_sensor_wrapper.sv"                            -work altera_voltage_sensor_control_180     
+  vlog -sv  "$IP_DIR/../altera_voltage_sensor_sample_store_180/sim/mentor/altera_voltage_sensor_sample_store.sv"           -work altera_voltage_sensor_sample_store_180
+  vlog -sv  "$IP_DIR/../altera_voltage_sensor_sample_store_180/sim/mentor/altera_voltage_sensor_sample_store_ram.sv"       -work altera_voltage_sensor_sample_store_180
+  vlog -sv  "$IP_DIR/../altera_voltage_sensor_sample_store_180/sim/mentor/altera_voltage_sensor_sample_store_register.sv"  -work altera_voltage_sensor_sample_store_180
+  vcom      "$IP_DIR/../altera_voltage_sensor_180/sim/ip_arria10_e2sg_voltage_sense_altera_voltage_sensor_180_bqre2vy.vhd" -work altera_voltage_sensor_180             
+  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..176ede47d43cc7112cfcd6a775e2d4e49c0ec5eb
--- /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_180
+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..af4ed49167022faaad18b97797e3d3a08e98c2a0 100644
--- a/libraries/technology/jesd204b/hdllib.cfg
+++ b/libraries/technology/jesd204b/hdllib.cfg
@@ -1,15 +1,17 @@
 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 ip_arria10_e1sg_jesd204b ip_arria10_e2sg_jesd204b
+hdl_lib_uses_ip = ip_arria10_e1sg_jesd204b ip_arria10_e2sg_jesd204b
 hdl_lib_uses_sim = 
 hdl_lib_technology = 
 hdl_lib_disclose_library_clause_names =
     ip_arria10_e1sg_jesd204b   ip_arria10_e1sg_jesd204b_alt_em10g32_180
+    ip_arria10_e2sg_jesd204b   ip_arria10_e2sg_jesd204b_alt_em10g32_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..91c26a3c02cb1ac7f7841271e4d2f9119326acb6
--- /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_180;
+
+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/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..33de3adfe220d659202f0342d301475c837610ca
--- /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_180;
+LIBRARY ip_arria10_e2sg_tse_sgmii_gx_altera_eth_tse_180;
+
+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;