diff options
author | Jonathon Pendlum <jonathon.pendlum@ettus.com> | 2017-03-01 14:13:12 -0800 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2017-03-01 14:14:36 -0800 |
commit | 5ca309a86e8d99f3431bfd0116579e7d57bf64a7 (patch) | |
tree | 0bbcf66d5fc78f0ab2b3fac80e87b64405988128 /host/docs | |
parent | 888e224e40ec3ed7a55cd845ec4c06fcac11bbe2 (diff) | |
download | uhd-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.dox | 208 |
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 |