Archivo Library Exchange Format (LEF)

también en: Português · English

El formato de archivo Library Exchange Format (LEF) es una representación abstracta del layout escrita en ASCII, por lo que puede leerse en cualquier editor de texto. Un archivo .lef contiene solo la información básica esencial para el propósito de la herramienta de CAD en uso. Esta representación simplificada busca optimizar el consumo de recursos, como la memoria, durante el procesamiento del layout de un diseño. Los datos de un archivo LEF incluyen definiciones de capas, vías, tipos de site de posicionamiento y macros. En general, existen tres tipos principales de archivos LEF:

  • Tech LEF (.lef o .tlef): contiene toda la información de tecnología, como las reglas de las capas de metal, las vías y los sites de posicionamiento disponibles para el Process Design Kit (PDK) utilizado.

  • Cell LEF (.lef): contiene toda la información física abstraída de las celdas lógicas (std cells) del PDK utilizado que pueden usarse en un diseño de circuito.

  • Design LEF (.lef): corresponde a la representación de un diseño ya sintetizado físicamente. Es similar al cell LEF, pero para un bloque diseñado.

Tech LEF

Un archivo Tech LEF contiene toda la información de tecnología de un diseño, como las reglas de posicionamiento y enrutamiento, e información de proceso de las capas. El archivo puede incluir las siguientes declaraciones:

[VERSION declaración]  
[BUSBITCHARS declaración]  
[DIVIDERCHAR declaración]  
[UNITS declaración]  
[MANUFACTURINGGRID declaración]  
[USEMINSPACING declaración]  
[CLEARANCEMEASURE declaración]  
[PROPERTYDEFINITIONS declaración]  

[LAYER (Nonrouting) declaración  
    | LAYER (Routing) declaración]  

[MAXVIASTACK declaración]  
[VIA declaración]  
[VIARULE declaración]  
[VIARULE GENERATE declaración]  
[NONDEFAULTRULE declaración]  
[SITE declaración]  
[BEGINEXT declaración]  
[END LIBRARY]  

Puedes escribir las declaraciones en cualquier orden. Sin embargo, los datos deben definirse antes de usarse. Por ejemplo, la declaración UNITS debe definirse antes de cualquier declaración que use valores que dependan de UNITS. Para el ejemplo de Tech LEF de abajo tenemos:

Desktop View Ejemplo de un archivo Tech LEF

Desktop View Encabezado de un archivo Tech LEF

VERSION número: Especifica qué versión de la sintaxis LEF se está usando. El número es una cadena en el formato major.minor[.subMinor], como 5.6 o 5.7.

BUSBITCHARS “parDelimitador”: Especifica el par de caracteres usados para definir los bits de bus cuando los nombres LEF se mapean hacia o desde otras bases de datos. Los caracteres deben ir entre comillas dobles. Por ejemplo:

    BUSBITCHARS ”[]”:

Si uno de los caracteres de bits de bus aparece en el nombre de algún elemento del LEF como un carácter normal, debes poner una barra invertida () antes del carácter para que el lector LEF no lo interprete como delimitador de bit de bus. Si no especificas la declaración BUSBITCHARS en tu archivo LEF, el valor por defecto es ”[]”.

DIVIDERCHAR “carácter”: Especifica el carácter usado para expresar jerarquía cuando los nombres del LEF se mapean hacia o desde otras bases de datos. El carácter debe ir entre comillas dobles. Por ejemplo:

    DIVIDERCHAR ”/”:

Si el carácter divisor aparece en el nombre de algún elemento del LEF como un carácter normal, debes poner una barra invertida () antes del carácter para que el lector LEF no lo interprete como delimitador de jerarquía. Si no especificas la declaración DIVIDERCHAR en tu archivo LEF, el valor por defecto es ”/”.

UNITS  
    [TIME NANOSECONDS factorDeConversion ;]  
    [CAPACITANCE PICOFARADS factorDeConversion ;]  
    [RESISTANCE OHMS factorDeConversion ;]  
    [POWER MILLIWATTS factorDeConversion ;]  
    [CURRENT MILLIAMPS factorDeConversion ;]  
    [VOLTAGE VOLTS factorDeConversion ;]  
    [DATABASE MICRONS factorDeConversionLEF ;]  
    [FREQUENCY MEGAHERTZ factorDeConversion ;]  
END UNITS

La declaración UNITS define las unidades de medida del LEF. Los valores indican cómo interpretar los números que aparecen a lo largo del archivo.

MANUFACTURINGGRID valor: Define la rejilla de fabricación del diseño. La rejilla de fabricación se usa para alinear las geometrías. Cuando se especifica, las formas y celdas se colocan en posiciones que se ajustan a la rejilla de fabricación.

Desktop View Definición de site en un archivo Tech LEF

SITE nombreDelSite  
    CLASS {PAD | CORE} ;  
    [SYMMETRY {X | Y | R90} ... ;]  
    [ROWPATTERN {nombreDelSiteAnterior orientaciónDelSite} ... ;]  
    SIZE ancho BY alto ;  
END nombreDelSite  

La declaración SITE proporciona la rejilla mínima de posicionamiento para un conjunto de std cells, como I/O, core, block, analógico, digital, short, tall, etc. Todas las std cells deben tener ancho y alto múltiplos del tamaño del site.

SYMMETRY {X | Y | R90}: Indica qué orientaciones del site son equivalentes. Los sites de una fila tienen la misma orientación que la fila.

CLASS {PAD | CORE}: Especifica si el site es un site de pad de I/O o un site de core.

SIZE ancho BY alto: Especifica las dimensiones del site en la orientación normal (o norte), en micrómetros.

Desktop View Definición de capa de metal en el Tech LEF

Las declaraciones LAYER definen las capas de enrutamiento presentes en la tecnología que pueden usarse en el bloque que se va a diseñar. Cada capa se define asignándole un nombre y reglas de diseño. Las capas de enrutamiento deben definirse por separado, cada una con sus propias declaraciones de atributos. Debes definir las capas en orden de proceso, de abajo hacia arriba. Por ejemplo:

    poly    masterslice  
    cut01   cut  
    met1    routing  
    cut12   cut  
    met2    routing  

LAYER nombreDeCapa: Especifica el nombre de la capa. Este nombre se usa en referencias posteriores a la capa.

DIRECTION {HORIZONTAL | VERTICAL | DIAG45 | DIAG135}: Especifica la dirección preferente de enrutamiento del metal. Las herramientas de enrutamiento automático intentan enrutar usando la dirección preferente de cada capa.

PITCH {distancia | xDistancia yDistancia}: Especifica la distancia de enrutamiento necesaria entre pistas de la misma capa. El PITCH se usa para generar la rejilla de enrutamiento (las pistas del DEF).

WIDTH distancia: Especifica los valores de ancho del cable, en micrómetros. Es posible especificar más de un ancho de cable. Si se especifican varios valores de ancho, deben indicarse en orden creciente.

SPACING distancia: Especifica el espaciado mínimo por defecto, en micrómetros, permitido entre dos geometrías de nets diferentes.

Las reglas de espaciado se aplican al espaciado entre pin y cable (pin-to-wire), obstrucción y cable (obstruction-to-wire), vía y cable (via-to-wire) y entre cables (wire-to-wire). Estos requisitos especifican el espaciado mínimo permitido por defecto entre dos geometrías de nets diferentes. La figura de abajo muestra algunos ejemplos de las propiedades del Tech LEF presentadas en esta sección.

Desktop View Ejemplo de las reglas de las capas de metal en el Tech LEF

Para conectar capas de metal diferentes necesitamos una capa de corte (cut) entre las dos capas de metal que vamos a conectar. Estas conexiones se llaman VIAs. Una vía puede tener un solo punto de conexión (single cut) o varios puntos de conexión (multi cut) entre las capas de metal. Los atributos de una vía en el LEF son parecidos a los de los metales.

Desktop View Ejemplo de las reglas de las vías en el Tech LEF

Todo archivo LEF debe terminar con la declaración END LIBRARY.

Cell LEF

Un archivo LEF de biblioteca de celdas (std cell LEF) contiene la información de las celdas lógicas de un Process Design Kit (PDK) dado. Un archivo LEF de std cells puede incluir las siguientes declaraciones:

[VERSION declaración]  
[BUSBITCHARS declaración]  
[DIVIDERCHAR declaración]  
[VIA declaración]  
[SITE declaración]  
[MACRO declaración]  
[PIN declaración]  
[OBS declaración]  
[BEGINEXT declaración]  
[END LIBRARY] 

Desktop View Ejemplo de un archivo Macro LEF

Las declaraciones del archivo cell LEF representan las geometrías que forman el layout de las std cells de la biblioteca del PDK. Cada rectángulo del archivo está asociado a una capa (LAYER) de metal y se define por un conjunto de dos puntos con coordenadas xy. Estos dos puntos son los vértices diagonalmente opuestos de la geometría: el primer par de coordenadas es el punto inferior izquierdo y el segundo par es el punto superior derecho.

Design LEF

El archivo Design LEF es una representación abstracta de un diseño ya sintetizado físicamente. Este LEF es similar al cell LEF, pero aplicado a un bloque diseñado. En este caso, el bloque entero se considera una macro.

Desktop View Ejemplo de un archivo Design LEF

OBS  
    LAYER layerName  
    RECT xy xy ;  
END  

La declaración OBS define un conjunto de obstrucciones (también llamadas bloqueos) en la macro. Normalmente las obstrucciones impiden el enrutamiento, excepto cuando un pin se superpone a una obstrucción (la geometría del puerto se superpone a la obstrucción). Por ejemplo, es posible definir un rectángulo grande como obstrucción de met1 y tener un puerto de met1 en medio de la obstrucción. El puerto todavía puede alcanzarse con una vía, siempre que la vía esté completamente dentro del puerto.

Desktop View Ejemplo de la vista abstracta de un diseño

Etapas del flujo digital que usan el archivo LEF

El archivo .lef se usa principalmente en la etapa de posicionamiento y enrutamiento (PnR) durante la síntesis física (Physical Synthesis) del flujo digital. En esta fase se crea el layout abstracto del circuito, incluyendo el posicionamiento de los componentes, el enrutamiento de las interconexiones y la definición de las capas de metal y vías.

Desktop View Diagrama de la etapa del flujo digital que usa archivos LEF

El archivo .lef contiene información esencial sobre las dimensiones y características físicas de los componentes, además de detalles sobre las capas de metal, vías, reglas de espaciado, ancho de las pistas y otra información relevante para la implementación física del circuito. Por lo tanto, el archivo .lef orienta a la herramienta de diseño físico en la generación del layout final del circuito.

Video

Referencias

https://www.ispd.cc/contests/18/lefdefref.pdf. Consultado el 24-jul-2023

http://coriolis.lip6.fr/doc/lefdef/lefdefref/LEFSyntax.html.. Consultado el 24-jul-2023