LEF(Library Exchange Format)는 standard cell과 macro의 추상 정보, 그리고 공정의 metal layer 정보를 담는 파일입니다. P&R tool이 cell의 내부 layout을 몰라도 배치와 routing을 수행할 수 있도록, 필요한 정보만 추상화하여 제공합니다.
LEF와 TECHLEF, Rule deck 파일을 보면, 실제 기하학적 미세 공정 수준을 파악 할 수 있습니다. 그냥 반도체 회사들이 말하는 2nm, 3nm 공정은 실제 기하학적 수치가 아니라, 우리 반도체는 2nm 수준이야~ 라고 말하는 마케팅에 가깝습니다.
Technology LEF 예제
# tech.lef
VERSION 5.8 ;
BUSBITCHARS "[]" ;
DIVIDERCHAR "/" ;
UNITS
DATABASE MICRONS 1000 ;
END UNITS
# Manufacturing grid
MANUFACTURINGGRID 0.001 ;
# Site 정의: standard cell이 배치되는 기본 단위
SITE core_site
CLASS CORE ;
SYMMETRY Y ;
SIZE 0.200 BY 1.080 ;
END core_site
# Metal layer 정의
LAYER M1
TYPE ROUTING ;
DIRECTION HORIZONTAL ;
PITCH 0.064 ;
WIDTH 0.032 ;
SPACING 0.032 ;
RESISTANCE RPERSQ 12.5 ;
CAPACITANCE CPERSQDIST 0.000035 ;
END M1
LAYER VIA1
TYPE CUT ;
SPACING 0.070 ;
END VIA1
LAYER M2
TYPE ROUTING ;
DIRECTION VERTICAL ;
PITCH 0.064 ;
WIDTH 0.032 ;
SPACING 0.032 ;
RESISTANCE RPERSQ 12.5 ;
END M2
# Via 정의
VIA VIA1_1x1 DEFAULT
LAYER M1 ;
RECT -0.016 -0.016 0.016 0.016 ;
LAYER VIA1 ;
RECT -0.016 -0.016 0.016 0.016 ;
LAYER M2 ;
RECT -0.020 -0.020 0.020 0.020 ;
END VIA1_1x1
Tech LEF 상세 설명
SITE는 standard cell이 배치되는 기본 격자입니다. SIZE 0.200 BY 1.080은 가로 0.2μm, 세로 1.08μm의 격자를 의미합니다. Cell 너비는 site 너비의 정수배여야 합니다.
LAYER는 metal routing layer를 정의합니다. DIRECTION은 preferred routing 방향(M1: horizontal, M2: vertical 등), PITCH는 track 간격, WIDTH는 기본 wire 폭, SPACING은 최소 간격입니다. RESISTANCE와 CAPACITANCE는 RC estimation에 사용됩니다.
VIA는 layer 간 연결 구조를 RECT(사각형 좌표)로 정의합니다.
Cell LEF 예제
# cells.lef
MACRO NAND2_X1
CLASS CORE ;
ORIGIN 0.000 0.000 ;
FOREIGN NAND2_X1 0.000 0.000 ;
SIZE 0.400 BY 1.080 ;
SYMMETRY X Y ;
SITE core_site ;
PIN A1
DIRECTION INPUT ;
USE SIGNAL ;
PORT
LAYER M1 ;
RECT 0.060 0.400 0.092 0.680 ;
END
END A1
PIN A2
DIRECTION INPUT ;
USE SIGNAL ;
PORT
LAYER M1 ;
RECT 0.160 0.400 0.192 0.680 ;
END
END A2
PIN ZN
DIRECTION OUTPUT ;
USE SIGNAL ;
PORT
LAYER M1 ;
RECT 0.300 0.400 0.340 0.680 ;
END
END ZN
PIN VDD
DIRECTION INOUT ;
USE POWER ;
PORT
LAYER M1 ;
RECT 0.000 1.000 0.400 1.080 ;
END
END VDD
PIN VSS
DIRECTION INOUT ;
USE GROUND ;
PORT
LAYER M1 ;
RECT 0.000 0.000 0.400 0.080 ;
END
END VSS
OBS
LAYER M1 ;
RECT 0.100 0.080 0.300 0.400 ;
RECT 0.100 0.680 0.300 1.000 ;
END
END NAND2_X1
Cell LEF 상세 설명
MACRO는 하나의 cell 또는 macro block을 정의합니다. SIZE 0.400 BY 1.080은 cell의 가로 × 세로 크기입니다. CLASS CORE는 standard cell임을 나타냅니다(macro는 CLASS BLOCK).
PIN은 외부에서 접근 가능한 연결점입니다. PORT 내의 RECT는 해당 pin의 metal 영역을 좌표(x1 y1 x2 y2)로 정의합니다. P&R tool은 이 좌표를 통해 routing을 연결합니다.
OBS(Obstruction)는 cell 내부에서 routing에 사용할 수 없는 영역입니다. Cell 내부의 metal이 이미 사용되고 있으므로, P&R tool은 이 영역을 피해 routing합니다.
Macro LEF의 특징
SRAM, PLL 등의 macro는 standard cell보다 훨씬 크고 복잡합니다. Pin이 여러 layer에 걸쳐 있을 수 있고, OBS도 여러 layer에 정의됩니다. CLASS BLOCK으로 선언하며, SYMMETRY에 따라 회전/flip 가능 여부가 결정됩니다.
정리
LEF는 Tech LEF(공정 정보)와 Cell LEF(cell 추상 정보)로 구성됩니다. P&R tool은 cell 내부의 상세 layout 없이 pin 위치와 OBS만으로 배치와 routing을 수행합니다. 이 추상화가 수백만 cell 규모의 설계를 가능하게 합니다.