Practica #2(MegaWizard)
for more visit: www.fpgalover.com
If you like my FREE FPGA tutorials, buy me a coffee, or a biscuit or whatever you like.
Written by: Holguer A Becerra
Nota: Esta practica fue realizada basada en la plataforma DE0-NANO, en este caso usted usara la plataforma DE2-115 y debera adaptarla a esta
Requisitos:
Practica #1.
Diapositivas hasta el 4 de febrero.
Procedimiento:
Utilizando el System builder se crea una plantilla principal la cual utilizaremos para aprender a usar la herramienta Megawizard.
Ahora se abre la plantilla utilizando la versión de Quartus que tengamos.
Una vez abierta la plantilla procedemos a it al Menu Tools->Megawizard
Esperamos a que salga el ayudante Megawizard y seleccionamos "Create a new custom megafunction variation", se oprime siguiente y aparecerá una ventana donde se debe seleccionar "Verilog HDL" y seguido de esto el modulo hardware que se quiere usar en el proyecto, en este caso vamos a escoger primero un conversor de Int a Float, y una RAM de dos puertos.
Para el primer caso seleccionaremos la Megafunction de tipo arithmetic "ALTFP_CONVERT" y le damos el nombre de int2float, damos siguiente.
seguido de esto aparecerá una ventana de configuración, seleccionamos en "Operation mode" el tipo "An integer to a floating point" y el "Integer Data" se deja en 32 bits
se da siguiente y "Output floating point Settings" se deja en Single Precision (32 bits).
se da siguiente y en "Optional inputs" se deja sin seccionar, luego se da de nuevo siguiente, otra vez siguiente hasta llegar al "Summary" y se oprime en Finalizar.
Se oprime Yes para incluir el modulo a la plantilla de nuestro proyecto.
Ahora si se va a la carpeta del proyecto, se debe buscar el achivo "int2float_inst.v" el cual contiene la instanciación del modulo que se ha creado utilizando el Megawizard.
Se debe modificar el codigo de la plantilla para agregar el modulo creado y de esa manera poder probarlo.
Ahora genere el RTL de la descripción de HW para segurar que el código coincide con el hardware del diagrama.
Pruebe el circuiito utilizando la DE0-NANO y evalue:¿Qué hace el circuito?, ¿Lo hace de forma correcta?, ¿cual es la conversión del numer 5?8 a IEEE754 single precision?, el ¿El valor de la conversión coincide con el del modulo?
Utilice el Datasheet del modulo ALTFP_CONVERT para evaluar cuantos CLOCK_50 necesita para asegurar una conversión del numero.
Como se hizo al agregar el modulo ATLFP_CONVERT en los pasos anteriores se debe agregar un modulo Megawizard de tipo "Memory Compiler" RAM:2-PORT
llamela sdram_ejemplo.
ahora oprima en siguiente y configure el modulo RAM:2-PORT hasta que sea igual al que se muestra en la siguiente imagen:
Después de configurar la RAM, generala y agréguela al proyecto.
Compruebe que efectivamente la RAM guarda datos en una dirección especifica y lee datos de esa dirección especifica.
¿Como barrería esa memoria?
¿Para qué seria util usar este tipo de RAM?, ¿Que planetaria?
¿Como calcularía el promedio de una señal entrante utilizando este modulo de RAM?
investigue ¿qué es un filtro promediador?.
Ahora es su turno de experimentar, ¿Para qué seria útil implementar la Megafunction NCO? ¿Para que seria útil implementar la Megafunction PLL?
¿Por qué usar Megafunctions de Altera en vez de Descripción de Hardware convencional?
Ir a Parte 2, para aprender a usar NCO.
for more visit: www.fpgalover.com
If you like my FREE FPGA tutorials, buy me a coffee, or a biscuit or whatever you like.