Está en la página 1de 25
a UNAD Bieierecettos eens wenn ee ee en CAPITULO 7: DISENO CON LOGICA PROGRAMABLE LECCION 4: FPGAs (FIELD PROGRAMMABLE GATE ARRAY) En 1984 Xilinx desarrolla un nuevo dispositive que denomina Logic Cell Array (LCA), basado en un concepto diferente a los PLDs. Los LGAs estan compuestos de una gran cantidad de celdas légicas cuya funcién es programable, dichas_celdas_ pueden ser interconectadas mediante conexiones programables de varios tips. Estos dispositives y sus desarrollos posteriores dan origen a las hay llamadas FPGAS. Las FPGAs estan basados en una estructura regular de bloques de Procesamiento interconexiones programables, rodeadas de bloques dedicados a entrada salida (ver Figura 7.1) 00 00 00 oO Block o Oo On|) || || oO. o oOo o Oo WO Block O00 00 00 00 do oo oo oo Figura 7.1. Esquema interno de una FPGA Las interconexiones usualmente estan organizadas en forma de una malla Jerarquica, disponiéndose de caminos. rapidos entre bloques contiguos, caminas verticales y caminos horizontales. De esta forma los elementos de pracesamiento forman una isla rodeada de lineas de interconexion. ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA EINGENIERIA [CONTENIDO DIDACTICO DEL CUSO: 299008 — MICROELECTRONICA Los elementos de procesamiento pueden realizar funciones simples de un bajo numero de entradas para dar como resultado una Gnica salida. Eos bioques o celdas internamente estén compuestos por una Look-Up Table (LUT) mas algun elemento de memoria o flip-flop. El tamano de la LUT mas. utilizado es de cuatro entradas, que permite implementar cualquier funcion logica de cuatro entradas, 0 Io que es lo mismo una tabla de verdad de 16 renglones. Hay varias Investigaciones que muestran que las LUTs de cuatro entradas dan buenos resultados en cuanto a su eficiencia en area y velocidad; y este resultado ha sido utilizado comercialmente. Los bloques de procesamiento de las FPGAs comerciales usualmente son un. poco mas complejas que una LUT mas un FF, permitiendo mayor flexibilidad. Algunas de la caracteristicas buscadas son la posibilidad de realizar funciones combinatorias de mayor ntimero de entradas, la posibilidad de realizar bloques aritméticos con acarreo, Ia posibilidad de aprovechar un bloque que ha sido parcialmente utilizado, permitiendo por ejemplo usar por un lado la salida de la funcién combinatoria y el elemento de memoria por separado, o la incorporacién de un mayor numero de elementos de memoria por bloque. Usualmente estos bloques de procesamiento se agrupan, os bloques que pertenecen a un mismo grupo o cluster tienen interconexiones locales, esto: fedunda en una mayor velocidad de interconexién y en el ahorro de recursos. globales. El tamafio de estos clusters es una caracteristica que influye en la Performance de una FPGA. En dispositivos comerciales ¢s usual ver clusters. grandes, compuestos por entre 6 y 10 elementos légicos. Se han hecho varios studios sobre el efecto del tamafio de los clusters en el area y la velocidad de una FPGA, asf como su interaccion con el tamafo de las LUTS, los resultados. muestran que los valores éptimos estan entre 4 y 10. UND ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA ‘CONTENIDO DIDACTICO DEL CUSO: 299008 — MICROELECTRONICA Basic Logic Element (BLE) K-input LUT Out Inputs qu T I Inputs} c Clock FPGA Figura 7.2. Estructura de un bloque de procesamiento (Basic Logic Element, BLE) y un Cluster El tamafio de los clusters también influye en las herramientas de CAD, el tiempo de compilacién de un disefio aumenta con clusters pequefios. Las interconexiones ocupan un lugar muy importante dentro de Ios integrados, LUNIVERSIOAD NACIONAL ABIERTA A DISTANCIA — UNAD TUNAD scuranccencasisicas renotoci Encenenia CCONTENIDO DIDACTICO DEL CSO; 299008 — MICROELECTRONICA ya sea en términos de area come en los retardos producidos. Se puede estimar que el porcentaje de! area utilizado para las interconexiones esta entre 70 y 90% del area total del chip. Las relaciones de drea entre logica, interconexiones y memoria de configuracién pueden verse en la Figura TS Active Contauation Cope Tiny Figura 7.3. Relacion interna de areas dentro de un FPGA Si bien Jas primeras FPGAs tenian una estructura simétrica tipo isla, con bloques Iégicos y caminos de interconexién verticales y horizontales rodedndolos, las FPGAs. actuales tienen estructuras jerarquicas tanto en los bloques ldgicos, que se agrupan en clusters como ya fue mencionado, como en las interconexiones que estén organizadas en caminos de distinta longitud y retardo. AUTOEVALUACION 6. Realice un bosquejo del esquema intemo de una FPGA. 7. Defina qué es una LUT. 8. Comente acerca de la relacién interna de areas dentro de un FPGA. UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA €INGENIERIA [CONTENIDO DIDACTIC DEL CUO: 299008 - MECROELECTRONICA LECCION 2: ESTRUCTURA DE FPGAs: Un ejemplo del uso de Interconexiones programables controladas por celdas de SRAM puede verse en la Figura 7.4. Se utilizan bits de SRAM para controlar el estado de transistores de paso y lineas de control de multipexores Logie Cet Logie Cet Logie Celt Logic Cell Figura 7.4. Interconexiones programables en una FPGA. Los bloques de intercanexién (switch blocks) se intercalan entre los Bloques logicos. UNIVERSIDAD NACIONAL ABIERTA V A DISTANCIA —_UNAD ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA CCONTENIDO DIDACTICO DEL CUSO: 295008 — MICAOELECTRONICA, Se Connection - Bex Suiteh Bos Ks a de bloques de interconexion y bloques légicos LoGic BLOCK Locic BLOCK Figura 7.6. Punto de interconexién formado por 6 transistores de paso Seis transistores de paso conforman el punto de interconexién, dichos ‘transistores son manejados por las celdas de memoria de configuracion. Existen diversas arquitecturas de interconexién, siendo usual contar con ‘caminos de diferente longitud UNan ESCUELA Dé CENCIAS BASICAS, TECNOLOGIA EINGENIERIA CONTENIDO DIDACTICO DEL CUSO: 299003 ~ MICROELECTRONICA cus fer | lengin 2 tong cp. as as ap Figura 7.7. Segmentos de interconexién (Xilinx XC4000) Usualmente hay tres tipos diferentes de interconexiones: Interconexiones directas entre CLBs, interconexiones de propésito general que atraviesan el chip en direcciones horizoniales y verticales, y lineas largas que son reservadas para distribuir sefiales criticas, tipicamente sefiales de reloj. ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA CCONTENIDO DIDACTICO DEL CUSO: 299008 — MICROELECTRONICA Genet Pugsose Lines ee cc Noo seug Lait Figura 7.8. Detalle de los diferentes tipos de interconexiones UNIVERSIDAD NACIONAL ABIERTA V A DISTANCIA UNAD ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA CCONTENIDO BIDACTICO DEL CLSO: 299008 - MICROELECTRONICA programmable connections Logie Block/Lomic Caster 1 \ — Tete BuEw ee | Bess AUTQEVALUACION Usualmente hay tres tipos diferentes de interconexiones en una FPGA. Menciénelas 2. Muestre como se realizan las interconexiones directas entre CLBs. TLUNAD scicistencsetstictsenciochencawena i= _ CONTENDO DIDACTIO DELSO, 27008 MIEROELECTRONCA LECCION 3: NUEVAS INCORPORACIONES A LA ARQUITECTURA BASICA de FPGAS. El desarrollo de las FPGAs ha sido constante desde sus inicios hasta hoy; los fabricantes han incorporado innovaciones que manteniendo la generalidad de estos componentes, los hacen adecuados para un rango cada vez mas amplio de aplicaciones, A continuacion veremos una descripcion de las diversas caracteristicas que incorporan las FPGAs modernas. Memoria ‘Quizé Ia primera incorporacién a Ia estructura basica de las FPGAs es la inclusion de bloques de memoria RAM. Estos bloques estan disponibles para el diseriader, y son configurables en el tamafo y el ancho de palabra. Pueden ser utilizados para almacenamiento de dates 0 para implementar funciones: combinatorias complejas. aunque son mas lentos que las celdas estandar. De acuerdo a la configuracién pueden ser utilizados como RAM dual port, FIFOs, 0 RAM sincrénica. Bloques aritméticos El incremento en aplicaciones de procesamiento digital de sefiales llevé a la incorporacién en hardware de bloques aritméticos. Estos bloques implementan funciones multiplicador-acumulador (MAC) con enteros. Microprocesadores Cuando se utilizan FPGAs para realizar funciones de calculo es usual que trabajen en conjunto con un microprocesador compartiendo las tareas. Existen varios ejemplos de FPGAs que incorporan microprocesadores internamente. Estos microprocesadores pueden estar en hardware como hardcores, es decir que ‘dentro del chip hay —_un bloque de silicio especifico para el micropracesador, o bien como parte de los circuitos programados en ta FPGA como softcores o IP cores. Ejemplos de hardeores pueden verse en FPGAs de Xilinx Virtex Il Pro y Virtex 4, que incorporan hasta cuatro cores de PowerPC 405 0 en Ia familia Excalibur de Altera (aunque Altera ya no esta promoviendo el uso de estos dispositivos para nuevos disefios). Hay una enorme cantidad de ejemplos de softcores, pero para seguir en la linea de los fabricantes de chips mencionaremos fos Pico y MicroBlaze de Xiline y el NIOS I de Altera. a UNAD Bieierecettos eens wenn ee ee en ‘Manejo de relojes Al aumentar el tamafio y la complejidad de los chips se hace necesario prover una buena distribucion interna de las lineas de reloj globales que no introduzcan diferencias de retardo entre distintas partes del dispositivo. Es asi que se incluyen lineas especiales rapidas para la distribucién de los relojes bloques especificos de contro! de sefiales de reloj y PLLs para generar internamente diferentes frecuencias a partir de una sefial externa, Entrada-salidas especificas Para que las FPGAs puedan manejar directamente:lineas de alta velocidad sin necesidad de transceivers externos se incorporan a los bloques de IO transceivers programables que cumplen con varios de los esténdares usados, ya sea en single-ended 0 diferenciales, los mismos llegan a manejar sefiales de varios giga bits por segundo. Conversores serle-paralelo de alta velocidad Asociado con el item anterior, para poder trabajar con sefales de alta frecuencia, es necesario incorporar serializadores 0 conversores serie paralelo de alta velocidad. Facilidades de test on-chip Existen diversas estrategias que facilitan la prueba y el debugging de los disefios, estas van desde la posibilidad de la lectura o escritura de los registros y de las memorias internas via JTAG, hasta la incorporacién de analizadores lagicas integrados en el chip. AUTOEVALUACION 1. Mencione Ia forma como son utilizados los bloques de memoria en un FPGA. 2. Qué se conoce como softcore?. 3. Por qué se hace necesario incorporar serializadores conversores dentro de un FPGA. a UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA— UNAD ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA EINGENIERIA CCONTEN1D0 DIDACTICO DEL CUSO: 235008 - MICROELECTRONICA LECCION 4: EJEMPLOS DE FPGAs COMERCIALES Como ejemplos finales de Fi estructuras interas de Stratix Il Xilinx. iv modemas veremos esquemas de las ra y las series Virtex Il y Virtex 4 de Altera Stratix It Figura 7.10, Diagrama de bloques del Stratix En el diagrama de bloques puede verse Ia estructura del Stratix Il que incluye diferentes niveles de memorias intercalados con los LABs, y bloques DSP. ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA CCONTENIDO DIDACTICO DEL CUSO: 299008 — MICROELECTRONICA cany.in share. og. caiein -— Sopemandor ato — LY LS mamas a ity os Togenetat or Pc sae iB; Ly arm ‘ian — 190 ala) — coninanat = de toe aia — coer ele ob gm Togenaator a tocar att Toganera ot Tce etn + - loa rutng ¥ cary.out shareiout rug chain_out Figura 7.12. Diagrama de un Adaptive Logic Module (ALM) del Stratix II UNIVERSIDAD NACIONAL ABIERTA V A DISTANCIA —_UNAD ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA CCONTENIDO DIDACTICO DEL CUSO: 295008 — MICAOELECTRONICA, Lo mas novedoso del Stratix II es que su arquitectura esta basada en los, llamados Adaptive Logic Modules (ALM), los cuales estan formados por una LUTs adaptable, dos sumadores, segmentos de carty-chain, dos flip-flops, y égica adicional. La principal caracteristica de estos elementos es que la LUT. puede adquirir diversas configuraciones que van desde una Unica tabla de 7 entradas a dos LUTs de cuatro entradas trabajando en forma independiente, ‘como puede verse en el esquema de la Figura 7.13. ett) ty Figura 7.19. Diferentes configuraciones de un ALM Optonstiptt Optional pte! output scien Petia: Registers ie at el Figura 7.14. Bloque légico de DSP ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA [CONTENIDO DIDACTICO DEL CUSO: 259003 ~ MICROELECTRONICA [eter Figura 7.15. Elemento de 1O del Stratix I! Xilinx Virtex Il y Virtex 4 A continuacién se muestran los diagramas de bloques de dos integrados de la familia Virtex, dado que estos chips tienen arquitecturas muy similares serén analizados en conjunto. Comenzamos viendo la figura Figura 7.16 que muy claramente muestra la jerarquia de la estructura del Virtex Il ESCUELA DE CIENCIAS BASICAS, TECNOLOGIAE INGENIERIA CCONTENIDO PIDACTICO DEL CUSO: 293008 - MICROELECTRONICA peu bem 108 Global Clock Mux Block SelectRAM —— Multiplisr cout cour ste ou pa een Gr cop LAO. i ot Ge z pat noes pope Pox i Figura 7.16. Arquitectura jerarquica de una Virtex Il Cada slice del Virtex Il posee dos LUTS, légica de control de acarreo y dos Flip-Flops. En la figura siguiente puede verse que las LUTs pueden configurarse para representar funciones logicas, como memorias 0 como shifi- registers, ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA ‘CONTENIDO DIDACTICO DEL CUSO: 299008 — MICROELECTRONICA Esta es una diferencia entre el Virtex Il y el Virtex 4; en el Virtex 4 la arquitectura pasa a tener dos tipos de Slices, los que pueden alternar entre funcién combinatoria 0 memoria; y aquellos que sélo pueden ser utilizados como funciones logicas. [jnam Siiiremeewesrenaaettimattm Sore enna ene ema suicem) sucet (hoge-o Debus RAM or Sut ester) | (Loge Only) sHiFTIN ! cour i i TED xiv v9 Inisteannict wonagiters ceo sort CE 2070. eeacposspecus surtout cnt Figura 7.18. Diferentes tipos de slices en el Virtex 4 ena >—__fyuwarx rne>———__—| e wr }— ro (= = leu wr [ > q x0 x axo—$____1 Figura 7.19. Virlex 4 vista simplificada de un silice ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA EINGENIERIA [CONTENIDO DIDACTICO DEL CUSO: 299008 — MICROELECTRONICA LECCION 5: HERRAMIENTAS DE SOFTWARE (EDA, CAE, CAD) Primero un poco de terminologia, las herramientas CAD (Computer-Aided Design) se definen como aquellas que realizan funciones de place and route, y fayout, usualmente el término CAE (Computer-Aided Engineering) se aplica mayormente a simulacién, sintesis y andlisis de tiempos; aunque es usual utilizar ambos términos en forma intercambiable. El término EDA (Electronic Design Automation) engloba las dos definiciones anteriores Para diseflar con dispositivos légicos programables es absolutamente ecesario el uso de un conjunto de herramientas software de buena calidad, confiables_y de facil utiizacion. Estas herramientas son esenciales, tanto a nivel industrial como en la formacion del ingeniero, en la medida que la integracion progresa y ya no se puede acceder a los elementos basicos det hardware. Behavioural Level I wevsensyae —| SS | Ti Tan Level - Saaeaaeeae Ub testes = wes Nate ub Phys Laer [ee | Implementation Figura 7.20. Niveles de especificaci6n de un disefo y los diferentes procesos involueradas: Las etapas de un proceso tipice de disefo, sin las realimentaciones de simulacion y verificacién, pueden verse en la Figura 7.20. UNAD Samir enetsasterenacen cucu EGS OAC De 0551S MORSEEETONCA La sintesis de alto nivel es el proceso de compilar una descripcion comportamental dada en un lenguaje de alto nivel en una descripcion estructural dada a nivel de transferencia de registros (RTL register-transfer evel). Este proceso generalmente se hace en forma manual, pero es incipiente el desarrollo de herramientas y lenguajes de alto nivel, que veremos, con mas detalle. La sintesis logica es el proceso de convertir una descripcién RTL en un netlist optimizado. El netlist es una descripcién del circuito a nivel de compuertas y registros y las interconexiones entre esos elementos. Las tareas realizadas en. el proceso de sintesis incluyen la optimizacién de Ia logica combinatoria y la ‘aptimizacion de Ia logica secuencial. Dichas optimizaciones pueden incluir diferentes requerimientos como el area del chip utllizada, la velocidad o el consumo. El mapeo tecnoldgico se refiere a la mapeo de un determinado netlist genérico en las primitivas 0 bloques disponibles en una determinada tecnologia. En el caso de FPGAs, por ejemplo, se deberdn mapear las funciones. logicas en las LUTS disponibles en la familia utilizada. Debe hacerse algo similar para los registros, pasando de un registro generico a los tipos de registro disponibles en la tecnologia. Las herramientas utilizadas deben contar también con la capacidad de simular y verificar el diseno en diferentes niveles y etapas del mismo. Si se trabaja con lenguajes de especificacion hardware, por ejemplo VHDL, la forma usual de simular es construir un test bench o banco de pruebas. El test bench se especifica también en VHDL e incluye como un componente el disefia en cuestion, generandole entradas y chequeando sus salidas. Un simulador VHDL es capaz de ejecutar test-benches disponiendo, normaimente, de un conjunto de utllidades que facilitan la depuracion de los modelos y Ia revision de resultados. Las primeras etapas pueden hacerse con herramientas _genéricas. independientes de los fabricantes de dispositivos programables, pero las. etapas de placement y routing requieren la utizacion de herramientas propietarias. EVOLUCION HISTORICA La evolucion de las herramientas de EDA se dio en conjunto con la evolucion de los dispositivos l6gicos programabies y de las computadoras. Las primeras formas de trabajar con PLDs implicaban la traduccién de un disefo a un formato de tabla de verdad llamado Hal. Posteriormente aparece el PALASM, un programa escrito en FORTRAN que permitia convertir un TLUNAD scicistencsetstictsenciochencawena i= _ CONTENDO DIDACTIO DELSO, 27008 MIEROELECTRONCA disefio descriplo en ecuaciones booleanas, en archivos de programacion de dispositivos PAL de Monofithics Memories (MMI). En esta época no solo eran importantes las herramientas software, sino tambien los equipos de programacién de dispositivos, que recién se estaban generalizando. Un salto importante fue la introduccion del estandar 3 de SEDEG, propuesto en 1980, Este estandar define un formato de archivo ‘comin independiente del fabricante del dispositive y del fabricante del programador. En los ochentas aparecen dos lenguajes que permiten un mayor nivel de abstraccion en la expresién de los disefios, y son independientes de los fabricantes de chips, estos son el ABEL (Advanced Boolean Expression Language) y el CUPL (Common Universal tool for Programmable Logic). Estas, herramientas ademas de definir un lenguaje para la entrada de disefios, dispontan de paquetes de minimizacion booleana, sintesis de maquinas de estados y simulacién. ‘A mediados de los ochentas aparecen los programas de disefio de Altera A+PLUS y un conjunto de herramientas suministradas por Xilinx para sus nuevas dispositivos. Como los dispositives de Xilinx tenian una arquitectura diferente sus herramientas inclulan place & route automatico para un eficiente uso de los recursos disponibles. La siguiente generacién de herramientas software incluyé ta posibilidad de especificar disefios mediante entrada esquematica, haciendo mas facil la migracion de disenios realizados previamente con circuitos logicos de las familias TTL y CMOS. Los lenguajesde especificacién hardware (HDL Hardware Description Language} Si bien ABEL y CUPL ofrecian una herramienta de disefio independiente de los fabricantes de circuitos, estos lenguajes estaban muy atados a la implementacién del disenio en un PLD. A principios de los ochentas aparecen dos lenguajes de alto nive! pensados para especificar el comportamiento del hardware digital, estos son VHDL y Verilog. La importancia de estos lenguajes es su estandarizacién por el IEEE, VHDL tiene su primer estandar en 1987, y luego es modificado en 1993, 2000 y 2002 y Verilog varios anos después, recién pasa a ser estandar en 1995 y es revisado en 2001 VHDL es un lenguaje disefiado para describir sistemas electronicos digitales cuyo origen esta en un programa del gobierno de Estados Unidos Very High Speed Integrated Circuits (VHSIC) iniciado en 1980. A lo largo de ese So UNA Satine isos ren acnr oars {aMtngo DOSED BE C0. 23008- MERGE TRONCA proyecto resulté clara la necesidad de contar con un lenguaje estandar que pudiera describir la estructura y la funcionalidad de un circuito digital y el resultado fue el desarrolio del VHSIG Hardware Description Language (VHDL). Verilog HDL tuvo un origen diferente, arrancé en sus comienzos como un lenguaje propietario desarrollado en 1983 por Gateway Design Automation, compafia que posteriormente fue adquirida por Cadence Design System. A ‘comienzos de los '90G adence abre la especificacion del lenguaje y promueve su estandarizacion por el IEEE que se logra en 1995. Ambos lenguajes, si bien diferentes, poseen caracteristicas similares Permiten describir la estructura de un disefio y su particién en bloques Jerarguices, asi como la interconexion de dichos bloques. Ademas admiten describir la funcionalidad de esos bloques independientemente de su implementacion y a posterior simulacion de los mismos y del sistema completo antes de su implementacién. Los HDLs, a diferencia de los lenguajes: de programacién usuales, estan especialmente disefiados para permitirle a los disefiadores modelar la concurrencia de pracesos inherente a los elementos hardware. El salto cualitativo en las herramientas EDA fue a fines de los ochentas cuando aparecieron los primeros programas que inclulan sintesis logica automatica. Hasta ese momento los HDLs eran utllizados para especificar, simular y verificar los disefios, pero éstos deblan ser manuaimente traducidos a su implementacién con compuertas. La sintesis logica cambid radicalmente la metodologia de diseno, con una especificacién a nivel de transferencia de registros (RTL, Register Transfer Level). hecha en algin HDL, la herramienta extrae en forma automatica el detalle de compuertas, flip-flops © interconexiones. Esto permite describir circuitos digitales complejos exclusivamente en alto nivel, dejanda los detalles de implementacion a herramientas automatizadas. Los lenguajes pasan entonces a tener una mayor importancia en el diserio digital, Cabe mencionar que la codificacién RTL realizada en un lenguaje HDL requlere utilizar un subconjunto de dicho lenguaje, ya que como los lenguajes HDL no fueron especificamente disefiados para sintesis, sino que estan Pensados para especificar y simular hardware, existen en ellos varias sentencias 0 expresiones que no son sintetizables en hardware. Las etapas de alto nivel de un disefo, sintesis logica y mapeo, pueden ser realizadas con herramientas independientes del fabricante del circuito programable, pero las etapas de bajo nivel, placement y routing deben utilizar las herramientas de los fabricantes de FPGAs, ya que la informacion de programacién de las mismas es propietaria eonoTwconn, eT Ya neTANGR uo JLINAD Eatutoramansatsneeowsencercnetn Snieuse aeletcoge cies wns" outonca Design Specification | Behavioral Description v Cc RTL Description (HDL) EE] —e_| and Testing, Taogic Synthesia7 ‘Timing Verification v Gate-Level Neth v cal Verification and Testing. Floor Plannin tomas “ — face and Route ' Physical Layout Layout Verification Implementation Figura 7.21. Proceso tipico de disefio can un HDL. La Figura 7.21 muestra el proceso tipico de disefio con sus diferentes etapas. Los bloques sombreados son las etapas de procesamiento, los bloques sin sombrear representan el nivel def diseno. Cuando el disefo va a ser implementado en una FPGA la herramienta debe realizar el mapeo en las caidas de la FPGA, esto significa que las herramientas deben convertir el disefio o las ecuaciones booleanas en el tipo [[LJNAD sietccntskfatctxerrewocne nce LCONTENIDO DIDACTICO DEL CUSO: 299008 - MICROELECTRONIC de LUTs utilizadas en las FPGAs. Hay varias investigaciones que estudian los algoritmos necesarios para realizar este mapeo en LUTs y sus optimizaciones. Para el caso de FPGAs modernas que incluyen bloques de RAM, bloques aritméticos u otros bloques dedicados, es necesario que las herramientas EDA los sepan utilizar adecuadamente. Posteriormente resta realizar el placement y routing dentro de la FPGA. Esto significa elegir en qué celdas se ubica el disefio y elegir los caminos de interconexiones entre esas celdas. HERRAMIENTAS DE ALTO NIVEL A medida que los disefios aumentan su complejidad aparece la necesidad de utilizar herramientas de mayor grado de abstraccién para poder desarrollar aplicaciones cumpliendo con las exigencias de productividad. Es claro que cuando se aumenta el nivel de abstraccién se gana en tiempo de diseno, pero se pierde en la optimizacién del mismo. Actualmente fodavia la mayoria de los disefios se realizan utilizando lenguajes de descripcién hardware, principalmente VHDL y Verilog, y existen estrategias especificas para manejar disefios de gran tamano. La principal es partir el disefio en bloques mas pequefios y disefiar adecuadamente la jerarquia de estos bloques asi como las interfaces de los mismos. Muchos de estos bloques pueden estar pre-hechos como IP cores, o disefiarse una vez y reutilizarse, Las cosas se complican ain mas porque hay que describir el comportamiento esperado del sistema para poder verifiear los bloques diseniados. Si bien los HDLs permiten esto, no son los lenguajes mas cémodos Para ello. Si ademas el sistema incluye un microprocesador y por Io tanto software corriendo en él, entonces se plantea la idea de contar con un lenguaje Unico que sirva tanto para el hardware que va estar implementado en una FPGA como para él software de! microprocesador Otro punto: importante cuando se piensa en disefios que utilizan platatormas reconfigurables como aceleradores de calculo, es que la mayoria de los algoritmos estan especificades y probados en lenguajes de programacién tales como C 0 Matlab y no en HDLs. Ha habido varios esfuerzos en incorporar lenguajes de programacién al disefio con FPGAs, él problema principal es que estos lenguajes estan concebidos Para implementaciones secuenciales y no para representar el paralelismo inherente al hardware.

También podría gustarte