Caltech 중급 양식
Caltech Intermediate Form| 파일 이름 확장자 | .disclosed(비활성화) |
|---|---|
| 포맷의 종류 | EDA 파일 형식 |
Caltech Intermediate Form(CIF; Caltech Intermediate Form)은 집적회선을 기술하기 위한 파일 형식입니다.CIF는 칩의 다른 레이어 상의 2차원 형상을 설명하는 데 유용한 제한된 그래픽 프리미티브 세트를 제공합니다.형식을 사용하면 계층적 설명이 가능하므로 표현이 간결해집니다.또한 간결하지만 사람이 읽을 수 있는 텍스트 형식입니다.
개요
CIF의 각 문장은 키워드 또는 문자에 이어 파라미터로 구성되며 세미콜론으로 끝납니다.공백으로 매개 변수를 구분해야 하지만 줄당 또는 필드의 특정 열에 대한 문 수에 제한이 없습니다.코멘트는 괄호로 둘러싸면 어디에나 삽입할 수 있습니다.
CIF 문장은 몇 가지뿐이며 기하학 또는 제어의 두 가지 범주 중 하나로 분류됩니다.지오메트리 문장은 다음과 같습니다.LAYER마스크 레이어를 전환하려면BOX직사각형을 그리려면WIRE길을 그리다ROUNDFLASH동그라미를 그리고POLYGON제멋대로 그림을 그리고CALL다른 지오메트리 문의 서브루틴을 그립니다.control 스테이트먼트입니다.DS서브루틴의 정의를 시작합니다.DF서브루틴의 정의를 끝내려면DD서브루틴의 정의를 삭제합니다.0통해.9추가 사용자 지정 정보를 포함하도록 합니다.ENDCIF 파일을 종료합니다.이러한 키워드는, 통상, 1 문자 또는 2 문자의 일의로 단축됩니다.
기하학.
그LAYER스테이트먼트(또는 레터)L)는 다음 문까지 이후의 모든 지오메트리에 사용할 마스크레이어를 설정합니다.에 이어LAYER키워드에는 단일 layer-name 파라미터가 지정됩니다.예를 들어 다음과 같은 명령어가 있습니다.
LCC
는 레이어를 CMOS 컨택컷으로 설정합니다(그림 참조).B.1(일부 일반적인 MOS 레이어명)을 참조해 주세요.
NM | nMOS 금속 |
NP | nMOS 폴리실리콘 |
ND | nMOS 확산 |
NC | nMOS 접점 |
NI | nMOS 임플란트 |
NB | nMOS 매립 |
NG | nMOS 오버글래스 |
CMF | CMOS 금속 1 |
CMS | CMOS 메탈 2 |
CPG | CMOS 폴리실리콘 |
CAA | CMOS 액티브 |
CSG | CMOS 선택 |
CWG | CMOS 웰 |
CC | CMOS 연락처 |
CVA | CMOS 경유 |
COG | CMOS 오버글래스 |
| 그림 B.1 MOS 프로세스의 CIF 레이어 이름. | |
그BOX스테이트먼트(또는 레터)B)는 지오메트리를 지정하는 가장 일반적인 방법입니다.직사각형의 길이, 너비, 중심 위치 및 회전(선택 사항)을 제공하여 직사각형을 설명합니다.형식은 다음과 같습니다.
B 길이 폭 xpos ypos [회전];
회전 필드가 없는 경우, 4개의 숫자는 중심이 (xpos, ypos)에 있고 길이가 x, 너비가 y인 상자를 지정합니다.서브루틴 스케일링이 지정되어 있지 않는 한(나중에 설명) CIF 내의 모든 숫자는 거리의 센티크론을 참조하는 정수입니다.옵션 회전 필드에는 원점에서 시작하는 벡터 끝점을 정의하는 두 개의 숫자가 포함됩니다.이 필드의 기본값은 (1, 0)입니다.이것은 오른쪽 포인팅 벡터입니다.따라서 회전절10 5는 정상에서 시계 반대 방향으로 26.6도 회전을 정의합니다.유사하게,10 -10시계 방향으로 45도 회전합니다.이 회전 벡터의 크기는 의미가 없습니다.
그WIRE스테이트먼트(또는 레터)W)는 일련의 포인트 사이를 흐르는 경로를 구축하는 데 사용됩니다.경로의 너비는 0이 아닐 수 있으며 모서리는 둥글게 표시됩니다.그 후WIRE키워드는 너비값과 엔드포인트를 나타내는 임의의 수의 좌표쌍을 나타냅니다.그림 B.2는 와이어의 예를 나타내고 있습니다.엔드포인트 및 코너 반올림은 암묵적으로 처리됩니다.
그ROUNDFLASH스테이트먼트(또는 레터)R)는 지름과 중심 좌표가 지정된 채워진 원을 그립니다.예를 들어 다음과 같습니다.
R 20 30 40;
는 (30, 40)을 중심으로 반경 10(20)의 원을 그립니다.
그POLYGON스테이트먼트(또는 레터)P)는 일련의 좌표 쌍을 가져와서 이들 쌍에서 채워진 폴리곤을 그립니다.채워진 폴리곤은 닫혀 있어야 하므로 첫 번째 및 마지막 좌표점은 암묵적으로 연결되어 있으므로 동일할 필요가 없습니다.다각형은 오목부 및 자가 교차를 포함하여 임의로 복잡할 수 있습니다.그림 B.3은 다각형 문장을 보여줍니다.
계층
그CALL스테이트먼트(또는 레터)C)는 패키지화된 기타 스테이트먼트의 컬렉션을 호출합니다.DS그리고.DF. 모든 서브루틴은 정의 시 번호가 부여되며 이 번호는 다음 URL에서 사용됩니다.CALL확인하려고 합니다.예를 들어,LAYER스테이트먼트와 aBOX스테이트먼트는 서브루틴4로 패키지화되어 다음 스테이트먼트가 됩니다.
C 4;
이 레이어에 박스가 그려집니다.
단순히 서브루틴을 호출하는 것 외에CALL문에는 서브루틴 내부의 지오메트리에 영향을 주는 변환을 포함할 수 있습니다.CIF 서브루틴에는 변환, 회전 및 미러링의 3가지 변환을 적용할 수 있습니다.번역은 문자로 지정됩니다.T뒤에 x, y 오프셋이 표시됩니다.이러한 오프셋은 서브루틴의 모든 좌표에 추가되어 마스크 전체에서 그래픽을 변환합니다.회전은 문자로 지정됩니다.R그 뒤에 x, y 벡터 끝점이 붙는데, 이는 의 회전절과 매우 유사하다.BOXstatement: 오리진까지의 행을 정의합니다.회전하지 않은 선에는 오른쪽을 가리키는 끝점(1, 0)이 있습니다.미러링은 다음 두 가지 형태로 사용할 수 있습니다.MXx와 를 거울로 비추다MYy를 비추다.미러링은 조금 혼란스럽습니다.MXx 좌표가 부정되어 Y축을 기준으로 효과적으로 미러링됩니다.
오브젝트에는 임의의 수의 변환을 적용할 수 있습니다.이러한 변환의 순서는 해당 변환을 적용하는 데 사용되는 순서입니다.그림 B.4는 몇 가지 예를 보여 주며, 변환 순서를 정하는 것의 중요성을 보여준다(그림에 주의).B.4c와 B.4d는 변환을 재배치하여 다른 결과를 도출합니다).
에서 사용하는 서브루틴의 정의CALL진술은 매우 간단합니다.패키징할 문장은 다음 사이에 동봉되어 있습니다.DS(정의 시작) 및DF(정의 완료) 문.에 대한 인수DS문은 서브루틴 번호와 서브루틴 스케일링 팩터입니다.에 대한 인수는 없습니다.DF진술.서브루틴의 스케일링 팩터는 서브루틴 내의 모든 값에 적용되는 분모 다음에 이어지는 분모로 구성됩니다.이 스케일링을 사용하면 더 적은 자릿수로 많은 숫자를 표현할 수 있으며 설계 재스케일링을 쉽게 할 수 있습니다.서브루틴은 정의에 적용되므로 각 호출에 대해 스케일 팩터를 변경할 수 없습니다.예를 들어 그림 B.4의 서브루틴은 다음과 같이 정식으로 기술할 수 있다.
DS 10 20 2, B10 20 5 5, W1 5 10 15, DF;
스케일 팩터는 20/2이므로 서브루틴 내의 모든 값에서 후행 0을 드롭할 수 있습니다.
CIF 서브루틴에서는 계층의 임의의 깊이를 사용할 수 있습니다.서브루틴을 사용하기 전에 정의된 경우 전송 참조가 허용됩니다.이 순서는 다음과 같습니다.
DS 10;...C 11; DF; DS 11; ...DF; C 10;
합법이지만 순서는 다음과 같습니다.
C 11, DS 11, ...DF;
이는 서브루틴 11의 실제 호출은 첫 번째 예에서 정의된 후까지 발생하지 않기 때문입니다.
통제
CIF 서브루틴은 삭제 후 재정의함으로써 덮어쓸 수 있습니다.그DDstatement(delete definition)는 단일 파라미터를 사용하여 이 값 이상의 숫자를 가진 모든 서브루틴을 삭제합니다.이 문은 여러 CIF 파일을 병합할 때 유용합니다. 설계를 이름 충돌 없이 정의, 호출 및 삭제할 수 있기 때문입니다.단, CAD 시스템의 일반적인 사용에는 권장하지 않습니다.
CIF에 대한 확장은 숫자 문장으로 수행할 수 있습니다.0통해.9공식적으로는 CIF의 일부가 아니지만, 이러한 확장을 사용하기 위한 특정 규칙이 발전하고 있습니다(그림 B.5 참조).
0x y 레이어N이름.; | 지정된 계층 및 위치에 명명된 노드 설정 |
0Vx1 y1 x2 y2 ...xnyn; | 벡터 그리기 |
2A"msg"Tx y; | 지정된 위치 위에 메시지 배치 |
2B"msg"Tx y; | 지정된 위치 아래에 메시지 저장 |
2C"msg"Tx y; | 지정된 위치에 메시지를 배치합니다. |
2L"msg"Tx y; | 지정된 위치에 메시지를 남겨둡니다. |
2R"msg"Tx y; | 지정된 위치에 메시지 배치 권한 |
4A로엑스 로우 하이엑스 하이엑스 하이엑스; | 셀 경계 선언 |
4B인스톨명; | 셀에 인스턴스 이름 연결 |
4Nsignalname x y; | 위치에서 신호에 레이블을 지정합니다. |
9셀명; | 셀 이름 선언 |
91인스톨명; | 셀에 인스턴스 이름 연결 |
94라벨 x y; | 지정된 위치에 레이블 배치 |
95레이블 길이 너비 x y; | 지정된 영역에 레이블 배치 |
| 그림 B.5 CIF에 대한 일반적인 사용자 확장자. | |
CIF 파일의 마지막 문장은END스테이트먼트(또는 레터)E). 파라미터는 포함되지 않으며 일반적으로 세미콜론은 포함되지 않습니다.
BNF 문법
다음은 cifFile이 최상위 문법 노드인 CIF 형식의 문법입니다.
cifFile ::= (공백* 명령어)semi)* endCommand blank* 명령어 ::= primCommand defDeleteCommand defStartCommand semi(공백* primCommand)?semi)* defFinishCommand primCommand ::= polygon boxCommand roundFlashCommand wireCommand callCommand callCommand userExtensionCommand comment polygonCommand 명령어 ::= "P" 경로 상자명령어:= "B" 정수 sep sep 포인트?roundFlashCommand ::= "R" integer sep point wireCommand ::= "W" integer sep path layer명령어 ::= "L" blank* shortname defStartCommand ::= "D" blank* "S" 정수?defFinishCommand ::= "D" blank* "F" defDeleteCommand ::= "D" blank* "D" integer callCommand ::= "C" 정수 변환 userExtensionCommand :::= digit userText comment :::= "(" ")" "comment텍스트 "" endCommand ::= "E" 변환 ::= (공백*("T" 점 "M" 공백* "X" "M" 공백* "Y" 점")* 경로 ::= 포인트 (소수점)*:= sInteger sep:= sep* "SEP" 정수:d 정수)*:=텍스트 ::= commentChar* 코멘트텍스트(' 댓글')텍스트 "" 코멘트텍스트 semi ::= blank* ";" sep ::= upperChar 공백 숫자 ::= "0" "1" ... "9" upperChar ::= "A" "B" ... "Z" 공백 ::= 숫자, upperChar, "-"("), "; "사용자:" ASCII 문자, "문자"를 제외한 문자:= "문자:"
「 」를 참조해 주세요.
- GDS II 스트림 포맷
- OASIS(오픈 아트웍 시스템 교환 규격)
- EDIF, 90년대에 제조된 벤더 뉴트럴 파일 형식
레퍼런스
- VLSI 설계의 컴퓨터 지원 - 부록 B: Caltech Intermediate Format by Steven M.루빈
- Hon, Robert W. and Sequin, Carlo H., "LSI 구현 가이드", 제2판, Xerox Palo Alto Research Center 기술 메모 SSL-79-7, 1980년 1월


