class LatticeECP5SDRInputImpl(Module):
     def __init__(self, i, o, clk):
-        for n in range(len(i)):
-            _i = Signal()
-            _o = Signal()
-            self.comb += _i.eq(i[n])
-            self.specials += Instance("IFS1P3BX",
-                i_SCLK = clk,
-                i_PD   = 0,
-                i_SP   = 1,
-                i_D    = _i,
-                o_Q    = _o,
-            )
-            self.comb += o[n].eq(_o)
+        self.specials += Instance("IFS1P3BX",
+            i_SCLK = clk,
+            i_PD   = 0,
+            i_SP   = 1,
+            i_D    = i,
+            o_Q    = o,
+        )
 
 class LatticeECP5SDRInput:
     @staticmethod
 
 class LatticeECP5SDROutputImpl(Module):
     def __init__(self, i, o, clk):
-        for n in range(len(i)):
-            _i = Signal()
-            _o = Signal()
-            self.comb += _i.eq(i[n])
-            self.specials += Instance("OFS1P3BX",
-                i_SCLK = clk,
-                i_PD   = 0,
-                i_SP   = 1,
-                i_D    = _i,
-                o_Q    = _o,
-            )
-            self.comb += o[n].eq(_o)
+        self.specials += Instance("OFS1P3BX",
+            i_SCLK = clk,
+            i_PD   = 0,
+            i_SP   = 1,
+            i_D    = i,
+            o_Q    = o,
+        )
 
 class LatticeECP5SDROutput:
     @staticmethod