Exemple #1
0
def config_spiroc(spiroc_id,file,bitstream,gtrigger,masktrig,nomasktrig):
    "prepare the bitstream for configuring a chip"
    try:
        spiroc = spiroc_pool.get(spiroc_id)
    except Exception as e:
        submod.setres(0,"spiroc: spiroc_%s" % (str(e)))
        return
    spiroc["missing"]=False
    #empty the bitstream
    spiroc["bitstream"]=""
    #load bitstream
    if bitstream!="undef":
        retcode,res = common_roc.load_str(bitstream,spiroc_bs_length)
        if retcode==0:
            submod.setres(0,"spiroc: cant parse bitstream: %s"%(res))
            return
        spiroc["bitstream"]=res
    #load bitstream from file
    if file!="undef":
        retcode,res = common_roc.load_file(file,spiroc_bs_length)
        if retcode==0:
            submod.setres(0,"spiroc: cant open config file: %s"%(res))
            return
        spiroc["bitstream"]=res
    if spiroc["bitstream"]=="":
        submod.setres(0,"spiroc: no bitstream defined for spiroc %s"%(spiroc_id))
        return
    #set chip id
#    retcode,res = set_chipid(spiroc_id,spiroc)
#    if retcode==0:
#        submod.setres(0,"cant set chipid: %s"%(res))
#        return
    #set global trigger threshold
    retcode,res = set_gtrigger(spiroc_id,gtrigger)
    if retcode==0:
        submod.setres(0,"spiroc: cant set trigger threshold: %s"%(res))
        return
    # allows to mask trigger
    retcode,res = allow_trig_chans(spiroc_id,masktrig)
    if retcode==0:
        submod.setres(0,"spiroc: cant allow to mask masktrig: %s"%(res))
        return
    # disallows to mask trigger
    retcode,res = disallow_trig_chans(spiroc_id,nomasktrig)
    if retcode==0:
        submod.setres(0,"spiroc: cant disallows to mask nomasktrig: %s"%(res))
        return
    #return result
    submod.setres(1,"ok")
Exemple #2
0
def config_maroc3(maroc3_id,file,bitstream,pp_bandgap,pp_dacs,small_dac,dac0,dac1,wlk_out_adc,wlk_inv_counter,wlk_ramp_8bit,wlk_ramp_10bit,from_156_to_188):
    "Prepare the bitstream for configuring a chip"
    try:
        maroc3 = maroc3_pool.get(maroc3_id)
    except Exception as e:
        submod.setres(0,"maroc3: maroc3_%s" % (str(e)))
        return
    maroc3["missing"] = False
    #empty the bitstream
    maroc3["bitstream"]=""
    #load bitstream
    if bitstream!="undef":
        retcode,res=common_roc.load_str(bitstream,maroc3_bs_length,True)
        if retcode==0:
            submod.setres(0,"maroc3: cant parse bitstream: %s"%(res))
            return
        maroc3["bitstream"]=res
    #load bitstream from file
    if file!="undef":
        retcode,res=common_roc.load_file(file,maroc3_bs_length,True)
        if retcode==0:
            submod.setres(0,"maroc3: cant open config file: %s"%(res))
            return
        maroc3["bitstream"]=res
    if maroc3["bitstream"]=="":
        submod.setres(0,"maroc3: no bitstream defined for maroc3 %s"%(maroc3_id))
        return
    # set pp gandagp
    retcode,res = set_pp_bandgap(maroc3_id,pp_bandgap)
    if retcode==0:
        submod.setres(0,"maroc3: %s"%(res))
        return
    # set pp dacs
    retcode,res = set_pp_dacs(maroc3_id,pp_dacs)
    if retcode==0:
        submod.setres(0,"maroc3: %s"%(res))
        return
    # set small dac value 
    retcode,res = set_small_dac(maroc3_id,small_dac)
    if retcode==0:
        submod.setres(0,"maroc3: %s"%(res))
        return
    # set dac0 value 
    retcode,res = set_dac0(maroc3_id,dac0)
    if retcode==0:
        submod.setres(0,"maroc3: %s"%(res))
        return
    # set dac1 value 
    retcode,res = set_dac1(maroc3_id,dac1)
    if retcode==0:
        submod.setres(0,"maroc3: %s"%(res))
        return
    # set Wilkinson data output 
    retcode,res = set_data_output_wlk(maroc3_id,wlk_out_adc)
    if retcode==0:
        submod.setres(0,"maroc3: %s"%(res))
        return
    # set Wilkinson invert counter 
    retcode,res = set_inv_start_counter_wlk(maroc3_id,wlk_inv_counter)
    if retcode==0:
        submod.setres(0,"maroc3: %s"%(res))
        return
    # set 8bit Wilkinson ramp
    retcode,res = set_8bit_ramp_wlk(maroc3_id,wlk_ramp_8bit)
    if retcode==0:
        submod.setres(0,"maroc3: %s"%(res))
        return
    # set 10bit Wilkinson ramp
    retcode,res = set_10bit_ramp_wlk(maroc3_id,wlk_ramp_10bit)
    if retcode==0:
        submod.setres(0,"maroc3: %s"%(res))
        return
    # set bits from 156 to 188 (33bits)
    retcode,res = set_156_to_188(maroc3_id,from_156_to_188)
    if retcode==0:
        submod.setres(0,"maroc3: %s"%(res))
        return
    #return result
    submod.setres(1,"ok")
Exemple #3
0
def config_skiroc(skiroc_id,file,bitstream,gtrigger,delay,fbcap,start_ro,end_ro,preamp,nopreamp,calcap,nocalcap,leak,noleak,masktrig,nomasktrig):
    "Prepare the bitstream for configuring a chip"
    try:
        skiroc = skiroc_pool.get(skiroc_id)
    except Exception as e:
        submod.setres(0,"skiroc: skiroc_%s" % (str(e)))
        return
    #empty the bitstream
    skiroc["bitstream"]=""
    #load bitstream
    if bitstream!="undef":
        retcode,res=common_roc.load_str(bitstream,skiroc_bs_length)
        if retcode==0:
            submod.setres(0,"skiroc: cant parse bitstream: %s"%(res))
            return
        skiroc["bitstream"]=res
    #load bitstream from file
    if file!="undef":
        retcode,res=common_roc.load_file(file,skiroc_bs_length)
        if retcode==0:
            submod.setres(0,"skiroc: cant open config file: %s"%(res))
            return
        skiroc["bitstream"]=res
    if skiroc["bitstream"]=="":
        submod.setres(0,"skiroc: no bitstream defined for skiroc %s"%(skiroc_id))
        return
    #set chip id
    retcode,res=set_chipid(skiroc_id,skiroc)
    if retcode==0:
        submod.setres(0,"skiroc: cant set chipid: %s"%(res))
        return
    #set global trigger threshold
    retcode,res=set_gtrigger(skiroc_id,gtrigger)
    if retcode==0:
        submod.setres(0,"skiroc: cant set trigger threshold: %s"%(res))
        return
    #set delay
    retcode,res=set_delay(skiroc_id,delay)
    if retcode==0:
        submod.setres(0,"skiroc: cant set delay: %s"%(res))
        return
    #set fbcap
    retcode,res=set_fbcap(skiroc_id,fbcap)
    if retcode==0:
        submod.setres(0,"skiroc: cant set fbcap: %s"%(res))
        return
    #set start_ro
    retcode,res=set_start_ro(skiroc_id,start_ro)
    if retcode==0:
        submod.setres(0,"skiroc: cant set start_ro: %s"%(res))
        return
    #set end_ro
    retcode,res=set_end_ro(skiroc_id,end_ro)
    if retcode==0:
        submod.setres(0,"skiroc: cant set end_ro: %s"%(res))
        return
    #enable charge preamp
    retcode,res=enable_preamp_chans(skiroc_id,preamp)
    if retcode==0:
        submod.setres(0,"skiroc: cant enable preamp: %s"%(res))
        return
    # enable calibration capacitor
    retcode,res=enable_calib_chans(skiroc_id,calcap)
    if retcode==0:
        submod.setres(0,"skiroc: cant enable calcap: %s"%(res))
        return
    # allows to mask trigger
    retcode,res=allow_trig_chans(skiroc_id,masktrig)
    if retcode==0:
        submod.setres(0,"skiroc: cant allow to mask masktrig: %s"%(res))
        return
    # disallows to mask trigger
    retcode,res=disallow_trig_chans(skiroc_id,nomasktrig)
    if retcode==0:
        submod.setres(0,"skiroc: cant disallows to mask nomasktrig: %s"%(res))
        return
    # disable charge preamp
    retcode,res=disable_preamp_chans(skiroc_id,nopreamp)
    if retcode==0:
        submod.setres(0,"skiroc: cant disable nopreamp: %s"%(res))
        return
    # disable calibration capacitor
    retcode,res=disable_calib_chans(skiroc_id,nocalcap)
    if retcode==0:
        submod.setres(0,"skiroc: cant enable nocalcap: %s"%(res))
        return
    # select high leakage current channel
    retcode,res=select_leak_chans(skiroc_id,leak)
    if retcode==0:
        submod.setres(0,"skiroc: cant select leak: %s"%(res))
        return
    # unselect high leakage current channel
    retcode,res=unselect_leak_chans(skiroc_id,noleak)
    if retcode==0:
        submod.setres(0,"skiroc: cant select unleak: %s"%(res))
        return   
    #return result
    submod.setres(1,"ok")
Exemple #4
0
def config_easiroc(
    easiroc_id,
    filename,
    bitstream,
    d_output,
    dac_code,
    hg_tau,
    lg_tau,
    hg_comp_capa,
    hg_fb_capa,
    lg_comp_capa,
    lg_fb_capa,
    lg_preamp_bias,
):
    "Prepare the bitstream for configuring a chip"
    try:
        easiroc = easiroc_pool.get(easiroc_id)
    except Exception as e:
        submod.setres(0, "easiroc: easiroc_%s" % (str(e)))
        return
    easiroc["missing"] = False
    # empty the bitstream
    easiroc["bitstream"] = ""
    # load bitstream
    if bitstream != "undef":
        retcode, res = common_roc.load_str(bitstream, easiroc_bs_length)
        if retcode == 0:
            submod.setres(0, "easiroc: cant parse bitstream: %s" % (res))
            return
        easiroc["bitstream"] = res
    # load bitstream from file
    if file != "undef":
        retcode, res = common_roc.load_file(file, easiroc_bs_length)
        if retcode == 0:
            submod.setres(0, "easiroc: cant open config file: %s" % (res))
            return
        easiroc["bitstream"] = res
    if easiroc["bitstream"] == "":
        submod.setres(0, "easiroc: no bitstream defined for easiroc %s" % (easiroc_id))
        return

    retcode, res = set_d_output(easiroc_id, d_output)
    if retcode == 0:
        submod.setres(0, "easiroc: %s" % (res))
        return

    retcode, res = set_dac_code(easiroc_id, dac_code)
    if retcode == 0:
        submod.setres(0, "easiroc: %s" % (res))
        return

    retcode, res = set_hg_tau(easiroc_id, hg_tau)
    if retcode == 0:
        submod.setres(0, "easiroc: %s" % (res))
        return

    retcode, res = set_lg_tau(easiroc_id, lg_tau)
    if retcode == 0:
        submod.setres(0, "easiroc: %s" % (res))
        return

    retcode, res = set_hg_comp_capa(easiroc_id, hg_comp_capa)
    if retcode == 0:
        submod.setres(0, "easiroc: %s" % (res))
        return

    retcode, res = set_hg_fb_capa(easiroc_id, hg_fb_capa)
    if retcode == 0:
        submod.setres(0, "easiroc: %s" % (res))
        return

    retcode, res = set_lg_comp_capa(easiroc_id, lg_comp_capa)
    if retcode == 0:
        submod.setres(0, "easiroc: %s" % (res))
        return

    retcode, res = set_lg_fb_capa(easiroc_id, lg_fb_capa)
    if retcode == 0:
        submod.setres(0, "easiroc: %s" % (res))
        return

    retcode, res = set_high_lg_preamp_bias(easiroc_id)
    if retcode == 0:
        submod.setres(0, "easiroc: %s" % (res))
        return

    submod.setres(1, "ok")