Diseño de Sistemas con FPGA. Patricia Borensztejn Primer Cuatrimestre 2015



Documentos relacionados
LÓGICA PROGRAMABLE. Introducción Simple PLDs Complex PLDs FPGAs. Dpto. Ingeniería Electrónica y Comunicaciones

Dispositivos Lógicos Programables (FPGAs) Guillermo Güichal Emtech

Técnicas de Programación Hardware: CAD para FPGAs y CPLDs

Laboratorio de Diseño de Sistemas Digitales

Encuesta sobre utilización de la microelectrónica en la Argentina

Metodologías de diseño de hardware

Curso Completo de Electrónica Digital

CAPITULO 5. DISPOSITIVOS DE LOGICA RECONFIGURABLE

El tamaño, estructura, número de bloques y la cantidad y conectividad de las conexiones varian en las distintas arquitecturas.

TEMA 5. ELECTRÓNICA DIGITAL

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente:

CONTROL DIGITAL PARA CONVERTIDOR MULTINIVEL ALIMENTADO CON ENERGÍA SOLAR. Anexo A: FPGA. Introducción

Alternativas de implementación: Estilos

FPGA (CAMPO DE MATRIZ DE PUERTAS PROGRAMABLES).

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL

Laboratorio 4: Uso de una FPGA

Introducción a las FPGA

Introducción a FPGAs. Contenido

Introducción a los FPGAs y el Cómputo Reconfigurable Miguel Morales Sandoval INAOE, 2006

MANUAL COPIAS DE SEGURIDAD

Módulo 1 El lenguaje Java

Electrónica Digital II

OR (+) AND( ). AND AND

Guía de uso del Cloud Datacenter de acens

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN

Curso S08 para Cavernícolas

SINTESIS Y DESCRIPCIÓN DE CIRCUITOS DIGITALES UTILIZANDO VHDL ANTECEDENTES

Diseño de Sistemas con FPGA. Patricia Borensztejn Primer Cuatrimestre 2012

1.1. Tecnologías de diseño de circuitos integrados

5. Metodologías de diseño de un ASIC

Tema 11: Sistemas combinacionales

Breve Curso de VHDL. M. C. Felipe Santiago Espinosa. Profesor Investigador UTM

Palabras Clave: Vídeo en FPGA, Procesamiento en Tiempo Real RESUMEN

28 = =

Tema 7. SISTEMAS SECUENCIALES SISTEMAS SECUENCIALES SÍNCRONOS

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

Tipos de Dispositivos Controladores

DISPOSITIVOS DE LÓGICA PROGRAMABLES EN CAMPO (FPGA)

CODIFICADORES. Cuando solo una de las entradas está activa para cada combinación de salida, se le denomina codificador completo.

Una computadora de cualquier forma que se vea tiene dos tipos de componentes: El Hardware y el Software.

Técnicas de Programación Hardware: CAD para FPGAs y CPLDs. Clase 1: Lógica Configurable

UPV-EHU. EUITI e ITT Vitoria-Gasteiz. Ampliación de Sistemas Digitales. Depuración de programas

Nombre de la asignatura: Clave de la asignatura: SIB Carrera:

Introducción a VHDL. Sistemas digitales UTM-2006 JJVS

Capítulo 1 Documentos HTML5

Firewall Firestarter. Establece perímetros confiables.

Diseño de Sistemas con FPGA. Patricia Borensztejn Primer Cuatrimestre 2013

TECNICO SUPERIOR UNIVERSITARIO EN TECNOLOGIAS DE LA INFORMACION Y COMUNICACIÓN ÁREA REDES Y TELECOMUNICACIONES.

CAPÍTULO 3 MÓDULO DIGITAL PARA CONVERSIÓN DE VIDEO

Creado dentro de la línea de sistemas operativos producida por Microsoft Corporation.

ACTIVIDADES TEMA 1. EL LENGUAJE DE LOS ORDENADORES. 4º E.S.O- SOLUCIONES.

Configuración de la red

3.1 Introducción a VHDL


TUTORIAL PARA CREAR UN SERVIDOR FTP

Conexión de GPS a Open CPN.

Introducción a Moodle

Responsive Web Design Diseño Web Adaptable

Guía de selección de hardware Windows MultiPoint Server 2010

Implementando un ERP La Gestión del Cambio

Actividad 2: Configurar e Instalar un Sistema Operativo virtual

1 EL SISTEMA R/3 DE SAP AG

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS

Capítulo 1. Introducción

QUÉ ES UN SERVIDOR Y CUÁLES SON LOS PRINCIPALES TIPOS DE SERVIDORES? (PROXY, DNS, WEB, FTP, SMTP, ETC.) (DV00408A)

FP BÁSICA Ofimática y archivo de Documentos

Generación de funciones lógicas mediante decodificadores binarios con salidas activas a nivel alto

Circuitos Electrónicos. Septiembre 2005/2006. Problema 1º parcial

Tema 16 ELECTRÓNICA DIGITAL LENGUAJES DE DESCRIPCIÓN DE LOS SISTEMAS DIGITALES (PARTE 1)

Guía rápida de instalación Cámara CCTV-210

pymegnu v2.0 PRESENTACIÓN DE PRODUCTOS

Figura 1.4. Elementos que integran a la Tecnología de Información.

Curso de PHP con MySQL Gratis

Reporte inicial. Metodología

Configuración Avanzada de Transportes e Impuestos en Prestashop. Octubre 2013

Elementos requeridos para crearlos (ejemplo: el compilador)

Sube Selector Canales. Canal. Baja. Tema 4: Bases Matemáticas II. 4.1 Sistemas con memoria o secuenciales Introducción.

Un pequeñísimo tutorial para explicar cómo darse de alta al MEJOR SISTEMA de compartición, backup... en la web.

Capítulo 5. Cliente-Servidor.

Por qué deberías adaptar tu página web a la navegación móvil?

Interoperabilidad de Fieldbus

Web Móvil con webmaker

Profr. Efraín Soto Apolinar. La función lineal. y = a 0 + a 1 x. y = m x + b

CAPITULO IV. HERRAMIENTAS DE CÓDIGO ABIERTO

CONSEJOS DE CÓMO CREAR UN DOCUMENTO ADOBE PDF ACCESIBLE A PARTIR DE UN DOCUMENTO MICROSOFT WORD ACCESIBLE

FACULTAD DE INFORMATICA MATERIA: GESTION DE CONTENIDO ELECTRONICO PROFESOR: JONATHAN VEGA ALUMNOS: LUISA ROSERO JAIME CAMACHO DATOS INFORMATIVOS:

evaluación de competencias de 360

PROCESAMIENTO DIGITAL DE IMÁGENES MEDIANTE EL USO DE UN FPGA Y LENGUAJE VHDL

COMUNICACIÓN I2C (INTER-INTEGRATED CIRCUIT)

MANUAL DE USUARIO CMS- PLONE

GUÍA DOCENTE. Sistemas Integrados

Creación y administración de grupos de dominio

TARJETA DE DESARROLLO CPLD

Análisis de los datos

MAXHC11. TARJETA DE BAJO COSTE PARA EL DISEÑO MIXTO HARDWARE-SOFTWARE

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

MACROS. Automatizar tareas a través del uso de las macros.

FUENTES SECUNDARIAS INTERNAS

Transcripción:

Diseño de Sistemas con FPGA Patricia Borensztejn Primer Cuatrimestre 2015

Objetivo del curso Adquirir conocimientos elementales de la arquitectura de las FPGA actuales Aprender a utilizar las herramientas de programación y realizar proyectos sencillos que anden Proyecto Combinacional Proyecto Secuencial Proyecto E/S Proyecto PicoBlaze Proyecto Integrador

Temario y Planificación Introducción: FPGA (1) Modelado de Sistemas Combinacionales. Verilog. Entorno de desarrollo de xilinx. (4) Modelado de Sistemas Secuenciales. (5) Entrada / Salida: monitor, teclado, audio, línea serie (4) Co-Diseño software hardware con Picoblaze (4) Proyectos (10) Total= 28 clases mas 1 entrega

Calendario Primero 2015 Marzo M V 18 20 25 27 Abril 1 3 8 10 15 17 22 24 29 Mayo 1 6 8 13 15 20 22 27 29 Junio M V 3 5 10 12 17 19 24 26 julio 1 3 8 10

Bibliografía del curso (la que yo uso ) FPGA Prototyping by Verilog Examples. Pong P. Chu. Wiley InterScience. (Verilog e ISE) FPGA-Based System Design. Wayne Wolf (tecnología) The Design Warrior s Guide for FPGAs. Clive Maxfield (arquitecturas) Digital Arithmetic. Ercegovac, y Thomas Lang (algoritmos aritméticos) Synthesis of Arithmetic Circuits. Deschamps, Gioul, and Sutter. (algoritmos y codificación en VHDL para FPGA) Writing Testbenches: Functional Verification of HDL Models. Janick Bergeron. Kluwer Academic Publishers. Hojas de Datos. (de FPGA s ).. Y todo lo que ustedes encuentren en la web (que es mucho)

Hardware y Software La cátedra cuenta con las siguientes placas de desarrollo: Spartan-3E Starter Kit donada por XUP (Xilinx University Program) (3) Spartan-3 Starter Board (Digilent) donada por XUP (1) Xilinx Spartan-3A EVALUATION KIT (Avnet) (propio) Virtex-II Pro Development System (donada por Xilinx University Program) (esta discontinuada) Virtex4 FX12 Evaluation Board (Avnet) con Audio/Visual Card (Avnet) (Propiedad del Grupo de Investigación: Embebidos) Virtex-5 OpenSPARC Evaluation Platform (Donación de University Program OpenSparc) Nexys-2 comprada con subsidio UBACYT (2011-2013) (1) Atlys comprada con subsidio UBACYT (2011-2013) (1) Nexys-3 comprada con subsidio UBACYT (2011-2013) (4) Nexys-4 comprada con subsidio UBACYT (2011-2013) (1) Zybo comprada con subsidio UBACYT (2014-2016) (1)

Hardware y Software El software que utilizamos es : ISE Webpack 14.7 (xilinx.com) para linux Pueden bajar ISE Webpack directamente de xilinx, pues es gratuita, ojo! Bajar el webpack, ya que la herramienta completa (ISE Design Suite) NO es gratuita. (y pesa mucho mas). Esto es para mi: (http://ibelimb.com/blog/2014/03/30/generating-amicroblaze-soft-processor-with-ise-webpack-14-dot-7/)

Hardware y Software Xilinx esta migrando tanto el hardware como el software. En hardware esta migrando a lo que se llama ALL PROGRAMMABLE SoC que son procesadores (programables) mezclados con lógica (programable). Las FPGA a las que se esta migrando se llaman Zync. En software se está migrando a la nueva herramienta llamada VIVADO. Nosotros usamos ISE, version 14.7 pero xilinx ya dejó de mejorar ISE en octubre de 2013. Otra cosa que sucedió, creo que hace poco, es que en las versiones gratuitas (webpack) ahora podemos tener acceso al procesador (microblaze)

Cuestiones Administrativas Usaremos 28 clases, teórico-prácticas. Comenzamos hoy, 18 de marzo y terminamos el 10 de julio. No se puede faltar mas de seis veces, a riesgo de perder la materia

Cuestiones Administrativas La página de la materia es: http://www.dc.uba.ar/materias/disfpga/2015/c1 El material de la página se irá subiendo de clase en clase, versiones anteriores en: http://www.dc.uba.ar/materias/disfpga/2014/c2

Empecemos.

Introducción Sistemas Embebidos Que son los FPGA? En que se diferencian de un microprocesador? Origen de los FPGA: PLD s ASIC s FPGA

Donde estamos? En el mundo de los sistemas embebidos

Sistemas Embebidos El mundo está lleno de ellos. Se pueden definir como todo sistema que NO es una PC de escritorio, ni un servidor, ni una workstation, ni una supercomputadora, ni un cluster distribuido, en fin, NO es un sistema programable de propósito general.

Sistema Embebido: Que significa? Small device, like a cell phone? Small processor installed in some other device, like a car? Software that controls a consumer device? Must have real-time response? My favorite: Any system where the user doesn t want to know that it includes a processor Disertación de un consultor de la industria de embebidos, Doug Locke, 2004 Real-Time Embedded Technology and Applications Symposium: Real-Time and Embedded Systems: Past, Present, and Future

Sistemas Embebidos: de donde venimos? El primer sistema embebido se considera: Sistema de Control del ICBM (Misil Balístico Inter Continental), desarrollado por la Fuerza Aérea de EEUU en 1961. Formado por transistores y puertas lógicas Controlaba la trayectoria y estabilidad del misil (No falla. Siempre la tecnología avanzando a paso redoblado) Otros consideran que fue AGD Apollo Guidance Computer, pero yo creo que AGD no era un sistema embebido sino una computadora programable. Durante la primer década, 1970, las aplicaciones de SE eran para defensa y militares.

Sistemas Embebidos El mercado de los productos embebidos es enormemente mas grande que el mercado de las PC s que lidera Intel, por ejemplo. Jim Turley, asesor de la industria de los embebidos, dice que aproximadamente el 0% de los microprocesadores que se fabrican, se usan en el mercado de las PC de escritorio. El 100% restante, se usan en el mercado de los embebidos. En los últimos años, se vendieron alrededor de 500 millones de microprocesadores para el mercado de las PC s y 10 mil millones para el mercado de los embebidos.

Embedded Processors by the numbers, 1999. http://vault.embedded.com/1999/9905/9905turley.htm Es este artículo de Jim Turley, asesor de la industria de los embebidos, escrito en el año 1999, el decía: About zero percent of the world's microprocessors are used in computers. Yup. Every PC, Macintosh, engineering workstation, Cray supercomputer, and all the other general-purpose computers put together account for less than 1% of all the microprocessors sold every year. If you round off the fractions, embedded systems consume 100% of the worldwide production of microprocessors.

Sistemas Embebidos Son sistemas de hardware y software, de propósito específico embebidos en algún producto del mercado. Por ejemplo: Embebidos de la industria automotriz : navegador GPS, de la aviación: control de aterrizaje automático Embebidos de la industria de las telecomunicaciones: routers, modems Embebidos de la industria de las comunicaciones: teléfonos celulares, palms, e-books Embebidos de la industria del hogar: control de heladeras, microondas, robots Etc, pero muchos etcéteras.

El mundo de los embebidos Aplicaciones específicas Optimizadas en consumo y área. Se trabaja en hardware y en software Se programa en C, ensamblador y/o HDL Costosísima la parte de verificación y testing!!!

El mundo de los embebidos Mucha variedad en las implementaciones Si un ingeniero necesita desarrollar un producto nuevo, puede elegir entre diversas alternativas: Procesadores de propósito general, adaptados para placas embebidas DSP (procesadores específicos para procesamiento de señales) Microcontroladores ASIC s FPGA s

El mundo de los embebidos es muy codiciado.

2010: Intel introduce una FPGA en el Atom Processor

Y que es el procesador Atom de Intel? Es el procesador que está ejecutando este código en mi portátil... Es el procesador mas pequeño de Intel, fabricado con tecnología de 45 nm (nm=mil millonésima parte del metro) y próximamente de 32nm. (actualmente, Intel ya fabrica con tecnología de 14nm) Pensados para una amplia gama de dispositivos: netbooks, PC básicas, tablets, laptops, smartphones, dispositivos electrónicos de consumo y otros dispositivos complementarios. Características del procesador: Arquitectura de ahorro de consumo de energía, optimizada para su uso en los productos embebidos

Y que es una FPGA? Es lógica (programable) organizada de alguna manera dentro de un chip. Se usa para: En los 80, cuando recién arrancaban, para implementar lógica para unir (glue logic), lógica para interfacear componentes mas grandes (porque sus antepasados son los PLD s) En los 90, telecomunicaciones y redes 2000 todo tipo de aplicaciones del mercado de los embebidos 2010 para hacer llegar fibra óptica a cada hogar? 2020 todo tipo de aplicaciones, hoy no muy imaginables alguna idea?

Recordemos que... Intel es líder en el mercado de procesadores para la industria de las PC básicas. pero no en el mercado de los embebidos (donde reina ARM, especialmente en el mercado de los dispositivos móviles) Hoy, el mercado de los productos embebidos alcanza los 10 billones (miles de millones) de unidades vendidas incluyendo microcontroladores, procesadores, DSP, FPGA, ASICs.

Porque reina ARM en el mercado de los dispositivos móviles? El secreto de su éxito: ARM no fabrica micros, solo los diseña y luego los licencia a fabricantes de electrónica que los integran en sus chips La clave es que los microchips que finalmente salen al mercado son algo mas que microprocesadores; por ejemplo, un fabricante de teléfonos móviles fabricará procesadores que además del núcleo ARM contendrán el transmisor 3G y el controlador de pantalla y teclado; de esta forma reducimos el número de chips necesarios para montar el teléfono, con la consiguiente reducción de coste, tamaño y consumo. Procesador para router ADSL basado en ARM

Idea de Intel para entrar en el mercado de las cosas pequeñas Intel no licencia sus procesadores, por lo tanto si queremos hacer un teléfono móvil basado en Intel, tendríamos que montar un conjunto extra de chips y eso trae problemas y deja a Intel fuera del mercado de las cosas pequeñas Solución de Intel para entrar en ese mercado: hacer configurables a sus procesadores poner una FPGA. La FPGA es un chip que puede convertirse en una tarjeta gráfica, un sintonizador wifi, un controlador de puertos, Dicho con otras palabras, una FPGA proporciona a los fabricantes una capacidad para personalizar el chip similar a la que proporciona ARM.

Intel sigue apostando a los 25/02/2013 FPGA Altera to Build Next-Generation, High-Performance FPGAs on Intel's 14 nm Tri-Gate Technology Intel s Hybrid CPU-FPGA by Tom R. Halfhill, The Linley Group http://www.embeddedintel.com/commentary.php?articl e=2143 Intel reveals its FrankenChip ARM killer: one FPGA and one Xeon IN ONE SOCKET http://www.theregister.co.uk/2014/06/18/intel_fpga_cust om_chip/

El mercado de los embebidos Es un muy buen mercado. no les parece? A Intel le pareció una muy buena idea irrumpir en ese mercado adosando al costado de su micro procesador un producto, la FPGA, claramente usable en el mercado de los embebidos para hacer aplicaciones ad-hoc. Y que tal si nosotros también nos introducimos en el mundo de los embebidos?

Que son los FPGA? Field Programmable Gate Array Arreglos de Puertas Programables en el Campo : (nunca mas lo traduzco) Circuitos Integrados que contienen bloques configurables de lógica junto con conexiones configurables entre esos bloques. Para que se configuran? Para realizar distintas tareas. Algunas FPGA permiten ser programados una sola vez(otp one time programmable), o bien una y otra y otra vez Donde se programan?los FPGA se programan in the field, o sea, no los programa el fabricante, sino que lo puede programar el desarrollador en su campo, o sea, en su laboratorio. Si un dispositivo puede ser programado mientras está residente, o embebido en un sistema mayor, se dice que es ISP (In System Programmable) Porqué Gate Array? Es el nombre de un tipo de tecnología de fabricación de los ASIC (Application Specific Integrated Circuit) FPGA ISP ASIC OTP Programmable interconnect Programmable logic blocks

Ross Freeman (1985) Patente US 4870302: Configurable electrical circuit having configurable logic elements and configurable interconnects

Ross Freeman La foto que este cuatrimestre elegí para ilustrar nuestra página es la de Ross Freeman, inventor de las FPGA y co fundador de Xilinx, junto con Bernard Vonderschmitt. Esto sucedió en el año 1985. Freeman era un ingeniero y trabajaba en circuitos integrados en Zilog, ademas era vice presidente de esa companía y gerente general. Todo en uno. Zilog, que era subsidiaria de Exxon Corporation habia sido fundada, nada mas y nada menos que por Federico Fagin (FF) en 1974 conocido por haber dejado su firma en el primer microprocesador de Intel, el 4004. El producto mas conocido de Zilog fue el Z80 que FF logró que sea incorporado a las videoconsolas como el Sega, Game Boy, etc. Pero eso es otra historia. Mientras trabajaba en Zilog, Freeman pergenia la idea de diseñar un chip de computadora que funcionara como una cinta en blanco, permitiendo al usuario programar ese chip en vez de tener que comprarlo ya hecho. Había que convencer a Exxon de que les dejaran fabricar ese chip en blanco. Y Freeman no lo logró. Asi que, simplemente, dejó todo y se fué. Patentó su linda idea y fundó Xilinx.

Origen Dispositivos Lógicos Programables PLD PLA ROM PAL Variantes todas de array programables de puertas AND y OR

PLDs SPLDs CPLDs PROMs PLAs PALs GALs etc.

PROMs (1970) Address 0 Address 1 Address 2 Address 3 Address 4 Address 5 Address 6 Address 7 a b c!a!b!c!a!b c!a b!c!a b c a!b!c a!b c a b!c a b Predefined link Programmable link c a!a b!b c!c l l l Programmable OR array Solo es configurable la matriz OR. Útiles para ecuaciones con pocas entradas y muchos términos producto. Quiere decir Programmable Read Only Memory Predefined AND array w x y

Implementación de una función lógica combinacional a b c ^ w x y a b c w x y 0 0 0 0 1 0 0 0 1 0 1 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1 1 0 1 0 1 1 1 1 1 0 0

Implementación con PROM a b c Predefined link Programmable link Address 0 Address 1 Address 2 Address 3 Address 4 Address 5 Address 6 Address 7 a!a b!b c!c!a!b!c!a!b c!a b!c!a b c a!b!c a!b c a b!c a b c l l l Programmable OR array Predefined AND array w x y w = (a b) x =!(a b) y = (a b) ^ c

PLA (Programmable Logic Array) a b c Predefined link Programmable link a!a b!b c!c N/A N/A N/A l l l Programmable OR array Predefined Programmable AND array w x y Disponible a partir de 1975, se pueden programar los dos arrays. Se hicieron algunas variantes: arrays AND con arrays NOR. No mucho éxito en el mercado Son útiles cuando diversas funciones usan o comparten términos producto. Son mas lentas que las PROMS

Implementación con PLA a b c Predefined link Programmable link a!a b!b c!c a a b c!b!c c l l l Programmable OR array Predefined AND array w x y w = (a c) (!b!c) x = (a b c) (!b!c) y = (a b c)

PAL (Programmable Array Logic) a b c Predefined link Programmable link Al revés de las PROM, la parte programable es la matriz AND a!a b!b c!c Programmable AND array l l l w x y Predefined OR array Las GAL (Generic Array Logic) son variaciones de las PAL, mas sofisticados (EE) Todos estos dispositivos, aparecen en el mercado con una variedad de opciones: inversión de las salidas, salidas triestado, salidas registradas, etc. Además de tener un número mas grande de entradas y salidas.

CPLD s (vamos llegando) Programmable Interconnect matrix Input/output pins SPLD-like blocks A finales de los 70, los inventores de la PAL, introducen el Mega-Pal, dispositivo con 4 Standard Pals interconectadas de alguna manera. No funcionó. Consumía mucho. 1984: Altera (nueva empresa) introduce el CPLD basado en tecnología CMOS y EPROM. Las conexiones entre los bloques se programan mediante la matriz de interconexión.

Proceso de Diseño Como se diseñaba un circuito usando PLD s? Se realizaba un esquemático o bien un diagrama de estados, todo en papel porque no existían las herramientas que hoy conocemos. El esquemático se convertía del papel a una tabla (con un formato especial, requerido por el dispositivo programador). Esta tabla indicaba que conexiones se debían programar. La tabla se tipeaba en un computadora y se bajaba luego al dispositivo programador. Cada vendedor de PLD s, obviamente, había desarrollado su propio formato para el archivo, que solo servía para sus dispositivos. (a) Host computer Unprogrammed device Programmed device (b) Device programmer

Ensambladores y Herramientas de Diseño 1980: JEDEC (Joint Electron Device Engineering Council) propone un formato standard para los archivos de configuracion de los PLD s. John Birkner, creador de las PAL, crea PALASM el primer ensamblador para PAL. Es un primitivo HDL (Hardware Description Languaje) y además una aplicación software. Es usado para trasladar expresiones booleanas y grafos de estados a una tabla para PAL. PALASM solo es para PAL s fabricadas por MMI (Monolithic Memories Inc). No realiza minimizaciones o optimaciones. 1983: ABEL (Advanced Boolean Expression Languaje ) y CUPL (Common Universal tool for Programmable Logic). Ambas herramientas trabajan con diversos tipos de PLD s y de fabricantes. Estas herramientas y HDL son las precursoras de VHDL y Verilog, lenguajes HDL de alto nivel y herramientas que son usadas hoy para los ASIC s y FPGA.

PALASM

PALASM opcional obligado Equaciones booleanas Trace define que señales mostrará el simulador. SETF define el valor de las variables en cada simulación. TITLE Example PATTERN Simple REVISION A AUTHOR ECEN 220 COMPANY BYU DATE March 1, 1995 CHIP Example PAL2OL8 ;PINS ; 1 2 3 4 5 6 7 8 9 10 11 12 B A C D NC NC NC NC NC NC NC GND ; 13 14 15 16 17 18 19 20 21 22 23 24 NC NC NC NC NC NC NC NC Z /X NC VCC EQUATIONS X=/A*B + A*B + A*/B + /A*/B*C Z=/A*B + A*B + A*/B + /A*/B*C SIMULATION TRACE-ON A B C /X Z SETF /A /B /C SETF /A /B C SETF /A B /C SETF /A B C SETF A /B /C SETF A /B C SETF A B /C SETF A B C TRACE-OFF

Entradas (20) : 1..11; 13-14; 16..23 Salidas (8): 15..22 Algunas salidas (16..22) son triestado. Es decir, pueden ser configuradas tanto como entradas como salidas. Todas las salidas son negadas. Pin 12 es ground, Pin 24 es Vcc. PAL20L8

24-Pin Small PAL Family PAL 20 L 8

Después de creado el archivo extensión.pds se ensambla. El ensambaldor genera dos archivos:.xpt: contiene el fuse map.trf es el archivo para simulación x se usa para denotar un contacto quemado. Columnas 0,1,2,3,4 5 corresponden a las entradas y sus complementarios. Cada fila es un término producto Filas 0,1,2,3 corresponden a la función \x (sus términos producto y su habilitación) Filas 8 y 9 corresponden a la función Z. Sus términos producto y su habilitación. Fijense que cada OR puede admitir hasta 7 términos producto (pues uno de ellos se reserva para la habilitación) PALASM: archivo.xpt

PALASM: archivo.xpt Interpretación de los términos producto. La función X=/A*B + A*B + A*/B + /A*/B*C Simplificada es : / X=A + B + C Comprobarlo!!!!! (Pista: Usar Mapas de Karnaugh o bien deducirlo de la Tabla de Verdad). La función Z=/A*B + A*B + A*/B + /A*/B*C Es idéntica a la anterior, salvo en el valor de la variable dependiente Z, que ahora la usamos sin negar. Pero, las salidas son negadas en el dispositivo. Así que el ensamblador tiene que complementar la expresión Z=A + B + C /Z= /A*/B*/C (aquí se aplica Morgan)

PALASM: archivo.trf (simulación)

FPGA Hacia 1980, es evidente que hay un GAP entre el mundo de los IC. Por un lado, los dispositivos programables, muy sencillos pero muy configurables. Por el otro, los ASIC s, soportando funciones complejas, pero muy caros, y muy costosos en tiempo de diseñar. Además, una vez el diseño estaba hecho, quedaba congelado en el silicio. Para salvar ese GAP, Xilinx lanza al mercado en 1984, una nueva clase de IC: FPGA. PLDs SPLDs CPLDs The GAP ASICs Gate Arrays Structured ASICs* Standard Cell Full Custom *Not available circa early 1980s

FPGA Basados en el concepto de bloque lógico programable, que contiene una LUT, un registro y un multiplexor. Cada FPGA contendrá un número grande de estos bloques. Utilizando SRAM todos los bloques se pueden programar para que realicen una función diferente. a b c d clock 3-input LUT mux flip-flop y q

FPGA a b c Required function y = (a b)!c y Truth table a b c 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 y 1 0 1 1 1 0 1 1 Programmed LUT SRAM cells 1 0 1 1 1 0 1 1 000 001 010 011 100 101 110 111 8:1 Multiplexer y a b c

Bloques Básicos de Xilinx Se llama Logic Cell (LC) y está compuesto (básicamente) por: Una LUT de 4 entradas Un multiplexor Un registro (flip-flop (actúa por flanco de reloj) o latch (actúa por nivel, monitorea siempre las entradas)) a b c d e clock clock enable set/reset 16-bit SR 16x1 RAM 4-input LUT mux flip-flop y q

LUT s de SRAM Cuando una arquitectura basada en LUT se implementa con celdas de SRAM, las celdas, además de LUT s, pueden ser utilizadas como pequeños bloques de memoria RAM (una LUT de 16 entradas por un bit, puede ser una RAM de 16x1). Esto se denomina RAM Distribuida. (Distributed RAM) Como las celdas de SRAM están encadenadas unas con otras (las celdas de SRAM de configuración, pero también las de las LUT,s) formando una larga cadena, algunos fabricantes permiten que las que forman las LUT s sean tratadas de forma independiente, como un shift register. From the previous cell in the chain To the next cell in the chain 1 0 0 0 16-bit SR 16 x 1 RAM 4-input LUT SRAM cells

Slice de Xilinx Dos LC forman un Slice. El slice comparte algunas señales: Clock Clock Enable Set/Reset 16-bit SR 16x1 RAM 4-input LUT Logic Cell (LC) LUT MUX REG 16-bit SR 16x1 RAM 4-input LUT Slice Logic Cell (LC) LUT MUX REG

CLB de Xilinx Configurable logic block (CLB) Un nivel mas arriba están los CLB s: Configurable Logic Block. Pueden tener dos o cuatro slices, (o los que sean en el futuro) Un CLB corresponde a una isla de lógica programable dentro del mar de las conexiones programables. A la jerarquía de bloques, le corresponde una jerarquía en las interconexiones. Es decir, hay una muy rápida interconexión entre LC s, un poco menos rápida entre Slices y mas lenta entre CLB s. Local Routing comunica slices dentro del CLB y con otros CLB s cercanos. Una matriz de interconexión provee acceso a recursos generales CLB CLB Switch Matrix CLB CLB BUFT BUF T SHIFT Slice S1 Slice S0 COUT Slice Logic cell Logic cell Slice Logic cell Logic cell COUT Slice S3 Slice S2 Slice Logic cell Logic cell Slice Logic cell Logic cell Local Routing CIN CIN

FPGA 1985

Familia Spartan 6

All Programable SoC

All Programable SoC

Zynq Board (ZyBO, de Digilent)