diff --git a/finn-rtllib/swg/swg_template_wrapper_dynamic.v b/finn-rtllib/swg/swg_template_wrapper_dynamic.v
index d6f839de43c3c13c6d1a9a772b21d976e2348a08..8d16dc10bb8a0c5fd8878ac11224b88a0242b6ad 100644
--- a/finn-rtllib/swg/swg_template_wrapper_dynamic.v
+++ b/finn-rtllib/swg/swg_template_wrapper_dynamic.v
@@ -14,13 +14,13 @@ module $TOP_MODULE_NAME$ #(
     parameter BUF_IN_WIDTH = BIT_WIDTH * SIMD * MMV_IN,
     parameter BUF_OUT_WIDTH = BIT_WIDTH * SIMD * MMV_OUT,
 
-    parameter integer C_s_axi_cfg_DATA_WIDTH	= 32,
-    parameter integer C_s_axi_cfg_ADDR_WIDTH	= 6
+    parameter integer C_s_axilite_DATA_WIDTH	= 32,
+    parameter integer C_s_axilite_ADDR_WIDTH	= 6
 )
 (
-    (* X_INTERFACE_PARAMETER = "ASSOCIATED_BUSIF in0_V:out_V:s_axi_cfg" *)
+    (* X_INTERFACE_PARAMETER = "ASSOCIATED_BUSIF in0_V:out_V:s_axilite" *)
     input  ap_clk,
-    (* X_INTERFACE_PARAMETER = "ASSOCIATED_BUSIF in0_V:out_V:s_axi_cfg" *)
+    (* X_INTERFACE_PARAMETER = "ASSOCIATED_BUSIF in0_V:out_V:s_axilite" *)
     input  ap_rst_n,
     input  [BUF_IN_WIDTH-1:0] in0_V_TDATA,
     input  in0_V_TVALID,
@@ -29,28 +29,28 @@ module $TOP_MODULE_NAME$ #(
     output out_V_TVALID,
     input  out_V_TREADY,
 
-    // Ports of Axi Slave Bus Interface s_axi_cfg
-    //input wire  s_axi_cfg_aclk,
-    //input wire  s_axi_cfg_aresetn,
-    input wire [C_s_axi_cfg_ADDR_WIDTH-1 : 0] s_axi_cfg_awaddr,
-    input wire [2 : 0] s_axi_cfg_awprot,
-    input wire  s_axi_cfg_awvalid,
-    output wire  s_axi_cfg_awready,
-    input wire [C_s_axi_cfg_DATA_WIDTH-1 : 0] s_axi_cfg_wdata,
-    input wire [(C_s_axi_cfg_DATA_WIDTH/8)-1 : 0] s_axi_cfg_wstrb,
-    input wire  s_axi_cfg_wvalid,
-    output wire  s_axi_cfg_wready,
-    output wire [1 : 0] s_axi_cfg_bresp,
-    output wire  s_axi_cfg_bvalid,
-    input wire  s_axi_cfg_bready,
-    input wire [C_s_axi_cfg_ADDR_WIDTH-1 : 0] s_axi_cfg_araddr,
-    input wire [2 : 0] s_axi_cfg_arprot,
-    input wire  s_axi_cfg_arvalid,
-    output wire  s_axi_cfg_arready,
-    output wire [C_s_axi_cfg_DATA_WIDTH-1 : 0] s_axi_cfg_rdata,
-    output wire [1 : 0] s_axi_cfg_rresp,
-    output wire  s_axi_cfg_rvalid,
-    input wire  s_axi_cfg_rready
+    // Ports of Axi Slave Bus Interface s_axilite
+    //input wire  s_axilite_aclk,
+    //input wire  s_axilite_aresetn,
+    input wire [C_s_axilite_ADDR_WIDTH-1 : 0] s_axilite_awaddr,
+    input wire [2 : 0] s_axilite_awprot,
+    input wire  s_axilite_awvalid,
+    output wire  s_axilite_awready,
+    input wire [C_s_axilite_DATA_WIDTH-1 : 0] s_axilite_wdata,
+    input wire [(C_s_axilite_DATA_WIDTH/8)-1 : 0] s_axilite_wstrb,
+    input wire  s_axilite_wvalid,
+    output wire  s_axilite_wready,
+    output wire [1 : 0] s_axilite_bresp,
+    output wire  s_axilite_bvalid,
+    input wire  s_axilite_bready,
+    input wire [C_s_axilite_ADDR_WIDTH-1 : 0] s_axilite_araddr,
+    input wire [2 : 0] s_axilite_arprot,
+    input wire  s_axilite_arvalid,
+    output wire  s_axilite_arready,
+    output wire [C_s_axilite_DATA_WIDTH-1 : 0] s_axilite_rdata,
+    output wire [1 : 0] s_axilite_rresp,
+    output wire  s_axilite_rvalid,
+    input wire  s_axilite_rready
 );
 
 wire                     cfg_valid;
@@ -70,32 +70,32 @@ wire [INCR_BITWIDTH-1:0] cfg_incr_tail_last;
 wire [31:0]              cfg_last_read;
 wire [31:0]              cfg_last_write;
 
-// Instantiation of Axi Bus Interface s_axi_cfg
+// Instantiation of Axi Bus Interface s_axilite
 $TOP_MODULE_NAME$_axilite # (
-    .C_S_AXI_DATA_WIDTH(C_s_axi_cfg_DATA_WIDTH),
-    .C_S_AXI_ADDR_WIDTH(C_s_axi_cfg_ADDR_WIDTH)
+    .C_S_AXI_DATA_WIDTH(C_s_axilite_DATA_WIDTH),
+    .C_S_AXI_ADDR_WIDTH(C_s_axilite_ADDR_WIDTH)
 ) axilite_cfg_inst (
     .S_AXI_ACLK(ap_clk),
     .S_AXI_ARESETN(ap_rst_n),
-    .S_AXI_AWADDR(s_axi_cfg_awaddr),
-    .S_AXI_AWPROT(s_axi_cfg_awprot),
-    .S_AXI_AWVALID(s_axi_cfg_awvalid),
-    .S_AXI_AWREADY(s_axi_cfg_awready),
-    .S_AXI_WDATA(s_axi_cfg_wdata),
-    .S_AXI_WSTRB(s_axi_cfg_wstrb),
-    .S_AXI_WVALID(s_axi_cfg_wvalid),
-    .S_AXI_WREADY(s_axi_cfg_wready),
-    .S_AXI_BRESP(s_axi_cfg_bresp),
-    .S_AXI_BVALID(s_axi_cfg_bvalid),
-    .S_AXI_BREADY(s_axi_cfg_bready),
-    .S_AXI_ARADDR(s_axi_cfg_araddr),
-    .S_AXI_ARPROT(s_axi_cfg_arprot),
-    .S_AXI_ARVALID(s_axi_cfg_arvalid),
-    .S_AXI_ARREADY(s_axi_cfg_arready),
-    .S_AXI_RDATA(s_axi_cfg_rdata),
-    .S_AXI_RRESP(s_axi_cfg_rresp),
-    .S_AXI_RVALID(s_axi_cfg_rvalid),
-    .S_AXI_RREADY(s_axi_cfg_rready),
+    .S_AXI_AWADDR(s_axilite_awaddr),
+    .S_AXI_AWPROT(s_axilite_awprot),
+    .S_AXI_AWVALID(s_axilite_awvalid),
+    .S_AXI_AWREADY(s_axilite_awready),
+    .S_AXI_WDATA(s_axilite_wdata),
+    .S_AXI_WSTRB(s_axilite_wstrb),
+    .S_AXI_WVALID(s_axilite_wvalid),
+    .S_AXI_WREADY(s_axilite_wready),
+    .S_AXI_BRESP(s_axilite_bresp),
+    .S_AXI_BVALID(s_axilite_bvalid),
+    .S_AXI_BREADY(s_axilite_bready),
+    .S_AXI_ARADDR(s_axilite_araddr),
+    .S_AXI_ARPROT(s_axilite_arprot),
+    .S_AXI_ARVALID(s_axilite_arvalid),
+    .S_AXI_ARREADY(s_axilite_arready),
+    .S_AXI_RDATA(s_axilite_rdata),
+    .S_AXI_RRESP(s_axilite_rresp),
+    .S_AXI_RVALID(s_axilite_rvalid),
+    .S_AXI_RREADY(s_axilite_rready),
 
     .cfg_reg0(cfg_valid),
     .cfg_reg1(cfg_cntr_simd),
diff --git a/src/finn/custom_op/fpgadataflow/convolutioninputgenerator_rtl.py b/src/finn/custom_op/fpgadataflow/convolutioninputgenerator_rtl.py
index 665325bdee56d7de5936fb544f744c0341358387..77a3d189744efc39940c2f57b1c6b65da2c70a25 100755
--- a/src/finn/custom_op/fpgadataflow/convolutioninputgenerator_rtl.py
+++ b/src/finn/custom_op/fpgadataflow/convolutioninputgenerator_rtl.py
@@ -844,7 +844,7 @@ class ConvolutionInputGenerator_rtl(HLSCustomOp):
         Each block must have at most one aximm and one axilite."""
         intf_names = super().get_verilog_top_module_intf_names()
         if self.get_nodeattr("dynamic_mode"):
-            intf_names["axilite"] = ["s_axi_cfg"]
+            intf_names["axilite"] = ["s_axilite"]
         return intf_names
 
     def get_dynamic_config(self, ifm_dim, stride=None, dilation=None):
diff --git a/tests/fpgadataflow/test_fpgadataflow_convinputgenerator_rtl_dynamic.py b/tests/fpgadataflow/test_fpgadataflow_convinputgenerator_rtl_dynamic.py
index 0db3c139fb0f9b7fb34f06c09e700fa322a7f823..36204de35964de6f7d9e3537f354ba54536dfa86 100644
--- a/tests/fpgadataflow/test_fpgadataflow_convinputgenerator_rtl_dynamic.py
+++ b/tests/fpgadataflow/test_fpgadataflow_convinputgenerator_rtl_dynamic.py
@@ -155,8 +155,8 @@ def config_hook(configs):
             for config_entry in config.values():
                 axilite_write(sim, config_entry[0], config_entry[1], basename=axi_name)
             # 2. Set cfg_valid flag (>= 1 cycle) for SWGG
-            # TODO better interface names to separate SWGG and padding
-            if "s_axi_cfg" in axi_name:
+            # TODO direct add wren register to generated config?
+            if len(config) == 15:
                 axilite_write(sim, 0, 1, basename=axi_name)
         # 3. Reset component (>= 1 cycle)
         reset_rtlsim(sim)
@@ -215,8 +215,8 @@ def test_fpgadataflow_conv_dynamic(pad_mode):
     for swg_node in dyn_nodes:
         getCustomOp(swg_node).set_nodeattr("SIMD", 1)
         getCustomOp(swg_node).set_nodeattr("dynamic_mode", 1)
-        getCustomOp(swg_node).set_nodeattr("inFIFODepth", 16)
-        getCustomOp(swg_node).set_nodeattr("outFIFODepth", 16)
+        getCustomOp(swg_node).set_nodeattr("inFIFODepths", [16])
+        getCustomOp(swg_node).set_nodeattr("outFIFODepths", [16])
     model = model.transform(InsertFIFO())
     model = model.transform(GiveUniqueNodeNames())
     model = model.transform(GiveReadableTensorNames())
@@ -235,12 +235,11 @@ def test_fpgadataflow_conv_dynamic(pad_mode):
         swg0 = getCustomOp(swg_nodes[0])
         update_tensor_dim(model, swg0.onnx_node.input[0], (conv0_idim, conv0_idim))
         update_tensor_dim(model, swg0.onnx_node.output[0], (int_dim, int_dim))
-        config0 = swg0.get_dynamic_config((conv0_idim, conv0_idim))
+        swg_config0 = swg0.get_dynamic_config((conv0_idim, conv0_idim))
         swg1 = getCustomOp(swg_nodes[1])
         update_tensor_dim(model, swg1.onnx_node.input[0], (conv1_idim, conv1_idim))
         update_tensor_dim(model, swg1.onnx_node.output[0], (odim, odim))
-        config1 = swg1.get_dynamic_config((conv1_idim, conv1_idim))
-        configs = [("s_axi_cfg_0_", config0), ("s_axi_cfg_1_", config1)]
+        swg_config1 = swg1.get_dynamic_config((conv1_idim, conv1_idim))
         if pad_mode != "VALID":
             pad_nodes = model.get_nodes_by_op_type("FMPadding_rtl")
             padder0 = getCustomOp(pad_nodes[0])
@@ -255,8 +254,14 @@ def test_fpgadataflow_conv_dynamic(pad_mode):
                 model, padder1.onnx_node.output[0], (conv1_idim, conv1_idim)
             )
             pad_config1 = padder1.get_dynamic_config((int_dim, int_dim), pad1)
-            configs.append(("s_axilite_0_", pad_config0))
-            configs.append(("s_axilite_1_", pad_config1))
+            configs = [
+                ("s_axilite_0_", pad_config0),
+                ("s_axilite_1_", swg_config0),
+                ("s_axilite_2_", pad_config1),
+                ("s_axilite_3_", swg_config1),
+            ]
+        else:
+            configs = [("s_axilite_0_", swg_config0), ("s_axilite_1_", swg_config1)]
         # adjust folded shapes for I/O FIFOs
         # (since rtlsim_exec uses folded shape info to fold global i/o tensors)
         first_node = getCustomOp(model.graph.node[0])