42def applydelay(ctx, obj, addr, cdelay, fdelay, mux, force):
45 lBoardType = obj.mBoardType
46 lTopDesign = obj.mTopDesign
49 if lBoardType
in [kBoardPC059, kBoardFIB]:
52 lTopDesign.apply_endpoint_delay(addr, cdelay, fdelay, 0,
not force,
True, 0)
54 raise RuntimeError(
'MUX board: please supply an SFP mux channel')
56 lTopDesign.apply_endpoint_delay(addr, cdelay, fdelay, 0,
not force,
True, mux)
59 lTopDesign.apply_endpoint_delay(addr, cdelay, fdelay, 0,
not force,
True)
64@align.command('measure-delay', short_help="Measure endpoint round trip time")
65@click.argument('addr', type=toolbox.IntRange(0x0,0xffff))
66@click.option('--mux', '-m', type=click.IntRange(0,12), help=
'Mux select (fanout only)')
67@click.option('--sfp-control/--no-sfp-control', default=True, help='Control SFP or not')
73 lBoardType = obj.mBoardType
74 lTopDesign = obj.mTopDesign
77 if lBoardType
in [kBoardPC059, kBoardFIB]
and sfp_control ==
True:
79 echo(
"Endpoint (adr: {}, mux: {}) RTT: {}".format(addr,mux,lTopDesign.measure_endpoint_rtt(addr, sfp_control, mux)))
81 raise RuntimeError(
'MUX board: please supply an SFP mux channel')
83 echo(
"Endpoint (adr: {}) RTT: {}".format(addr,lTopDesign.measure_endpoint_rtt(addr, sfp_control)))
88@align.command('toggle-tx', short_help="Control the endpoint SFP Tx laser")
89@click.argument('addr', type=toolbox.IntRange(0x0,0xffff))
90@click.option('--on/--off', default=True, help='enable/disable tx')
121 lDevice = obj.mDevice
122 lTopDesign = obj.mTopDesign
123 lBoardType = obj.mBoardType
124 lMaster = obj.mMaster
127 if lBoardType
in [kBoardPC059, kBoardFIB]:
129 lTopDesign.switch_mux(mux)
130 lMaster.enable_upstream_endpoint()
132 raise RuntimeError(
'MUX board: please supply an SFP mux channel')
134 lMaster.enable_upstream_endpoint()