diff --git a/amaranth/vendor/_altera.py b/amaranth/vendor/_altera.py index 8d043a9..0b206a5 100644 --- a/amaranth/vendor/_altera.py +++ b/amaranth/vendor/_altera.py @@ -475,9 +475,13 @@ class AlteraPlatform(TemplatedPlatform): if isinstance(buffer, io.Buffer): result = IOBuffer(buffer.direction, buffer.port) elif isinstance(buffer, io.FFBuffer): - result = FFBuffer(buffer.direction, buffer.port) + result = FFBuffer(buffer.direction, buffer.port, + i_domain=buffer.i_domain, + o_domain=buffer.o_domain) elif isinstance(buffer, io.DDRBuffer): - result = DDRBuffer(buffer.direction, buffer.port) + result = DDRBuffer(buffer.direction, buffer.port, + i_domain=buffer.i_domain, + o_domain=buffer.o_domain) else: raise TypeError(f"Unsupported buffer type {buffer!r}") # :nocov: if buffer.direction is not io.Direction.Output: diff --git a/amaranth/vendor/_gowin.py b/amaranth/vendor/_gowin.py index 17d7d73..beae85a 100644 --- a/amaranth/vendor/_gowin.py +++ b/amaranth/vendor/_gowin.py @@ -543,9 +543,13 @@ class GowinPlatform(TemplatedPlatform): if isinstance(buffer, io.Buffer): result = IOBuffer(buffer.direction, buffer.port) elif isinstance(buffer, io.FFBuffer): - result = FFBuffer(buffer.direction, buffer.port) + result = FFBuffer(buffer.direction, buffer.port, + i_domain=buffer.i_domain, + o_domain=buffer.o_domain) elif isinstance(buffer, io.DDRBuffer): - result = DDRBuffer(buffer.direction, buffer.port) + result = DDRBuffer(buffer.direction, buffer.port, + i_domain=buffer.i_domain, + o_domain=buffer.o_domain) else: raise TypeError(f"Unsupported buffer type {buffer!r}") # :nocov: if buffer.direction is not io.Direction.Output: diff --git a/amaranth/vendor/_lattice.py b/amaranth/vendor/_lattice.py index 4e6125f..94d03d7 100644 --- a/amaranth/vendor/_lattice.py +++ b/amaranth/vendor/_lattice.py @@ -998,18 +998,28 @@ class LatticePlatform(TemplatedPlatform): result = IOBuffer(buffer.direction, buffer.port) elif isinstance(buffer, io.FFBuffer): if self.family in ("ecp5", "machxo2"): - result = FFBufferECP5(buffer.direction, buffer.port) + result = FFBufferECP5(buffer.direction, buffer.port, + i_domain=buffer.i_domain, + o_domain=buffer.o_domain) elif self.family == "nexus": - result = FFBufferNexus(buffer.direction, buffer.port) + result = FFBufferNexus(buffer.direction, buffer.port, + i_domain=buffer.i_domain, + o_domain=buffer.o_domain) else: raise NotImplementedError # :nocov: elif isinstance(buffer, io.DDRBuffer): if self.family == "ecp5": - result = DDRBufferECP5(buffer.direction, buffer.port) + result = DDRBufferECP5(buffer.direction, buffer.port, + i_domain=buffer.i_domain, + o_domain=buffer.o_domain) elif self.family == "machxo2": - result = DDRBufferMachXO2(buffer.direction, buffer.port) + result = DDRBufferMachXO2(buffer.direction, buffer.port, + i_domain=buffer.i_domain, + o_domain=buffer.o_domain) elif self.family == "nexus": - result = DDRBufferNexus(buffer.direction, buffer.port) + result = DDRBufferNexus(buffer.direction, buffer.port, + i_domain=buffer.i_domain, + o_domain=buffer.o_domain) else: raise NotImplementedError # :nocov: else: diff --git a/amaranth/vendor/_xilinx.py b/amaranth/vendor/_xilinx.py index f27f013..e762839 100644 --- a/amaranth/vendor/_xilinx.py +++ b/amaranth/vendor/_xilinx.py @@ -1168,16 +1168,26 @@ class XilinxPlatform(TemplatedPlatform): if isinstance(buffer, io.Buffer): result = IOBuffer(buffer.direction, buffer.port) elif isinstance(buffer, io.FFBuffer): - result = FFBuffer(buffer.direction, buffer.port) + result = FFBuffer(buffer.direction, buffer.port, + i_domain=buffer.i_domain, + o_domain=buffer.o_domain) elif isinstance(buffer, io.DDRBuffer): if self.family in ("virtex2", "virtex2p", "spartan3"): - result = DDRBufferVirtex2(buffer.direction, buffer.port) + result = DDRBufferVirtex2(buffer.direction, buffer.port, + i_domain=buffer.i_domain, + o_domain=buffer.o_domain) elif self.family in ("spartan3e", "spartan3a", "spartan3adsp", "spartan6"): - result = DDRBufferSpartan3E(buffer.direction, buffer.port) + result = DDRBufferSpartan3E(buffer.direction, buffer.port, + i_domain=buffer.i_domain, + o_domain=buffer.o_domain) elif self.family in ("virtex4", "virtex5", "virtex6", "series7"): - result = DDRBufferVirtex4(buffer.direction, buffer.port) + result = DDRBufferVirtex4(buffer.direction, buffer.port, + i_domain=buffer.i_domain, + o_domain=buffer.o_domain) elif self.family in ("ultrascale", "ultrascaleplus"): - result = DDRBufferUltrascale(buffer.direction, buffer.port) + result = DDRBufferUltrascale(buffer.direction, buffer.port, + i_domain=buffer.i_domain, + o_domain=buffer.o_domain) else: raise TypeError(f"Family {self.family} doesn't implement DDR buffers") else: