self.fname = fname
def __call__(self, suffix, offs, mux,
- start=None, limit=None, spec=None, origsuffix=None):
+ start=None, limit=None, spec=None, origsuffix=None,
+ rev=False):
bank = offs[0]
pf = self.pinfn(suffix, bank)
print "pf", suffix, bank, pf
prefix = self.fname
if start and limit: # limit turns into an offset from start
limit = start + limit
+ sk = "%s:%s" % (self.fname, str(suffix))
+ print "pingroup pre", sk, pingroup
pingroup = pingroup[start:limit] # see comment in spec.pinfunctions
+ if rev:
+ # reverse order of pingroup
+ pingroup.reverse()
+ print "pingroup post", sk, pingroup
+ if self.pinouts.byspec.has_key(sk):
+ self.pinouts.byspec[sk] += pingroup
+ else:
+ self.pinouts.byspec[sk] = deepcopy(pingroup)
pins = Pins(prefix, pingroup, self.bankspec,
suffix, offs, bank, mux,
spec, origsuffix=suffix, gangedgrp=gangedgroup)
self.fnspec = {}
self.ganged = {}
self.clocks = {}
+ self.byspec = {}
for fname, pinfn in pinspec:
if isinstance(pinfn, tuple):
name, pinfn = pinfn