DDS. 16-bit Direct Digital Synthesizer / Periodic waveform generator Rev. 1.4. Key Design Features. Block Diagram. Generic Parameters.



Similar documents
DEVELOPMENT OF DEVICES AND METHODS FOR PHASE AND AC LINEARITY MEASUREMENTS IN DIGITIZERS

LogiCORE IP DDS Compiler v4.0

AES (Rijndael) IP-Cores

EC313 - VHDL State Machine Example

Non-Data Aided Carrier Offset Compensation for SDR Implementation

Taking the Mystery out of the Infamous Formula, "SNR = 6.02N dB," and Why You Should Care. by Walt Kester

LogiCORE IP AXI Performance Monitor v2.00.a

Modeling Latches and Flip-flops

Department of Electrical and Computer Engineering Ben-Gurion University of the Negev. LAB 1 - Introduction to USRP

ADS9850 Signal Generator Module

FUNDAMENTALS OF MODERN SPECTRAL ANALYSIS. Matthew T. Hunter, Ph.D.

Clock Data Recovery Design Techniques for E1/T1 Based on Direct Digital Synthesis Author: Paolo Novellini and Giovanni Guasti

Multi-Carrier GSM with State of the Art ADC technology

ALFFT FAST FOURIER Transform Core Application Notes

Final Project: Enhanced Music Synthesizer and Display Introduction

RAPID PROTOTYPING OF DIGITAL SYSTEMS Second Edition

Modeling a GPS Receiver Using SystemC

Modeling Registers and Counters

Introduction to Digital Design Using Digilent FPGA Boards Block Diagram / Verilog Examples

Dithering in Analog-to-digital Conversion

AN-756 APPLICATION NOTE One Technology Way P.O. Box 9106 Norwood, MA Tel: 781/ Fax: 781/

ANALYZER BASICS WHAT IS AN FFT SPECTRUM ANALYZER? 2-1

DRM compatible RF Tuner Unit DRT1

VME IF PHASE MODULATOR UNIT. mod

LMS is a simple but powerful algorithm and can be implemented to take advantage of the Lattice FPGA architecture.

Lab #5: Design Example: Keypad Scanner and Encoder - Part 1 (120 pts)

Application Note: Spread Spectrum Oscillators Reduce EMI for High Speed Digital Systems

USB 3.0 CDR Model White Paper Revision 0.5

Understand the effects of clock jitter and phase noise on sampled systems A s higher resolution data converters that can

A Verilog HDL Test Bench Primer Application Note

RF Network Analyzer Basics

Clocking Wizard v5.1

VCO Phase noise. Characterizing Phase Noise

Achieving New Levels of Channel Density in Downstream Cable Transmitter Systems: RF DACs Deliver Smaller Size and Lower Power Consumption

Digital Transmission of Analog Data: PCM and Delta Modulation

Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com

A Technical Tutorial on Digital Signal Synthesis

LEVERAGING FPGA AND CPLD DIGITAL LOGIC TO IMPLEMENT ANALOG TO DIGITAL CONVERTERS

Optimizing IP3 and ACPR Measurements

VIETNAM NATIONAL UNIVERSITY HOCHIMINH CITY THE INTERNATIONAL UNIVERSITY SCHOOL OF ELECTRICAL ENGINEERING

SDLC Controller. Documentation. Design File Formats. Verification

AC : PRACTICAL DESIGN PROJECTS UTILIZING COMPLEX PROGRAMMABLE LOGIC DEVICES (CPLD)

Nutaq. PicoDigitizer 125-Series 16 or 32 Channels, 125 MSPS, FPGA-Based DAQ Solution PRODUCT SHEET. nutaq.com MONTREAL QUEBEC

Clock and Data Recovery Unit based on Deserialized Oversampled Data

RF Measurements Using a Modular Digitizer

ASYNCHRONOUS COUNTERS

APSYN420A/B Specification GHz Low Phase Noise Synthesizer

How To Fix A 3 Bit Error In Data From A Data Point To A Bit Code (Data Point) With A Power Source (Data Source) And A Power Cell (Power Source)

AN-837 APPLICATION NOTE

CHAPTER 11: Flip Flops

Modeling Sequential Elements with Verilog. Prof. Chien-Nan Liu TEL: ext: Sequential Circuit

PLL Dynamic Reconfiguration Author: Karl Kurbjun and Carl Ribbing

Visual System Simulator White Paper

Performing Amplifier Measurements with the Vector Network Analyzer ZVB

Experiment # (4) AM Demodulator

EXPERIMENT 8. Flip-Flops and Sequential Circuits

9/14/ :38

FPGA Architecture for OFDM Software Defined Radio with an optimized Direct Digital Frequency Synthesizer

40G MACsec Encryption in an FPGA

VHDL Test Bench Tutorial

Digital Modulation. David Tipper. Department of Information Science and Telecommunications University of Pittsburgh. Typical Communication System

MIMO detector algorithms and their implementations for LTE/LTE-A

Application Report. 1 Introduction. 2 Resolution of an A-D Converter. 2.1 Signal-to-Noise Ratio (SNR) Harman Grewal... ABSTRACT

8-Bit Flash Microcontroller for Smart Cards. AT89SCXXXXA Summary. Features. Description. Complete datasheet available under NDA

Timing Errors and Jitter

Propagation Channel Emulator ECP_V3

Agilent Creating Multi-tone Signals With the N7509A Waveform Generation Toolbox. Application Note

Impedance 50 (75 connectors via adapters)

STUDY ON HARDWARE REALIZATION OF GPS SIGNAL FAST ACQUISITION

Manchester Encoder-Decoder for Xilinx CPLDs

Introduction to Receivers

Maximizing Receiver Dynamic Range for Spectrum Monitoring

FPGA. AT6000 FPGAs. Application Note AT6000 FPGAs. 3x3 Convolver with Run-Time Reconfigurable Vector Multiplier in Atmel AT6000 FPGAs.

Decimal Number (base 10) Binary Number (base 2)

Understanding the Effect of Uncorrelated Phase Noise on Multi-channel RF Vector Signal Generators and Analysers

Infinite Impulse Response Filter Structures in Xilinx FPGAs

Tx/Rx A high-performance FM receiver for audio and digital applicatons

Lab 1: Introduction to Xilinx ISE Tutorial

Source-Synchronous Serialization and Deserialization (up to 1050 Mb/s) Author: NIck Sawyer

Guru Ghasidas Vishwavidyalaya, Bilaspur (C.G.) Institute of Technology. Electronics & Communication Engineering. B.

RECOMMENDATION ITU-R BS.704 *, ** Characteristics of FM sound broadcasting reference receivers for planning purposes

AN-543 APPLICATION NOTE

Agilent Technologies. Generating Custom, Real-World Waveforms Integrating Test Instrumentation into the Design Process Application Note 1360

A Practical Parallel CRC Generation Method

VHDL GUIDELINES FOR SYNTHESIS

@'pproved for release by NSA on , Transparency Case# 6385~SSIFIED. Receiver Dynamics

Understanding CIC Compensation Filters

Altera Error Message Register Unloader IP Core User Guide

Adding Sinusoids of the Same Frequency. Additive Synthesis. Spectrum. Music 270a: Modulation

Experiment # 9. Clock generator circuits & Counters. Eng. Waleed Y. Mousa

AND9035/D. BELASIGNA 250 and 300 for Low-Bandwidth Applications APPLICATION NOTE

Technical Note. Micron NAND Flash Controller via Xilinx Spartan -3 FPGA. Overview. TN-29-06: NAND Flash Controller on Spartan-3 Overview

Digital Signal Controller Based Automatic Transfer Switch

AN Application Note: FCC Regulations for ISM Band Devices: MHz. FCC Regulations for ISM Band Devices: MHz

FREQUENCY RESPONSE ANALYZERS

GSM/EDGE Output RF Spectrum on the V93000 Joe Kelly and Max Seminario, Verigy

DATA SHEET. HEF40193B MSI 4-bit up/down binary counter. For a complete data sheet, please also download: INTEGRATED CIRCUITS

How To Use A Sound Card With A Subsonic Sound Card

PROGETTO DI SISTEMI ELETTRONICI DIGITALI. Digital Systems Design. Digital Circuits Advanced Topics

Transcription:

Key Design Features Block Diagram Synthesizable, technology independent VHDL IP Core 16-bit signed output samples 32-bit phase accumulator (tuning word) 32-bit phase shift feature Phase resolution of 2π/2 16 Frequency resolution of Fs/2 32 (Fs = sample frequency) Phase dithering option for improved SFDR 100 db SNR and > 110 db SFDR (with phase dithering enabled) Simultaneous SIN, COS, Square and Sawtooth outputs Optimized quarter-wave LUT for reduced area footprint Sample rates of up to 300 MHz 1 Figure 1: Direct Digital Synthesizer architecture Applications Generic Parameters Digital oscillators Digital modulation Digital up/down converters and mixers Generation of Quadrature (Complex) signals Versatile waveform generation Generic name Description Type Valid range dithering lutsize seed Enable phase dithering Use a 16-bit or 12-bit LUT (effective size) Seed for random number generator boolean TRUE/FALSE integer 16 or 12 std_logic vector 0 < seed < 2 32 Pin-out Description Pin name I/O Description Active state clk in Sample clock rising edge reset in Asynchronous reset low en in clock enable high phase_inc [31:0] in Phase increment as an unsigned 32-bit number phase_shift [31:0] in Phase shift as an unsigned 32-bit number sin_out [15:0] out Sine wave output cos_out [15:0] out Cosine wave output squ_out [15:0] out Square wave output saw_out [15:0] out Sawtooth wave output General Description The DDS IP Core is a high-precision Direct Digital Synthesizer 2 used for the generation of periodic waveforms. On each rising-edge of the sample clock, the phase in the phase accumulator is incremented by the value phase_inc. This phase is quantized to 16-bits and passed as an address to a look-up table which converts the phase into a waveform. To save resources, the look-up table is implemented as a quarter sine wave (16384 x 15-bit samples). These samples are manipulated to generate 65536 x 16-bit samples over the range 0 to 2Pi. By setting the generic parameter lutsize to 12, the size of the LUT can be reduced further to (1024 x 11-bit) if required. In addition to the quadrature outputs sin_out and cos_out, the DDS also provides square wave and sawtooth outputs: squ_out and saw_out. All output values are 16-bit signed numbers. 1 Xilinx Virtex6 FPGA used as a benchmark 2 Also known as a Numerically Controlled Oscillator (NCO) Copyright 2014 www.zipcores.com Download this VHDL Core Page 1 of 5

Phase increment The frequency of the DDS output waveform is controlled by the phase_inc signal on a clock-by-clock basis. A change in the phase increment during normal circuit operation will affect a change in the output waveform 5 sample clocks later. The phase increment may be calculated using the formula: The random number used for phase dithering is generated using a Linear Feedback Shift Register (LFSR) of order 32. The LFSR is free running and generates a random bit every sample clock in accordance with the polynomial: x 32 x 7 x 5 x 3 x 2 x 1 x 0 Φ INC = (F OUT 2 32 ) / F S Where F OUT is the desired waveform output frequency and F S is the sampling frequency. Note that an integer value of the phase increment must be used. As an example, consider a 100 MHz sample clock with a desired output frequency of 6.197 MHz. The phase increment would be calculated as (6.197 * 2 32 ) / 100 = 266159123. The minimum and maximum frequencies DDS can generate are given by the following formulas: The user may choose any number (other than zero) as an initial seed for the random number generator. Different seeds, in some cases, can change the SFDR by around +/- 1dB. Functional Timing Figure 2 shows the operation of the DDS immediately after reset. After reset goes high the DDS starts to generate the output waveforms 5 clock cycles later. Asserting the clock-enable low will stall the pipeline. Asserting clock-enable high once again will start waveform output at the next sample point in the waveform. F MIN = F S / 2 32, F MAX = F S / 2 As an example, a 100 MHz sample clock would allow a minimum DDS frequency of 0.0233 Hz. This is sometimes called the frequency resolution of the DDS. Conversely, the maximum frequency the DDS can generate is given by the Nyquist-Shannon sampling theorem (Fs/2). Phase shift The relative phase of the DDS output waveform may be controlled by the phase_shift input. This input takes the form of a 32-bit unsigned value that is added to the phase accumulator. To implement a phase shift, then the phase_shift input should be asserted for 1 clock cycle. At all other times then the phase shift must be set to zero. The phase shift in degrees is calculated using the following formula: Φ SHIFT = Δ / 360 2 32 For example, to implement a phase shift of 45 in the output waveform then the phase_shift input would be calculated as (45/360)*2 32 or 0x20000000 in hex. This value of phase shift should be asserted for one clock cycle then reset to 0x00000000. Phase dithering The process of phase quantization introduces noise on the phase signal and it produces unwanted spurious spectral components in the DDS output signal (referred to as spurs). The difference between the carrier level and the maximum level of spurs is called the Spurious Free Dynamic Range (SFDR). The DDS component alleviates this problem by adding a random number to the LSBs of the 32-bit phase accumulator before quantization. This has the effect of spreading the spurs throughout the available bandwidth, preventing spurs at the same harmonic frequencies reinforcing each other. With phase dithering enabled, an improvement of around 10 to 20 db in SFDR may be achieved. Source File Description All source files are provided as text files coded in VHDL. The following table gives a brief description of each file. Source file sincos_lut16.vhd sincos_lut12.vhd dds.vhd dds_bench.vhd Functional Testing Description SIN/COS look-up table (16-bit equivalent version) SIN/COS look-up table (12-bit equivalent version) Top-level component Top-level test bench An example VHDL testbench is provided for use in a suitable VHDL simulator. The compilation order of the source code is as follows: 1. sincos_lut16.vhd 2. sincos_lut12.vhd 3. dds.vhd 4. dds_bench.vhd Figure 2: DDS operation after reset Copyright 2014 www.zipcores.com Download this VHDL Core Page 2 of 5

The VHDL testbench instantiates the DDS component and the user may modify the phase increment and generic parameters in order to generate the desired output waveform. The example provided generates a 2.73 MHz waveform with a 100 MHz sample clock. The simulation must be run for at least 3 ms during which time the DDS will output the SIN, COS, square and sawtooth waveforms. Output samples are captured in the text file dds_out.txt. Figures 3 to 6 show plots of the resulting waveforms. Figure 3: SIN waveform output (2.73 MHz) Figure 5: Square waveform output (2.73 MHz) Figure 4: COS waveform output (2.73 MHz) Figure 6: Sawtooth waveform output (2.73 MHz) Copyright 2014 www.zipcores.com Download this VHDL Core Page 3 of 5

Performance The following plots demonstrate the effect of phase dithering on the output power spectra. The plots show the mean-squared power estimate of the SIN output samples for a 100MHz sample clock and a 2.73 MHz output waveform. The size of the LUT has been set to 16-bits. The following table summarizes the estimated values for SFDR and SNR for the 16-bit and 12-bit LUT versions of the DDS. DDS PERFORMANCE ESTIMATES Version SNR SFDR (no dithering) SFDR (with dithering) 16-bit LUT ~100 db ~95 db ~115 db 12-bit LUT ~75 db ~70 db ~90 db Synthesis The files required for synthesis and the design hierarchy is shown below: dds.vhd sincos_lut16.vhd sincos_lut12.vhd The VHDL core is designed to be technology independent. However, as a benchmark, synthesis results have been provided for the Xilinx Virtex 6 and Spartan 6 FPGA devices. Synthesis results for other FPGAs and technologies can be provided on request. Figure 7: Single 2.73 MHz tone - dithering disabled The SFDR for the non phase-dithered case (Figure 7) exhibits an SFDR of 96.3 db with the largest magnitude spur of -9.1 db at around 16 MHz. Figure 8 shows the same 2.73 MHz tone with phase-dithering enabled. The SFDR is 114.9 db with the largest magnitude spur of -27.7 db at around 8 MHz. This is an improvement in SFDR of 18.6 db. Note that setting the lutsize to 12-bits will result in a much smaller LUT implementation and will greatly reduce the internal RAM resources required. Likewise, the implementation will be smaller if the dithering function is disabled. Trial synthesis results are shown with the generic parameters set to: dithering = true, lutsize = 12, seed = 0x7AF1093D. Resource usage is specified after Place and Route. VIRTEX 6 Resource type Slice register 217 Slice LUT 162 Block RAM 1 DSP48 0 Occupied slices 65 Clock frequency (approx) Quantity used 350 MHz SPARTAN 6 Resource type Quantity used Slice register 213 Slice LUT 162 Block RAM 2 DSP48 0 Occupied slices 68 Clock frequency (approx) 200 MHz Figure 8: Single 2.73 MHz tone - dithering enabled Copyright 2014 www.zipcores.com Download this VHDL Core Page 4 of 5

Revision History Revision Change description Date 1.0 Initial revision 22/05/2008 1.1 Modified key design features 06/11/2008 1.2 Added support for a smaller 12-bit LUT implementation. Updated synthesis results 17/01/2012 1.3 Added support for phase shifts. Updated synthesis results for Xilinx 6 series FPGAs 08/06/2012 1.4 Updated block diagram 03/04/2014 Copyright 2014 www.zipcores.com Download this VHDL Core Page 5 of 5