OpenCores

NCO / Periodic Waveform Generator

Project maintainers

Details

Name: waveform_gen
Created: Oct 22, 2008
Updated: Jul 26, 2011
SVN Updated: Mar 10, 2009
SVN: Browse
Latest version: download (might take a bit to start...)
Statistics: View
Bugs: 0 reported / 0 solved
Star5you like it: star it!

Other project properties

Category:DSP core
Language:VHDL
Development status:Stable
Additional info:FPGA proven
WishBone compliant: No
WishBone version: n/a
License: GPL

Description

This core is a straight forward implementation of a Numerically Controlled Oscillator (NCO) - also referred to as a Direct Digital Synthesizer (DDS). In addition to generating the standard SIN/COS output waveforms, it also generates Square and Sawtooth outputs with very little extra resource. NCOs form an essential component in many Digital Comms applications - especially in digital modulation, up/down conversion and the generation of complex signals. This core is also great for test-benches as it provides a simple way to generate input stimuli for Filters, DSP circuits etc. The following Mean-square plot shows an example output tone of 1.7MHz for a 100MHz sample frequency. The NCO pdf datasheet fully documents how to use and configure the NCO core.

NCO mean-square spectrum

Features

- 12-bit signed output data samples
- 32-bit phase accumulator
- Phase resolution of 2Pi/2^12
- Frequency resolution of Fs/2^32 (Fs = sample frequency)
- ~70 dB Signal-to-Noise Ratio (SNR)
- ~70 db Spurious Free Dynamic Range (SFDR)
- Simultaneous SIN, COS, SQUARE and SAWTOOTH outputs
- 2 clock-cycle latency
- Sample rates of 500MHz or better (Xilinx Virtex 5 / Altera Stratix III)

Status

- Basic version fully tested and complete
- Future optimizations to improve SNR/SFDR will be considered

Help and Support

Simon Doherty is a Senior Design Consultant at ZIPcores If you require further assistance regarding the implementation of this core, you may contact me directly via my Opencores email alias at sdoherty@opencores.org. Alternatively you may contact me through customer support at ZIPcores.

Zipcores IP Cores