elaboración
Inglés: elaboration
El proceso de tomar un árbol analizado de una definición de circuito integrado abstracto en un lenguaje como Verilog y crear una jerarquía de instancias de módulos que termina con puertas y declaraciones primitivas (atómicas).
elaboración: convirtiendo el código de diseño en un circuito a nivel de compuerta
La elaboración es la etapa de compilación intermedia en el diseño de hardware donde una descripción de comportamiento o estructural escrita en Verilog, VHDL o lenguajes similares se transforma en una jerarquía explícita de componentes de circuito. Toma su código de diseño de alto nivel y lo desarrolla en un árbol de módulos instanciados, parámetros y compuertas primitivas con los que una herramienta de síntesis o un simulador pueden trabajar. Sin elaboración, el archivo de diseño permanece abstracto; la elaboración lo hace concreto.
El proceso comienza con el análisis del código fuente en un árbol de sintaxis abstracta. Luego, el elaborador expande recursivamente las instanciaciones de módulos, resuelve parámetros, genera instancias de arreglos y aplana o preserva la jerarquía de acuerdo con las directivas del compilador. Los bloques 'generate' se desarrollan, los bloques de compilación condicional (ifdef) se evalúan y las conexiones de puertos se resuelven. El resultado es un árbol de diseño completamente elaborado donde cada señal, puerto y compuerta tiene una identidad y ubicación definidas en la jerarquía del módulo.
Elaboración en simulación y síntesis
La elaboración ocurre temprano tanto en los flujos de simulación como de síntesis, pero produce salidas ligeramente diferentes según la herramienta. Un simulador elabora el diseño para prepararlo para la ejecución de comportamiento, preservando los bloques de procedimiento y manteniendo las anotaciones de temporización. Una herramienta de síntesis elabora el diseño para prepararlo para la optimización y el mapeo tecnológico, potencialmente aplanando la jerarquía o manejando construcciones especiales como las memorias de manera diferente. Los errores de elaboración, como anchos de puerto no coincidentes o referencias de módulos indefinidas, generalmente detienen todo el flujo.
Los problemas comunes de elaboración incluyen desajustes de parámetros en instanciaciones de módulos anidados, bloques 'generate' no resueltos cuando la lógica condicional depende de valores en tiempo de ejecución y cruces de dominio de reloj que aparecen solo después de que la elaboración revela la interconexión real. Los diseños grandes con jerarquías de módulos profundas o un barrido extenso de parámetros pueden producir árboles elaborados muy grandes que consumen una memoria significativa durante la síntesis.
El nombre refleja el sentido de expandir algo simple en algo detallado y completamente elaborado, tomado del uso general del inglés. En el mundo del diseño VLSI, la elaboración se sitúa entre la entrada de diseño legible por humanos y la síntesis ejecutable por máquina, lo que la convierte en el puente esencial que ningún flujo de diseño digital puede omitir.
Fuentes
- Fuente de la definiciónWiktionary