Теперь, когда у Вас есть схема, пришло время разработать макет топологии. Используйте команду New Cell (в меню Cell), чтобы открыть новый диалог создания ячейки. Введите "nand2" как название ячейки и "layout" как представление. Обратите внимание, что состав панели компонентов изменится от символов схем до примитивов топологии. Заданная по умолчанию технология - "mocmos" (CMOS MOSIS), она может быть изменена во всплывающим меню наверху панели компонентов. У "mocmos" технологии есть много опций, таких как число металлических слоев. Чтобы увидеть эти опции, используйте команду Preferences (в меню File), и выберите пункт "Technology". В разделе CMOS MOSIS, установите число металлических слоев в 6. (это установки сохранятся, и вам не придется менять его снова в будущих сеансах Electric.) См. раздел 7-4-2, чтобы узнать больше о технологии CMOS MOSIS.
Ваша цель состоит в том, чтобы нарисовать макет топологии, подобный показанному здесь. Важно выбрать подходящий стиль макета так, чтобы различные ячейки можно было "зафиксировать вместе." В стиле этого проекта, Power b Ground, проходят горизонтально в Metal-2 cверху и cнизу ячейки, соответственно. Интервал между Power и Ground - 80 единиц. Никакие другие Metal-2 не используются в ячейке, разрешая позже проектировщику подключать сверху ячейки используя Metall-2. Транзисторы nMOS занимают нижнюю половину ячейки, pMOS транзисторы занимают верхнюю часть. У каждой ячейки есть по крайней мере один вывод и контакт подложки. Вводам и выводам соответствует Metal-1 экспорт в пределах ячейки.
Вы можете найти удобным сделать другой вариант макета топологии, чем на рисунке, когда вы будете создавать свой логический вентиль. Используйте команду Place Cell Instance (в меню Cell), и выберите "inv {lay}". Затем щелкните ЛК, чтобы разместиь этот инвертор в окне создаваемого макета. Чтобы рассмотреть содержимое инвертора, выделите инвертор и используйте команду One Level Down (в меню Cell / Expand Cell Instances), или нажмите на значок "открытый глаз" в панели инструментов.
Instance инвертора - только узел, и его содержимое недоступно редактированию. Чтобы извлечь содержимое, так, чтобы индивидуальные узлы и дуги стали доступны для редактирования, используют команду Extract Cell Instance (в меню Cell). Отметьте, что эта команда сделает копию ячейки инвертора в вашей ячейке И-НЕ. Изучите инвертор, пока не поймете что представляет собой каждая его часть.
Начните создавать ваши nMOS транзисторы. Повторим, что nMOS транзистор сформирован, когда поликремний пересекает зону N-диффузии. N-диффузия представлена в Electric как зеленое пространство, окруженное пунктирным желтым уровнем слоя N-типа все в пределах штрихового коричневого фона P-well. Этот набор уровней представлен в Electric как узел транзистора с 3 терминалами. Переместите мышь в панель компонентов на левой стороне экрана.
Когда вы перемещаете мышь по различным узлам, их имена появляются в строке состояния внизу экрана. Нажмите ЛК на элементе N-Transistor, и щелкните еще раз в окне макета, чтобы разместить транзистор. Для вращения транзистора так, чтобы красный polisilicon элемент был ориентирован вертикально, используйте команду Edit->Rotate->90 Degrees Counterclockwise, или нажмите Ctrl-J. Эти два nMOS транзистора включены последовательно в логическом вентиле 2И-НЕ, таким образом мы хотели бы сделать каждый шире, для компенсации. Двойной щелчок ЛК на транзисторе (или Ctrl-I). В диалоге свойств узла, скорректируйте ширину на 12.
Мы нуждаемся в двух транзисторах, содиненных последовательно, поэтому скопируйте и вставьте транзистор, который вы выделили. Вы можете также дублировать выбранный объект командой Duplicate (в меню Edit) или нажав Ctrl-M. Перетащите эти два транзистора длинными сторонами друг к другу так, стобы они не касались. Нажмите на зоне диффузии (исток/сток) одного из транзисторов, и выделите ПК сток другого транзистора, чтобы соединить их. Обратите внимание, что Electric использует узлы и дуги в макете ИС так же как и при создании схемы. После соединения, составьте транзисторы вместе чтобы поликремневый затвор имел ширину 3 единицы (посмотрите как сделано ниже). Для Вашего удобства включите сетку привязки (нажмите Ctrl-G). Сетка по умолчанию это маленькие точки через каждую единицу и большие через 10 единиц. Вы можете изменить сетку командой Preferences (в меню File, секции "Display", панель "Grid"). Измените "Frequency of bold dots" ("Частота толстых точек") на 7, так как в ячейки библиотеки шаг проводников равен 7.
Вы можете перемещать объект с помощью клавиш со стрелками на клавиатуре. Дистанция перемещения по умолчанию 1 единица, но это можно изменить используя иконки "Full", "Half", и "Qtr" на панели инструментов (или нажмите клавиши "f", "h", или "q" ). Вы можете менять это в любое время. Если Вы создадите структуру, которая имеет чётное количество единиц в размере, то её центр будет находиться на половине интервала. (Для перемещения объекта на 7 единиц за клик, или, что эквивалентно большим точкам, нажмите Control и стрелку, нужную Вам, Если Вы вначале нажмете "h" а затем стрелку то предмет переместиться только на половину дистанции - 3.5 единиц в нашем случае)
В Electric есть интерактивный design rule checker (DRC). Если Вы пометите элементы слишком близко друг к другу, то в окне "Messages" выведется ошибка. Попробуйте поставить два транзистора на расстоянии 2 единиц друг от друга. Вы увидите ошибку DRC. Верните транзисторы назад на установленную ширину. Если Вы сомневаетесь то используйте команду Check Hierarchically для перепроверки. (в меню Tool / DRC), или нажмите клавишу F5.
Далее создайте контакты для области N-diffusion в слое Metal-1. Диффузионную (Diffusion) область мы будем называть "active". Поместите узел Metal-1-N-Active-Contact в окне топологии, двойной клик ЛК и измените размер по Y на 12. Вам необходим второй контакт с другого края последовательного набора nMOS транзисторов, создайте дубликат контакта (нажмите Ctrl-M). Поместите контакты вблизи каждого края транзисторного набора и нарисуйте диффузионную линию чтобы соединить транзисторы.
Для быстрого соединения многих касающихся элементов используйте "auto router" (автоматический маршрутизатор). Для этого, выберите все объекты для маршрутизирования (нажмите курсор мыши и заметите необходимые объекты в прямоугольник и отпустите клавишу мыши) и используйте команду Auto-Stitch Highlighted Now (в меню Tool / Routing), или нажмите клавишу F2. Дополнительную информацию об auto-stitching смотрите в разделе 9-6-2.
Один контакт присоединён к транзистору, между металлом и поликремнием надо оставить промежуток только 1 единицу. Используйте design rule checker (DRC-проверка правил проектирования) для выяснения где возможно замыкание. Аналогично создайте два параллельных транзистора pMOS и сделайте контакт между P-diffusion и Metal-1. Теперь схема должна выглядеть как эта.
Нарисуйте проводники для соединения поликремневых вентилей, сформируйте входы "a" и "b", и выход "y" в слое Metal-1. Добавьте в слое Metal-2 шины источника и земли. Возможно создать проводники Metal-2, создав узел "Metal-2-Pin" и сделав клик правой клавишей мыши на проводнике. Используйте сетку для точного размещения шин Metal-2 на расстоянии 80 единиц. Это то же расстояние, что и для шин источник/земля в инверторе. Если два объекта выбраны то в диалоге Properties (Ctrl-I) указана дистанция между ними.
ИСпользуя "Metal-1-Metal-2-Con", соединяют шины в слоях Metal-1 и Metal-2. Выберите контакт и сделайте правый клик мышкой для соединения его с землёй. Electric может автоматически создавать соединения. Создайте необходимые соединения с источником и землей. Сделайте отступы для источника и земли в 2 единицы около содержимого ячейки(встроенный карман), любой размер ячейки должен сцепляться с содержимым ячейки разделённый промежутками в 4 единицы (удовлетворяет DRC).
Для карманных контактов требуется диодный переход между ячейкой и source/drain диффузией инверсного базиса. Вам надо поместить N-карманный контакт и P-карманный контакт для каждой ячейки. Часто удобнее поместить "Metal-1-N-Well-Con" около места назначения (около VDD), далее правый клик мыши на шине питания для создания связи. Потом тащите контакт пока он не пересечётся с межсоединением, формируя N+ диффузионную область, Metal-1, Metal-1-Metal-2-Con, Metal-2. Повторите это для P-кармана.
В нашем проекте мы соединяем вентили горизонтальными линиями слоя Metal-2. Слой Metal-2 не подсоединён непосредственно к затвору поликремния. Далее, надо добавить контакты от входного затвора поликремния к Metal-1. Поместите узел "Metal-1-Polysilicon-1-Con" около левого поликремневого затвора. Присоедините поликремний и тащите его через затвор. Между контактами Metal-1 и выходом "y" должно быть расстояние в 3 единицы. Добавьте короткое соединения Metal-1 возле контакта и клемму (landing pad). Вы можете сделать соединение от контакта к поликремнию позже чем Metal-1. Укажите Electric явно какой уровень Вам требуется, выберите дугу Metal-1
в закладке Компонентов (дуга имеет красную границу). Теперь нарисуйте Ваш проводник.
Electric не придерживается особого мнения по поводу полярности карманов и подложки; поэтому генерирует как n- так p-карманные топологии (layers). В нашем технологическом процессе используются p-подложки. P-карманы изображаются наклонными коричневыми линиями и на них можно не обращать внимание. N-карманы обозначаются маленькими коричневыми точками, которые обозначают карманы на чипе. Electric только генерирует достаточно карманов, которые окружают n и p диффузионные регионы на чипе. (Electric создает карманные контакты шириной только 11 единиц! Возможно возникнет DRC ошибка, но работать будет всё правильно. Карманы должны быть 12 единиц ширины чтобы пройти DRC проверку). Хорошая идея создать прямоугольный карман полностью покрывающий каждую ячейку, но когда речь идет о нескольких ячейках Вы не должны оставлять пространство между карманами так как это ошибка. Кликните на "Pure" внутри закладки Компоненты и выберите "N-Well-Node" или "P-Well-Node". Измените размер, чтобы он полностью покрывал существующий карман, используйте команду Interactively (в меню Edit / Size) или просто нажмите Ctrl-B. Вам может потребоваться выбирать либо транзистор либо проводник, именно то что Вам надо. Решение этой проблемы - использование команды Make Selected Hard (Сделать Выбор Трудным) (в меню Edit / Selection) чтобы сделать узел hard-to-select. Другой способ использования hard-to-select - включить режим "special select"("специальный выбор"). (Кликните на стрелку с буквами "SP" в меню инструментов). Так же используйте команду Make Selected Easy (Сделать выбор Простым) если Вы хотите вернуть простой режим выбора. У Electric есть команда Coverage Implants Generator (в меню Tool / Generation) которая автоматически создаёт hard-to-select узлы (pure layer nodes) для N и P карманов. Эта команда для близкой к простой геометрии в нутри ячейки.
Создание экспорта для ячейки. Если Вы планируете использовать ячейку в другом проекте необходимы экспорты (exports) для определения мест через которые ячейка подключается к другой ячейке. Кликните на окончании короткой входной линии Metal-1 которая находится слева от затвора и выберите узел Metal-1-Pin. Если Вы случайно выбрали дугу Metal-1, кликните где нибудь для отмены выделения и попробуйте снова выделить нужный пин (pin). Так же можно попробовать удерживать клавишу Control для перебора всех объектов находящихся под курсором. Введите имя входа для экспорта "a" (нажмите Ctrl-E для вывода диалога "Экспорт"). Повторите то же для входа "b". Экспортируйте выход "y" для металлической линии соединения транзисторов nMOS и pMOS. Вы можете поместить дополнительный pin к выходной линии и экспортировать этот pin как "y". Ещё экспортируйте "vdd" и "gnd" с дуги в слое Metal-2; они должны быть типа источник и земля, соответственно. Electric воспринимает "vdd" и "gnd" как специальные имена, надо осторожно их использовать. Теперь нарисуйте ваши проводники.