El cierre del diseño es una parte del flujo de trabajo de automatización del diseño electrónico digital mediante el cual se modifica el diseño de un circuito integrado (es decir, VLSI ) a partir de su descripción inicial para cumplir con una lista creciente de restricciones y objetivos de diseño.
Cada paso del diseño de un circuito integrado (como el análisis de tiempos estáticos , la colocación , el enrutamiento , etc.) ya es complejo y, a menudo, constituye su propio campo de estudio. Sin embargo, este artículo analiza el proceso general de cierre del diseño, que lleva a un chip desde su estado de diseño inicial hasta la forma final en la que se cumplen todas sus restricciones de diseño.
Cada chip comienza como una idea de alguien sobre algo bueno: "Si podemos fabricar una pieza que realice la función X, ¡seremos todos ricos!". Una vez que se establece el concepto, alguien del departamento de marketing dice: "Para que este chip sea rentable, debe costar C dólares y funcionar a una frecuencia F". Alguien del departamento de fabricación dice: "Para cumplir los objetivos de este chip, debe tener un rendimiento del Y%". Alguien del departamento de embalaje dice: "Debe caber en el encapsulado P y no disipar más de W vatios". Finalmente, el equipo genera una lista extensa de todas las limitaciones y objetivos que deben cumplir para fabricar un producto que se pueda vender de forma rentable. A continuación, la dirección forma un equipo de diseño, que consta de arquitectos de chips, diseñadores lógicos, ingenieros de verificación funcional, diseñadores físicos e ingenieros de sincronización, y les asigna la tarea de crear un chip según las especificaciones.
La distinción entre restricciones y objetivos es sencilla: una restricción es un objetivo de diseño que debe cumplirse para que el diseño tenga éxito. [1] Por ejemplo, puede ser necesario que un chip funcione a una frecuencia específica para que pueda interactuar con otros componentes de un sistema. Por el contrario, un objetivo es una meta de diseño en la que más (o menos) es mejor. Por ejemplo, el rendimiento es generalmente un objetivo, que se maximiza para reducir el costo de fabricación. A los efectos del cierre del diseño, la distinción entre restricciones y objetivos no es importante; en este artículo se utilizan las palabras indistintamente.
Diseñar un chip solía ser una tarea mucho más sencilla. En los primeros tiempos de VLSI, un chip consistía en unos pocos miles de circuitos lógicos que realizaban una función simple a velocidades de unos pocos MHz. El cierre del diseño era simple: si todos los circuitos y cables necesarios "encajaban", el chip realizaría la función deseada.
El cierre de diseño moderno se ha vuelto mucho más complejo. Los chips lógicos modernos pueden tener decenas a cientos de millones de elementos lógicos que conmutan a velocidades de varios GHz. Esta mejora ha sido impulsada por la ley de escalamiento de la tecnología de Moore y ha introducido muchas consideraciones de diseño nuevas. Como resultado, un diseñador VLSI moderno debe considerar el rendimiento de un chip en relación con una lista de docenas de restricciones y objetivos de diseño, incluidos el rendimiento, la potencia, la integridad de la señal , la confiabilidad y el rendimiento. En respuesta a esta creciente lista de restricciones, el flujo de cierre de diseño ha evolucionado desde una simple lista lineal de tareas a un flujo muy complejo y altamente iterativo, como el siguiente flujo de diseño ASIC simplificado:
El propósito del flujo es llevar un diseño desde la fase de concepto hasta la etapa de trabajo. La complejidad del flujo es un resultado directo de la adición y evolución de la lista de restricciones de cierre del diseño. Para comprender esta evolución es importante comprender el ciclo de vida de una restricción de diseño. En general, las restricciones de diseño influyen en el flujo de diseño a través de la siguiente evolución de cinco etapas:
Un buen ejemplo de esta evolución se puede encontrar en la restricción de integridad de la señal . A mediados de la década de 1990 (nodo de 180 nm), los visionarios de la industria describían los peligros inminentes del ruido de acoplamiento mucho antes de que los chips comenzaran a fallar. A mediados de la década de 1990, los problemas de ruido aparecían en los diseños avanzados de microprocesadores. En 2000, se disponía de herramientas de análisis de ruido automatizadas que se utilizaban para orientar la solución manual. El número total de problemas de ruido identificados por las herramientas de análisis identificadas por el flujo se convirtió rápidamente en demasiados para corregirlos manualmente. En respuesta, las empresas de CAD desarrollaron los flujos de evitación de ruido que se utilizan actualmente en la industria.
En cualquier momento, las limitaciones del flujo de diseño se encuentran en diferentes etapas de su ciclo de vida. En el momento de escribir este artículo, por ejemplo, la optimización del rendimiento es la más madura y se encuentra en la quinta fase con el uso generalizado de flujos de diseño impulsados por el tiempo. La optimización del rendimiento orientada a la potencia y los defectos se encuentra en la cuarta fase; la integridad de la fuente de alimentación, un tipo de restricción de ruido, se encuentra en la tercera fase; la optimización del rendimiento limitada por el circuito se encuentra en la segunda fase, etc. Siempre se puede encontrar una lista de las crisis de restricciones inminentes de la primera fase en las hojas de ruta tecnológicas con perspectiva a 15 años de la Hoja de Ruta Tecnológica Internacional para Semiconductores (ITRS).
A medida que una restricción madura en el flujo de diseño, tiende a abrirse camino desde el final del flujo hasta el principio. A medida que lo hace, también tiende a aumentar en complejidad y en el grado en que compite con otras restricciones. Las restricciones tienden a ascender en el flujo debido a una de las paradojas básicas del diseño: precisión versus influencia. En concreto, cuanto antes se aborde una restricción en un flujo de diseño, más flexibilidad habrá para abordarla. Irónicamente, cuanto antes se esté en un flujo de diseño, más difícil es predecir el cumplimiento. Por ejemplo, una decisión arquitectónica de canalizar una función lógica puede tener un impacto mucho mayor en el rendimiento total del chip que cualquier cantidad de correcciones posteriores al enrutamiento. Al mismo tiempo, predecir con precisión el impacto en el rendimiento de dicho cambio antes de que se sintetice la lógica del chip, y mucho menos se coloque o enrute, es muy difícil. Esta paradoja ha dado forma a la evolución del flujo de cierre del diseño de varias maneras. En primer lugar, requiere que el flujo de diseño ya no esté compuesto por un conjunto lineal de pasos discretos. En las primeras etapas de VLSI, era suficiente dividir el diseño en etapas discretas, es decir, primero hacer la síntesis lógica, luego la colocación y luego el enrutamiento. A medida que ha aumentado el número y la complejidad de las restricciones de cierre del diseño, el flujo de diseño lineal se ha roto. En el pasado, si quedaban demasiadas violaciones de restricciones de tiempo después del enrutamiento, era necesario volver atrás, modificar ligeramente los ajustes de la herramienta y volver a ejecutar los pasos de colocación anteriores. Si aún no se cumplían las restricciones, era necesario llegar más atrás en el flujo y modificar la lógica del chip y repetir los pasos de síntesis y colocación. Este tipo de bucle consume mucho tiempo y no puede garantizar la convergencia, es decir, es posible volver atrás en el flujo para corregir una violación de restricción solo para descubrir que la corrección indujo otra violación no relacionada.