コード例 #1
0
def do_sp_test(speed):
    resources = xmostest.request_resource("xsim")

    binary = 'i2c_sp_test/bin/%(speed)d/i2c_sp_test_%(speed)d.xe' % {
        'speed': speed
    }

    checker = I2CMasterChecker("tile[0]:XS1_PORT_8A.1",
                               "tile[0]:XS1_PORT_8A.3",
                               tx_data=[0x99, 0x3A, 0xff],
                               expected_speed=speed)

    tester = xmostest.ComparisonTester(open('single_port_test.expect'),
                                       'lib_i2c',
                                       'i2c_master_sim_tests',
                                       'single_port_test', {'speed': speed},
                                       regexp=True)

    if speed == 10:
        tester.set_min_testlevel('nightly')

    xmostest.run_on_simulator(resources['xsim'],
                              binary,
                              simthreads=[checker],
                              simargs=['--weak-external-drive'],
                              suppress_multidrive_messages=True,
                              tester=tester)
コード例 #2
0
def do_master_test(arch, stop):
    resources = xmostest.request_resource("xsim")

    binary = 'i2c_master_test/bin/tx_only_%(stop)s_%(arch)s/i2c_master_test_tx_only_%(stop)s_%(arch)s.xe' % {
        'stop': stop,
        'arch': arch,
    }

    checker = I2CMasterChecker(
        "tile[0]:XS1_PORT_1A",
        "tile[0]:XS1_PORT_1B",
        tx_data=[0x99, 0x3A, 0xff],
        expected_speed=400,
        ack_sequence=[True, True, True, True, True, False, False, True])

    tester = xmostest.ComparisonTester(open('ack_test_%s.expect' % stop),
                                       'lib_i2c',
                                       'i2c_master_sim_tests',
                                       'ack_test', {
                                           'speed': 400,
                                           'arch': arch,
                                           'stop': stop
                                       },
                                       regexp=True)

    xmostest.run_on_simulator(resources['xsim'],
                              binary,
                              simthreads=[checker],
                              simargs=['--weak-external-drive'],
                              suppress_multidrive_messages=True,
                              tester=tester)
コード例 #3
0
ファイル: test_bus_lock.py プロジェクト: larry-xmos/lib_i2c
def do_test(arch):
    resources = xmostest.request_resource("xsim")

    binary = 'i2c_test_locks/bin/%(arch)s/i2c_test_locks_%(arch)s.xe' % {
        'arch': arch
    }

    speed = 400

    checker = I2CMasterChecker("tile[0]:XS1_PORT_1A",
                               "tile[0]:XS1_PORT_1B",
                               expected_speed=speed)

    tester = xmostest.ComparisonTester(open('lock_test.expect'),
                                       'lib_i2c',
                                       'i2c_master_sim_tests',
                                       'bus_locks', {
                                           'speed': speed,
                                           'arch': arch
                                       },
                                       regexp=True)

    xmostest.run_on_simulator(resources['xsim'],
                              binary,
                              simthreads=[checker],
                              simargs=['--weak-external-drive'],
                              suppress_multidrive_messages=True,
                              tester=tester)
コード例 #4
0
def do_test(arch):
    resources = xmostest.request_resource("xsim")

    binary = 'i2c_master_reg_test/bin/%(arch)s/i2c_master_reg_test_%(arch)s.xe' % {
      'arch' : arch
    }

    checker = I2CMasterChecker("tile[0]:XS1_PORT_1A",
                               "tile[0]:XS1_PORT_1B",
                               tx_data=[0x99, 0x3A, 0xff, 0x05, 0x11, 0x22],
                               expected_speed=400,
                               ack_sequence=[False, # NACK header
                                               True, True, False, # NACK before data
                                               True, False, # NACK before data
                                               True, False, # NACK before data
                                               False, # NACK address
                                               True, False, # NACK before data
                                               True, False, # NACK before data
                                               True, True, False # NACK before data
                                            ])

    tester = xmostest.ComparisonTester(open('reg_ops_nack.expect'),
                                     'lib_i2c', 'i2c_master_sim_tests',
                                     'reg_ops_nack_test',
                                     {'arch' : arch},
                                     regexp=True)

    xmostest.run_on_simulator(resources['xsim'], binary,
                              simthreads=[checker],
                              simargs=['--weak-external-drive'],
                              suppress_multidrive_messages=True,
                              tester=tester)
コード例 #5
0
def do_master_test(arch, speed, impl, stop):
    resources = xmostest.request_resource("xsim")

    binary = 'i2c_master_async_test/bin/%(impl)s_%(speed)s_%(arch)s_%(stop)s/i2c_master_async_test_%(impl)s_%(speed)s_%(arch)s_%(stop)s.xe' % {
      'impl' : impl,
      'speed' : speed,
      'arch' : arch,
      'stop' : stop
    }

    checker = I2CMasterChecker("tile[0]:XS1_PORT_1A",
                               "tile[0]:XS1_PORT_1B",
                               tx_data = [0x99, 0x3A, 0xff],
                               expected_speed = speed,
                               ack_sequence=[True, True, False,
                                             True,
                                             True,
                                             True, True, True, False,
                                             True, False])

    tester = xmostest.ComparisonTester(open('master_test_%s.expect' % stop),
                                     'lib_i2c', 'i2c_master_sim_tests',
                                     'async_basic_test',
                                     {'speed' : speed, 'impl' : impl, 'arch' : arch, 'stop' : stop},
                                     regexp=True)

    if speed == 10:
        tester.set_min_testlevel('nightly')

    xmostest.run_on_simulator(resources['xsim'], binary,
                              simthreads = [checker],
                              simargs=['--weak-external-drive'],
                              suppress_multidrive_messages = True,
                              tester = tester)
コード例 #6
0
ファイル: test_interference.py プロジェクト: cdoak/lib_i2c
def runtest():
    resources = xmostest.request_resource("xsim")

    speed = 100
    build_config = "interfere"

    binary = 'i2c_master_async_test/bin/%(config)s/i2c_master_async_test_%(config)s.xe' % {'config':build_config}

    checker = I2CMasterChecker("tile[0]:XS1_PORT_1A",
                               "tile[0]:XS1_PORT_1B",
                               tx_data = [0x99, 0x3A, 0xff],
                               expected_speed = None,
                               ack_sequence=[True, True, False,
                                             True,
                                             True,
                                             True, True, True, False,
                                             True, False])

    tester = xmostest.ComparisonTester(open('master_test.expect'),
                                     'lib_i2c', 'i2c_master_sim_tests',
                                     'async_interference_test', {'speed':str(speed)},
                                     regexp=True)

    xmostest.run_on_simulator(resources['xsim'], binary,
                              simthreads = [checker],
                              simargs=['--weak-external-drive'],
                              suppress_multidrive_messages = True,
                              tester = tester)
コード例 #7
0
ファイル: test_async_master.py プロジェクト: cdoak/lib_i2c
def do_master_test(speed, comb):
    resources = xmostest.request_resource("xsim")

    if comb:
        build_config = "comb_%d" % speed
        config = {'speed':speed,'impl':'comb'}
    else:
        build_config = str(speed)
        config = {'speed':speed,'impl':'noncomb'}

    binary = 'i2c_master_async_test/bin/%(config)s/i2c_master_async_test_%(config)s.xe' % {'config':build_config}

    checker = I2CMasterChecker("tile[0]:XS1_PORT_1A",
                               "tile[0]:XS1_PORT_1B",
                               tx_data = [0x99, 0x3A, 0xff],
                               expected_speed = speed,
                               ack_sequence=[True, True, False,
                                             True,
                                             True,
                                             True, True, True, False,
                                             True, False])

    tester = xmostest.ComparisonTester(open('master_test.expect'),
                                     'lib_i2c', 'i2c_master_sim_tests',
                                     'async_basic_test', config,
                                     regexp=True)

    if speed == 10:
        tester.set_min_testlevel('nightly')

    xmostest.run_on_simulator(resources['xsim'], binary,
                              simthreads = [checker],
                              simargs=['--weak-external-drive'],
                              suppress_multidrive_messages = True,
                              tester = tester)
コード例 #8
0
def do_sp_test(stop, speed):
    resources = xmostest.request_resource("xsim")

    binary = 'i2c_sp_test/bin/%(speed)d_%(stop)s/i2c_sp_test_%(speed)d_%(stop)s.xe' % {
      'speed' : speed,
      'stop'  : stop
    }

    checker = I2CMasterChecker("tile[0]:XS1_PORT_8A.1",
                               "tile[0]:XS1_PORT_8A.3",
                               tx_data=[0x99, 0x3a, 0xff, 0xaa, 0xbb],
                               expected_speed=speed,
                               # Test some sequences ending with ACK, some with NACK
                               ack_sequence=[True, True, False,
                                             True, True, True, False])

    tester = xmostest.ComparisonTester(open('single_port_test_%s.expect' % stop),
                                     'lib_i2c', 'i2c_master_sim_tests',
                                     'single_port_test',
                                     {'speed':speed, 'stop':stop},
                                     regexp=True)

    if speed == 10:
        tester.set_min_testlevel('nightly')

    sim_args = ['--weak-external-drive']

    xmostest.run_on_simulator(resources['xsim'], binary,
                              simthreads = [checker],
                              simargs=sim_args,
                              suppress_multidrive_messages = True,
                              tester = tester)
コード例 #9
0
def runtest():
    resources = xmostest.request_resource("xsim")

    binary = 'i2c_master_test/bin/rx_tx_400/i2c_master_test_rx_tx_400.xe'

    checker = I2CMasterChecker("tile[0]:XS1_PORT_1A",
                               "tile[0]:XS1_PORT_1B",
                               tx_data=[0x99, 0x3A, 0xff],
                               expected_speed=175,
                               clock_stretch=5000,
                               ack_sequence=[
                                   True, True, False, True, True, True, True,
                                   True, False, True, False
                               ])

    tester = xmostest.ComparisonTester(open('master_test.expect'),
                                       'lib_i2c',
                                       'i2c_master_sim_tests',
                                       'clock_stretch',
                                       regexp=True)

    xmostest.run_on_simulator(resources['xsim'],
                              binary,
                              simthreads=[checker],
                              simargs=['--weak-external-drive'],
                              suppress_multidrive_messages=True,
                              tester=tester)
コード例 #10
0
def do_test(arch, stop):
    resources = xmostest.request_resource("xsim")

    speed = 400
    binary = 'i2c_master_test/bin/rx_tx_%(speed)s_%(stop)s_%(arch)s/i2c_master_test_rx_tx_%(speed)s_%(stop)s_%(arch)s.xe' % {
        'speed': speed,
        'stop': stop,
        'arch': arch,
    }

    checker = I2CMasterChecker("tile[0]:XS1_PORT_1A",
                               "tile[0]:XS1_PORT_1B",
                               tx_data=[0x99, 0x3A, 0xff],
                               expected_speed=170,
                               clock_stretch=5000,
                               ack_sequence=[
                                   True, True, False, True, True, True, True,
                                   True, False, True, False
                               ])

    tester = xmostest.ComparisonTester(open('master_test_%s.expect' % stop),
                                       'lib_i2c',
                                       'i2c_master_sim_tests',
                                       'clock_stretch', {
                                           'speed': speed,
                                           'stop': stop,
                                           'arch': arch
                                       },
                                       regexp=True)

    # vcd_args = '-o test.vcd'
    # vcd_args += ( ' -tile tile[0] -ports -ports-detailed -instructions'
    #   ' -functions -cycles -clock-blocks -pads' )

    # sim_args = ['--weak-external-drive', '--trace-to', 'sim.log']
    # sim_args += [ '--vcd-tracing', vcd_args ]

    sim_args = ['--weak-external-drive']

    xmostest.run_on_simulator(resources['xsim'],
                              binary,
                              simthreads=[checker],
                              simargs=sim_args,
                              suppress_multidrive_messages=True,
                              tester=tester)
コード例 #11
0
ファイル: test_repeated_start.py プロジェクト: cdoak/lib_i2c
def runtest():
    resources = xmostest.request_resource("xsim")

    binary = 'i2c_test_repeated_start/bin/i2c_test_repeated_start.xe'

    checker = I2CMasterChecker("tile[0]:XS1_PORT_1A",
                               "tile[0]:XS1_PORT_1B",
                               expected_speed=400)

    tester = xmostest.ComparisonTester(open('repeated_start.expect'),
                                       'lib_i2c',
                                       'i2c_master_sim_tests',
                                       'repeated_start',
                                       regexp=True)

    xmostest.run_on_simulator(resources['xsim'],
                              binary,
                              simthreads=[checker],
                              simargs=['--weak-external-drive'],
                              suppress_multidrive_messages=True,
                              tester=tester)