Download - 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