Exemple #1
0
from loam.shields.megawing import MegaWing
from bit1 import Bit1

N = 32
NI = 2
NO = 2


def prog():
    from bit1.isa import clr, set, O0
    clr(O0)
    set(O0, jump=0)


megawing = MegaWing(PapilioPro)
megawing.Clock.on()
megawing.Joystick.on()
megawing.LED.on(NO)

main = megawing.main()
if NO == 1:
    main.LED = m.bits([main.LED])

slow = mantle.Counter(16)
select = debounce(main.SELECT, slow.COUT)
step = falling(select)

bit1 = Bit1(prog, N, NI, NO, has_ce=True)

m.wire(bit1(m.bits([1, 1]), ce=step), main.LED)
Exemple #2
0
def test_bit1_output(NO):
    bit1 = Bit1(main, N, NI, NO)
    assert len(bit1.I) == NI
    assert len(bit1.O) == NO
Exemple #3
0
def test_bit1_clock(has_ce, has_reset):
    bit1 = Bit1(main, N, NI, NO, has_ce=has_ce, has_reset=has_reset)
    assert len(bit1.I) == NI
    assert len(bit1.O) == NO
    assert not has_ce or hasattr(bit1, 'CE')
    assert not has_reset or hasattr(bit1, 'RESET')
Exemple #4
0
import magma as m
from loam.boards.papiliopro import PapilioPro
from loam.shields.megawing import MegaWing
from bit1 import Bit1

N = 32
NI = 2
NO = 1

megawing = MegaWing(PapilioPro)
megawing.Clock.on()
megawing.Switch.on(NI)
megawing.LED.on(NO)

main = megawing.main()
if NI == 1:
    main.SWITCH = m.bits([main.SWITCH])
if NO == 1:
    main.LED = m.bits([main.LED])

def prog():
    from bit1.isa import and_, jump, I0, I1, O0
    and_( I0, I1, O0 )
    jump( 0 )

bit1 = Bit1(prog, N, NI, NO )

m.wire( bit1( main.SWITCH ), main.LED )

Exemple #5
0
from loam.boards.papiliopro import PapilioPro
from loam.shields.megawing import MegaWing
from bit1 import Bit1

N = 32
NI = 1
NO = 1

megawing = MegaWing(PapilioPro)
megawing.Clock.on()
megawing.Switch.on(NI)
megawing.LED.on(NO)

main = megawing.main()
if NI == 1:
    main.SWITCH = m.bits([main.SWITCH])
if NO == 1:
    main.LED = m.bits([main.LED])


def prog():
    from bit1.isa import mov, jump
    for i in range(NI):
        mov(i, i)
    jump(0)


bit1 = Bit1(prog, N, NI, NO, debug=True)

m.wire(bit1(main.SWITCH), main.LED)
Exemple #6
0
import magma as m
import mantle
from loam.boards.papiliopro import PapilioPro
from loam.shields.megawing import MegaWing
from bit1 import Bit1

N = 32
NI = 1
NO = 2

def prog():
    from bit1.isa import out
    out( [0, 0] )
    out( [1, 0] )
    out( [0, 1] )
    out( [1, 1], jump=0 )


megawing = MegaWing(PapilioPro)
megawing.Clock.on()
megawing.LED.on(NO)

main = megawing.main()

clock = mantle.Counter(24) 

bit1 = Bit1(prog, N, NI, NO, mode='parallel', has_ce=True )

m.wire( bit1( m.bits(1,1), ce=clock.COUT ), main.LED )

Exemple #7
0
NI = 1
NO = 8


def prog():
    from bit1.isa import set, clr, halt
    for i in range(NO):
        j = (i - 1 + NO) % NO
        set(i)
        clr(j)
    clr(NO - 1)
    halt()


megawing = MegaWing(PapilioPro)
megawing.Clock.on()
megawing.Joystick.on()
megawing.LED.on(NO)

main = megawing.main()

slow = mantle.Counter(16)
select = debounce(main.SELECT, slow.COUT)
step = falling(select)

clock = mantle.Counter(24)

bit1 = Bit1(prog, N, NI, NO, has_ce=True, has_reset=True)

m.wire(bit1(m.bits(0, 1), ce=clock.COUT, reset=step), main.LED)
Exemple #8
0
    #inst([0,0, 0])
    #inst([1,1, 0])
    #inst([0,0, 0])
    #inst([1,1, 0], ZERO, label()-1 )
    #out(  1,0, 1,  jump=label()) # halt


papilio = PapilioPro()
papilio.Clock.on()
for i in range(3):
    papilio.A[i].output().on()

main = papilio.main()

clock = mantle.Counter(6)()
reset = clock.COUT
counter = mantle.Counter(5, has_ce=True)
mosi = mantle.PISO(16, has_ce=True) 
bit1 = Bit1(main, N, NI, NO, mode='parallel', has_reset=True))

sclk, ss = bit1(counter.O[4], reset=reset)

counter(ce=sclk)

mosi( 0, m.bits(1,16), reset, ce=reset|sclk )

m.wire( ss,   main.A[0] )
m.wire( sclk, main.A[1] )
m.wire( mosi.O, main.A[2] )