Skip to content

Commit

Permalink
Merge pull request #2081 from VOGL-electronic/build_efinix_add_sdr_input
Browse files Browse the repository at this point in the history
build: efinix: common.py; add `SDRInput`
  • Loading branch information
enjoy-digital authored Sep 26, 2024
2 parents a19fbb7 + 61f715e commit 0e337e2
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions litex/build/efinix/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -417,6 +417,34 @@ class EfinixDDROutput:
def lower(dr):
return EfinixDDROutputImpl(dr.platform, dr.i1, dr.i2, dr.o, dr.clk)

# Efinix SDRInput ----------------------------------------------------------------------------------

class EfinixSDRInputImpl(Module):
def __init__(self, platform, i, o, clk):
io_name = platform.get_pin_name(i)
io_pad = platform.get_pin_location(i)
io_prop = platform.get_pin_properties(i)
io_data = platform.add_iface_io(io_name)
self.comb += o.eq(io_data)
block = {
"type" : "GPIO",
"mode" : "INPUT",
"name" : io_name,
"location" : io_pad,
"properties" : io_prop,
"size" : 1,
"in_reg" : "REG",
"in_clk_pin" : clk.name_override, # FIXME.
"in_clk_inv" : 0
}
platform.toolchain.ifacewriter.blocks.append(block)
platform.toolchain.excluded_ios.append(platform.get_pin(i))

class EfinixSDRInput:
@staticmethod
def lower(dr):
return EfinixSDRInputImpl(dr.platform, dr.i, dr.o, dr.clk)

# Efinix DDRInput ----------------------------------------------------------------------------------

class EfinixDDRInputImpl(Module):
Expand Down Expand Up @@ -458,6 +486,7 @@ def lower(dr):
DifferentialOutput : EfinixDifferentialOutput,
DifferentialInput : EfinixDifferentialInput,
SDROutput : EfinixSDROutput,
SDRInput : EfinixSDRInput,
SDRTristate : EfinixSDRTristate,
DDROutput : EfinixDDROutput,
DDRInput : EfinixDDRInput,
Expand Down

0 comments on commit 0e337e2

Please sign in to comment.