Sunteți pe pagina 1din 61

UNIVERSIDAD DE COLIMA

FACULTADDEINGENIERAMECNICAYELCTRICA

Taller de Programacin en FPGA


Objetivo:

Disear circuitos digitales programando dispositivos FPGA


Contenido temtico:
Dispositivos lgicos programables. Introduccin a las herramientas de Xilinx para el diseo y la simulacin de circuitos digitales. Herramientas de Xilinx para la programacin de dispositivos lgico programables Principios de circuitos secuenciales y latches. Flip-flops, circuitos secuenciales activados por reloj. Creacin de smbolos y manejo de buses en el editor de Esquemticos del ISE.

Instructor

Jess Uriel Mora Quiones


Se desempea actualmente como profesor por asignatura en la Facultad de Ingeniera Mecnica y Elctrica dependiente de la Universidad de Colima. Estudi Ingeniera en Comunicaciones y Electrnica en la Universidad de Colima en la Facultad de Ingeniera Mecnica y Elctrica

Duracin: 20 horas Dirigido a: Egresado de la Carrera de Ingeniera en comunicaciones y Electrnica Fechas y horarios: Sbados del 5 de mayo al 2 de junio de 2012 de 8:00-12:00hrs. Lugar: Laboratorio de Microelectrncia-FIME

NDICE

Actividad 1: Dispositivos lgicos programables Memorias prom para disear circuitos lgicos. PLA (Programmable Logic Array)... PAL (Programmable Array Logic)... CPLD (Complex Programmable Logic Device).. Actividad 2: Introduccin a las herramientas de Xilinx para el diseo y la simulacin de circuitos digitales..............................

4 4 4 5 6

8 Actividad 3: Herramientas de Xilinx para la programacin de dispositivos lgicos programables 23 Actividad 4: principios de circuitos secuenciales y latches... Circuitos lgicos realimentados (secuenciales) Circuito latch SR.. Actividad 5: Flip-flops, circuitos secuenciales activados por reloj.. Seal de reloj (clock) Flip-flop tipo D. Descripcin formal de un flip-flop... Flip-flop JK... Flip-flop tipo T. Actividad 6 : Creacin de smbolos y manejo de buses en el editor de esquemticos del ise Creacin de smbolos en el ISE Uso de buses en el ISE. 31 31 33 38 38 38 41 42 45

48 48 50

Actividad 1: Dispositivos Lgicos Programables


Profesor: Jess Uriel Mora Quiones Mdulo: Taller de programacin en FPGA. Abstract
Esta actividad es una introduccin a los dispositivos lgicos programables. La actividad est planeada con un enfoque de aprendizaje colaborativo.

I. DISPOSITIVOS LGICOS PROGRAMABLES Un dispositivo lgico programable, o PLD (Programmable Logic Device), es un dispositivo cuyas caractersticas pueden ser modificadas y almacenadas mediante programacin. El principio de sntesis de cualquier dispositivo lgico programable se fundamenta en el hecho de que cualquier funcin booleana puede ser expresada como una suma de productos. Un PLD contiene una arquitectura general predefinida en la que el usuario puede programar el diseo final del dispositivo empleando un conjunto de herramientas de desarrollo. La sntesis de un diseo lgico en un PLD es la generacin de una lista de conexiones, con las cuales se configurar el dispositivo para que realice la funcin lgica deseada. La sntesis no suele ser tarea del diseador, ya que los entornos de desarrollo para PLD ya incluyen este tipo de herramientas computacionales. Los dispositivos PLD ms comunes son: PROM (Programmable Read Only Memory). PLA (Programmable Logic Array). PAL (Programmable Array Logic). CPLD (Complex Programmable Logic Device). FPGA (Field Programmable Gate Array). Ventajas: La programacin del dispositivo se hace desde una computadora, usualmente a travs del puerto paralelo. El tiempo de desarrollo es mucho menor a las anteriores opciones de diseo. La fundidora slo provee el chip, el software de desarrollo y las libreras. La realizacin y verificacin del diseo, as como la programacin del dispositivo se pueden hacer sin necesidad de equipo sofisticado. Una gran gama de dispositivos de distintas capacidades y costos. Desventajas: Tiene el costo por chip ms alto. La velocidad del chip es limitada en comparacin con las otras tecnologas. Se desperdicia ms semiconductor que otras tecnologas ASIC. II. MEMORIAS PROM PARA DISEAR CIRCUITOS LGICOS. Las memorias son usadas para almacenar datos binarios, estos datos pueden ser interpretados como la implementacin de un circuito combinacional, expresados como una funcin Booleana en forma cannica como suma de productos. Las memorias PROM slo pueden ser programadas una sola vez. Para entender como una memoria puede funcionar como un circuito combinacional, es necesario analizar la implementacin de funciones lgicas usando arreglos de conexiones. La Figura 5.1 muestra los smbolos para las compuertas AND y OR usando un arreglo de conexiones, en lugar de usar varias lneas hacia las compuertas, se emplea una sola lnea como estrada, se dibujan varias lneas perpendiculares a sta con las posibles seales de entrada. Para indicar una conexin hacia la compuerta se pone punto (), la interseccin entre la lnea que va a compuerta y la lnea de la seal que se desea conectar a la entrada de la compuerta.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 1

Figura 5.1: Implementacin de compuertas con arreglos de conexiones.

El diagrama de la Figura 5.2a representa una memoria PROM 164 (16 localidades de 4 bits cada una), Un decoder es usado decodificar las 4 lneas de direcciones (A3, A2, A1, A0) hacia alguna de las 16 localidades, cada salida del decodificador es una localidad de memoria. Recuerde el funcionamiento del decoder, cuando cierta direccin est presente en la entrada, la salida Y que tenga ese ndice tendr un valor de '1' y las dems salidas permanecern en '0'. Por ejemplo si A3A2A1A0="0011", entonces la lnea de salida 3 tendr un '1', y las dems se quedarn en '0'.

Figura 5.2: Memorias PROM usadas como PLD.

La siguiente es la tabla de verdad de dicho decodificador.

A3A2A1A
0

"0000" "0001" "0010" "0011" "0100" "0101" "0110" "0111" "1000" "1001" "1010" "1011" "1100" "1101" "1110" "1111"

Y 0 '1' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0'

Y 1 '0' '1' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0'

Y 2 '0' '0' '1' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0'

Y 3 '0' '0' '0' '1' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0'

Y 4 '0' '0' '0' '0' '1' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0'

Y 4 '0' '0' '0' '0' '0' '1' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0'

Y 6 '0' '0' '0' '0' '0' '0' '1' '0' '0' '0' '0' '0' '0' '0' '0' '0'

Y 7 '0' '0' '0' '0' '0' '0' '0' '1' '0' '0' '0' '0' '0' '0' '0' '0'

Y 8 '0' '0' '0' '0' '0' '0' '0' '0' '1' '0' '0' '0' '0' '0' '0' '0'

Y 9 '0' '0' '0' '0' '0' '0' '0' '0' '0' '1' '0' '0' '0' '0' '0' '0'

Y1 0 '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '1' '0' '0' '0' '0' '0'

Y1 1 '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '1' '0' '0' '0' '0'

Y1 2 '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '1' '0' '0' '0'

Y1 3 '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '1' '0' '0'

Y1 4 '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '1' '0'

Y1 5 '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '1'

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 2

Cuatro compuertas OR proveen los cuatro bits de salida. El rea para hacer conexiones entre las salidas del decoder y las entradas de las OR se llama arreglo de compuertas OR (OR array). Cuando no hay conexiones (Figura 5.2a), las salidas de las OR sern '0', sin importar los valores de las lneas de direcciones. Con conexiones como en la Figura 5.2b, las salidas de memoria dependern del dato que este almacenado en la direccin seleccionada. Si la direccin seleccionada es A3A2A1A0="0000", entonces la lnea 0 ser igual a '1'. Debido a que ninguna conexin se hizo entre esa lnea y las compuertas OR, las cuatro salidas tendrn un '0'. As en la localidad 1 de la memoria el dato almacenado es D3D2D1D0="0000". Si la entrada es A3A2A1A0="0001", entonces la lnea 1 tendr un '1', la cual est conectada a las compuertas OR de las salidas D1 y D0, por lo tanto D1='1'y D0='1', y el dato almacenado en la localidad 1 ser "0011". Por ltimo, el dato de la localidad 3 es "1101", y el dato almacenado en resto de las localidades es "0000". Una memoria PROM 164 puede usarse para sintetizar hasta 4 funciones Booleanas de 4 variables de entrada, las cuales son las lneas de direccin (A3, A2, A1, A0) de la PROM. Las 16 localidades de memoria son 16 posibles minitrminos para las 4 funciones lgicas, que son las salidas del arreglo OR (D3, D2, D1, D0). Para incluir un minitrmino en una funcin de salida, se hace una conexin entre la salida del decoder que corresponda al minitrmino con la entrada de la compuerta OR, cuya salida ser la funcin lgica. En la Figura 5.2b se puede preciar que la funcin Booleana asociada con la salida D0 es D0= A3A2A1A0 + A3 A2 A1A0, y para las otras salidas son D1= A3A2A1A0, D2 = D3 = A3A2A1A0. Problema 5.1: Diseo lgico con memorias PROM. En la Figura 5.3, se muestra la sntesis de 2 funciones lgicas, F1 y F2, por medio de una memoria PROM 164, donde: D2 = w'x'yz + w'xyz' + w'xyz + wx'y'z' + wx'yz' + wxyz' D3 = w'x'y'z' + w'xy'z' + w'xy'z + w'xyz' + w'xyz (5.1) (5.2)

Figura 5.3: Ejemplo del uso de memorias PROM para el diseo lgico.

Usando las 2 salidas disponibles de una memoria PROM 164 de la Figura 5.3, sintetice las funciones lgicas F3 = w'x'yz + wx'yz' + wx'yz + xyz (5.3) F4 = wx'y' + w'z (5.4) Llame al instructor para registrar el avance. (20 puntos).

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 3

III. PLA (Programmable Logic Array) Cuando las memorias PROM son usadas para sintetizar funciones lgicas, es muy comn que varias localidades se queden sin usar (vea la Figura 5.3). Adems para sintetizar un minitrmino con un nmero de variables menor al nmero de lneas de direcciones, es necesario agregar los minitrminos con todas las combinaciones de las variables no incluidas en el minitrmino deseado, lo cual implica ms desperdicio de semiconductor. En la Figura 5.4 se muestra una PLA de 484. Las PLA fueron diseadas para sintetizar exclusivamente circuitos combinacionales, pero con un menor desperdicio, en comparacin de las PROM. Debido a que las PLA poseen un arreglo de compuertas AND (AND array) en lugar del decoder de las memorias PROM, el diseador tiene la opcin de especificar solamente los minitrminos que necesite. El arreglo de compuertas OR es similar al de las PROM, permitiendo al diseador que especifique cuales minitrminos se sumarn en una salida.

Figura 5.4: Diagrama de una PLA de 484.

Adems, las PLA tienen la capacidad de invertir no la salida de la OR, conectando una entrada de una compuerta XOR a '1' '0', y la otra entrada a la salida de la OR. Cuando la entrada se conecte a '1', la salida de la XOR ser igual al negado de la salida de la OR, y cuando se conecte a '0', la salida de XOR ser igual a la salida de OR. Problema 5.2: Diseo lgico con PLA. En la Figura 5.5, se muestra la sntesis de una funcin lgica, F=w'y' + x'z + w'xz' + wyz + wx'y, en una PLA 484,

Figura 5.5: Ejemplo del uso de PLA para el diseo lgico.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 4

Usando las 3 salidas disponibles de una PLA de la Figura 5.4, sintetice las siguientes funciones lgicas, pero sin afectar la funcin lgica de la salida F. G = w'x'yz + wx'yz' + wxyz + xyz H = wx'yz' + x'z I = w'xz' + wx'y + wxyz Llame al instructor para registrar el avance. (20 puntos). IV. PAL (Programmable Array Logic) Los dispositivos PAL son muy similares a los PLA, excepto que el arreglo OR no es programable. Por lo que los hace menos flexible que los PLA, pero ms fciles de programar y su velocidad de operacin es mayor. En la Figura 5.6 se muestra una PAL 434, con 4 entradas y 4 salidas, cada salida acepta slo 3 minitrminos. (5.5) (5.6) (5.7)

Figura 5.6: Dispositivo PAL.

Problema 5.3: Diseo lgico con dispositivos PAL. En la Figura 5.7, se muestra la sntesis de una funcin lgica, F0=w'x'yz + wx'yz', en un PAL. En el mismo dispositivo sintetice las funciones: F1=wxyz + wx'yz', F2 = w'x'yz + wx'yz' + wxyz y F3 = wx'yz' + wx'yz

Figura 5.7: Ejemplo del uso de PLA para el diseo lgico. Llame al instructor para registrar el avance. (20 puntos).

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 5

V. CPLD (Complex Programmable Logic Device) Las memorias PROM, los PLA y los PAL sirven nicamente para sintetizar circuitos combinacionales de baja densidad de compuertas. Los dispositivos CPLD se especializan en sinterizar circuitos secuenciales de mediana densidad de compuertas. Un CPLD est formado por Bloques Funciones Lgicas (BF, Block Function) interconectados globalmente por una Matriz Avanzada de Interconexin (AIM, Advanced interconect Matrix). Los BF se componen de cierto nmero de Macro-Celdas lgicas (MC, Macrocell), y usan un PAL para implementar las funciones lgicas que comparten todas las macroceldas del BF, que van se conectan a los bloques Entrada-Salida (I/O Blocks) y stos se conectan a los pines del circuito integrado. Las macroceldas se componen de flip-flop, en muchas ocasiones configurables, pero en la mayora de los casos son flip-flops tipo D. En la Figura 5.8 se muestra un diagrama a bloques de un CPLD CoolRunner2 de Xilinx.

Figura 5.8: Arquitectura de la familia de CPLD CoolRunner2 de Xilinx.

Problema 5.4: Diseo lgico con dispositivos CPLD. En la Figura 5.9, se muestran 2 macroceldas pertenecientes al mismo BF. Sintetice en este circuito un flipflop tipo T y otro tipo JK, configurando la PAL del BF.

Figura 5.9: Dos Macroceldas simplificadas de un mismo FB de un CPLD.

Llame al instructor para registrar el avance. (40 puntos).

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 6

VI. FPGA (Field Programmable Gate Array) Esta arquitectura son celdas lgicas que se comunican unas con otras a travs de celdas de interconexin IOB: Input-Output Block CLB: Configurable logic Block CDM: Digital Clock Manager Multiplicadores de 18 bits Bloques de 18 Kbits de Memoria RAM

Figura 5.10: Arquitectura de la Familia de FPGA Spartan 3 de Xilinx

The logic array consists of logic array blocks (LABs). Each LAB contains eight logic elements (LE) and a local interconnect. The LE shown in Figure 25 is the smallest logical unit in the FLEX 10K architecture. Each LE consists of a 4-input look-up table (LUT) and a programmable flip-flop. The 4-input LUT is a function generator made from a 16-to-1 multiplexer that can quickly compute any function of four variables. Refer to section 4.8 on how multiplexers are used to implement Boolean functions. The four input variables are connected to the four select lines

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 7

ACTIVIDAD 2: Introduccin a las Herramientas de XILINX para el Diseo y la Simulacin de Circuitos Digitales
Profesor: Jess Uriel Mora Quiones Mdulo: Taller de programacin en FPGA.

Abstract
Esta actividad es una introduccin al uso de las herramientas Xilinx para el diseo y la simulacin de circuitos digitales. La actividad est planeada con un enfoque de aprendizaje colaborativo.

El hardware y el software utilizado son especiales para actividades de enseanza y verificacin de circuitos digitales usando dispositivos lgicos programables, en este caso FPGA (Field Programmable Gate Array). Equipo requerido por cada grupo es: PC con el ISE WebPack versin 10.1. http://www.xilinx.com. Sistema de desarrollo FPGA Basys2 de Digilent Inc. http://www.digilentinc.com.

Figura 1. Tarjeta Basys2 y su diagrama a bloques.

El objetivo de esta actividad es conocer paso a paso las herramientas de XILINX para el diseo y simulacin de circuitos digitales. Como ejemplo se tomar el diseo de un simple multiplexor de 2 a 1 lnea, como el que se aprecia en la Figura 2. Recuerde que un circuito multiplexor transfiere los datos de la entrada (A o B) seleccionada por las lneas de seleccin (SEL) a la salida del circuito (Z).
A SEL Z

Figura 2. Multiplexor de 2 a 1 lnea con las entradas A y B y el selector SEL como puertos de entrada y Z como puerto de salida.

Las etapas de diseo que cubre esta actividad son: 1. La entrada del diseo usando diagramas esquemticos. 2. La simulacin del diseo (verificacin en software) usando el ISE Simulator. Abra el programa Project Navigator en el Botn "Inicio", luego hay que ir a "Todos los Programas>Xilinx ISE Design Suite 10.1->ISE->Project Navigator", entonces aparecer una pantalla como la siguiente:

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 8

Figura 3. Ventana principal del Project Navigator.

La ventana del Project Navigator consiste en: 1. 2. 3. 4. 5. 6. El men principal, donde podemos realizar todas las operaciones. La barra de herramientas donde estn las tareas ms comunes. Ventana de archivos fuente del proyecto, donde se administran los archivos que forman parte del proyecto. Ventana de procesos donde aparecen las acciones que se pueden realizar al archivo fuente que est seleccionado. El espacio de trabajo, donde principalmente se realiza la edicin de los archivos fuentes. La consola de mensajes, donde aparece el estatus de los procesos y los mensajes de error y de advertencia (warning).

Cree un nuevo proyecto seleccionando File del men principal, luego en la pestaa haga clic en New Proyect.... Aparecer la siguiente ventana:

Figura 4. Ventana para poner del proyecto y su localizacin.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 9

Introduzca el nombre del proyecto en el cuadro de texto Project Name y la localizacin del proyecto en Project Location, si es necesario cree un flder llamado ProyectosISE, u otro de su eleccin, donde se almacenarn los futuros proyectos, luego seleccione en la opcin Schematic en el tipo de diseo principal del proyecto en men pop-up Top-Level Module Type. Haga clic en el botn Next. Aparecer la ventana:

Figura 5. Ventana para introducir los datos del chip.

En la primera parte se debe especificar el chip que se va programar; la categora del producto es General Purpose, luego seleccione la familia a la que pertenece el dispositivo (Family), seleccione Spartan 3E; el chip en especfico (Device) es XC3S250E; el encapsulado (Package) es CP132 y su grado de velocidad (Speed) es -4. La segunda parte se definen las herramientas de sntesis y simulacin que se van a utilizar, ISE Simulator (VHDL/Verilog) en la opcin Simulator y XST (VHDL/Verilog) en Synthesis Tool y VHDL en Preferred Lenguage. Los datos deben corresponder con el FPGA de la tarjeta Basys2, ya que si no son correctos no ser posible programarlo. Verifique que los datos correspondan con la Figura 5. Haga clic en el botn Next. Aparecer la ventana:

Figura 7. Ventana para agregar una nueva fuente al proyecto.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 10

En esta ventana se pueden ir creando los archivos fuente del proyecto, en este caso slo va ser necesario crear un archivo de diagrama esquemtico, para ello seleccione el botn New Source con lo cual aparecer una nueva ventana como en la Figura 8. Del lado izquierdo estn los tipos de archivos que podemos agregar al proyecto, asegrese de seleccionar Schematic. En el lado derecho se introduce el nombre del archivo y su localizacin.

Figura 8. Ventana para definir el nombre y el tipo de una nueva fuente (diagrama de esquemticos).

Haga clic en el botn Next, entonces aparecer una ventana con informacin del archivo que se acaba de crear.

Figura 9. Ventana con informacin del la nueva fuente agregada al proyecto.

Haga clic en el botn Finish para terminar de agregar el archivo. Se regresar la ventana donde se comenz a agregar la fuente, pero ahora se listar el archivo mux2a1.sch indicando que es del tipo esquemtico, aqu se tiene la opcin de seguir agregando diseos al proyecto, pero por el momento esto no es necesario.

Figura 10. Ventana para agregar una nueva fuente al proyecto (re-visitada).

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 11

Haga clic en el botn Next. Aparecer la ventana de la Figura 11. En esta ventana se pueden agregar archivos ya existentes al proyecto, en este caso no se agregarn, as que haga clic en el botn Next.

Figura 11. Ventana para agregar fuentes ya existentes al proyecto.

Aparecer la siguiente ventana con informacin general del proyecto recin creado (Figura 12).

Figura 12. Ventana con informacin general del proyecto.

Haga clic en el botn Finish para regresar a la ventana del Project Navigator y empezar a trabajar en el proyecto. Una vez finalizado este proceso aparecer la siguiente ventana:

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 12

Figura 13. Ventana del Project Navigator despus de crear un proyecto nuevo.

Para facilitar la edicin de este archivo es recomendable desincorporar el programa editor de esquemticos de la ventana del Project Navigator, haciendo clic en el icono como se indica en la Figura 13 o seleccionando Windows>Float. Al desincorporar el editor de esquemticos del Project Navigator aparecer la siguiente ventana del editor de esquemticos.

Figura 14. Ventana del Editor de Esquemticos.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 13

La ventana de esquemticos consiste bsicamente de: 1. Un men principal. 2. Una barra de herramientas con las tareas ms comunes. 3. Una pestaa de opciones Options, para configurar las acciones elegidas. 4. Una pestaa de smbolos Symbols, donde estn los diferentes componentes (compuertas lgicas, flipflops, registros latches, contadores, etc.) que se pueden utilizar para hacer los diseos de circuitos lgicos. 5. Una hoja de trabajo donde se colocarn y conectarn los componentes. Para empezar a trabajar se deben pegar los componentes lgicos en la hoja de trabajo, haciendo clic en la pestaa Symbols. Note que aparecen dos cuadros: Categories y Symbols, para denotar que todos los componentes o smbolos estn clasificados en categoras, por ejemplo las compuertas AND, OR, INV, XOR, etc. estn en la categora Logic, por lo tanto si se desea agregar una compuerta lgica OR de 2 entradas se debe de seleccionar Logic del cuadro de categoras y luego buscar el smbolo or2 del cuadro Symbols, para poder arrastrar dicha compuerta a la hoja de trabajo se debe tener seleccionado el botn de la barra de herramientas , y hacer clic izquierdo donde se desea colocar, vea la Figura 15.

Figura 15. Introduciendo compuertas lgicas a la hoja de trabajo.

Tambin hay un cuadro de texto Symbol Name Filter para buscar rpidamente el smbolo deseado o filtrar alguna clase de componentes a partir del texto que introduzcamos, para las compuertas lgicas podemos seguir la siguiente nomenclatura: [Nombre de compuerta: and, or, inv, etc.][# de entradas][b][# de entradas negadas]

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 14

Donde el parmetro opcional [b] indica que la compuerta tiene al menos una entrada negada. Si deseamos encontrar una compuerta OR de dos entradas debemos teclear or2 y para una AND de dos entradas con una de las entradas negada escribiremos and2b1. En la opcin Orientation podemos girar, a nuestra conveniencia, el smbolo seleccionado. Haciendo clic el botn Symbol Info se abrir un archivo de ayuda con informacin detallada sobre el smbolo seleccionado. Para tener una visin ms clara de nuestro diseo en la hoja de trabajo, podemos pulsar varias veces en el botn de Zoom agrandar de la barra de botones, como se muestra en la figura de arriba, si es necesario ajuste a su conveniencia con el botn Zoom achicar. Seleccione y coloque las mismas compuertas con igual orientacin como se muestra en la Figura 16.

Figura 16. Conectando las terminales de la compuertas lgicas.

Para conectar 2 terminales o pines entre componentes, es necesario un Wire, pulse el botn indicado en la figura, el cursor cambiar a una cruz cuando entre a la hoja de trabajo. Haga clic en el primer pin, sin soltar el botn del Mouse, arrastre el cursor hasta el otro pin, suelte el botn del Mouse cuando aparezcan 4 cuadros pequeos alrededor de la terminal, que indican que la conexin es permitida en ese pin; en caso contrario no aparecern. Si desea borrar alguna conexin, compuerta u otro componente de la hoja de trabajo asegrese de pulsar el botn de seleccionar y presione la tecla Supr. de la barra de herramientas, haga clic con el Mouse en el objeto que desee borrar

Siguiendo con el diseo, conecte las salidas de las compuertas AND a las entradas de la compuerta OR2 y la entrada negada del componente AND2B1 a una entrada superior de la AND2.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 15

En el editor de esquemticos se definen los componentes (compuertas lgicas, flip-flops, contadores, registros, etc.), las conexiones internas y los puertos de entrada y salida; en que parte del chip se implementar y a que pines se conectarn los puertos. Slo a travs de los puertos de entrada y salida pueden hacerse conexiones hacia el exterior de nuestro diseo. Para agregar los puertos de entrada y salida a nuestro diseo pulse el botn indicado en la Figura 17.

Figura 17. Agregando puertos de entrada y salida a nuestro diseo.

Al pulsar el botn para agregar puertos aparecer en la pestaa Options 5 opciones para configurar en puerto: Add an automatic marker: automticamente identifica si el puerto debe ser de entrada o salida dependiendo de la terminal a donde es conectado. Add an input marker: el puerto es configurado como de entrada. Add an output marker: el puerto es configurado como de salida. Add a bidirectional marker: el puerto es configurado como bidireccional (alta impedancia). Remove the marker: borra el puerto de salida. Una vez seleccionado el tipo de puerto que deseamos agregar, mueva el cursor hacia la hoja de trabajo y presione el botn izquierdo del Mouse en la terminal que desee conectar dicho puerto; cuando sea posible hacer la conexin aparecern los cuatro cuadros pequeos como el caso de las conexiones internas. La siguiente tarea es renombrar los puertos de acuerdo con la Figura 2, A y B como las entradas, SEL como el selector y Z como la salida del multiplexor. Para empezar haga clic con el botn derecho del Mouse en el puerto de salida, con lo cual aparecer un men, seleccione la opcin Rename Port, en el cuadro de dilogo Rename Net, sustituya el nombre que est en el cuadro de texto por el de Z, haga clic en el botn OK. Repita el mismo procedimiento con los dems puertos de entrada cambiando los nombres actuales a los que correspondan segn la Figura 2. Se debe lograr que el diseo se vea como en la Figura 18.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 16

Figura 18. Diseo terminado.

Para verificar que el diseo no contenga errores haga clic en el botn de la barra de herramientas o en el men principal seleccione Tools>Check Schematic, si hay algn error corrjalo, si no guarde el archivo pulsando el botn o en el men principal seleccione File>Save. Guardar es indispensable para que los cambios en el archivo se tomen en cuenta en los dems procesos del diseo.

LLAME AL INSTRUCTOR PARA REGISTRAR EL AVANCE. Una vez introducido el diseo lgico usando el editor de esquemticos, el siguiente paso es la verificacin de su funcionamiento a travs de una simulacin. Para iniciar este proceso regrese a la ventana del Project Navigator. Primeramente necesitamos agregar un archivo llamado cama de pruebas, en el cual estarn definidas las formas de onda de las seales que se conectarn a los puertos de entrada del diseo mux2a1.sch. Haga clic con el botn derecho del Mouse en la ventana de fuentes (sources for:) y seleccione New Source o en el men principal seleccione Project>New Source. Aparecer la ventana para definir el nombre y el tipo de la nueva fuente (Figura 20), en este caso seleccione la opcin Test Bench WaveForm e introduzca un nombre de archivo para identificar que se trata de una cama de pruebas, test es un nombre adecuado. Pulse Next.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 17

Figura 19. Ventana para definir el nombre y el tipo de una nueva fuente (Cama de pruebas en forma de onda, Test Bench WaveForm).

Ahora aparecer una ventana (Figura 20) para seleccionar a cul de los diseos del proyecto se le asignar esta cama de pruebas, en este caso slo hay uno mux2a1, pulse Next.

Figura 20. Ventana para asignarle la cama de pruebas a algn diseo. Por ltimo aparecer una ventana con la informacin sobre la fuente recin agregada, Figura 21.

Figura 21. Informacin del archivo test.tbw (cama de pruebas en forma de onda).

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 18

Figura 22. Ventana para inicializar los parmetros temporales del test bench.

El siguiente paso es definir las caractersticas temporales de la cama de pruebas en la ventana. En la Figura 22 podemos definir entradas de reloj y retrasos de retencin entre otras cualidades para circuitos secuenciales, pero en este caso asegrese de seleccionar en el cuadro Clock Information la opcin Combinational (or internal clock), debido a que nuestro diseo es puramente combinacional. Por omisin habr un retardo de 50 ns entre los cambios en las entradas y su propagacin en la salida y otro retardo de 50 ns entre la asignacin de las salidas y las entradas. Pulse Finish.

Figura 23. Forma de onda del testbench.

En el espacio de trabajo del la ventana del Project Navigator aparecer la forma de onda del testbench recin agregado. Desincorpore esta ventana para mayor comodidad. Haga doble clic en el cuadro End Time: 1000 ns en la esquina superior izquierda, aparecer un cuadro de dialogo para cambiar el final de la simulacin; cambie ese tiempo a 2000 ns pulse el botn OK. Para modificar el valor de las seales de entrada en el testbench hay que hacer clic en los cuadros azules; al hacer esto, si su valor es bajo 0 cambiar a alto 1 y viceversa. Asegrese que el testbench se vea exactamente como en la Figura 23, guarde el archivo.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 19

Figura 24. Testbench agregado y listo para ser simulado.

Como puede apreciar en la Figura 24, en la parte superior de la ventana de archivos fuentes est el texto Sources for:, seguido de un men pop-up con las opciones:

Sntesis/Implementation: Lista las fuentes que pueden ser sintetizadas y/o implementadas en
un chip FPGA. Behavioral Simulation: Lista las testbench que pueden ser simulados de manera ideal (sin retrasos de tiempo), es decir sin considerar las caractersticas fsicas del chip donde se implementarn los diseos. Post-Route Simulation: Lista las testbench que pueden ser simulados considerando las caractersticas fsicas del chip donde se implementarn los diseos.

Al ser guardado el archivo test bench aparecer debajo del multiplexor mux2a1.sch en la ventana de fuentes slo si se selecciona enlistar las fuentes a ser simuladas (testbench), vea Figura 24. Seleccione con un clic la fuente test.tbw, en la ventana de procesos aparecer la opcin Xilinx ISE Simulator, expndala para que aparezca la opcin: Simulate Behavioral Model, haga doble clic en esta segunda opcin, entonces aparecer una ventana del ISE Simulator (Figura 25).

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 20

Figura 25. Ventana principal con el ISE Simulator.

La ventana de simulacin est compuesta por 3 reas: A la izquierda est la lista de las seales que se estn visualizando, tambin se hace referencia al diseo que las contiene, en este caso son: a, b, sel y z. Los valores de las seales segn el cursor de tiempo que este activo, dicho cursor se puede arrastrar por toda la escala del tiempo. Las grficas de las seales donde se puede apreciar el comportamiento de las seales con respecto al tiempo. Un botn muy til de la barra de herramientas es el Full Zoom ( ), que sirve para ajustar la escala completa de tiempo al rea de visualizacin de las seales, vea Figura 25. En esta ventana podemos verificar que el comportamiento de nuestro diseo (mux2a1) es el correcto. Como la simulacin result como se esperaba, en la siguiente actividad se programar el diseo (mux2a1) en el chip FPGA y se verificar con los perifricos de la tarjeta Basys2. Llame al instructor para registrar el avance. Regrese a la ventana del esquemtico, y elimine el puerto SEL, los wires entre las salidas de las compuertas AND y las entradas de la compuerta OR. Ahora inserte nuevos wires cortos en pines que conectaban los wires borrados, as como se aprecia en la Figura 26.

Figura 26: Rediseo del multiplexor.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 21

En la barra de herramientas haga clic en el botn para etiquetar una conexin wire ( ); en la mitad de la pestaa Options est un cuadro de texto donde se introduce el nombre con el cual queremos etiquetar el wire; haga clic ah y teclee X, mueva el cursor hacia la hoja de trabajo, note que el cursor tiene forma de cruz y con el texto que acabamos de introducir a un lado. Posicione el cursor sobre la conexin que se desea etiquetar, en este caso el wire de la salida de la compuerta AND2B1, haga clic, ahora aparecer el texto X a un lado del wire. Repita el procedimiento para la entrada superior de la compuerta OR2, con esto estamos indicando que existe una conexin entre la salida de AND2B1 y la entrada superior de OR2, sin hacer la conexin directa. En muchas ocasiones es conveniente etiquetar todos los wires para realizar conexiones con etiquetas en el futuro, ahorrando tiempo y componentes. Realice las conexiones faltantes usando etiquetas, como se ve en la Figura 27. Vuelva a correr la simulacin con el mismo testbench para corroborar que las conexiones con etiquetas hacen la misma funcin que las conexiones con los wires.

Figura 27: Rediseo de conexiones del multiplexor.

LLAME AL INSTRUCTOR PARA REGISTRAR EL AVANCE.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 22

ACTIVIDAD 3: Herramientas de XILINX para la Programacin de Dispositivos Lgicos Programables


Profesor: Jess Uriel Mora Quiones Mdulo: Taller de programacin en FPGA. Abstract
Esta actividad es un tutorial para la programacin de dispositivos lgicos programables con herramientas Xilinx. La actividad est planeada con un enfoque de aprendizaje colaborativo.

El hardware y el software utilizado son especiales para actividades de enseanza y verificacin de circuitos digitales usando dispositivos lgicos programables, en este caso FPGA (Field Programmable Gate Array). Equipo requerido por cada grupo es: PC con el ISE WebPack versin 10.1. http://www.xilinx.com. Sistema de desarrollo FPGA Basys 2 de Digilent Inc. http://www.digilentinc.com.

Figura 1. Tarjeta Basys 2 y su diagrama a bloques.

El objetivo de esta actividad es conocer paso a paso las herramientas de XILINX para la programacin de dispositivos lgicos programables. Para realizar est actividad es necesario haber cumplido con lo requerido en la Actividad 1, en la cual se dise un multiplexor de 2 a 1 lnea (ACTIVIDAD 1: Figura 2) por medio de captura de diagramas esquemticos; ese circuito se simul usando ISE Simulator (verificacin en software). El siguiente paso es implementar el diseo en un dispositivo lgico programable (verificacin en hardware), en este caso una FPGA Spartar3E de Xilinx, que es el chip usado en tarjeta Basys 2 de Digilent (Figura 1) y posteriormente verificarlo de la manera manual por medio de los perifricos de esta tarjeta. Las conexiones del FPGA que se van a utilizar y como se conectarn dentro del chip, se definen internamente por el software ISE WebPack 10.1, nosotros tenemos la posibilidad de configurar este proceso, pero por lo pronto lo dejaremos pendiente.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 23

Conexin interna (Wire)

A SEL

mux2a1.sch
Z

PindelChip configurado comosalida

DispositivoLgico Programable

Puertodesalida (outputmarker)

PinesdelChip configurados comoentradas

Puertosde entrada (inputmarker)

Eneleditordeesquemticosse definenlaarquitecturainternay lospuertosdeldiseo

Figura 2. Conexin entre el diseo lgico y los pines dispositivo lgico programable (CPLD, FPGA, etc).

En esta actividad la principal tarea es definir los pines a los que se conectarn a los puertos del diseo mux2a1.sch, vea Figura 2. Nota: La Figura 2 es una representacin general, no tiene que ver especficamente con el FPGA que estamos usando. La configuracin de pines de nuestro proyecto se declara en un archivo de texto con la extensin .ucf. Para crear este archivo vaya a la ventana del Project Navigator, seleccione con un clic el archivo fuente mux2a1 en la ventana de fuentes del proyecto, en la ventana de procesos expanda la opcin User Constraints, dentro de ella haga doble clic en Floorplan IO Pre-Synthesis, vea Figura 4. Aparecer un cuadro de dilogo diciendo que el proceso requiere un archivo UCF y que se desea crearlo en ese momento, pulse S, vea Figura 4a; si el archivo UCF ya existe este cuadro de dilogo no aparecer, inmediatamente se abrir la ventana del programa PACE. NOTA: En algunas ocasiones el ISE presenta problemas a abrir el PACE, cuando esto ocurra debe introducir la asignacin en modo texto, como lo indica el documento Tip 3: Asignacin de Pines en Modo Texto.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 24

Figura 4. Forma para crear un archivo de configuracin de pines.

Figura 4a. Confirmacin de creacin del archivo .UCF.

La ventana del PACE contiene 3 ventanas Design Browser: Muestra la lista de los puertos del diseo mux2a1. Design Object List: es la lista de los puertos de diseo mux2a1, en la columna Loc indicada en la Figura 5, se definen los pines que van conectados a cada puerto del diseo. Package Pins for : Muestra una representacin grfica de los pines del chip a programar, en este caso el XC3S250E.

Seleccione View>Toolbars>Legend del men principal para abrir la ventana Package Pin Legend donde se aprecia la descripcin del cdigo de colores en los pines.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 25

Figura 5. Programa PACE para definir la configuracin de pines del diseo.

Para configurar correctamente la conexin entre los puertos de nuestro diseo y los pines del chip, es necesario conocer perfectamente el hardware donde est empotrado, en este caso la tarjeta Basys 2. Tarjeta Basys 2 es una plataforma lista-para-usar, con un conjunto de perifricos de entrada y salida ideales para realizar pruebas (Figura 7). Los perifricos bsicos de la Basys 2 son: Un reloj ajustable con un potencimetro de precisin. Display con 4 dgitos de siete segmentos. 4 Botones y 8 switches de desplazamiento. 8 leds en 3 diferentes colores (verde, rojo y amarillo).

Figura 7. Diagrama de conexiones entre la FPGA y los perifricos de la Basys 2.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 26

Los ctodos de los leds de la Basys 2 estn conectados a tierra a travs de una resistencia de 240 Ohm y los nodos se conectan directamente a los pines del FPGA, como se aprecia en la Figura 7. Por lo tanto, el led se encender con un 1 en el pin del FPGA al que est conectado y con un 0 se apagar. Los leds se identifican como LED0, LED1,LED7. Los botones estn conectados como indica la Figura 7, entonces al pulsar este botn ser un 1 lgico, y al no estar pulsado el botn la FPGA leer un 0. Las conexiones de los botones de la tarjeta Basys2 se identifican como BTN0, BTN1, BTN2, y BTN3. Como se puede apreciar en la Figura 7, los switches se conectarn a Vdd cuando estn hacia arriba y a Tierra si estn hacia abajo, tambin tienen conectada una resistencia de 4.7K para proteger a los pines del FPGA. Las conexiones de los leds al socket del Basys 2 se identifican como SW0, SW1,SW7 (vea abajo de los switches en el Basys 2). En esta actividad designaremos los perifricos del Basys 2 a los puertos del mux2a1, de acuerdo con la Tabla II. Usaremos 2 botones para las entradas A y B, un switch para SEL y un led para la salida Z, vea la Figura 9 para clarificar. Lo que queremos es que al pulsar el botn BTN0 y estar el switch SW0 arriba, el led LED0 encienda, apagndose al liberar el botn y si el switch est haca abajo el led se encender cuando se pulse el botn BTN1.

Tabla II. Relacin entre los puertos de mux2a1, los perifricos de la Basys 2 y los pines del FPGA XC3250250

Puertos del diseo mux2a1.sch Z SEL A B

Perifricos de la tarjeta Basys 2 LED0 SW0 BTN0 BTN1

Pines del FPGA XC3250250

Podemos resumir las especificaciones dadas para nuestro diseo en el Basys2 en la Tabla III.

Tabla III. Tabla de verdad de las especificaciones de nuestro diseo SW0<=SEL BTN1<=B BTN0<=A LED0<=Z Abajo (0) Sin pulsar (0) Sin pulsar (0) Apagado Abajo (0) Sin pulsar (0) Pulsado (1) Encendido Abajo (0) Pulsado (1) Sin pulsar (0) Apagado Abajo (0) Pulsado (1) Pulsado (1) Encendido Arriba (1) Sin pulsar (0) Sin pulsar (0) Apagado Arriba (1) Sin pulsar (0) Pulsado (1) Apagado Arriba (1) Pulsado (1) Sin pulsar (0) Encendido Arriba (1) Pulsado (1) Pulsado (1) Encendido
El siguiente paso debe seleccionar los pines del FPGA. Consulte las etiquetas de la tarjeta Basys 2 y complete la tercera columna de la Tabla II, por ejemplo Z se asigna a LED0 de la Basys 2 y ste se conecta al pin M5 del FPGA; por lo tanto colocaremos M5 en la primera celda vaca de la tercera columna de la Tabla II. Una vez llenada toda la Tabla II es necesario vaciar la informacin en la columna Loc del PACE (Figura 5), para ello debe introducir en nombre del pin; por ejemplo para el puerto Z la celda de la columna Loc debe introducir M5 ya que este puerto se conectar al in M5 del FPGA. Asegrese de pulsar enter en la asignacin de cada puerto y de guardar el archivo antes de continuar.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 27

Figura 7a.Cuadro de dialogo al grabar el archivo UCF.

LLAME AL INSTRUCTOR PARA REGISTRAR EL AVANCE Una vez terminando el proceso de configuracin de pines, el paso siguiente crear el archivo de configuracin .BIT para programar el diseo en el FPGA de la tarjeta Basys 2 por medio del programa Adept de Digilent y el cable USB de programacin. Para ello seleccione el archivo mux2a1.sch en la ventana de archivos fuente, en la ventana de procesos haga doble clic a la opcin Generate Programming File, vea Figura 11.

Figura 11. Procedimiento para generar el archivo de configuracin .BIT (para programar el chip).

Cuando aparezca el mensaje Process "Generate Programming File" completed successfully se habr creado el archivo .BIT de configuracin. Asegrese que la tarjeta Basys 2 est encendida y conectada a la PC por medio del cable USB. Ahora debemos abrir el programa Adept, si los drivers de la conexin USB estn correctamente instalados, aparecer una ventana como la de la Figura 12, donde se indica que se que se encontraron 2 chips conectados: el FPGA XC3S250E y la memoria PROM XCF02S. La memoria sirve para que la tarjeta quede programada aun despus que se apaga, ya que la programacin de la FPGA se hace sobre memoria voltil.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 28

Figura 13: Ventana del programa Adept.

El scan chain es el conjunto de dispositivos conectados en cadena, por medio una conexin JTAG, que es un protocolo de comunicacin serial sncrono para la programacin de cualquier nmero de dispositivos, con tan slo 3 seales (TDI, TCK y TMS) de entrada, una de salida (TDO) ms un voltaje auxiliar (Vaux) y la tierra (Figura 12); 6 conductores en total.

Figura 12. Scan Chain de una conexin JTAG con tres dispositivos.

Haga clic en el botn Browse a la derecha del FPGA XC3S250E, se abrir una ventana de bsqueda, vaya dentro de la carpeta del proyecto creado con el ISE y seleccione el archivo de configuracin mux2a1.bit.

Figura 14. Ventana para seleccionar el archivo de configuracin a la Bondary Scan Chain.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 29

Aparecer un cuadro de dialogo con una advertencia como la de la Figura 14, haga clic en el botn S.

Figura 15. Cuadro de advertencia al asignar el archivo .BIT.

De vuelta a la ventana del Adept, pulse el botn Program recin habilitado; aparecer nuevamente el cuadro de la Figura15, tambin seleccione el botn S. A continuacin se iniciar el proceso de programacin de la FPGA, al final aparecer el mensaje Programming Successful. El proceso final de verificacin se realiza con todo el hardware funcionado. Realice todas las combinaciones de los botones (BTN0 y BTN1) y el switch (SW0) y observe el led (LED1); recuerde que las entradas A y B estn conectadas a los botones, la entrada SEL al switch y la salida Z al led, vea Tabla III. Al terminar de programar el FPGA, LLAME AL INSTRUCTOR PARA REGISTRAR EL AVANCE. Repita el proceso de implementacin del diseo pero ahora cambiando todos los perifricos del Basys2, utilice la Tabla V. Al terminar de programar el FPGA, LLAME AL INSTRUCTOR PARA REGISTRAR EL AVANCE.

Tabla V. Relacin entre los puertos de mux2a1, los perifricos del Basys2 y los pines del FPGA XC3S250 encapsulado CP132 (rediseo). Puertos del Perifricos del FPGA XC3S250 diseo mux2a1 mdulo Basys2 Z LED7 SEL SW7 A BTN2 B BTN3

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 30

Actividad 4: Principios de Circuitos Secuenciales y Latches


Profesor: Jess Uriel Mora Quiones Mdulo:Taller de Programacin en FPGA.
Abstract En esta actividad se tratan los principios de circuitos secuenciales y los circuitos Latches SR y D. La actividad est planeada con un enfoque de aprendizaje colaborativo. Index Terms Circuitos Lgicos, Circuitos Secuenciales, Latches.

I.

CIRCUITOS LGICOS REALIMENTADOS (SECUENCIALES)

La principal diferencia entre los circuitos secuenciales y los circuitos combinacionales es que las salidas de los primeros no slo dependen de los valores actuales de sus entradas, sino tambin de los valores pasados de las mismas salidas; en los circuitos combinacionales las salidas dependen exclusivamente del valor actual de las entradas. Esto es debido a que las salidas de los circuitos secuenciales son realimentadas o retroalimentadas, hacia alguna fase anterior del circuito logrando que stas dependan indirectamente de s mismas. En la Figura 1 se muestra un circuito secuencial con un lazo de realimentacin, que conecta la salida Z una entrada de la compuerta OR cuya salida C se conecta a compuerta OR que tiene por salida a Z, por lo tanto el valor de Z no slo depender de la entrada B sino del valor anterior de s misma.

Fig. 1. Circuito retroalimentado bsico.

La salida Z del circuito de la Figura 1 queda de nida por la siguiente ecuacin lgica Z = AZ + B: (1) Podemos apreciar que Z no slo depende se las entradas A y B, sino tambin de Z misma. A la salida en el instante actual Z(t) se representa con Z, y el valor que tomar la salida en el siguiente instante de tiempo Z(t+ t), se denota con el subndice (+1) ,es decir Z+1 , para distinguirlo del valor actual de Z. Por lo tanto la ecuacin (1) se puede reescribir como Z+1 = AZ + B; que es llamada la ecuacin caracterstica del circuito de la Figura 1. La tabla de verdad de un circuito secuencial, es llamada tabla caracterstica y debe involucrar a las entradas y los valores presentes y futuros de las salidas. La siguiente, es la tabla de caracterstica para en el diagrama de la Figura 1:

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 31

TABLE I TABLA CARACTERSTICA A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1


DEL CIRCUITO DE LA

F IGURA 1.

Z 0 1 0 1 0 1 0 1

Z+1 0 0 1 1 0 1 1 1

TABLE II TABLA CARACTERSTICA CON


CONDICIONES NO - IMPORTA DEL CIRCUITO DE LA

F IGURA 1.

A 0 1

B 0 0 0 1

Z 0 1 1

Z+1 0 0 1 1

t es el tiempo de propagacin del circuito, que depender de la tecnologa en que se implemente el circuito. Tpicamente t=10ns en circuitos TTL. La Tabla II se puede explicar de la siguiente manera: Si B='0' y Z='0', entonces Z se mantiene en '0', sin importar el valor de A. Si A='0', B='0' y Z='1', entonces Z cambiar de '1' a '0'. Si A='1', B='0' y Z='1', entonces Z mantendr el valor de '1'. Si B='1', entonces Z tendr el valor '1', sin importar A ni el valor anterior de Z. En la Figura 2 se muestra el comportamiento de la salida Z en respuerta a cierta forma de onda de las entradas A, y B; se pueden apreciar los siguiente cambios en las seales: 1. En t=0, A='1', B='0', y Z='0', por lo que se cumplen la quinta condicin de la Tabla I y la tercera condicin de la Tabla II, como Z+1 ='0', entonces Z permanece en '0'. 2. En t=300, A='0', B='0', y Z='0', por lo que se cumplen la primera condicin de la Tabla I y la primera condicin de la Tabla II, como Z+1 ='0', entonces Z permanece en '0'. 3. En t=400, A='1', B='0', y Z='0', se repiten las condiciones del punto 1, por lo tanto Z permanece en '0'. 4. En t=500, A='1', B='1', y Z='0', por lo que se cumplen la septima condicin de la Tabla I y la cuarta condicin de la Tabla II, como Z+1 ='1', entonces Z cambia a '1' en t=500+ t. 5. En t=600, A='1', B='0', y Z='1', por lo que se cumplen la sexta condicin de la Tabla I y la tercera condicin de la Tabla II, como Z+1 ='1', entonces Z permanece en '1'. 6. En t=700, A='0', B='0', y Z='1', por lo que se cumplen la segunda condicin de la Tabla I y la cuarta condicin de la Tabla II, como Z+1 ='0', entonces Z cambia a '0' en t=700+ t. 7. En t=800, A='0', B='1', y Z='0', por lo que se cumplen la tercera condicin de la Tabla I y la cuarta condicin de la Tabla II, como Z+1 ='1', entonces Z cambia a '1' en t=800+ t. 8. En t=900, A='1', B='1', y Z='1', por lo que se cumplen la octava condicin de la Tabla I y la cuarta condicin de la Tabla II, como Z+1 ='1', entonces Z permanece a '1'. Problema 1: a) Complete la forma de la onda de la seal de salida Z de la Figura 3, considerando que el estado inicial de Z es '1'. b) Complete la forma de la onda de la seal de salida Z de la Figura 3, considerando que el estado inicial de Z es '0'. Llame al instructor para registrar el avance (20 puntos).

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 32

Fig. 2. Respuesta en el tiempo del circuito retroalimentado.

Fig. 3. Formas de onda entrada (a y b), para completar la salida z

II.

CIRCUITO LATCH SR

El circuito de Figura 4 es un latch SR (Set-Reset), consiste de 2 compuertas NOR, dos entradas (S y R) y 2 salidas (Q y Q').

Fig. 4. Latch SR con compuertas NOR.

La Tabla III es la tabla caracterstica de este latch SR con compuertas NOR La Tabla III se puede explicar de la manera siguiente: Si S='0', R='0' y Q='0', entonces todas las entradas de la compuerta NOR inferior sern '0', haciendo Q'+1 ='1', que se conecta a un entrada de la NOR superior y por lo tanto Q+1 ='0'. Si S='0', R='0' y Q='1', entonces la salida la compuerta NOR inferior ser '0', haciendo Q'+1 ='0', que se conecta a un entrada de la NOR superior y por lo tanto Q+1 ='1'.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 33

S
Fig. 5. Smbolo de un latch SR.

TABLE III TABLA CARACTERSTICA DE UN S 0 0 0 1 1 R 0 0 1 0 1 Q 0 1


LATCH

SR

CON COMPUERTAS

NOR.

Q+1 0 1 0 1 0

Q'+1 1 0 1 0 0

Si S='0', R='1', entonces Q+1 ='0' y las entradas de la compuerta NOR inferior sern '0', haciendo Q'+1 ='1'. Si S='1', R='0', entonces Q'+1 ='0' y las entradas de la compuerta NOR inferior sern '0', haciendo Q+1 ='1'. Por ltimo, si S='1', R='1', entonces Q+1 ='0' y Q'+1 ='0', lo cual es inconveniente ya que se desea que Q' sea siempre el negado de Q, por lo tanto esta combinacin est prohibida en este circuito. Alternativamente la Tabla III se puede reescribir como la Tabla IV, tomando en cuenta que para S='0' y R='0', las salidas Q y Q' conservarn su valor anterior:
TABLE IV TABLA CARACTERSTICA
ALTERNATIVA DE UN LATCH

SR

CON COMPUERTAS

NOR.

S 0 0 1 1

R 0 1 0 1

Q+1 Q 0 1 0

Q'+1 Q' 1 0 0

En la Figura 6 se aprecia las formas de onda de las entradas y salidas de un latch SR. Problema 2: Formas de onda de un latch SR a). Complete la forma de la onda de las seales de salidas Q y Q' de la Figura 7 b). Complete la forma de la onda de las seales de entrada S y R de la Figura 8 c). Plantee otra solucin distinta para el inciso b). Llame a instructor para registrar el avance (30 puntos). III. LATCH TIPO D CON HABILITACIN (ENABLE)

La salida Q del latch D de la Figura 9 tiene la habilidad de almacenar el valor anterior de la entrada D, o de modi car el valor de Q, dependiendo del valor de la entrada E. Esto se logra agregando 2 compuertas AND con una entrada en comn (E), como se aprecia en la Figura 9. Cuando E='0' se fuerzan a S y R a ser

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 34

Fig. 6. Formas de onda de un latch SR

Fig. 7. Formas de onda de S y R, para completar Q y Q'.

'0', conservando Q su valor anterior, sin importar el valor actual de la entrada D, y cuando E='1', R=not D y S=D se garantiza que S y R nunca sean iguales, evitando el estado prohibido y limitando el funcionamiento del circuito a la segunda y tercera combinacin de la Tabla IV para el latch SR. Por lo tanto Q+1 =D. cuando E='1'.
TABLE V TABLA CARACTERSTICA E 0 1 D Q
DE UN LATCH

CON ENABLE .

Q+1 Q D

Q'+1 Q' D'

En la Figura 11 se aprecia unas formas de onda para un latch D con enable. Problema 3: Formas de onda de un latch D con enable. a) Complete la forma de la onda de la seal de las salidas Q y Q', en la Figura 12. b) Disee un circuito que tenga la funcin de leer un dato de entrada (D) de 8 bits cuando una seal de escritura (W) est en '1' y de mantener el valor de la salida (Q) cuando W sea '0'. Llame al instructor para registrar el avance (20 puntos).

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 35

Fig. 8. Formas de onda de Q y Q', para completar S y R.

Fig. 9. Latch D con enable.

E
Fig. 10. Smbolo de un latch D con enable.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 36

Fig. 11. Respuesta en el tiempo del latch D con enable.

Fig. 12. Formas de onda entrada (D y E), para completar las salidas Q y Q'.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 37

Actividad 5: Flip-Flops, Circuitos Secuenciales Activados por Reloj


Profesor: Jess Uriel Mora Quiones Mdulo:Taller de Programacin en FPGA

Abstract En esta actividad se analizarn los ip- ops tipo D, JK y T. La actividad est planeada con un enfoque de aprendizaje colaborativo. Index Terms Reloj, Flip-Flops, D, JK, T.

I.

SEAL DE RELOJ (CLOCK)

Los circuitos latch D son activados por nivel debido a que sus salidas son afectadas por las entradas durante todo el tiempo que la seal de E est activada. En la mayora de los casos es preferible que todas las salidas con memoria cambien de estado exactamente al mismo tiempo y en intervalos regulares (peridicos). Para lograr esto es necesario: una seal sincronizadora (clock) y circuitos secuenciales que no sean activados por nivel (Flip- ops). La seal de reloj es una onda cuadrada peridica como la que se muestra en la Figura 1. La porcin de la seal cuando clock cambia de valor de '0' a '1' se llama anco de subida o positivo, y la porcin de seal en que clock cambia de '1' a '0' se le llama anco de bajada o negativo. El smbolo # se usa para denotar el anco de bajada y para representar el anco de subida se usa el smbolo ".

Ciclo de reloj

Flanco de bajada ( )
Fig. 1. Seal de reloj.

Flanco de subida ( )

II.

FLIP-FLOP TIPO D

Un ip- op es un circuito lgico activado por anco de subida o bajada. En la Figura 2 se puede ver un ip- op activado por ancos de subida, formado por 2 latches D activados por nivel. El primer latch, llamado maestro, se habilita cuando el reloj CLK='0', debido al inversor, y QM toma el valor de la entrada D, pero QM no pasa a la salida Q del segundo latch, llamado esclavo, que est deshabilitado, porque CLK='0'. Cuando CLK='1', el latch se deshabilita, pero el latch esclavo se habilita, pasando el dato QM a la salida Q. El latch esclavo est habilitado mientras CLK='1', pero su contenido cambia slo cuando en el anco de subida, debido a que el latch maestro se deshabilita y QM se mantiene sin cambio.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 38

Fig. 2. Implementacin de un ip- ops usando 2 latches D.

D CLK
Fig. 3. Smbolo de un ip- op D con el anco de subida.

En la Figura 4 se puede ver las formas de onda para un ip- op tipo D de activado por anco de subida, al igual que en los latches existe un tiempo t entre el anco de subida del reloj y los cambios en la salida Q.

Fig. 4. Formas de onda de un ip- op tipo D activado con el anco de subida.

La Tabla I indica que slo cuando exista un anco de subida en el reloj, Q tomar el valor de D; para los dems casos, Q mantendr su valor.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 39

TABLE I TABLA CARACTERSTICA DE UN


FLIP - FLOP

D ACTIVADO Q+1 Q Q Q D

CON EL FLANCO DE SUBIDA .

CLK 0 1 # "

Problema 1: a) Complete la forma de la onda de la seal de la salida Q, del ip- op de la Figura 5.

Fig. 5. Formas de onda entrada (D y CLK), para completar la salidas Q.

b) Disee un circuito que tenga la funcin de leer un dato de entrada (D) de 8 bits en el anco de subida de una seal de reloj (CLK). Al nalizar, llame al instructor para registrar el avance (10 puntos). En la Figura 6 se muestra un ip- op activado por anco de bajada, formado por 2 latches D, su smbolo se puede ver en la Figura 7.

Fig. 6. Flip- op tipo D activado con el anco de bajada.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 40

D CLK
Fig. 7. Smbolo de un ip- op D con el anco de bajada.

Problema 2: Complete la forma de la onda en la Figura 8 para la seal de la salida Q, de un ip- op D activado por anco de bajada. Al nalizar, llame al instructor para registrar el avance (10 puntos).

Fig. 8. Formas de onda entrada (D y CLK), para completar la salidas Q.

III.

DESCRIPCIN FORMAL DE UN FLIP-FLOP

Para describir formalmente el funcionamiento de un ip- op, se usa una tabla caracterstica, una ecuacin caracterstica, una tabla de excitacin y un diagrama de estados. La tabla caracterstica es la tabla de verdad para el ip- op teniendo como primeras columnas las seales de entrada (D: para el ip- op D) y el estado actual de la salida (Q), y en la ltima columna el estado siguiente de la salida (Q+1 ). La seal clock no se incluye, ya que se toma por entendido que la salida slo cambia en el anco positivo o negativo de CLK. La Tabla II, es la tabla caracterstica de un ip- op tipo D:
TABLE II TABLA CARACTERSTICA DE UN D 0 0 1 1 Q 0 1 0 1 Q+1 0 0 1 1
FLIP - FLOP.

La ecuacin caracterstica es una ecuacin booleana que se deriva de la tabla caracterstica. Al igual que la tabla caracterstica, el estado siguiente Q+1 se expresa como una funcin de las seales de entrada y del estado actual de la salida Q. La siguiente, es la ecuacin caracterstica de un ip- op D: Q+1 = D (1)

La tabla de excitacin es la imagen espejo de la tabla caracterstica ya que se intercambian las columnas de la entrada y del estado siguiente. Esta tabla indica cuales deben ser los valores de las entradas para hacer cambiar el estado de la salida del ip- op de determinada manera, dicho de otra manera la tabla de excitacin

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 41

responde la pregunta: Qu valor debe tener la entrada para hacer cambiar la salida de un estado dado a un siguiente estado deseado?.
TABLE III TABLA DE EXCITACIN Q 0 0 1 1 Q+1 0 1 0 1
DE UN FLIP - FLOP

D 0 1 0 1

El diagrama de estados es un grafo con nodos y arcos dirigidos ( echas) para conectar los nodos entre s. Este diagrama es la representacin gr ca del funcionamiento del ip- op. En los nodos se pone una etiqueta con los estados posibles del ip- op, y a cada echa se le asigna una etiqueta con los valores de las seales de entrada que causan la transicin de un estado a otro. El arco dirigido tiene como origen el nodo que representa el estado actual, y conecta al otro extremo (el que tiene la echa), con nodo del estado siguiente. La Figura 9 muestra el diagrama de estados para el ip- op tipo D, ste tiene dos estados Q='0' y Q='1', y dos echas que salen de cada uno de ellos, que representan las transiciones de estado cuando D='0' y D='1'.

Fig. 9. Diagrama de estados de un ip- op D.

El comportamiento del diagrama de estados de la Figura 9 se resume como sigue: Si el estado actual es Q='0' y la entrada D='0', el estado siguiente ser Q='0'. Si el estado actual es Q='0' y la entrada D='1', el estado siguiente ser Q='1'. Si el estado actual es Q='1' y la entrada D='1', el estado siguiente ser Q='1'. Si el estado actual es Q='1' y la entrada D='0', el estado siguiente ser Q='0'. IV. FLIP-FLOP JK

La operacin de un ip- op JK es muy similar a la de un latch SR con dos grandes diferencias: al ser un ip- op, la salida del JK slo cambiar con los ancos (de bajada o de subida, segn se indique) del reloj y no existe ninguna combinacin prohibida de entrada como en el latch SR (S='1' y R='1'). Un ip- op tipo JK tiene dos entradas (J y K), como se aprecia en la Figura 10. El estado siguiente Q+1 , depender del valor de la salida actual Q de las entradas J y K, esta dependencia se puede representar con la tabla caracterstica de un ip- op JK se muetra en la tabla IV. A partir de la Tabla IV, se puede encontrar la ecuacin caracterstica, pero para simpli car esta ecuacin podemos usar un mapa de Karnough, como el de la Figura 11, para expresar Q+1 como en la ecuacin (1).

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 42

J CLK K
Fig. 10. Smbolo de un ip- op JK con el anco de subida.

TABLE IV TABLA CARACTERSTICA DE UN FLIP - FLOP JK. J 0 0 0 0 1 1 1 1 K 0 0 1 1 0 0 1 1 Q 0 1 0 1 0 1 0 1 Q+1 0 1 0 0 1 1 1 0

La equacin caracterstica resultante del mapa de Karnough es Q+1 = JQ0 + K 0Q: (2)

La tabla de excitacin del ip- op tipo JK, se presenta en la Tabla V. Basndose en la Tabla V, la Figura 12 se muestra el diagrama de estados de un ip- op tipo JK. Es importante mencionar que todo tipo de ip- op puede construirse a partir de otro de tipo distinto, por ejemplo un ip- op JK se puede implementar usando uno tipo D, sustituyendo la ecuacin (2) en la ecuacin caracterstica (1) del ip- op D, e implementarla en un circuito lgico para la entrada D del ip- op, como se aprecia en la Figura 13.

J,K Q

0 1

00 0 1

01 0 0

11 1 0

10 1 1

Fig. 11. Mapa de Karnough para la ecuacin caracterstica de un ip- op JK.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 43

TABLE V TABLA DE EXCITACIN Q 0 0 1 1 Q+1 0 1 0 1


DEL FLIP - FLOP TIPO

JK.

J 0 1

1 0

Fig. 12. Diagrama de estados de un ip- op JK.

En la Figura 14 se muestran unas formas de ondas de las entradas J, K y CLK, junto con la forma de onda de la salida Q de un ip- op tipo JK. Por simplicidad se ha omitido el efecto del tiempo de progagacin t. Problema 3: a) Utilizando la tabla caracterstica de un ip- op JK, complete la forma de la onda de la seal de las salidas Q, en la Figura 15.

Fig. 13. Implementacin de un ip- op JK usando uno tipo D.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 44

Fig. 14. Formas de onda de un ip- op JK.

Fig. 15. Formas de onda entrada (J, K y CLK), para completar la salidas Q.

b) Utilizando la tabla de excitacin de un ip- op JK, dibuje las seales de las entradas J y K, para que se produzca una seal de salida Q como la de la Figura 16.

Fig. 16. Formas de onda de Q y CLK, para completar J y K.

c) Redibuje la Figura 16 con seales entradas distintas para todo tiempo, pero que produzcan la misma seal de salida Q. Llame al instructor para registrar el avance (20 puntos). V. FLIP-FLOP TIPO T

El ip- op tipo T tiene una entrada adems del clock. Cuando T = '1', la salida en el estado siguiente (Q+1 ) cambia su valor a el complemento del estado actual (Q) con el anco activo del clock (de subida o de bajada), cuando T = '0', Q+1 conserva el valor de Q. La tabla caracterstica del ip- op T se muestra en la Tabla VI, la ecuacin (3) es la ecuacin caracterstica, y la Figura 17 es el smbolo. Q+1 = T Q0 + T 0Q = T Q (3)

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 45

TABLE VI TABLA CARACTERSTICA DE UN T 0 0 1 1 Q 0 1 0 1 Q+1 0 1 1 0


FLIP - FLOP.

T CLK
Fig. 17. Smbolo de un ip- op T con el anco de subida.

En la Figura 18 se muestran unas formas de ondas de las entradas T y CLK, junto con la forma de onda de la salida Q de un ip- op tipo T.

Fig. 18. Formas de onda de un ip- op T.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 46

Problema 4: Anlisis de un ip- op T. a) Basndose en la tabla caracterstica del ip- op T (Tabla VI), escriba la tabla de excitacin para este tipo de ip- op. b) Basndose en la ecuacin caracterstica del ip- op T, dibuje la implementacin de este tipo de ip- op, usando un ip- op tipo D. Recuerde la implementacin de un ip- op JK usando un ip- op D, vea la Figura 13. c) Basndose en todo lo anterior, dibuje el diagrama de estados para el ip- op T. Al nalizar llame al instructor para registrar el avance. (20 puntos). Problema 5: Formas de onda de un ip- op T. a) Utilizando la tabla caracterstica de un ip- op T, complete la forma de la onda de la seal de las salidas Q, en la Figura 19.

Fig. 19. Formas de onda entrada (T y CLK), para completar la salida Q.

b) Utilizando la tabla de excitacin de un ip- op T, dibuje las seales de la entrada T, para que se produzca una seal de salida Q como la de la Figura 20. Al nalizar llame al instructor para registrar el avance. (10 puntos).

Fig. 20. Formas de onda de Q y CLK, para completar la entrada T.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 47

Actividad 6 : Creacin de smbolos y manejo de buses en el editor de esquemticos del ISE


Profesor: Jess Uriel Mora Quiones Materia: Circuitos Secuenciales

Abstract En esta actividad se crearn smbolos de nidos por el usuario, para manejarlos como si fueran smbolos de una librera del editor de esquemticos; tambin se ver el manejo de los buses para asociar seales similares y reducir el nmero de conexiones entre componentes. La actividad est planeada con un enfoque de aprendizaje colaborativo y se realizar con el apoyo de una computadora. Index Terms ISE, Circuitos Esquemticos, Smbolos de nidos por el usario.

I.

C REACIN DE SMBOLOS EN EL ISE

Cree un nuevo proyecto en el ISE con el nombre de su eleccin, cree tambin un diagrama esquemtico llamado "not_e.sch", cuyo contenido deber ser como en la Figura 1. Este diseo es de una compuerta NOT, como el smbolo "not", pero con habilitacin de la negacin. Cuando E='0', el contenido de X pasa a Y; y cuando E='1', el negado de X pasa a Y, es decir, cuando E='0', el circuito se comporta como un buffer y cuando E='1', se comporta como una compuerta NOT. Ese diseo ser de mucha utilidad en este curso ya que los leds y el display del CERES funcionan con lgica negada, pero las simulaciones no.

Fig. 1. Compuerta NOT con Enable.

El siguiente paso ser crear el smbolo "not_e.sym" con la funcin lgica del esquemtico "not_e.sch", para que dicho smbolo se pueda agregar a otros diseos como si fuera cualquier compuerta lgica. Primeramente, seleccione la opcion "Tools->Symbol wizard" del men principal; aparecer una pgina como en la Figura 2. En el marco "Pin name source", marque la opcion "Using schematic" y seleccione el diseo "not_e". Haga clic en el botn "Next >". La siguiente pgina, como en la Figura 3, indica el orden en que estn los puertos de entrada y salida en el smbolo. En este caso, el puerto "E" tendr una polaridad "input", porque es de entrada, se colocar a la izquierda del smbolo, en la segunda posicin; el puerto "X" tendr una polaridad "input", porque es de entrada, se colocar a la izquierda del smbolo, en la primera posicin; y el puerto "Y" tendr una polaridad "output", porque es de salida, se colocar a la derecha del smbolo, en la primera posicin. Por el momento no haga ningn cambio en esos parmetros y haga clic en el botn "Next >".

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 48

Fig. 2. Ventana "Source Page" de la opcin "Symbol Wizard".

La pgina de la Figura 4 muestra las opciones para las dimensiones del smbolo. Nuevamente, no haga ningn cambio en los parmetrs y haga clic en el botn "Next >". Por ltimo, aparecer la vista previa del smbolo, vea Figura 5, haga clic en el botn "Finish". Aparecer una nueva ventana del editor de esquemticos con el smbolo recin creado, como se aprecia en la Figura 6. La apariencia de este smbolo puede ser modi cada usando la herramientas de dibujo para que sea ms fcil de identi car y relacionar con su funcin lgica. Problema 1: a) Modi que la apariencia del smbolo "not_e.sym", usando la barra de herramientas de dibujo, para que se vea como en la Figura 7, donde la conexin entre entrada "E" y la circunferencia de la salida representan la habilitacin de la compuerta como negadora. b) Mencione cal compuerta lgica tiene la misma tabla de verdad que el diseo "not_e.sch". c) Simule el diseo "not_e.sch" para veri car su funcionamiento. AL FINALIZAR LLAME AL INSTRUCTOR. Uso de smbolos de nidos por el usuario En el mismo proyecto cree un nuevo esquemtico llamado "not_e4.sch". En este nuevo diseo haremos un inversor de 4 bits, similar al diseo "INV4" de la categora "logic", pero con habilitacin de la negacin; para ello reutilizaremos el esquemtico "not_e.sch", por medio del smbolo "not_e.sym". Una vez creado el nuevo diseo, desincorpore la ventana del esquemtico del "Proyect Navigator" y seleccione la pestaa "Symbols". Aparecer una nueva categora con la direccin del proyecto activo, vea Figura 8. Esta categora se re ere a los smbolos creados por el usuario en el proyecto activo. En la lista "Symbols" se vern todos los smbolos creados por el usuario. En este caso, slo estar "not_e", el cual puede arrastrarse a la hoja del esquemtico como si fuera cualquier otro smbolo. Ponga 4 instancias del smbolo "not_e.sym" en la hoja del esquemtico "not_e4.sch" y haga las conexiones pertinentes para que se vea como en la Figura 9. Al nalizar, guarde el esquemtico y vuelva a la ventana del "Proyect Navigator", en la ventana de "Sources"aparecen los niveles jerrquicos los diseos "not_e4.sch"y "not_e.sch", vea Figura 10. Problema 2: a) A partir del esquemtico "not_e4.sch", cree el smbolo "not_e4.sym"

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 49

Fig. 3. Pgina "Pin Page" de la opcin "Symbol Wizard".

b) Con dos instancias del smbolo "not_e4.sym", realice el diseo "not_e8.sch", que deber funcionar como un negador de 8 bits con enable. c) Simule el diseo "not_e8.sch" para veri car su funcionamiento. AL FINALIZAR LLAME AL INSTRUCTOR. II. U SO DE BUSES EN EL ISE

Para utilizar smbolos creados en otros proyectos, los smbolos deben estar en la carpeta del proyecto activo y los esquemticos deben estar agregados a dichos proyectos, as como todos los smbolos y esquemticos que formen parte de stos. Cree un nuevo proyecto en el ISE que se llame "not_e_buses". En este proyecto utilizaremos los esquemticos y smbolos del proyecto anterior. Para agregarlos en el presente proyecto elija la opcin "Project->Add copy of source"en el men principal. Aparecer la ventana para seleccionar archivos, acceda a la carpeta del proyecto anterior y seleccione los esquemticos "not_e.sch" y "not_e4.sch". Con el explorador de Windows copie los smbolos "not_e.sym" y "not_e4.sym" a la carpeta del proyecto actual. En el proyecto "not_e_buses", agregue un nuevo esquemtico llamado "not_e4_bus.sch". El siguiente paso es lograr que la entrada de este diseo sea un bus de 4 bits. Para crear un bus en el editor de esquemticos, primeramente se coloca un wire en la hoja de trabajo; posteriormente, se le pone una etiqueta a ese wire usando la herramienta correspondiente, pero dicha etiqueta debe tener forma de bus, es decir, se inicia con un nombre alfanumrico y entre parntesis se ponen las dimensiones del bus separadas con el smbolo de dos puntos. Por ejemplo "X(3:0)", indica que el bus tiene 4 elementos "X(3)", "X(2)", "X(1)" y "X(0)". Preferentemente, usaremos al cero como ndice de la derecha para preservar la convencin de los nmeros binarios. Note que cuando un wire es etiquetado como bus, ste se vuleve ligeramente ms grueso, vea la Figura 11. Una vez creado el bus, se debe conectar a un puerto de entrada, vea Figura 12. Ahora, se van a conectar los elementos del bus "X(3:0)" a las entradas de una instancia del smbolo "not_e4.sim". Para tener acceso individual a los elementos del bus se insertar un elemento llamado "tap", el cual est en la barra de herramientas o en "Add->Bus Tap" del men principal. Se selecciona la orientacin

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 50

Fig. 4. Pgina "Option Page" de la opcin "Symbol Wizard".

del tap antes de colocarlo en la hoja, en este caso seleccione "Top". Arrastre el cursor y coloque 4 instancias de tap en el bus X(3:0), como se aprecia en la Figura 13. Conecte las terminales de los taps a las entradas de la instancia del "not_e4". Ahora etiquete cada wire con el elemento del bus que desee conectar a cada entrada del "not_e4" usando la herramienta para etiquetar wires, vea la Figura 14. Conecte otro bus a un puerto de salida y a las salidas de instancia del "not_e4", as como un puerto de entrada a la entrada "E"de dicha instancia, tal como se ve en la Figura 15. Guarde el esquemtico y regrese a la ventana del "Project Navigator", observe como cambia la jerarqua en la ventana de fuentes. Problema 3: a) Cree el smbolo "not_e4_bus.sym" a partir del diseo "not_e4_bus.sch", modi que la apariencia para que se vea como en la Figura 16. b) Simule el diseo "not_e4_bus.sch" para veri car su funcionamiento, AL FINALIZAR LLAME AL INSTRUCTOR. Un tap tambin puede ser de varios bits, como se aprecia en la Figura 17. Problema 4: a) Cree un nuevo esquemtico llamado "not_e8_bus.sch" como en la Figura 17. b) Cree el smbolo "not_e8_bus.sym" a partir del esquemtico "not_e8_bus.sch", la apariencia de dicho smbolo debe ser similar al de la Figura 16.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 51

Fig. 5. Pgina "Preview Page" de la opcin "Symbol Wizard".

Fig. 6. Ventana de editor de esquemticos con el smbolo "not_e.sym" recien creado.

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 52

Fig. 7. Ventana de editor de esquemticos con el smbolo "not_e.sym" modi cado.

Fig. 8. Creacin del diseo "not_e4".

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 53

Fig. 9. Contenido del esquemtico "not_e4.sch".

Fig. 10. Niveles jerrquicos los diseos "not_e4.sch"y "not_e.sch".

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 54

Fig. 11. Creacin de un Bus en el editor de esquemticos del ISE.

Fig. 12. Bus conetado a puerto de entrada

Fig. 13. Insercin de los taps en el bus X(3:0).

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 55

Fig. 14. Conexin y etiquetado de los taps.

Fig. 15. Diagrama completo de "not_e4_bus.sch".

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 56

Fig. 16. Apariencia del smbolo "not_e4_bus.sym".

Fig. 17. Esquemtico de "not_e8_bus.sch".

Copyright 2007. Universidad de Colima

Dr. Ramn Antnio Flix Cuadras 57

Conclusiones
Al finalizar el curso, el ingeniero ser capaz de disear, implementar y simular circuitos digitales con las herramientas de Xilinx.

Bibliografa
Pardo Carpio, F. & Boluda Grau, J. (2004). VHDL: lenguaje para sntesis y modelado de circuitos (2 ed.). Mxico: Alfaomega Grupo Editor. Morris Mano Arquitectura de computadoras tercera edicin, Mxico, Prentice, may 1994 Nelson P. Victor Anlisis y Diseo de Circuitos Lgicos Digitales primera; edicin, Mxico, Prentice Hall. 1996 Ronald J. Tocci Sistemas Digitales Principios y Aplicaciones octava edicin, Mxico, Pearson Educacin. 2003

S-ar putea să vă placă și