Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
Laboratorio equipado con computadoras donde se encuentre instalado el paquete computacional Warp R6.3.
Pre-reporte:
1.2.- Despus de abrir el programa Galaxy, seleccionar File > New (figura 1.2).
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].
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.
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.
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.
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.
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.
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).
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
--Arquitectura --Inicio del comportamiento --or (palabra reservada) --Final del comportamiento
Nota: Este ejemplo ser usado posteriormente en las fases de compilacin y simulacin.
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.
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).
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).
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.
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.
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].
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).
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).
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.
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).
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
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.
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
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.
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
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.
IV: EJERCICIO. 4.1. Tomando como ejemplo el ejercicio anterior, realice la descripcin en VHDL del circuito sumador completo mostrado en figura X.
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.