Пример #1
0
def pipeline05():
    s = 0
    for i in pipelined(pipelined(range(10))):
        if s > 10:
            break
        s += i
    return s
Пример #2
0
def pipe04(a, b, c):
    for i in range(8):
        s = 0
        for k in pipelined(range(8)):
            s += a[k] * b[i]
        c[i] = s
    print(c[0], c[1], c[2], c[3])
Пример #3
0
def nested04(x):
    s = x
    for i in pipelined(range(4)):
        for j in range(4):
            for k in range(4):
                s += 1
    return s
Пример #4
0
def pipeline02():
    s = 0
    for i in pipelined(range(10)):
        if s > 10:
            continue
        s += i
    return s
Пример #5
0
def pipe01(xs, ys, a, b, c):
    for i in pipelined(range(len(xs))):
        x = xs[i]
        x += a
        x -= b
        x *= c
        ys[i] = x
Пример #6
0
def pipe05(x):
    z = 0
    for i in pipelined(range(x)):
        if i > 5:
            z += 1
        else:
            z += 2
    return z
Пример #7
0
def pipeline04():
    s = 0
    for i in pipelined(range(10)):
        for j in range(10):
            s += i + j
        for j in range(12):
            s += i + j
    return s
Пример #8
0
def pipe12(xs0, xs1, ys0):
    for i in pipelined(range(len(xs0))):
        if i % 2 == 0:
            v = xs0[i]
        else:
            v = xs1[i]
        #print(i, v, xs0[i], xs1[i])
        ys0[i] = v
Пример #9
0
def pipe07(xs, ys):
    for i in pipelined(range(len(xs))):
        v = xs[i]
        if v < 0:
            z = (v - 8) >> 4
        else:
            z = (v + 8) >> 4
        ys[i] = z

    for i in pipelined(range(len(ys))):
        v = ys[i]
        #print(i, v)
        if v < 0:
            z = (v - 8) << 4
        else:
            z = (v + 8) << 4
        xs[i] = z
Пример #10
0
def pipe06(xs, ys):
    for i in pipelined(range(len(xs))):
        v = xs[i]
        if v < 0:
            z = (v - 8) >> 4
        else:
            z = (v + 8) >> 4
        ys[i] = z
Пример #11
0
def pipe18(xs0, ys0, ys1):
    for i in pipelined(range(len(xs0))):
    #for i in range(len(xs0)):
        x = xs0[i]
        if x:
            ys0[i] = ys1[i]
        else:
            ys1[i] = ys0[i]
Пример #12
0
def pipe14(xs0, ys0, ys1):
    for i in pipelined(range(len(xs0))):
        v = xs0[i]
        if i % 2 == 0:
            ys0[i] = v
            ys1[i] = -v
        else:
            ys0[i] = -v
            ys1[i] = v
Пример #13
0
def pipe08(xs, ys):
    s = 0
    for i in pipelined(range(len(xs))):
        idx = i + s
        if idx > 4:
            idx = 0
        v = xs[idx]
        ys[i] = v
        s = s + v
Пример #14
0
 def worker(self, width, height, blank_size):
     buf0: List[int12] = [255] * (width + blank_size)
     buf1: List[int12] = [255] * (width + blank_size)
     buf2: List[int12] = [255] * (width + blank_size)
     line0 = buf0
     line1 = buf1
     line2 = buf2
     phase = 0
     y = blank_size
     r0: int12 = 255
     r1: int12 = 255
     r2: int12 = 255
     r3: int12 = 255
     r4: int12 = 255
     r5: int12 = 255
     r6: int12 = 255
     r7: int12 = 255
     r8: int12 = 255
     while is_worker_running():
         for x in pipelined(range(blank_size, width + blank_size)):
             #for x in range(blank_size, width + blank_size):
             d2 = self.inq.rd()
             line2[x] = d2
             d1 = line1[x]
             d0 = line0[x]
             r0, r1, r2 = r1, r2, d0
             r3, r4, r5 = r4, r5, d1
             r6, r7, r8 = r7, r8, d2
             out_h = filter3x3(r0, r1, r2, r3, r4, r5, r6, r7, r8, K_H)
             out_v = filter3x3(r0, r1, r2, r3, r4, r5, r6, r7, r8, K_V)
             #out_h_c = clip(128 + out_h)
             #out_v_c = clip(128 + out_v)
             out_c = clip(abs(out_h) + abs(out_v) >> 1)
             #self.outhq.wr(out_h_c)
             #self.outvq.wr(out_v_c)
             self.outq.wr(out_c)
         phase = (phase + 1) % 3
         if phase == 0:
             line0 = buf0
             line1 = buf1
             line2 = buf2
         elif phase == 1:
             line0 = buf1
             line1 = buf2
             line2 = buf0
         else:
             line0 = buf2
             line1 = buf0
             line2 = buf1
         r0 = r1 = r2 = 255
         r3 = r4 = r5 = 255
         r6 = r7 = r8 = 255
         y += 1
         if y == height + blank_size:
             # TODO:
             break
Пример #15
0
def nested05(x):
    s = x
    for i in pipelined(range(4)):
        t = i
        for j in range(4):
            s += 1
            for k in range(4):
                t += 1
        s += t
    return s
Пример #16
0
def pipe15(xs0, xs1, ys0, ys1):
    for i in pipelined(range(len(ys0))):
        if i == 0:
            ys0[i] = xs0[0]
        else:
            ys0[i] = 1

        if i == 0:
            ys1[i] = 1
        else:
            ys1[i] = ys0[i] + xs1[i]
Пример #17
0
def nested03(x):
    s = x
    for i in pipelined(range(4)):
        t = i
        s += i
        for j in range(4):
            s += 1
            t += 1
        t += 2
        s += t
    return s
def pipelined_unroll01(xs, ys):
    s = 0
    for i in pipelined(unroll(range(8), 2)):
        x = xs[i] + 1
        if x < 0:
            s = s + x
        else:
            s = s - x
        ys[i] = x
        #print(x)
    return s
Пример #19
0
def pipe16(xs0, xs1, ys0, ys1):
    for i in pipelined(range(len(ys0))):
        if i % 3 == 0:
            ys0[i] = xs0[0] * xs1[1]
            ys1[i] = xs1[0] * xs0[1]
        elif i % 3 == 1:
            ys0[i] = xs0[1] * xs1[2]
            ys1[i] = xs1[1] * xs0[2]
        else:
            ys0[i] = xs0[2] * xs1[3]
            ys1[i] = xs1[2] * xs0[3]
Пример #20
0
def fir_filter_streaming(input: int, coeff: list, previous: list) -> int:
    N = TAPS - 1
    for j in unroll(range(N)):
        jj = N - j
        previous[jj] = previous[jj - 1]
        #print(jj)
    previous[0] = input

    if previous[N] == 0:
        return 0
    else:
        temp = 0
        for j in pipelined(range(TAPS)):
            temp += previous[N - j] * coeff[j]
        return temp
def minivm(program):
    MOV = 0
    ADD = 1
    SUB = 2
    MUL = 3
    LDM = 4
    STM = 5
    NOP = 14
    HALT = 15
    reg = [0] * 8
    mem = [0] * 32

    def get_op(inst):
        return (inst & 0xF000) >> 12

    def get_ri(inst):
        return (inst & 0x0F00) >> 8

    def get_val(inst):
        return (inst & 0x00FF)

    #pc = 0
    for inst in pipelined(program):
        #inst = program[pc]
        op = get_op(inst)
        ri = get_ri(inst)
        val = get_val(inst)
        if op == MOV:
            reg[ri] = val
        elif op == ADD:
            reg[ri] = reg[ri] + reg[val]
        elif op == SUB:
            reg[ri] = reg[ri] - reg[val]
        elif op == MUL:
            reg[ri] = reg[ri] * reg[val]
        elif op == LDM:
            reg[ri] = mem[val]
        elif op == STM:
            mem[val] = reg[ri]
        elif op == NOP:
            pass
        elif op == HALT:
            pass
        #pc += 1
    return reg[0]
Пример #22
0
def pipe13(xs0, xs1, xs2, xs3, ys0, ys1):
    for i in pipelined(range(len(xs0))):
        if i % 2 == 0:
            if i % 4 == 0:
                v = xs0[i]
            else:
                v = 100
        else:
            v = xs1[i]
        ys0[i] = v

        if i % 3 == 0:
            if i % 6 == 0:
                w = xs2[i]
            else:
                w = 200
        else:
            w = xs3[i]
        ys1[i] = w
Пример #23
0
def pipe11(xs, ys):
    for i in pipelined(range(len(xs) - 1), ii=2):
        v = xs[i] + xs[i + 1]
        v >>= 1
        ys[i] = v
Пример #24
0
def pipeline_hazard01(xs0, xs1, xs2):
    for i in pipelined(range(len(xs0) - 1)):
        xs1[i] = xs0[i]
        xs0[i + 1] = xs2[i]
Пример #25
0
def nested01(xs, ys, w, h):
    for y in pipelined(range(h)):
        for x in range(w):
            idx = y * w + x
            v = xs[idx]
            ys[idx] = v + 1
Пример #26
0
def pipe10(xs):
    for i in pipelined(range(len(xs) - 1), ii=-1):
        v = xs[i] + xs[i + 1]
        v >>= 1
        xs[i] = v
Пример #27
0
def pipe09(xs, w):
    for i in pipelined(range(len(xs))):
        v = xs[i]
        v *= w
        xs[i] = v
Пример #28
0
def pipe03(xs):
    s = 0
    for x in pipelined(xs):
        x = x + s
        s += x
    return s