Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.
An NCO (Numerically Controlled Oscillator) is a digital Oscillator whose frequency can be Controlled (by a Number), analogously as the frequency of a VCO can be controlled by a Voltage.
Regards
Z
Hi,
1) You will find lot of information on this in Xilinx or Altera websites
2) NCOs are used for generation of variable frequency clocks. For eg. If you are tracking a signal, the frequency may change due to doppler and the NCO helps in changing the local carrier.
3) NCOs are conceptually very simple. You accumulate a number based on the desired frequency and the carry generated is the desired signal. Accumulation is done at fudamental frequency from which the signal has to be derived.
four years ago, i use rom compress algorithm to realize sine wave lookup table. now, for the FPGA's ram blocks being getting more and more bits, i only store 1/4 sine wave for a LUT.
for example, you can realize such a nco only cost one ram block by use spartan 3 series fpga:
1) sine and cosine two channel output
2) each of the output is 8 bit width
3) phase address width is 12bit, say, the LUT has 4096 units, each units is 8 bit width.
As I know DDS, DDFS and NCO are all the same!
for implementation u need an accumulator pluse a look up table but for higher resulation and lower memory requirement some method for compression is used such as linear interpolation or higher order ones or like taylor series etc...
the method of compression is ranked with compression ratio, lspur level generation and processing power (more or less propertional to power consumption!) .
NCO is the digital technic to calculate phase of repeitive frequency in fraction of required hertz (it the technic to chage the frequency) and use phase as index to pick amplitude from (sine or any shape) wave table,
fast, but has accuracy/table size tradeoff.
But cordic algo. is the technic to calculate sine (or others transcandency function) which will give the value of sinewave without table (sequential phase, not random). no table, small, slower.
NCO,DDS,DDFS all are the same concepts.
u can easily generate and NCO using Xilinx tools and test in any FPGA hardware, as they have NCO ip cores.
it's just a matter of entering the parameters depending on ur resolution.
else, if u want to generate it thrg the simulink and port it to FPGA, thatz also easy with the new tool"systemGenerator". where this NCO is availble as an FPGA blockset. just Drag and drop this block and model it.
This type of controller is the digital technic to calculate phase of repeitive frequency in fraction of required hertz and use phase as index to pick amplitude from (sine or any shape) wave table,
fast, but has accuracy.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.