UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS FACULTAD DE INGENIERÍA ELECTRÓNICA ESCUELA DE INGENIERÍA ELECTRÓNICA
DISEÑO DIGITAL LABORATORIO LABORATORIO No1 TUTORIAL DEL MAX + PLUS II
Cátedra: Ing. Alfredo Granados Ly. Ing Dario Utrilla Salazar 2005
USMSM-FIE
DISEÑO DIGITAL
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS FACULTAD DE INGENIERÍA ELECTRÓNICA ESCUELA DE INGENIERÍA ELECTRÓNICA DISEÑO DIGITAL LABORATORIO No1 GUIA RAPIDA DE MAX + PLUS II “
”
El presente manual pretende dar las pautas básicas para que el alumno se inicie en el diseño y simulación de circuitos digitales utilizando el Max Plus II de Altera. El Max Plus II tiene 2 directorios que han sido creados al momento en que se instaló: C:\max2work C:\maxplus2 En el primero se almacenarán los trabajos que serán creados por los usuarios, también contiene los directorios en el cual encontramos algunos ejemplos de diseño. Suponemos que el directorio de trabajo es MAX2WORK (ud, puede crear su propio directorio de trabajo). Para comenzar a trabajar debe dar un doble click en el icono del menú Programas, el cual tendrá la pantalla que se muestra a continuación.
Comenzaremos a indicar el significado de los principales botones que vamos a utilizar:
Jerarquía de diseño: muestra los diferentes niveles que constituyen nuestro proyecto de diseño.
Editor Floorplan: Herramienta que permite cambiar el diseño físico que asigna el Max Plus II del circuito a un dispositivo de Altera.
Compilador: Permite el chequeo de errores del circuito dejándolo listo para programarlo en el dispositivo.
Simulador: Visualiza la respuesta de nuestro circuito a los estímulos aplicados a las entradas. Cátedra: Ing° Alfredo Granados Ly- Ing° Dario Utrilla Salazar 2
Laboratorio No 1
USMSM-FIE
DISEÑO DIGITAL
Analizador de Tiempos: Analiza la performance del proyecto, teniendo en cuenta los retardos de propagación de las rutas entre los nodos de fuente y destino. Iniciamos el uso de esta herramienta CAD realizando el diseño de un sumador binario de 8 bits. El circuito a diseñar debe de tener una señal externa con el cual se inicia la operación y una señal de salida que indica que ha finalizado y ya se tiene el resultado listo. El proceso debe ser como el algoritmo que se utiliza para sumar 2 número usando papel y lápiz:
A=
B =
111 1 10111010 + 01001011 100000101
Solución: Debemos de tener una Unidad de control que de inicio a la operación y que detenga el proceso cuando se tenga el resultado. También esta unidad debe de encargar de ingresar los datos al sistema Procesador de Datos, como se muestra en el siguiente gráfico:
La unidad de proceso debe de tener un Full Adder debido a que la suma se realiza bit por bit. Debemos de tener 2 registros con carga paralela y salida serial y uno con entrada serial y salida paralela, para el resultado.
A) Diseño de la Unidad de Control: El diagrama ASM podría ser:
Cátedra: Ing° Alfredo Granados Ly- Ing° Dario Utrilla Salazar 3
Laboratorio No 1
USMSM-FIE
DISEÑO DIGITAL
Se considera una señal S que da inicio a la carga de los datos a los registros con entradas paralelas y borrar el contenido de un registro que lleva la cuenta de las operaciones que vamos a realizar (8 sumas). Z es una señal que ingresa a la unidad de control e indica el momento en que se terminó de realizar la suma. Puede ser la salida de un comparador ó una de las salidas de un decodificador de 4 a 16 que indica que esta en la última operación. Realizaremos el circuito de control utilizando el Max Plus II: Utilizando el botón de Nuevo en la barra de herramientas aparecerá el siguiente cuadro de diálogo:
Vamos a crear un archivo de gráfico donde dibujaremos nuestro circuito. Al pulsarel boton OK aparecerá el Editor de Gráfico. Hay que tener en cuenta que el archivo que vamos a grabar tiene como extensión: .gdf
Haciendo doble click en la pantalla del editor aparecerá un menú donde podemos ingresar el nombre del símbolo que nosotros deseamos colocar. Hay que tener en cuenta lo siguiente, existen varias bibliotecas de símbolos disponibles para su uso por el editor gráfico:
prim: Primitivas (aqui se definen las compuertas lógicas, flip-flops, pines de entrada/salida)
mega_lpm: Megafunciones (biblioteca de módulos parametrizados, y megafunciones)
mf: Macrofunciones (funciones TTL, y otras diseñadas por Altera)
Bibliotecas del usuario (creadas por el usuario o modificaciones de bibliotecas existentes)
Cátedra: Ing° Alfredo Granados Ly- Ing° Dario Utrilla Salazar 4
Laboratorio No 1
USMSM-FIE
DISEÑO DIGITAL
A continuación se muestra el cuadro de diálogo para extraer los símbolos:
Algunos ejemplos para ingresar los nombres de símbolos son: or2: compuerta OR de 2 entradas and2: compuerta AND de 2 entradas. not: Inversor input: entrada al circuito. output: salida del circuito. 74165: registro de desplazamiento con carga paralela. dff: flip-flop D xnor: nor exclusivo vcc: +5 voltios - 1 lógico gnd: 0 voltios – 0 lógico, etc. Investigue que otros símbolos puede obtener de la librería de componentes que tiene el Max Plus II. Entonces dibujamos el circuito de la unidad de control. Para esto utilizamos un FF tipo D por tener 2 estados. Partiendo de las ecuaciones que tenemos de la tabla de estados tenemos: D(t) = SQ' + Z'Q o D(t) = SQ' + (Z + Q') '
Tendremos el circuito que se muestra en la siguiente gráfica. Cátedra: Ing° Alfredo Granados Ly- Ing° Dario Utrilla Salazar 5
Laboratorio No 1
USMSM-FIE
DISEÑO DIGITAL
Se puede apreciar que hay una señal de control INIC que es asíncrona y es la que se encargará de asegurar que el estado inicial del FF D sea de 0
En resumen podemos concluir que:
Para el ingreso de símbolos: Hacer dobleclick con el Botón izquierdo.
Desplazamiento de símbolos: Click & arrastre del símbolo con el Botón izquierdo.
Dibujo de conexiones: Use la barra de herramientas para elegir el modo de dibujo, dibuje usando el Botón izquierdo, y termine con Esc
Copia de símbolos: Use el Botón derecho para activar el menú de copiar/pegar, copie el símbolo pre-existente, pegue el nuevo símbolo
Manipulación de pines: Use el Botón derecho para activar el menú de edición de nombres de pines, hacer asignaciones, etc. A continuación grabamos el circuito con el nombre de CONTROL1.GDF (Menu File, Save). El Max Plus II permite definir todo este circuito como un símbolo y así poder utilizarlo en otros diseños. Para esto damos un click en el menú File , Create Default Symbol como se muestra: Para ver como ha sido creado el símbolo, damos un click en el comando File, Edit Symbol. El cual mostrará la siguiente figura:
Cátedra: Ing° Alfredo Granados Ly- Ing° Dario Utrilla Salazar 6
Laboratorio No 1
USMSM-FIE
DISEÑO DIGITAL
Este circuito ya lo podemos compilarlo y simularlo, este último paso quedará pendiente para simular todo el circuito.
B) Diseño de la Unidad de Proceso: El diseño de la unidad de proceso se muestra en una lámina a parte. Allí se pude apreciar que se utilizan los siguientes integrados:
74165 (entrada paralela, salida serial): Este CI el pin de control CLKINH (Inhibe la señal de reloj cuando es un 1 lógico, es por esa razón que se lleva a masa), el pin de control STLD (Desplazamiento/Carga Paralela = con un nivel bajo se carga el dato, con un 1 lógico se procede al desplazamiento. La entrada serial (SER) es llevada a 0. Es por esta razón que la suma se debe de detener al sumar el último bit de mayor peso de los registros. Un Sumador Completo de 1 bit: Este es un circuito también diseñado (llamado FULLADER.GDF)como el circuito de control. También se ha creado el símbolo para utilizarlo en el diseño total del circuito.
Se utiliza un FF D para mantener el carry para la siguiente suma. Un 74164 que tiene un pin de control de CLRN (para llevar a cero el contenido del registro que contendrá el resultado) y las entradas A y B.
Cátedra: Ing° Alfredo Granados Ly- Ing° Dario Utrilla Salazar 7
Laboratorio No 1
USMSM-FIE
DISEÑO DIGITAL
Un 74193 que se utiliza para llevar la cuenta de las 8 sumas a realizar y las salidas se conectan a un decodificador de 4 a 16, donde la salida Q8 será la salida Z del circuito e indicará la finalización de la operación de suma.
La salida T0 de la unidad de control inicializará los registros: cargará los datos externos, limpiará el contador, el registro donde se alojará el resultado y el carry de entrada para la primera suma.
Compilar el Circuito: Necesitamos verificar el buen funcionamiento del circuito. Para esto el Max Plus II traducirá el archivo que contiene el circuito (llamado MUL_SER.GDF) a un código que será llevado a un dispositivo de Altera. Por el momento no hablaremos de los dispositivos disponibles por el software de evaluación del Max Plus II, dejaremos que el Max Plus II asigne un dispositivo por defecto (puede ser de la Familia MAX5000, dispositivo = AUTO. Ver Menu Assign, Device). Grabamos nuestro diseño con el nombre MUL_SER.GDF e indicamos que este es nuestro proyecto a compilar. Para eso seleccionamos:
File, Project, Set Project Current File.
Una vez hecho esto compilamos nuestro diseño haciendo un click en el botón que se muestra.
Aparecerá en pantalla la siguiente ventana, donde se muestra todas las opciones que ejecutará el Max Plus II cuando pulsemos el botón de START. El proceso debe de arrojar cero errores.
Cátedra: Ing° Alfredo Granados Ly- Ing° Dario Utrilla Salazar 8
Laboratorio No 1
USMSM-FIE
DISEÑO DIGITAL
No hay que olvidar que al compilar se chequea el proyecto de los errores, se realiza una síntesis lógica, además acomoda el proyecto a un dispositivo de Altera generando un archivo de salida para una posterior simulación y programación, actualizandose la jerarquía del proyecto. Si el circuito arroja algún error, habrá que corregirlo, ya que no podemos seguir al siguiente paso que es la simulación. Si esto ocurriera se muestra una ventana que indica el estado del proceso de compilación y también los errores que encuentra el Max Plus II.
Simular el circuito: Para simular el circuito hay que entrar al editor de forma de ondas. Para esto seleccionamos el Max Plus II, Waveforms Editor el cual aparecerá la ventana que se muestra a continuación.
Con el Editor de Forma de Onda también podemos realizar el diseño de un circuito. Es una de los tipos de entrada que soporta el Max Plus II.
Hacemos un click con el botón derecho el cual muestra un menú contextual donde los principales comandos a estudiar son Insert Node y Enter Nodes from SNF . El primero permite ingresar los nodos definidos como entrada, salida, grupo, registro, combinacional y todos, pulsando en el botón LIST aparecen los nodos del circuito y de allí seleccionamos los que analizaremos. Otra opción es pulsar la segunda opción el cual ingresará los nodos desde el archivo MUL_SER.SNF creado en los pasos anteriores. Inicialmente no hay nodos disponibles, para esto pulsamos el botón LIST, el cual mostrará los nodos disponibles en forma sombreada. Cátedra: Ing° Alfredo Granados Ly- Ing° Dario Utrilla Salazar 9
Laboratorio No 1
USMSM-FIE
DISEÑO DIGITAL
Seleccionaremos todos los nodos de la primera ventana y la pasamos a la segunda como se muestra en la siguiente figura. Aparecerán los nodos de entrada y salida, así como los grupos. Por defecto la escala de tiempo ha
sido definido solo hasta 1.0 microsegundos. ud puede cambiar a un tiempo mayor, seleccionando el menú FILE, END TIME... y escribiendo el nuevo tiempo. Para minimizar los pasos (grid) a visualizar en su monitor de PC, pulse simultáneamente las teclas CTRL + SHIFT + BARRA ESPACIADORA, con lo cual se ajustará automáticamente.
También puede cambiar el tamaño de los pasos a un valor predeterminado, para lo cual seleccione OPTIONS, GRID SIZE... En la ventana anterior se muestra los nodos y grupos del circuito. Por defecto los valores asignados a las entradas son CEROS y las salidas tienen un nivel indeterminado (X). Para asignarle un valor tenemos los siguientes botones: Coloca a un nivel bajo. Coloca a un nivel alto. Describe un nivel indefinido. Describe una alta impedancia. Cátedra: Ing° Alfredo Granados Ly- Ing° Dario Utrilla Salazar 10
Laboratorio No 1
USMSM-FIE
DISEÑO DIGITAL
Invierte la señal. Señal de reloj. Asigna un valor de cuenta a un nodo o grupo tomando como referencia el tamaño del paso. Para asignar un valor en un determinado tiempo para un nodo, sólo debemos de arrastrar el ratón pulsando el botón izquierdo por todo el intervalo de tiempo que deseamos fijar y posteriormente pulsar uno de los botones descritos anteriormente. Finalmente quedará definido las siguientes señales para la simulación:
Antes de pasar a la simulación grabamos el archivo con el nombre MUL_SER.SCF y luego pulsamos el botón de simulación. Mostrándose una ventana como en la siguiente figura:
Cátedra: Ing° Alfredo Granados Ly- Ing° Dario Utrilla Salazar 11
Laboratorio No 1
USMSM-FIE
DISEÑO DIGITAL
Antes de pulsar el botón de START, analizamos las entradas:
La entrada S e INIC están en los primeros 50 ns en bajo y después todo el tiempo en estado alto.
La señal de reloj tiene un periódo de 100 ns.
La entrada del dato al registro B es 01010101 (55H) y al registro A es 00110011 (33H).
Ahora, pulsamos el botón de STAR y tendremos como resultado:
Se muestra el resultado de la operación, así como las sumas previas. También la salida Z que se activa indicando que ha finalizado la operación. De esta forma ud. puede simular los circuitos que diseña utilizando esta herramienta de diseño CAD.
Se ha tratado de realizar en una forma clara y rápida los procedimientos que debe de realizar ud. para simular los circuitos. No se han detallado la mayoría de las opciones que dispone el Max Plus II. Si desea mayor información del uso de este software le recomendamos que revise el manual: MAX + PLUS II Getting Started, sección 3: Max Plus II Tutorial.
Cátedra: Ing° Alfredo Granados Ly- Ing° Dario Utrilla Salazar 12
Laboratorio No 1