def __init__(self, sys_clk_freq, cs_period=0.001): # module's interface self.values = Array(Signal(5) for i in range(8)) # input self.cs = Signal(8) # output self.abcdefg = Signal(7) # output # # # # create our seven segment controller seven_segment = _SevenSegment() self.submodules += seven_segment self.comb += self.abcdefg.eq(seven_segment.abcdefg) # create a tick every cs_period self.submodules.tick = Tick(sys_clk_freq, cs_period) # rotate cs 6 bits signals to alternate seven segments # cycle 0 : 0b000001 # cycle 1 : 0b000010 # cycle 2 : 0b000100 # cycle 3 : 0b001000 # cycle 4 : 0b010000 # cycle 5 : 0b100000s # cycle 6 : 0b000001 cs = Signal(8, reset=0b00000001) # synchronous assigment self.sync += [ If( self.tick.ce, # at the next tick: cs[1].eq(cs[0]), # bit1 takes bit0 value cs[2].eq(cs[1]), # bit2 takes bit1 value cs[3].eq(cs[2]), # bit3 takes bit2 value cs[4].eq(cs[3]), # bit4 takes bit3 value cs[5].eq(cs[4]), # bit5 takes bit4 value cs[6].eq(cs[5]), # bit5 takes bit4 value cs[7].eq(cs[6]), # bit5 takes bit4 value cs[0].eq(cs[7]) # bit0 takes bit5 value ) ] # cominatorial assigment self.comb += self.cs.eq(cs) # cs to value selection. # Here we create a table to translate each of the 6 cs possible values # to input value selection. cases = { 0b00000001: seven_segment.value.eq(self.values[0]), 0b00000010: seven_segment.value.eq(self.values[1]), 0b00000100: seven_segment.value.eq(self.values[2]), 0b00001000: seven_segment.value.eq(self.values[3]), 0b00010000: seven_segment.value.eq(self.values[4]), 0b00100000: seven_segment.value.eq(self.values[5]), 0b01000000: seven_segment.value.eq(self.values[6]), 0b10000000: seven_segment.value.eq(self.values[7]) } # cominatorial assigment self.comb += Case(self.cs, cases)
def start_tick_retriever(instruments): i = 0 t = Tick(instruments) while True: try: t.retrieve() time.sleep(1) i += 1 print '------', i except Exception as e: print 'error: ', e time.sleep(1)
def load(self, symbol): """ Loads the stock quote for symbol from Yahoo or cache """ raw = Stock.get_from_cache(symbol) if raw is None: today = datetime.date.today().strftime('%Y%m%d') raw = self.yahoo(symbol, '20010103', today) Stock.save_to_cache(symbol, raw) # Tick aware of the time series it belongs to self.data.extend([ Tick(self.data, index, *Stock.cast(tick)) for index, tick in enumerate(reversed(raw[1:])) ])
def __init__(self, sys_clk_freq, cs_period=0.001): # module's interface self.values = Array(Signal(5) for i in range(6)) # input self.cs = Signal(6) # output self.abcdefg = Signal(7) # output # # # # create our seven segment controller seven_segment = SevenSegment() self.submodules += seven_segment self.comb += self.abcdefg.eq(seven_segment.abcdefg) # create a tick every cs_period self.submodules.tick = Tick(sys_clk_freq, cs_period) # rotate cs 6 bits signals to alternate seven segments # cycle 0 : 0b000001 # cycle 1 : 0b000010 # cycle 2 : 0b000100 # cycle 3 : 0b001000 # cycle 4 : 0b010000 # cycle 5 : 0b010000 # cycle 6 : 0b100000 # cycle 7 : 0b000001 cs = Signal(6, reset=0b000001) # synchronous assigment self.sync += [ If(self.tick.ce, # -- TO BE COMPLETED -- # [...] rotate cs # -- TO BE COMPLETED -- ) ] # cominatorial assigment self.comb += self.cs.eq(cs) # cs to value selection. # Here we create a table to translate each of the 8 cs possible values # to input value selection. # -- TO BE COMPLETED -- cases = { 0b000001: seven_segment.value.eq(self.values[0]), # [...] } # -- TO BE COMPLETED -- # cominatorial assigment self.comb += Case(self.cs, cases)
def __init__(self): # Cria uma matriz 6x4x4 preenchida com 0s (ver manipulação na biblioteca numpy) self.__board = [[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]] self.__gpio_manager = GPIO_Manager() self.__snake = Snake() self.__fruit = Fruit() self.__mouse = Mouse(self.on_click) self.__tick = Tick(self.on_tick)