Abstract:
En el siguiente trabajo se detalla la metodología y flujo de trabajo propuesto para poder
llevar a cabo la etapa de síntesis física del flujo VLSI en el sistema IC Compiler II, utilizando las librerías de 180 nm y 6 capas de metal del foundry TSMC. Esto con el objetivo de poder generar un diseño físico para cualquier circuito, sin errores durante la ejecución del flujo y sin errores de diseño. Para la verificación de esto último se detalla cómo se integra la Verificación de Antena al flujo propuesto. De esta manera pudiendo llevar a cabo dicha verificación y validando que los diseños generados, implementando la metodología propuesta, no violan las reglas de Antena del foundry.
Este trabajo forma parte de un proyecto que busca la automatización del flujo de diseño
VLSI, de forma que se logre generar una herramienta que abra las puertas al campo del diseño de circuitos nanométricos en Guatemala. Al formar parte de un proyecto intergeneracional, se buscó continuar con el trabajo realizado en años anteriores y utilizar todos los avances alcanzados como base para el presente. Para esto último, se inició replicando los resultados presentados en estos trabajos previos con el objetivo de familiarizarse tanto con el proyecto como con las herramientas de trabajo. Posterior a esto, se llevó a cabo la planificación para actualizar el flujo de trabajo utilizado en años anteriores. Esto debido a que el flujo realizaba la síntesis física en el sistema IC Compiler y se propuso actualizarlo para permitir su ejecución en la versión más moderna IC Compiler II.
Para el proceso de actualización del flujo se inició con la lectura extensiva de los manuales de IC Compiler II, los cuales fueron provistos por su desarrollador la empresa Synopsys.
Estudiando estos manuales se determinó que, debido a que muchos de los comandos utilizados eran obsoletos en el nuevo sistema, la actualización del flujo no sería tan fácil cómo se pensaba. Adicional a esto, se encontró que en el flujo propuesto previamente no se estaban ejecutando ciertos procesos útiles que brindan robustez al flujo y a los diseños generados.
Por lo tanto, con los conocimientos adquiridos se decidió generar una nuevo flujo de trabajo, aunque siempre tomando como base los esfuerzos realizados previamente.
En el nuevo flujo aún se incluyen las etapas principales de la síntesis física: Floorplan,
Placement y Routing. A estas fueron añadidos procesos clave como la preparación de librerías y el power planning. La metodología a seguir para la validación del flujo consistió en iniciar las pruebas utilizando una compuerta NOT, sintetizar esta compuerta de acuerdo al flujo propuesto y por último verificar errores de ejecución. Luego de corregir estos errores en una nueva versión del flujo, el proceso fue repetido realizando nuevamente la síntesis sobre la compuerta, la validación y corrección de errores.
Una vez se logró que el flujo no generara errores durante su ejecución era necesario
validar que el diseño final no tuviera errores de diseño, específicamente violaciones a las
reglas de antena impuestas por el foundry. Para esto nuevamente se utilizó los manuales y los trabajos previos de forma que se pudiera determinar la mejor manera de integrar esta verificación al flujo. Con esto determinado se procedió a validar el flujo buscando que este fuera capaz de sintetizar una compuerta NOT sin errores. Esto pudo ser comprobado al ejecutar la verificación y validar que diseño no presentaba violaciones a las reglas de antena.
Es importante mencionar que en trabajos anteriores esta verificación pudo ser llevada a cabo de forma exitosa, por lo que gran parte del trabajo realizado se encuentra en su integración al nuevo flujo de manera que los diseño generados pudieran ser verificados sin problemas.
Con el flujo validado para una compuerta NOT se pudo proceder a hacer pruebas con
circuitos más complejos. Los circuitos utilizados para la validación del flujo fueron un XOR,
un Full Adder, una ALU, un contador de 4 bits y una RAM de 5 bits. Durante la validación
de la compuerta XOR se encontró que se debía cambiar dos configuraciones para obtener un diseño sin errores. La primera fue la de ampliar el tamaño del die. Esto debido a que para implementar este diseño se requería un mayor numero de pads de entradas y salidas que con la NOT, por lo que ampliando el tamaño del die se logró que todos los pads pudieran ser acomodados. La segunda configuración fue la de forzar que los pads de alimentación siempre se encontrarán en los laterales del diseño. Esto con el objetivo de evitar la formación accidental de cortos durante la creación del mesh de poder.
Luego de realizar las validaciones con la compuerta XOR, se encontró que la metodología
ya era lo suficientemente robusta para implementar una variedad de circuitos. Esto al lograr que el Full Adder, la ALU, el contador y la RAM pudieran ser validados sin necesidad de realizar modificaciones al flujo más que ampliar el tamaño del die para ajustar de acuerdo al número de pads. Con esto se pudo dar por validado el flujo propuesto al ser capaz de generar diseños sin errores de ejecución en la herramienta IC Compiler II y sin violaciones a las reglas de antena del foundry TSMC.
Finalmente se realizó la síntesis física sobre el diseño generado en conjunto con todo
el grupo de trabajo del proyecto y el cual se pretende enviar a fabricar con TSMC. Este
diseño fue nombrado “El Gran Jaguar” ya que al igual que el gran templo maya este busca
poner en alto el nombre de Guatemala y abrir las puertas hacia un nuevo mundo. El circuito consiste en una máquina de estados finitos que transmite distintos mensajes en caracteres ASCII, estos mensajes contienen información relevante del proyecto. Esta síntesis fue exitosa al poder generar el diseño, validar que este aprobara la Verificación de Antena y finalmente lograr exportarlo a un archivo GDSII.
(A)