litex/mibuild/altera/common.py

41 lines
1.2 KiB
Python
Raw Normal View History

from migen.fhdl.std import (Instance, Module)
from migen.genlib.io import (DifferentialInput, DifferentialOutput)
__all__ = ['altera_special_overrides']
class QuartusDifferentialInputImpl(Module):
def __init__(self, i_p, i_n, o):
self.specials += Instance("ALT_INBUF_DIFF",
name='ibuf_diff',
i_i=i_p,
i_ibar=i_n,
o_o=o)
class QuartusDifferentialInput:
@staticmethod
def lower(dr):
return QuartusDifferentialInputImpl(dr.i_p, dr.i_n, dr.o)
class QuartusDifferentialOutputImpl(Module):
def __init__(self, i, o_p, o_n):
self.specials += Instance("ALT_OUTBUF_DIFF",
name='obuf_diff',
i_i=i,
o_o=o_p,
o_obar=o_n)
class QuartusDifferentialOutput:
@staticmethod
def lower(dr):
return QuartusDifferentialOutputImpl(dr.i, dr.o_p, dr.o_n)
altera_special_overrides = {
DifferentialInput: QuartusDifferentialInput,
DifferentialOutput: QuartusDifferentialOutput
}