diff --git a/libraries/technology/ip_ultrascale/fifo/README.txt b/libraries/technology/ip_ultrascale/fifo/README.txt
deleted file mode 100755
index bcf8b55de24242e455a4481c6c64b948f0d04797..0000000000000000000000000000000000000000
--- a/libraries/technology/ip_ultrascale/fifo/README.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-README.txt for $HDL_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_ultrascale/ram/README.txt b/libraries/technology/ip_ultrascale/ram/README.txt
deleted file mode 100755
index bb10b060478b5b615634aedfea779ac31cbf3845..0000000000000000000000000000000000000000
--- a/libraries/technology/ip_ultrascale/ram/README.txt
+++ /dev/null
@@ -1,97 +0,0 @@
-README.txt for $HDL_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_ultrascale/ram/hdllib.cfg b/libraries/technology/ip_ultrascale/ram/hdllib.cfg
index 7e88f3e7e770086bc8b46c2afd57f97267437db3..0576df0e8c6d1557ff4c8ce8c3b10a05157ed2e1 100644
--- a/libraries/technology/ip_ultrascale/ram/hdllib.cfg
+++ b/libraries/technology/ip_ultrascale/ram/hdllib.cfg
@@ -5,7 +5,7 @@ hdl_lib_uses_sim =
 hdl_lib_technology = ip_ultrascale
 
 synth_files =
-    ip_ultrascale_true_dual_port_ram_dual_clock.vhd
+#    ip_ultrascale_true_dual_port_ram_dual_clock.vhd
 #    ip_ultrascale_simple_dual_port_ram_dual_clock.vhd
 #    ip_ultrascale_simple_dual_port_ram_single_clock.vhd
     
diff --git a/libraries/technology/ip_ultrascale/ram/ip_ultrascale_ram_cr_cw.vhd b/libraries/technology/ip_ultrascale/ram/ip_ultrascale_ram_cr_cw.vhd
index ab2d7c1649d35f1c766851cc3b1ba61a286dbfe0..a11ea8d4288019a28d06ef3973cc95b73e00bd53 100644
--- a/libraries/technology/ip_ultrascale/ram/ip_ultrascale_ram_cr_cw.vhd
+++ b/libraries/technology/ip_ultrascale/ram/ip_ultrascale_ram_cr_cw.vhd
@@ -1,25 +1,25 @@
 -------------------------------------------------------------------------------
 --
--- Copyright (C) 2014
+-- Copyright 2023
 -- 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.
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
 --
--- 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.
+--     http://www.apache.org/licenses/LICENSE-2.0
 --
--- You should have received a copy of the GNU General Public License
--- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
 --
 -------------------------------------------------------------------------------
-
--- RadioHDL wrapper
+-- Purpose: Instantiate RAM IP with generics
+-- Description:
+--   Copied component instantiation from Vivado XPM template
 
 LIBRARY ieee;
 USE ieee.std_logic_1164.all;
diff --git a/libraries/technology/ip_ultrascale/ram/ip_ultrascale_ram_crw_crw.vhd b/libraries/technology/ip_ultrascale/ram/ip_ultrascale_ram_crw_crw.vhd
index 9da5f346647856128fd3c91fc58ef79466e4323c..ae4ffdc7358e18cce1b75fc74204a3576e4935fd 100644
--- a/libraries/technology/ip_ultrascale/ram/ip_ultrascale_ram_crw_crw.vhd
+++ b/libraries/technology/ip_ultrascale/ram/ip_ultrascale_ram_crw_crw.vhd
@@ -1,25 +1,25 @@
 -------------------------------------------------------------------------------
 --
--- Copyright (C) 2023
+-- Copyright 2023
 -- 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.
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
 --
--- 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.
+--     http://www.apache.org/licenses/LICENSE-2.0
 --
--- You should have received a copy of the GNU General Public License
--- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
 --
 -------------------------------------------------------------------------------
-
--- RadioHDL wrapper
+-- Purpose: Instantiate RAM IP with generics
+-- Description:
+--   Copied component instantiation from Vivado XPM template
 
 LIBRARY ieee;
 USE ieee.std_logic_1164.all;
diff --git a/libraries/technology/ip_ultrascale/ram/ip_ultrascale_ram_crwk_crw.vhd b/libraries/technology/ip_ultrascale/ram/ip_ultrascale_ram_crwk_crw.vhd
deleted file mode 100644
index 6d2cee79a7125b5435aaf8b1d09482ccb9de83f6..0000000000000000000000000000000000000000
--- a/libraries/technology/ip_ultrascale/ram/ip_ultrascale_ram_crwk_crw.vhd
+++ /dev/null
@@ -1,142 +0,0 @@
--- (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_ultrascale/ram/ip_ultrascale_ram_r_w.vhd b/libraries/technology/ip_ultrascale/ram/ip_ultrascale_ram_r_w.vhd
deleted file mode 100644
index 0c8dbbb41bf31a85cc111e8b2668a9d848b7f1ba..0000000000000000000000000000000000000000
--- a/libraries/technology/ip_ultrascale/ram/ip_ultrascale_ram_r_w.vhd
+++ /dev/null
@@ -1,155 +0,0 @@
--------------------------------------------------------------------------------
---
--- 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_ultrascale/ram/ip_ultrascale_simple_dual_port_ram_dual_clock.vhd b/libraries/technology/ip_ultrascale/ram/ip_ultrascale_simple_dual_port_ram_dual_clock.vhd
deleted file mode 100644
index 1b73b9194dd5f0240966844dc63525c8ef427c98..0000000000000000000000000000000000000000
--- a/libraries/technology/ip_ultrascale/ram/ip_ultrascale_simple_dual_port_ram_dual_clock.vhd
+++ /dev/null
@@ -1,80 +0,0 @@
--------------------------------------------------------------------------------
---
--- 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_ultrascale/ram/ip_ultrascale_simple_dual_port_ram_single_clock.vhd b/libraries/technology/ip_ultrascale/ram/ip_ultrascale_simple_dual_port_ram_single_clock.vhd
deleted file mode 100644
index bf4b74439e465171aa09ffee45eaa3c3a16b85f9..0000000000000000000000000000000000000000
--- a/libraries/technology/ip_ultrascale/ram/ip_ultrascale_simple_dual_port_ram_single_clock.vhd
+++ /dev/null
@@ -1,76 +0,0 @@
--------------------------------------------------------------------------------
---
--- 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_ultrascale/ram/ip_ultrascale_true_dual_port_ram_dual_clock.vhd b/libraries/technology/ip_ultrascale/ram/ip_ultrascale_true_dual_port_ram_dual_clock.vhd
deleted file mode 100644
index c460b74fc2e3f879e00897578ad2515d27270407..0000000000000000000000000000000000000000
--- a/libraries/technology/ip_ultrascale/ram/ip_ultrascale_true_dual_port_ram_dual_clock.vhd
+++ /dev/null
@@ -1,92 +0,0 @@
--------------------------------------------------------------------------------
---
--- 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;