2015-04-20 04:06:24 -04:00
|
|
|
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
|
|
|
|
}
|