You are on page 1of 12

GUA N05 MEMORIAS ROM USANDO QUARTUS II EMPLEO DE MEGAFUNCIONES

OBJETIVO Simular el uso de memorias ROM mediante Quartus II Uso de megafunciones en Quartus II

MATERIAL Memoria EPROM 8 Resistencias de 220 Ohms para los leds de salida del circuito. 1 Registro PIPO con flip flops D para sincronizar la memoria EPROM. Programador Manual de la memoria EPROM para programarla en fsico.

EQUIPO Equipo de cmputo con Quartus II

PROCEDIMIENTO
1. Abrir el programa Quartus II

2. Abrir un proyecto de diagrama esquemtico

3. Abrir una megafuncin lpm_rom

4. Oprimir OK y saldr la siguiente pantalla. Se elige el tipo de archivo de salida que se crear. Elegir por lo conocido: VHDL

5. Configurar los puertos y parmetros de la memoria

6. Configurar el clock, registros

7. Inicializar la memoria mediante un archivo .hex o .mif. stos archivos contienen la informacin a programar en la memoria. Los archivos .hex pueden ser generados por un software llamado WinHex. Una vez generado el archivo .hex apretar BROWSE para buscarlo dentro de su ordenador. Al hacer click el nombre del archivo quedar registrado en el Quartus II para la simulacin de la ROM creada. Vale la pena remarcar que no se debe utilizar el mismo nombre que el del proyecto para nombrar al LPM_FILE pues afectara la ejecucin del programa. El archivo .hex como todos los anteriores se deberan guardar en el mismo subdirectorio en que esta nuestro proyecto pues a veces se presenta otro subdirectorio no deseado debido a que uno consult una informacin en ese subdirectorio y ste permanecer seleccionado hasta que se le cambie al de nuestro proyecto.

8. Apretar NEXT dos veces ms y oprimir FINISH

9. Una vez creada la memoria, completar el esquemtico con las entradas y salidas correspondientes. 10. Compilar el esquemtico creado haciendo clic sobre la flecha morada hacia la derecha. 11. Luego la asignacin de pines, recompilando el archivo *.bdf

12. Generar su archivo *.vwf para graficar el diagrama de tiempo. 13. Ejecutar el diagrama de tiempo para un esquemtico del sumador Mealy y Moore de la gua anterior. 14. Para simular el fsico del esquemtico debes cargar en el PROTEUS ISIS el archivo *.hex despus de convertirlo a *.bin ACTIVIDADES COMPLEMENTARIAS 1. Implementar un sistema digital que funcione como una calculadora con las 4 operaciones fundamentales (suma, resta, multiplicacin y divisin). Utilice memorias y simulacin en Quartus II. (ste circuito es conocido como una Unidad Aritmtico Lgica ALU, la cual es el corazn de un microprocesador). 2. Simule en Proteus ISIS el circuito de la pregunta 1.

GUA N06 GENERADOR RAM USANDO QUARTUS II EMPLEO DE MEGAFUNCIONES CIRCUITOS AVANZADOS CON WINCUPL
OBJETIVO Simular el uso de memorias RAM mediante Quartus II Uso de megafunciones en Quartus II Realizacin de diseos secuenciales y mquinas de estado (ASM) con WinCUPL

MATERIAL 8 Resistencias de 220 Ohms para los leds de salida del circuito. 1 Registro PIPO con flip flops D para sincronizar la memoria EPROM. Programador Manual de la memoria EPROM para programarla en fsico.

EQUIPO Equipo de cmputo con Quartus II

PROCEDIMIENTO
Experiencia 1 1. Implementar un generador de secuencia con memoria RAM, con la data que proporciona un contador ROM. La salida del generador RAM debe ser bloqueada durante un tiempo configurable, sin alterar la cuenta del contador ROM. 2. Haga los archivos .hex correspondientes en el HxD Editor 3. Simule este proceso en Proteus Isis. Experiencia 2 1. Diseo y sntesis de una memoria RAM utilizando una descripcin VHDL y sntesis sobre un dispositivo FPGA utilizando su lgica interna estndar.

Se pretende implementar sobre un dispositivo FPGA la memoria RAM esttica representada en la figura. Se trata de una memoria con A lneas de direcciones y D lneas para entrada y salida de datos. La escritura de un dato en una posicin de memoria es sncrona, controlada por el flanco positivo del reloj de escritura WCLK; la lectura de datos es asncrona. Dispone de una entrada de habilitacin /CE de modo que cuando se encuentra inactiva las salidas de datos permanecen en alta impedancia (HZ). La seal R/W habilita la lectura cuando se encuentra a nivel H o la escritura en la memoria cuando toma nivel L. Una posible descripcin del bloque de memoria se muestra library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity SRAM is generic ( A : integer := 8; D : integer := 8 ); port ( Address : in std_logic_vector (A-1 downto 0); Data : inout std_logic_vector (D-1 downto 0); CLK : in std_logic; CE : in std_logic; RW : in std_logic ); end SRAM; architecture beh of SRAM is type tipo_RAM is array(2**A-1 downto 0) of std_logic_vector (D-1 downto 0); signal ram_stat : tipo_RAM; attribute ram_init_file : string; attribute ram_init_file of ram_stat : signal is SRAM.hex; begin process (CE, RW) begin if (CE = 0 and RW = 1) then Data <= ram_stat (to_integer(unsigned(Address))); else Data <= (others => Z); end if; end process; process (CLK) begin if (CLKevent and CLK = 1) then if (CE = 0 and RW = 0) then ram_stat (to_integer(unsigned(Address))) <= Data; end if; end if; end process; end beh;

2. No se olvide de generar el archivo SRAM.hex para inicializar la memoria RAM en Quartus as como en Proteus ISIS. 3. Para editar un archivo *.mif se procede de la siguiente manera: File -> New: New Other Files -> Memory Initialization File. OK: Number of Words & Word Size: Number of Words: 256, Word Size: 8. OK. Mif1.mif: En la fila 0, columnas +0, +1, , +7, rellenar cada casilla con el valor especificado para el dato; mantener los datos en las dems casillas como estn (a 0). Guardar el fichero con el nombre SRAM.mif. 4. Para la compilacin y sntesis, seleccionar el chip FPGA Cyclone II EP2C35F672C6: Assignments -> Settings: Settings SRAM: Category -> Device: Family Cyclone II: Target Device Specific Device selected in Available devices list. Show in Available devices list Fastest. Available devices: EP2C35F672C6 5. Para la compilacin y sntesis, aunque en este caso no es necesario, seleccionar: Assignments -> Settings: Settings - SRAM: Category -> Analysis & Synthesis Settings: Analysis & Synthesis Settings Auto RAM Replacement, More Settings: More Analysis & Synthesis Settings: Existing option settings: Seleccionar Allow Any RAM Size For Recognition: Option: Setting: On. OK. OK. 6. Compilar el diseo. Comprobar que la memoria en este caso se ha implementado utilizando FFs. Comprobar que el nmero de FFs utilizados se corresponde con el nmero de bits de memoria requeridos. Comprobar que Quartus II ha utilizado un bloque parametrizable de biblioteca para su implementacin. Para comprobar cmo se ha implementado la memoria y los recursos del FPGA Cyclone II EP2C35F672C6 utilizados: Compilation Report - Flow Summary: Total logic elements, Total registers, Total memory bits. Para comprobar si se ha utilizado un bloque de biblioteca: Tools -> Netlist_Viewers -> RTL Viewer: RTL Viewer. 7. Simular el bloque de memoria sintetizado. Construir un fichero de formas de onda SRAM.vwf. Las seales de control deben fijar inicialmente a la RAM en modo lectura de las primeras direcciones de la memoria; a continuacin, pasando la memoria al modo de escritura, se deber cargar en las ocho direcciones de memoria ms bajas los valores 256, 255,, 249; finalmente, deber pasar a modo lectura y leer de nuevo en las

direcciones ms bajas de la memoria. Al introducir en el fichero de formas de onda la seal Data (bidireccional) aparecer representada por un terminal de entrada/salida (IO). Una vez realizada la simulacin, aparecern un conjunto de salidas adicionales (Data[0]~result, Data[1]~result, ,Data[7]~result), independientemente de que se haya seleccionado o no la opcin: Assignments -> Settings: Settings - SRAM: Category -> Simulator Settings: Simulator Settings: Automatically add pins to simulation output waveforms. OK. 8. Modificar el fichero de formas de onda SRAM.vwf incluyendo estas seales agrupadas. Para incluir las seales en el fichero de formas de onda de entrada: Seleccionar las seales en el fichero de salida de simulacin. Copiarlas en el fichero de formas de onda de entrada. Reordenarlas y agruparlas como Data[7..0]~result. Fijar los valores de la seal a X. 9. Simular de nuevo el bloque de memoria comprobando que su comportamiento corresponde a lo esperado y comentar las respuestas obtenidas. Experiencia 3 Realizar un contador de 4 bits, que incorpore una entrada de Reset sncrono y una entrada de Preset sncrono, con la cual poner al contador al valor 1010. Se seguir el esquema de pines adjunto:

Pasos 1. Primero se realizar el diseo como mquina de estados, definiendo las transiciones de los 16 estados en funcin de las entradas. 2. Posteriormente, se definir el circuito hallando sus ecuaciones. Para ello, resolver la mquina de estados del contador de 4 bits sin entradas, y luego incorporar los trminos de RESET y PRESET en las ecuaciones resueltas. 3. Simular e implementar en fsico el circuito con un PAL 22v10.

Experiencia 4 Se desea disear un sistema que produzca en un display de 7 segmentos el mensaje HOLA_tU, u otro similar de 7 caracteres representables en un display de 7 segmentos, seguidos por un espacio en blanco. Pasos 1. generaremos un contador de 3 bits, que cuente de 0 a 7, y asignaremos como salidas del mismo las necesarias para activar el display de 7 segmentos, segn la secuencia buscada. 2. El esquema de pines que se debe usar es el que se indica.

ACTIVIDADES COMPLEMENTARIAS 1. Diseo y sntesis de una memoria RAM utilizando una descripcin VHDL y sntesis sobre un dispositivo FPGA utilizando bloques especficos de celdas de memoria RAM internos.

2. Se pretende implementar sobre un dispositivo FPGA la memoria RAM esttica representada en la figura anterior. Se trata de una memoria del tipo: True dual-port double-clock/single-clock synchronous RAM

Dispone de dos puertos de direcciones de w_a lneas, dos puertos de entrada de datos y dos puertos de salida de datos de w_d lneas. Dispone de dos entradas de reloj para lectura y escritura sncronas y dos entradas para habilitacin de escritura. Cada seal de reloj tiene asociados, un puerto de direcciones, un puerto de datos de entrada y uno de salida, as como una seal de habilitacin de escritura. Puede operar con un solo reloj para control de la lectura/escritura en/desde ambos puertos. El diagrama de tiempo debe ser como el de la siguiente grfica.

3. Simule el circuito en Proteus ISIS. 4. Implementar el circuito en fsico.

You might also like