def on(self): for i in range(8): gpio = self.cathodes[i].getgpio() gpio.output().on() for i in range(4): gpio = self.anodes[i].getgpio() gpio.output().on() Peripheral.on(self) return self
def on(self): miso = self.MISO.getgpio() if miso: miso.input().on() mosi = self.MOSI.getgpio() if mosi: mosi.output().on() # must have sscl sclk = self.SCLK.getgpio() sclk.output().on() ssel = self.CS.getgpio() if ssel: ssel.output().on() Peripheral.on(self) return self
def on(self): tx = self.TX.getgpio() tx.output().on() Peripheral.on(self) return self
def on(self): self.crystal.on() Peripheral.on(self) return self
def __init__(self, fpga, name='display'): Peripheral.__init__(self, fpga, name)
def on(self): Peripheral.on(self) fpga = self.fpga #Read ps7_constraints file to config the GPIO with correct ucf info (and turn on) #Also save the pins in ps7pins fileName = os.path.dirname(__file__) + "/ps7_constraints.ucf" with open(fileName, 'r') as constraints: lines = constraints.readlines() fpga.ps7pins = {} for line in lines: reobj = re.findall("NET\s+\"(\S+)\"\s+(.*);", line) if not reobj: continue reobj = reobj[0] name = reobj[0] opts = reobj[1].split(" | ") loc = None ucfopts = {} for opt in opts: opt = re.sub("\s+", "", opt) optobj = re.findall("(.*)=\"?([^\"]*)\"?", opt)[0] if optobj[0] == "LOC": loc = optobj[1] else: ucfopts[optobj[0]] = optobj[1] assert (loc) loc = re.sub("\"", "", loc) fpga.ps7pins[name] = pin = getattr(fpga, loc) pin.setucfopts(ucfopts) pin.rename(name).on() #for key, val in fpga.ps7pins.items(): # print(key, pin.direction) #Orient the iopads correctly by refrenceing the ps7Wrap circuit type def flipdir(port): if port.isinput(): return OUTPUT elif port.isoutput(): return INPUT else: return INOUT ps7 = PS7Wrap() for name in ps7.interface.ports: if not name in fpga.ps7pins: continue port = ps7.interface.ports[name] n = 0 if isinstance(type(port), ArrayKind): n = len(port) if n: for i in range(n): aname = "%s[%d]" % (name, i) fpga.ps7pins[aname].reorient(flipdir(port)) elif name in fpga.ps7pins: #TODO Hack to get around the clock fpga.ps7pins[name].reorient(flipdir(port)) return self
def __init__(self, fpga): name = "PS7" Peripheral.__init__(self, fpga, name)
def __init__(self, fpga, frequency=None, name='clock'): Peripheral.__init__(self, fpga, name) self.basefreq = frequency self.freq = frequency
def on(self): Peripheral.on(self) return self
def __init__(self, fpga, name='systimer', n=32): Peripheral.__init__(self, fpga, name) self.n = n
def on(self): self.fpga.clock.on() Peripheral.on(self) return self
def on(self): clkin = self.I.getgpio() clkin.input().on() Peripheral.on(self) return self