A numerically controlled oscillator (NCO) is used for on-chip generation of major signals like cosine, sine, linear frequency modulated (LFM), Gaussian etc. in system on chips (SoCs). These signals can be generated by two ways, either by analog circuitry or by digital circuitry. In a digital system, these signals are generated using numerically controlled oscillator (NCO) and then they are converted by an digital to analog converter (DAC).
An NCO block is a digital counter part of an analog oscillator circuit. There are two types of NCO designs available. In one type of NCO block, sinusoidal values are computed by a dedicated hardware like coordinate rotation digital computer (CORDIC). In another type of NCO block, a look up table (LUT) is used to store a sinusoidal signal of fundamental frequency () and sinusoidal signals of other frequencies are generated using the sinusoidal signal which is stored.
LUT based NCO blocks are very simple but have some disadvantages. Like they are not capable of generating sinusoidal signals of any frequency. But LUT based NCOs are hardware efficient than the other type of NCO block. Thus LUT based NCOs are mostly used because of their simplicity. In this work, an efficient LUT based NCO block is designed to generate cosine or sinusoidal signals. The LUT based NCO block is implemented on Artix 7 field programmable gate array (FPGA).
More details about this product can be found here