return '\n' + res + '\n'
-
class Interface(PeripheralIface, InterfaceFmt):
""" create an interface from a list of pinspecs.
each pinspec is a dictionary, see Pin class arguments
self.buspins = filter(lambda x: x.name_.startswith(self.fbus),
self.pins_)
self.nonbuspins = filter(lambda x: not x.name_.startswith(self.fbus),
- self.pins_)
+ self.pins_)
def get_nonbuspins(self):
return self.nonbuspins
InterfaceBus.__init__(self, self.pins, False, ['data_out', None, None],
"Bit#({0})", "out")
+
class InterfaceFlexBus(InterfaceMultiBus, Interface):
def __init__(self, ifacename, pinspecs, ganged=None, single=False):
Interface.__init__(self, ifacename, pinspecs, ganged, single)
InterfaceMultiBus.__init__(self, self.pins)
self.add_bus(True, ['ad_out', 'ad_out_en', 'ad_in'],
- "Bit#({0})", "ad")
+ "Bit#({0})", "ad")
self.add_bus(False, ['bwe', None, None],
- "Bit#({0})", "bwe")
+ "Bit#({0})", "bwe")
self.add_bus(False, ['tsiz', None, None],
- "Bit#({0})", "tsiz")
+ "Bit#({0})", "tsiz")
self.add_bus(False, ['cs', None, None],
- "Bit#({0})", "cs")
+ "Bit#({0})", "cs")
def ifacedef2(self, *args):
return InterfaceMultiBus.ifacedef2(self, *args)
+
class InterfaceSD(InterfaceBus, Interface):
def __init__(self, *args):
InterfaceBus.__init__(self, self.pins, True, ['out', 'out_en', 'in'],
"Bit#({0})", "d")
+
class InterfaceNSPI(InterfaceBus, Interface):
def __init__(self, *args):
['io_out', 'io_out_en', 'io_in'],
"Bit#({0})", "io")
+
class InterfaceEINT(Interface):
""" uses old-style (non-get/put) for now
"""
InterfaceBus.__init__(self, self.pins, True, ['out', 'out_en', 'in'],
"Vector#({0},Bit#(1))", ifacename[-1])
+
class Interfaces(InterfacesBase, PeripheralInterfaces):
""" contains a list of interface definitions
"""
return "import FlexBus_Types::*;"
def num_axi_regs32(self):
- return 0x4000000 # defines an entire memory range
+ return 0x4000000 # defines an entire memory range
def extfastifinstance(self, name, count):
return self._extifinstance(name, count, "_out", "", True,
def pinname_in(self, pname):
return {'ta': 'flexbus_side.tAn',
- }.get(pname, '')
+ }.get(pname, '')
def pinname_out(self, pname):
return {'ale': 'flexbus_side.m_ALE',
- 'oe' : 'flexbus_side.m_OEn',
- 'rw' : 'flexbus_side.m_R_Wn',
- }.get(pname, '')
+ 'oe': 'flexbus_side.m_OEn',
+ 'rw': 'flexbus_side.m_R_Wn',
+ }.get(pname, '')
def mk_pincon(self, name, count):
ret = [PBase.mk_pincon(self, name, count)]
ps = "pinmux.peripheral_side.%s" % sname
n = "{0}".format(name)
for stype, ptype in [
- ('cs', 'm_FBCSn'),
- ('bwe', 'm_BWEn'),
- ('tbst', 'm_TBSTn'),
- ('tsiz', 'm_TSIZ'),
- ('ad_in', 'm_AD'),
- ('ad_out', 'm_din'),
- ('ad_en', 'm_OE32n'),
- ]:
+ ('cs', 'm_FBCSn'),
+ ('bwe', 'm_BWEn'),
+ ('tbst', 'm_TBSTn'),
+ ('tsiz', 'm_TSIZ'),
+ ('ad_in', 'm_AD'),
+ ('ad_out', 'm_din'),
+ ('ad_en', 'm_OE32n'),
+ ]:
ret.append(template.format(ps, ptype, n, stype))
return '\n'.join(ret)