diff --git a/libraries/io/ddr/src/vhdl/io_ddr.vhd b/libraries/io/ddr/src/vhdl/io_ddr.vhd
index 182a004ccd3352fed738ac661da9b45afb6072b1..38dbd9ac2dc646e4ff479fab40af0e2c3ca0d386 100644
--- a/libraries/io/ddr/src/vhdl/io_ddr.vhd
+++ b/libraries/io/ddr/src/vhdl/io_ddr.vhd
@@ -319,6 +319,7 @@ BEGIN
     
   u_wr_fifo : ENTITY dp_lib.dp_fifo_dc_mixed_widths
   GENERIC MAP (
+    g_technology        => g_technology,
     g_wr_data_w         => g_wr_data_w,
     g_rd_data_w         => c_ctlr_data_w,
     g_use_ctrl          => c_wr_fifo_use_ctrl,
@@ -398,6 +399,7 @@ BEGIN
   
   u_rd_fifo : ENTITY dp_lib.dp_fifo_dc_mixed_widths
   GENERIC MAP (
+    g_technology        => g_technology,
     g_wr_data_w         => c_ctlr_data_w,
     g_rd_data_w         => g_rd_data_w,
     g_use_ctrl          => FALSE,
diff --git a/libraries/io/ddr/src/vhdl/mms_io_ddr_diag.vhd b/libraries/io/ddr/src/vhdl/mms_io_ddr_diag.vhd
index 236ebeae36608994b6804d83a855e3b30cb779af..bd2ff825b01aeda3da7fde0bd5eca273cc771afc 100644
--- a/libraries/io/ddr/src/vhdl/mms_io_ddr_diag.vhd
+++ b/libraries/io/ddr/src/vhdl/mms_io_ddr_diag.vhd
@@ -225,6 +225,7 @@ BEGIN
   -----------------------------------------------------------------------------
   u_mms_diag_block_gen: ENTITY diag_lib.mms_diag_block_gen
   GENERIC MAP (
+    g_technology         => g_technology,
     -- Generate configurations
     g_use_usr_input      => FALSE,
     g_use_bg             => FALSE,
@@ -255,6 +256,7 @@ BEGIN
   -----------------------------------------------------------------------------
   u_mms_diag_data_buffer: ENTITY diag_lib.mms_diag_data_buffer
   GENERIC MAP (
+    g_technology   => g_technology,
     -- Generate configurations
     g_use_db       => g_db_use_db,
     g_use_rx_seq   => TRUE,
diff --git a/libraries/io/epcs/src/vhdl/mms_epcs.vhd b/libraries/io/epcs/src/vhdl/mms_epcs.vhd
index ac108c28fe4ee4516b743fc983839edf2121b6a8..a84c9f8492d9ebc9bbe3d17a1cb68af47832b13b 100644
--- a/libraries/io/epcs/src/vhdl/mms_epcs.vhd
+++ b/libraries/io/epcs/src/vhdl/mms_epcs.vhd
@@ -178,6 +178,7 @@ BEGIN
 
   u_fifo_user_to_epcs : ENTITY dp_lib.dp_fifo_dc_mixed_widths
   GENERIC MAP (
+    g_technology   => g_technology,
     g_wr_data_w    => c_user_data_w,
     g_rd_data_w    => c_epcs_data_w,
     g_use_ctrl     => FALSE,
@@ -201,6 +202,7 @@ BEGIN
 
   u_fifo_epcs_to_user : ENTITY dp_lib.dp_fifo_dc_mixed_widths
   GENERIC MAP (
+    g_technology   => g_technology,
     g_wr_data_w    => c_epcs_data_w,
     g_rd_data_w    => c_user_data_w,
     g_use_ctrl     => FALSE,
diff --git a/libraries/io/eth/src/vhdl/eth.vhd b/libraries/io/eth/src/vhdl/eth.vhd
index 47fc980569d13ccc4b3267ed7afbd1f7b8854787..1a9bcb1cabf5301d2e1fc72114b8608958a71c3d 100644
--- a/libraries/io/eth/src/vhdl/eth.vhd
+++ b/libraries/io/eth/src/vhdl/eth.vhd
@@ -20,7 +20,15 @@
 --
 -------------------------------------------------------------------------------
 
-LIBRARY IEEE, common_lib, dp_lib, tech_tse_lib, technology_lib;
+-- Purpose:
+--   Provide Ethernet control access to a node and some UDP ports for streaming
+--   data.
+-- Description:
+--   Connect the 1GbE TSE to the microprocessor and to streaming UDP ports. The
+--   packets for the streaming channels are directed based on the UDP port
+--   number and all other packets are transfered to the default control channel.
+
+LIBRARY IEEE, common_lib, technology_lib, dp_lib, tech_tse_lib;
 USE IEEE.std_logic_1164.ALL;
 USE common_lib.common_pkg.ALL;
 USE common_lib.common_mem_pkg.ALL;
@@ -31,14 +39,6 @@ USE tech_tse_lib.tech_tse_pkg.ALL;
 USE work.eth_pkg.ALL;
 USE technology_lib.technology_select_pkg.ALL;
 
--- Purpose:
---   Provide Ethernet control access to a node and some UDP ports for streaming
---   data.
--- Description:
---   Connect the 1GbE TSE to the microprocessor and to streaming UDP ports. The
---   packets for the streaming channels are directed based on the UDP port
---   number and all other packets are transfered to the default control channel.
-
 ENTITY eth IS
   GENERIC (
     g_technology         : NATURAL := c_tech_select_default;
@@ -224,7 +224,8 @@ BEGIN
   -- Packet buffer
   u_mm_ram : ENTITY common_lib.common_ram_crw_crw
   GENERIC MAP (
-    g_ram     => c_mm_ram
+    g_technology => g_technology,
+    g_ram        => c_mm_ram
   )
   PORT MAP (
     rst_a     => mm_rst,
@@ -400,6 +401,9 @@ BEGIN
   ------------------------------------------------------------------------------
   
   u_rx_buffer : ENTITY work.eth_buffer
+  GENERIC MAP (
+    g_technology   => g_technology,
+  )
   PORT MAP (
     -- Clocks and reset
     rst             => st_rst,
@@ -525,6 +529,7 @@ BEGIN
   -- Multiplex the two input streams on to the single ETH stream
   u_tx_mux : ENTITY dp_lib.dp_mux
   GENERIC MAP (
+    g_technology      => g_technology,
     g_data_w          => c_eth_data_w,
     g_empty_w         => c_eth_empty_w,
     g_in_channel_w    => 1,
diff --git a/libraries/io/eth/src/vhdl/eth_buffer.vhd b/libraries/io/eth/src/vhdl/eth_buffer.vhd
index ca94e27c858ef1ac4be182c840be54647d3a6a06..d04b92c5dae8ed3df91a4cd1c8dbe700c3b8d15c 100644
--- a/libraries/io/eth/src/vhdl/eth_buffer.vhd
+++ b/libraries/io/eth/src/vhdl/eth_buffer.vhd
@@ -20,19 +20,23 @@
 --
 -------------------------------------------------------------------------------
 
-LIBRARY IEEE, common_lib, dp_lib;
+-- Description:
+-- . Store input frames in a FIFO
+-- . The sink is always ready, so a frame gets flushed when the FIFO is almost full
+-- . Output a frame from the FIFO on request when available
+
+LIBRARY IEEE, common_lib, technology_lib, dp_lib;
 USE IEEE.std_logic_1164.ALL;
 USE IEEE.numeric_std.ALL;
 USE common_lib.common_pkg.ALL;
 USE dp_lib.dp_stream_pkg.ALL;
 USE work.eth_pkg.ALL;
-
--- Description:
--- . Store input frames in a FIFO
--- . The sink is always ready, so a frame gets flushed when the FIFO is almost full
--- . Output a frame from the FIFO on request when available
+USE technology_lib.technology_select_pkg.ALL;
 
 ENTITY eth_buffer IS
+  GENERIC (
+    g_technology         : NATURAL := c_tech_select_default
+  );
   PORT (
     -- Clocks and reset
     rst             : IN  STD_LOGIC;  -- reset synchronous with clk
@@ -114,6 +118,7 @@ BEGIN
   
   u_fifo : ENTITY dp_lib.dp_fifo_sc
   GENERIC MAP (
+    g_technology  => g_technology,
     g_data_w      => c_eth_data_w,
     g_empty_w     => c_eth_empty_w,
     g_channel_w   => 1,
diff --git a/libraries/io/i2c/src/vhdl/i2c_commander.vhd b/libraries/io/i2c/src/vhdl/i2c_commander.vhd
index cad323ceea608cdf376c36bbed1f787ade92b87c..c2460589bec1e9e0b19667507a31f9d7f29f987a 100644
--- a/libraries/io/i2c/src/vhdl/i2c_commander.vhd
+++ b/libraries/io/i2c/src/vhdl/i2c_commander.vhd
@@ -65,17 +65,18 @@
 --   by inserting SMBUS_C_NOP in the protocol list.
 
 
-LIBRARY IEEE, common_lib;
+LIBRARY IEEE, common_lib, technology_lib;
 USE IEEE.STD_LOGIC_1164.ALL;
 USE common_lib.common_pkg.ALL;
 USE common_lib.common_mem_pkg.ALL;
 USE work.i2c_pkg.ALL;
 USE work.i2c_commander_pkg.ALL;
-
+USE technology_lib.technology_select_pkg.ALL;
 
 ENTITY i2c_commander IS
   GENERIC (
     g_sim                    : BOOLEAN := FALSE;
+    g_technology             : NATURAL := c_tech_select_default;
     g_i2c_cmdr               : t_c_i2c_cmdr_commander;
     g_i2c_mm                 : t_c_i2c_mm;
     g_i2c_phy                : t_c_i2c_phy;
@@ -284,6 +285,7 @@ BEGIN
   -- I2C protocol list register
   u_protocol_ram : ENTITY common_lib.common_ram_rw_rw
   GENERIC MAP (
+    g_technology => g_technology,
     g_ram       => c_protocol_ram,
     g_init_file => g_protocol_ram_init_file
   )
@@ -312,6 +314,7 @@ BEGIN
     -- I2C result register
     u_result_ram : ENTITY common_lib.common_ram_rw_rw
     GENERIC MAP (
+      g_technology => g_technology,
       g_ram       => c_result_ram
     )
     PORT MAP (
diff --git a/libraries/io/i2c/src/vhdl/i2c_master.vhd b/libraries/io/i2c/src/vhdl/i2c_master.vhd
index 1eaf984032bac5cb56d3b3f104e3f39c18dfb867..82bb58881c8997fb52e0ed3ad159c6a1797f43f7 100644
--- a/libraries/io/i2c/src/vhdl/i2c_master.vhd
+++ b/libraries/io/i2c/src/vhdl/i2c_master.vhd
@@ -19,14 +19,16 @@
 --
 -------------------------------------------------------------------------------
 
-LIBRARY IEEE, common_lib;
+LIBRARY IEEE, common_lib, technology_lib;
 USE IEEE.std_logic_1164.ALL;
 USE IEEE.numeric_std.ALL;
 USE common_lib.common_pkg.ALL;
 USE work.i2c_pkg.ALL;
+USE technology_lib.technology_select_pkg.ALL;
 
 ENTITY i2c_master IS
   GENERIC (
+    g_technology             : NATURAL := c_tech_select_default;
     g_i2c_mm                 : t_c_i2c_mm  := c_i2c_mm;
     g_i2c_phy                : t_c_i2c_phy
   );
@@ -101,6 +103,7 @@ BEGIN
 
   u_mm : ENTITY work.i2c_mm
   GENERIC MAP (
+    g_technology => g_technology,
     g_i2c_mm => g_i2c_mm
   )
   PORT MAP (
diff --git a/libraries/io/i2c/src/vhdl/i2c_mm.vhd b/libraries/io/i2c/src/vhdl/i2c_mm.vhd
index 6d971a9cd36169a73fbebdf4eccf43348a92d5b3..e3d1fc1de71d9751a4ec26f14b0be451eebaf585 100644
--- a/libraries/io/i2c/src/vhdl/i2c_mm.vhd
+++ b/libraries/io/i2c/src/vhdl/i2c_mm.vhd
@@ -19,14 +19,16 @@
 --
 -------------------------------------------------------------------------------
 
-LIBRARY IEEE, common_lib;
+LIBRARY IEEE, common_lib, technology_lib;
 USE IEEE.STD_LOGIC_1164.ALL;
 USE common_lib.common_pkg.ALL;
 USE common_lib.common_mem_pkg.ALL;
 USE work.i2c_pkg.ALL;
+USE technology_lib.technology_select_pkg.ALL;
 
 ENTITY i2c_mm IS
   GENERIC (
+    g_technology             : NATURAL := c_tech_select_default;
     g_i2c_mm                 : t_c_i2c_mm  := c_i2c_mm
   );
   PORT (
@@ -169,7 +171,8 @@ BEGIN
   -- I2C protocol list register
   u_ram_protocol : ENTITY common_lib.common_ram_rw_rw
   GENERIC MAP (
-    g_ram       => c_ram_protocol
+    g_technology => g_technology,
+    g_ram        => c_ram_protocol
   )
   PORT MAP (
     rst         => rst,
@@ -192,7 +195,8 @@ BEGIN
   -- I2C result register
   u_ram_result : ENTITY common_lib.common_ram_rw_rw
   GENERIC MAP (
-    g_ram       => c_ram_result
+    g_technology => g_technology,
+    g_ram        => c_ram_result
   )
   PORT MAP (
     rst         => rst,
diff --git a/libraries/io/ppsh/src/vhdl/mm_ppsh.vhd b/libraries/io/ppsh/src/vhdl/mm_ppsh.vhd
index c08f6c64ffc9403eab2905d46ca60cc6e5166c35..3ae29277fd512adecda7aac1d5f2227ec0801007 100644
--- a/libraries/io/ppsh/src/vhdl/mm_ppsh.vhd
+++ b/libraries/io/ppsh/src/vhdl/mm_ppsh.vhd
@@ -19,16 +19,18 @@
 --
 -------------------------------------------------------------------------------
 
-LIBRARY IEEE, common_lib;
+LIBRARY IEEE, common_lib, technology_lib;
 USE IEEE.STD_LOGIC_1164.ALL;
 USE IEEE.NUMERIC_STD.ALL;
 USE common_lib.common_pkg.ALL;
+USE technology_lib.technology_select_pkg.ALL;
 
 -- Purpose : Get info from ppsh into mm_clk domain
 -- Description: See ppsh.vhd
 
 ENTITY mm_ppsh IS
   GENERIC (
+    g_technology    : NATURAL := c_tech_select_default;
     g_ext_clk_freq  : NATURAL := 200 * 10**6   -- clock frequency of clk in Hz
   );
   PORT (
@@ -84,6 +86,7 @@ BEGIN
   
   u_pps : ENTITY work.ppsh
   GENERIC MAP (
+    g_technology => g_technology,
     g_clk_freq => g_ext_clk_freq
   )
   PORT MAP (
diff --git a/libraries/io/ppsh/src/vhdl/mms_ppsh.vhd b/libraries/io/ppsh/src/vhdl/mms_ppsh.vhd
index c2129901bb057fa5b746b5b4d78ac264dc93dff4..bb797c033f5f2bc137e823b39737d0e960840b1f 100644
--- a/libraries/io/ppsh/src/vhdl/mms_ppsh.vhd
+++ b/libraries/io/ppsh/src/vhdl/mms_ppsh.vhd
@@ -22,15 +22,16 @@
 -- Purpose : MMS for ppsh
 -- Description: See ppsh.vhd
 
-LIBRARY IEEE, common_lib;
+LIBRARY IEEE, common_lib, technology_lib;
 USE IEEE.STD_LOGIC_1164.ALL;
 USE IEEE.NUMERIC_STD.ALL;
 USE common_lib.common_pkg.ALL;
 USE common_lib.common_mem_pkg.ALL;
-
+USE technology_lib.technology_select_pkg.ALL;
 
 ENTITY mms_ppsh IS
   GENERIC (
+    g_technology         : NATURAL := c_tech_select_default;
     g_cross_clock_domain : BOOLEAN := TRUE;      -- use FALSE when mm_clk and st_clk are the same, else use TRUE to cross the clock domain
     g_st_clk_freq        : NATURAL := 200*10**6  -- clk frequency in Hz
   );
@@ -82,6 +83,7 @@ BEGIN
 
   u_ppsh : ENTITY work.ppsh
   GENERIC MAP (
+    g_technology     => g_technology,
     g_clk_freq       => g_st_clk_freq
   )
   PORT MAP (
diff --git a/libraries/io/ppsh/src/vhdl/ppsh.vhd b/libraries/io/ppsh/src/vhdl/ppsh.vhd
index 1d0b1ff15ef5901f380bfc0f609c3b5361e0d34f..178511ce5b9c33d1455f48932fdc91f303877b6b 100644
--- a/libraries/io/ppsh/src/vhdl/ppsh.vhd
+++ b/libraries/io/ppsh/src/vhdl/ppsh.vhd
@@ -19,11 +19,6 @@
 --
 -------------------------------------------------------------------------------
 
-LIBRARY IEEE, common_lib;
-USE IEEE.STD_LOGIC_1164.ALL;
-USE IEEE.NUMERIC_STD.ALL;
-USE common_lib.common_pkg.ALL;
-
 -- Purpose : Capture the external PPS reliably in the clk clock domain
 -- Description:
 --   The assumption is that the external PPS is synchronous to the clk clock
@@ -52,9 +47,15 @@ USE common_lib.common_pkg.ALL;
 --   ensure that both edges capture the pps_ext in dedicated logic near the
 --   pin.
   
+LIBRARY IEEE, common_lib, technology_lib;
+USE IEEE.STD_LOGIC_1164.ALL;
+USE IEEE.NUMERIC_STD.ALL;
+USE common_lib.common_pkg.ALL;
+USE technology_lib.technology_select_pkg.ALL;
 
 ENTITY ppsh IS
   GENERIC (
+    g_technology  : NATURAL := c_tech_select_default;
     g_clk_freq    : NATURAL := 200 * 10**6   -- clock frequency of clk in Hz
   );
   PORT (
@@ -107,6 +108,7 @@ BEGIN
   
   u_in : ENTITY common_lib.common_ddio_in
   GENERIC MAP(
+    g_technology => g_technology,
     g_width     => 1
   )
   PORT MAP(
diff --git a/libraries/io/tr_10GbE/src/vhdl/tr_10GbE.vhd b/libraries/io/tr_10GbE/src/vhdl/tr_10GbE.vhd
index b0735df70e176860bbdac885b0bd4531e2c0bda7..cf39343a10183823563e72090c94d81414c2b11e 100644
--- a/libraries/io/tr_10GbE/src/vhdl/tr_10GbE.vhd
+++ b/libraries/io/tr_10GbE/src/vhdl/tr_10GbE.vhd
@@ -200,6 +200,7 @@ BEGIN
   gen_dp_fifo_fill_dc : FOR i IN 0 TO g_nof_macs-1 GENERATE
     u_dp_fifo_fill_dc : ENTITY dp_lib.dp_fifo_fill_dc
     GENERIC MAP (
+      g_technology  => g_technology,
       g_data_w      => c_xgmii_data_w,
       g_empty_w     => c_tech_mac_10g_empty_w,
       g_use_empty   => TRUE,
@@ -318,6 +319,7 @@ BEGIN
   gen_dp_fifo_dc_rx : FOR i IN g_nof_macs-1 DOWNTO 0 GENERATE
     u_dp_fifo_dc_rx : ENTITY dp_lib.dp_fifo_dc
     GENERIC MAP (
+      g_technology  => g_technology,
       g_data_w      => c_xgmii_data_w,
       g_empty_w     => c_tech_mac_10g_empty_w,
       g_use_empty   => TRUE,
diff --git a/libraries/io/tr_nonbonded/src/vhdl/mms_tr_nonbonded.vhd b/libraries/io/tr_nonbonded/src/vhdl/mms_tr_nonbonded.vhd
index 0e1a35134a877ec48c0c1165bcdfce2c96e92825..0d8cfccd343eaca01fe54be57634981d725b12fa 100644
--- a/libraries/io/tr_nonbonded/src/vhdl/mms_tr_nonbonded.vhd
+++ b/libraries/io/tr_nonbonded/src/vhdl/mms_tr_nonbonded.vhd
@@ -22,17 +22,19 @@
 -- Purpose: PHY IO interface for non-bonded gigabit transceivers
 -- Description:
 
-LIBRARY IEEE, common_lib, dp_lib, diag_lib, diagnostics_lib;
+LIBRARY IEEE, common_lib, technology_lib, dp_lib, diag_lib, diagnostics_lib;
 USE IEEE.std_logic_1164.ALL;
 USE IEEE.numeric_std.ALL;
 USE common_lib.common_pkg.ALL;
 USE dp_lib.dp_stream_pkg.ALL;
 USE common_lib.common_mem_pkg.ALL;
+USE technology_lib.technology_select_pkg.ALL;
 
 ENTITY mms_tr_nonbonded IS
   GENERIC (
     g_sim             : BOOLEAN := FALSE;
     g_sim_level       : NATURAL := 0;  -- Default: 0 = simulate IP. 1 = use fast behavioural model
+    g_technology      : NATURAL := c_tech_select_default;
     g_data_w          : NATURAL := 32;
     g_nof_gx          : NATURAL;
     g_mbps            : NATURAL := 6250;  -- Supported: 6250, 5000, 3125, 2500
@@ -141,11 +143,12 @@ BEGIN
 
   u_tr_nonbonded : ENTITY work.tr_nonbonded 
   GENERIC MAP (
+    g_sim             => g_sim,
+    g_sim_level       => g_sim_level,
+    g_technology      => g_technology,
     g_data_w          => g_data_w,
     g_nof_gx          => g_nof_gx,
     g_mbps            => g_mbps,
-    g_sim             => g_sim,
-    g_sim_level       => g_sim_level,
     g_tx              => g_tx,
     g_rx              => g_rx,
     g_fifos           => TRUE,
@@ -266,6 +269,7 @@ BEGIN
 
     u_dp_mux : ENTITY dp_lib.dp_mux
     GENERIC MAP (
+      g_technology        => g_technology,
       -- Mux
       g_sel_ctrl_invert   => TRUE, -- We're using DOWNTO ranges in our streaming arrays, so we must invert the selection input
       g_mode              => 2,  
@@ -329,6 +333,7 @@ BEGIN
   gen_data_buf : IF g_rx=TRUE AND g_rx_use_data_buf=TRUE GENERATE    
     u_data_buf : ENTITY diag_lib.mms_diag_data_buffer
     GENERIC MAP (    
+      g_technology   => g_technology,
       g_nof_streams  => g_nof_gx,
       g_data_w       => g_data_w, 
       g_buf_nof_data => g_rx_data_buf_nof_words,
diff --git a/libraries/io/tr_nonbonded/src/vhdl/tr_nonbonded.vhd b/libraries/io/tr_nonbonded/src/vhdl/tr_nonbonded.vhd
index 827fca955a709b18f20919ca4cc41758842569e5..50891829a9e27b9e88d97f65046f78b1420d0c8e 100644
--- a/libraries/io/tr_nonbonded/src/vhdl/tr_nonbonded.vhd
+++ b/libraries/io/tr_nonbonded/src/vhdl/tr_nonbonded.vhd
@@ -29,6 +29,8 @@ USE technology_lib.technology_select_pkg.ALL;
 
 ENTITY tr_nonbonded IS
   GENERIC(
+    g_sim                 : BOOLEAN := FALSE;
+    g_sim_level           : NATURAL := 0;
     g_technology          : NATURAL := c_tech_select_default;
     g_data_w              : NATURAL := 32;
     g_nof_gx              : NATURAL := 12;
@@ -43,8 +45,6 @@ ENTITY tr_nonbonded IS
     -- |--------------------------------------------------------------------------------------------
     -- | X     | >1          | Not supported
     ------------------------------------------------------------------------------------------------
-    g_sim                 : BOOLEAN := FALSE;
-    g_sim_level           : NATURAL := 0;
     g_tx                  : BOOLEAN := TRUE;
     g_rx                  : BOOLEAN := TRUE;
     g_fifos               : BOOLEAN := FALSE;  -- When TRUE use dp_clk and clock domain crossing FIFO for dp->tx and for rx->dp, when FALSE use rx_clk stream and tx_clk stream
@@ -210,6 +210,7 @@ BEGIN
       gen_tx_fifo : IF g_fifos = TRUE GENERATE
         u_tx_fifo : ENTITY dp_lib.dp_fifo_dc
         GENERIC MAP (
+          g_technology => g_technology,
           g_data_w    => g_data_w,
           g_use_ctrl  => FALSE,
           g_fifo_size => g_tx_fifo_depth,
@@ -255,6 +256,7 @@ BEGIN
       gen_rx_fifo : IF g_fifos = TRUE GENERATE    
         u_rx_fifo : ENTITY dp_lib.dp_fifo_dc
         GENERIC MAP (
+          g_technology => g_technology,
           g_data_w    => g_data_w,
           g_use_ctrl  => FALSE,
           g_fifo_size => g_rx_fifo_depth,
diff --git a/libraries/io/tr_xaui/src/vhdl/mms_tr_xaui.vhd b/libraries/io/tr_xaui/src/vhdl/mms_tr_xaui.vhd
index ced454f39acfe9b727270fb66c743a18196737ef..286eeba674f1826bf3cd85fdfe45f8bacf756ab9 100644
--- a/libraries/io/tr_xaui/src/vhdl/mms_tr_xaui.vhd
+++ b/libraries/io/tr_xaui/src/vhdl/mms_tr_xaui.vhd
@@ -20,7 +20,7 @@
 --
 --------------------------------------------------------------------------------
 
-LIBRARY IEEE, common_lib, dp_lib, mdio_lib, diagnostics_lib;
+LIBRARY IEEE, common_lib, technology_lib, dp_lib, mdio_lib, diagnostics_lib;
 USE IEEE.STD_LOGIC_1164.ALL;
 USE common_lib.common_pkg.ALL;
 USE common_lib.common_mem_pkg.ALL;
@@ -28,10 +28,12 @@ USE common_lib.common_interface_layers_pkg.ALL;
 USE dp_lib.dp_stream_pkg.ALL;
 USE mdio_lib.mdio_pkg.ALL;
 USE mdio_lib.mdio_vitesse_vsc8486_pkg.ALL;
+USE technology_lib.technology_select_pkg.ALL;
 
 ENTITY mms_tr_xaui IS
   GENERIC (
     g_sim             : BOOLEAN := FALSE;
+    g_technology      : NATURAL := c_tech_select_default;
     g_nof_xaui        : NATURAL := 1; -- Up to 3 (hard XAUI only) supported
     g_use_mdio        : BOOLEAN := FALSE
   );                      
@@ -131,6 +133,7 @@ BEGIN
 
   u_tr_xaui: ENTITY work.tr_xaui 
   GENERIC MAP (
+    g_technology       => g_technology,
     g_sim              => g_sim,
     g_use_mdio         => g_use_mdio,
     g_nof_xaui         => g_nof_xaui