Реализация символьного представления компонента "Инвертор"
Создание символьного представления компонента "Инвертор". Построение принципиальной схемы СБИС, основанной на КМОП-структуре. Прорисовка многоугольной и круглой формы символа. Задание, размещение и установка внешних его выводов. Описание имени метки.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 24.01.2016 |
Размер файла | 1,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Размещено на http://www.allbest.ru
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение высшего профессионального образования
«Инженерно-техническая академия южного федерального университета»
Институт компьютерных технологий и информационной безопасности
Кафедра САПР
Пояснительная записка к курсовой работе
по курсу «Автоматизация проектирования СБИС»
Выполнил
ст-т группы КТсз 6-5 Кудрявцев Павел Александрович
Принял
ас-т Запорожец Дмитрий Юрьевич
Таганрог 2016
Постановка задачи
Используя САПР Cadence:
Создать символьное представление компонента «Инвертор».
Построить принципиальную схему СБИС, основанной на КМОП-структуре.
Построить топологию СБИС, реализующую заданную логическую функцию.
Теоретическая часть
САПР Cadence
Мир сегодня невозможно представить без компьютеров. Все сегодня знают, что главная деталь каждого компьютера - это процессор, который совершает все вычислительные операции. Пользователи требуют все новых возможностей, поэтому производители постоянно выпускают новые и новые модели процессоров.
Каждый новый процессор - это многолетний труд тысяч и людей, ведь современный чип содержит сотни миллионов транзисторов, не за горами и чипы с миллиардом элементов. Изготовителям приходится иметь дело со слоями материала толщиной всего в несколько молекул. Естественно, нет никакой возможности отлаживать подобный проект на уровне прототипа, необходимо осуществлять проектирование нового процессора с использованием средств компьютерного моделирования. Это многоступенчатый процесс - от создания логической структуры процессора до разработки корпуса микросхемы и подготовки шаблона для литографии. Все подобные расчеты делаются с помощью специального программного обеспечения - систем автоматизированного проектирования (САПР), а создают это программное обеспечение такие компании, как Cadence Design Systems (далее Cadence). В каталоге компании Cadence большое количество программных средств, таких как средства проектирования печатных плат, средства высокоуровневой верификации, системы проектирования цифровых и аналоговых схем, средства физической верификации.
САПР Cadence используют сегодня многие ведущие производители микроэлектроники. "Наша компания занимается выпуском программного обеспечения, которое позволяет пройти весь маршрут проектирования - от идей конструкторов до реализации устройства в виде коммерческого продукта", - утверждает руководство российского представительства компании Cadence.
Несмотря на серьезное отставание технологической базы российской микроэлектроники от уровня развитых западных стран, российские предприятия и центры проектирования имеют устойчивый интерес к продуктам Cadence, в частности, расположенные в г. Зеленограде предприятия электронной индустрии. Именно поэтому компания Cadence инвестирует свои средства в Российский рынок микроэлектроники и не только поставляет им свою продукцию, но и ведет активную программу развития и поддержки микроэлектроники в российских вузах, предоставляя учебным заведениям свои продукты и обучение.
Комплементарные МОП-структуры
Комплементарные МОП-структуры относятся к широкому классу логических схем, называемых статическими схемами, в которых в каждый момент времени каждый выход элементов соединяется либо с питанием (vdd), либо с питанием с малым сопротивлением (vss). Кроме того, предполагается, что выходы элементов в любой момент времени описываются булевой функцией в реализованной схеме.
Функция цепи PUN обеспечивает соединение между выходом и vdd всегда, когда выход логического элемента равным 1. Подобным образом функция в цепи PDN является соединением с выходом vss, когда выход логического элемента предполагается равным 0. Данные цепи задаются по взаимоисключающему принципу. В одном режиме ток проводит только одна цепь.
При создании данных цепей необходимо иметь ввиду следующие соображения:
1) Транзистор можно рассматривать как ключ, управляемый отпирающим импульсом;
2) Ключ n-МОП транзистора включен, когда управляющий сигнал имеет высокий уровень (1) и выключен, когда управляющий сигнал имеет низкий уровень;
3) р-МОП транзистор действует как обратный ключ ;
4) Разгрузочная сеть PDN создается с использованием n-МОП устройств, а р-МОП транзистор применяется в нагрузочной цепи.
При создании логических функций следует руководствоваться следующим набором правил:
1) n-МОП устройства соединенные последовательно соответствуют функции И, n-МОП устройства соединенные параллельно - функции ИЛИ
2) р-МОП устройства соединенные последовательно соответствуют функции ИЛИ-НЕ, р-МОП устройства соединенные параллельно - функции И-НЕ
3) Используя теорему де Моргана можно показать, что нагрузочная и разгрузочная сети комплементарных МОП-структур являются дуальными. Это означает, что параллельное соединение транзисторов в нагрузочной цепи соответствуют последовательному соединению соответствующих устройств в разгрузочной цепь и наоборот, следовательно для создания К-МОП элемента одна из цепей , например PDN реализуется с использованием и параллельного и последовательного соединений. Другая сеть строится путем использования принципа дуального прохода по иерархическому представлению, замена последовательных подсетей параллельными, а параллельных - последовательными;
4) Полный К-МОП элемент создается за счет объединения цепи PDN и PUN;
5) Комплементарный элемент по своей природе является инвертирующим, поэтому он реализует такие функции как НЕ-И или НЕ-ИЛИ;
6) Реализация не инвертирующих булевых функций таких как И, ИЛИ, исключающее ИЛИ требует дополнительного каскада инверторов;
7) Число транзисторов, требуемое для реализации логических элементов с n входами равно 2n.
Практическая часть
Создание символьного представления компонента
В окне редактора проектирования символа (вместо окна редактора проектирования схем), набираем для имени ячейки представление symbol или указываем программный пакет Composer-Symbol. Для этого в окне командного интерпретатора CIW из меню Tools вызывается команда Library Manager.
Рис. 1. Открытие окна Library Manager
В появившемся окне Library Manager выбираем имя библиотеки (library) и далее в основном меню - команду File>New>Cell View для создания нового представления.
В строке Cell Name вводим имя ячейки. В строке, требующей указать программу графического редактора (Tool), вводим Composer-Symbol, при этом автоматически в строке View Name появится слово symbol (символ) (рис. 31) или, если в строке, требующей указать имя представления (View
Name), вводится слово symbol (символ), то при этом автоматически в строке Tool появится программа Composer-Symbol.
После нажатия ОК на экране дисплея откроется окно редактора символов.
Рис. 2. Окно графического редактора символов
Из меню Add вызываем команду Shape>Polygon. Далее необходимо нарисовать три отрезка, образующих треугольник инвертора.. Для описания другой формы символа, например окружности, выбираем Add>Shape>Сircle - прорисовка окружности в конце символа инвертора. Чтобы нарисовать окружность, вводим щелчком мышки точка центра окружности, затем указываем точку в стороне для определения радиуса окружности.
Рис. 3. Прорисовка многоугольной и круглой формы символа
Чтобы ввести внешние выводы символа, необходимо выполнить следующие действия:
в окне графического редактора символов выбираем Add>Pin;
заполняем появившуюся форму окна Add Pin, набрав имена внешних выводов, разделив их пробелами.
В окне Add Pin в графе Direction выбираем из списка направление сигнала (Input(вход)/Output(выход));
теперь курсором можно указать точку размещения входного вывода;
Рис. 4. Задание, размещение и установка внешних выводов символа
Для описания меток символа вызываем команда Label из меню Add.
В качестве имени метки появится интерпретирующая метка [@instanceName]. Редактор интерпретирует метку, задавая ей уникальное имя, когда символ размещается на схематике . Квадратные скобки [ ] ограничивают выражение замены. Любой текст в квадратных скобках не интерпретируется. Символ @ показывает начало выражения замены, например, [@instanceName].
Чтобы добавить обычную метку, устанавливаем Label Type в значение normalLabel, а LabelChoice в Logical Label.
Затем вводим имя метки inv.
Рис. 5. Описание имени метки
Для определения прямоугольника, ограничивающего символ:
вызываем команду Selection Box из меню Add;
указываем Automatic на появившейся форме. Ограничивающий прямоугольник вокруг символа ставится автоматически.
Для ввода комментариев выбираем в окне графического редактора команда Add>Note>Shape. Текст комментариев вводим в окне Add Note Shape.
Для установки начала координат символ размещается в центре символьного окна:
вызываем команду Origin из меню Edit;
привязку начала координат к входному внешнему выводу выполняем щелчком левой кнопки мышки на выводе А.
Рис. 6. Ограничивающий прямоугольник и комментарии к символу
Для сохранения символа в базе данных вызываем команду Save в меню Design.
Рис. 7. Сохранение символа
Построение принципиальной схемы СБИС, основанной на КМОП-структуре
Чтобы открыть окно редактора схемного проектирования, набираем для имени ячейки представление schematic или указываем программный пакет Composer-Schematic. Для этого в окне командного интерпретатора CIW из меню Tools вызываем команду Library Manager.
Рис. 8. Открытие окна Library Manager
В появившемся окне Library Manager выбираем имя библиотеки (library) и далее в основном меню - команду File>New>Cell View для создания нового представления.
В строке Cell Name вводим имя ячейки. В строке, требующей указать программу графического редактора (Tool), вводим Composer-Schematic, при этом автоматически в строке View Name появится слово schematic.
Рис. 9. Новое представление Cell View
Рис. 10. Окно графического редактора схем
В первую очередь создадим инвертор. Для этого понадобится p-МОП-транзистор и n-МОП-транзистор. Для этого в меню Add следует выбрать вкладку Instance, после чего необходимо выбрать из библиотек необходимые элементы и части схемы. p-МОП находится в библиотеке (Library) pCells, ячейке (Cell) pmos, представление (View) symbol. n-МОП находится в библиотеке (Library) pCells, ячейке (Cell) nmos, представление (View) symbol . Также нам понадобятся элементы, обозначающие сигнал высокого уровня (VDD) и обозначающий сигнал низкого уровня (GND). Данные элементы находятся в библиотеке (Library) basic, ячейке (Cell) VDD и GND соответственно, представление (View) symbol.
Последовательно разместим данные символы в рабочей области редактора.
Рис. 11. Расположение символов
Необходимо добавить выводы будущего инвертора. Для этого в меню Add выберем пункт Pin. В появившееся окне в поле Pin names укажем имя контакта «А». В поле Direction выбирается тип контакта. В данном случае выберем input (входящий сигнал). Не закрывая окно, разместим данный контакт. После этого в окне Add Pin создадим контакт c именем Pin names «B» и типом контакта Direction: output.
Далее необходимо указать связи между элементами. Для этого на левой панели инструментов выбираем иконку (Wire). Левым щелчком мыши указываем точки, которые необходимо соединить.
Рис. 12. Схема инвертора
символ метка компонент инвертор
Проведем верификацию построенного инвертора. Для этого на панели инструментов нажмем кнопку (Check and Save). При наличии ошибок система выдаст окно сообщения, иначе сохранение подтвердится звуковым сигналом.
Для дальнейшего использования инвертора как элемента нам необходимо произвести процедуру свертки. Для этого в меню вызовем Design > Create Cellview > From Cellview. В последовательно появившихся двух окнах нажимаем Ok.
После генерации система откроет окно схемного редактора с созданным символом инвертора. Выбрав в окне редактора [@partName], нажимаем на панели инструментов кнопку Properties (Свойства) и меняем имя элемента. Нажимаем ОК, (Save) и закрываем окно приложения.
Рис. 13. Свернутый символ
Реализуем сначала загрузочную, а затем и разгрузочную цепи. Разместим и соединим необходимые элементы. Для загрузочной цепи используем pmos транзисторы, для разгрузочной - nmos транзисторы.
Рис. 14. Реализация загрузочной цепи для логической функции ИЛИ
Рис. 15. Реализация разгрузочной цепи для логической функции ИЛИ
Для того чтобы на выходе сигнал не инвертировался, добавим из нашей библиотеки созданный ранее инвертор. Добавим недостающие межсоединения. Конечный вид реализации логической функции ИЛИ. Проведем верификацию построенной схемы. Для этого на панели инструментов нажмем кнопку (Check and Save).
Рис. 16. Реализация логической операции ИЛИ
Построение топологии СБИС, реализующую заданную логическую функцию
Для запуска редактора топологии необходимо выполнить в командной строке (Shell) команды cd cell_design далее layoutPlus. Теперь необходимо создать топологию: File > New > Cellview. В качестве редактора выберем Virtuoso, а в качестве имени представления - имя созданной ранее схемы. Таким образом, в одной ячейке хранится символьное, схематическое и топологическое представления необходимой логической функции.
Рис. 17. Окно создания топологического представления
Далее откроется рабочее окно редактора топологии Virtuoso. Отличительной особенностью от предыдущих редакторов является наличие окна выбора материала LSW
Рис. 18. Рабочее окно редактора топологии Virtuoso
Размещаем сначала p-транзистор, под ним - n-транзистор. Далее размещаем контактные площадки. Для этого в меню Create выбираем пункт Pin. В открывшемся окне указываем Terminal name: «А», ставим галочку Display Pin Name, I/O Type: input . Имена и тип контактов обязательно должны совпадать с именами контактов в схематическом представлении. Размещаем данный контакт слева от транзисторов. Аналогично создаем контакт «В». Присваиваем для него тип I/O Type: output. Далее необходимо создать элементы, определяющие сигнал низкого уровня и сигнал высокого уровня. Так как в реальности эти сигналы приходят извне, то эти элементы моделируются как металлический проводник.
Рис. 19. Рабочее окно редактора с размещенными элементами
В левом окне выбираем материал , далее с помощью кнопки (Rectangle) создаем область для моделирования сигналов высокого и низкого уровней. Нижняя область моделирует сигнал низкого уровня, верхняя - высокого.
Рис. 20. Создание областей для моделирования сигналов высокого и низкого уровней
Далее необходимо провести соединения между элементами. Сначала соединим затворы транзисторов. Они обозначены красным цветом. Это означает, что материал проводника - поликремний. Поэтому в окне LSW выбираем материал . Далее с помощью инструмента (Path) проводим первое соединение. Далее в окне LSW выбираем материал и с помощью инструмента (Path) проводим следующие соединения. Теперь необходимо подключить контакт «А» к затвору. Они изготавливаются из разных материалов, поэтому необходимо создание переходного отверстия.
Рис. 21. Соединение затворов и металлических выводов
Для этого на затворе () создаем переходное (Contact). Переходим к пункту Create > Contact. В появившемся окне меняем Contact Type на M1_POLY1. Размещаем контакт на самом затворе. Это означает, что создается переходное отверстие с материала на материал. Далее соединяем контакт «А» с переходным отверстием материала , используя инструмент (Path).
Рис. 22. Топология для схемы инвертора
Важным этапом при создании топологии схемы является верификация. В рамках процесса обучения нас интересует проверка MSPS Check Pin и DRC (design rules check).
MSPS Check Pin позволяет определить соответствие количества, названия и типа контактов между схематическим и топологическим представлением. Чтобы вызвать проверку, необходимо перейти в меню к пункту Verify > MSPS Check Pin. В открывшемся окне нажать кнопку Ок. Результат работы можно увидеть в окне LayoutPlus. Результат работы верификации считается положительным, если в отчете имеется строка «The Schematic and layout Pins match». В противном случаем необходимо искать ошибку, связанную с именем или типом контактов.
Рис. 23. Результат работы проверки MSPS Check Pin
DRC выявляет ошибки, связанные непосредственно с правилами проектирования. Такой ошибкой может быть, например, близкое расположение элементов друг к другу, к проводникам, или между проводниками. После того как все проверки прошли успешно, сохраняем полученную топологию нажатием кнопки (Save). Отметим, что области моделирующие, шину сигнала высокого уровня и шину сигнала низкого уровня, не следует строить, если данная топология будет являться частью более крупной топологии. Так, например, инвертор необходим нам для последующего построения топологии логической функции ИЛИ. Удалим эти области из проекта и сохраним проект заново.
Рис. 24. Результат работы проверки DRC
Создаем представление layout для ячейки, хранящей схемное представление реализованной операции ИЛИ. Для построения данной топологии нам понадобятся следующие элементы: 1 ptran, 2 ntran и спроектированный ранее инвертор. Сначала размещаем n транзисторы так, чтобы правый контакт первого совместился с левым контактом второго (параллельно). Для того чтобы реализовать последовательное размещение p- транзисторов, необходимо в окне создания элемента в поле gates (затворы) ввести значение «2» и разместить данный элемент. После этого выберем топологию построенного нами инвертора и разместим его правее. Ранее описанным методом создадим контакты. Контакт «Y» разместим непосредственно на выходе «В» инвертора. Также разместим области, моделирующие входы сигналов высокого и низкого уровня. Отметим, что разные цепи из материала не могут пересекаться, так как находятся в одном слое. Поэтому для избежания пересечений используется материал . Соединение двух металлов производится при помощи переходных отверстий (Contact). В настройках контакта следует выбирать Contact Type M1_M2. После того, как все элементы расположены на рабочей поверхности, ранее описанным методом, проводим соединения.
Рис. 25. Пример реализации топологии логической функции ИЛИ
После чего проводим верификацию.
Рис. 26. Результат работы проверок MSPS Check Pin и DRC
Заключение
В ходе выполнения курсовой работы было реализовано символьное представление компонента «Инвертор», построена принципиальная схема СБИС, основанной на КМОП-структуре и топология СБИС, реализующую заданную логическую функцию.
Проектирование выполнялось в среде Cadence на платформе Linux. Были использованы схемный редактор Schematic и редактор топологии Virtuoso.
Для каждой из подсхем и для схемы в целом была выполнена верификация на соответствие выводов MSPS Check Pin и на работоспособность DRCcheck. Проект прошел верификацию, ошибок не обнаружено.
Библиографический список
1.Д.Ю. Запорожец, Н.Н. Орлов, А.Н. Орлов, Вл.Вл. Курейчик
Методические указания к выполнению лабораторных работ по курсу «Автоматизация проектирования СБИС». - Таганрог: Изд-во ЮФУ, 2015. - 82 с.
2. Миндеева А.А.
Интерактивное проектирование ИС интегрированными средствами системы Cadence: Уч. пособие. - М.: МИЭТ, 2008. - 208с.
3. Дворников О.В., Черняковский Д.Н., Прокопенко Н.Н., Конев Д.Н.
Cadence Virtuoso: Основы работы с редактором принципиальных схем. Технология создания заказных интегральных схем: лабораторный практикум. - Шахты: Изд-во ЮРГУЭС, 2009. - 48 с.
Размещено на Allbest.ru
Подобные документы
Настройка редактора символов. Создание символа с помощью мастера. Создание посадочного места компонента. Запуск редактора корпусов. Создание компонента в Library Executive. Проверка правильности настройки таблицы перед записью элемента в библиотеку.
контрольная работа [1,0 M], добавлен 14.05.2013Математическое моделирование. Изучение приёмов численного и символьного интегрирования на базе математического пакета прикладных программ, а также реализация математической модели, основанной на методе интегрирования. Интегрирование функций MATLAB.
курсовая работа [889,3 K], добавлен 27.09.2008Входная грамматика в структурированной форме. Функции переходов символьного преобразователя. Работа лексического анализатора. Структуры данных, символы действия. Описание семантики перевода. Построение и программная реализация атрибутного преобразователя.
курсовая работа [128,9 K], добавлен 03.07.2013Рассмотрение порядка создания объектного документа в Delphi7. Создание стандартного приложения. Выбор свойств компонента. Вызов редактора определения полей. Описание структуры документа. Создание DataSet для компонента ClientDataSet. Представление данных.
реферат [2,0 M], добавлен 22.07.2014Разработка интерфейса программы, обеспечивающего доступ ко всем возможностям среды структурно-визуального программирования. Реализация инструментальных средств, позволяющих связывать компоненты в единое приложение. Создание иерархии классов представления.
дипломная работа [2,3 M], добавлен 11.04.2012Символьное и образное представление информации. Единицы ее измерения. Язык как способ символьного представления информации. Знак как элемент конечного множества. Алфавитный подход к измерению информации. Решение задач на определение ее количества.
презентация [178,2 K], добавлен 12.12.2012Разработка компоненты C++ Builder, состоящей из двух окружностей, одна из которых движется по периметру другой. Создание установочного пакета и тестового приложения с использованием разработанного компонента. Инсталляция и проверка готовой компоненты.
курсовая работа [591,5 K], добавлен 05.12.2010Основные характеристики системы автоматизированнного проектирования OrCAD. Этапы создания символьного элемента, графической схемы. Этапы моделирования схемы. Пример создания базовой ячейки матричного умножителя. Создание иерархической структуры.
курсовая работа [149,5 K], добавлен 14.02.2009Распределение шин интерфейса, их связь с внешней системой, выбор алгоритмов арифметических и логических операций. Построение структурной схемы микро-ЭВМ, определение формата микрокоманд, составление таблиц соответствия двоичного и символьного кодирований.
курсовая работа [1,6 M], добавлен 05.06.2013Реализация шаблона проектирования c основными принципами GUI. Обзор простых Swing-виджетов. Первая программа и добавление кнопки. Диспетчер компоновки Layout Manager. Установка размера компонента. Создание объекта Swinq в потоке обработки событий и меню.
презентация [491,3 K], добавлен 26.10.2013