NCO IP Core: User Guide

ID 683406
Date 11/06/2017
Public
Document Table of Contents

3.8.3. NCO IP Core Timing Diagrams

Figure 12. Single-Cycle Per Output Timing Diagram

All NCO architectures, except for serial CORDIC and multi-cycle multiplier-based architectures, output a sample every clock cycle. After the clock enable is asserted, the oscillator outputs the sinusoidal samples at a rate of one sample per clock cycle, following an initial latency of L clock cycles. The exact value of L varies across architectures and parameterizations.

Note: For the non-single-cycle per output architectures, the optional phase and frequency modulation inputs need to be valid at the same time as the corresponding phase increment value. The values should be sampled every 2 cycles for the two-cycle multiplier-based architecture and every N cycles for the serial CORDIC architecture, where N is the magnitude precision.
Figure 13. Two-Cycle Multiplier-Based Architecture Timing Diagram

After the clock enable is asserted, the oscillator outputs the sinusoidal samples at a rate of one sample for every two clock cycles, following an initial latency of L clock cycles. The exact value of L depends on the parameters that you set.

Figure 14. Serial CORDIC Timing Diagram with N = 8
Note: The fsin_0 and fcos_0 values can change while out_valid is low.

After the clock enable is asserted, the oscillator outputs sinusoidal samples at a rate of one sample per N clock cycles, where N is the magnitude precision. The IP core has an initial latency of L clock cycles; the exact value of L depends on the parameters that you set.

Table 12.  Latency Values for Different Architectures
Architecture Variation Latency 1, 2
Base Minimum Maximum
Small ROM all 7 7 13
Large ROM all 4 4 10
Multiplier-Based Throughput = 1, Logic cells 11 11 17
Multiplier-Based Throughput = 1, Dedicated, Special case 3 8 8 14
Multiplier-Based Throughput = 1, Dedicated, Not special case 10 10 16
Multiplier-Based Throughput = 1/2 15 15 26
CORDIC Parallel 2N + 4 20 4 74 5
CORDIC Serial CORDIC 2N + 2 18 6 258 7
Figure 15. Multi-Channel NCO Timing Diagram with M = 4. The IP core sequentially interleaves and loads input phase increments for each channel, P k

The phase increment for channel 0 is the first value read in on the rising edge of the clock following the de-assertion of reset_n (assuming clken is asserted) followed by the phase increments for the next (M-1) channels. The output signal out_valid is asserted when the first valid sine and cosine outputs for channel 0, S 0, C 0, respectively are available.

The output values S k and C k corresponding to channels 1 through (M-1) are output sequentially by the NCO. The outputs are interleaved so that a new output sample for channel k is available every M cycles.

1 Latency = base latency + dither latency+ frequency modulation pipeline + phase modulation pipeline (×N for serial CORDIC).
2 Dither latency = 0 (dither disabled) or 2 (dither enabled).
3 Special case: (9 <= N <= 18 && WANT_SIN_AND_COS).
4 Minimum latency assumes N = 8.
5 Maximum latency assumes N = 32
6 Minimum latency assumes N = 8.
7 Maximum latency assumes N = 32