diff --git a/libraries/technology/ip_arria10/tse_sgmii_gx/compile_ip.tcl b/libraries/technology/ip_arria10/tse_sgmii_gx/ip/compile_ip.tcl
similarity index 100%
rename from libraries/technology/ip_arria10/tse_sgmii_gx/compile_ip.tcl
rename to libraries/technology/ip_arria10/tse_sgmii_gx/ip/compile_ip.tcl
diff --git a/libraries/technology/ip_arria10/tse_sgmii_gx/generate_ip.sh b/libraries/technology/ip_arria10/tse_sgmii_gx/ip/generate_ip.sh
similarity index 100%
rename from libraries/technology/ip_arria10/tse_sgmii_gx/generate_ip.sh
rename to libraries/technology/ip_arria10/tse_sgmii_gx/ip/generate_ip.sh
diff --git a/libraries/technology/ip_arria10/tse_sgmii_gx/ip/hdllib.cfg b/libraries/technology/ip_arria10/tse_sgmii_gx/ip/hdllib.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..fdef6c52eda5145c7fb7b4e607e3942dac929474
--- /dev/null
+++ b/libraries/technology/ip_arria10/tse_sgmii_gx/ip/hdllib.cfg
@@ -0,0 +1,22 @@
+hdl_lib_name = ip_arria10_tse_sgmii_gx
+hdl_library_clause_name = ip_arria10_tse_sgmii_gx_lib
+hdl_lib_uses = common
+hdl_lib_technology = ip_arria10
+
+build_dir_sim = $HDL_BUILD_DIR
+build_dir_synth = $HDL_BUILD_DIR
+
+modelsim_compile_ip_files =
+    $RADIOHDL/libraries/technology/ip_arria10/tse_sgmii_gx/compile_ip.tcl
+
+synth_files =
+    
+test_bench_files = 
+    tb_ip_arria10_tse_sgmii_gx.vhd
+
+modelsim_search_libraries =
+    altera_ver lpm_ver sgate_ver altera_mf_ver altera_lnsim_ver twentynm_ver twentynm_hssi_ver twentynm_hip_ver
+    altera     lpm     sgate     altera_mf     altera_lnsim     twentynm     twentynm_hssi     twentynm_hip
+
+quartus_qip_files =
+    generated/ip_arria10_tse_sgmii_gx.qip
diff --git a/libraries/technology/ip_arria10/tse_sgmii_gx/ip_arria10_tse_sgmii_gx.qsys b/libraries/technology/ip_arria10/tse_sgmii_gx/ip/ip_arria10_tse_sgmii_gx.qsys
similarity index 100%
rename from libraries/technology/ip_arria10/tse_sgmii_gx/ip_arria10_tse_sgmii_gx.qsys
rename to libraries/technology/ip_arria10/tse_sgmii_gx/ip/ip_arria10_tse_sgmii_gx.qsys
diff --git a/libraries/technology/ip_arria10/tse_sgmii_gx/tb_ip_arria10_tse_sgmii_gx.vhd b/libraries/technology/ip_arria10/tse_sgmii_gx/tb_ip_arria10_tse_sgmii_gx_top.vhd
similarity index 97%
rename from libraries/technology/ip_arria10/tse_sgmii_gx/tb_ip_arria10_tse_sgmii_gx.vhd
rename to libraries/technology/ip_arria10/tse_sgmii_gx/tb_ip_arria10_tse_sgmii_gx_top.vhd
index c656f02a2a956979039546fabed1e29fbd9e86cd..31da23915a78862512d28776cf6142bf91f4fd90 100644
--- a/libraries/technology/ip_arria10/tse_sgmii_gx/tb_ip_arria10_tse_sgmii_gx.vhd
+++ b/libraries/technology/ip_arria10/tse_sgmii_gx/tb_ip_arria10_tse_sgmii_gx_top.vhd
@@ -19,7 +19,7 @@
 --
 -------------------------------------------------------------------------------
 
--- Purpose: Testbench for ip_arria10_tse_sgmii_gx.
+-- Purpose: Testbench for ip_arria10_tse_sgmii_gx_top.
 -- Description:
 --   The tb is self checking based on that tx_pkt_cnt=rx_pkt_cnt must be true
 --   at the tb_end.
@@ -33,11 +33,11 @@ USE IEEE.numeric_std.ALL;
 USE common_lib.common_pkg.ALL;
 
 
-ENTITY tb_ip_arria10_tse_sgmii_gx IS
-END tb_ip_arria10_tse_sgmii_gx;
+ENTITY tb_ip_arria10_tse_sgmii_gx_top IS
+END tb_ip_arria10_tse_sgmii_gx_top;
 
 
-ARCHITECTURE tb OF tb_ip_arria10_tse_sgmii_gx IS
+ARCHITECTURE tb OF tb_ip_arria10_tse_sgmii_gx_top IS
 
   CONSTANT sys_clk_period             : TIME := 10 ns;  -- 100 MHz
   CONSTANT eth_clk_period             : TIME :=  8 ns;  -- 125 MHz
@@ -629,7 +629,7 @@ BEGIN
     WAIT;
   END PROCESS;
   
-  dut : ENTITY work.ip_arria10_tse_sgmii_gx
+  dut : ENTITY work.ip_arria10_tse_sgmii_gx_top
     -- The ip_arria10_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