0 Bewertungen0% fanden dieses Dokument nützlich (0 Abstimmungen)
76 Ansichten8 Seiten
Este documento introduce los lenguajes de descripción de hardware. Explica que en las décadas de 1970 y 1980, el diseño de circuitos se hacía de forma manual y costosa a nivel de transistor. Posteriormente, investigadores crearon lenguajes de descripción de hardware que permitían enfocarse en la lógica del sistema en lugar de características eléctricas. También describe las herramientas CAD-EDA y cómo estas simplifican el proceso de diseño de circuitos a través de simulación y verificación.
Este documento introduce los lenguajes de descripción de hardware. Explica que en las décadas de 1970 y 1980, el diseño de circuitos se hacía de forma manual y costosa a nivel de transistor. Posteriormente, investigadores crearon lenguajes de descripción de hardware que permitían enfocarse en la lógica del sistema en lugar de características eléctricas. También describe las herramientas CAD-EDA y cómo estas simplifican el proceso de diseño de circuitos a través de simulación y verificación.
Este documento introduce los lenguajes de descripción de hardware. Explica que en las décadas de 1970 y 1980, el diseño de circuitos se hacía de forma manual y costosa a nivel de transistor. Posteriormente, investigadores crearon lenguajes de descripción de hardware que permitían enfocarse en la lógica del sistema en lugar de características eléctricas. También describe las herramientas CAD-EDA y cómo estas simplifican el proceso de diseño de circuitos a través de simulación y verificación.
L E N GU A J E S D E D E S C R I P C I N D E HA R D WA R E I IEC FRANCISCO JAVIER TORRES VALLE CAPTULO I: LENGUAJES DE DESCRIPCIN DE HARDWARE
2 1.1 INTRODUCCIN A mediados de los aos setenta se produce una fuerte evolucin en los procesos de fabricacin de los circuitos integrados, promoviendo el desarrollo de circuitos digitales hasta la primera mitad de los aos ochenta. En aquellas pocas el esfuerzo de diseo se concentraba en los niveles elctricos para establecer caractersticas e interconexiones entre los componentes bsicos al nivel de transistor. El proceso de diseo era altamente manual y tan slo se empleaban herramientas como PSPICE para simular esquemas elctricos con modelos previamente caracterizados a cada una de las distintas tecnologas. A medida que pasaban los aos, los procesos tecnolgicos se hacan ms y ms complejos. Los problemas de integracin iban en aumento y los diseos eran cada vez ms difciles de depurar y de dar mantenimiento. Inicialmente los circuitos MSI (Medium Scale Integration) y LSI (Low Scale Integration) se disearon mediante el desarrollo de prototipos basados en mdulos simples. Cada uno de estos mdulos estaba formado por compuertas ya probadas, pero este mtodo poco a poco iba quedndose obsoleto conforme aumentaba la complejidad y tamao de los circuitos. A finales de los aos setenta se constata el enorme desfase que exista entre tecnologa y diseo. La considerable dificultad que puede llegar a tomar el fabricar un circuito de alta escala de integracin, involucra riesgos y costos de diseo desmesurados e imposibles de asumir por las empresas. Es entonces, cuando diversos grupos de investigadores empiezan a crear y desarrollar los llamados lenguajes de descripcin de hardware, lenguajes en los que no fuera necesario caracterizar elctricamente cada componente del circuito al nivel de transistor para as enfocarse solamente en el funcionamiento lgico del sistema. Empresas tales como IBM con su IDL, el TI-HDL de Texas Instruments, ZEUS de General Electric, etc., as como los primeros prototipos empleados en las universidades, empezaron a desarrollarse buscando una solucin a los problemas que presentaba el diseo de sistemas complejos. Sin embargo, estos lenguajes nunca alcanzaron el nivel de difusin y consolidacin necesarios por motivos distintos. Unos, los industriales, por ser propiedad de la empresa permanecieron encerrados en ellas y no estuvieron disponibles para su estandarizacin y mayor difusin, en tanto que los universitarios perecieron por no disponer de soporte ni mantenimiento adecuado. 1.2 EL CONCEPTO DE HERRAMIENTAS CAD-EDA CAD son las siglas de Computer Aided Design, o diseo asistido por computadora el cual constituye todo un proceso de trabajo utilizando tcnicas de anlisis apoyadas en grficos mediante sofisticadas herramientas de software las cuales facilitan el estudio de los problemas asociados con el diseo en cuestin. El concepto CAD se relaciona con el dibujo como parte importante en el proceso de diseo pero, adems, el diseo de un circuito debe cumplir con los requerimientos especificados por el equipo de diseo, por las normas de calidad existentes, los costos, etc. por lo que las herramientas CAD intervienen en todas las fases del diseo. Ya que no slo son importantes por acelerar el desarrollo del sistema al permitir que varias personas puedan trabajar simultneamente en distintas etapas del diseo sino que, adems, es posible verificar el funcionamiento del circuito mediante la simulacin del sistema. Todo esto simplifica la tarea del equipo de diseo y conduce a la conclusin del prototipo en menos tiempo. EDA, Electronic Design Automation, es el nombre que se le da a todas las herramientas de hardware y software en el diseo de sistemas electrnicos. Porque no slo el software es importante, tambin lo es el hecho de que las computadoras cada da son ms veloces y de mayor capacidad de procesamiento, lo cual influye en el proceso de diseo de circuitos electrnicos. El diseo de hardware tiene un problema fundamental, que no existe en desarrollo de software. Este problema es el alto costo del ciclo diseo desarrollo del prototipo pruebas reinicio del ciclo, ya que el costo del prototipo generalmente suele ser bastante elevado. Se impone la necesidad de reducir este ciclo de diseo para no incluir la fase de desarrollo del prototipo ms que al final del proceso, evitando la repeticin de varios prototipos que es lo que encarece el ciclo. Para ello se introduce la fase de simulacin y verificacin de circuitos utilizando herramientas EDA, de tal forma que no sea necesario implementar fsicamente un prototipo para comprobar el funcionamiento del circuito. IEC FRANCISCO JAVIER TORRES VALLE CAPTULO I: LENGUAJES DE DESCRIPCIN DE HARDWARE
3 En el ciclo de diseo de circuitos, las herramientas EDA estn presentes en todas las fases. Primero en la fase de generacin del sistema que puede representarse mediante un diagrama esquemtico, a bloques o de flujo. Se encuentran tambin en la fase de simulacin y comprobacin de circuitos, donde diferentes herramientas permiten verificar el funcionamiento del sistema. Estas simulaciones pueden ser de eventos, funcionales, digitales o elctricas, de acuerdo al nivel de simulacin requerido. Despus estn las herramientas EDA utilizadas en la sntesis y programacin de circuitos digitales en dispositivos lgicos programables. Existen, adems, las herramientas EDA orientadas a la fabricacin de circuitos. En el caso del diseo de hardware estas herramientas sirven para la realizacin de PCBs (Printed Circuit Boards o placas de circuito impreso), o para desarrollar circuitos integrados de aplicacin especifica conocidos como ASICs (Application Specific Integrated Circuits). Este ciclo de diseo de hardware se muestra en la figura 1.1. no IDEA DESCRIPCIN DEL CIRCUITO SIMULACIN FUNCIONAL FUNCIONA? si SNTESIS ANLISIS TEMPORAL no FUNCIONA? si PROGRAMACIN DEL DISPOSITIVO ELABORACIN DEL PROTOTIPO PRUEBAS AL DISEO no FUNCIONA? si FINALIZA EL PROCESO DE DISEO
Figura 1.1 Flujo de diseo en el desarrollo de sistemas electrnicos A continuacin se mencionan las principales caractersticas y finalidad de algunas herramientas EDA que intervienen en el diseo de circuitos. I. Lenguajes de descripcin de circuitos. Son lenguajes mediante los cuales es posible describir el funcionamiento y estructura de un circuito elctrico o digital. La descripcin puede ser mediante bloques donde se muestra la arquitectura del diseo, o de comportamiento, es decir, se describe el funcionamiento del circuito en vez de especificar los elementos de los que est compuesto. II. Diagramas esquemticos. Es la forma clsica de describir un diseo electrnico y la ms extendida ya que era la nica usada antes de la aparicin de las herramientas de EDA. La descripcin est basada en un plano donde se muestran los diferentes componentes utilizados en el circuito. III. Grafos y diagramas de flujo. Es posible describir un circuito o sistema mediante diagramas de flujo, redes de Petri, mquinas de estados, etc. En este caso sera una descripcin grfica y adems sera comportamental, porque no es una descripcin mediante componentes. IV. Simulacin de eventos. Estas herramientas se usan para la simulacin de circuitos a grandes rasgos. En esta simulacin, los componentes ms importantes son elementos de alto nivel como discos duros, buses de comunicaciones, memorias RAM etc. V. Simulacin funcional. Bajando al nivel de compuertas digitales se puede realizar una simulacin funcional de las mismas. Este tipo de simulacin comprueba la operacin de circuitos digitales a partir del comportamiento lgico de sus elementos con el fin de comprobar el funcionamiento en conjunto del circuito mediante unos estmulos dados. Similar a lo que se realiza en un laboratorio. VI. Simulacin digital. Esta simulacin, tambin exclusiva de los circuitos digitales, es como la anterior con la diferencia de que se tienen en cuenta los retardos IEC FRANCISCO JAVIER TORRES VALLE CAPTULO I: LENGUAJES DE DESCRIPCIN DE HARDWARE
4 de propagacin de cada compuerta. Es una simulacin muy cercana al comportamiento real del circuito y prcticamente garantiza el funcionamiento correcto del circuito en cuestin. En las herramientas EDA este tipo de simulacin se conoce como anlisis temporal o timing. VII. Simulacin elctrica. Es la simulacin de ms bajo nivel donde las respuestas del sistema se verifican al nivel de transistor. Sirven tanto para circuitos analgicos como digitales y su respuesta es prcticamente idntica a la realidad ya que se prueban retardos de tiempo, niveles de voltaje, disipacin de potencia, etc. VIII. Diseo de PCBs Con estas herramientas es posible realizar el trazado de pistas para la fabricacin de placas de circuitos impresos. IX. Diseo de circuitos integrados Son herramientas EDA que sirven para la realizacin de circuitos integrados. Las capacidades grficas de estas herramientas permiten la realizacin de las diferentes mscaras que intervienen en la realizacin de stos. X. Diseo con dispositivos programables. Estas herramientas facilitan la programacin de dispositivos, ya sean PALs, PLDs, CPLDs o FPGAs. 1.3 LENGUAJES DE DESCRIPCIN DE HARDWARE Los lenguajes de descripcin de hardware (HDLs) son utilizados para describir la arquitectura y comportamiento de un sistema electrnico los cuales fueron desarrollados para trabajar con diseos complejos. Comparando un HDL con los lenguajes para el desarrollo de software vemos que en un lenguaje de este tipo un programa que se encuentra en un lenguaje de alto nivel (VHDL) necesita ser ensamblado a cdigo mquina (compuertas y conexiones) para poder ser interpretado por el procesador. De igual manera, el objetivo de un HDL es describir un circuito mediante un conjunto de instrucciones de alto nivel de abstraccin para que el programa de sntesis genere (ensamble) un circuito que pueda ser implementado fsicamente. La forma ms comn de describir un circuito es mediante la utilizacin de esquemas que son una representacin grfica de lo que se pretende realizar. Con la aparicin de herramientas EDA cada vez ms complejas, que integran en el mismo marco de trabajo las herramientas de descripcin, sntesis, simulacin y realizacin; apareci la necesidad de disponer de un mtodo de descripcin de circuitos que permitiera el intercambio de informacin entre las diferentes herramientas que componen el ciclo de diseo. En principio se utiliz un lenguaje de descripcin que permita, mediante sentencias simples, describir completamente un circuito. A estos lenguajes se les llam Netlist puesto que eran simplemente eso, un conjunto de instrucciones que indicaban las interconexiones entre los componentes de un diseo. A partir de estos lenguajes simples, que ya eran autnticos lenguajes de descripcin hardware, se descubri el inters que podra tener el describir circuitos utilizando un lenguaje en vez de usar esquemas. Sin embargo, se siguieron utilizando esquemas puesto que desde el punto de vista del ser humano son mucho ms sencillos de entender, aunque un lenguaje siempre permite una edicin ms rpida y sencilla. Conforme las herramientas de diseo se volvieron ms sofisticadas, y la posibilidad de desarrollar circuitos digitales mediante dispositivos programables era ms viable, apareci la necesidad de poder describir los circuitos mediante un lenguaje de alto nivel de abstraccin. No desde un punto de vista estructural, sino desde el punto de vista funcional. Este nivel de abstraccin se haba alcanzado ya con las herramientas de simulacin, ya que para poder simular partes de un sistema era necesario disponer de modelos que describieran el funcionamiento de bloques del circuito o de cada componente si fuera necesario. Estos lenguajes estaban sobre todo orientados a la simulacin, por lo que poco importaba que el nivel de abstraccin fuera tan alto que no fuera sencillo una realizacin o sntesis a partir de dicho modelo. Con la aparicin de tcnicas para la sntesis de circuitos a partir de lenguajes de alto nivel de abstraccin, se comenzaron a utilizar los lenguajes de simulacin para sintetizar circuitos. Que si bien alcanzan un altsimo nivel de abstraccin, su orientacin era bsicamente la de simular, por lo que los resultados de una sntesis a partir de descripciones IEC FRANCISCO JAVIER TORRES VALLE CAPTULO I: LENGUAJES DE DESCRIPCIN DE HARDWARE
5 con estos lenguajes no eran siempre las ms optimas. Adems, los lenguajes de descripcin de hardware al formar parte de las herramientas EDA permiten el trabajo en equipo. As, al estructurar el desarrollo del proyecto, cada integrante del equipo de diseo puede trabajar en subproyectos antes de integrar todas las partes del sistema.
1.3.1 VENTAJAS DE LOS HDLS Una metodologa de diseo que utiliza un HDL posee varias ventajas sobre la metodologa tradicional de diseo a nivel compuerta. Algunas de estas ventajas son listadas a continuacin. Es posible verificar el funcionamiento del sistema dentro del proceso de diseo sin necesidad de implementar el circuito. Las simulaciones del diseo, antes de que ste sea implementado mediante compuertas, permiten probar la arquitectura del sistema para tomar decisiones en cuanto a cambios en el diseo. Las herramientas de sntesis tienen la capacidad de convertir una descripcin hecha en un HDL, VHDL por ejemplo, a compuertas lgicas y, adems, optimizar dicha descripcin de acuerdo a la tecnologa utilizada. Esta metodologa elimina el antiguo mtodo tedioso de diseo mediante compuertas, reduce el tiempo de diseo y la cantidad de errores producidos por el armado del circuito. Las herramientas de sntesis pueden transformar automticamente un circuito obtenido mediante la sntesis de un cdigo en algn HDL, a un circuito pequeo y rpido. Adems, es posible aplicar ciertas caractersticas al circuito dentro de la descripcin para afinar detalles (retardos, simplificacin de compuertas, etc.) en la arquitectura del circuito y que estas caractersticas se obtengan en la sntesis de la descripcin. Las descripciones en un HDL proporcionan documentacin de la funcionalidad de un diseo independientemente de la tecnologa utilizada. Un circuito hecho mediante una descripcin en un HDL puede ser utilizado en cualquier tipo de dispositivo programable capaz de soportar la densidad del diseo. Es decir, no es necesario adecuar el circuito a cada dispositivo porque las herramientas de sntesis se encargan de ello. Una descripcin realizada en un HDL es ms fcil de leer y comprender que los netlist o circuitos esquemticos. 1.4 VHDL VHDL es un lenguaje de descripcin de hardware utilizado para describir circuitos en un alto nivel de abstraccin el cual est siendo rpidamente aceptado como un medio estndar de diseo. VHDL es producto del programa Very High Speed Integrated Circuit (VHSIC) desarrollado por el Departamento de Defensa de los Estados Unidos a finales de la dcada de los 70's. El propsito era hacer un estndar para disear, modelar, y documentar circuitos complejos de tal manera que un diseo desarrollado por una empresa pudiera ser entendido por otra y, adems, pudiera ser procesado por software con propsitos de simulacin. VHDL es reconocido como un estndar de los lenguajes HDL por el Instituto de Ingenieros en Electricidad y Electrnica IEEE como su estndar 1076 el cual fue ratificado en 1987, y por parte del Departamento de Defensa de los Estados Unidos como el estndar MIL-STD-454L En 1993 el estndar IEEE-1076 se actualiz y un estndar adicional, el IEEE-1164, fue adoptado. Para 1996 el estndar IEEE-1076.3 se convirti en un estndar de VHDL para sntesis siendo ste el que se utiliza en el diseo de sistemas digitales. Los estndares ms utilizados en sntesis de circuitos por la mayora de las herramientas de diseo son el IEEE-1164 y el IEEE-1076.3. En la actualidad VHDL es un estndar de la industria para la descripcin, modelado y sntesis de circuitos digitales. Por esto, los ingenieros de la mayora de las reas de electrnica, si no es que todas, deben aprender a programar en VHDL para incrementar su eficiencia. VHDL divide los circuitos en dos vistas entidades y arquitecturas. La entidad modela al circuito, componente o sistema externamente IEC FRANCISCO JAVIER TORRES VALLE CAPTULO I: LENGUAJES DE DESCRIPCIN DE HARDWARE
6 definiendo a este mediante un nombre y sus conexiones que vienen siendo las entradas y salidas del circuito. En tanto que la arquitectura, que es la vista interna, define el funcionamiento del circuito. Despus de definir las interfaces de la entidad, otras entidades pueden utilizar a la primera como un subcircuito, al mismo tiempo que todas estn siendo desarrolladas, es decir, estn siendo detalladas en su funcionamiento. Este concepto de vistas externas e internas es propio de VHDL y permite segmentar un sistema en bloques. As, una entidad es relativa a otras entidades a travs de sus conexiones y comportamiento. Por lo que es posible experimentar cada entidad con diferentes arquitecturas sin necesidad de cambiar el resto del diseo. Y obviamente cada entidad puede ser reutilizada en otros sistemas aunque no hayan sido diseadas especficamente para estos. Un modelo de hardware de VHDL es mostrado en la siguiente figura. Figura 1.2 Modelo de Hardware de VHDL Una entidad en VHDL, que ya es todo un diseo, posee una o ms conexiones hacia los sistemas que la rodean. Una entidad puede estar compuesta de otras entidades, de procesos y por componentes, todos ellos trabajando concurrentemente. Cada entidad est definida por su arquitectura la cual se forma de instrucciones en VHDL, ya sean aritmticas, asignaciones a seales o de simples instanciaciones de componentes. Los PROCESS en VHDL son utilizados para modelar tanto circuitos secunciales como combinacionales utilizando un estilo de descripcin secuencial. Para interconectar procesos distintos se utilizan SIGNALS que no son otra cosa que simples cables. Una seal posee una fuente (driver) y uno ms destinos (receptores) y un tipo de dato que le proporciona caractersticas de interconexin. Por ejemplo, una seal que se define como tipo bit puede manejar los valores binarios 0 y 1 solamente, en tanto que una seal que se define como bit_vector puede manejar mas de una posicin binaria. La forma de disear circuitos en VHDL se divide en tres categoras de acuerdo a su complejidad: flujo de datos, comportamental, y estructural. Estos tres estilos de diseo se detallan a continuacin. FLUJO DE DATOS En este estilo el diseo del circuito no es complicado por lo que basta con describir como fluyen los datos travs de la entidad, de las entradas hacia las salidas. La operacin del sistema est definida en trminos de un conjunto de transformaciones de datos expresadas como instrucciones concurrentes. COMPORTAMENTAL El diseo es un poco ms complicado ya que requiere de varias decisiones antes de definir los datos de salida correctos. Por lo que se requiere de una descripcin algortmica del funcionamiento del circuito para facilitar el diseo del sistema. En VHDL esto se obtiene expresando el funcionamiento del diseo mediante una estructura PROCESS la cual se compone de instrucciones secunciales. ESTRUCTURAL Una descripcin estructural se utiliza en circuitos que requieren de ms de una funcin, hablando en trminos de hardware, para realizar la finalidad del sistema. Para ello segmentamos el sistema en subcircuitos o componentes para facilitar el diseo. Cada componente es caracterizado en particular ya sea utilizando una descripcin de flujo de datos o comportamental. Y a la entidad donde se describen las interconexiones de estos componentes recibe el nombre de descripcin estructural. Lo que ha hecho que VHDL sea en un tiempo tan corto el lenguaje de descripcin de hardware ms utilizado por la industria electrnica, es su independencia con la metodologa utilizada por cada diseador, su capacidad de descripcin a diferentes niveles de abstraccin, y en definitiva la IEC FRANCISCO JAVIER TORRES VALLE CAPTULO I: LENGUAJES DE DESCRIPCIN DE HARDWARE
7 posibilidad de poder reutilizar en diferentes aplicaciones un mismo cdigo. 1.5 METODOLOGA DE DISEO UTILIZANDO VHDL I. Definicin de los requerimientos del sistema. Antes de comenzar a realizar la descripcin del diseo, es muy importante que se tenga una idea clara de los objetivos y requerimientos. Tales como: funciones del circuito, mxima frecuencia de operacin, y los puntos crticos del sistema. Esto servir para poder definir a grandes rasgos cual ser la arquitectura del circuito y as comenzar a realizar la descripcin. II. Descripcin del circuito en VHDL. Antes de comenzar a escribir el cdigo es recomendable seleccionar alguna metodologa de diseo como: Top-Down, Bottom-Up, o Flat. Los dos primeros involucran la creacin de diseos jerrquicos que generalmente son grandes, y el ltimo es utilizado normalmente en el diseo de circuitos pequeos. La metodologa Top-Down consiste en dividir el sistema en varios bloques de tal manera que se puedan resolver los problemas por separado, adems, cada bloque a su vez se puede dividir en otros bloques si es necesario. El objetivo es que cada bloque tenga una funcin especifica representada mediante un componente que desempee dicha funcin. Bottom-Up es todo lo contrario, comenzamos por caracterizar los componentes bsicos del circuito y con estos formamos bloques de mayor tamao que representen un circuito ms complejo que sus partes individuales. La metodologa Flat es comnmente utilizada para diseos pequeos, donde los requerimientos son pocos y no muy complejos por lo que no nos distraen y no perdemos de vista la funcionalidad del circuito. Este mtodo de diseo es el que utilizamos cotidianamente en el diseo de circuitos digitales, y se le llama Flat por que no es necesario seccionar el circuito para poder disearlo. Despus de decidir cual ser la metodologa que debemos implementar entonces comenzamos a describir el circuito de acuerdo con lo que se haba establecido. Es recomendable utilizar algn tipo de diagrama a bloques con la descripcin del funcionamiento de cada bloque, diagramas de estado, o usar alguna tabla de funcionamiento donde se resumen las funciones de cada bloque en particular. Obviamente existe la posibilidad de cometer errores en VHDL, pero generalmente estos son de son de sintaxis, como ";" al final de cada instruccin, o simplemente por no utilizar adecuadamente alguna instruccin. Algunas ocasiones se podrn tener problemas al tratar de sintetizar el cdigo y esto se debe a que se comete el error de pensar en trminos de programacin en vez de enfocarnos en la descripcin del circuito. Cuando se utiliza VHDL el objetivo principal es el diseo de hardware y para ello debemos de utilizar tcnicas de sntesis apropiadas al lenguaje, ya que se suele cometer el error de comenzar a programar en vez de describir y esto provoca que nos olvidemos del objetivo que es el hardware. LA CLAVE PARA DESCRIBIR Y SINTETIZAR FCILMENTE CIRCUITOS DIGITALES CON VHDL ES PENSAR EN TRMINOS DE COMPUERTAS Y REGISTROS Y NO EN FUNCIN DE VARIABLES Y SUBRUTINAS III. Simulacin de la descripcin en VHDL. La simulacin del cdigo, o simulacin funcional, nos permite detectar y corregir errores antes que se implemente en el dispositivo. La modularidad implementada facilita la evaluacin del circuito, porque al describir el circuito por bloques podemos analizar cada uno por separado antes de unirlos. Esta simulacin equivale a la depuracin de programas en los lenguajes de computacin. IV. Sntesis Sntesis consiste en reducir una descripcin realizada en un lenguaje de alto nivel de abstraccin a un nivel de compuerta que pueda ser implementada en un circuito. Dicho de otra manera, sntesis es el proceso mediante el cual una descripcin es convertida en un listado de conexiones (netlist) entre las compuertas, registros, multiplexores, etc. de un dispositivo lgico programable. Por ejemplo, una compuerta XOR puede ser sustituido por su equivalente: A XOR B = A'B+AB', o una instruccin IF puede ser en algunas ocasiones una compuerta AND, en otras IEC FRANCISCO JAVIER TORRES VALLE CAPTULO I: LENGUAJES DE DESCRIPCIN DE HARDWARE
8 una OR, o inclusive toda una funcin booleana que involucra diferentes tipos de compuertas. Por lo que el proceso de sntesis depende del dispositivo utilizado. Generalmente una misma funcin es implementada de diferentes formas de acuerdo al dispositivo que estemos utilizando y esto no cambia la funcionalidad del diseo y ser la misma si se selecciona el componente adecuado a la complejidad del diseo. El proceso utilizado para sintetizar un cdigo en un CPLD es conocido como Fitting o ajuste y consiste en adaptar las ecuaciones booleanas en los diferentes bloques lgicos del dispositivo. Cuando se utiliza un FPGA el proceso empleado se le llama Place And Route y consiste en adecuar las ecuaciones a travs de varias celdas lgicas. Aunque la finalidad es la misma, la manera en que se sintetiza un cdigo en un CPLD es totalmente distinta a la sntesis de circuitos utilizando FPGAs. Por otro lado la optimizacin en la conversin del cdigo VHDL a ecuaciones booleanas depende de tres factores: I. La descripcin del circuito. II. Los recursos disponibles en el dispositivo seleccionado. III. Las directivas de sntesis seleccionadas por el diseador. La descripcin es el punto ms importante porque de esto dependen los otros dos. En la descripcin no solamente tenemos que decir como funciona el circuito, adems, tenemos que describir en que forma debe de hacerlo. No es lo mismo describir el diseo de un sumador de cuatro bits utilizando cuatro mdulos que realizan la suma basndose en propagacin de bits de acarreo entre estos, a describir un circuito que realice la suma de manera paralela sin utilizar retroalimentaciones. Finalmente suman pero no lo hacen igual. Los recursos afectan la forma en que son implementadas las ecuaciones lgicas en el dispositivo. Por ejemplo, un contador de 4 bits con borrado asncrono no puede ser implementado en un 16V8, porque el registro de la macrocelda de salida del dispositivo no cuenta con esta caracterstica. Finalmente las directivas de sntesis influyen directamente en el proceso de clculo de las ecuaciones que son implementadas en el dispositivo. Algunas de estas directivas son: asignacin de pines, sintetizar para maximizar velocidad, sintetizar para optimizar rea, y algunas que son descritas en el mismo cdigo, como por ejemplo forzar a que un nodo no sea simplificado o eliminado y pueda ser retenido a la salida de una macrocelda. Cuando se sintetiza para maximizar la frecuencia generalmente quedan funciones con varios trminos e incluso hay trminos que se repiten en las ecuaciones de los nodos de salida, pero esto se hace para evitar la retroalimentacin. V. Simulacin del cdigo sintetizado An y cuando la simulacin funcional se haya realizado con xito, debemos volver a evaluar el circuito que realmente qued sintetizado en el dispositivo. Ya que las sustituciones de funciones, como el caso de la compuerta XOR, dependern de las caractersticas del dispositivo utilizado. Y es posible que ciertas funciones se ejecuten en ms tiempo de los esperado y esto altere el funcionamiento del resto del diseo. Simular el cdigo sintetizado en el circuito permite verificar los retrasos de tiempo de un nodo a otro, evaluar la mxima frecuencia de operacin del circuito y verificar que ste funcione adecuadamente. En dado caso que el cdigo no pudiera ser sintetizado podemos tratar de mejorar la descripcin, es decir, mejorar el diseo tratando de eliminar registros, compuertas, buffers, etc., encontrar algn error en la descripcin, cambiar las directivas de sntesis o definitivamente seleccionar otro dispositivo. VI. Programacin del dispositivo Despus de completar la descripcin, la sntesis y la simulacin del circuito con xito, el siguiente paso es generar el archivo que nos permite implementar fsicamente nuestro diseo en un dispositivo programable. Todos los programas de VHDL para sntesis generan un archivo con el que podemos programar el dispositivo. Ya sea JEDEC, JTAG, BITSTREAM, etc. de acuerdo al tipo dispositivo y fabricante.