NCO
Written by: Holguer A Becerra
Requerimientos:
Para entender el modulo del NCO debemos tener como referencia la documentación que brinda Altera:
DDS Tutorial en Espanol Revista Espanol de Electronica.
Desarrollo:
Tenga una plantilla generada desde el system builder de la DE0-NANO.
Ahora en Quartus II abra el megawizard y cree un elemento "DSP->Signal Generation->NCO" nuevo que usted llamara "mi_nco" y lo creara en Verilog HDL.
Ahora se debe parametrizar el modulo para esto debe oprimir en el boton "Parameterize" de la nueva ventana emergente.
Modifique las diferentes pestañas de la ventana emergente para que se vea como aparece a continuación y luego oprima el botón finish
Ahora oprima el boton "Generate", espere y oprima el boton "Exit" y nuevamente espere y oprima "yes"
Ahora instancia el modulo en la plantilla del proyecto Quartus de la siguiente manera, descargue el archivo "mono_dac.v":
Al bus de 32 bits "div_freq_nco" se le están asignando unos valores fijo que variaran a la entrada del "mi_nco->phi_inc_i" de acuerdo a esto se generara una señal a la salida "f_sin" y "f_cos" a una determinada frecuencia en forma de SENO o COSENO, la formula para calcular la frecuencia de salida es la siguiente y se puede encontrar en detalle el datasheet del NCO.
Una vez entienda la relación de los valores, genere el proyecto y programe la FPGA con el respectivo .SOF, se dará cuenta que al variar los SW usted escuchara 1 Octava del Piano, en variaciones de SENO y COSENO, si conecta un audífono a la salida GPIO[11].
Puede utilizar el siguiente software para usar la entrada de audio "Line In" de su PC como Osciloscopio o Analizador de espectro, para ver la señal de salida de mono_dac(varie Volume a 3'd5 para no saturar el canal de audio).
Puede Descargar la Solución para guiarse.