Промежуточная форма Калифорнийского технологического института
Расширение имени файла |
.cif |
---|---|
Тип формата | EDA Формат файла |
Caltech Intermediate Form ( CIF ) — это формат файла для описания интегральных схем . CIF предоставляет ограниченный набор графических примитивов, полезных для описания двумерных изображений. формы на разных слоях чипа. Формат допускает иерархическое описание, что делает представление кратким. Кроме того, это краткий, но удобочитаемый текстовый формат.
Обзор
[ редактировать ]Каждый оператор в CIF состоит из ключевого слова или буквы, за которыми следуют параметры и завершается с точкой с запятой. Параметры должны разделяться пробелами, но ограничений на количество операторов нет. в каждой строке или в отдельных столбцах любого поля. Комментарии можно вставлять где угодно, заключая их в круглые скобки.
Существует всего несколько операторов CIF, и они попадают в одну из двух категорий: геометрия или контроль.
Утверждения геометрии: LAYER
для переключения слоев маски, BOX
нарисовать
прямоугольник, WIRE
нарисовать путь, ROUNDFLASH
нарисовать круг, POLYGON
нарисовать произвольный
фигура, и CALL
для рисования подпрограммы других операторов геометрии.
Управляющие операторы DS
чтобы начать определение подпрограммы, DF
закончить
определение подпрограммы, DD
удалить определение подпрограммы, 0
через 9
к
включать дополнительную информацию, указанную пользователем, и END
для завершения файла CIF.
Все эти ключевые слова обычно сокращаются до одной или двух уникальных букв.
Геометрия
[ редактировать ]The LAYER
заявление (или письмо L
) устанавливает слой маски, который будет использоваться
для всей последующей геометрии до следующего такого утверждения.
После LAYER
Ключевое слово содержит один параметр имени слоя.
Например, команда:
L CC;
устанавливает слой в качестве слоя контакта КМОП (некоторые типичные названия слоев МОП см. на рис. B.1).
NM |
нМОП-металл |
NP |
нМОП поликремний |
ND |
диффузия nMOS |
NC |
контакт нМОП |
NI |
нМОП-имплантат |
NB |
nMOS похоронен |
NG |
nMOS-стекло |
CMF |
КМОП металл 1 |
CMS |
КМОП металл 2 |
CPG |
КМОП поликремний |
CAA |
КМОП активен |
CSG |
выбор КМОП |
CWG |
КМОП хорошо |
CC |
контакт КМОП |
CVA |
КМОП через |
COG |
КМОП-остекло |
РИСУНОК B.1 Имена слоев CIF для процессов MOS. |
The BOX
заявление (или письмо B
) — наиболее часто используемый способ
уточнение геометрии.
Он описывает прямоугольник, задавая его длину, ширину, центральное положение и необязательный поворот.
Формат следующий:
B length width xpos ypos [rotation] ;
Без поля вращения четыре числа обозначают прямоугольник, центр которого равен
at ( xpos , ypos ) и длина поперек по x и ширина по y.
Все числа в CIF являются целыми числами, обозначающими расстояние в сантимикронах, за исключением случаев, когда подпрограмма
указано масштабирование (описано позже).
Необязательное поле поворота содержит два числа, которые определяют конечную точку вектора.
начиная с начала.
Значением по умолчанию этого поля является (1, 0), что является вектором, указывающим вправо.
Таким образом, пункт о ротации 10 5
определяет поворот на 26,6 градусов против часовой стрелки от нормального.
Сходным образом, 10 -10
повернется по часовой стрелке на 45 градусов.
Обратите внимание, что величина этого вектора вращения не имеет значения.
The WIRE
заявление (или письмо W
) используется для построения
путь, проходящий между набором точек.
Путь может иметь ненулевую ширину и закругленные углы.
После WIRE
ключевое слово приходит значение ширины, а затем произвольное
количество пар координат, описывающих конечные точки.
На рисунке B.2 показан образец провода.
Обратите внимание, что конечная точка и скругление углов обрабатываются неявно.
The ROUNDFLASH
заявление (или письмо R
) рисует заполненный
круг, учитывая диаметр и координату центра. Например, утверждение:
R 20 30 40;
нарисует круг радиусом 10 (диаметром 20) с центром в точке (30, 40).
The POLYGON
заявление (или письмо P
) занимает серию
пары координат и рисует из них заполненный многоугольник.
Поскольку заполненные многоугольники должны быть замкнуты, первая и последняя точки координат
неявно связаны и не обязательно должны быть одинаковыми.
Полигоны могут быть сколь угодно сложными, включая вогнутость и самопересечение.
Рисунок B.3 иллюстрирует оператор многоугольника.
Иерархия
[ редактировать ]The CALL
заявление (или письмо C
) вызывает коллекцию
других заявлений, которые были упакованы с DS
и DF
.
Всем подпрограммам присваиваются номера, когда они определены, и эти номера используются в
тот CALL
чтобы идентифицировать их.
Если, например, LAYER
заявление и BOX
заявление
упакованный в подпрограмму 4, то оператор:
C 4;
приведет к тому, что коробка будет нарисована на этом слое.
Помимо простого вызова подпрограммы, CALL
заявление может включать в себя
преобразования, влияющие на геометрию внутри подпрограммы.
К подпрограмме в CIF можно применить три преобразования: перемещение, вращение и зеркальное отображение.
Перевод указан как буква T
за которым следует смещение x, y.
Эти смещения будут добавлены ко всем координатам в подпрограмме, чтобы перевести ее
графика на маске.
Вращение указывается буквой R
за которым следует конечная точка вектора x, y
это очень похоже на положение о ротации в BOX
оператор определяет линию до начала координат.
Неповернутая линия имеет конечную точку (1, 0), которая указывает вправо.
Зеркальное отображение доступно в двух формах: MX
отразить в x и MY
отразить в y.
Зеркальное отображение немного сбивает с толку, потому что MX
вызывает отрицание x
координата, которая эффективно отражает ось y.
К объекту и их указанному порядку можно применить любое количество преобразований. — это последовательность, которая будет использоваться для их применения. На рисунке B.4 показаны некоторые примеры, иллюстрирующие важность упорядочения преобразования (обратите внимание, что рисунки B.4c и B.4d дают разные результаты за счет перестановка преобразований).
Определение подпрограмм для использования в CALL
утверждение довольно простое.
Операторы, подлежащие упаковке, заключаются между DS
(определение
начать) и DF
(окончание определения) высказывания.
Аргументы DS
оператором являются номер подпрограммы и коэффициент масштабирования подпрограммы.
Нет никаких аргументов в пользу DF
заявление.
Коэффициент масштабирования для подпрограммы состоит из числителя, за которым следует знаменатель.
это будет применено ко всем значениям внутри подпрограммы.
Такое масштабирование позволяет выражать большие числа меньшим количеством цифр и облегчает
масштабирования дизайна.
Масштабный коэффициент не может быть изменен при каждом вызове подпрограммы, поскольку он
применяется к определению.
В качестве примера подпрограмму, показанную на рис. Б.4, можно формально описать следующим образом:
DS 10 20 2; B10 20 5 5; W1 5 5 10 15; DF;
Обратите внимание, что масштабный коэффициент равен 20/2, что позволяет отбросить конечный ноль. из всех значений внутри подпрограммы.
В подпрограммах CIF допускается произвольная глубина иерархии. Ссылки вперед разрешены при условии, что подпрограмма определена до ее использования. Таким образом, последовательность:
DS 10; ... C 11; DF; DS 11; ... DF; C 10;
законно, но последовательность:
C 11; DS 11; ... DF;
нет. Это связано с тем, что фактический вызов подпрограммы 11 не не возникает до тех пор, пока не будет определено в первом примере.
Контроль
[ редактировать ]Подпрограммы CIF можно перезаписать, удалив их, а затем переопределив.
DD
оператор (определение удаления) принимает один параметр и
удаляет каждую подпрограмму, номер которой больше или равен этому значению.
Этот оператор полезен при объединении нескольких файлов CIF, поскольку проекты могут быть
определяются, вызываются и удаляются, не вызывая конфликтов имен.
Однако его не рекомендуется для общего использования в системах САПР.
Расширения CIF можно выполнить с помощью числовых операторов. 0
через 9
.
Хотя официально он не является частью CIF, для него были разработаны определенные соглашения.
использование этих расширений (см. рис. Б.5).
0 слой xy N имя ; |
Установить именованный узел на указанном слое и в указанной позиции |
0V x1 y1 x2 y2 ... xn ; |
Рисовать векторы |
2A "сообщение" T ху ; |
Разместить сообщение выше указанного места |
2B "сообщение" T ху ; |
Разместить сообщение ниже указанного места |
2C "сообщение" T ху ; |
Поместить сообщение по центру указанного места |
2L "сообщение" T ху ; |
Поместить сообщение слева от указанного места |
2R "сообщение" T ху ; |
Разместить сообщение справа от указанного места |
4A lowx lowy highx highy ; |
Объявить границу ячейки |
4B имя экземпляра ; |
Прикрепить имя экземпляра к ячейке |
4N имя сигнала xy ; |
Маркирует сигнал в определенном месте |
9 имя ячейки ; |
Объявить имя ячейки |
91 имя экземпляра ; |
Прикрепить имя экземпляра к ячейке |
94 метка ху ; |
Разместить этикетку в указанном месте |
95 длина этикетки ширина xy ; |
Разместить этикетку в указанной области |
РИСУНОК B.5 Типичные пользовательские расширения CIF. |
Последним выражением в файле CIF является END
заявление (или письмо E
).
Он не принимает никаких параметров и обычно не включает точку с запятой.
БНФ-грамматика
[ редактировать ]Ниже приведена грамматика формата CIF, где cifFile является узлом грамматики верхнего уровня.
cifFile ::= (blank* command? semi)* endCommand blank* command ::= primCommand | defDeleteCommand | defStartCommand semi (blank* primCommand? semi)* defFinishCommand primCommand ::= polygonCommand | boxCommand | roundFlashCommand | wireCommand | layerCommand | callCommand | userExtensionCommand | commentCommand polygonCommand ::= "P" path boxCommand ::= "B" integer sep integer sep point (sep point)? roundFlashCommand ::= "R" integer sep point wireCommand ::= "W" integer sep path layerCommand ::= "L" blank* shortname defStartCommand ::= "D" blank* "S" integer (sep integer sep integer)? defFinishCommand ::= "D" blank* "F" defDeleteCommand ::= "D" blank* "D" integer callCommand ::= "C" integer transformation userExtensionCommand ::= digit userText commentCommand ::= "(" commentText ")" endCommand ::= "E" transformation ::= (blank* ("T" point |"M" blank* "X" |"M" blank* "Y" |"R" point)*)* path ::= point (sep point)* point ::= sInteger sep sInteger sInteger ::= sep* "-"? integerD integer ::= sep* integerD integerD ::= digit+ shortname ::= c c? c? c? c ::= digit | upperChar userText ::= userChar* commentText ::= commentChar* | commentText "(" commentText ")" commentText semi ::= blank* ";" blank* sep ::= upperChar | blank digit ::= "0" | "1" | ... | "9" upperChar ::= "A" | "B" | ... | "Z" blank ::= any ASCII character except digit, upperChar, "-", "(", ")", or ";" userChar ::= any ASCII character except ";" commentChar ::= any ASCII character except "(" or ")"
См. также
[ редактировать ]- Формат потока GDS II
- OASIS (стандарт обмена открытыми графическими системами)
- EDIF , независимый от поставщиков формат файлов, созданный в 90-х годах.
Ссылки
[ редактировать ]- Компьютерные средства для проектирования СБИС - Приложение B: Промежуточный формат Калифорнийского технологического института, Стивен М. Рубин
- Промежуточная форма Калифорнийского технологического института для описания макета LSI
- Сначала на CIF
- Хон, Роберт В. и Секвин, Карло Х., «Руководство по внедрению LSI», 2-е издание, техническая записка исследовательского центра Xerox Palo Alto SSL-79-7, январь 1980 г.