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
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'])