Example #1
0
    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)
Example #3
0
 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:]))
     ])
Example #4
0
    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)
Example #5
0
    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)