Upload
mihael-del-valle-alvarado
View
29
Download
3
Embed Size (px)
DESCRIPTION
ingenieria electronica
Citation preview
DISEÑO DIGITAL CON VHDL PRACTICA 1 M. C. BENITO BÁEZ SÁNCHEZ
DISEÑO DIGITAL CON VHDL PRACTICA 1 M. C. BENITO BÁEZ SÁNCHEZ
Practica 1.- Diseñar en VHDL
a) Sumador completo en VHDL
b) Sumador de dos bits esquemático en VHDL. Observación, para este
diseño el alumno aprenderá a agregar a la biblioteca de componentes
el sumador completo hecho en el inciso a).
c) Sumador de dos bits en VHDL usando el comando component.
Observación: para este diseño el alumno aprenderá a agregar
componentes al diseño así como la forma en que se interconectan
Objetivo: Familiarizarse con el software a usar en el semestre implementando en VHDL, los diseños de un sumador completo, un sumador esquemático de dos bits y un sumador de dos bits usando el comando component.
Material a usar
Tarjeta SPARTAN BASYS2
Computadora personal
Software Xilinx
Software Adept
Desarrollo:
a).- Diseñar un sumador completo utilizando Xilinx Objetivo: El alumno implementara un sumador completo utilizando VHDL y comprobara su funcionamiento. Escriba las instrucciones siguientes en el programa Xilinx --PRACTICA 1: Sumador Completo enVHDL. library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity sumadorcompleto is
port ( a : in STD_LOGIC;
b : in STD_LOGIC;
ci : in STD_LOGIC;
s : out STD_LOGIC;
co : out STD_LOGIC);
end sumadorcompleto;
architecture Behavioral of sumadorcompleto is
begin
s <= a xor b xor ci;
DISEÑO DIGITAL CON VHDL PRACTICA 1 M. C. BENITO BÁEZ SÁNCHEZ
DISEÑO DIGITAL CON VHDL PRACTICA 1 M. C. BENITO BÁEZ SÁNCHEZ
co <= (a and b) or (a and ci) or (b and ci);
end Behavioral;
Una vez verificado la sintaxis del diseño y comprobar que esta todo correcto, se
procede a editar el archivo de pines. Este archivo es el que permitirá conectar los
puertos de entrada y de salida de nuestro diseño.
En el apéndice B se muestra todos los pines de uso para la tarjeta SPARTAN
BASYS2.
Para este diseño solo se usaran los siguientes.
net “a” loc = “P11”;
net “b” loc = “L3”;
net “ci” loc = “K3”;
net “s” loc = “M5”;
net “co” loc = “M11”;
Implemente el diseño y genere el archivo de programación, oprimiendo dos veces
la pestaña Generate Programming File.
Recuerde tal y como se menciona en al apéndice A, para generar el archivo de
programación, (el archivo con extensión bin), vamos a la pestaña de Generate
Programming File y la marcamos con el boton derecho del ratón. En la ventana
que se abre marcamoos Process Properties, en la nueva ventana oprimimos
Startup Options y expanda CCLK para marcar JTAG Clock.
Despues de haber realizado todo esto ya estamos en condiciones de generar el
archivo de programación, por lo que marcamos dos veces con el ratón la pestaña
Generate Programming File
Resultados:
Verifique en la tarjeta SPARTAN BASYS2 el correcto funcionamiento del diseño
No olvide poner sus conclusiones
b) Sumador de dos bits esquemático en VHDL. Observación, para
este diseño el alumno aprenderá a agregar a la biblioteca de
componentes el sumador completo hecho en el inciso a).
Objetivo: Utilizando el sumador completo realizado en el inciso a, definirlo como un
circuito esquemático en la biblioteca correspondiente y usarlo para implementar un
sumador de dos bits.
Material a usar
DISEÑO DIGITAL CON VHDL PRACTICA 1 M. C. BENITO BÁEZ SÁNCHEZ
DISEÑO DIGITAL CON VHDL PRACTICA 1 M. C. BENITO BÁEZ SÁNCHEZ
Tarjeta SPARTAN BASYS2
Computadora personal
Software Xilinx
Software Adept
Desarrollo:
Lea detenidamente el apéndice A.
Como se menciona en el apéndice A, en la pestaña de File, abrir New Proyect,
ponerle un nombre y definir el proyecto como esquemático (Schematic).
Oprimir Next, Next y Finish
Ahora de nuevo en la pestaña de Proyect abrir Add Source y buscar el archivo
sumadorcompleto.vhd, aparece la ventana siguiente:
DISEÑO DIGITAL CON VHDL PRACTICA 1 M. C. BENITO BÁEZ SÁNCHEZ
DISEÑO DIGITAL CON VHDL PRACTICA 1 M. C. BENITO BÁEZ SÁNCHEZ
Al oprimir Ok, aparece la ventana siguiente:
Marcar sumadorcompleto, y luego abrir la rama de Design Utilities darle click a
Create Schematic Symbol.
Como se muestra en el apéndice A, generar el diseño abriendo la pestaña de
Proyect y oprimiendo New Source. En la ventana que se abre seleccionar el tipo;
en nuestro caso es Schematic y ponerle nombre a nuestro diseño:
DISEÑO DIGITAL CON VHDL PRACTICA 1 M. C. BENITO BÁEZ SÁNCHEZ
DISEÑO DIGITAL CON VHDL PRACTICA 1 M. C. BENITO BÁEZ SÁNCHEZ
Oprimir Next, Finish, aparece la siguiente ventana.
Estamos listos para implementar nuestro diseño
Abrimos la pestaña de Symbols, marcamos nuestro sumador completo y lo
arrastramos a nuestra hoja de trabajo.
DISEÑO DIGITAL CON VHDL PRACTICA 1 M. C. BENITO BÁEZ SÁNCHEZ
DISEÑO DIGITAL CON VHDL PRACTICA 1 M. C. BENITO BÁEZ SÁNCHEZ
Conectamos y marcamos nuestros puertos de entrada y salida.
Renombramos los puertos de entrada y salida
DISEÑO DIGITAL CON VHDL PRACTICA 1 M. C. BENITO BÁEZ SÁNCHEZ
DISEÑO DIGITAL CON VHDL PRACTICA 1 M. C. BENITO BÁEZ SÁNCHEZ
Al igual que en el inciso a), en la pestaña de Proyect, abrimos New Source y
escribimos el archivo de pines. Para conectar los puertos de entrada y de salida
de nuestra tarjeta Spartan BASYS2.
Ahora lo que prosigue es editar nuestro archivo de pines para interconectar
nuestro diseño.
A continuación se muestra el archivo propuesto.
net "a0" loc = "P11";
DISEÑO DIGITAL CON VHDL PRACTICA 1 M. C. BENITO BÁEZ SÁNCHEZ
DISEÑO DIGITAL CON VHDL PRACTICA 1 M. C. BENITO BÁEZ SÁNCHEZ
net "b0" loc = "L3"; net "a1" loc = "K3"; net "b1" loc = "B4"; net "ci" loc = "G3"; net "s0" loc = "M5"; net "s1" loc = "M11"; net "co" loc = "P7";
Guardamos y generamos el archivo de programación como se explicó
anteriormente y sino como se explica en el apéndice A.
Resultados:
Verifique en la tarjeta SPARTAN BASYS2 el correcto funcionamiento del diseño
No olvide poner sus conclusiones.
c) Sumador de dos bits usando el comando “component”.
Objetivo: El alumno utilizara el comando de VHDL “component” para aprender a agregar dispositivos a su diseño. Para esto se diseñara un sumador de dos bits. La utilización de componentes es útil en el diseño de un sistema, un componente representa a una entidad declarada previamente en otro diseño o librería. Para poder utilizar una entidad que está dentro de otro diseño, es necesario llamar la librería y el paquete dentro del cual se encuentra esta entidad, mediante el comando component. La declaración del componente se realiza dentro del paquete o en la región declarativa de una arquitectura. Es preferible declarar el componente dentro de los paquetes ya que estos son reutilizables, y por esta razón sólo normalmente se verán declaración de componentes dentro de paquetes y no en arquitecturas, aunque también sea posible. A continuación se muestra la sintaxis de declaración “component”. COMPONENT identificador_componente
PORT ( identificador{ , identificador}: modo tipo_de_dato { ; identificador{ , identificador}: modo tipo_de_dato } ) ;
END COMPONENT ;
La instanciación de componentes es una instrucción concurrente que especifica la interconexión de las señales del componente dentro del diseño en el que está siendo utilizado. Existen dos formas de hacer la instanciación de componentes: por asociación de identificadores o asociación por posición.
ASOCIACIÓN POR POSICIÓN
DISEÑO DIGITAL CON VHDL PRACTICA 1 M. C. BENITO BÁEZ SÁNCHEZ
DISEÑO DIGITAL CON VHDL PRACTICA 1 M. C. BENITO BÁEZ SÁNCHEZ
En la asociación por posición no es necesario nombrar los puertos del componente. Sólo se colocan las señales, variables, o expresiones en el lugar donde deseamos que sean conectadas. Es importante considerar el orden en el que fueron declarados los puertos del componente porque este orden es el debemos utilizar cuando se haga la instanciación del componente. etiqueta: identificador _componente PORT MAP ( identificador_señal
| identificador_variable | expresión | OPEN { , identificador_señal | identificador_variable | expresión | OPEN } ) ; Desarrollo:
Abrir un nuevo proyecto y luego en la pestaña de Proyect abrir Add Source y
buscar el archivo sumadorcompleto.vhd, y agregarlo.
Ahora proceda como anteriormente y genere una nueva fuente con New Source.
Escriba las instrucciones siguientes en el programa Xilinx
library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity sumacomponent is Port ( a : in STD_LOGIC_VECTOR (1 downto 0); b : in STD_LOGIC_VECTOR (1 downto 0); ci : in STD_LOGIC; s : out STD_LOGIC_VECTOR (1 downto 0); co : out STD_LOGIC); end sumacomponent; architecture Behavioral of sumacomponent is signal c: std_logic_vector(1 downto 0); component sumadorcompleto port (a,b,ci: in std_logic; s,co: out std_logic); end component; begin suma0: sumadorcompleto port map(a(0),b(0),ci,s(0),c(0)); suma1: sumadorcompleto port map(a(1),b(1),c(0),s(1),c(1)); co<= c(1); end Behavioral; Una vez verificado la sintaxis del diseño y comprobar que esta todo correcto, se
procede a editar el archivo de pines. Este archivo es el que permitirá conectar los
DISEÑO DIGITAL CON VHDL PRACTICA 1 M. C. BENITO BÁEZ SÁNCHEZ
DISEÑO DIGITAL CON VHDL PRACTICA 1 M. C. BENITO BÁEZ SÁNCHEZ
puertos de entrada y de salida de nuestro diseño. En el apéndice B se muestra
todos los pines de uso para la tarjeta SPARTAN BASYS2.
Para este diseño solo se usaran los siguientes pines:
net "a<0>" loc=”P11”; net "a<1>" loc=”L3”; net "b<0>" loc=”K3”; net "b<1>" loc=”B4”; net "ci" loc=”G3”; net "s<0>" loc=”M5”; net "s<1>" loc=”M11”; net "co" loc=”P7”; Implemente el diseño y genere el archivo de programación.
Recuerde tal y como se menciona en al apéndice A,
Resultados:
Verifique en la tarjeta Spartans BASYS 2 el correcto funcionamiento del diseño
Para el reporte de la práctica vea el apéndice C
No olvide poner sus conclusiones
DISEÑO DIGITAL CON VHDL PRACTICA 1 M. C. BENITO BÁEZ SÁNCHEZ
DISEÑO DIGITAL CON VHDL PRACTICA 1 M. C. BENITO BÁEZ SÁNCHEZ