Resumen:
|
[ES] La verificación de un ASIC (Application Specific Integrated Circuit) no consta de un solo proceso, pues se trata de un complejo producto que necesita de numerosas técnicas de verificación y validación para conseguir ...[+]
[ES] La verificación de un ASIC (Application Specific Integrated Circuit) no consta de un solo proceso, pues se trata de un complejo producto que necesita de numerosas técnicas de verificación y validación para conseguir la certeza de que se ha diseñado y fabricado correctamente. Algunas de las técnicas más comunes son la simulación funcional y de potencia, la verificación formal, el estudio de Clock Domain Crossing (CDC) o el análisis de estabilidad de alimentación, sin embargo, el presente trabajo busca centrarse en explicar el análisis temporal estático (STA).
La propuesta para este trabajo final de máster consta de 5 partes bien diferenciadas, que se detallarán a continuación, y con las cuales se busca abarcar el entendimiento teórico y práctico de esta técnica de verificación.
La primera parte se trata de una de las dos secciones más teóricas de las que consta el trabajo, pues en ésta se pretende explicar en qué consiste la técnica de STA, cuáles son sus objetivos y cómo se complementa con el resto de las técnicas de verificación. Además, se introducirán las diferentes fases en las que se divide, que posteriormente se verán con mayor extensión en el resto de las partes del trabajo, y su interacción con el resto de los procesos durante el diseño de un ASIC.
En la siguiente sección se abordarán los aspectos teóricos de mayor peso, pues se pretende realizar en primer lugar un repaso de los principales conceptos y parámetros temporales de la lógica combinacional. Se explicará con detalle cada uno de los análisis que las herramientas de STA llevan a cabo, tales como el estudio del tiempo de setup, hold, recovery, removal, clock gating checks o pulse width entre otros, así como otra serie de conceptos vitales para el entendimiento de futuras secciones, como el cálculo de los timing paths o los conceptos de launch y capture paths.
La tercera parte es la primera de las secciones con un carácter más práctico, pues en ella se explican todas las reglas o constraints que el diseñador debe aplicar. En esta sección se explicará cómo la herramienta realiza el cálculo de los timings paths en base a la información presente en las librerías de fabricación, y cómo se comprueba que dichos resultados cumplen las constraints especificadas por el diseñador.
A través de la penúltima sección se pretende conseguir un entendimiento pleno de como llevar a cabo el análisis de un report otorgado por alguna de las herramientas de STA, en el caso de este trabajo se empleará la herramienta de Tempus (Cadence) para dicha sección. Además, se realizará un estudio de casos reales en el diseño digital de un ASIC, para comprender como solventar algunas de las violaciones reportadas por Tempus.
En la quinta y última parte de este trabajo, se expondrá un proceso de optimización del flujo de diseño de constraints. Como cualquier otro proceso de diseño, el STA está evolucionando y mejorándose constantemente, y en esta sección se tratará de mejorar el proceso de diseño de las constraints de los puertos de entrada y salida de la parte digital del ASIC. Normalmente, se alcanzan los centenares de puertos en un diseño, por lo que llevaré a cabo una metodología simple y rápida que permita a los diseñadores tener un control de todos los puertos de entrada y salida sin cometer errores de sintaxis al autogenerarse al constraint.
[-]
[EN] Verifying an ASIC (Application Specific Integrated Circuit) is not a single process, as it is a complex product that requires numerous verification and validation techniques to ensure that it has been designed and ...[+]
[EN] Verifying an ASIC (Application Specific Integrated Circuit) is not a single process, as it is a complex product that requires numerous verification and validation techniques to ensure that it has been designed and manufactured correctly. Functional and power simulation, formal verification, Clock Domain Crossing (CDC) study, and power stability analysis are the most common techniques. However, this work focuses on explaining static timing analysis (STA). The proposal for this final master's project consists of 5 well-differentiated parts, which will be detailed below, and with which it is sought to cover the theoretical and practical understanding of this verification technique. The first part is one of the two most theoretical sections of the work, as it aims to explain what the STA technique consists of, its objectives, and how it complements the rest of the verification techniques. In addition, the different phases into which it is divided will be introduced, which will later be seen in more significant extension in the rest of the parts of the work and its interaction with the rest of the processes during the design of an ASIC. The following section will address the heaviest theoretical aspects, as it is intended first to review combinational logic's main temporal concepts and parameters. Each of the analyses that STA tools carry out will be explained in detail, such as the study of setup time, hold, recovery, removal, clock gating checks, or pulse width, among others, as well as a series of vital concepts for understanding future sections, such as the calculation of timing paths or the concepts of launch and capture paths. The third part is the first of the sections with a more practical character, as it explains all the rules or constraints that the designer must apply. This section will explain how the tool calculates the timing paths based on the information in the manufacturing libraries and how it checks that these results meet the constraints specified by the designer. The penultimate section is intended to fully understand how to conduct the analysis of a report provided by one of the STA tools; in this case, the Tempus (Cadence) tool will be used for this section. In addition, a study of actual cases in the digital design of an ASIC will be carried out to understand how to solve some of the violations reported by Tempus. In the fifth and last part of this work, a process of optimization of the design flow of constraints will be exposed. Like any other design process, STA is constantly evolving and improving. This section will try to improve the design process of the constraints of the input and output ports of the digital part of the ASIC. Usually, hundreds of ports are reached in a design. Hence, a simple and fast methodology allows designers to have control of all input and output ports without making syntax errors when auto-generating the constraint.
[-]
|