Skip to content

Add 12-bit Mode and Support For 122.88 Msps#1

Open
daniel-endraws wants to merge 71 commits intomasterfrom
sc12_q11_format
Open

Add 12-bit Mode and Support For 122.88 Msps#1
daniel-endraws wants to merge 71 commits intomasterfrom
sc12_q11_format

Conversation

@daniel-endraws
Copy link
Collaborator

@daniel-endraws daniel-endraws commented Jun 5, 2024

Changes to libbladeRF, FX3 firmware, and the FPGA to add support for a 12-bit packed format and boost maximum FX3 throughput to 3.054 Gbps. The following are from the CHANGELOGs:

libbladeRF v2.133.0 (2024-06-05)

This version of libbladeRF (modified from v2.5.0) is intended for use with:

FX3 Firmware v2.132.0
FPGA v0.143.1

These version numbers are indicated with a 1 in the MSB, the smallest width
being a byte, hence an added 2^7 = 128 to all previous version numbers.

New features:

  • Added BLADERF_FORMAT_SC12_Q11 and BLADERF_FORMAT_SC12_Q11_META for RX
    • This format is identical to corresponding 16-bit formats but is not sign
      extended when sent from the FPGA -> host, instead packed as 12 bits.
    • When using bladerf_sync_rx(), the 12 bit samples can be unpacked and
      byte aligned into a buffer identical to BLADERF_FORMAT_SC16_Q11 using
      bladerf_align_12_bit_buffer() or bladerf_align_and_deinterleave_12_bit_buffer()
      • The RX discontinuity test (host/libraries/libbladeRF_test/test_rx_discont) has been updated to reflect this and can be called after building as ./output/libbladeRF_test_rx_discont -c 1 -p 8192 -i 100000 -b 16384 -n 256 -x 31 -m 12m -s 122.88M
  • Added BLADERF_META_STATUS_SW_OVERRUN and BLADERF_META_STATUS_HW_OVERRUN
    to distinguish between discontinuities detected in metadata mode leaving the
    FPGA (HW) vs discontinuities experienced only by the host (SW).
    • Messages that are invalid due to a HW overrun are considered invalid and
      are subsequently skipped

Bug fixes:

  • sync.c: fix timestamp seeking for two channels
  • Removed unused but set variables causing compilation errors on macOS
  • bladerf.c: actually enable oversampling mode for bladerf_set_sample_rate

FX3 Firmware v2.132.0 (2023-06-05)

For the RX (device -> host):

  • Enable USB bursting
    • By default the FX3 does not try to combine buffers for a single burst
  • Increase buffer sizes to improve USB burst
    • Eliminate delays associated with switching (see benchmark/README.md)
  • Move to a multi-channel DMA, interleaving channels to reduce delay
  • Added benchmark code and results to the benchmark directory

FPGA v0.143.1 (2024-06-05)

Add a 12-bit mode to overcome GPIF limitations for the bladerf2.

As a consequence of required changes to firmware,
packet mode is no longer supported.

Features:

  • bladerf2: 12bit mode added
  • bladerf2: hardware overrun checks added
  • hdl: support multiple messages per GPIF buffer and interleaving buffers

Fixes:

  • hdl: Fix off by one dual rx which also fixed some libusb timeouts

@daniel-endraws daniel-endraws requested a review from jcmartin June 5, 2024 21:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant