Вы находитесь на странице: 1из 14

Bryan Ignacio Vera Cabanilla

Sexto Curso A-2 Programacin de circuitos digitales

Informe #4
Programacin VHDL

Objetivos:
1. Introduccin a la programacin VHDL 2. Comprobacin del funcionamiento de la programacin VHDL distribuida en los siguientes circuitos: 1. Una funcin F1 = (NOTA AND B) OR (A AND C) OR (NOT B AND NOT C) 2. Una tabla con las siguientes funciones, f1 y f2 respectivamente: (Sera Llamada Funciones de tabla) A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F1 1 1 0 0 1 1 0 1 F2 0 1 1 0 0 1 0 1

Herramientas:
-Software Quartus II -Hardware Cyclone II

1. Introduccin a la programacin en VHDL (VHSIC Hardware Description Language) a su vez VHSIC significa Very High Speed Integrated Circuit. VHDL es un lenguaje de descripcin de hardware, esto significa que mediante l se puede describir la forma de comportarse de un circuito electrnico. El comportamiento puede ser llevado a algn dispositivo que dispondr de sus propios componentes con los que lograr ese comportamiento deseado. La forma de comportarse es independiente del hardware donde se implementar. El VHDL es un estndar llamado IEEE 1076-1993. Sus ventajas son:

Una disponibilidad pblica Independencia de dispositivos y fabricantes Reutilizacin Diseo jerrquico

Bryan Ignacio Vera Cabanilla

Sexto Curso A-2 Programacin de circuitos digitales

Un proyecto de VHDL puede contener muchos ficheros. El cdigo VHDL usualmente se encuentra en los ficheros con extensin *.vhd. La estructura tpica de uno de estos ficheros es:

Llamadas a libreras Entidad Arquitectura(s)

Para la correcta programacin en VHDL necesitamos debemos dividir esta, en sus elementos bsicos: Debemos recordar, que fue un vistazo rpido al lenguaje VHDL, por lo cual su informacin no es tan extensa como debe merecerse. Antes de ello, aunque no es estrictamente necesario podemos definir tambin las bibliotecas y paquetes que vamos a utilizar, lo que nos indicar que tipos de puertos y operadores podemos utilizar. Siempre aparece la definicin de las bibliotecas y paquetes antes de la definicin de la entity La biblioteca ieee y estos tres paquetes asociados (ms adelante se explicar su significado) aparecen por defecto al generar un mdulo VHDL en Xilinx ISE Introduccin a la Programacin en VHDL
library IEEE; use IEEE.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all;
1

gemini.udistrital.edu.co/comunidad/profesores/jruiz/jairocd/.../vhdl.p... Imagen sacada de la presentacin

Bryan Ignacio Vera Cabanilla

Sexto Curso A-2 Programacin de circuitos digitales

Identidad: Una entidad es la abstraccin de un circuito, ya sea desde un complejo sistema Electrnico o una simple puerta lgica. La entidad nicamente describe la forma externa del Circuito, en ella se enumeran las entradas y las salidas del diseo. Una entidad es anloga a Un smbolo esquemtico en los diagramas electrnicos, el cual describe las conexiones del Dispositivo hacia el resto del diseo. - Define externamente al circuito o subcircuito. - Nombre y nmero de puertos, tipos de datos de entrada y salida. - Tienes toda la informacin necesaria para conectar tu circuito a otros circuitos.

entity nombre is generic (cte1: tipo := valor1; cte2: tipo:= valor 2; ); port (entrada1, entrada2, : in tipo; salida1, salida2, : out tipo; puertoi : modo tipo); end nombre;

Los puertos pueden ser de entrada in, salida out, entrada-salida inout o buffer. Los puertos de entrada slo se pueden leer y no se puede modificar su valor internamente en la descripcin del comportamiento del circuito (architecture), sobre los puertos de salida slo se puede escribir pero nunca tomar decisiones dependiendo de su valor (esto implica una lectura). Si es estrictamente necesario escribir sobre un puerto a la vez que se tiene que tener en cuenta su valor el tipo sera inout o buffer

Bryan Ignacio Vera Cabanilla

Sexto Curso A-2 Programacin de circuitos digitales

Arquitectura: Los pares de entidades y arquitecturas se utilizan para representar la descripcin completa de un diseo. Una arquitectura describe el funcionamiento de la entidad a la que hace referencia, es decir, dentro de architecture tendremos que describir el funcionamiento de la entidad a la que est asociada utilizando las sentencias y expresiones propias de VHDL. - Define internamente el circuito. - Seales internas, funciones, procedimientos, constantes - La descripcin de la arquitectura puede ser estructural o por comportamiento.
SINTAXIS: architecture arch_name of entity_name is -- declaraciones de la arquitectura: -- tipos -- seales -- componentes begin -- cdigo de descripcin -- instrucciones concurrentes -- ecuaciones booleanes -- componentes process (lista de sensibilidad) begin -- cdigo de descripcin end process; end arch_name;

Imagen sacada de Entity Fundamentos de VHDL Capitulo 2 gemini.udistrital.edu.co/comunidad/profesores/jruiz/jairocd/.../vhdl.p

Bryan Ignacio Vera Cabanilla

Sexto Curso A-2 Programacin de circuitos digitales

El cdigo VHDL propiamente dicho se escribe dentro de architecture. Cada architecture va asociada a una entidad y se indica en la primera sentencia. A continuacin, y antes de begin se definene todas las variables (seales) internas que vas a necesitar para describir el comportamiento de nuestro circuito, se definen los tipos particulares que necesitamos utilizar y los componentes, otros circuitos ya definidos y compilados de los cuales conocemos su interfaz en VHDL (su entity).

2. Comprobacin del funcionamiento de la programacin VHDL distribuida en los siguientes circuitos: 2.1 Una funcin F1 = (NOTA AND B) OR (A AND C) OR (NOT B AND NOT C)
3

Imagen sacada de Arquitectura Fundamentos del lenguaje VHDL Cap 2 gemini.udistrital.edu.co/comunidad/profesores/jruiz/jairocd/.../vhdl.p

Bryan Ignacio Vera Cabanilla

Sexto Curso A-2 Programacin de circuitos digitales

1. Revisamos la funcin dada: AB + AC + BC

2. Revisamos los componentes que luego usaremos en nuestra identidad

AB + AC + BC

A, B, C
Por lo tanto en nuestra variables de entrada solo tendremos a A,B y C 3. Abrimos Quartus

2. Vamos a File/ New Project Wizard

Bryan Ignacio Vera Cabanilla

Sexto Curso A-2 Programacin de circuitos digitales

3. Damos Next, y luego una ventana no preguntara donde guardar el proyecto y con qu nombre se guardara. Debemos recordar que este nombre deber ser igual al nombre dado en la entidad

4. En la siguiente ventana, tendremos que seleccionar la familia de nuestro dispositivo FPGA -Familia: Cyclone II -Dispositivo: EP2C20F484C7

Bryan Ignacio Vera Cabanilla

Sexto Curso A-2 Programacin de circuitos digitales

5.

6. En la ltima ventana, nos dar un resumen de la configuracin que hemos hecho para poder empezar el proyecto en Quartus II

7.

Una vez dado clic a Finish, Vamos a File/New y escogemos VHDL File. Luego damos clic a OK

Bryan Ignacio Vera Cabanilla

Sexto Curso A-2 Programacin de circuitos digitales

8. Definimos la librera, y luego de esta la entidad recordando que son 3 entradas A, B, C y su salida ser F

9. Definimos la arquitectura, entonces al programar tendremos en cuenta que: Cuando a sea cero y b sea uno entonces f valdr uno Cuando a sea uno y c sea cero entonces f valdr uno Cuando b sea cero y c sea cero entonces f valdr uno Para todo los dems casos f valdr cero Por lo tanto su arquitectura, con nombre funcional, ser la siguiente

Bryan Ignacio Vera Cabanilla

Sexto Curso A-2 Programacin de circuitos digitales

10. Compilaremos para registrar errores.

11. Vamos al Pin Planner, y colocamos los pines segn vemos

12.- Para el archivo .sof iremos a Tools/Programmer y ya tendremos aqu nuestro archivo para que se ejecute en el FPGA

Bryan Ignacio Vera Cabanilla

Sexto Curso A-2 Programacin de circuitos digitales

2.2 Una tabla con las siguientes funciones, f1 y f2 respectivamente: (Sera Llamada Funciones de tabla) 1. Deducimos a su mnimas expresiones quedando F1= B + AC F2= A(B C) + (A + B) 2. Revisamos los componentes que luego usaremos en nuestra identidad

B + AC

A(B B) A, B, C

C) + (A +

3. Luego de inciar Quartus y seleccin New Project Wizar, Damos Next, y luego una ventana no preguntara donde guardar el proyecto y con qu nombre se guardara. Debemos recordar que este nombre deber ser igual al nombre dado en la entidad

Bryan Ignacio Vera Cabanilla

Sexto Curso A-2 Programacin de circuitos digitales

4. Una vez dado clic a Finish, Vamos a File/New y escogemos VHDL File. Luego damos clic a OK

5.

Definimos la librera, y luego de esta la entidad recordando que son 3 entradas A, B, C y su salida ser F

Bryan Ignacio Vera Cabanilla

Sexto Curso A-2 Programacin de circuitos digitales

6. Definimos la arquitectura, entonces al programar tendremos en cuenta que: El valor que tomara f1 ser igual a la expresin B + AC El valor que tomara f2 ser igual a la expresin A(B C) + (A + B) Por lo tanto su arquitectura, con nombre funcional, ser la siguiente

7. Compilaremos para registrar errores.

8. Vamos al Pin Planner, y colocamos los pines segn vemos

Bryan Ignacio Vera Cabanilla 9.

Sexto Curso A-2 Programacin de circuitos digitales

Para el archivo .sof iremos a Tools/Programmer y ya tendremos aqu nuestro archivo para que se ejecute en el FPGA

Conclusiones:
Con el uso del lenguaje VHDL, nuestros circuitos electrnicos se vern simplificados por la lgica de programacin. Es por esto que mediante el uso de un hardware el cual puede ser un FPGA, podemos dar una programacin adecuada a cada problema que se nos suscite si conocemos la sintaxis de VHDL.

Bibliografa:
Bibliografa
es.wikipedia.org/wiki/VHDL es.wikibooks.org/wiki/Programacin_en_VHDL/Arquitectura www.dacya.ucm.es/marcos/intvhdl.pdf www.ate.uniovi.es/.../VHDL%20(Francisco%20Javier%20Ferrero).pd...

Вам также может понравиться