Está en la página 1de 16

Lgica Combinatoria usando PLDs (Interfaz de Programacin WARP)

PRCTICA No. 7 LGICA COMBINATORIA USANDO PLDs (INTERFAZ DE PROGRAMACION WARP)


OBJETIVOS:

Familiarizar al alumno con la interfaz del software Warp 6.3 para el diseo digital con lgica programable. Describir los procedimientos en Warp 6.3 para crear, compilar y simular un proyecto desarrollado en VHDL.

INTRODUCCIN
Warp R6.3 de Cypress Semiconductor es una de las tantas herramientas existentes para el diseo con lgica programable la cual permite procesar varios tipos de entrada de datos (esquemtica y compilador estndar de VHDL y la combinacin de ambas) lo cual la hace muy funcional. En la actualidad es uno de estndares ms usados en la industria, ya que presenta la caracterstica de optimizar los diseos con rapidez y precisin utilizando muy poca rea del circuito. Warp R6.3 permite la grabacin de distintas familias de dispositivos lgicos programables, como pueden ser: PLD, CPLD y FPGA. As durante el curso se utilizar el SPLD PALCE22V10 el cual esta construido internamente con flip-flops, adems de un arreglo AND-OR. Cada seccin de un SPLD se denomina macrocelda, que es un circuito que contiene una funcin de lgica combinacional de suma de productos y un flip-flop opcional.

MATERIAL Y EQUIPO EMPLEADO

Laboratorio equipado con computadoras donde se encuentre instalado el paquete computacional Warp R6.3.

Pre-reporte:

Leer previamente la prctica.

Eduardo Romero A. ITSON

Laboratorio de Sistemas Digitales I

Lgica Combinatoria usando PLDs (Interfaz de Programacin WARP)

DESARROLLO I. Crear un Proyecto en VHDL


1.1.- Una vez dentro de Windows hacer click en el botn de Inicio, seleccionar Programas > Cypress > Warp R6.3 > Galaxy. Despus de abrir este programa se proceder a realizar un proyecto nuevo.

Figura 1.1: Inicio de Programa Galaxy

1.2.- Despus de abrir el programa Galaxy, seleccionar File > New (figura 1.2).

Figura 1.2: Opcin New del men File

Eduardo Romero A. ITSON

Laboratorio de Sistemas Digitales I

Lgica Combinatoria usando PLDs (Interfaz de Programacin WARP)

1.3. Luego aparecer otra ventana como la que se muestra en la figura 1.3. Esta ventana permitir crear un proyecto con el que se podr programar un dispositivo y se deber seleccionar la segunda opcin Project [Target Device].

Figura 1.3: Opcin Project [Target-Device] del men New

1.4.- Despus de seleccionar la opcin (Project [Target Device] ) aparecer otra ventana (figura 1.4), aqu se deber de seleccionar en Project Type la opcin de VHDL; a continuacin se tiene que asignar un nombre al proyecto, por ejemplo el nombre de practica1. En el segundo cuadro de texto se selecciona el directorio donde se guardar el proyecto, se puede hacer un directorio nuevo desde esa misma ventana con solo escribir el nombre, por ejemplo a:\practica1, o tambin se tiene la opcin de buscar una carpeta ya existente en la opcin Browse. Cuando se termina de especificar los nombres y el lugar donde se guardar, hacer click en el botn de Siguiente.

Figura 1.4: Ventana Project Information

1.5.- Al hacer esto, aparecer una ventana nueva con el ttulo Add Files to Project (figura1.5), sta se usa cuando ya se tienen archivos que se quieran agregar al proyecto nuevo. Como esta es la primer practica no es necesario especificar nada en esta ventana, solo se debe hacer click en el botn Siguiente.

Eduardo Romero A. ITSON

Laboratorio de Sistemas Digitales I

Lgica Combinatoria usando PLDs (Interfaz de Programacin WARP)

Figura 1.5: Ventana Add Files to Project

1.6.- La siguiente ventana (figura 1.6) tiene el ttulo de Select Target Device, esta ventana es muy importante ya que en esta se selecciona el PLD en el que se va a trabajar. Los PLDs mas usuales son los mas pequeos (16V8, 22V8 22V10), los cuales aparecen en la ventana como SPLD; seleccionar C22V10. Para observar la siguiente opcin se hace doble click sobre este texto, a continuacin aparece una lista de los SPLDs ms comunes, se selecciona el SPLD que se desee e inmediatamente aparecer una lista donde hay varios tipos del mismo SPLD. Aqu es muy importante que se seleccione un SPLD que tenga un encapsulado tipo PDIP para que luego de programarlo se pueda montar sobre un protoboard; seleccionar PALCE22V10-10PC/PI. En la parte de abajo de esta misma ventana aparece informacin del SPLD que se selecciona; despus de seleccionar el SPLD adecuado hacer click en Finalizar.

Figura 1.6: Ventana para seleccionar el tipo de dispositivo

1.7.- Al realizar lo anterior, aparecer una ventana donde se pregunta si se quiere guardar el nuevo proyecto, aqu solo se deber hacer click en S.

Eduardo Romero A. ITSON

Laboratorio de Sistemas Digitales I

Lgica Combinatoria usando PLDs (Interfaz de Programacin WARP)

1.8.- Al terminar de hacer esto ya se tiene un nuevo proyecto donde se encuentra suficiente informacin para que el compilador pueda generar el archivo *.jed. Ahora se debe agregar el cdigo que se compilar, para esto seleccionar File > New > Text File tambin se puede agregar al hacer click sobre el icono de New Text File. Se deber escribir lo siguiente dentro de este archivo: library ieee; A continuacin seleccionar File > Save As, elige el nombre del directorio que se us en el paso 4 (a:\practica1), ya que se elige el mismo directorio, escribir el nombre del archivo, se sugiere que sea el nombre de practica1 con la extensin .vhd (es necesario asegurarse de poner la extensin .vhd), de esta manera se est especificando que es un archivo que contiene cdigo en VHDL, despus de hacer esto se procede a guardar el archivo. 1.9.- Despus de guardarse, el siguiente paso es cerrar el archivo de texto seleccionando en la barra de mens File > Close. 1.10.- De la barra de mens seleccionar Project > Add Files, aparecer una ventana nueva con el ttulo Add Files to Project (figura 1.7) y deber aparecer el archivo creado anteriormente practica1.vhd, luego hacer click en Add y despus en OK.

Figura 1.7: Ventana para agregar archivos existentes al proyecto

1.11.- Al hacer esto, el archivo de texto se ha convertido en un archivo de VHDL y est dentro del proyecto, ahora todo lo que se programe ser compilado en el dispositivo que se especific anteriormente. En la ventana de proyecto (si no est abierta, se puede ver haciendo click en la barra de mens View > Project Window) aparece un icono en forma de hoja, el cual tiene el nombre del proyecto creado, hacer doble click en este icono y luego aparecer un archivo con la instruccin: library ieee; la palabra library aparece en color azul porque es una palabra reservada; esto indica que se ha hecho correctamente el procedimiento de crear un proyecto nuevo (figura 1.8).

Eduardo Romero A. ITSON

Laboratorio de Sistemas Digitales I

Lgica Combinatoria usando PLDs (Interfaz de Programacin WARP)

Figura 1.8: Ventana de proyecto

1.12.- A continuacin todas las palabras reservadas aparecern en color azul y los comentarios en color rojo, solamente que para empezar los comentarios se ponen dos guiones seguidos (--). Despus de esto ya se puede comenzar a hacer el cdigo en VHDL. 1.13.- Por ltimo, se procede a escribir este cdigo en VHDL como ejemplo para observar las palabras reservadas y los comentarios. La lnea de cdigo library ieee; solo se escribe una vez. Cdigo en VHDL:
library ieee; use IEEE.STD_LOGIC_1164.ALL; entity practica1 port ( A B X end practica1; is : in std_logic; : in std_logic; : out std_logic); --Librera --Empaquetamiento --Entity --Declaracin de puertos --Direccin: in, out, inout --Tipo de dato: std_logic

architecture Behavioral of practica1 is begin X <= A or B; end Behavioral;

--Arquitectura --Inicio del comportamiento --or (palabra reservada) --Final del comportamiento

Nota: Este ejemplo ser usado posteriormente en las fases de compilacin y simulacin.

Eduardo Romero A. ITSON

Laboratorio de Sistemas Digitales I

Lgica Combinatoria usando PLDs (Interfaz de Programacin WARP)

II. Compilacin de un Proyecto


2.1.- Para la compilacin de un proyecto es necesario tener el cdigo en VHDL del programa deseado. Un archivo vhd debe tener una estructura bsica para su correcta compilacin, as las partes que la componen se describen a continuacin. Libreras.- Contienen componentes compilados. Entity.- Sentencia que define la especificacin de un componente, para ello contiene los siguientes elementos: Nombre de la entity. Puertos de entrada y salida. Modos de los puertos in: entrada al componente, slo puede ser ledo. out: salida del componente, slo se le puede asignar valor. inout: seal bidireccional, se puede leer o asignar valor. buffer: registro asociado a una salida. Tipos definidos para los puertos: Boolean Bit Bit_vector Character String Integer Real Time Std_logic Std_logic_vector

Arquitectura.- Especifica la funcionalidad del componente definido en la entity. Del cdigo en VHDL expuesto en el punto 1.13 se pueden hacer los siguientes comentarios: La entidad (entity) tiene el nombre de practica1, la cual contiene los siguientes puertos con el nombre de A, B y X, a su vez estos puertos tienen su modo de in y out y el tipo de dato es std_logic, por ltimo se agrega la palabra reservada end junto con el nombre de la entity. En la declaracin de la arquitectura podemos observar que se hace referencia al comportamiento que tendr este programa, es por ello que se agrega otra vez practica1, a continuacin se empieza a describir el comportamiento en el cual a la salida X se le asignar el valor de A or B y por ltimo se termina la arquitectura con la palabra reservada end agregndole el comportamiento. 2.2. Una vez escrito el cdigo en el programa Galaxy, los pasos para la compilacin son sencillos y se describen a continuacin. 2.2.1. Ver en la barra de mens la opcin de Project > Compiler Options, al hacer esto se abrir una ventana nueva (figura 1.9), en la parte de Synthesis se tiene que asegurar que la opcin de Simulation > Timing Model este seleccionada Active-HDLSim / Active-VHDL y luego hacer click en Aceptar, esto es necesario para el momento de la simulacin.

Eduardo Romero A. ITSON

Laboratorio de Sistemas Digitales I

Lgica Combinatoria usando PLDs (Interfaz de Programacin WARP)

Figura 1.9: Opciones del compilador

2.2.2. Lo siguiente es ir a la barra de mens y hacer click en Compile > Project. Despus de hacer esto, en la ventana Output Window aparece el resultado de la compilacin (s la ventana antes mencionada no esta a la vista, se debe ir a la barra de mens y hacer click en View > Output Window), en caso de que la compilacin tenga errores, estos pueden ser observados dentro de la pestaa de Errors & Warnings de esta misma ventana, en esta parte aparecen los Errors & Warnings y el posible nmero de la lnea de cdigo donde puede estar el error (figura 1.10).

Figura 1.10: Ventana de estado de compilacin

2.2.3.- Al terminar la compilacin correcta del proyecto se generan una serie de archivos, estos se pueden observar en la ventana Project Window (si no esta a la vista, hacer click en la barra de mens y luego en View > Project Window) este archivo es: practica1.rpt, el cual contiene las ecuaciones, los pines de entrada y salida, as como tambin la utilizacin del SPLD (Small PLD) seleccionado; este archivo se puede ver al hacer click en la pestaa de Output Files View dentro de la misma ventana de Project Window (figura 1.11).

Eduardo Romero A. ITSON

Laboratorio de Sistemas Digitales I

Lgica Combinatoria usando PLDs (Interfaz de Programacin WARP)

Figura 1.11: Archivos de salida

2.3.- Salir del programa Galaxy haciendo click en la barra de mens sobre File > Exit o simplemente cerrando la ventana de programa.

III. Simulacin
3.1.- Despus de crear un proyecto nuevo y su correcta compilacin, ya es posible realizar una Simulacin adecuada, para esto comenzamos por abrir el programa para la simulacin, el cual se encuentra en Inicio > Programas > Cypress > Warp R6.3 > ActiveHDL Sim con este simulador comprobaremos el correcto funcionamiento de nuestro cdigo realizado.

Figura 1.12: Inicio de programa Active-HDL Sim

Eduardo Romero A. ITSON

Laboratorio de Sistemas Digitales I

Lgica Combinatoria usando PLDs (Interfaz de Programacin WARP)

3.2. El proceso de simulacin es posible realizarse en los siguientes pasos: 3.2.1. Cargar un archivo con el formato de simulacin adecuado (Active-HDLSim / ActiveVHDL; visto en el punto 2.2.1). Abrir el archivo deseado para la simulacin, para hacer esto se tiene que ir a la barra de mens del Active-HDL Sim y en la opcin de File > Open VHDL hacer clic (figura 1.13). El archivo que se tiene que cargar deber tener el formato apropiado para la simulacin (Active-HDLSim / Active-VHDL), este se crea en el subdirectorio vhd dentro del directorio de trabajo anteriormente seleccionado. Se debe seleccionar el archivo correcto, de otra forma la simulacin no podr llevarse a cabo.

Figura 1.13: Ventana para abrir archivo VDHL para simulacin

S el archivo es el correcto se desplegarn una serie de mensajes en la ventana de compilacin (figura 1.14). Uno de ellos es: Compile success 0 Errors 0 Warnings Analysis time : 0.4 [s] ELBREAD: Elaboration process. ELBREAD: Elaboration time 0.2 [s].

Figura 1.14: Ventana para la opcin console

Eduardo Romero A. ITSON

Laboratorio de Sistemas Digitales I

Lgica Combinatoria usando PLDs (Interfaz de Programacin WARP)

3.2.2.- Iniciar una Simulacin. Para comenzar la simulacin se debe ir a la barra de mens y dar click en Simulation > Initialize Simulation. Despus se procede a abrir una ventana para analizar las seales requeridas dentro del diseo, a esta ventana (figura 1.15) se le llama Waveform Window (si esta ventana no se encuentra abierta, se puede abrir una al hacer click sobre File > New Waveform).

Figura 1.15: Ventana de simulacin

3.2.3.- Agregar seales. Para continuar con el proceso de Simulacin se debern agregar las seales a la ventana Waveform, para realizar esto ir a la barra de mens y dar click en Waveform > Add Signals (figura 1.16).

Figura 1.16: Opcin para agregar seales para simulacin

Despus de realizar esto, se abrir una ventana con la lista de todas las seales de entrada, salida, entrada/salida y nodos internos de conexin que se hayan hecho en el diseo (figura 1.17). Para agregar las seales deseadas se debe hacer doble click sobre la seal deseada; se pueden agregar tantas seales como sean requeridas al mismo tiempo, para ello se deber presionar la tecla Control y hacer click sobre cada una de las seales que se requieran e inmediatamente despus hacer click sobre el botn Add.

Eduardo Romero A. ITSON

Laboratorio de Sistemas Digitales I

Lgica Combinatoria usando PLDs (Interfaz de Programacin WARP)

Figura 1.17:Ventana para seleccionar seales a simulacin

3.2.4.- Agregar seales de estimulacin. Estas seales de estimulacin son utilizadas para definir el tipo de entrada que tendr cada una de las seales que fueron agregadas a la ventana Waveform, para seleccionar el tipo que tendr la seal primero se debe de hacer click sobre la seal deseada y luego en Waveform > Stimulators (figura 1.18).

Figura 1.18: Ventana Stimulators

A continuacin se hace una breve descripcin de los tipos de seales de estimulacin que existen en Active-HDL Sim. Clock Una estimulacin de reloj produce una seal rectangular definida por los siguientes parmetros: Frecuencia, tiempo de inicio, ciclo de trabajo y valor inicial

Eduardo Romero A. ITSON

Laboratorio de Sistemas Digitales I

Lgica Combinatoria usando PLDs (Interfaz de Programacin WARP)

Custom Un estimulador personalizado es una seal definida grficamente y se realiza definiendo los valores deseados en la ventana de simulacin. Formula Este tipo de estimulador produce una seal definida por medio de una formula de una manera sencilla. La seal es definida con una secuencia pares de valor tiempo. La componente de tiempo indica el momento en el que la seal asume el valor especificado. La unidad del tiempo es en picosegundos. Para repetir con un periodo especifico se debe de agregar el modificador (r). La sintaxis de este tipo de estimulador es la siguiente: <valor> <tiempo> [, <valor> <tiempo>... ] [-r <periodo>] Ejemplo: 0000 0 ps, 1111 100000 ps, 0011 200000 ps -r 300000

0000 0 ps

1111 100000 ps

0011 200000 ps

Con la componente tiempo se especifica el momento en que la seal tomar el valor especificado. Para repetir durante un periodo especificado se agrega el modificador r. Hotkey Este tipo de estimulador es similar al de Valor, pero tiene un mecanismo ms fcil para cambiar el valor. Para realizar esto solamente se tendr que presionar una tecla especfica. Se puede realizar una lista de valores para cambiar; cada que se presione la tecla se estar cambiando entre los valores que se tienen en la lista. Predefinidos Estos tipos de estimuladores son una serie de seales de tipo reloj con distintas frecuencias o seales del tipo formula que pueden ser asignados a las seales. Para agregar un nuevo estimulador a la lista, se puede hacer en la misma ventana en la opcin Predefined. Valor Este estimulador se le asigna un valor constante a la seal deseada. Si se realiza una simulacin paso a paso, se podr cambiar el valor entre cada uno de los pasos, para hacer esto se tiene que volver a definir el valor en la ventana Stimulators.

Eduardo Romero A. ITSON

Laboratorio de Sistemas Digitales I

Lgica Combinatoria usando PLDs (Interfaz de Programacin WARP)

S la estimulacin requerida es de tipo Valor, existen varios valores a los que se podr forzar la seal deseada (figura 1.19); estos valores pueden ser: 0 1 X Z Cero Fuerte Uno Fuerte Desconocido Fuerte Alta Impedancia Otros Valores: L Cero Dbil H Uno Dbil W Desconocido Dbil U No Inicializado

- No importa

Figura 1.19: Men para asignar el tipo de valor a una seal

Si se requiere ms informacin acerca de los tipos de estimuladores, consultar la seccin de ayuda en el Active-HDL Sim. Al seleccionar el tipo de estimulador para una seal, aparecer una lista de valores que se pueden asignar a esa seal. En el caso del estimulador de tipo Valor, aparecen varios tipos, despus de seleccionar uno de los valores al cual ser forzada la seal deseada, se deber de dar click en la palabra Apply, y asi sucesivamente con todas las seales, al terminar con todas se debe de dar click en Close. Para el ejemplo que se tiene en esta practica, las seales tendrn el tipo de estimulacin de Valor y el valor al que se forzar primeramente las seales A y B sern: A= 0 y B= 0.

3.2.5.- Ejecutar una Simulacin. Despus de realizar los pasos anteriores se podr iniciar la simulacin al seleccionar de la barra de mens Simulation > Run la simulacin ser terminada despus del tiempo predeterminado por el software, tambin se puede realizar una simulacin hasta un tiempo deseado, esto se puede hacer dando click en Simulation > Run Until o tambin con la opcin >Run For y a continuacin se puede poner el tiempo hasta el cual se requiera llegar la simulacin despus de esto hacer click en OK.

Eduardo Romero A. ITSON

Laboratorio de Sistemas Digitales I

Lgica Combinatoria usando PLDs (Interfaz de Programacin WARP)

Figura 1.20: Cuadro de dilogo Run Until

Despus de simular hasta los 100ns, se volvern a seleccionar las seales A y B y se volver a cambiar los valores de ellas para realizar todas las combinaciones posibles. A continuacin se puede observar en la tabla 1.1 como se irn agregando los valores a las seales y el tiempo al que se debern de simular una por una. A 0 0 1 1 B 0 1 0 1 Tiempo 100 ns 200 ns 300 ns 400 ns

Tabla 1.1: Valores para simulacin de ejemplo

3.2.6.-Guardar una Simulacin. Para poder guardar la grafica de las seales deseadas, hacer click sobre la barra de mens y posteriormente en File > Save As, al realizar esto aparecer una ventana para dar nombre a la grafica que ser guardada, esta simulacin ser guardada en la carpeta de trabajo SRC. 3.3.- Terminar una Simulacin Despus de observar el comportamiento de una simulacin se deber terminar la simulacin de una manera correcta al hacer click en la barra de mens sobre Simulation > Stop Simulation.

3.4.- Salir de una Simulacin. Despus de guardar una simulacin, ya se puede salir del programa Active-HDL Sim, se puede salir haciendo click en File > Exit o simplemente cerrando la ventana de programa.

Eduardo Romero A. ITSON

Laboratorio de Sistemas Digitales I

Lgica Combinatoria usando PLDs (Interfaz de Programacin WARP)

IV: EJERCICIO. 4.1. Tomando como ejemplo el ejercicio anterior, realice la descripcin en VHDL del circuito sumador completo mostrado en figura X.

Figura 1.21: Diagrama del ejercicio propuesto

4.2. Una vez que el proyecto en Warp con la descripcin del circuito est compilado y sin errores, proceda a invocar el entorno de simulacin Active-HDL Sim. Para comprobar el funcionamiento del circuito para todas las combinaciones, usar el estimulador de seal de tipo CLK.

ACTIVIDADES COMPLEMENTARIAS
1. Dentro del archivo *.rpt identificar las ecuaciones que se generan, el nmero de pines utilizados (in y out) y la utilizacin de las macroceldas (dedicated inputs, clock/inputs y I/O Macrocells). 2. Buscar dentro de la ayuda de Galaxy los distintos tipos de SPLDs que se pueden programar con esta herramienta. Observar las caractersticas principales de cada uno de ellos. 3. Dentro del Language Reference Manual, buscar las caractersticas de cada tipo de dato existente en VHDL. (integer, bolean, bit, character, string, bit_vector, std_logic, std_logic_vector). 4.- Establecer las diferencias entre usar un tipo bit_vector y uno std_logic. 5. Investigue las diversas formas de describir un circuito en VHDL (comportamental, flujo de datos y estructural). Con base en ello, disee el cdigo, compile y simule alguno de los siguientes circuitos (El profesor indicar cul de todos). a) Un sumador completo de dos nmeros de 3 bits. b) Un decodificador de binario a 7 segmentos. c) Un circuito comparador de dos nmeros (A y B) de 3 bits, que tendr tres salidas para indicar s: A > B, A < B y A = B, respectivamente d) Un circuito restador completo de dos nmeros de 3 bits. e) Un circuito multiplicador de 2 nmeros de 3 bits.

Eduardo Romero A. ITSON

Laboratorio de Sistemas Digitales I

También podría gustarte