uhd/mpm/python/usrp_mpm
Humberto Jimenez eb4a609ec8 rh: Deterministic latency optimization in JESD204B
- Optimized JESD204B RX/TX links' latency.
- Made JESD latency constant across supported frequencies.
- Checking RX SYSREF capture in the FPGA deframer block.

The JESD204B standard can be linked in such a way to produce a
repeatable, deterministic delay from the framer to deframer. This is
accomplished by setting up a LMFC (local multiframe clock) in both
devices.

The LMFCs are reset whenever a SYSREF edge is captured by the framer
and deframer. Therefore, it is simple to control the LMFC rising edges
in each device by implementing variable delay elements on the SYSREF
pulses to the framer and deframer.

Latency across the JESD204B TX/RX links should remain constant and
deterministic across the supported sampling_clock_rate values. By
testing the roundtrip latency (i.e. FPGA -> TX -> RX -> FPGA) with
different delay values in the FPGA, one may decrease the latency and
provide enough setup and hold margin for the data to be transfered
through each JESD link.

It was found that a different set of SYSREF delay values are required
for sampling_clock_rate = 400 MSPS to match the latency of the other
supported rates.
2018-10-30 09:57:55 -07:00
..
chips adf400x: Fix adf400x driver for ref counter and charge pump mode 2018-08-02 16:07:15 -07:00
cores nijesdcore: add PRBS-31 testing 2018-10-25 10:30:59 -07:00
dboard_manager rh: Deterministic latency optimization in JESD204B 2018-10-30 09:57:55 -07:00
periph_manager rh: add support for rhodium devices 2018-10-25 10:30:59 -07:00
sys_utils mpm: identify sysfs gpios more generically 2018-10-18 18:15:25 -07:00
xports mpm: add link_speed xport_info 2018-09-13 14:47:54 -07:00
__init__.py mpm: Add __mpm_device__ as usrp_hwd module variable 2018-10-09 17:11:08 -07:00
aurora_control.py mpm: Update all license headers 2018-02-19 16:55:08 -08:00
bfrfs.py mpm: Update all license headers 2018-02-19 16:55:08 -08:00
bist.py mpm: e320: n3xx: Factor BIST code to common module 2018-10-24 18:53:16 -07:00
CMakeLists.txt mpm: n3xx: Factor out component updating 2018-07-11 12:42:45 -07:00
components.py mpm: n3xx: Factor out component updating 2018-07-11 12:42:45 -07:00
discovery.py mpm: Fix some Pylint warnings 2018-03-06 15:45:15 -08:00
eeprom.py n3xx: Fixup for parsing the EEPROM 2018-07-30 18:17:29 -07:00
ethtable.py uio: mpm: Fixup for opening mboard-regs UIO 2018-07-23 10:33:34 -07:00
fpga_bit_to_bin.py mpm: Update all license headers 2018-02-19 16:55:08 -08:00
gpsd_iface.py mpm: n3xx: Factor out GPSd Iface functions 2018-07-06 15:00:20 -07:00
liberiotable.py uio: mpm: Fixup for opening mboard-regs UIO 2018-07-23 10:33:34 -07:00
mpmlog.py mpm: Update all license headers 2018-02-19 16:55:08 -08:00
mpmtypes.py mpm: types: Add getters for dst_ep and dts_block to SID 2018-04-30 16:57:45 -07:00
mpmutils.py mpm: Add lock_guard() function 2018-10-23 10:13:00 -07:00
prefs.py mpm: Update all license headers 2018-02-19 16:55:08 -08:00
rpc_server.py mpm: reset the RPC server upon reload 2018-08-27 18:14:23 -07:00
test_bfrfs.py mpm: Update all license headers 2018-02-19 16:55:08 -08:00