Ejemplos e introducciòn a FPGA

download Ejemplos e introducciòn a FPGA

of 403

Transcript of Ejemplos e introducciòn a FPGA

  • 7/26/2019 Ejemplos e introduccin a FPGA

    1/402

    ESCUELA TCNICA SUPERIOR DE INGENIEROSINDUSTRIALES Y DE TELECOMUNICACIN

    Titulacin :

    INGENIERO TCNICO DE TELECOMUNICACIN,

    ESPECIALIDAD EN SONIDO E IMAGEN

    Ttulo del proyecto:

    ENTORNO EDUCATIVO PARA EL APRENDIZAJE DE

    SISTEMAS DIGITALES

  • 7/26/2019 Ejemplos e introduccin a FPGA

    2/402

    Desde esta pgina quiero hacer mis agradecimientos a todas las personas que han

    colaborado tanto en la realizacin de este proyecto como a lo largo de todos estos aos.

    Mis agradecimientos ..

    .. en primer lugar, para mis padres, por todo lo que han hecho por m en este momento y

    en toda mi vida.

    .. a mi tutor, Patxi Arregui, por la confianza y ayuda mostrada, as como por la

    posibilidad de dejarme hacer lo que me gusta.

    . a mi primo Javier, tambin por todo lo que ha hecho por m y por ser una piezaimportante para haber llegado hasta aqu.

    .. de igual manera, a primo Miguel, por permitirme vivir en su casa todos estos aos.

    .. a todo el resto de familiares, abuelos, tos y primos, por su apoyo.

    .. por ltimo, no olvidarme todos mis amigos, debido a todo lo que disfruto con ellos.

    Para todos, GRACIAS.

  • 7/26/2019 Ejemplos e introduccin a FPGA

    3/402

    INDICE

    INDICE

    1.-INTRODUCCIN Y OBJETIVOS....................................................................................1

    2.-ANTECEDENTES FPGA ...................................................................................................42.1.- Introduccin a la lgica programable.....................................................................................................52.2.- EVOLUCIN DE LA LGICA PROGRAMABLE ............................................................. ............... 7

    2.2.1.- Concepto de Lgica Programable .................................................................... ............................ 72.2.2.- Clasificacin de los PLDs.............................................................................................................7

    2.3.- COMPARATIVA FPGA CPLD ASIC ........................................................ ................................ 122.4.- ARQUITECTURA DE LOS DISPOSITIVOS FPGA................ ......................................................... 132.4.1.- Bloques lgicos configurables (CLB) .............................................................. ........................... 142.4.2.-Matrices de interconexin (SM)..................................................................................................142.4.3.- Bloques de entrada/salida (IOB) .......................................................... ...................................... 15

    2.5.- HERRAMIENTAS DE PROGRAMACIN ................................................................ ....................... 162.6.- MERCADO ACTUAL DE LAS FPGA................................................................. ............................... 172.7.- CONCLUSIN.......................................................................................................................................18

    3.-ESTUDIO DE MERCADO ...............................................................................................19

    4.-COMPARATIVA MAX+PLUS II QUARTUS II .....................................................254.1.- INTRODUCCIN..................................................................................................................................264.2.- FAMILIAS DE DISPOSITIVOS SOPORTADOS..............................................................................264.3.- VISIN GENERAL DE DISEO CON QUARTUS II......................................................................274.4.- CONCLUSIN.......................................................................................................................................29

    5.-MANUAL TARJETAS UP2 DE2 DE ALTERA ....................................................305.1.- TARJETA EDUCACIONAL UP2........................................................................................................315.1.2.-Dispositivos FLEX10K.................................................................................................................335.1.3.- Configuracin del dispositivo EPF10K70..................................................................................34

    5.2.- TARJETA EDUCACIONAL DE2........................................................................................................355.2.1.- Instalacin. Controlador USB-Blaster.......................................................................................355.2.2.- Descripcin de la tarjeta educacional DE2................................................................................375.2.3.- Dispositivos Cyclone II FPGA....................................................................................................405.2.4.- Configuracin del dispositivo Cyclone II FPGA. ................................................................. .... 41

    5.3.- FLEX10K70 CYCLONE II 2C35 .............................................................. ........................................ 435.4.- GLOSARIO ......................................................... .................................................................... ............... 44

    6.- MANUAL DEL SOFTWARE QUARTUS II .............................................................466.1.- INTRODUCCIN..................................................................................................................................526.2.- SOFTWARE QUARTUS II DE ALTERA...........................................................................................536 3 - GUA SIMPLIFICADA PARA REALIZAR UN DISEO 55

  • 7/26/2019 Ejemplos e introduccin a FPGA

    4/402

    INDICE

    7.-OBJETIVOS DE LOS GUIONES DE PRCTICAS ..................................................114

    8.- GUIONES DE PRCTICAS PARA LA TITULACIN'INGENIERA TCNICA EN INFORMTICA DE GESTIN' ............................................................... . 119

    Prctica 1: Puertas Lgicas..........................................................................................................................120Prctica 2: Circuitos Aritmticos ................................................................ ................................................ 143Prctica 3: Circuitos Lgicos Combinacionales.........................................................................................165Prctica 4: Introduccin a VHDL. .............................................................. ................................................ 186Prctica 5: Biestables y Contadores............................................................................................................208Prctica 6: Diseo y Volcado de un Cronmetro.......................................................................................234

    Prctica 7: Mquina de Estados..................................................................................................................247Prctica 8: Diseo Libre................................................ ................................................................... ............ 267

    9.- GUIONES DE PRCTICAS PARA LA TITULACIN'INGENIERA DE TELECOMUNICACIN'..................................................................269

    Prctica 2: Entorno Software de Simulacin. .................................................................. .......................... 270Prctica 3: Biestables y Contadores............................................................................................................307

    10.- APLICACIN ESPECFICA......................................................................................33410.1.- INTRODUCCIN..............................................................................................................................33510.2.- DESCRIPCIN DEL HARDWARE................................................................................................336

    10.2.1.-TARJETA EDUCACIONAL DE2-70.....................................................................................33610.2.2.-KIT TRDB_D5M......................................................................................................................33910.2.3.-KIT TRDB_LTM ........................................................... .......................................................... 347

    10.3.- LENGUAJE DE PROGRAMACIN VERILOG HDL ................................................................. 35210.3.1.- INTRODUCCIN...................................................................................................................35210.3.2.- NIVELES DE DESCRIPCIN EN VERILOG....................................................................353

    10.3.3.- PROCESOS ......................................................... .................................................................... 35410.3.4.- MDULOS Y JERARQUAS ......................................................... ...................................... 35410.3.5.- SINTETIZABILIDAD............................................................................................................354

    10.4.- APLICACIN DE2_70_D5M_LTM .................................................................. .............................. 35510.4.1.- INTRODUCCIN...................................................................................................................35510.4.2.- DESARROLLO. ESTRUCTURA DEL DISEO ........................................................... ..... 356

    11.- CONCLUSIONES Y LNEAS FUTURAS.................................................................36311.1.- CONCLUSIONES..............................................................................................................................364

    11.2.- LNEAS FUTURAS ................................................................. .......................................................... 366

    12.- BIBLIOGRAFA...........................................................................................................36812.1.-REFERENCIAS BIBLIOGRFICAS ............................................................... ............................... 36912.2.- REFERENCIAS EN LA RED...........................................................................................................370

  • 7/26/2019 Ejemplos e introduccin a FPGA

    5/402

    INTRODUCCIN Y OBJETIVOS

    ___________________________________________________________________________

  • 7/26/2019 Ejemplos e introduccin a FPGA

    6/402

    INTRODUCCIN Y OBJETIVOS

    1.- INTRODUCCIN Y OBJETIVOSEl siglo XX ha trado consigo numerosos avances tecnolgicos, lo cual ha permitido

    que en la actualidad contemos con ordenadores personales, agendas electrnicas de bolsillo,telfonos mviles con conexin a Internet y mltiples aplicaciones, etc.

    El desarrollo de estos dispositivos se produce en base a la evolucin que han sufridoen las ltimas dcadas los circuitos integrados, llegando cada da a ser ms veloces y densos.

    En este mbito, los circuitos integrados constituyen los bloques bsicos de cualquier sistemadigital, en el cual la informacin se procesa de forma discreta.

    Este proyecto gira en torno al aprendizaje de sistemas digitales y, fundamentalmente,en cuanto a dispositivos de lgica programable del tipo FPGA. Los objetivos que se persiguenson los siguientes:

    - Introduccin al concepto de dispositivo de lgica programable. Ver la evolucin

    que estos dispositivos han sufrido, as como su implicacin en los diferentescampos de la ingeniera.

    - Analizar y definir un entorno educativo adecuado basado en dispositivos de lgicaprogramable para su utilizacin en un laboratorio de prcticas. Para ello esnecesario hacer el correspondiente estudio de mercado.

    - Desarrollar un laboratorio de prcticas para las asignaturas Estructura yTecnologa de Computadores de la titulacin Ingeniera Tcnica en Informticade Gestin, y Circuitos Electrnicos Digitales de la titulacin Ingeniera deTelecomunicacin, en las que se realiza el estudio de sistemas digitales.

    - Estudio de una aplicacin de mayor complejidad orientada a temas vistos en latitulacin Ingeniera Tcnica de Telecomunicacin Especialidad Sonido eImagen.

    - Como punto adicional del proyecto, en el Anexo 2, se realiza el estudio de unrobot basado en microcontroladores PIC: Robot Moway.

    LABORATORIO DE PRCTICAS

    El objetivo de la realizacin de este punto es el de realizar la modernizacin delmaterial existente en el laboratorio de prcticas para las asignaturas mencionadasanteriormente. Hasta ahora, en el laboratorio se viene utilizando el software de desarrollo

  • 7/26/2019 Ejemplos e introduccin a FPGA

    7/402

    INTRODUCCIN Y OBJETIVOS

    El material se compone de lo siguiente:

    - Manual de las tarjetas UP2 y DE2 de Altera: permite conocer lascaractersticas del hardware disponible en el laboratorio, adems de realizar un estudio sobrelas familias de los dispositivos programables integrados en las mismas.

    Aunque, como se ha mencionado, se va a pasar a trabajar con la tarjeta DE2, seincluyen nociones de la tarjeta UP2, debido a la posibilidad de tener que recurrir a lautilizacin de esta tarjeta por la falta del nmero suficiente de tarjetas DE2 en un determinadomomento por diferentes motivos.

    - Manual del software Quartus II: el objetivo es tener un manual adaptado yorientado a la iniciacin en este entorno de desarrollo, que sirva como ayuda en la realizacinde los guiones de prcticas. Para ello, no se incluyen todas las posibilidades que el softwareofrece, sino las necesarias para llevar a cabo el desarrollo de las prcticas.

    - Guiones de prcticas para la titulacin Ingeniera Tcnica en Informtica deGestin: se trata de un conjunto de ocho prcticas el cual permite aplicar los conocimientostericos adquiridos en la asignatura Estructura y Tecnologa de Computadores.

    - Guiones de prcticas para la titulacin Ingeniera de Telecomunicacin:debido a la menor carga de horas prcticas de la asignatura Circuitos Electrnicos Digitales,en este caso, el contenido se resume a dos guiones que permiten aplicar los conocimientostericos de la mencionada asignatura.

    APLICACIN ESPECFICA

    Para esta parte del proyecto, en primer lugar, es necesario acudir al estudio de mercadorealizado, con el objetivo de elegir el hardware adecuado para su implementacin.

    De esta manera, se realiza el estudio de un entorno educativo orientado al trabajo conelementos de vdeo.

    La aplicacin consiste en un sistema completo de vdeo, en el que mediante unacmara digital se realiza la adquisicin de imgenes de forma continua para que a su vez seanvisualizadas en una pantalla LCD, todo ello controlado por un dispositivo de lgica

    programable. Este diseo, en su forma original, est disponible para ser descargado desde lapgina Web de Altera. En la aplicacin, este diseo queda modificado, permitiendo jugar conla distribucin de los colores de la imagen final mostrada en la pantalla LCD.

    ANEXO 2. ROBOT MOWAY

  • 7/26/2019 Ejemplos e introduccin a FPGA

    8/402

    ANTECEDENTES FPGA

    ___________________________________________________________________________

    CAPTULO 2.

  • 7/26/2019 Ejemplos e introduccin a FPGA

    9/402

    ANTECEDENTES FPGA

    2.- ANTECEDENTES FPGAEn este apartado se da una visin de la evolucin de las herramientas disponibles para

    el diseador de sistemas digitales en cuanto a la realizacin de diseos de lgicaprogramable, dando una visin ms extensa de los dispositivos FPGA que son los empleadosdurante la realizacin del presente proyecto.

    2.1.- INTRODUCCIN A LA LGICA PROGRAMABLE

    Un amplio espectro de posibilidades est disponible para el diseo e implementacinde circuitos lgicos, tal como se ve en la Figura 1.

    Figura 1. Alternativas para la implementacin de un sistema digital en un circuito integrado.(Grfico extrado de [2])

    Tradicionalmente el diseo de sistemas digitales se realizaba mediante el uso decircuitos integrados, tales como SSI y MSI TTL. La caracterstica principal de estos circuitoses que son empleados para realizar funciones fijas definidas por el diseador del sistema.

    Para la realizacin de sistemas complejos que exigen un elevado nmero de circuitosintegrados (CI), se utilizan circuitos diseados a medida que nicamente sirven paraimplementar una aplicacin en concreto. Estos circuitos son los denominados ASIC(Application Specific Integrated Circuit) y, en general, son producidos por los fabricantes dei i i d l ifi i i d l i

  • 7/26/2019 Ejemplos e introduccin a FPGA

    10/402

    ANTECEDENTES FPGA

    La necesidad de obtener diseos de forma rpida ha llevado a la creacin y evolucinde los dispositivos de lgica programable, con las ventajas que estos conllevan en cuanto asimplicidad de uso, bajo coste y flexibilidad. La idea comenz con las memorias de slolectura (ROM) y ha evolucionado hasta sistemas que integran dispositivos programables,memorias y lgica configurable, todo ello en un mismo chip.

    El grfico presentado en la Figura 2 muestra el equilibrio entre los parmetros de lasdiferentes tecnologas.

    Figura 2. Caractersticas de las distintas tecnologas(Grfico extrado de [2])

  • 7/26/2019 Ejemplos e introduccin a FPGA

    11/402

    ANTECEDENTES FPGA

    2.2.- EVOLUCIN DE LA LGICA PROGRAMABLE2.2.1.- CONCEPTO DE LGICA PROGRAMABLE

    La lgica programable se basa en dispositivos de lgica programable (PLD), los cualesson circuitos formados por matrices de puertas lgicas y flip-flops, y pueden ser configurados

    por el usuario para ejecutar una o varias funciones lgicas, consiguiendo reemplazar varioscircuitos integrados estndares o de funciones fijas.

    2.2.2.- CLASIFICACIN DE LOS PLDS

    A continuacin, se muestra la evolucin en cuanto a dispositivos de lgicaprogramable, desde estructuras simples como ROMs, hasta CPLDs (Complex ProgrammableLogic Device) y FPGAs (Field Programmable Gate Array).

    Los PLDs se pueden clasificar en: SPLDs (Simplex Programmable Logic Device) CPLDs (Complex Programmable Logic Device) FPGAs (Field Programmable Gate Arrays)

    2.2.2.1.- SPLD Simplex Programmable Logic Device

    Son dispositivos basados en el empleo de matrices lgicas programables. Es el tipo dePLD empleado para realizar tareas relativamente sencillas, como el diseo de circuitoscombinacionales y secuenciales no muy complejos, a medida y a un bajo coste.

    Existen cuatro tipos de dispositivos SPLD, atendiendo a la forma de programacin delos mismos: PROM, PLA, PAL y GAL.

    Dispositivos PROM (Programmable Read Only Memory)

    Antes de la aparicin de dispositivosespecficos para el diseo de sistemasdigitales, los chips de slo lectura (ROM) seutilizaban para crear distintas funciones delgica combinacional. Por tanto, el chip de

  • 7/26/2019 Ejemplos e introduccin a FPGA

    12/402

    ANTECEDENTES FPGA

    El uso de chips de memoria PROM conlleva una serie de desventajas respecto a loscircuitos lgicos dedicados:- Mayor lentitud.- Mayor consumo de potencia.- Uso ineficiente del espacio.- No pueden ser usados para circuitos de lgica secuencial por s solos, ya que no

    contienen biestables. Para ello es necesario el uso de registros TTL externos.

    Dispositivos PLA (Programmable Logic Array)

    Estos dispositivos tambin son conocidos como FPLA (Field Programmable LogicArray), debido a que es el usuario, y no el fabricante, quien los programa.

    Los dispositivos PLA son PLDs en los cuales se pueden programar las uniones tantoen la matriz de puertas AND como en la matriz de puertas OR. Debido a ello, son losdispositivos ms flexibles, si bien presentan desventajas en cuanto a tamao y velocidad,debido a la inclusin de transistores adicionales en la matriz de puertas OR. Principalmenteson usados para la construccin de mquinas de estados. Para otro tipo de aplicaciones, losdispositivos PAL resultan ms efectivos.

    La siguiente figura muestra un ejemplo bsico de arquitectura PLA:

  • 7/26/2019 Ejemplos e introduccin a FPGA

    13/402

    ANTECEDENTES FPGA

    La Figura 5 muestra la arquitectura bsica de un dispositivo PAL:

    Figura 5. Ejemplo de estructura de un dispositivo PAL(Imagen original extrada de [3])

    La introduccin del dispositivo PAL aument la eficiencia de los diseos de lgicaprogramable y, de hecho, se trataba del dispositivo programable ms comn. Esimplementado con tecnologa TTL y ECL, adems de, normalmente, contener flip-flopsconectados a las salidas de las puertas OR para poder realizar circuitos secuenciales.

    Estos dispositivos resultan de especial importancia ya que son la base de algunas delas ms nuevas y complejas arquitecturas surgidas posteriormente.

    Dispositivos GAL (Generic Array Logic)

  • 7/26/2019 Ejemplos e introduccin a FPGA

    14/402

    ANTECEDENTES FPGA

    2.2.2.2.- CPLD Complex Programmable Logic Device

    Los dispositivos CPLD presentan similares caractersticas a los SPLD, con ladiferencia de ser versiones superiores a stos, lo que conlleva un aumento en la capacidadlgica, aproximadamente 50 veces superior respecto a los SPLD.

    Un CPLD consta de mltiples bloques lgicos conectados mediante una matriz deinterconexin interna centralizada. La matriz de interconexin se programa para conectar deforma selectiva distintas seales de entrada a un nivel de puertas AND programable,

    conectadas a su vez a un nivel de puertas OR fijo.De la misma manera, las salidas de las puertas OR son conectadas a macroclulasconfigurables que permiten al usuario mayor flexibilidad en los diseos.

    2.2.2.3.-FPGA - Field Programmable Gate Arrays

    Los FPGAs son el resultado de la combinacin de dos tecnologas diferentes: losdispositivos lgicos programables (PLD) y los circuitos integrados de aplicacin especfica(ASIC). De esta manera, se obtiene un dispositivo con un alto nivel de integracin, como elcaso de los ASICs, pero tambin con las ventajas de estandarizacin y programacin por

    parte del usuario que ofrecen los CPLDs.Los FPGAs se definen como dispositivos lgicos de propsito general programables

    por los usuarios, compuestos de bloques lgicos comunicados por interconexionesprogramables.

    La siguiente figura resume el aspecto genrico de un FPGA:

  • 7/26/2019 Ejemplos e introduccin a FPGA

    15/402

    ANTECEDENTES FPGA

    Una tendencia reciente est siendo la combinacin de los bloques lgicos einterconexiones de los FPGAs con microprocesadores y perifricos relacionados. Otraalternativa es hacer uso de ncleos de procesadores en la lgica del dispositivo FPGA(ejemplo de Nios y Nios II de Altera).

    Muchos FPGA modernos soportan la reconfiguracin parcial del sistema, permitiendoque una parte del diseo sea reprogramada mientras las dems partes siguen funcionando.

    Hoy en da, los FPGAs estn presentes en campos tan diversos como la automocin,la electrnica de consumo la investigacin espacial. Dicha tecnologa es de especial

    importancia en todas aquellas industrias que requieren computacin a alta velocidad.

    En el apartado de arquitectura de los dispositivos FPGA se explica msdetalladamente la estructura de estos dispositivos.

  • 7/26/2019 Ejemplos e introduccin a FPGA

    16/402

    ANTECEDENTES FPGA

    2.3.- COMPARATIVA FPGA CPLD ASIC

    La tecnologa FPGA fue inventada en el ao 1984 por Ross Freeman y BernardVonderschmitt, cofundadores de la compaa Xilinx, y surgen como la evolucin de losCPLDs.

    Tanto los dispositivos CPLD como FPGA contienen un gran nmero de elementoslgicos programables. Midiendo la densidad de elementos lgicos programables en puertaslgicas equivalentes, los dispositivos CPLD constan del orden de decenas de miles de puertaslgicas equivalentes, mientras que en un dispositivo FPGA se puede llegar hasta cientos de

    miles e incluso millones de stas.Aparte de la medida de la densidad, la diferencia fundamental entre FPGAs y CPLDs

    radica en su arquitectura. La arquitectura de los CPLDs es ms rgida y se basa en una o mssumas de productos programables cuyos resultados son recogidos por un reducido nmero de

    biestables sncronos o flip-flops. Por otro lado, la arquitectura de las FPGAs se basa en ungran nmero de pequeos bloques, donde cada uno de estos bloques es utilizado paraimplementar sencillas operaciones lgicas, recogidas a su vez por biestables sncronos. De

    esta manera, la gran libertad disponible para la interconexin de estos bloques dota a lasFPGAs de una gran flexibilidad.Otra diferencia importante entre FPGAs y CPLDs consiste en que en la mayora de

    FPGAs se pueden encontrar funciones de alto nivel, como sumadores y multiplicadores eincluso bloques de memoria, integrados en la propia matriz de interconexiones.

    Hasta este punto se han resumido las principales diferencias entre FPGAs y CPLDs.A continuacin, la Tabla 1 recoge las principales caractersticas que definen a los dispositivos

    FPGA y ASIC, aumentando la informacin dada en la Figura 2 del presente captulo, conobjeto de observar las similitudes y diferencias existentes entre ambos.

    Caractersticas ASIC FPGATipo de producto Especfico EstndarConsumo de energa Bajo Medio

    Fiabilidad Alta Alta

    Confidencialidad Alta BajaCoste de desarrollo Alto BajoComplejidad Alta Alta

    Programacin Slo en proceso de fabricacin Por el usuario (reprogramable)Simulacin Complicada FcilVerificaciones en fases Imposible Posible

  • 7/26/2019 Ejemplos e introduccin a FPGA

    17/402

    ANTECEDENTES FPGA

    2.4.- ARQUITECTURA DE LOS DISPOSITIVOS FPGAUn dispositivo FGPGA consta de tres tipos de elementos programables:

    1. Bloques Lgicos Configurables (CLB, Configurable Logic Block).2. Matrices de interconexin (SM, Switching Matrix).3. Bloques de entrada/salida (IOB, Input/Output Blocks).

    Adems de los elementos mencionados, presentan lneas de interconexin agrupadasen canales verticales y horizontales. Finalmente, existen clulas de memoria de configuracin(CMC, Configuration Memory Cell) distribuidas a lo largo de todo el chip, las cuales

    permiten almacenar toda la informacin necesaria para realizar la configuracin de loselementos programables. Estas clulas de configuracin suelen consistir en bloques dememoria RAM y son inicializadas en el proceso de carga del programa de configuracin.

    La siguiente figura muestra la estructura bsica de un dispositivo FPGA, indicando losbloques mencionados:

  • 7/26/2019 Ejemplos e introduccin a FPGA

    18/402

    ANTECEDENTES FPGA

    2.4.1.- BLOQUES LGICOS CONFIGURABLES (CLB)

    Son los elementos que constituyen elncleo del dispositivo FPGA. Cada CLB constade una parte de lgica combinacional y de unaserie de registros de almacenamiento.

    Los registros de almacenamiento sonempleados en el caso de diseos de lgica

    secuencial. Figura 8. Bloque CLB(Imagen extrada de [5])

    La seccin de lgica combinacional, normalmente basada en una LUT (Look UpTable), permite implementar cualquier funcin booleana a partir de sus variables de entrada.Adems, se recurre al uso de multiplexores como elementos adicionales de direccionamientode los datos del CLB.

    2.4.2.-MATRICES DE INTERCONEXIN (SM)

    Son dispositivos de conmutacindistribuidos de forma uniforme por el dispositivoFPGA. Internamente estn formados portransistores que permiten la unin de las diferenteslneas de interconexin de propsito general,

    permitiendo conectar seales de unas lneas a otras.Figura 9. Matrices de interconexin

    (Imagen extrada de [5])

    Adems de las lneas de interconexin de propsito general, existen las denominadasLneas Directas y Lneas Largas. Las primeras permiten la conexin directa entre

    bloques, sin la necesidad de pasar por ninguna matriz de interconexin, mientras que lassegundas son lneas conductoras de gran longitud, horizontales y verticales, que atraviesan eldispositivo desde sus extremos.

    La Figura 10 muestra ejemplos de conexin mediante estas lneas.

  • 7/26/2019 Ejemplos e introduccin a FPGA

    19/402

    ANTECEDENTES FPGA

    2.4.3.- BLOQUES DE ENTRADA/SALIDA (IOB)

    Tal como se observa en la Figura 7, el contorno de la FPGA est constituido porbloques de entrada/salida, donde stos son configurables por parte del usuario. Cada uno delos bloques disponibles puede ser configurado independientemente para funcionar comoentrada, salida lnea bidireccional.

  • 7/26/2019 Ejemplos e introduccin a FPGA

    20/402

    ANTECEDENTES FPGA

    2.5.- HERRAMIENTAS DE PROGRAMACINLos lenguajes utilizados como cdigo fuente para el desarrollo de diseos con

    dispositivos de lgica programable son los denominados lenguajes de descripcin hardware(HDL, Hardware Description Language).

    Tambin existen programas de captura de esquemas, tiles para la realizacin dediseos sencillos, sin tener que recurrir a la complejidad de un lenguaje HDL, si bien estesistema no es til para diseos complicados.

    Un lenguaje HDL permite definir las interconexiones y el comportamiento de uncircuito electrnico, sin la utilizacin de diagramas esquemticos.

    Los pasos en el diseo de un sistema son los siguientes:1.- Definir la tarea o tareas que tiene que realizar el circuito.2.- Escribir el programa usando un lenguaje HDL.3.- Comprobacin de la sintaxis y simulacin del programa.4.- Programacin del dispositivo y comprobacin del funcionamiento.

    Un rasgo comn de estos lenguajes suele ser la independencia del hardware empleadoy la modularidad o jerarqua, es decir, una vez implementado el diseo, ste puede ser usadodentro de otro diseo ms complejo y con otro dispositivo compatible.

    Entre los lenguajes de programacin disponibles, destacan los siguientes:

    ABEL HDL: Advanced Boolean Expression Language. Se trata de un lenguaje

    limitado, utilizado para el diseo de sistemas de baja complejidad. Verilog HDL: Es un lenguaje de descripcin hardware de alto nivel para

    dispositivos ms complejos. Presenta una sintaxis similar a la del lenguaje deprogramacin C, sin embargo, la caracterstica principal que lo define es quedifiere de los lenguajes de programacin convencionales, al no seguir unaejecucin estrictamente lineal de las sentencias incluidas en loscorrespondientes diseos.

    VHDL: Acrnimo que representa la combinacin VHSIC (Very High SpeedIntegrated Circuit) y HDL (Hardware Description Language). Al igual queVerilog, es un lenguaje de descripcin hardware de alto nivel empleado para eldesarrollo de sistemas complejos. Como caracterstica principal, en VHDLexisten varias formas de disear un mismo circuito:

    o Funcional: Describir la forma en que se comporta el circuito La

  • 7/26/2019 Ejemplos e introduccin a FPGA

    21/402

    ANTECEDENTES FPGA

    2.6.- MERCADO ACTUAL DE LAS FPGAEl uso de dispositivos FPGA est consolidado a nivel mundial. Los porcentajes de

    utilizacin de estos dispositivos respecto a tecnologas anteriores vara segn el tipo deindustria. Por ejemplo, destacan los altos porcentajes de utilizacin en las industriasaeroespaciales (64%) industrias de vdeo (62%), mientras que el sector de la automocin sesigue decantando por tecnologas anteriores basadas en ASICs.

    El empleo de FPGAs no conlleva la exclusin del resto de ASICs. En muchos casos,

    las primeras son empleadas en la realizacin de prototipos de los ASIC finales.A su vez, dispositivos de baja densidad como CPLDs pueden ser utilizados junto con

    las FPGAs en un mismo diseo.Otro punto importante es la invasin de las FPGA en el mercado de los DSP.

    Actualmente, cerca de un 40% de los usuarios de FPGA emplean estos chips en la realizacinde diferentes aplicaciones de DSP.

    A continuacin se muestra el listado de los principales fabricantes de FPGA: Actel Altera Atmel Cypress Lattice Lucent Technologies QuickLogic

    Xilinx

    La siguiente figura muestra la cuota de mercado que tienen las respectivas compaasfabricantes:

  • 7/26/2019 Ejemplos e introduccin a FPGA

    22/402

    ANTECEDENTES FPGA

    2.7.- CONCLUSINLos circuitos integrados estn omnipresentes en gran cantidad de productos

    industriales. Entre sus alternativas destacan los dispositivos lgicos programables, quecombinan muchos de los beneficios de los circuitos integrados dedicados a funcionesespecficas con la gran ventaja de poder implementar circuitos a la medida del cliente.

  • 7/26/2019 Ejemplos e introduccin a FPGA

    23/402

    ESTUDIO DE MERCADO

    ___________________________________________________________________________

    CAPTULO 3.

  • 7/26/2019 Ejemplos e introduccin a FPGA

    24/402

    ESTUDIO DE MERCADO

    3.- ESTUDIO DE MERCADOSiguiendo con el apartado Mercado Actual de las FPGA descrito en el captulo

    anterior, el cual presenta los principales fabricantes de dispositivos FPGA, en este captulo seanaliza la oferta de cada uno de dichos fabricantes, con el objetivo de realizar un estudio demercado que permita identificar tanto las compaas como los productos ms adecuados paradefinir un entrono educativo basado en sistemas digitales.

    A continuacin se hace una recopilacin del listado de principales fabricantes:ACTEL, ALTERA, ATMEL, CYPRESS, LATTICE, QUICKLOGIC, XILINX

    Dado que el objetivo de este estudio es encontrar entornos educativos adecuados parasu utilizacin tanto en prcticas de laboratorio como en posibles proyectos adicionales, sevalora especialmente aquellas compaas que sigan el siguiente perfil:

    Compaas que ofertan un programa universitario en el que se dan facilidadesa las organizaciones acadmicas para el acceso a sus productos y recursos,consiguiendo importantes descuentos en la adquisicin de tarjetaseducacionales destinadas al laboratorio.

    Disponer de un software libre de desarrollo de sistemas digitales, descargabledesde la correspondiente pgina Web, con el objetivo de que est disponible

    para cualquier persona interesada en el aprendizaje de sistemas digitales. Los productos ofertados deben cumplir las siguientes caractersticas:

    Kit completo para la programacin del sistema (cable de descarga,CD-ROM con drivers de configuracin, etc).

    PLD de tecnologa RAM para tener un nmero ilimitado dereprogramaciones.

    Variedad de recursos (LEDs, displays, interruptores, pulsadores,diferentes puertos de entrada/salida, etc) con el objetivo de permitirdisear un completo programa de prcticas para el alumno en cuanto

    a diseos de sistemas digitales. Manuales de usuario para la ayuda y entendimiento de losdispositivos.

    Segn los requisitos mencionados, se decide centrar el estudio en las compaas Alteray Xilinx descartando el resto de compaas debido a razones como: no ofrecer un programa

  • 7/26/2019 Ejemplos e introduccin a FPGA

    25/402

    ESTUDIO DE MERCADO

    VER TABLA ESTUDIO DE MERCADO

  • 7/26/2019 Ejemplos e introduccin a FPGA

    26/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    27/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    28/402

    ESTUDIO DE MERCADO

    Cabe decir tambin que se puede realizar la adquisicin tanto de la cmara digital

    como del panel tctil por separado, en el posible caso de que se disponga de la tarjetaeducacional correcta con anterioridad. La siguiente tabla muestra los precios de estoselementos individualmente:

    Producto Precio UnitarioCmara Digital 5M $85Panel LCD 4.3 $170

    Tabla 3. Precios de cmara digital y panel LCD

  • 7/26/2019 Ejemplos e introduccin a FPGA

    29/402

    COMPARATIVA MAX+PLUS II QUARTUS II

    ___________________________________________________________________________

    CAPTULO 4.

  • 7/26/2019 Ejemplos e introduccin a FPGA

    30/402

    COMPARATIVA MAX+PLUS II QUARTUS II

    4.- COMPARATIVA MAX+plus II QUARTUS II4.1.- INTRODUCCIN

    Este captulo permite el estudio del programa QUARTUS II en comparacin conMAX+PLUS II, viendo las posibilidades que ofrece el nuevo programa y su metodologa detrabajo.

    La comparacin incluye, como principal aspecto a tener en cuenta, las familias dedispositivos lgicos programables que son soportadas por cada uno de los programasmencionados. Adems, se presenta el nuevo entorno de trabajo y se facilita la adaptacin alnuevo software de desarrollo.

    4.2.- FAMILIAS DE DISPOSITIVOS SOPORTADOS

    El software QUARTUS II soporta los dispositivos actuales del mercado y la mayorade dispositivos soportados por el software MAX+PLUS II, si bien el nuevo software no escapaz de soportar ningn tipo de dispositivo o paquete que haya quedado obsoleto.

    Las familias de dispositivos soportados por cada uno de los entornos de desarrollo seexponen en la siguiente tabla:

    Dispositivo Soportado Quartus II Max+Plus II

    Arria

    GX SI NOStratixSeries SI NOCycloneSeries SI NOHardCopySeries SI NOMAXII SI NOClassic NO SIMAX 3000A SI SIMAX 7000S/AE/B SI SIMAX 7000E NO SIMAX 9000 NO SIACEX1K SI SIFLEX6000 SI SIFLEX 8000 NO SI

  • 7/26/2019 Ejemplos e introduccin a FPGA

    31/402

    COMPARATIVA MAX+PLUS II QUARTUS II

    4.3.- VISIN GENERAL DE DISEO CON QUARTUS II

    El software de diseo Quartus II incluye las siguientes herramientas globales para eldesarrollo de los respectivos diseos:

    Project Navigator Node Finder Tcl Console Messages

    Status

    A continuacin se explica brevemente cada una de ellas:

    Project Navigator

    La ventana Project Navigator es similar a la ventana Hierarchy Display en

    Max+Plus II. La utilidad de esta ventana es la de dar informacin sobre los proyectos que seestn llevando a cabo. En el caso de Project Navigator, adems, se incluye informacinadicional, tales como registros y recursos de memoria utilizados.

    Node Finder

    La ventana Node Finder ofrece unas funcionalidades equivalentes al cuadro dedilogo Search Node Database del programa Max+Plus II. Esta herramienta permite buscar

    y utilizar cualquier elemento almacenado en la base de datos del proyecto.

    Tcl Console

    La herramienta Tcl Console permite la entrada de comandos y scripts Tcl quepermiten la realizacin de asignaciones, anlisis temporales, obtencin de informacin acercade los distintos diseos, adems de poder automatizar y personalizar totalmente la forma detrabajo con los elementos disponibles en Quartus II. Esta funcionalidad no es posiblerealizarla con el software Max+Plus II.

    Messages

    La ventana Messages es similar a la ventana Message Processor de Max+Plus II.

  • 7/26/2019 Ejemplos e introduccin a FPGA

    32/402

    COMPARATIVA MAX+PLUS II QUARTUS II

    De la misma manera que los nombres y algunas de las funcionalidades de las

    herramientas mencionadas anteriormente han sufrido variaciones, la apariencia del entorno dedesarrollo tambin ha sido actualizada.

    La Figura 1 muestra un ejemplo del nuevo entorno de desarrollo.

    Figura 1. Entorno de Quartus II

    Es interesante comentar que para usuarios acostumbrados a trabajar en el entrono deMax+Plus II, el software Quartus II permite modificar su apariencia. De esta manera, seconsigue que la barra de herramientas donde se alojan los respectivos iconos que dan acceso alas diferentes herramientas del software, mantenga los mismos smbolos que los utilizados enel caso de Max+Plus II.

    Las siguientes figuras muestran las distintas barras de herramientas, consecuencia deutilizar una apariencia u otra:

    Figura 2. Barra de herramientas de Max+Plus II

  • 7/26/2019 Ejemplos e introduccin a FPGA

    33/402

    COMPARATIVA MAX+PLUS II QUARTUS II

    MAX+PLUS II Software QUARTUS II Software

    Hierarchy Display View menu, Utility Windows, ProjectNavigator

    Graphic Editor Block Editor

    Symbol Editor Block Symbol Editor

    Text Editor Text Editor

    Waveform Editor Waveform Editor

    Floorplan Editor Timing Closure Floorplan

    Compiler Compiler Tool

    Simulator Simulator Tool

    Timing Analyzer Timing Analyzer Tool

    Programmer Programmer

    Message Processor Messages

    Open Project Open Project

    Set project To Current File Set as Top-Level Entity

    Save & Check Start Analysis & Synthesis

    Save & Compile Start Compilation

    Save & Simulate Start Simulation

    Tabla 2. Iconos de comandos Max+Plus II Quartus II(Imgenes de iconos extrados de [8])

  • 7/26/2019 Ejemplos e introduccin a FPGA

    34/402

    MANUAL DE LAS TARJETAS UP2 DE2

    ___________________________________________________________________________

  • 7/26/2019 Ejemplos e introduccin a FPGA

    35/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    36/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    37/402

    MANUAL DE LAS TARJETAS UP2 DE2

    5.1.2.-DISPOSITIVOS FLEX10K

    La familia de dispositivos programables integrados FLEX10K pertenece a la categorade las FPGAs y ofrece la flexibilidad de la lgica programable tradicional junto con lautilizacin de matrices de puertas integradas.

    Los dispositivos FLEX10K estn basados en elementos reconfigurables SRAM detecnologa CMOS. Estos dispositivos constan de hasta 250000 puertas, lo que proporciona ladensidad, velocidad y rasgos necesarios para integrar sistemas completos en un nicodispositivo.

    Los dispositivos FLEX10K son reconfigurables, es decir, es posible realizar todas laspruebas necesarias antes de obtener el resultado final. Pueden ser configurados en la mismatarjeta para la funcin especfica que sea requerida.

    La arquitectura FLEX10K es similar a la de matrices de puertas integradas. Como enel caso de matrices de puertas estndar, las matrices de puertas integradas aplican la lgicageneral, generando la arquitectura denominada mar de puertas. Adems, las matrices de

    puertas integradas constan de reas dedicadas a la implementacin de grandes funciones

    especializadas, aumentando la velocidad en comparacin con las matrices de puertas estndar.Sin embargo, generalmente las megafunciones integradas no pueden ser adaptadas, lo quelimita la flexibilidad en el diseo para el programador. Por el contrario, los dispositivosFLEX10K son programables, proporcionando al diseador un total control tanto sobre lasmegafunciones integradas como sobre la lgica general. A su vez, se facilita la realizacin decambios en el diseo durante la fase de depuracin del mismo.

    Cada dispositivo FLEX10K contiene una matriz integrada y una matriz lgica. Lamatriz integrada se utiliza para implementar distintas funciones de memoria o funciones delgica compleja, como procesado digital de seal (DSP), microcontroladores y funciones detransformacin de datos. La matriz lgica, en cambio, realiza la funcin de un mar de

    puertas, es decir, se utiliza para implementar la lgica general, como pueden ser contadores,sumadores, mquinas de estados o multiplexores. La combinacin de ambas matrices

    proporciona un buen rendimiento y densidad de matrices de puertas integradas, permitiendo alos diseadores llevar a cabo un sistema completo en un solo dispositivo.

    Los dispositivos FLEX10K contienen un interfaz que permite la configuracin en

    serie o en paralelo desde el microprocesador, tanto de manera sncrona como asncrona.A continuacin se exponen distintas caractersticas de la familia de dispositivosFLEX10K:

    Proporciona la integracin de Sistema en un Chip Programable (SOPC). Presenta entre 10000 y 250000 puertas tpicas.

  • 7/26/2019 Ejemplos e introduccin a FPGA

    38/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    39/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    40/402

    MANUAL DE LAS TARJETAS UP2 DE2

  • 7/26/2019 Ejemplos e introduccin a FPGA

    41/402

    MANUAL DE LAS TARJETAS UP2 DE2

    Por ltimo aparece la ventana mostrada en la Figura 7, la cual indica que el proceso deinstalacin de la placa en el PC ha concluido satisfactoriamente.

    Figura 7. Confirmacin de la instalacin.

    5.2.2.- DESCRIPCIN DE LA TARJETA EDUCACIONAL DE2

    La tarjeta educacional DE2, al igual que la tarjeta UP2, est diseada con la intencinde ser la base para el aprendizaje sobre dispositivos lgicos programables. Para ello, dichatarjeta cuenta con una serie de componentes que posibilitan la realizacin de una gran

    variedad de ejercicios.

    El elemento principal de la placa es el dispositivo Altera CycloneII 2C35 FPGA, alcual se conectan el resto de componentes importantes de la placa.

    Para el caso de experimentos sencillos, la placa DE2 cuenta con el suficiente nmero

  • 7/26/2019 Ejemplos e introduccin a FPGA

    42/402

    MANUAL DE LAS TARJETAS UP2 DE2

  • 7/26/2019 Ejemplos e introduccin a FPGA

    43/402

    MANUAL DE LAS TARJETAS UP2 DE2

    26.- 18 interruptores.27.- 18 LEDs color rojo.

    28.- Displays de 7 segmentos.29.- Mdulo LCD 16x2.30.- Interruptor RUN/PROG para seleccin de modos de programacin JTAG/AS.31.- Elemento de configuracin de dispositivos serie Altera - EPCS16.32.- Controlador Altera USB Blaster.33.- Controlador USB Host/Slave.34.- Interruptor Power ON/OFF.35.- Oscilador de 50 MHz.36.- Oscilador de 27 MHz.

    - Diagrama de bloques:

    La Figura 9 muestra el diagrama de bloques de la placa. En dicho diagrama se ve quetodas las comunicaciones entre elementos de la placa son hechas a travs del dispositivo

    principal Cyclone II FPGA, por lo que esta estructura dota al programador de la mximaflexibilidad, teniendo la posibilidad de implementar cualquier tipo de diseo.

  • 7/26/2019 Ejemplos e introduccin a FPGA

    44/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    45/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    46/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    47/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    48/402

    MANUAL DE LAS TARJETAS UP2 DE2

  • 7/26/2019 Ejemplos e introduccin a FPGA

    49/402

    Programacin AS: (Active Serial), modo de programacin donde los datos deconfiguracin son guardados en un bloque de memoria flash, por lo que dichos datos no se

    pierden en caso de desconectar la alimentacin

    Programacin JTAG: (Joint Test Action Group), los datos de configuracin sonenviados directamente al dispositivo FPGA. Al configurar el dispositivo de este modo,ste retiene la configuracin indicada mientras no se corte la alimentacin.

    RAM:Random-acces memory o memoria de acceso aleatorio. Es el rea de trabajopara la mayor parte del software de un PC.

    Tecnologa CMOS: del ingls Complementary Metal Oxide Semiconductor, es unade las familias lgicas empleadas en la fabricacin de circuitos integrados.

    USB Blaster:Circuito contenido en la placa DE2 para la programacin de la misma atravs de un cable USB conectado al PC.

    VGA:acrnimo de Video Graphics Array. Se trata de un sistema grfico de pantallaspara PCs desarrollado por IBM.

    MANUAL DEL SOFTWARE QUARTUS II'

  • 7/26/2019 Ejemplos e introduccin a FPGA

    50/402

    ______________________________________________________________________

  • 7/26/2019 Ejemplos e introduccin a FPGA

    51/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    52/402

    MANUAL DEL SOFTWARE QUARTUS II'

  • 7/26/2019 Ejemplos e introduccin a FPGA

    53/402

    Es necesario registrarse como nuevo usuario para poder descargar el programa (Create

    Your Altera.com Account). Se debe introducir una cuenta de usuario que ser empleada porAltera para el envo de la confirmacin de nuevo usuario.

    Figura 4. Identificacin de Usuario

    Introducir los datos de los campos obligatorios (los marcados por asterisco).

    - Nota: no introducir acentos ni ya que la pgina utiliza diccionario ingls.

  • 7/26/2019 Ejemplos e introduccin a FPGA

    54/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    55/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    56/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    57/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    58/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    59/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    60/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    61/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    62/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    63/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    64/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    65/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    66/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    67/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    68/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    69/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    70/402

    MANUAL DEL SOFTWARE QUARTUS II'

    6 7 - EDITOR DE TEXTO (TEXT EDITOR)

  • 7/26/2019 Ejemplos e introduccin a FPGA

    71/402

    6.7.- EDITOR DE TEXTO (TEXT EDITOR)

    Adems de mediante el Editor Grfico, tambin es posible la realizacin de diseosutilizando el Editor de Texto que contiene Quartus II. La utilizacin del Editor de Texto sehace necesaria ya que la programacin en el Editor Grfico se puede volver muy tediosa paradiseos con un mnimo de complicacin. Por lo tanto, se utiliza el Editor Grfico paraconstruir diseos sencillos y para unir diferentes bloques hechos en el Editor de Texto, paraas poder ver grficamente el diagrama de bloques que conforma el diseo y facilitar lacompresin del mismo.

    El Editor de Texto que contiene Quartus II permite elegir entre las siguientes opcionespara la programacin:

    - AHDL: Altera Hardware Description Language.- EDIF: Electronic Design Interchange Format.- SystemVerilog HDL: System Verilog Hardware Description Language.- Tcl script: Tool Command Language script.- Verilog HDL: Verilog Hardware Description Language.- VHDL: Very High Speed Integrated Circuit (VHSIC) Hardware Description

    Language.

    En las practicas se har una introduccin al lenguaje de programacin VHDL, ya queste es un lenguaje de programacin estndar y universalmente aceptado, lo cual permitirvolcar los diseos en los dispositivos de Altera o en los de cualquier otra compaa.

    Para comenzar a utilizar el Editor de Texto existen dos opciones, tal y como pasabacon el Editor Grfico. La primera de las opciones, definida por defecto en Quartus II, consisteen abrir un nuevo documento, para lo cual se pincha sobre el icono del folio en blanco queaparece en la parte superior izquierda de la pantalla.

    A continuacin, aparecer el men que se muestra en la Figura 20 y, en dicho men, seselecciona la opcin VHDL File. Ahora se estar en condiciones de utilizar el Editor deTexto con el lenguaje de programacin VHDL.

  • 7/26/2019 Ejemplos e introduccin a FPGA

    72/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    73/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    74/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    75/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    76/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    77/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    78/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    79/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    80/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    81/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    82/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    83/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    84/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    85/402

    MANUAL DEL SOFTWARE QUARTUS II'

    6.12.-PROGRAMADOR (PROGRAMMER). VOLCADO DE DISEOS ALA TARJETA EDUCACIONAL.

  • 7/26/2019 Ejemplos e introduccin a FPGA

    86/402

    El programador de Quartus II es la herramienta utilizada para volcar los diseos a unPLD. Es este caso, los dispositivos de los que se dispone, son los dos que contiene la tarjetaeducacional UP2, y el dispositivo instalado sobre la placa DE2, todos ellos de la compaaAltera:

    - EPM7128S: es un dispositivo de la familia MAX 7000S, basada en elementosEEPROM, por lo que el nmero de veces que se puede programar es limitado(superior a 100). El dispositivo almacenar el programa sin necesidad de ser

    alimentado.- EPF10K70: dispositivo de la familia FLEX 10K, basado en elementos SRAM

    reconfigurables, por lo que el nmero de veces que se puede programar esilimitado. Al interrumpirse la alimentacin, el programa descargado en estedispositivo se borrar.

    - 2C35 FPGA: dispositivo de la familia Cyclone II, capaz de ser programado unnmero ilimitado de veces. Segn el modo de programacin, es posible que lainformacin volcada a la placa se borre o se mantenga al cortar la alimentacin.

    La programacin en un dispositivo programable es el ltimo paso en el desarrollo deun diseo. Los archivos necesarios para este propsito son generados en Quartus II despus deque el diseo ha sido satisfactoriamente compilado. La familia de dispositivos MAX 7000Susa los archivos de extensin .pof (Programmer Object File) como formato para la

    programacin, mientras que la familia de dispositivos FLEX 10K emplea los archivos conextensin .sof (SRAM Object File) para la misma operacin. La familia Cyclone II soporta

    ambos tipos de archivo.Estos archivos son generados por el compilador, incluyendo todos los datos para lacorrecta configuracin del correspondiente PLD. Por tanto, los archivos de extensin .pofconfiguran elementos EEPROM mientras que los archivos .sof sirven para elementos

    basados en FPGA SRAMs.

    - Volcado de diseos a la tarjeta educacional UP2:

    A continuacin se presenta la serie de pasos que permiten la configuracin de la tarjetaeducacional UP2 de Altera, a travs del software Quartus II:

    1.- Debido a las caractersticas de los dispositivos existentes en la placa, los diseos

  • 7/26/2019 Ejemplos e introduccin a FPGA

    87/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    88/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    89/402

    MANUAL DEL SOFTWARE QUARTUS II'

  • 7/26/2019 Ejemplos e introduccin a FPGA

    90/402

    Figura 44. Ventana del programador

    En esta ventana es posible asignar el hardware usado para la programacin deldispositivo, seleccionar el archivo de diseo que va a ser volcado (con extensin .sof ennuestro caso y generado por el compilador) y especificar el propio dispositivo que va a ser

    programado.En el caso de que el entorno de Quartus II est siendo utilizado por primera vez para la

    programacin del dispositivo, es necesario asignar el hardware que permite dicha

    programacin. Para hacer esto, pinchar sobre el botn Hardware Setup situado en la partesuperior izquierda de la ventana, y en la nueva ventana que surge aadir el hardware aemplear, que en nuestro caso es el denominado ByteBlaster II a travs del puerto LPT1.ByteBlaster II es un sistema programador de dispositivos desarrollado por Altera paradispositivos de Altera y permite conectar la placa con el puerto paralelo del PC Por otra

  • 7/26/2019 Ejemplos e introduccin a FPGA

    91/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    92/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    93/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    94/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    95/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    96/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    97/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    98/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    99/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    100/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    101/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    102/402

    MANUAL DEL SOFTWARE QUARTUS II'

    N Agujero Seal/Pin N Agujero Seal/Pin1 RAW 2 GND3 VCC 4 GND

    5 VCC 6 GND7 Sin conexin 8 D11/90

  • 7/26/2019 Ejemplos e introduccin a FPGA

    103/402

    9 D12/92 10 D13/21011 D14/212 12 DEV_CLR/20913 DEV_OE/213 14 DEV_CLK2/21115 109 16 11017 111 18 113

    19 114 20 11521 116 22 11723 118 24 11925 120 26 12627 127 28 12829 129 30 13131 132 32 13333 134 34 13635 137 36 13837 139 38 14139 142 40 14341 144 42 14643 147 44 14845 149 46 15147 152 48 153

    49 154 50 15651 157 52 15853 159 54 16155 162 56 16357 VCC 58 GND59 VCC 60 GND

    Tabla 7. Asignacin de pines para el puerto de expansin B

    MANUAL DEL SOFTWARE QUARTUS II'

    N Agujero Seal/Pin N Agujero Seal/Pin1 RAW 2 GND3 VCC 4 GND

    5 VCC 6 GND7 Sin conexin 8 D11/90

  • 7/26/2019 Ejemplos e introduccin a FPGA

    104/402

    9 D12/92 10 D13/21011 D14/212 12 DEV_CLR/20913 DEV_OE/213 14 DEV_CLK2/21115 175 16 18117 182 18 183

    19 184 20 18521 186 22 18723 188 24 19025 191 26 19227 193 28 19429 195 30 19631 198 32 19933 200 34 20135 202 36 20337 204 38 20639 207 40 20841 214 42 21543 217 44 21845 219 46 22047 221 48 222

    49 223 50 22551 226 52 22753 228 54 22955 230 56 23157 VCC 58 GND59 VCC 60 GND

    Tabla 8. Asignacin de pines para el puerto de expansin C

  • 7/26/2019 Ejemplos e introduccin a FPGA

    105/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    106/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    107/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    108/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    109/402

    MANUAL DEL SOFTWARE QUARTUS II'

    - Interfaz VGA:

    La placa DE2 incluye un conector de 16 pines D-SUB para salida VGA. La

    sincronizacin de las seales VGA proviene directamente del dispositivo Cyclone II FPGA.El conector denominado ADV7123 se usa para llevar las seales analgicas de salida RGB(red, green, blue).

  • 7/26/2019 Ejemplos e introduccin a FPGA

    110/402

    Signal Name FPGA Pin No. DescriptionVGA_R[0] PIN_C8 VGA Red[0]VGA_R[1] PIN_F10 VGA Red[1]VGA_R[2] PIN_G10 VGA Red[2]

    VGA_R[3] PIN_D9 VGA Red[3]VGA_R[4] PIN_C9 VGA Red[4]VGA_R[5] PIN_A8 VGA Red[5]VGA_R[6] PIN_H11 VGA Red[6]VGA_R[7] PIN_H12 VGA Red[7]VGA_R[8] PIN_F11 VGA Red[8]VGA_R[9] PIN_E10 VGA Red[9]

    VGA_G[0] PIN_B9 VGA Green[0]VGA_G[1] PIN_A9 VGA Green[1]VGA_G[2] PIN_C10 VGA Green[2]VGA_G[3] PIN_D10 VGA Green[3]VGA_G[4] PIN_B10 VGA Green[4]VGA_G[5] PIN_A10 VGA Green[5]VGA_G[6] PIN_G11 VGA Green[6]

    VGA_G[7] PIN_D11 VGA Green[7]VGA_G[8] PIN_E12 VGA Green[8]VGA_G[9] PIN_D12 VGA Green[9]VGA_B[0] PIN_J13 VGA Blue[0]VGA_B[1] PIN_J14 VGA Blue[1]VGA_B[2] PIN_F12 VGA Blue[2]VGA_B[3] PIN_G12 VGA Blue[3]VGA_B[4] PIN_J10 VGA Blue[4]VGA_B[5] PIN_J11 VGA Blue[5]VGA_B[6] PIN_C11 VGA Blue[6]VGA_B[7] PIN_B11 VGA Blue[7]VGA B[8] PIN C12 VGA Bl [8]

  • 7/26/2019 Ejemplos e introduccin a FPGA

    111/402

    MANUAL DEL SOFTWARE QUARTUS II'

    - Controlador FastEthernet:

    La placa DE2 proporciona soporte Ethernet a travs del chip de control Davicom

    DM9111A Fast Ethernet.

    Signal Name FPGA Pin No. Description

  • 7/26/2019 Ejemplos e introduccin a FPGA

    112/402

    ENET_DATA[0] PIN_D17 DM9000A DATA[0]ENET_DATA[1] PIN_C17 DM9000A DATA[1]ENET_DATA[2] PIN_B18 DM9000A DATA[2]ENET_DATA[3] PIN_A18 DM9000A DATA[3]ENET_DATA[4] PIN_B17 DM9000A DATA[4]

    ENET_DATA[5] PIN_A17 DM9000A DATA[5]ENET_DATA[6] PIN_B16 DM9000A DATA[6]ENET_DATA[7] PIN_B15 DM9000A DATA[7]ENET_DATA[8] PIN_B20 DM9000A DATA[8]ENET_DATA[9] PIN_A20 DM9000A DATA[9]

    ENET_DATA[10] PIN_C19 DM9000A DATA[10]ENET_DATA[11] PIN_D19 DM9000A DATA[11]

    ENET_DATA[12] PIN_B19 DM9000A DATA[12]ENET_DATA[13] PIN_A19 DM9000A DATA[13]ENET_DATA[14] PIN_E18 DM9000A DATA[14]ENET_DATA[15] PIN_D18 DM9000A DATA[15]

    ENET_CLK PIN_B24 DM9000A Clock 25 MHzENET_CMD PIN_A21 DM9000A Command/Data Select, 0 = Command, 1 =DataENET_CS_N PIN_A23 DM9000A Chip Select

    ENET_INT PIN_B21 DM9000A InterruptENET_RD_N PIN_A22 DM9000A ReadENET_WR_N PIN_B22 DM9000A WriteENET_RST_N PIN_B23 DM9000A Reset

    Tabla 12. Asignacin de pines para la conexin Fast Ethernet.

  • 7/26/2019 Ejemplos e introduccin a FPGA

    113/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    114/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    115/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    116/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    117/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    118/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    119/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    120/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    121/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    122/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    123/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    124/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    125/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    126/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    127/402

    GUIONES DE PRCTICAS ITIG

  • 7/26/2019 Ejemplos e introduccin a FPGA

    128/402

    Figura 4. Introduccin de nombres

    Es imprescindible usar nombres nicos para los diferentes pines. Los pines ycables con el mismo nombre son conectados automticamente sin que aparezca un cablevisible en el diagrama esquemtico.

    h) Guardar el diseo en la carpeta definida para el proyecto. Para ello acceder a la ordenSave del men File.

    Al llegar a este punto ya se ha introducido el diseo, por lo que, a continuacin, seproceder a la compilacin del mismo.

    2- Compilacin del Diseo

  • 7/26/2019 Ejemplos e introduccin a FPGA

    129/402

    GUIONES DE PRCTICAS ITIG

    Tras finalizar el proceso de compilacin se presentar una ventana en la que se dainformacin acerca de los posibles errores o advertencias que pudiera haber. Si no hay ningnerror, se continuar con el proceso de simulacin. Si por el contrario, hubiese algn error,stos aparecern en la ventana de mensajes del compilador en color rojo, y habrn de serlocalizados y corregidos. Para localizar el error basta con seleccionarlo y pulsar el botnLocate. Al hacer esto, el programa regresa al editor en el que se dise el circuito y resaltael smbolo o el texto errneo.

  • 7/26/2019 Ejemplos e introduccin a FPGA

    130/402

    Durante la compilacin, el programa selecciona el dispositivo asignado previamenteen la definicin del proyecto. Si se hubiera obviado este paso el programa selecciona undispositivo automticamente. De todos modos siempre se podr cambiar el PLD

    posteriormente.

    3- Edicin de Seales

    Para comprobar el correcto funcionamiento del diseo generado resulta necesariodefinir las seales de prueba que se van a introducir en el mismo. Esto se realiza mediante elEditor de Seales y los pasos a seguir son los siguientes:

    a) Abrir un nuevo archivo del Editor de Seales. Para ello se pincha sobre el icono querepresenta una hoja en blanco y se selecciona la opcin Vector Waveform File desdela nueva ventana.

    b) Fijar el tiempo de anlisis desde el men Edit en la opcin End Time. Fijar unvalor alrededor de 5-10ms.

    c) Introducir las seales que se quieren estudiar. Para ello se debe acceder al men

    desplegable Edit situado en la barra de herramientas principal y seleccionar la opcinInsert seguido de Insert Node or Bus, con lo que se abrir el siguiente cuadro.

  • 7/26/2019 Ejemplos e introduccin a FPGA

    131/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    132/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    133/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    134/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    135/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    136/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    137/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    138/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    139/402

    GUIONES DE PRCTICAS ITIG

    3.2.- PUERTAS NAND, NOR Y XOR

    El diseo a introducir para este ejercicio es el siguiente:

  • 7/26/2019 Ejemplos e introduccin a FPGA

    140/402

    Figura 4. Circuito Ejercicio 3.2Tras el proceso de simulacin se obtienen los siguientes resultados:

    Figura 5. Resultado simulacin Ejercicio 3.2

    A partir de la simulacin realizada se obtiene la siguiente tabla de la verdad:

    A B Y1 Y2 Y3

    GUIONES DE PRCTICAS ITIG

    Observaciones:

    En el resultado de esta simulacin, el motivo de los pulsos que aparecen en las sealesde salida Y4 e Y6 es el mismo que el comentado en el apartado anterior.

    4.- EJERCICIOS DE DISEO

    4.1.- Veredicto de un Tribunal

  • 7/26/2019 Ejemplos e introduccin a FPGA

    141/402

    Considerando tres vocales y un presidente, hace un total de cuatro entradas las cualesse denominan A, B, C, y D, siendo A la correspondiente al presidente y que tiene valor dobleen caso de empate. Por tanto, la tabla de verdad queda de la siguiente manera:

    D C B A Y

    0 0 0 0 0

    0 0 0 1 0

    0 0 1 0 0

    0 0 1 1 10 1 0 0 0

    0 1 0 1 1

    0 1 1 0 0

    0 1 1 1 1

    1 0 0 0 0

    1 0 0 1 1

    1 0 1 0 0

    1 0 1 1 1

    1 1 0 0 0

    1 1 0 1 1

    1 1 1 0 1

    1 1 1 1 1

    Tabla 3

    A continuacin, tomando las salidas con valor igual a uno, se obtiene la funcin quet i it di t l t d d K h t l t

  • 7/26/2019 Ejemplos e introduccin a FPGA

    142/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    143/402

    GUIONES DE PRCTICAS ITIG

    Las frecuencias empleadas para las seales de entrada del circuito son las siguientes:

    Seal B 500 HzSeal A 1 KHz

    Realizado la correspondiente simulacin, mostrada en la Figura 9, se puede comprobarcomo el resultado de la seal Z coincide con el de la tabla de verdad del circuito y, por tanto,el diseo es correcto.

  • 7/26/2019 Ejemplos e introduccin a FPGA

    144/402

    Figura 9. Resultado simulacin Ejercicio de diseo 2

    Como se puede apreciar en el resultado, vuelven a aparecer picos en la seal Z. Lascausas son las explicadas anteriormente.

    4.3.- Circuito Combinacional

    La tabla de verdad correspondiente al circuito combinacional existente en la Figura 15,

    junto lo que se nos pide en los respectivos apartados, es la siguiente:

    D C B A E R

    0 0 0 0 0 1

    0 0 0 1 0 1

    0 0 1 0 0 1

    0 0 1 1 0 0

    0 1 0 0 0 00 1 0 1 0 0

    0 1 1 0 0 0

  • 7/26/2019 Ejemplos e introduccin a FPGA

    145/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    146/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    147/402

    GUIONES DE PRCTICAS ITIG

    Las reglas para las operaciones aritmticas bsicas son comunes a todos los sistemasde numeracin. La aritmtica binaria permite realizar cualquier tipo de operacin, ladiferencia est en que el sistema binario es el empleado por los microprocesadores y stos,solo son capaces de sumar y restar.

    Hay que tener en cuenta que la suma es la base de las operaciones aritmticas. La restase puede sustituir por la suma empleando nmeros negativos, el producto es una sucesin desumas, la divisin es una sucesin de restas, etc.

    1.- OBJETIVOS

  • 7/26/2019 Ejemplos e introduccin a FPGA

    148/402

    Mostrar algunos de los circuitos lgicos que realizan operaciones aritmticas bsicas(suma, resta, multiplicacin) con nmeros binarios. Para ello se simularn distintos diseosrealizados con el Editor Grfico del software Quartus II.

    2.- MATERIAL

    - Ordenador personal con el software QUARTUS II.

    - Manual introductorio al software.- Guin de prcticas.

    3.- DESARROLLO DE LA PRCTICA

    3.1.- SUMADORES BINARIOS

    Los circuitos sumadores parten de un circuito sencillo llamado semisumador. Estecircuito es capaz de sumar un bit ms otro bit, pero no es capaz de tener en cuenta un acarreoanterior. Para corregir esta falta surge el sumador total, que s es capaz de emplear el acarreoanterior. Partiendo de un sumador total y mediante la combinacin del nmero necesario delos mismos es posible realizar sumas de ms de un bit.

    Las reglas para la suma binaria de dos bits son las siguientes:

    0 + 0 = 00 + 1 = 11 + 0 = 1

    GUIONES DE PRCTICAS ITIG

    3.1.1.- Semisumador

    El semisumador es un circuito lgico que no es capaz de aadir a la suma un carryanterior. Este circuito suma dos bits, obteniendo a la salida la suma (S) de dichos bits y el

    posible acarreo (C).Se comenzar este diseo definiendo un nuevo proyecto y abriendo un nuevodocumento en el Editor Grfico, diseando el circuito semisumador mostrado en la Figura 1:

  • 7/26/2019 Ejemplos e introduccin a FPGA

    149/402

    Figura 1. Circuito lgico del semisumador

    En este diseo se emplean los smbolos XOR y AND2 (puerta AND de dos entradas),los cuales estn disponibles en la librera primitives.

    Una vez realizado el circuito, se grabar el diseo y se compilar para ver si hayposibles errores, tal y como se hizo en la prctica anterior. A continuacin, se llevar a cabo lasimulacin para ver si los resultados son los esperados. Si no lo son, se debe tener en cuentaque el fallo debe estar en el diseo. Un error habitual es que aparezca un mensaje de

    precaucin (marcado en verde) a la hora de compilar, el cual permite seguir con la simulacin,pero puede que los resultados no sean los esperados.

    Se comprobarn los resultados obtenidos conforme a la tabla de la verdad delsemisumador que se muestra a continuacin:

    B1 A1 S C

    0 0 0 0

    0 1 1 0

    1 0 1 0

    1 1 0 1

    Tabla 1

    Adems, una vez compilado el diseo se proceder a la creacin de su correspondiente b l d ili d l i i di l li

  • 7/26/2019 Ejemplos e introduccin a FPGA

    150/402

    GUIONES DE PRCTICAS ITIG

    Una forma de ver si el smbolo est creado o no, es pulsando sobre elsmbolo de la derecha denominado Project Navigator que representa

    jerrquicamente el diseo.

    3.1.2.- Sumador completo

    El semisumador slo sirve para sumar dos bits. La suma de nmeros binarios de msde un bit no se puede hacer slo con semisumadores, ya que hay que tener en cuenta el

    posible acarreo de la pareja anterior. Para solucionar esto ser necesario otro circuito lgico,el sumador completo

  • 7/26/2019 Ejemplos e introduccin a FPGA

    151/402

    el sumador completo.El sumador completo realiza la suma de dos bits (A y B), teniendo en cuenta el acarreo

    (Ci) de la pareja anterior. A la salida se obtiene la suma (S) y el posible acarreo (Co).Se puede realizar un sumador completo mediante dos semisumadores y una puerta

    OR. El diseo del circuito lgico es el que se muestra en la Figura 4.

    Figura 4. Circuito lgico del sumador completo

    De cara a la implementacin de circuitos ms complejos, resulta ms sencillo utilizarsmbolos previamente creados. En este caso es posible utilizar el smbolo del semisumadorgenerado en el apartado anterior. Para poder utilizar este smbolo, crearemos un nuevoarchivo en el Editor Grfico dentro de un nuevo proyecto (recordar guardar cada proyecto enun nuevo directorio) en el que ha sido incluido el semisumador. De esta manera, el diseoqueda como se muestra en la Figura 5.

    GUIONES DE PRCTICAS ITIG

    Una vez compilado, se simular el sumador completo y se comprobarn que losresultados coinciden con los de su tabla de la verdad, mostrada a continuacin:

    Ci B1 A1 S Co

    0 0 0 0 0

    0 0 1 1 0

    0 1 0 1 0

    0 1 1 0 1

  • 7/26/2019 Ejemplos e introduccin a FPGA

    152/402

    1 0 0 1 0

    1 0 1 0 1

    1 1 0 0 1

    1 1 1 1 1

    Tabla 2

    En este caso, tambin se crear el smbolo que representar al sumador completo, queser usado en el siguiente apartado.

    3.1.3.- Sumador binario paralelo de nmeros de cuatro bits con entrada de acarreo

    La suma de dos nmeros de N bits se puede realizar con N-1 sumadores completos yun semisumador (para la pareja menos significativa) conectados en cascada. Sin embargo, siqueremos un sumador para dos nmeros de N bits con entrada de acarreo previo, son

    necesarios N sumadores completos.

    C_inA4 A3 A2 A1

    +B4 B3 B2 B1

    ______________________________C_out S4 S3 S2 S1

    El circuito lgico que representa a este sumador se ve en la Figura 6.

    GUIONES DE PRCTICAS ITIG

  • 7/26/2019 Ejemplos e introduccin a FPGA

    153/402

    Figura 6. Circuito lgico del sumador paralelo de cuatro bits y entrada de acarreo

    Como se puede observar en la figura anterior, existen dos maneras de realizar lasconexiones. En primer lugar, uniendo los distintos elementos mediante hilos y, en segundolugar, dando el mismo nombre al origen y destino de la conexin.

    Se realizar este nuevo diseo generando un nuevo proyecto, donde se incluirn losarchivos generados anteriormente (semisumador y sumador completo) para as poder incluir

    sus respectivos smbolos sin problemas.

    Nuevamente se proceder a compilar el diseo y se utilizar el simulador paracomprobar las siguientes operaciones:

    a) C_in = 0; B = 0011; A = 0001;b) C_in = 0; B = 1011; A = 0110;

    c) C_in = 1; B = 0010; A = 0101;d) C_in = 1; B = 0111; A = 1100;

    li l i l i d l i id i i d i

  • 7/26/2019 Ejemplos e introduccin a FPGA

    154/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    155/402

    GUIONES DE PRCTICAS ITIG

    4.4- Sumador / Restador (CA2)

    Disear un Sumador / Restador para nmeros binarios (A y B) de cuatro bitsutilizando el complemento a dos (CA2) para la resta. El circuito tendr una entrada de control

    C para seleccionar la suma o la resta (C=0 suma y C=1 resta). Para la realizacin del circuitose utilizar el smbolo del sumador binario paralelo de nmeros de cuatro bits con entrada deacarreo y cuatro puertas XOR.

    Dibujar el circuito con el Editor Grfico y comprobar su correcto funcionamiento conel simulador, realizando las siguientes operaciones:

    d) 4 + 2e) 3 1

  • 7/26/2019 Ejemplos e introduccin a FPGA

    156/402

    f) 1 5

    GUIONES DE PRCTICAS ITIG

    RESOLUCIN PRCTICA 2. CIRCUITOS ARITMTICOS

    A continuacin se muestra la resolucin de los diferentes ejercicios que componen esta

    prctica.

    3.1.- SUMADORES BINARIOS

    3.1.1.- Semisumador

    El circuito a introducir es el que se muestra en la Figura 1.

  • 7/26/2019 Ejemplos e introduccin a FPGA

    157/402

    El circuito a introducir es el que se muestra en la Figura 1.

    Figura 1. Circuito semisumador

    Tras el proceso de simulacin se obtienen los siguientes resultados:

    Figura 2. Resultados del semisumador

    A partir de la simulacin realizada se obtiene la tabla de la verdad mostrada acontinuacin, la cual coincide con la expuesta en el guin, correspondiente al semisumador:

    GUIONES DE PRCTICAS ITIG

    3.1.2.- Sumador completo

    El circuito lgico del sumador completo es el siguiente:

  • 7/26/2019 Ejemplos e introduccin a FPGA

    158/402

    Figura 3. Circuito sumador completo

    Los resultados obtenidos se muestran a continuacin, en la Figura 4:

    Figura 4. Resultados del sumador completoTras la simulacin se obtiene la tabla de la verdad correspondiente a un sumador de

    dos bits con entrada de acarreo:

    Ci B1 A1 S Co

    0 0 0 0 0

    0 0 1 1 0

    0 1 0 1 0

    GUIONES DE PRCTICAS ITIG

    3.1.3.- Sumador binario paralelo de nmeros de cuatro bits con entrada de acarreo.

    El diseo a introducir es el mostrado en la Figura 5.

  • 7/26/2019 Ejemplos e introduccin a FPGA

    159/402

    Figura 5. Circuito sumador paralelo de cuatro bits y entrada de acarreo

    La suma que realiza este circuito es de la siguiente manera:

    C_inA4 A3 A2 A1

    +B4 B3 B2 B1

    ______________________________C_out S4 S3 S2 S1

    A continuacin se muestran los resultados de los diferentes casos que se exigen comoprueba:

    GUIONES DE PRCTICAS ITIG

    c) C_in 1B 0010A 0101

    C_out=0 1000

    d) C_in 1B 0111A 1100

    C_out=1 0100

    A partir de estas operaciones la simulacin queda de la siguiente manera:

  • 7/26/2019 Ejemplos e introduccin a FPGA

    160/402

    A partir de estas operaciones, la simulacin queda de la siguiente manera:

    GUIONES DE PRCTICAS ITIG

    4.- EJERCICIOS DE DISEO

    4.1.- Sumador de palabras de ocho bits

    Teniendo como base el dispositivo 7483, que es un sumador de palabras de cuatro bits,realizando la concatenacin de dos de ellos es posible realizar el sumador binario de nmerosde ocho bits. Por tanto, el diseo queda de la siguiente manera:

  • 7/26/2019 Ejemplos e introduccin a FPGA

    161/402

    Figura 7. Circuito sumador de palabras de 8 bits

    Las entradas a1 y b1 se corresponden con los bits de menor peso, mientras que lasentradas a8 y b8 son los bits de mayor peso. Asimismo, la salida S1 es la de menor peso,mientras que la salida S8 es la de mayor peso.

    Para comprobar el correcto funcionamiento del circuito se han tomado los siguientesejemplos:

    a) 23 + 48 = 71

    b) 12 + 122 + 1 = 135c) 64 + 128 = 192d) 252 + 182 = 434

  • 7/26/2019 Ejemplos e introduccin a FPGA

    162/402

  • 7/26/2019 Ejemplos e introduccin a FPGA

    163/402

    GUIONES DE PRCTICAS ITIG

  • 7/26/2019 Ejemplos e introduccin a FPGA

    164/402

    Figura 10. Resultados del multiplicador binario paralelo de dos bits

    Como se puede observar, los resultados coinciden con lo esperado.

    4.3- Sumador / Restador CA1

    Este diseo est basado en el sumador binario paralelo de 4 bits implementado en elapartado 3.1.3, el cual es un circuito que slo es capaz de realizar sumas, aunque utilizndoloen el esquema representado en la Figura 11, se consigue un sumador / restador de dosnmeros de cuatro bits.

    Para sumar con este circuito, la entrada de control C deber estar a nivel bajo (0),de esta manera, esta entrada no aadir nada a la suma y el conjunto de puertas XOR noalterarn el valor del nmero introducido en B. Por lo tanto, la suma se realizar como si elcircuito sumador binario paralelo de 4 bits estuviese solo.

    En el caso de la resta, la entrada de control C deber ponerse a 1. La resta es igual ala suma del minuendo ms el opuesto del sustraendo. Para cambiar el signo del sustraendo sedeber hacer el CA1 del mismo, mientras que el minuendo permanecer sin cambios. Para

    ello se utilizan cuatro puertas XOR, donde cada una de ellas contiene la seal C y uno de losbits del sustraendo. De este modo se invertirn los bits del sustraendo.Tambin es importante tener en cuenta que en el caso de la resta, con el sustraendo en

  • 7/26/2019 Ejemplos e introduccin a FPGA

    165/402

    GUIONES DE PRCTICAS ITIG

  • 7/26/2019 Ejemplos e introduccin a FPGA

    166/402

    Figura 12. Resultados del sumador / restador CA1

    Como se puede observar, los resultados coinciden con los obtenidos en lasoperaciones.

    Un efecto destacable de esta simulacin es que los picos que aparecen en las

    transiciones de las distintas operaciones son ms exagerados que en los casos anteriores. Estoes debido a que la introduccin de las seales se ha hecho a mano, por lo que los retardos sonmayores.

    4.4- Sumador / Restador en CA2

    Al igual que en el caso anterior, el presente diseo est basado en el circuito sumadorbinario paralelo de 4 bits implementado en el apartado 3.1.3, por lo tanto, en principio slocapaz de realizar sumas, pero con la correspondiente modificacin que tambin permite

    li l i d t

  • 7/26/2019 Ejemplos e introduccin a FPGA

    167/402

    GUIONES DE PRCTICAS ITIG

  • 7/26/2019 Ejemplos e introduccin a FPGA

    168/402

    Figura 14. Resultados del circuito sumador / restador en CA2

    Como se puede observar, el resultado de la simulacin es el mismo que el obtenido enel apartado 4.2.

    GUIONES DE PRCTICAS ITIG

  • 7/26/2019 Ejemplos e introduccin a FPGA

    169/402

    ESTRUCTURA Y TECNOLOGA DECOMPUTADORES

    (1 Ingeniera Tcnica en Informtica de Gestin)

    GUIONES DE PRCTICAS ITIG

    Un circuito lgico combinacional es aquel en el que sus salidas dependenexclusivamente del valor de sus entradas en un determinado momento, sin que intervengan enningn caso estados anteriores de las entradas o salidas.

    En electrnica digital la lgica combinacional est formada por ecuaciones simples apartir de las operaciones bsicas del lgebra de Boole. Entre los circuitos lgicoscombinacionales clsicos tenemos:

    - Multiplexor y Demultiplexor- Codificador y Decodificador- Comparadores

  • 7/26/2019 Ejemplos e introduccin a FPGA

    170/402

    1.- OBJETIVOS

    a) Dar a conocer tres elementos bsicos de la electrnica digital en el campo de lascomunicaciones: el Multiplexor, el Decodificador/Demultiplexor y el comparador.

    Un multiplexor es un dispositivo lgico que recibe informacin por sus dos o msentradas y mediante una seal de control se decide cual de las entradas aparece reflejada en la

    salida, es decir, un convertidor paralelo a serie. Si existe una seal de enable, esta haceque el multiplexor est habilitado o no.

    Figura 1. Multiplexor

    Un Demultiplexor/Decodificador es un dispositivo en el cual se activar la salida queindique la codificacin de la entrada.

    GUIONES DE PRCTICAS ITIG

    Un comparador es un dispositivo que compara dos entradas binarias (A y B de n bits)para indicar la relacin de igualdad o desigualdad entre ellas.

    Figura 3. Comparador

  • 7/26/2019 Ejemplos e introduccin a FPGA

    171/402

    b) Utilizar multiplexores, decodificadores y comparadores para realizar funcioneslgicas.

    2.- MATERIAL

    - Ordenador personal con el software QUARTUS II

    .- Manual introductorio al software.- Guin de prcticas.

    3.- DESARROLLO DE LA PRCTICA

    En este apartado se pretende introducir y dar a conocer cmo se implementan los treselementos bsicos de la electrnica digital mencionados en el apartado de objetivos, los cualesnormalmente nos los encontramos como bloques ya definidos donde no se aprecia sucomposicin interna. Es importante entender cmo funcionan internamente, para que luego,cuando los mismos sean introducidos como bloque sepamos lo que deben hacer.

    GUIONES DE PRCTICAS ITIG

    3.1.- MULTIPLEXOR DE CUATRO ENTRADAS DE DATOS

    Introducir el diseo1mostrado en la Figura 4 en el Editor Grfico, correspondiente aun multiplexor de cuatro entradas:

  • 7/26/2019 Ejemplos e introduccin a FPGA

    172/402

    Figura 4. Circuito multiplexor de cuatro entradas de datos

    Una vez introducido el circuito, se proceder a la compilacin y simulacin del diseotal y como se haca en la prcticas anteriores.

    Realizar los siguientes ejercicios:

    a) Obtener la tabla de verdad del multiplexor a partir de los resultados obtenidos en lasimulacin.

    b) Representar el cronograma que representa la funcin del multiplexor.

    c) Indicar la expresin de la salida en funcin de sus entradas, comprobando que

    GUIONES DE PRCTICAS ITIG

    3.2.- DEMULTIPLEXOR/DECODIFICADOR DE CUATRO SALIDAS DEDATOS

    Introducir el diseo mostrado en la Figura 5 en el Editor Grfico, correspondiente a undemultiplexor/decodificador de cuatro salidas:

  • 7/26/2019 Ejemplos e introduccin a FPGA

    173/402

    Figura 5. Circuito demultiplexor/decodificador de cuatro salidas

    Al igual que en el ejercicio anterior, se procede a la compilacin y simulacin deldiseo, de forma que se pueda ver si los resultados son correctos o no.

    Realizar los siguientes ejercicios:

    d) Obtener la tabla de verdad del demultiplexor/decodificador a partir de losresultados obtenidos en la simulacin.

    e) Representar el cronograma que representa la funcin deldemultiplexor/decodificador.

    f) Indicar las expresiones de las salidas en funcin de sus entradas, comprobando quecorresponden a las funciones lgicas de un demultiplexor/decodificador.

    GUIONES DE PRCTICAS ITIG

    3.3.- COMPARADOR BINARIO DE DOS BITS

    Introducir el siguiente diseo en el Editor Grfico, el cual nos indica si un bit esmayor, igual o menor que otro.

  • 7/26/2019 Ejemplos e introduccin a FPGA

    174/402

    Figura 6. Circuito comparador binario de dos bits

    El significado de las salidas que se pueden ver en la Figura 6 es el siguiente:G A > BE A = BL A < B

    Proceder a la compilacin y simulacin del diseo para poder realizar los ejerciciosque se presentan a continuacin.

    Realizar los siguientes ejercicios:

    g) Obtener la tabla de verdad del comparador de dos bits a partir de los resultados

    GUIONES DE PRCTICAS ITIG

    4.- EJERCICIOS DE DISEO

    4.1.- Generador de un bit de paridad

    La salida de un sistema digital consiste en palabras de cuatro bits que han detransmitirse a otro sistema alejado fsicamente. Para proteger la informacin enviada deerrores introducidos en el camino se ha pensado en aadir un bit de paridad en cada palabra.(Criterio: el bit de paridad valdr 1 cuando el nmero de unos en la palabra de informacinsea par; y valdr 0 cuando el nmero de unos sea impar).

    Disear un circuito combinacional capaz de generar dicho bit de paridad. Se disponede un multiplexor 74151 y de puertas NAND2.

  • 7/26/2019 Ejemplos e introduccin a FPGA

    175/402

    4.2.- Llave electrnica

    Una empresa tiene ocho trabajadores, cada uno de los cuales dispone de una tarjetadigital que permite el acceso a las diferentes instalaciones. Los cdigos de cada una de lastarjetas son los siguientes:

    Trabajador CdigoCBA

    Iaki 000Emilio 001Amaya 010Aitor 011

    Xabier 100

    Ainara 101Oihane 110Mikel 111

    Tabla 1

    La funcin que permite el acceso al laboratorio de investigacin es la siguiente:

    Si F = 1 acceso al laboratorio permitidoSi F = 0 acceso al laboratorio denegadoCBBAF +=

    GUIONES DE PRCTICAS ITIG

    En este ejercicio hay que tener especial cuidado con:

    - Los pesos de las entradas de cdigo del decodificador y de control deldemultiplexor. En ambos casos la entrada C es la de mayor peso.

    - Realizando un doble clic sobre el smbolo del multiplexor, se accede a sucorrespondiente cdigo de diseo, donde se puede apreciar como todas las entradasse encuentran conectadas a tierra (GND), lo que hara que las entradas que puedanquedar libres modificasen la funcin y, por tanto, la salida. Para que la solucin nosea errnea, es necesario conectar todas las posibles entradas que puedan quedarlibres a VCC.

    - No conectar el enable a VCC, ya que ste se activa con un cero lgico.

  • 7/26/2019 Ejemplos e introduccin a FPGA

    176/402

    4.4.- Comparador binario de palabras de 2 bits

    Realizar, a partir del apartado 3.3, un comparador de palabras de dos bits, donde seobtenga si una de ellas es mayor, igual o menor que la otra.

    Figura 7. Modelo del comparador de palabras de dos bits

    Para nmeros de ms de un bit, lo que se hace es ir comparando los bits de igual peso,desde el ms significativo al menos significativo, hasta que se encuentre uno que sea mayorque el otro.

    Las combinaciones posibles segn las diferentes seales de entrada son 24= 16, peropara facilitar la situacin slo se estudiarn los siguientes casos:

    A = 00 B = 00A = 01 B = 11

    A = 10 B = 00A = 11 B = 11A = 00 B = 01

    GUIONES DE PRCTICAS ITIG

    RESOLUCIN PRCTICA 3

    A continuacin se presenta la resolucin de los diferentes ejercicios que se presentanen este guin de prcticas.

    3.1.- MULTIPLEXOR DE CUATRO ENTRADAS DE DATOS

    El diseo a introducir es el siguiente:

  • 7/26/2019 Ejempl