11
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;

Practica 1 Sumador 3ago2015

Embed Size (px)

DESCRIPTION

ingenieria electronica

Citation preview

Page 1: Practica 1 Sumador 3ago2015

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;

Page 2: Practica 1 Sumador 3ago2015

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

Page 3: Practica 1 Sumador 3ago2015

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:

Page 4: Practica 1 Sumador 3ago2015

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:

Page 5: Practica 1 Sumador 3ago2015

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.

Page 6: Practica 1 Sumador 3ago2015

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

Page 7: Practica 1 Sumador 3ago2015

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";

Page 8: Practica 1 Sumador 3ago2015

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

Page 9: Practica 1 Sumador 3ago2015

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

Page 10: Practica 1 Sumador 3ago2015

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

Page 11: Practica 1 Sumador 3ago2015

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