^

AR# 33521 Digital Pre-Distortion (DPD) Reference Design - Release Notes and Known Issues

This Answer Record contains the Release Notes and Known Issues list for the Digital Pre-Distortion (DPD) reference design.

The following information is listed for each version of the core:

  • New Features
  • Supported Devices
  • Resolved Issues
  • Known Issues
Digital Pre-Distortion (DPD) Reference Design Issues

DPD Reference Design v6.0
  • Initial release in ISE 14.3 tools
New Features
  • ISE Design Suite 14.3 support
  • Extended architectures introduced to improve wideband performance
  • Optional polyphase data path to increase sample rate support
  • Hardware acceleration performance improvements
  • Various resource optimizations
  • Various sample capture enhancements
Supported Devices
  • Zynq-7000 SoC devices
  • All Series 7 devices
  • All Virtex-6 devices
Resolved Issues Known Issues
  • (Xilinx Answer 52883) Why does the DPD v6.0 Debug wrapper fail with a "non-creatable array value" error to properly generate?

DPD Reference Design v5.0
There is a v5.0 rev1 patch available in (Xilinx Answer 43128). This patch fixes the issues listed below as (Xilinx Answer 42868).
  • Initial release in ISE 13.2 tools

New Features
  • ISE 13.2 software support
  • Optional support for hardware accelerated signal alignment
  • Optional support for hardware accelerated Least Squares processing
  • Optional RX QMC processing
  • Support for FIFO ADC interface (burst mode ADC devices)
  • Added damped Newton support to multi-set DCL mode
  • Enhanced power meters for improved TDD waveform support
  • Changed QMC defaults to minimize the occurrence of alignment failure messages
  • New command to perform capture and align with TX samples after the DPD filter
  • New command to perform capture and align with TX samples before the DPD filter
  • Added user visible QMC parameters
  • Added user visible DCL parameters
Supported Devices
  • Zynq-7000*
  • Virtex-7
  • Virtex-7 XT (7vx485t)
  • Virtex-7 -1L
  • Kintex-7
  • Kintex-7 -1L
  • Artix-7*
  • Virtex-6 XC CXT/LXT/SXT/HXT
  • Virtex-6 XQ LXT/SXT
  • Virtex-6 -1L XC LXT/SXT
  • Virtex-6 -1L XQ LXT/SXT
*To access these devices in the ISE Design Suite, contact your Xilinx FAE. Resolved Issues
  • (Xilinx Answer 42868) The data sheet DS856 for the IP mentions check box setting 1, 2, or 3. Check box Setting 3 in the GUI is Missing
Known Issues
  • (Xilinx Answer 42866) Is there a testbench for the Digital Pre-Distortion(DPD)?
  • (Xilinx Answer 42868) The data sheet DS856 for the IP mentions check box setting 1, 2, or 3. Check box Setting 3 in the GUI is Missing

DPD Reference Design v4.0
  • Initial release in ISE 12.3 tools
New Features
  • ISE 12.3 software support
  • Delivered using Xilinx CORE Generator
  • One, two, four, and eight antenna support
  • Performance architecture D added for additional performance improvement
  • 7th order polynomial support
  • Optional hardware acceleration for coefficient estimation
  • Optimized design that reduces DSP48 resources significantly
Resolved Issues
  • None
Known Issues
  • (Xilinx Answer 42547) In DS811, it mentions the receive spectrum is inverted for low-side RF LO in the observation path. Is this correct?
  • (Xilinx Answer 41762) What values are returned when accessing the EXECUTEDCOMMAND and EXECUTINGCOMMAND addresses?
  • (Xilinx Answer 41958) Are there any differences between v3.0 and v4.0 in memory map address?
  • (Xilinx Answer 41189) Why do I see zeroes for imaginary coefficients in Matlab simulation coefficient file?
  • (Xilinx Answer 42047) Is there a minimum power limit on the SRX interface?
  • (Xilinx Answer 42298) The return value from the status (for example, Last Updated Status, or Last QMC Update Status,) reads "0" Why?
  • (Xilinx Answer 40660) How is the IP affected by the Spartan-6 9K Block RAM Issue?

DPD Reference Design v3.1 New Features
  • (Xilinx Answer 42298) Reading of the ODD metric and peak-expansion of each Tx during DCL process has been added.
Bug Fixes
  • Fixed CR 543208, 552808, 552809
Known Issues
  • None

DPD Reference Design v3.0 New Features
  • Now supports Virtex-5, Virtex-6, and Spartan-6 devices
  • Up to 4 antenna/datapath support
  • Predistortion correction architecture selection for cost-performance trade-off
  • More control over resource sharing and clock speeds (1 to 4 clocks/input samples)
  • Support for fs mode for srx inputs
  • Support for non-fs/4 down conversion for srx inputs
  • Improved ODD accuracy and stability
Bug Fixes
  • Fixed CR 541702, 541817
Known Issues
  • (xilinx answer 35104) CR 552808 - The example UCF file in the zip file has a type error for the timing group name. What is the correct timing group name?
  • (Xilinx Answer 34533) CR 552809 - Spartan-6 FPGA Block RAM Design Advisory - Address Space Overlap.
  • (Xilinx Answer 36852) Why do I have issues with the capture RAM?

DPD Reference Design v2.1.1 New Features
  • None
Bug Fixes
  • CR 543213 - Change to the internal coefficient scaling routine will have no impact on most installations. It fixes some performance issues observed in extremely rare cases.
Known Issues
  • None

DPD Reference Design v2.1 New Features
  • None
Bug Fixes Known Issues
  • Digital Predistortion IP uses MicroBlaze Processor by utilizing the EDK Import flow offered by System Generator for DSP.
    However, System Generator for DSP does not support HDL Simulation and "Create Testbench" capability when EDK processor block is used in a design; this is documented in (Xilinx Answer 32331).
  • When the DPD IP netlist is generated, System Generator incorrectly generates a "vcom.do" file. If a user tries to use it with a ModelSim simulator, it errors out; this is documented in (Xilinx Answer 32321).

    As a result, the DPD IP netlist currently does not support HDL Simulation. A user can choose to run a standalone DPD netlist through XST, NGDBuild, and then the NetGen tool, and generate a post-synthesis back-annotated HDL netlist, if they need some HDL simulation support for verifying their code's syntax and connection to the DPD netlist. For more information on back-annotated simulation with a MicroBlaze processor, refer to the Xilinx documentation at: http://www.xilinx.com/support/documentation/index.htm.
  • In the files generated by System Generator for the DPD design (dpd.mdl), there is a clock forwarding occurring through a black box netlist. In certain conditions, it is likely that users might see two BUFGs (one on xps_clk input or appropriate name in user's code that drives that clock input and the second on sg_splb_clk* signal). This is due to a bug in XST in ISE Design Suite 10.1sp3 and there are various workarounds documented in (Xilinx Answer 32362). The most non-intrusive workaround is used in the build subdirectory of the DPD zip file as follows:
    • Refer to the "dpd_1/2tx_wrap.xcf" file in the build subdirectory. This file is not documented in the Application Note (XAPP1128C).
    • It applies an additional attribute to one of the signals to prevent the cascaded BUFGs.
    • Users should make sure XST reads the xcf file, or merge it into their top level xcf file.
    • Users should refer to the build subdirectory for an example of how the xcf is used.
    If the user migrates to the ISE design tools 11.1, this issue does not occur and the workaround is not necessary, but it can be used for consistency with no side-effects.
  • XAPP1128 indicates that the srx_din0 and srx_din1 should be parallel input streams for fs/4 real input stream where srx_din0 should contain data at any given time which is an earlier data than the data on srx_din1. However, that is inconsistent with the design and users are advised to ensure that srx_din1 contains data at any given time which is an earlier data than the data on srx_din0.

    For example, if the srx_adc_din is the input data from ADC (sampled at 2x the input data rate) and srx_adc_clk is the synchronizing clock from ADC, a simple dual aspect Asynchronous FIFO could be used to create srx_din0 and srx_din1 data streams which are synchronized to DPD IP Core's input clock "clk" and clock enable "ce3_out".

    srx_fifo_dmux_inst : srx_fifo_dmux
    port map (
    din => srx_adc_din, -- 16 bit input data from ADCs
    rd_clk => clk,
    rd_en => ce3_out,
    rst => user_reset, -- released only after clk and
    -- ce3_out are stable
    wr_clk => srx_adc_clk,
    wr_en => '1',
    dout(15 downto 0) => srx_din0,
    dout(31 downto 16) => srx_din1,
    empty => open,
    full => open);

DPD Reference Design v2.0.1 New Features
  • Support for damped-Newton coefficients updates. When QSNL mode is selected, Damped-Newton updates are available. When the user runs DCL, it will use Least Square estimates and Damped-Newton updates for the new coefficient calculations based on signal dynamics. This feature now also helps reduce the ACLR fluctuations seen during DCL.
Bug Fixes
  • (Xilinx Answer 33448) CR 531697 Why do I see a fluctuation in the correction performance or when output power is enabled?
  • CR 517376, DCLUPDATEINPROGRESS_A[490] register never indicates a 1;
  • CR 511634, The ACLR fluctuations seen during DCL
  • CR 525726, When a user uses 2Tx design with ENABLE_EXT_RXSEL{28} command, the EXIT_DCL{18} appears to fail.
  • CR 525727 When a user uses 2Tx design and tries to run EXIT_DCL{18}, DPD IP may take a long time (~10 seconds) to respond.
  • CR 525728. Virtex-4 FPGA DPD design errors out during net listing only when using System Generator 11.1 tools.
Known Issues
DPD Reference Design v2.0 New Features
  • Initial Release
Bug Fixes
  • None
Known Issues
  • (Xilinx Answer 33448) CR 531697 Why do I see a fluctuation in the correction performance or when output power is enabled?
  • (Xilinx Answer 33449) CR 529627 Why do I see poor performance or diagnostics with Over-Drive Protection (ODP) and damped-Newton updates?
  • CR 529645 Why am I having issues with DCL Timing? See (Xilinx Answer 33451).

Child Answer Records

Answer Number Answer Title Version Found Version Resolved
45873 Digital Pre-Distortion v4.0 - For Spartan-6, the Clocks Per Sample parameter can only be set to 1 or 2 N/A N/A
45787 Logicore DPD v5.0 - In the DS856 data sheet for the addressing in Table 11, what type of addressing is this? N/A N/A
45283 Logicore DPD v5.0 - In the DS856 data sheet, is TXPOWERCOUNT used for calculation of Rx power as well? N/A N/A
43128 LogiCore Digital Pre-Distortion (DPD) v5.0 - Patch Update for the Hardware Acceleration Setting 3 N/A N/A
42868 LogiCore Digital Pre-Distortion (DPD) v5.0 - Check Box Setting 3 in the GUI is Missing N/A N/A
42547 LogiCORE Digtal Pre-Distortion(DPD) v4.0 - In DS811 it mentions the receive spectrum is inverted for low-side RF LO in the observation path. Is this correct? N/A N/A
42298 Digital Pre-Distortion (DPD) v4.x - Why does the return value from Last Updated Status or Last QMC Update Status read "0"? N/A N/A
42047 LogiCORE Digital Pre-distortion(DPD) - Is there a minimum power limit on the SRX interface? N/A N/A
41958 Logicore Digtal Pre-Distortion v4.0/v3.0 - Are there any differences between v3.0 and v4.0 in memory map address? N/A N/A
41762 LogiCORE Digital Pre-Distortion (DPD) v4.0 - What values are returned when accessing the EXECUTEDCOMMAND and EXECUTINGCOMMAND addresses? N/A N/A
41189 LogiCORE IP Digital Pre-Distortion (DPD) v4.0 - Why do I see zeroes for imaginary coefficients in Matlab simulation coefficient file? N/A N/A
40660 LogiCORE IP Digital Pre-Distortion (DPD) v4.0 - How is the IP affected by the Spartan-6 9K Block RAM Issue? N/A N/A
40276 LogiCORE IP Digital Pre-Distortion (DPD) v4.0 - How do I set the configuration parameters for the multiple set mode as described in DS811? N/A N/A
39447 LogiCORE Digital Pre-Distortion (DPD) v3.1/4.0 - Does the DPD IP have a Quadrature Modulation Correction (QMC) module on the receive path? N/A N/A
39186 Digital Pre-Distortion (DPD) v3.0/v3.1/v4.0 - How do I decode the Version registers in the DPD? N/A N/A
39097 LogiCORE IP Digital Pre-Distortion (DPD) v4.0 - How do I use the DPD IP with Analog-to-Digital Converters (ADC) which have FIFO buffers? N/A N/A
38844 Digital Pre-Distortion (DPD) Reference Design v3.x/v4.x - How do I write and read coefficients from the core? N/A N/A
38494 Logicore IP Digital Pre-Distortion (DPD) v4.0 - What is a STATUS_CAPTURE_FAILURE{-113} message? N/A N/A
38449 Logicore IP Digital Pre-Distortion (DPD) v4.0 - The DPD Product Brief mentions the core, but where can I find it? N/A N/A
38165 Digital Pre-Distortion (DPD) v3.0 - How do I drive the host interface? N/A N/A
37145 Logicore IP Digital Pre-Distortion (DPD) v4.0 - What is a ALIGN_FAILURE (-120 ) message? N/A N/A
36854 Digital Pre-Distortion (DPD) v3.0 - How do I determine the latency? N/A N/A
35104 Digital Pre-Distortion (DPD) v3.0 - Example UCF file in the ZIP file contains a typo for the timing group name N/A N/A
33451 Digital Pre-Distortion (DPD) v2.0, v2.01 - Why am I having issues with DCL Timing? N/A N/A
33449 Digital Pre-Distortion (DPD) v2.0, v2.01 - Why do I see poor performance or diagnostics with Over-Drive Protection (ODP) and damped-Newton updates? N/A N/A
33448 Digital Pre-Distortion (DPD) v2.0 - Why do I see a fluctuation in the correction performance or when output power is enabled? N/A N/A
52883 LogiCore Digital Pre-Distortion (DPD) v6.0 - Why does the DPD v6.0 Debug wrapper fail with a "non-creatable array value" error to properly generate? N/A N/A
AR# 33521
Date Created 09/16/2009
Last Updated 11/13/2012
Status Active
Type Release Notes
IP
  • Digital Pre-Distortion (DPD)
Feed Back