Publicación: Automatización de la etapa de síntesis lógica, optimización del proceso de instalación de las aplicaciones de Synopsys y documentación de los pasos de front-end y back-end para el diseño del circuito integrado El Gran Jaguar
Portada
Citas bibliográficas
Código QR
Autores
Autor corporativo
Recolector de datos
Otros/Desconocido
Director audiovisual
Editor
Tipo de Material
Fecha
Citación
Título de serie/ reporte/ volumen/ colección
Es Parte de
Resumen en español
El presente trabajo se centra en tres puntos principales. El primero consiste en la mejora del proceso de automatización en la etapa de síntesis lógica, con el objetivo de lograr la síntesis lógica de cualquier circuito descrito en Verilog. El segundo punto es la optimización del proceso de instalación automatizada de las aplicaciones de Synopsys. Finalmente, el trabajo busca documentar todo el proceso realizado en las partes de front-end y back-end del flujo de diseño de circuitos, con el n de comprender mejor el uso de las herramientas de Synopsys, la estructura seguida y los scripts empleados para automatizar los procesos, haciendo posible que este proceso sea replicable para cualquier tecnología. El trabajo se ha estructurado en secciones organizadas de manera secuencial para abordar los diferentes puntos clave. Estas secciones son: Implementación de un servidor NFS: se explica cómo se configuró un servidor NFS para facilitar el intercambio de archivos entre los miembros del equipo de trabajo. Librerías de TSMC: se detallan las librerías de TSMC utilizadas en el proceso. Jerarquía de directorios: se describen las mejoras realizadas en la jerarquía de directorios, con el objetivo de optimizar la organización de archivos y asegurar una síntesis ordenada y e ciente de cualquier circuito. Flujo de diseño para la síntesis lógica: se describe el flujo de diseño seguido para llevar a cabo la síntesis lógica de los circuitos. Desarrollo en Verilog: se explica cómo diseñar circuitos, testbench y módulos de pines de entrada y salida en Verilog, con el n de entender su construcción. Configuración de herramientas y scripts: se aborda la configuración y el uso de las herramientas y scripts empleados en esta primera etapa, para entender su funcionamiento. Resultados de síntesis de circuitos: se presentan los resultados de la síntesis de varios circuitos, con el objetivo de veri car que el script desarrollado permite la síntesis tanto de circuitos combinacionales como secuenciales. Mejoras del script utilizado para la síntesis lógica: se presentan mejoras significativas en uno de los scripts, con el propósito de simplificar la síntesis de circuitos y permitir al usuario una interacción más directa y e ciente desde la terminal. Script de instalación de aplicaciones Synopsys: se explica un script que mejora el proceso de instalación de las aplicaciones de Synopsys, incluyendo la descarga e instalación de todas las dependencias necesarias antes de proceder con la instalación de dichas aplicaciones. Los resultados obtenidos fueron satisfactorios, ya que se lograron cumplir con los objetivos establecidos. Se construyó una jerarquía de directorios que permite organizar de manera e ciente los archivos necesarios y generados durante el proceso de síntesis lógica de cualquier circuito. Además, se desarrollaron tres nuevos scripts para la síntesis lógica que permiten realizar la síntesis del circuito original y del circuito sintetizado, junto con el módulo de pines de entrada y salida, de manera automática. Esto elimina la necesidad de realizar la síntesis dos veces de forma manual, como se hacía en años anteriores. También se llevó a cabo con éxito la síntesis lógica de varios circuitos, tanto síncronos como asíncronos, comenzando con un circuito not, and, xor y or, seguido de ALU, sumadores de 4, 16 y 32 bits, contadores de 2, 4 y 8 bits, un restador de 16 bits, multiplicadores y divisores de 32 bits, y el nanochip El Gran Jaguar. Este proceso permitió identificar aspectos clave a considerar al sintetizar circuitos secuenciales dependientes del reloj, algo que no se había realizado en años anteriores. Además, se mejoró el proceso de descarga de las aplicaciones de Synopsys mediante un nuevo script, que crea todas las dependencias iniciales (directorios, permisos, instalación de bibliotecas y aplicaciones, y creación de llaves de seguridad RSA para la conexión al servidor de Synopsys) y lleva a cabo la instalación del instalador de Synopsys, lo cuales son pasos necesarios antes de descargar las aplicaciones. En este trabajo se elaboró la documentación necesaria, tanto escrita como en formato de video, para facilitar la comprensión del funcionamiento y uso de las diversas herramientas empleadas en el proceso de síntesis lógica. Para futuras investigaciones en esta línea de trabajo, sería interesante implementar y sintetizar diseños más grandes o con arquitecturas más sofisticadas, con el fin de validar la robustez y escalabilidad del proceso. Un ejemplo de esto podría ser un microcontrolador nibbler de 4 bits, y luego escalarlo a uno de 8, 16 y 32 bits. También sería valioso contar con una interfaz gráfica que permita interactuar directamente con el sistema para ingresar las librerías a utilizar, los archivos de entrada a sintetizar, y para interactuar de manera directa con la aplicación de DVE o Waveview, con el objetivo de visualizar las señales tanto del circuito original como del sintetizado en una misma interfaz, evitando así la interacción a nivel de comandos. En cuanto al script que permite la descarga e instalación de las aplicaciones de Synopsys (APPS.sh), se podrían realizar mejoras. Actualmente, en este script, la variable apps_real contiene directamente los nombres iniciales de las aplicaciones. Sin embargo, Synopsys puede cambiar esos nombres, lo que generaría un error si el nombre de la aplicación no coincide al intentar descargarla. Para solucionar esto, se podría mejorar el proceso para que la variable no contenga directamente los nombres de las aplicaciones, sino que haga referencia a los nombres contenidos en el archivo myproductsrev.txt, que contiene todos los nombres de las aplicaciones. De esta manera, si los nombres que contiene el archivo cambian, también se actualizaría la variable apps_real , evitando así errores al intentar descargar alguna aplicación.
Resumen en inglés
The present work focuses on three main points. The first consists of improving the automation process in the logic synthesis stage, with the aim of achieving the logic synthesis of any circuit described in Verilog. The second point is the optimization of the automated installation process of Synopsys applications. Finally, the work seeks to document the entire process carried out in the front-end and back-end stages of the design ow, in order to better understand the use of Synopsys tools, the structure followed, and the scripts used to automate the processes, making this procedure replicable for any technology. The work has been structured into sections organized sequentially to address the key aspects. These sections are: Implementation of an NFS server: explains how an NFS server was configured to facilitate le sharing among team members. TSMC libraries: details the TSMC libraries used in the process. Directory hierarchy: describes the improvements made to the directory hierarchy, aiming to optimize le organization and ensure an orderly and eficient synthesis of any circuit. Design ow for logic synthesis: describes the design ow followed to carry out the logic synthesis of circuits. Development in Verilog: explains how to design circuits, testbench, and input/out put pin modules in Verilog, in order to understand their construction. Configuration of tools and scripts: addresses the configuration and use of the tools and scripts employed in this first stage to understand their operation. Synthesis results: presents the results of the synthesis of several circuits, with the aim of verifying that the developed script allows the synthesis of both combinational and sequential circuits. Improvements to the logic synthesis script: presents significant improvements in one of the scripts, with the purpose of simplifying circuit synthesis and allowing more direct and eficient interaction from the terminal. Installation script for Synopsys applications: explains a script that improves the installation process of Synopsys applications, including downloading and installing all the necessary dependencies before proceeding with the installation of said applications. The results obtained were satisfactory, as the objectives set were achieved. A directory hierarchy was built that allows eficient organization of the les needed and generated during the logic synthesis process of any circuit. In addition, three new scripts were developed for logic synthesis that automatically perform the synthesis of the original circuit and the synthesized circuit, together with the input/output pin module. This eliminates the need to perform the synthesis twice manually, as was done in previous years. The logic synthesis of several circuits was also successfully carried out, both synchronous and asynchronous, starting with not, and, xor, and or circuits, followed by ALU, adders of 4, 16, and 32 bits, counters of 2, 4, and 8 bits, a 16-bit subtractor, 32-bit multipliers and dividers, and the nanochip El Gran Jaguar. This process allowed the identification of key aspects to consider when synthesizing sequential circuits dependent on the clock, something that had not been done in previous years. In addition, the download process of Synopsys applications was improved through a new script, which creates all the initial dependencies (directories, permissions, installation of libraries and applications, and creation of RSA security keys for connection to the Synopsys server) and carries out the installation of the Synopsys installer, which are necessary steps before downloading the applications. In this work, the necessary documentation was prepared, both written and in video format, to facilitate the understanding of the operation and use of the various tools employed in the logic synthesis process. For future research in this line of work, it would be interesting to implement and synthe size larger designs or designs with more sophisticated architectures, in order to validate the robustness and scalability of the process. An example of this could be a nibbler microcontro ller of 4 bits, and then scale it to one of 8, 16, and 32 bits. It would also be valuable to have a graphical interface that allows direct interaction with the system to input the libraries to be used, the input les to be synthesized, and to directly interact with the DVE or Waveview application, with the objective of visualizing the signals of both the original and synthesized circuit in the same interface, thus avoiding command-level interaction. Regarding the script that allows the download and installation of Synopsys applications (APPS.sh), improvements could be made. Currently, in this script, the variable apps_ real directly contains the initial names of the applications. However, Synopsys may change these names, which would generate an error if the application name does not match when attempting to download it. To solve this, the process could be improved so that the variable does not directly contain the application names, but instead references the names contained in the myproductsrev.txt le, which includes all the application names. In this way, if the names contained in the le change, the apps_real variable would also be updated, thus avoiding errors when trying to download an application.
Descargar PDF
Vista en línea 

