Lattice equivalent for Xilinx's ODDR primitive
kamejoko80 opened this issue · 1 comments
kamejoko80 commented
Hello enjoy-digital,
I'd like to build ft601.py with Lattice's LFE5UM5G-85F device, but I could not find the equivalent ODDR primitive.
There are some Xilinx dependencies in the source code:
for i in range(dw):
self.specials += [
Instance("ODDR",
p_DDR_CLK_EDGE="SAME_EDGE",
i_C=ClockSignal("usb"), i_CE=1, i_S=0, i_R=0,
i_D1=_data_w[i], i_D2=data_w[i], o_Q=tdata_w[i]
)
]
self.specials += [
Instance("ODDR",
p_DDR_CLK_EDGE="SAME_EDGE",
i_C=ClockSignal("usb"), i_CE=1, i_S=0, i_R=0,
i_D1=_rd_n, i_D2=rd_n, o_Q=pads.rd_n
),
Instance("ODDR",
p_DDR_CLK_EDGE="SAME_EDGE",
i_C=ClockSignal("usb"), i_CE=1, i_S=0, i_R=0,
i_D1=_wr_n, i_D2=wr_n, o_Q=pads.wr_n
),
Instance("ODDR",
p_DDR_CLK_EDGE="SAME_EDGE",
i_C=ClockSignal("usb"), i_CE=1, i_S=0, i_R=0,
i_D1=_oe_n, i_D2=oe_n, o_Q=pads.oe_n
)
]
`
Would you please show the Lattice equivalent primitive that is workable with the Trellis toolchains?
Thanks,
enjoy-digital commented
Hello,
the equivalent of the ODDR
primitive for a lattice ECP5 would probably be the ODDRX1F
, you can find an instance in LiteX here: https://github.com/enjoy-digital/litex/blob/master/litex/build/lattice/common.py#L94-L109
Regards,
Florent