import migen in litex/gen
[litex.git] / migen / build / altera / common.py
1 from migen.fhdl.module import Module
2 from migen.fhdl.specials import Instance
3 from migen.genlib.io import DifferentialInput, DifferentialOutput
4
5
6 class AlteraDifferentialInputImpl(Module):
7 def __init__(self, i_p, i_n, o):
8 self.specials += Instance("ALT_INBUF_DIFF",
9 name="ibuf_diff",
10 i_i=i_p,
11 i_ibar=i_n,
12 o_o=o)
13
14
15 class AlteraDifferentialInput:
16 @staticmethod
17 def lower(dr):
18 return AlteraDifferentialInputImpl(dr.i_p, dr.i_n, dr.o)
19
20
21 class AlteraDifferentialOutputImpl(Module):
22 def __init__(self, i, o_p, o_n):
23 self.specials += Instance("ALT_OUTBUF_DIFF",
24 name="obuf_diff",
25 i_i=i,
26 o_o=o_p,
27 o_obar=o_n)
28
29
30 class AlteraDifferentialOutput:
31 @staticmethod
32 def lower(dr):
33 return AlteraDifferentialOutputImpl(dr.i, dr.o_p, dr.o_n)
34
35
36 altera_special_overrides = {
37 DifferentialInput: AlteraDifferentialInput,
38 DifferentialOutput: AlteraDifferentialOutput
39 }