#!/usr/bin/env python2.6 import katcp, numpy, pylab, time, corr import sys,logging,socket,struct,stats device_host = "192.168.100.72" #device_host = "192.168.5.19" #device_host = "192.168.4.91" device_port = 7147 fpga=[] def exit_fail(): print 'FAILURE DETECTED. Log entries:\n',lh.printMessages() # try: # fpga.stop() # except: pass # raise exit() def exit_clean(): try: for f in fpgas: f.stop() except: pass exit() if __name__ == '__main__': from optparse import OptionParser p = OptionParser() p.set_usage('[TUT6_PYSCRIPT_FILE] [options]') p.set_description(__doc__) p.add_option('-p', '--plot', dest='plot', action='store_true', help='Digital Noise Source.') p.add_option('-b', '--bof', dest='boffile', type='str', default='tut6_digital_noise_src_2011_Sep_23_1128.bof', help='Specify the bof file to load') opts, args = p.parse_args(sys.argv[1:]) if args==[]: print 'Please specify a ROACH board. \nExiting.' exit() else: roach = args[0] if opts.boffile != '': boffile = opts.boffile else: boffile = 'tut6_digital_noise_src_2011_Sep_23_1128.bof' my_corr=corr.katcp_wrapper.FpgaClient(device_host) while not (my_corr.is_connected()): pass print "Connected Successfully...!!!!" print "Programming FPGA" my_corr.progdev(opts.boffile) print "Programming Done.......>!!!" my_corr.write_int("mux_sel",0) print "mux = %i" %my_corr.read_int("mux_sel") my_corr.write_int("reset",0) print "reset = %i" %my_corr.read_int("reset") my_corr.write_int("reset",1) print "reset = %i" %my_corr.read_int("reset") my_corr.write_int("reset",0) print "reset = %i" %my_corr.read_int("reset") my_corr.write_int("trig",0) print "trig = %i" %my_corr.read_int("trig") my_corr.write_int("trig",1) print "trig = %i" %my_corr.read_int("trig") my_corr.write_int("snap_ctrl",0) print "snap_ctrl = %i" %my_corr.read_int("snap_ctrl") my_corr.write_int("snap_ctrl",7) print "snap_ctrl = %i" %my_corr.read_int("snap_ctrl") print "snap_addr = %i" %my_corr.read_int('snap_addr') #a=my_corr.read("snap_bram",1024*8) a=my_corr.read("snap_bram",32768*8) #bram_snap=list(struct.unpack('>%iI'%(2048), a)) bram_snap=list(struct.unpack('>%iI'%(65536), a)) #for i in range(2048): for i in range(65536): if (bram_snap[i] >127): bram_snap[i]=bram_snap[i]-256 print "Kurtosis of the noise is %f\n"%(stats.kurtosis(bram_snap)) my_corr.stop() pylab.hist(bram_snap,16) pylab.show() my_corr.stop()