26 lines
703 B
Python
26 lines
703 B
Python
from migen import *
|
|
|
|
|
|
class BiDirectionalIO(Module):
|
|
def __init__(self, i_pads, o_pads):
|
|
self.i = Signal(4)
|
|
self.o = Signal(4)
|
|
self.t = Signal(4)
|
|
|
|
for i in range(4):
|
|
self.specials += Instance("OBUFTDS",
|
|
i_I=self.i[i],
|
|
o_O=o_pads[i].p,
|
|
o_OB=o_pads[i].n,
|
|
# Always chain the 3-states input to serializer
|
|
# Vivado will complain otherwise
|
|
i_T=self.t[i],
|
|
)
|
|
|
|
for i in range(4):
|
|
self.specials += Instance("IBUFDS",
|
|
i_I=i_pads[i].p,
|
|
i_IB=i_pads[i].n,
|
|
o_O=self.o[i],
|
|
)
|