diff --git a/modules/wr_nic/xwr_nic.vhd b/modules/wr_nic/xwr_nic.vhd
index 1fc8c3836451b6dc3813c5300f38193478757cbf..8eb39b6473cdd238d510c2c14733ee0ab2d1c8ed 100644
--- a/modules/wr_nic/xwr_nic.vhd
+++ b/modules/wr_nic/xwr_nic.vhd
@@ -108,153 +108,6 @@ entity xwr_nic is
 end xwr_nic;
 
 architecture rtl of xwr_nic is
-
-  component nic_descriptor_manager
-    generic (
-      g_desc_mode            : string;
-      g_num_descriptors      : integer;
-      g_num_descriptors_log2 : integer;
-      g_port_mask_bits       : integer := 32);
-    port (
-      clk_sys_i             : in  std_logic;
-      rst_n_i               : in  std_logic;
-      enable_i              : in  std_logic;
-      bna_o                 : out std_logic;
-      bna_clear_i           : in  std_logic;
-      cur_desc_idx_o        : out std_logic_vector(g_num_descriptors_log2-1 downto 0);
-      dtbl_addr_o           : out std_logic_vector(g_num_descriptors_log2+1 downto 0);
-      dtbl_data_i           : in  std_logic_vector(31 downto 0);
-      dtbl_rd_o             : out std_logic;
-      dtbl_data_o           : out std_logic_vector(31 downto 0);
-      dtbl_wr_o             : out std_logic;
-      desc_reload_current_i : in  std_logic;
-      desc_request_next_i   : in  std_logic;
-      desc_grant_o          : out std_logic;
-      rxdesc_current_o      : out t_rx_descriptor;
-      rxdesc_new_i          : in  t_rx_descriptor;
-      txdesc_current_o      : out t_tx_descriptor;
-      txdesc_new_i          : in  t_tx_descriptor;
-      desc_write_i          : in  std_logic;
-      desc_write_done_o     : out std_logic);
-  end component;
-
-  component nic_rx_fsm
-    port (
-      clk_sys_i             : in  std_logic;
-      rst_n_i               : in  std_logic;
-      pps_p_i               : in std_logic;
-      pps_valid_i           : in std_logic;
-      snk_i                 : in  t_wrf_sink_in;
-      snk_o                 : out t_wrf_sink_out;
-      regs_i                : in  t_nic_out_registers;
-      regs_o                : out t_nic_in_registers;
-      bna_i                 : in  std_logic;
-      irq_rcomp_o           : out std_logic;
-      irq_rcomp_ack_i       : in  std_logic;
-      rxdesc_request_next_o : out std_logic;
-      rxdesc_grant_i        : in  std_logic;
-      rxdesc_current_i      : in  t_rx_descriptor;
-      rxdesc_new_o          : out t_rx_descriptor;
-      rxdesc_write_o        : out std_logic;
-      rxdesc_write_done_i   : in  std_logic;
-      buf_grant_i           : in  std_logic;
-      buf_addr_o            : out std_logic_vector(c_nic_buf_size_log2-3 downto 0);
-      buf_wr_o              : out std_logic;
-      buf_data_o            : out std_logic_vector(31 downto 0));
-  end component;
-
-  component nic_buffer
-    generic (
-      g_memsize_log2 : integer);
-    port (
-      clk_sys_i : in  std_logic;
-      rst_n_i   : in  std_logic;
-      addr_i    : in  std_logic_vector(g_memsize_log2-1 downto 0);
-      data_i    : in  std_logic_vector(31 downto 0);
-      wr_i      : in  std_logic;
-      data_o    : out std_logic_vector(31 downto 0);
-      wb_data_i : in  std_logic_vector(31 downto 0);
-      wb_data_o : out std_logic_vector(31 downto 0);
-      wb_addr_i : in  std_logic_vector(g_memsize_log2-1 downto 0);
-      wb_cyc_i  : in  std_logic;
-      wb_stb_i  : in  std_logic;
-      wb_we_i   : in  std_logic;
-      wb_ack_o  : out std_logic);
-  end component;
-
-  component nic_wishbone_slave
-    port (
-      rst_n_i          : in  std_logic;
-      clk_sys_i        : in  std_logic;
-      wb_adr_i         : in  std_logic_vector(6 downto 0);
-      wb_dat_i         : in  std_logic_vector(31 downto 0);
-      wb_dat_o         : out std_logic_vector(31 downto 0);
-      wb_cyc_i         : in  std_logic;
-      wb_sel_i         : in  std_logic_vector(3 downto 0);
-      wb_stb_i         : in  std_logic;
-      wb_we_i          : in  std_logic;
-      wb_ack_o         : out std_logic;
-      wb_stall_o       : out std_logic;
-      wb_int_o         : out std_logic;
-      irq_rcomp_i      : in  std_logic;
-      irq_rcomp_ack_o  : out std_logic;
-      irq_tcomp_i      : in  std_logic;
-      irq_tcomp_ack_o  : out std_logic;
-      irq_tcomp_mask_o : out std_logic;
-      irq_txerr_i      : in  std_logic;
-      irq_txerr_ack_o  : out std_logic;
-      irq_txerr_mask_o : out std_logic;
-      nic_dtx_addr_i   : in  std_logic_vector(4 downto 0);
-      nic_dtx_data_o   : out std_logic_vector(31 downto 0);
-      nic_dtx_rd_i     : in  std_logic;
-      nic_dtx_data_i   : in  std_logic_vector(31 downto 0);
-      nic_dtx_wr_i     : in  std_logic;
-      nic_drx_addr_i   : in  std_logic_vector(4 downto 0);
-      nic_drx_data_o   : out std_logic_vector(31 downto 0);
-      nic_drx_rd_i     : in  std_logic;
-      nic_drx_data_i   : in  std_logic_vector(31 downto 0);
-      nic_drx_wr_i     : in  std_logic;
-      regs_i           : in  t_nic_in_registers;
-      regs_o           : out t_nic_out_registers);
-  end component;
-
-  component nic_tx_fsm
-    generic(
-      g_port_mask_bits  : integer := 32;
-      g_cyc_on_stall    : boolean := false;
-      g_rmon_events_pp  : integer := 1);
-    port (
-      clk_sys_i               : in  std_logic;
-      rst_n_i                 : in  std_logic;
-      src_o                   : out t_wrf_source_out;
-      src_i                   : in  t_wrf_source_in;
-      rtu_dst_port_mask_o     : out std_logic_vector(g_port_mask_bits-1 downto 0);
-      rtu_prio_o              : out std_logic_vector(2 downto 0);
-      rtu_drop_o              : out std_logic;
-      rtu_rsp_valid_o         : out std_logic;
-      rtu_rsp_ack_i           : in  std_logic;
-      regs_i                  : in  t_nic_out_registers;
-      regs_o                  : out t_nic_in_registers;
-      irq_tcomp_o             : out std_logic;
-      irq_tcomp_ack_i         : in  std_logic;
-      irq_tcomp_mask_i        : in  std_logic;
-      irq_txerr_o             : out std_logic;
-      irq_txerr_ack_i         : in  std_logic;
-      irq_txerr_mask_i        : in  std_logic;
-      txdesc_reload_current_o : out std_logic;
-      txdesc_request_next_o   : out std_logic;
-      txdesc_grant_i          : in  std_logic;
-      txdesc_current_i        : in  t_tx_descriptor;
-      txdesc_new_o            : out t_tx_descriptor;
-      txdesc_write_o          : out std_logic;
-      txdesc_write_done_i     : in  std_logic;
-      bna_i                   : in  std_logic;
-      buf_grant_i             : in  std_logic;
-      buf_addr_o              : out std_logic_vector(c_nic_buf_size_log2-3 downto 0);
-      buf_data_i              : in  std_logic_vector(31 downto 0);
-      rmon_events_o : out std_logic_vector(g_port_mask_bits*g_rmon_events_pp-1 downto 0));
-  end component;
-
   signal rxdesc_request_next : std_logic;
   signal rxdesc_grant        : std_logic;
   signal rxdesc_current      : t_rx_descriptor;
@@ -351,7 +204,7 @@ begin  -- rtl
 
   regs_towb <= regs_towb_tx or regs_towb_rx or regs_towb_main;
 
-  U_WB_SLAVE : nic_wishbone_slave
+  U_WB_SLAVE : entity work.nic_wishbone_slave
     port map (
       rst_n_i   => rst_n_i,
       clk_sys_i => clk_sys_i,
@@ -393,7 +246,7 @@ begin  -- rtl
       nic_drx_wr_i   => nic_drx_wr);
 
 
-  U_BUFFER : nic_buffer
+  U_BUFFER : entity work.nic_buffer
     generic map (
       g_memsize_log2 => c_nic_buf_size_log2 - 2)
     port map (
@@ -419,7 +272,7 @@ begin  -- rtl
   wb_out.dat <= wb_rdata_slave when (wb_in.adr(13) = '0')
                 else wb_rdata_buf;
   
-  p_buffer_arb : process(clk_sys_i, nic_reset_n)
+  p_buffer_arb : process(clk_sys_i)
   begin
     if rising_edge(clk_sys_i) then
       if(nic_reset_n = '0') then
@@ -455,7 +308,7 @@ begin  -- rtl
 -- RX Path
 -------------------------------------------------------------------------------  
 
-  U_RX_DESC_MANAGER : nic_descriptor_manager
+  U_RX_DESC_MANAGER : entity work.nic_descriptor_manager
     generic map (
       g_desc_mode            => "rx",
       g_num_descriptors      => c_nic_num_rx_descriptors,
@@ -489,7 +342,7 @@ begin  -- rtl
       );
 
 
-  U_RX_FSM : nic_rx_fsm
+  U_RX_FSM : entity work.nic_rx_fsm
     port map (
       clk_sys_i => clk_sys_i,
       rst_n_i   => nic_reset_n,
@@ -524,7 +377,7 @@ begin  -- rtl
 -- TX Path
 -------------------------------------------------------------------------------  
 
-  U_TX_DESC_MANAGER : nic_descriptor_manager
+  U_TX_DESC_MANAGER : entity work.nic_descriptor_manager
     generic map (
       g_desc_mode            => "tx",
       g_num_descriptors      => c_nic_num_tx_descriptors,
@@ -556,7 +409,7 @@ begin  -- rtl
       desc_write_done_o => txdesc_write_done);
 
 
-  U_TX_FSM : nic_tx_fsm
+  U_TX_FSM : entity work.nic_tx_fsm
     generic map(
       g_cyc_on_stall    => g_src_cyc_on_stall,
       g_port_mask_bits  => g_port_mask_bits,
@@ -596,6 +449,4 @@ begin  -- rtl
       buf_addr_o              => mem_addr_tx,
       buf_data_i              => nic_mem_rd_data,
       rmon_events_o           => rmon_events_o);
-
-
 end rtl;