PRACTICA No. 2 “COMPARADORES DE 4 BITS” MATERIA: DISEÑO DIGITAL SEMESTRE FEBRERO-JUNIO DEL 2012 NOMBRE DE LOS ALUMNOS: 1.-__________________________________________________________________ 2.- __________________________________________________________________ 3.- __________________________________________________________________ OBJETIVO GENERAL DE LA PRÁCTICA: Que el estudiante adquiera las competencias en el diseño de comparadores e identifique sus características combinacionales que lo hacen un circuito de alto uso en la electrónica digital. EVALUACION: __________ CATEDRATICO: ING MIGUEL ANGEL PEREZ SOLANO INSTITUTO TECNOLOGICO DE OAXACA I. Objetivos específicos. - - Tener claro el concepto de circuitos combinacionales. Describir como es el funcionamiento de un circuito comparador de 1 bit. Construir una tabla de verdad para la descripción de un comparador de 2 bits. Entender el modelo matemático de una compuerta con 2 entradas de “n” bits Investigar en la pagina de Texas instruments http://upgrade.kongju.ac.kr/data/ttl/func.html circuitos de “glue logic” (los clásicos circuitos integrados 74xx) realizan la función lógica de comparación (comparadores). Interpretar las formas de onda presentadas a la salida de un comparador de cualquier característica, a la aplicación de estímulos (0s y 1s) en sus diversas entradas. Saber modelar en VDHL un comparador de cualquier característica a sus entradas. Sintetizar el archivo de un comparador de 2 entradas de 4 bits utilizando XST (del ISE Webpack de Xilinx). Implementar un comparador de dos entradas de 4 bits Nexys 3. II. MATERIAL Y SOFTWARE UTILIZADO Proteus Tarjeta Basys 2 de Xilinx. ISE Webpack Adept. III. FUNDAMENTO TEORICO Primeramente estableceremos que un circuito lógico no es mas que una asociación de compuertas (como las vistas en la practica 1) que realizan un función lógica. Todo el conjunto de circuitos lógicos que contiene un sistema digital, se clasifican en circuitos lógicos combinacionales y circuitos lógicos secuenciales. Un circuito lógico combinacional, es aquel cuyo valor de salida solo depende de los valores aplicados a su entrada (únicamente de eso y de nada mas). Esto se ilustra en la figura 2.1 Figura 2.1 Esquema de un circuito lógico combinacional Un circuito lógico combinacional, es aquel cuyo valor de salida siguiente depende tanto de los valores aplicados a la entrada, como del estado presente a la salida. Se caracterizan por utilizar retroalimentación de la salida a la entrada y una señal de reloj (clk). Un circuito secuencial está compuesto por lógica combinacional mas un bloque de CATEDRATICO: ING MIGUEL ANGEL PEREZ SOLANO INSTITUTO TECNOLOGICO DE OAXACA memoria que almacena el estado presente y lo alimenta nuevamente a la entrada para genera el estado siguiente cuando el clk lo determine. Esto se muestra en la figura 2.2 Figura 2.2 Diagrama a bloques de un circuito lógico secuencial COMPARADORES: Una actividad común en el diseño de sistemas digitales es comparar dos números de cualquier numero de bits, y producir una indicación si son iguales o si uno es mas grande que otro. La OR-exclusiva produce un 1 si las dos entradas (de 1 bit) son diferentes en caso contrario emite un 0, como se muestra en la figura 2.3. Figura 2.3 XOR como comparador Los números de “n” bits (multibit) son distintos si cualquiera de los pares de entrada son distintos. El circuito de la figura 2.4 muestra un comparador de 4 bits utilizando compuertas XNOR y una AND. La salida de la AND es 1 si los números son iguales, pero si cualquier par es diferente, será suficiente para llevar a la AND a un valor de 0 Estos comparadores pueden extenderse a cualquier numero de bits (comparadores de 2 entradas y cada entrada de “n” bits). Figura 2.4 Comparador de 4 bits Un comparador es un circuito lógico combinacional. Para construir un comparador de 4 bits que indicara; igual a, mayor que y menor que, tendremos que seguir un proceso de diseño digital, como sigue. CATEDRATICO: ING MIGUEL ANGEL PEREZ SOLANO INSTITUTO TECNOLOGICO DE OAXACA a) Diagrama a bloques: Aquí se definen las variables booleanas de entrada y salida como se muestra en la figura 2.5. Como se muestra, las variables de entrada son x,y , cada una de 4 bits. Las salidas son de 1 bit, los cuales indicaran con un 1 si las dos cantidades son iguales, o cual es mayor que la otra. Figura 2.5 Definición de las variables Como se lleva esto a un circuito lógico físicamente: existen 4 formas: Construirlo mediante compuertas lógicas: Es es un método muy arcaico pero es bueno para el razonamiento lógico, se podría trabajar hasta el nivel de simulación. Mediante lógica estándar TTL, se utiliza el circuito integrado SN7485, el cual es un comparador de 4 bits (actualmente un método en desuso por las limitantes de los circuitos integrados) . Utilizando PLDs. Mediante un proceso de diseño asistido por computadora (CAD) y utilizando herramientas para la automatización de diseño electrónico (EDA), podemos configurar una SPLD (dispositivo lógico programable simple) o un CPLD (dispositivo lógico programable complejo). Aunque con limitantes este método esta en uso limitado. CATEDRATICO: ING MIGUEL ANGEL PEREZ SOLANO INSTITUTO TECNOLOGICO DE OAXACA • Una de las actuales formas del diseño electrónico digital es mediante el uso de los FPGAs (arreglos de compuertas programables en el campo). Método que seguiremos ya que es la forma actual de diseñar utilizando un lenguaje de descripción de hardware (HDL) conocido como VHDL (lenguaje de descripción de hardware para circuitos integrados de muy alta velocidad). ACERCA DE VHDL El conocimiento del lenguaje estandarizado VHDL se ha convertido en algo imprescindible para todos los estudiantes, diseñadores e ingenieros que están de alguna manera ligados al desarrollo de sistemas electrónicos digitales. La evolución espectacular de la tecnología y del diseño microelectrónico ha permitido la realización de sistemas electrónicos digitales complejos en un único circuito integrado de escala de integración progresivamente elevada (muy alta (VLSI), ultra alta (ULSI), giga (GSI)) que llegan a contener en su interior más de 1.000.000 puertas lógicas. Pero esto sólo se ha podido llevar a cabo mediante un cambio profundo de las técnicas de diseño de circuitos integrados. Los circuitos de escala de integración media y alta (MSI y LSI respectivamente) se diseñaron mediante la realización de un prototipo formado por módulos más sencillos y la comprobación de su funcionamiento antes de proceder a la integración. Esta forma de diseño recibe el nombre de abajo a arriba (bottom-up) porque se enlazan diversos módulos para constituir un bloque funcional más complejo. Pero en el caso de los circuitos integrados de complejidad VLSI y superiores no resulta práctica la realización física de un prototipo y por ello es necesario simular y verificar su correcto comportamiento antes de integrarlos. Ello trajo consigo la necesidad del desarrollo de métodos de diseño asistido por computadora, divididos en varias fases que, a partir de la especificación del funcionamiento, llevan hasta la descripción física del circuito, por lo que reciben el nombre de arriba a abajo (top-down). Así, mediante simulación es posible una rápida detección de errores en fases tempranas del diseño, resulta factible la reutilización del mismo para diferentes tecnologías y se pueden utilizar las herramientas de síntesis actuales para obtener rápidamente un esquema lógico o estructural y, en definitiva, una netlist* de entrada para el trazado físico (layout) del ASIC, MCM, etc. o la asignación de recursos (mapping) en el caso de la lógica programable (PLDs y FPGAs).Todo ello, obviamente, incrementa la productividad y la eficacia del diseño. IV. METODOLOGIA DE LA PREPARACION DE LA PRACTICA a) Utilizando el estilo funcional de programación escribiremos un archivo fuente (source) en ISE Webpack de Xilinx llamado “comp4bits.vhd” dentro de un proyecto que llamaremos “comparadores”, el cuál se muestra en la sección siguiente de resultados. Ver figura 2.6 CATEDRATICO: ING MIGUEL ANGEL PEREZ SOLANO INSTITUTO TECNOLOGICO DE OAXACA b) c) d) e) f) Posteriormente se procede a sintetizar el archivo .vhd (usando la opción synthezise XST), proceso que reconoce el hardware necesario que requerirá el diseño de la FPGA (crea el netlist). Como paso siguiente se procede a la implementación del circuito (utilizando “implement design”) en donde se hará el “translate”, el “map” y el “place & route” de la FPGA para asignarles los IOUs. Se procede a la simulación del diseño, el cual se describirá en la sección de resultados y conclusiones de la practica. En este paso se crea un archivo tesbench para los estímulos del circuito como se muestra en los resultados. Ver figura 2.7 y 2.8 Se procede a asignarle las patillas especificas de entrada (switches) y salidas (LEDs) utilizando la aplicacion Plan Ahead en la opción de “user constraints>I/O pin planning (plan ahead) presyntesis”. Aca se utiliza el archivo .ucf o lo genera automáticamente la aplcacion. Ver figura 2.9 Por ultimo se genera el archivo de programación (generate program file) en cual tendrá una extensión “.bit”, el cual mediante el software adept se utilizara para programas el FPGA. V.- Resultados y Conclusiones de la Práctica A continuación se muestra la pantalla del programa fuente (source), el cual será sintetizado con el XST de Xilinx. Figura 2.6 Pantalla del archivo fuente ( source). CATEDRATICO: ING MIGUEL ANGEL PEREZ SOLANO INSTITUTO TECNOLOGICO DE OAXACA Posteriormente se muestran las pantallas de los archivos de simulación (el tesbench y el de waveforms). Figura 2.7 Archivo testbench para el comparador de 4 bits. A continuación se presenta los resultados de la simulación del comparador de 4 bits aplicándole el tesbench anterior. En dichas formas de onda se nota claramente el funcionamiento del circuito a la aplicación de valores de entrada y la respuesta de cada salida- CATEDRATICO: ING MIGUEL ANGEL PEREZ SOLANO INSTITUTO TECNOLOGICO DE OAXACA Figura 2.8 Pantalla de la formas de onda en la simulación Una vez hecho esto, se procede a asignar las patillas correspondientes de acuerdo a como esta conectado el FPGA en la tarjeta NEXYS 3, para ello se utiliza el siguiente archivo .ucf. Figura 2.9 Archivo de constraints .ucf Y por ultimo se genera el archivo de generación ( .bit) que servirá para que con adept se baje a la tarjeta del FPGA. Una vez hecho se esto, se realizan las pruebas en la computadora para su comprensión. CATEDRATICO: ING MIGUEL ANGEL PEREZ SOLANO INSTITUTO TECNOLOGICO DE OAXACA VI.- Fuentes de información (Referencias bibliográficas y sitios internet) www.xilinx.com www.ti.com LIBRO: Fundamentos de lógica digital con diseño VHDL Stephen Brown, Zwonko Vranesivc Mc Graw Hill. SUERTE MUCHACHOS USTEDES PUEDEN LOGRAR LO QUE SE PROPONEN…PRINCIPALMENTE SON JOVENES…Solano VII.- ANEXOS (colocar acá datos que requieran agregar, extra al trabajo) CATEDRATICO: ING MIGUEL ANGEL PEREZ SOLANO INSTITUTO TECNOLOGICO DE OAXACA