diff --git a/libraries/technology/ip_agi027_xxxx/ddio/ip_agi027_xxxx_ddio_in.vhd b/libraries/technology/ip_agi027_xxxx/ddio/ip_agi027_xxxx_ddio_in.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..1e7e78e810216a261a582c883246d14e434bc16c
--- /dev/null
+++ b/libraries/technology/ip_agi027_xxxx/ddio/ip_agi027_xxxx_ddio_in.vhd
@@ -0,0 +1,69 @@
+-- -----------------------------------------------------------------------------
+--
+-- Copyright 2023
+-- ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/>
+-- P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
+--
+-- 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
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- 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.
+--
+-- -----------------------------------------------------------------------------
+--
+-- Author: 
+--   D.F. Brouwer
+-- Purpose:
+--   RadioHDL wrapper for ip_agi027_xxxx_ddio_in_1 to support g_width >= 1
+-- Reference:
+--   Copied component declaration and instance example from
+--   ip_arria10_e2sg/ddio/ip_arria10_e2sg_ddio_in.vhd and verified them against
+--   generated/altera_gpio_2100/sim/ip_agi027_xxxx_ddio_in_1_altera_gpio_2100_nhqe4ta
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity ip_agi027_xxxx_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_agi027_xxxx_ddio_in;
+
+architecture str of ip_agi027_xxxx_ddio_in is
+  component ip_agi027_xxxx_ddio_in_1 is
+        port (
+                datain    : in  std_logic_vector(0 downto 0) := (others => '0');  -- pad_in.export
+                ck        : 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_agi027_xxxx_ddio_in_1 : ip_agi027_xxxx_ddio_in_1
+    port map (
+      datain    => in_dat(I downto I),
+      ck        => 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_agi027_xxxx/ddio/ip_agi027_xxxx_ddio_out.vhd b/libraries/technology/ip_agi027_xxxx/ddio/ip_agi027_xxxx_ddio_out.vhd
new file mode 100644
index 0000000000000000000000000000000000000000..67961bad1e312109ce1ab604fc5a59e30a8fb282
--- /dev/null
+++ b/libraries/technology/ip_agi027_xxxx/ddio/ip_agi027_xxxx_ddio_out.vhd
@@ -0,0 +1,69 @@
+-- -----------------------------------------------------------------------------
+--
+-- Copyright 2023
+-- ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/>
+-- P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
+--
+-- 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
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- 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.
+--
+-- -----------------------------------------------------------------------------
+--
+-- Author: 
+--   D.F. Brouwer
+-- Purpose:
+--   RadioHDL wrapper for ip_agi027_xxxx_ddio_out_1 to support g_width >= 1
+-- Reference:
+--   Copied component declaration and instance example from
+--   ip_arria10_e2sg/ddio/ip_arria10_e2sg_ddio_out.vhd and verified them against
+--   generated/altera_gpio_2100/sim/ip_agi027_xxxx_ddio_out_1_altera_gpio_2100_e4tgwdq
+
+library ieee;
+use ieee.std_logic_1164.all;
+
+entity ip_agi027_xxxx_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_agi027_xxxx_ddio_out;
+
+architecture str of ip_agi027_xxxx_ddio_out is
+  component ip_agi027_xxxx_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_agi027_xxxx_ddio_out_1 : ip_agi027_xxxx_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;