Beispiel #1
0
import time

# for bitstream = /tmp/test_syncgen4_2016_Feb_12_1758.fpg

from casperfpga.katcp_fpga import KatcpFpga
from casperfpga.memory import bin2fp, fp2fixed_int

hostname = 'roach020818'

f = KatcpFpga(hostname)
f.get_system_information()
f.registers.bf_config.write(tvg_sel=1)


def convert_to_freq(num, beamweight=1.0):
    """
    Convert the 100-bit number from the snapshot to the frequency channel
    of that data point.

    This is assuming that the data is in the pol1 position and the beamweight
    being applied is beamweight.

    :param num: the 100-bit number to be converted
    :param beamweight: the f16.9 beamweight being applied to the data
    :return:
    """
    # a = num & ((2**50)-1)
    # a = num >> 50
    p1r = None
    p1i = None
    p1r8 = None
Beispiel #2
0
    txaddr = DIG_TX_IP_START
    txaddr_bits = txaddr.split('.')
    txaddr_base = int(txaddr_bits[3])
    txaddr_prefix = '%s.%s.%s.' % (txaddr_bits[0], txaddr_bits[1], txaddr_bits[2])
    for ctr in range(0, 4):
        txip = txaddr_base + ctr
        print '%s sending to: %s%d port %d' % (fdig.host, txaddr_prefix, txip, DIG_TX_PORT)
        fdig.write_int('gbe_iptx%i' % ctr, tengbe.str2ip('%s%d' % (txaddr_prefix, txip)))
    fdig.write_int('gbe_porttx', DIG_TX_PORT)
    fdig.registers.control.write(gbe_rst=False)
    # enable the tvg on the digitiser and set up the pol id bits
    fdig.registers.control.write(tvg_select0=1)
    fdig.registers.control.write(tvg_select1=1)
    fdig.registers.id2.write(pol1_id=1)
else:
    fdig.get_system_information()

if args.deprogram:
    fdig.deprogram()
    print 'Deprogrammed %s.' % fdig.host

if args.stop:
    fdig.registers.control.write(gbe_txen=False)
    print 'Stopped transmission on %s.' % fdig.host

if args.start:
    # start tx
    print 'Starting TX on %s' % fdig.host,
    sys.stdout.flush()
    fdig.registers.control.write(gbe_txen=True)
    print 'done.'
from casperfpga.katcp_fpga import KatcpFpga

parser = argparse.ArgumentParser(description='Display reorder preprocess snapblock info.',
                                 formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument(dest='host', type=str, action='store',
                    help='x-engine host')
parser.add_argument('--eof', dest='eof', action='store_true',
                    default=False,
                    help='show only eofs')
args = parser.parse_args()

xeng_host = args.host

# create the device and connect to it
xeng_fpga = KatcpFpga(xeng_host)
xeng_fpga.get_system_information()
board_id = xeng_fpga.registers.board_id.read()['data']['reg']
numchans = 4096
numx = 32
fperx = numchans / numx
frange = []
for bid in range(board_id, board_id + 4):
    fmin = bid * fperx
    fmax = fmin + fperx - 1
    frange.append((fmin, fmax))
print(frange
snapdata = []
snapdata.append(xeng_fpga.snapshots.snap_unpack0_ss.read()['data'])
snapdata.append(xeng_fpga.snapshots.snap_unpack1_ss.read()['data'])
snapdata.append(xeng_fpga.snapshots.snap_unpack2_ss.read()['data'])
snapdata.append(xeng_fpga.snapshots.snap_unpack3_ss.read()['data'])