|
|
FreeCore Function #10: IntroductionShown below is the schematic representation of the NCO: This is a very high speed Numerically Controlled Oscillator/Modulator achieving an operating speed of more than 80MHz input clock frequency using an Altera FLEX 10K -3 device. The NCO Module makes extensive use of pipelining to achieve this high speed. The NCO Module provides very high frequency resolution, using a 25-bit phase accumulator/register, and a 20-bit frequency control word. The inclusion of a phase offset input let you modify the phase at any time, making the NCO Module ideal for phase modulation as well as high-precision frequency modulation. I have also provided a Start and Stop input, which enables and disables the NCO Module Wave[] output as close as possible to the waveform zero crossings. This causes minimum noise operation when enabling or disabling the waveform output. Theory of OperationThe NCO operates continuously. The Start and Stop inputs only enables or disables the actual output of the Module, normally causing a slight delay waiting for a waveform zero crossing. At every clock cycle, the 20-bit Frequency[19..0] input is added to the internal 25-bit phase accumulator register. The nine most significant bits of the phase accumulator (bits [24..16]) is fed to a 512-point sine lookup-table provided by the Sine Module also available in the FreeCore Library. The frequency span is huge, with a frequency step resolution of fSysClk / (2^25). The actual sine frequency output is given as fout = fSysClk * (Frequency[19..0])dec / (2^25). Module Parameters
NOTE: You need to copy the files COS180N.MIF and COS180P.MIF to your current working directory. Enjoy!
|
|
编辑设计: 胡晟 技术顾问: 朱仁昌 Copyright 1999-2000 PLD World http://pld.126.com |