aboutsummaryrefslogtreecommitdiffstats
path: root/host/docs
diff options
context:
space:
mode:
authorJonathon Pendlum <jonathon.pendlum@ettus.com>2017-03-01 14:13:12 -0800
committerMartin Braun <martin.braun@ettus.com>2017-03-01 14:14:36 -0800
commit5ca309a86e8d99f3431bfd0116579e7d57bf64a7 (patch)
tree0bbcf66d5fc78f0ab2b3fac80e87b64405988128 /host/docs
parent888e224e40ec3ed7a55cd845ec4c06fcac11bbe2 (diff)
downloaduhd-5ca309a86e8d99f3431bfd0116579e7d57bf64a7.tar.gz
uhd-5ca309a86e8d99f3431bfd0116579e7d57bf64a7.tar.bz2
uhd-5ca309a86e8d99f3431bfd0116579e7d57bf64a7.zip
docs: Added FPGA functional verification procedures
Diffstat (limited to 'host/docs')
-rw-r--r--host/docs/rd_testing.dox208
1 files changed, 208 insertions, 0 deletions
diff --git a/host/docs/rd_testing.dox b/host/docs/rd_testing.dox
index 923cfa573..1d05bc94e 100644
--- a/host/docs/rd_testing.dox
+++ b/host/docs/rd_testing.dox
@@ -210,6 +210,214 @@ Failing tests can be debugged by checking the waveform in a Vivado GUI by runnin
Go to <fpga-dir>/usrp3/ and run 'build.py xsim all'. All tests should report 'PASS'.
+\section rdtesting_fpgadspverif FPGA DSP Verification
+
+| Test Code | Device | Peripherals | Manual Test Procedure | Automatic Test Procedure |
+|--------------------------|---------------|-------------|------------------------------------|----------------------------------|
+| FPGADSPVERIF-X310-HG-v1 | USRP X310 | 2x UBX | \ref rdtesting_fpgadspverif_manual | \ref rdtesting_fpgadspverif_auto |
+| FPGADSPVERIF-X310-XG-v1 | USRP X300 | 2x UBX | \ref rdtesting_fpgadspverif_manual | \ref rdtesting_fpgadspverif_auto |
+| FPGADSPVERIF-X300-HG-v1 | USRP X310 | 2x UBX | \ref rdtesting_fpgadspverif_manual | \ref rdtesting_fpgadspverif_auto |
+| FPGADSPVERIF-X300-XG-v1 | USRP X300 | 2x UBX | \ref rdtesting_fpgadspverif_manual | \ref rdtesting_fpgadspverif_auto |
+| FPGADSPVERIF-E310-SG1-v1 | USRP E310 SG1 | None | \ref rdtesting_fpgadspverif_manual | \ref rdtesting_fpgadspverif_auto |
+| FPGADSPVERIF-E310-SG3-v1 | USRP E310 SG3 | None | \ref rdtesting_fpgadspverif_manual | \ref rdtesting_fpgadspverif_auto |
+
+\subsection rdtesting_fpgadspverif_requirements Requirements
+
+- Signal generator and spectrum analyzer
+- X300 & X310 with 2x UBX daughterboard
+- E310 SG1 & SG3 with SSH access
+
+\subsection rdtesting_fpgadspverif_manual FPGA DSP Verification: Manual Test Procedure
+
+This procedure tests the DDC and DUC signal quality and the block's capability
+to change sample rate while streaming.
+
+#### RX testing
+
+1. Run calibration on device, if applicable
+2. Using a signal generator, inject a sine tone into RX channel 0 at 915.5 MHz @
+ -40 dBm
+3. Inspect the received spectrum using `uhd_fft`
+ - X3x0: `uhd_fft -f 915e6 -s 10e6 -g 10`
+ - E3xx: `uhd_fft -f 915e6 -s 2e6 -g 50`
+ - Embedded devices will require either using network mode or using X
+ forwarding over ssh to run the app natively
+4. In the GUI, inspect the spectrum. There should be a strong tone at the test
+ tone frequency. There may be a small tone at the carrier frequency due to DC
+ offset and a quadrature image due to IQ imbalance.
+5. Check the input tone frequencies outlined below. The tone should shift from
+ left to right as the frequency changes and may have some amplitude variation,
+ especially at the band edges.
+ - X3x0: 910 MHz to 920 MHz in 1 MHz steps
+ - E3xx: 914 MHz to 916 MHz in 200 kHz steps
+6. Set input tone back to 915.5 MHz. Check the sampling rate as outlined below.
+ The spectrum should reflect the change in sample rate.
+ - X3x0: 1, 5, 20, 33.333, 50, 66.666, 100, 200 MHz
+ - E3x0: 0.1, 0.5, 1, 1.143, 1.684 MHz
+7. Repeat on each RX channel of the device.
+8. This test fails if:
+ - DC offset and IQ imbalance tones are unusally large
+ - There are any other strong tones or spectrum distortion
+ - The spectrum changes significantly between frequencies or sample rates
+ - An initial transient distortion is acceptable
+ - Amplitude variation on the order of +/-10 dB is acceptable
+ - Console reports any of the following:
+ - Overruns 'O' if continuous and not due to host computer's lack of
+ processing performance
+ - Dropped packets 'D'
+ - Sequence number errors 'S'
+ - Timeouts
+
+#### TX testing
+
+1. Run calibration on device, if applicable
+2. Using `uhd_siggen_gui`, generate a sine tone TX channel 0 at 915.5 MHz:
+ - X3x0: `uhd_siggen_gui -f 915e6 -s 10e6 -g 10 -x 500e3 --sine`
+ - E3xx: `uhd_siggen_gui -f 915e6 -s 2e6 -g 50 -x 500e3 --sine`
+3. Using a spectrum analyzer, inspect the output spectrum. There should be a
+ strong tone at the test tone frequency. There may be a small tone at the
+ carrier frequency due to DC offset and a quadrature image due to IQ
+ imbalance.
+4. Using the GUI, test the follow offset frequencies. The tone should shift from
+ left to right as the frequency changes and may have some amplitude variation,
+ especially at the band edges.
+ - X3x0: -5 to +5 MHz in 1 MHz steps
+ - E3xx: -1 to +1 MHz in 200 kHz steps
+5. Set output tone offset back to 500e3. Change sampling rate as outlined below.
+ The spectrum should not significantly differ between sample rates.
+ - X3x0: 1, 5, 20, 33.333, 50, 66.666, 100, 200 MHz
+ - E3x0: 0.1, 0.5, 1, 1.143, 1.684 MHz
+6. Repeat on each TX channel of the device
+7. This test fails if:
+ - DC offset and IQ imbalance tones are unusually large
+ - There are any other strong tones or spectrum distortion
+ - The spectrum changes significantly between sample rates
+ - An initial transient distortion is acceptable
+ - Console reports any of the following:
+ - Underruns 'U' if continuous and not due to host computer's lack of
+ processing performance
+ - Late packets 'L'
+ - Sequence number errors 'S'
+
+\subsection rdtesting_fpgadspverif_auto FPGA DSP Verification: Automatic Test Procedure
+
+tbd
+
+\section rdtesting_fpgafuncverif FPGA Functional Verification
+
+| Test Code | Device | Peripherals | Manual Test Procedure | Automatic Test Procedure |
+|---------------------------|---------------|-------------|-------------------------------------|-----------------------------------|
+| FPGAFUNCVERIF-X310-HG-v1 | USRP X310 | 2x UBX | \ref rdtesting_fpgafuncverif_manual | \ref rdtesting_fpgafuncverif_auto |
+| FPGAFUNCVERIF-X310-XG-v1 | USRP X300 | 2x UBX | \ref rdtesting_fpgafuncverif_manual | \ref rdtesting_fpgafuncverif_auto |
+| FPGAFUNCVERIF-X300-HG-v1 | USRP X310 | 2x UBX | \ref rdtesting_fpgafuncverif_manual | \ref rdtesting_fpgafuncverif_auto |
+| FPGAFUNCVERIF-X300-XG-v1 | USRP X300 | 2x UBX | \ref rdtesting_fpgafuncverif_manual | \ref rdtesting_fpgafuncverif_auto |
+| FPGAFUNCVERIF-E310-SG1-v1 | USRP E310 SG1 | None | \ref rdtesting_fpgafuncverif_manual | \ref rdtesting_fpgafuncverif_auto |
+| FPGAFUNCVERIF-E310-SG3-v1 | USRP E310 SG3 | None | \ref rdtesting_fpgafuncverif_manual | \ref rdtesting_fpgafuncverif_auto |
+
+The FPGA functional verification tests exercise the Digital Downconverter (DDC),
+Digital Upconverter (DUC), and Radio Core RFNoC blocks.
+
+\subsection rdtesting_fpgafuncverif_requirements Requirements
+
+- X300 & X310 with two daughterboards
+ - 2x UBX recommended
+ - HG tests require a single 10 GigE connection, XG requires two for the 2x RX
+ 200 MSPS test
+ - 1 GigE and PCIe adapters and cabling for optional tests
+- E310 SG1 & SG3 with SSH access
+
+\subsection rdtesting_fpgafuncverif_manual FPGA Functional Verification: Manual Test Procedure
+
+This procedure verifies that the DDC, DUC, and Radio Core can run at various sample
+rates and channel configurations without any data flow issues.
+
+1. Run `benchmark_rate` using the parameters outlined in the tables below
+2. Unless otherwise noted, to pass each test:
+ - Benchmark rate must run without reporting any of the following:
+ - Underruns 'U'
+ - Overruns 'O'
+ - Dropped packets 'D'
+ - Sequence number errors 'S'
+ - Late commands 'L'
+ - Timeouts
+ - Appropriate TX/RX LEDs must be illuminated
+3. Unless specified in 'Notes' column, use default values for unlisted
+ parameters
+4. Example commands:
+ - X3x0: `benchmark_rate --tx_rate 1e6 --rx_rate 1e6 --channels 0,1 --duration 120`
+ - E3xx: `benchmark_rate --args="master_clock_rate=10e6" --tx_rate 1e6 --rx_rate 1e6 --channels 0,1 --duration 120`
+
+#### USRP X3x0: 10 GigE Interface
+
+- Required images to test: X310 HG
+- Optional images to test: X310 XG, X300 HG, X300 XG
+- Note: On TX tests, initial Us within the first 5 seconds can be ignored and do not fail the test
+
+| Channels | Sample Rates | Duration | Notes |
+|---------------|--------------------------|----------|--------------------|
+| 1x RX | 10e6, 50e6, 100e6, 200e6 | 60 | Test both channels |
+| 2x RX | 10e6, 50e6, 100e6 | 60 | |
+| 2x RX | 200e6 | 60 | 2x 10G, XG only |
+| 1x TX | 10e6, 50e6, 100e6, 200e6 | 60 | Test both channels |
+| 2x TX | 10e6, 50e6, 100e6 | 60 | |
+| 1x RX & 1x TX | 10e6, 50e6, 100e6 | 60 | Test both channels |
+| 1x RX & 1x TX | 200e6 | 60 | Use channel 0 |
+| 2x RX & 2x TX | 10e6, 50e6 | 60 | |
+| 1x RX & 1x TX | 200e6 | 3600 | Use channel 1 |
+| 2x RX & 2x TX | 100e6 | 3600 | |
+
+#### USRP X3x0: 1 GigE Interface
+
+- Required images to test: None
+- Optional images to test: X310 HG, X310 XG, X300 HG, X300 XG
+- Note: On TX tests, initial Us within the first 5 seconds can be ignored and do not fail the test
+
+| Channels | Sample Rates | Duration |
+|---------------|-------------------------|----------|
+| 1x RX | 1e6, 10e6, 25e6, 50e6 | 60 |
+| 2x RX | 1e6, 10e6, 25e6 | 60 |
+| 1x TX | 1e6, 10e6, 25e6, 50e6 | 60 |
+| 2x TX | 1e6, 10e6, 25e6 | 60 |
+| 1x RX & 1x TX | 1e6, 10e6, 25e6, 50e6 | 60 |
+| 2x RX & 2x TX | 1e6, 10e6, 25e6 | 60 |
+
+#### USRP X3x0: PCIe Interface
+
+- Required images to test: None
+- Optional images to test: X310 HG, X310 XG, X300 HG, X300 XG
+- Note: On TX tests, initial Us within the first 5 seconds can be ignored and do not fail the test
+
+| Channels | Sample Rates | Duration |
+|---------------|--------------------------|----------|
+| 1x RX | 10e6, 50e6, 100e6, 200e6 | 60 |
+| 2x RX | 10e6, 50e6, 100e6 | 60 |
+| 1x TX | 10e6, 50e6, 100e6, 200e6 | 60 |
+| 2x TX | 10e6, 50e6, 100e6 | 60 |
+| 1x RX & 1x TX | 10e6, 50e6, 100e6 | 60 |
+| 1x RX & 1x TX | 200e6 | 60 |
+| 2x RX & 2x TX | 10e6, 50e6 | 60 |
+
+Note: On TX tests, initial Us within the first 5 seconds can be ignored and do not fail the test
+
+#### USRP E3xx (SG3 Required, SG1 Optional)
+
+| Channels | Master Clock Rates | Sample Rate | Duration | Notes |
+|---------------|-------------------------|-------------|----------|--------------------|
+| 1x RX | 1e6, 10e6, 61.44e6 | 1e6 | 60 | Test both channels |
+| 1x TX | 1e6, 10e6, 61.44e6 | 1e6 | 60 | Test both channels |
+| 2x RX | 1e6, 10e6, 30.72e6 | 1e6 | 60 | |
+| 2x TX | 1e6, 10e6, 30.72e6 | 1e6 | 60 | |
+| 1x RX & 1x TX | 1e6, 10e6, 61.44e6 | 1e6 | 60 | Test both channels |
+| 1x RX & 1x TX | 61.44e6 | 1e6 | 60 | Use channel 1 |
+| 2x RX & 2x TX | 1e6, 10e6, 30.72e6 | 1e6 | 60 | |
+| 1x RX & 1x TX | 61.44e6 | 1e6 | 3600 | Use channel 0 |
+| 2x RX & 2x TX | 30.72e6 | 1e6 | 3600 | |
+
+Note: Any sample rate warnings can be ignored.
+
+\subsection rdtesting_fpgafuncverif_auto FPGA Functional Verification: Automatic Test Procedure
+
+tbd
\section rdtesting_defining Defining R&D Tests