Você está na página 1de 20

Prctica 1.

Tutorial
Diseo de una puerta AND de dos entradas de 1 bit
Se va a disear una puerta AND de dos entradas (in1, in2) y una salida (salida) de tipo std_logic, que est incluido en la biblioteca estndar.

Crear un proyecto nuevo


En primer lugar se ha de crear un proyecto nuevo. Se selecciona la opcin File -> New -> Project

Entonces aparece un cuadro de advertencia, que dice que para crear un nuevo proyecto, hay que cerrar las bibliotecas o proyectos existentes. Se marca la opcin para que se cierren.

Entonces aparece un cuadro en el que tenemos que indicar el nombre del proyecto, y automticamente se asignar el directorio donde se va a crear, y la biblioteca asociada a dicho proyecto.

Despus aparece la confirmacin de los nombres que se han asignado y, si se pulsa la tecla Next, surge una nueva ventana que pregunta si el proyecto va a estar formado por ficheros de diseo nuevos, o bien por ficheros ya existentes, que en su caso habra que importar. En esta ocasin elegiremos la primera opcin: Create new design files.

A continuacin aparece una ventana en la que se ha de seleccionar que tipo de ficheros van a formar parte del proyecto. Seleccionaremos la opcin Interface (tambin se puede elegir Block Diagram) dentro de la carpeta Graphical Views

Entonces aparecer una tabla donde indicar los puertos de entrada y de salida.

En el panel de la derecha podemos seleccionar si queremos definir algn parmetro genrico (marcando sobre Generics), y si queremos ver el smbolo, las declaraciones y la lista de paquetes incluidos. Si marcamos la opcin Symbol, veremos toda esa informacin de forma grfica.

Despus hay que guardar el smbolo (entidad del diseo), y nos pedir que indiquemos el nombre de la entidad. En nuestro caso le llamaremos and2.

Una vez que ya tenemos el diagrama de bloques completo ya se tiene definida la entidad de la puerta, donde se especifican los puertos y algunas posibles propiedades.

Una vez descrita la entidad, hay que indicar cmo funciona el smbolo o interface; para ello se marca el smbolo, se pulsa el botn derecho del ratn y se escoge la opcin Open As -> New View del men emergente:

Entonces aparece una ventana en la que se ha de indicar cmo se va a describir el funcionamiento del smbolo o entidad. En este ejemplo la descripcin va a realizarse utilizando cdigo VHDL, por lo que se ha de elegir una de las opciones dentro de la carpeta VHDL File. Si se elige Combined, la descripcin de la entidad y arquitectura se realizar en el mismo fichero.

A continuacin aparece una ventana para que se indique el nombre de la arquitectura. La llamaremos and2 tambin.

Una vez indicado el nombre, aparece un editor de textos con el contenido de la arquitectura vaco, que hay que rellenar. Para ello se introducen las sentencias necesarias de VHDL entre las lneas BEGIN y END. A continuacin se indican dos posibles arquitecturas: Arquitectura1: salida <= 1 when in1 = 1 and in2 = 1 else 0; Arquitectura 2: salida <= in1 AND in2; Una vez escrito el texto, se graba el fichero, terminando as el diseo de la puerta AND.

Una vez terminada la puerta, hay que disear un banco de pruebas para poder realizar una simulacin y ver si funciona. Para ello se elige la opcin New -> Create Test Bench del men File de la ventana Design Manager.

Aparece una ventana para que indiquemos si queremos un banco de pruebas que tenga representacin grfica o que slo tenga representacin escrita. Seleccionaremos la opcin Graphical.

En la ventana Design Manager aparecer la entidad del banco de pruebas que se llamar and2_tb.

Si hacemos doble clic sobre el componente and2_tb, se nos abrir un diagrama de bloques en el que aparece el componente and2 y el bloque (en azul) and2_tester. Las entradas y salidas de ambos estn conectadas de modo que las entradas de la puerta and2 se corresponden con las salidas de and2_tester y viceversa. A la entidad and2_tester hay que declararle una arquitectura.

Esta nueva arquitectura, tambin se disear utilizando VHDL, y se le puede poner un nombre como tester.

Un ejemplo de arquitectura para este bloque podra ser la que se indica a continuacin:

Simulacin
Una vez que se ha completado el diseo, se pueden generar los diferentes ficheros VHDL para comprobar que no hay ningn error, y para poder compilar y simular, para eso se escogen las opciones de check y simulate de la ventana Design Manager manteniendo marcado el componente and2_tb.

Una vez pulsado el botn aparece un cuadro en no hay que cambiar ninguna opcin, y pulsar OK. Se abrir la herramienta ModelSim, en la que inicialmente no aparecen todas las ventanas existentes. Necesitaremos ver la ventana Wave para poder ver el cronograma de la simulacin.

Para poder ver los resultados de la simulacin en la ventana wave, hay que indicar que seales queremos ver, para ello se seleccionan las tres seales que aparecen en la ventana Objects, y se arrastra el cursor hacia la ventana wave.

Una vez que se tienen las tres seales en dicha ventana, se puede comenzar la simulacin pulsando el botn Run (icono: folio con una doble flecha hacia abajo) arriba indicado y analizar los resultados en la ventana wave.

Sntesis
Una vez que se ha comprobado que funciona el diseo, se puede realizar la sntesis. Notar que la sntesis slo se realiza para la puerta AND, y no para el banco de pruebas, por lo que hay que marcar dicho componente antes de llamar al programa de sntesis. Para ello se llama al bien al programa Precision Synthesis, bien al programa Leonardo Spectrum. Si se pulsa el botn Synthesize del panel de la izquierda de la ventana Design Manager del programa de diseo (HDL Designer) se llamar al programa Leonardo Spectrum.

Para llamar a Precision Synthesis hay que pulsar sobre su icono que est en el panel de la derecha de la ventana Design Manager.

Entonces se invocar a la herramienta de sntesis, y aparecer una ventana como la siguiente, en la que hay que seleccionar la FPGA para la que se va a realizar la sntesis (en el ejemplo: FLEX10KE de Altera)

Y cuando se pulse el botn OK, se realizar la sntesis, cuyos resultados aparecen en la ventana Design Center.

Se pueden ver los informes de rea y de tiempos, viendo los caminos crticos. Tambin se puede ver la estructura lgica del diseo e incluso la estructura ya mapeada en la FPGA elegida.

Ejercicio. Diseo de un biestable.


Disear, de forma semejante a como se ha diseado la puerta AND de dos entradas y su banco de pruebas, un biestable D, activo por flanco de subida. La entidad o bloque Dff tiene los siguientes puertos: Puerto de entrada d (std_logic): la seal a almacenar en el biestable. Puerto de entrada clk (std_logic): la seal de reloj. Puerto de salida q (std_logic): salida del biestable. La arquitectura algortmica de la entidad Dff, puede describirse como: ARCHITECTURE algortmica OF Dff IS BEGIN process (clk) begin if clkevent and clk=1 and clklast_value=0 then q<=d; end if; end process; END algortmica; La arquitectura del banco de pruebas podra ser algo como: ARCHITECTURE Dff_tester OF Dff_tester IS SIGNAL clktemp: std_logic; SIGNAL dtemp: std_logic; BEGIN reloj: process (clktemp) begin if clktemp =0 then clktemp <=1 after 50 ns; else clktemp <=0 after 50 ns; end if; clk<=clktemp; end process reloj; seal: process (dtemp) begin if dtemp =0 then dtemp <=1 after 66 ns; else dtemp <=0 after 87 ns; end if; d<=dtemp; end process seal; END Dff_tester;

Você também pode gostar