ВАСИЛЬЕВ Алексей Юрьевич

advertisement
1
«Санкт-Петербургский государственный электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)»
(СПбГЭТУ «ЛЭТИ»)
На правах рукописи
ВАСИЛЬЕВ Алексей Юрьевич
ПОДСИСТЕМА АВТОМАТИЗИРОВАННОГО ИЕРАРХИЧЕСКОГО
ТЕХНОЛОГИЧЕСКИ ИНВАРИАНТНОГО ПРОЕКТИРОВАНИЯ
ТОПОЛОГИИ МАКРОБЛОКОВ КМОП СБИС
Специальность: 05.13.12 – «Системы автоматизации проектирования
(промышленность)»
Диссертация на соискание ученой степени
кандидата технических наук
Научный руководитель
кандидат технических наук, доцент
С. Э. Миронов
Санкт-Петербург
2015
2
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ ................................................................................................................... 5
ГЛАВА 1 АВТОМАТИЗАЦИЯ ИЕРАРХИЧЕСКОГО
ТЕХНОЛОГИЧЕСКИ ИНВАРИАНТНОГО ПРОЕКТИРОВАНИЯ
ТОПОЛОГИИ РЕГУЛЯРНЫХ МАКРОБЛОКОВ СБИС ................................ 16
1.1 Постановка задачи ........................................................................................... 16
1.2 Иерархические макроблоки СБИС .............................................................. 17
1.2.1 Иерархическое проектирование топологии нерегулярных заказных
схем ............................................................................................................... 19
1.2.2 Иерархическое проектирование топологии регулярных заказных
схем ............................................................................................................... 21
1.3 Основные этапы проектирования топологии иерархических
макроблоков СБИС ........................................................................................ 26
1.4 Иерархическое технологически инвариантное проектирование
топологии макроблоков СБИС .................................................................... 32
1.5 Управление сжатием при иерархическом проектировании
макроблоков СБИС......................................................................................... 35
1.5.1 Исходная методика согласования габаритов и положения выводов
стыкуемых ячеек ......................................................................................... 35
1.5.2 Исследование существующей методики согласования габаритов и
положения выводов стыкуемых ячеек и выявление ее недостатков.
Динамическая модель топологии ячейки ................................................. 37
1.5.3 Модернизация иерархического проектирования топологии
макроблоков. Итерационное сжатие топологии ...................................... 44
ВЫВОДЫ ПО ГЛАВЕ 1 ........................................................................................ 46
3
ГЛАВА 2 ТЕХНОЛОГИЧЕСКИ ИНВАРИАНТНАЯ КОНЦЕПЦИЯ
ПРОГРАММНОЙ ГЕНЕРАЦИИ ИЕРАРХИЧЕСКОГО ОПИСАНИЯ
ТОПОЛОГИИ МАКРОБЛОКА СБИС ................................................................. 48
2.1 Разработка модернизированной методики программной генерации
иерархического описания топологии макроблока СБИС ...................... 48
2.2 Разработка структурно-топологического плана макроблока СБИС .... 50
2.3. Разработка топологических моделей и схемо-топологическое
проектирование ячеек макроблока СБИС ................................................ 57
2.4 Методика генерации ячеек и сборки макроблока ..................................... 65
2.4.1 Разработка файлов спецификации ячеек макроблока .............................. 67
2.4.2 Разработка файла спецификации макроблока ........................................... 71
ВЫВОДЫ ПО ГЛАВЕ 2 ........................................................................................ 85
ГЛАВА 3 ИТЕРАЦИОННОЕ СОГЛАСОВАНИЕ ПОЛОЖЕНИЯ
ВЫВОДОВ И ГАБАРИТОВ ПРОИЗВОЛЬНОГО ЧИСЛА ЯЧЕЕК .............. 86
3.1 Поиск очередности согласования ячеек ...................................................... 86
3.1.1 Влияние очередности согласования ячеек на число этапов
согласования ................................................................................................ 86
3.1.2 Разработка алгоритма поиска очередности согласования ячеек ............ 94
3.1.3 Оценка эффективности алгоритма поиска очередности согласования
ячеек ........................................................................................................... 105
3.2 Уменьшение числа согласований ячеек макроблока путем
сокращения набора согласуемых ячеек ................................................... 108
3.2.1 Уменьшение числа этапов согласования ячеек путем сокращения
числа обрабатываемых ячеек и множеств ячеек.................................... 108
3.2.2 Оценка эффективности алгоритма сокращения набора согласуемых
ячеек ........................................................................................................... 117
ВЫВОДЫ ПО ГЛАВЕ 3 ...................................................................................... 121
4
ГЛАВА 4 ИНТЕГРАЦИЯ ТЕХНОЛОГИИ ИЕРАРХИЧЕСКОГО
ПРОЕКТИРОВАНИЯ ТОПОЛОГИИ МАКРОБЛОКОВ СБИС В
ГРАФИЧЕСКУЮ СРЕДУ РЕДАКТОРА ........................................................... 122
4.1 Исследование структурно-топологических аспектов согласования
ячеек нерегулярных макроблоков СБИС ................................................ 122
4.2 Разработка графического редактора структурно-топологического
описания макроблоков СБИС .................................................................... 124
4.3 Разработка методики иерархического проектирования топологии
с помощью графического редактора иерархического
проектирования макроблоков Matching of Cells ..................................... 135
4.4 Обобщенная структура подсистемы автоматизированного
иерархического технологически инвариантного проектирования
топологии макроблоков КМОП СБИС Matching of Cells ..................... 150
ВЫВОДЫ ПО ГЛАВЕ 4 ...................................................................................... 153
ЗАКЛЮЧЕНИЕ ....................................................................................................... 154
СПИСОК СОКРАЩЕНИЙ И УСЛОВНЫХ ОБОЗНАЧЕНИЙ .................... 157
СЛОВАРЬ ТЕРМИНОВ ......................................................................................... 158
СПИСОК ЛИТЕРАТУРЫ ..................................................................................... 160
5
ВВЕДЕНИЕ
Актуальность темы исследования.
Постоянный рост темпов развития и сложности вычислительных устройств
привел к созданию эффективной технологии проектирования элементной базы,
основанной на модульном принципе разработки СБИС. В соответствии с ней современные интегральные схемы собираются из крупных иерархических фрагментов, называемых блоками СБИС.
Однако разработка библиотек блоков СБИС сама по себе не является гарантией успешного развития элементной базы вычислительной техники. Дело в
том, что увеличение сложности проектов и ужесточение предъявляемых к ним
требований по быстродействию делает необходимым постоянное совершенствование технологии изготовления СБИС, выражающееся в уменьшении проектных
норм. Улучшение же характеристик интегральных схем путем совершенствования технологических процессов приводит к необходимости полной переработки
топологии библиотек блоков СБИС.
Таким образом, если ранее основными требованиями, предъявляемыми к
микроэлектронным проектам, являлись малая площадь кристалла и высокое быстродействие, то в конце прошлого века к ним добавилась технологическая инвариантность – возможность настройки проекта на любые проектные нормы. Она
достигается с помощью систем сжатия топологии, минимизирующих расстояние
между элементами в соответствии с проектными нормами и задаваемыми разработчиком ограничениями на расположение отдельных частей топологии. Топология фрагментов СБИС в системах сжатия не требует тщательной детальной
прорисовки и описывается с помощью виртуальных координат, отражающих
лишь взаимное (выше или ниже, левее или правее) расположение элементов топологии, а их точные реальные координаты определяются в процессе сжатия топологии в конкретных проектных нормах.
6
Системы технологически инвариантного проектирования топологии ускоряют процесс проектирования интегральных схем, существенно упрощая труд
разработчика-тополога, и обеспечивают живучесть проектов в условиях быстро
меняющейся технологии благодаря возможности быстрой настройки существующих проектов на новые проектные нормы предприятия-изготовителя. Достигаемое в результате накопление топологической проектной информации позволяет
постоянно повышать количество, сложность и степень интеграции проектов в области технологически инвариантного проектирования.
Разработки ведущих компаний Cadence, MenthorGraphics, Synopsys в области плотноупакованного топологического проектирования макроблоков СБИС
представляют собой «ноу-хау» разработчиков и не продаются клиентам, библиотеки же стандартных фрагментов (ячеек) и макроблоков СБИС в конкретных
проектных нормах не только чрезвычайно дороги, но и требуют постоянного обновления с развитием технологии изготовления.
Среди отечественных разработок в области средств технологически инвариантного проектирования можно назвать отмеченную в 2004 году дипломом фирмы Intel систему проектирования топологии TopDesign, не имеющую средств проектирования топологии макроблоков СБИС
С учетом того, что одной из важнейших задач в области высоких технологий, стоящих перед Россией, является разработка высокопроизводительных вычислительных систем, требующих постоянного совершенствования технологических процессов изготовления СБИС и оперативной переработки топологии СБИС
под новые конструкторско-технологические требования, разработка подсистемы
автоматизированного технологически инвариантного проектирования топологии
макроблоков СБИС актуальна как никогда.
Наличие совокупности рассмотренных проблем определяет существование
общей научно-технической проблемы: несоответствие теоретических основ и научно-методологического аппарата в области автоматизированного плотноупако-
7
ванного технологически инвариантного топологического проектирования макроблоков СБИС современным и перспективным потребностям практики.
Таким образом, переход на технологически инвариантное проектирование
СБИС требует разработки новых теоретических основ в области автоматизированного иерархического проектирования топологии.
Степень разработанности темы.
В данной диссертации тема плотноупакованного технологически инвариантного топологического проектирования макроблоков СБИС с иерархически организованной структурой разработана от идеи до практического программного воплощения.
В рамках диссертации исследуются и разрабатываются алгоритмы плотноупакованного технологически инвариантного проектирования топологии иерархических макроблоков СБИС, выполняется их программная реализация и с помощью разработанных программных модулей осуществляется проектирование специализированных кремниевых компиляторов (параметризованных по разрядности
данных программ генерации топологии) иерархических макроблоков СБИС.
Разработанная подсистема автоматизированного иерархического технологически инвариантного проектирования топологии макроблоков СБИС:
– ориентирована на КМОП-технологию (как на наиболее популярную и
распространенную),
– базируется на алгоритмах и программных средствах сжатия топологии
ячеек, уже упоминавшейся выше системы проектирования топологии TopDesign,
– может быть включена в типовые маршруты проектирования, так как генерирует выходные файлы описания топологии иерархических макроблоков СБИС
на стандартном языке описания топологии CIF.
Цели и задачи исследования.
Цель работы – исследование методов, моделей и алгоритмов решения задачи плотноупакованного технологически инвариантного проектирования топологии макроблоков КМОП СБИС и разработка на основе этого исследования под-
8
системы автоматизированного иерархического плотноупакованного технологически инвариантного проектирования топологии макроблоков.
Согласно поставленной цели в диссертационной работе:
– предлагается и описывается решение задачи плотноупакованного технологически инвариантного топологического проектирования макроблоков СБИС
с иерархически организованной структурой, имеющей значение для развития систем автоматизированного проектирования интегральных схем,
– излагаются новые проектные решения в области разработки САПР элементно-компонентной базы, имеющие существенное значение для развития страны.
Объектом исследования являются математическое, методическое и программное обеспечения подсистемы автоматизированного иерархического технологически инвариантного проектирования топологии макроблоков СБИС с использованием методов сжатия топологии.
Предметом исследования является разработка метода, алгоритмов, методики, модели и реализующих их программных модулей подсистемы автоматизированного иерархического технологически инвариантного проектирования топологии макроблоков СБИС с использованием методов сжатия топологии.
Для достижения поставленной цели были решены следующие научные
задачи:
1. Исследование и разработка моделей (способов представления) ячеек в
подсистеме автоматизированного технологически инвариантного проектирования
топологии иерархических регулярных макроблоков КМОП СБИС.
2. Разработка методики согласования положения стыкуемых пар выводов и
границ ячеек иерархических регулярных макроблоков КМОП СБИС, обеспечивающей высокую плотность упаковки топологии.
9
3. Исследование и разработка алгоритмов и соответствующих программных
модулей согласования ячеек регулярных макроблоков КМОП СБИС, существенно
уменьшающих время генерации файлов описания топологии.
4. Исследование и разработка алгоритмов и соответствующих программных
модулей для технологически инвариантного проектирования топологии не регулярных макроблоков КМОП СБИС.
5. Разработка методики программной генерации иерархического описания
топологии регулярных и не регулярных макроблоков СБИС в технологически инвариантной концепции.
Научная новизна.
1. Предложена оригинальная динамическая модель ячеек СБИС, согласно
которой ячейки рассматриваются как динамические множества элементов, взаимодействующих друг с другом и соответственно влияющих на положение соседей
в некоторой окружающей их области.
2. Впервые разработана методика итерационного индивидуального согласования положения стыкуемых пар выводов и границ ячеек иерархических макроблоков СБИС, базирующаяся на динамической модели ячеек СБИС и обеспечивающая высокую плотность упаковки топологии макроблоков, так как такой подход позволяет после согласования каждой из пар выводов учитывать изменения
во взаимном влиянии внутренних элементов топологии ячеек, происходящие
вследствие осуществляемой при согласовании раздвижки топологии.
3. Разработан метод технологически инвариантного проектирования топологии иерархических макроблоков КМОП СБИС, обеспечивающий возможность
реализации:
– новых алгоритмов и соответствующих программных средств согласования
ячеек макроблока СБИС, существенно уменьшающих число согласуемых ячеек и
число согласований ячеек, что позволяет сокращать число типов ячеек и время
генерации файлов описания топологии и их объем, упрощая и ускоряя тем самым
и процессы технологической и схемо-топологической верификации макроблоков.
10
– универсальных алгоритмов и соответствующих программных модулей для
технологически инвариантного проектирования топологии макроблоков СБИС, в
которых принципы генерации топологии, разработанные для макроблоков с регулярной структурно-топологической организацией, распространены на более общий случай нерегулярных макроблоков.
– оригинальной методики программной генерации иерархического описания топологии макроблока СБИС в технологически инвариантной концепции, отличающейся от известной возможностью получения высокой плотности упаковки
благодаря итерационности автоматического согласования ячеек макроблоков
СБИС по габаритам и положению выводов.
Таким образом, новизна работы в целом состоит в разработке метода плотноупакованного технологически инвариантного проектирования топологии иерархических макроблоков СБИС, обеспечивающего возможность ее оперативной
адаптации к конструкторско-технологическим требованиям предприятия изготовителя.
Технологическая инвариантность проектов топологии блоков СБИС достигается с помощью системы сжатия топологии ячеек TopDesign, минимизирующей
расстояние между элементами в соответствии с проектными нормами или задаваемыми разработчиком ограничениями на расположение отдельных частей топологии.
Высокая плотность упаковки топологии иерархических блоков СБИС обеспечивается оригинальной методикой итерационного поэтапного согласования габаритов ячеек и положения их выводов.
Теоретическая и практическая значимость работы
Теоретическая значимость полученных научных результатов состоит в
развитии аппарата автоматизированного проектирования элементно-компонентной базы.
Теоретическая значимость диссертационной работы подтверждается проявленным интересом РФФИ к ее тематике, выраженным в выдаче молодежного
11
гранта № 14-07-31098 «САПР иерархического инвариантного проектирования топологии блоков СБИС (САПР ИИП) для специализированных вычислительных
систем».
Практическая значимость диссертации состоит в том, что применение
разработанных при создании подсистемы автоматизированного иерархического
технологически инвариантного проектирования топологии макроблоков КМОП
СБИС алгоритмов, методик и программных модулей позволит:
– многократно ускорить и упростить процесс проектирования сложных иерархических макроблоков СБИС;
– обеспечить плотную упаковку иерархических блоков СБИС;
– оперативно настраивать проекты на любые проектные нормы;
– обеспечить накопление топологической проектной информации, тем самым позволяя постоянно повышать количество, сложность и степень интеграции
проектов.
Практическая значимость работы лежит в русле решения стратегической
задачи по обеспечению национальной безопасности как в военной, так и в экономической областях, связанной с созданием отечественной элементно-компонентной базы.
Методология и методы исследования
Методология проведения работы заключается в:
1) развитии методов сжатия топологии ячеек, минимизирующих расстояние
между элементами в соответствии с проектными нормами и ограничениями;
2) алгоритмизации предложенного метода управляемого сжатия топологии;
3) разработке программного обеспечения, реализующего полученные алгоритмы;
4) верификации и тестировании созданных программ;
5) разработке методического обеспечения средств иерархического проектирования топологии макроблоков СБИС.
Для решения поставленных задач использовались:
12
– метод технологически инвариантного проектирования топологии ячеек с
использованием алгоритма сжатия топологии на основе виртуальной координатной сетки с переменным шагом;
– система технологически инвариантного проектирования топологии ячеек
интегральных схем TopDesign с использованием методов сжатия топологии;
– язык CIF описания топологии в конкретных проектных нормах;
– топологические редакторы LayoutEditor для визуализации и СТАЛКЕР
для визуализации и технологической верификации топологии (проверки соответствия топологии проектным нормам).
Положения, выносимые на защиту
На защиту выносятся следующие новые научные результаты:
1. Оригинальная динамическая модель ячеек СБИС, учитывающая изменения во взаимном влиянии внутренних элементов топологии ячеек, происходящие
вследствие осуществляемой при согласовании ячеек раздвижки топологии.
2. Впервые разработанная методика итерационного индивидуального согласования положения стыкуемых пар выводов и границ ячеек иерархических макроблоков СБИС, базирующаяся на динамической модели ячеек СБИС и обеспечивающая высокую плотность упаковки топологии благодаря индивидуальному
согласованию положения стыкуемых друг с другом элементов топологии ячеек.
3. Метод технологически инвариантного проектирования топологии иерархических макроблоков КМОП СБИС, обеспечивающий возможность реализации:
– новых алгоритмов и соответствующих программных средств согласования
ячеек макроблока СБИС, существенно уменьшающих время генерации файла
описания топологии и его объем путем уменьшения числа согласуемых ячеек и
числа согласований ячеек,
– универсальных алгоритмов и соответствующих программных модулей для
технологически инвариантного проектирования топологии как регулярных, так и
не регулярных макроблоков СБИС, базирующиеся на разработанных для них общих принципах генерации топологии макроблоков.
13
– оригинальной методики программной генерации иерархического описания топологии как регулярных, так и не регулярных макроблоков СБИС.
Степень достоверности и апробация результатов.
Апробация результатов проводилась в ходе исследований по теме диссертационной работы в рамках ряда НИР, успешное завершение которых с результатами, полученными по теме диссертационной работы, подтвердило их достоверность.
Основные теоретические и практические результаты работы были представлены и обсуждались на 2-х международных научных конференциях:
1) 7-ой международной конференции «Автоматизация проектирования дискретных систем» CAD DD’10. – Беларусь, Минск, 2010, 16-17 ноября;
2) международной научной конференции «Компьютерные науки и информационные технологии» памяти А. М. Богомолова. – Россия, г. Саратов, 2012, 1-4 июля.
Кроме того результаты работы докладывались и обсуждались на 3 конференциях профессорско-преподавательского состава СПбГЭТУ «ЛЭТИ».
Публикации результатов исследования. По теме диссертации подготовлен раздел монографии «Теория виртуального символьного проектирования
КМОП кристаллов» (монография принята для опубликования Санкт-Петербургским издательством «Реноме»), опубликовано 5 статей в журналах, рекомендованных ВАК РФ, 1 статья и 2 доклада в других изданиях, 1 рукопись, депонированная в ВИНИТИ.
Внедрение результатов работы.
Материалы по теме диссертации использованы в работе по трем проектам:
1) «Теория виртуального символьного проектирования КМОП кристаллов»
– № 2.1.2/2522 аналитической ведомственной целевой программы «Развитие
научного потенциала высшей школы (2009-2010 годы)»;
– № 2.1.2/10527 аналитической ведомственной целевой программы «Развитие научного потенциала высшей школы (2009-2011 годы)»
2) № ИПИ/ВТ60 «Информационная технология символьного проектирова-
14
ния фрагментов КМОП сверхбольших интегральных схем (СБИС)» (ГК
№ 02.740.11.5127) федеральной целевой программы «Научные и научнопедагогические кадры инновационной России» на 2009-2013 годы по лоту «Проведение научных исследований коллективами под руководством приглашенных
исследователей в области информационно-телекоммуникационных технологий и
вычислительных систем»
3) № 10-07-90008-Бел_а по совместному российско-белорусскому исследовательскому проекту «Топологическое проектирование макроэлементов СБИС с
иерархически организованной структурой».
Сейчас по данной тематике ведутся работы в рамках проекта ГПМИ/ВТ-64
«САПР иерархического инвариантного проектирования топологии блоков СБИС
(САПР ИИП) для специализированных вычислительных систем» по молодежному
гранту РФФИ № 14-07-31098.
Результаты работы внедрены в образовательный процесс в СПбГЭТУ
“ЛЭТИ” на кафедре вычислительной техники в рамках магистерской дисциплины
«Проектирование заказных систем на кристалле» и используются в системе технологически инвариантного проектирования топологии TopDesgn.
Структура и объем работы. Диссертационная работа состоит из введения,
4 глав, заключения и списка литературы. Работа содержит 165 страниц машинного текста, 76 рисунков, 4 таблицы, список литературы из 48 наименований.
В первой главе на основе результатов анализа процесса согласования габаритов и положения выводов стыкуемых ячеек макроблоков предлагаются:
– динамическая модель топологии ячейки макроблока,
– методика итерационного согласования габаритов и положения выводов
стыкуемых ячеек.
Предлагаемые механизмы обеспечивают высокую плотность упаковки топологии макроблоков, достигаемую благодаря индивидуальному итерационному
согласованию положения стыкуемых выводов и границ ячеек.
15
Во второй главе:
– на основе предложенной методики индивидуального согласования положения стыкуемых выводов и границ топологии ячеек макроблоков СБИС разрабатывается модернизированная методика программной генерации иерархического описания топологии макроблока СБИС в технологически инвариантной концепции;
– приводится технологически инвариантная концепция программной генерации иерархического описания топологии макроблока СБИС, иллюстрируемая
на примере технологически инвариантного компилятора матричного делителя.
В третьей главе предлагаются механизмы, обеспечивающие ускорение итерационного согласование положения выводов и габаритов произвольного числа ячеек
путем сокращения числа согласований ячеек и набора согласуемых ячеек и множеств ячеек.
В четвертой главе исследуются структурно-топологические аспекты согласования ячеек нерегулярных макроблоков СБИС и описываются:
– оригинальное программное средство Matching of Cell, реализующее иерархическое технологически инвариантное проектирование топологии для макроблоков
СБИС с регулярной и с не регулярной структурно-топологической организацией,
– методика иерархического проектирования топологии с помощью графического редактора иерархического проектирования макроблоков Matching of Cells.
16
ГЛАВА 1 АВТОМАТИЗАЦИЯ ИЕРАРХИЧЕСКОГО
ТЕХНОЛОГИЧЕСКИ ИНВАРИАНТНОГО ПРОЕКТИРОВАНИЯ
ТОПОЛОГИИ РЕГУЛЯРНЫХ МАКРОБЛОКОВ СБИС
1.1 Постановка задачи
Современное состояние исследований в области плотноупакованного топологического проектирования макроблоков СБИС с иерархически организованной структурой слабо освещено в литературе [1-13], так как относится к области
«ноу-хау» при создании САПР.
За рубежом индустрия САПР СБИС продвинулась далеко вперед. Созданы
широко известные системы «сквозного проектирования» СБИС компаний Cadence [14], MenthorGraphics [15], Synopsys [16]. Однако, «рабочие» лицензии на
несколько лет на такие системы стоят порядка нескольких миллионов долларов.
К тому же, помимо САПР, для проектирования интегральных схем нужны библиотеки стандартных фрагментов (ячеек) и макроблоков СБИС, которые также
стоят очень дорого и которые необходимо обновлять (закупать) при каждом переходе на более совершенные проектные нормы. Средства же технологически
инвариантного проектирования таких библиотек компонентной базы представляют собой «ноу-хау» фирм-разработчиков и не продаются клиентам.
Как уже было сказано выше, создание элементной базы невозможно без
САПР СБИС и в частности средств технологически инвариантного проектирования топологии ячеек и макроблоков СБИС.
Но на внутреннем рынке отсутствуют отечественные аналоги систем символьного проектирования топологии больших интегральных схем. Исключение
составляет разработанная на кафедре вычислительной техники СПбГЭТУ
“ЛЭТИ” система технологически инвариантного проектирования топологии
TopDesign [17-20], предназначенная для разработки топологии ячеек СБИС [2124] и не имеющая средств иерархического проектирования топологии макроблоков СБИС.
17
Теоретические основы иерархического проектирования топологии в технологически инвариантной концепции были сформулированы еще в 1998 году [25]. Тогда же были осуществлены первые в стране разработки, посвященные практической реализации принципов технологически инвариантного проектирования
сложных иерархических устройств с регулярной структурой [26-29].
Однако, несмотря на необычайную важность данной тематики для отечественной микроэлектроники, до сих пор отсутствует общая концепция решения задачи плотноупакованного технологически инвариантного иерархического проектирования топологии макроблоков СБИС. Таким образом, теоретическая составляющая данной диссертационной работы посвящена развитию научно-методического аппарата в области автоматизированного плотноупакованного технологически инвариантного топологического проектирования макроблоков СБИС.
Практической же задачей диссертационной работы было построение подсистемы автоматизированного иерархического технологически инвариантного проектирования топологии макроблоков СБИС:
– ориентированной на КМОП-технологию (как на наиболее популярную и
распространенную),
– базирующейся на алгоритмах и программных средствах сжатия топологии
ячеек, уже упоминавшейся выше системы проектирования топологии TopDesign,
– обладающей возможностью включена в типовые технологии и процессы
проектирования (генерирующей выходные файлы описания топологии иерархических макроблоков СБИС на стандартном языке описания топологии CIF).
1.2 Иерархические макроблоки СБИС
Прежде чем перейти к изложению принципов иерархического проектирования топологии в системах технологически инвариантного проектирования на
виртуальной сетке, нужно разобраться в целях иерархического проектирования
топологии, а так же провести четкую грань между двумя существующими типами
18
схем, основные отличительные свойства которых и определяют и требования к
соответствующим средствам проектирования, и сами подходы к проектированию.
Цель иерархического описания топологии, в конечном счете, одна – упрощение описания топологии. В принципе, при наличии достаточно мощного программного и аппаратного обеспечения возможна разработка неструктурированного описания топологии не только макроблока СБИС, но даже целой интегральной схемы. Но совершенно очевидно, что с одной стороны процесс кодирования
топологии макрофрагмента неудобен, а с другой стороны для топологии с регулярной структурой или просто при наличии в ней повторяющихся частей описание сразу всей топологии приведет к многократному выполнению одних и тех же
действий, а, следовательно, и к снижению эффективности всего процесса проектирования. Для повышения эффективности процесса проектирования общие части
топологии следует “выносить за скобку”, создавая тем самым библиотеки ячеек, из
которых и собирать в дальнейшем иерархические макроблоки СБИС.
Основные «строительные элементы» интегральных схем – иерархические
макроблоки СБИС – можно по составу входящих в них ячеек и характеру связей
между ними разделить на регулярные и нерегулярные. Нерегулярные макроблоки
собираются из стандартных библиотечных ячеек путем последовательного итерационного применения программ размещения и трассировки, в результате чего топология постепенно совершенствуется. Этот способ построения макрофрагментов
является наиболее распространенным. Регулярные макроблоки собираются из заказных специализированных ячеек с топологией, оптимизированной под конкретную схему, в соответствии с топологическим планом, более или менее однозначно определяемым спецификой реализуемой схемы, например, реализуемым
аппаратным образом алгоритмом.
Традиционным методом проектирования СБИС является проектирование с
использованием библиотек стандартных фрагментов. Для таких фрагментов характерны стандартизация высоты, стандартизация положения кармана и положения шин питания и земли, дискретизация положения выводов. Изощренное топо-
19
логическое проектирование применяется, как правило, при разработке блоков, обладающих регулярной структурой. В этом случае детальная, тщательная “ручная”
проработка ячеек позволяет получить ощутимый выигрыш по площади на кристалле за счет большого числа матрицируемых ячеек меньшего размера.
Основными этапами проектирования топологии иерархических макроблоков СБИС являются разработка библиотеки ячеек и сборка на ее основе топологии
макроблоков.
1.2.1 Иерархическое проектирование топологии
нерегулярных заказных схем
Основная доля аппаратных затрат приходится на схемы, строящиеся методом размещения и трассировки из ячеек, входящих в состав библиотек стандартных фрагментов.
Такие схемы называют заказными нерегулярными схемами. Тем не менее,
следует признать, что с точки зрения проектирования топологии термин “заказная” можно применить к таким разработкам лишь с определенной “натяжкой”,
ибо оптимизация топологий, составляемых из стандартных библиотечных фрагментов с помощью программ размещения и трассировки, предполагает лишь выбор положения и ориентации ячеек, минимизирующих:
– количество зазоров между ячейками (за счет совмещения их эквипотенциальных областей);
– число и длину межсоединений.
Часто топологам приходится дорабатывать полученные сапровскими средствами проекты, вручную минимизируя площадь макрофрагмента и длины межсоединений путем перестановки ячеек и изменения их пространственной ориентации. Однако, об иной оптимизации топологии как правило не идет и речи.
В соответствии со схемой проектируемого макрофрагмента программы размещения и трассировки объединяют стандартные библиотечные фрагменты (при-
20
мер топологической организации которых приведен на рисунке 1.1, а) в полосы,
называемые “пеналами” (рисунок 1.1, б).
а)
E
б)
E
Пенал 1
Пенал 2
E
– Карман n-типа
– Диффузионная
область
– Поликремний
– Металл
нижний
– Металл
верхний
– Металл нижний с
контактным окном
– Металлы нижний и
верхний с межслойным
контактным окном
Рисунок 1.1 – Топологии макроблоков на основе стандартных библиотечных
фрагментов КМОП СБИС: а) топологическая организация стандартных
фрагментов; б) топологическая организация макроблока из двух пеналов
21
Пеналы компонуются из ячеек, “нанизываемых” на шины “земли” () и
“питания” (E), проходящие через каждый из пеналов. Связи между ячейками схемы проводятся в разделяющих пеналы трассировочных каналах.
Позиционирование элементов топологии в ячейках, ячеек в пеналах, пеналов и коммутационных элементов (шин и контактов) трассировочных каналов в
пределах макрофрагмента осуществляется в координатном поле с постоянным
шагом сетки. Шаг определяется как максимальное из минимально допустимых
проектными нормами расстояний между осями соседних элементов топологии.
1.2.2 Иерархическое проектирование топологии
регулярных заказных схем
Схем с регулярной структурой разрабатывается существенно меньше, чем
заказных нерегулярных схем, строящихся методом размещения и трассировки из
ячеек, входящих в состав библиотек стандартных фрагментов.
Иерархическое проектирование регулярных заказных схем представляет собой наиболее сложный из видов проектирования топологии, поскольку при сборке макрофрагмента необходимы не стандартные ячейки со стандартным же расположением выводов, а специальные заказные, спроектированные с учетом
структуры и топологического плана конкретного заказного макрофрагмента. Однако детальная, тщательная “ручная” проработка ячеек позволяет получить ощутимый выигрыш по площади на кристалле за счет большого числа матрицируемых ячеек регулярного макроблока. В качестве примера эффективности такого
подхода к проектированию можно привести изображенную на рисунке 1.2 топологию конвейерного матричного умножителя (КМУ) – регулярного макроблока
СБИС с высокой плотностью упаковки, полученную методом программной генерации с помощью специализированного кремниевого компилятора, параметризованного по разрядности множимого, разрядности множителя и по нагрузочной способности.
22
Высокой плотности упаковки удается достичь благодаря тщательному проектированию топологии основных ячеек. В качестве примера на рисунке 1.3 приведен фрагмент топологии матрицы конвейерного умножителя – базовая ячейка,
выделенная заштрихованной областью на рисунке 1.2.
Рисунок 1.2 – Детальная проработка топологии при проектировании регулярных схем в технологически инвариантной концепции: топология конвейерного матричного умножителя – регулярного макроблока СБИС с высокой
плотностью упаковки (заштрихованной областью выделена базовая ячейка,
топология которой приведена на рисунке 1.3)
Причем в связи с тем, что за рубежом технология изготовления СБИС развивается существенно быстрее, внимания плотноупакованному проектированию топологии традиционно уделяется существенно меньше, чем у нас. Эта проблема
23
имеет старую историю. Еще при проектировании в идентичных проектных нормах
(2 мкм) нам удавалось обеспечить гораздо большую плотность упаковки, чем у западных фирм. Например, при разработке конвейерного умножителя была достигнута плотность упаковки топологии на 40% большая, чем у аналогичного макроблока цифрового процессора TMS320C25, спроектированного и реализованного
фирмой “Texas Instruments” в тех же проектных нормах.
Рисунок 1.3 – Детальная проработка топологии при проектировании регулярных
схем в технологически инвариантной концепции: фрагмент топологии конвейерного матричного умножителя – базовая ячейка
24
В качестве примера на рисунке 1.4 приведена топология конвейерного умножителя с выделенной штрихпунктирной линией базовой ячейкой (рисунок 1.5).
Рисунок 1.4 – Детальная ручная проработка топологии при проектировании
регулярных схем в конкретных проектных нормах: топология конвейерного
матричного умножителя – регулярного макроблока СБИС с высокой плотностью упаковки (заштрихованной областью выделена базовая ячейка, топология которой приведена на рисунке 1.5)
25
Рисунок 1.5 – Детальная ручная проработка топологии при проектировании
регулярных схем в конкретных проектных нормах: фрагмент топологии конвейерного матричного умножителя с базовой ячейкой (выделена штрихпунктирной линией)
26
Ее (базовой ячейки) площадь почти в полтора (1,47) раза меньше площади
аналогичной по функциональному составу базовой ячейки матрицы конвейерного
умножителя процессора TMS320C25.
1.3 Основные этапы проектирования топологии
иерархических макроблоков СБИС
Как уже было отмечено выше, основными этапами проектирования топологии иерархических макроблоков СБИС являются разработка библиотеки ячеек и
сборка на ее основе топологии макроблоков.
Таблица 1.1 содержит более подробную информацию об этапах проектирования иерархических макроблоков интегральных схем и еще раз подтверждает
сказанное выше о большей сложности разработки иерархических макроблоков,
обладающих регулярной структурой.
Как видно из таблицы, это связано с необходимостью разработки для них:
– индивидуального топологического плана;
– как правило, нескольких топологических моделей, различных для разных
ячеек;
– специализированной библиотеки, ячейки которой не обладают стандартизированными габаритами и положением выводов;
– индивидуальных программ сборки топологии из ячеек.
Разработка библиотеки ячеек предполагает:
– создание в графической среде системы проектирования [19, 20] эскизов
топологии ячеек (технологически инвариантных описаний топологии);
– согласование топологии ячеек по габаритам и положению выводов в процессе их настройки на задаваемые разработчиком проектные нормы.
27
Таблица 1.1 – Основные этапы проектирования топологии иерархических макроблоков СБИС
Иерархические макроблоки
Область
применения
СБИС
нерегулярные
Топологиче-
Для
ский план
любых
не
технологий
разрабатывается*
Для
Примечание
регулярные
Топологический * – топологический план неплан
ских
в соответствии с
ранее известен – пеналы
алгоритмом рабо-
и трассировочные кана-
ты макроблока
Топологическая Топологические
модель ячеек
модели ячеек *
технологий
библиотеки
для каждого типа
(для “класса”
стандартных
регулярных
технологий)
фрагментов
макроблоков **
конкретных
конструкторско-
Библиотека
Библиотеки
стандартных
заказных
фрагментов *
фрагментов **
требований
(проектных
норм)
макроблоков
за-
лы
* – в соответствии с топологическим планом
** – модели могут быть различны для разных ячеек
одного регулярного макроблока
* – одна
для
проектных
норм
** – могут быть различны
для каждого типа регулярных макроблоков
технологических
иерархиче-
разрабатывается
родственных
Для
регулярных
* – собираются программаТопологии
Топологии
ми размещения и трасси-
нерегулярных
регулярных
ровки
макроблоков * макроблоков ** ** – сборка в соответствии с
топологическим планом
28
Согласование ячеек по габаритам и положению выводов осуществляется в
несколько этапов. Сначала ячейки обрабатываются системой сжатия с учетом
только технологических проектных норм. Из полученных описаний топологий
извлекается информация о габаритах и координатах выводов ячеек, на основании
которой вычисляются значения габаритов и координат выводов, позволяющие состыковывать топологии отдельных ячеек, объединяя их в макроблоки. После этого сжатие повторяется с учетом не только проектных норм, но и полученных на
предыдущем этапе дополнительных ограничений на взаимное расположение элементов топологии ячеек. В результате этого процесса получается библиотека ячеек в заданных проектных нормах, которой можно пользоваться для проектирования крупных блоков СБИС, подставляя полученные описания топологии и
значения габаритов и координат выводов в файлы, описывающие топологии
сборки (макроблока) на каком-либо из языков описания топологии.
Для описания топологии принято несколько стандартных средств, называемых языками описания топологии. Наиболее известными среди них являются
языки CIF, GDS II, SOU.
Выходным форматом файла, для сохранения результатов работы программы
был выбран CIF. Выбор формата был обоснован его высокой популярностью. Основными элементами всех описаний топологий интегральных микросхем являются: контуры и трассы, описывающие основные элементы и соединения между ними.
Для иерархического описания топологии макроблока используются следующие
операторы:
– объявление комментариев,
– описание топологии фрагментов,
– позиционирование элемента.
Объявление комментариев:
(
где
TEXT
);
TEXT – текст комментария, например:
29
( CALTECH INTERMEDIATE FORMAT for : CNTJTG );
Описание топологии фрагмента:
DS NF K1 K2;
9 NameFrag;
...
DF;
где
DS
– оператор начала описания фрагмента в файле описания топологии,
NF
– номер (или имя) фрагмента в файле описания топологии,
K1, K2
– служебные масштабные коэффициенты,
9
– оператор задания имени фрагмента,
NameFrag – имя фрагмента в файле описания топологии,
DF;
– оператор конца описания фрагмента в файле описания топологии,
например, описание контакта между нижним металлом и поликремнием (рисунок 1.6):
48
Y
40
24
-48
40
-40
-24 0, 0
24
48
X
-24
-40
-48
Рисунок 1.6 – Контакт CSI между нижним металлом и поликремнием
DS 1 5 1;
9 CSI;
L ZZZZ;
L 6;
30
B 24 24 0 0;
L 5;
B 48 48 0 0;
L 9;
B 40 40 0 0;
DF;
Позиционирование фрагмента (рисунок 1.7):
C NF T XF YF;
где
C
– оператор указания номера (или имени) позиционируемого фрагмента,
NF
– номер (или имя) позиционируемого фрагмента в файле описания топологии,
T
– оператор указания координат точки привязки позиционируемого
фрагмента,
XF
– абсцисса точки привязки позиционируемого фрагмента,
YF
– ордината точки привязки позиционируемого фрагмента;
Y
100
YF 75
50
-1
0, 0
50
125
100 XF 150
200
X
-1
Рисунок 1.7 – Пример оператора позиционирования фрагмента (CSI) :
C 1 T 125 75; (C CSI T 125 75)
Структура файла на языке CIF приведена на рисунке 1.8.
31
Описание блока
Структура
Пример содержимого
Заголовок
Комментарии
(некий комментарий);
Фрагмент
№1
Фрагмент
№2
…
Главный фрагмент
№n
Конец файла
Описание топологии
фрагмента
(контакта CSI)
Описание топологии
фрагмента
(контакта CM1)
…
Описание топологии
фрагмента
(схема SHEMA)
Окончание
DS 1 5 1;
9 CSI;
…..
DF;
DS 2 5 1;
9 CM1;
…….
DF;
…….
DS n 5 1;
9 SHEMA;
……
DF;
E
Рисунок 1.8 – Структура файла описания топологии на языке CIF
32
Таким образом, CIF-файл представляет собой конкатенацию описания топологии библиотеки ячеек и описания собранной из них топологии макроблока в
заданных проектных нормах.
1.4 Иерархическое технологически инвариантное
проектирование топологии макроблоков СБИС
При иерархическом проектировании макрофрагментов СБИС в технологически инвариантной концепции возможны два подхода. Первый основан на сжатии фрагмента как единого целого (что для макрофрагментов с регулярной структурой нерационально), второй подход предусматривает создание библиотеки ячеек.
Ниже описывается метод [29, 30], основанный на сборке фрагмента из ячеек
специализированной библиотеки, и примеры реализации на его основе программ
генерации топологии иерархических проектов в технологически инвариантной
концепции [26-29, 31, 32].
При данном подходе иерархии фрагментов топологии соответствует комплекс программ специализированного кремниевого компилятора (СКК) конкретного макрофрагмента, выполняющих в зависимости от задаваемых пользователем параметров генерацию топологии в любой заданной технологии.
Сначала генерируются файлы описания топологий ячеек на виртуальной
сетке. Затем ячейки сжимаются с учетом параметров выбранной пользователем
конкретной технологии и с учетом необходимости обеспечения стыковки соответствующих элементов топологий ячеек (согласование габаритов и координат
выводов) при дальнейшей сборке фрагмента.
Результатом является набор файлов описания топологий ячеек для заданной технологии в жестких координатах на одном из языков описания топологии
(например, ASP или CIF).
Программа, описывающая фрагмент следующего уровня, использует описания топологий ячеек предыдущего уровня иерархии в жестких координатах и
33
управляет их позиционированием и матрицированием. В результате получается
файл описания фрагмента СБИС в жестких координатах (на языке ASP или CIF).
Таким образом, создается не одна программа, а программный комплекс, включающий программы генерации топологий ячеек на виртуальной сетке, программы анализа топологий ячеек и формирования ограничений на расположение их
выводов, программы сжатия ячеек с ограничениями и программу, реализующую
алгоритм сборки макрофрагмента.
Достоинством метода является его модульность – внесение изменений в
один из модулей, не оказывает влияния на другие. Чтобы получить топологию
макрофрагмента после внесения изменений в один из модулей программного
комплекса, как правило, требуется лишь частичное выполнение процедуры генерации. Например, при необходимости получения топологии матричного вычислительного устройства (МВУ) для другой разрядности данных достаточно выполнить лишь программу сборки матрицы, время работы которой не зависит от разрядности данных. Впрочем, на каждом этапе комплекс программ работает с данными небольшого объема (одна ячейка – 30-50 транзисторов), следовательно работа программного комплекса не требует значительных временных затрат и не
накладывает никаких ограничений на ресурсы и производительность ЭВМ.
В качестве примера на рисунках 1.9 и 1.10 приведены топологии устройств, описание которых было получено в результате работы спроектированных иерархических технологически инвариантных СКК МВУ [26-29],
параметризированных по разрядности операндов.
На рисунках 1.9, а, б приведены топологии МВУ извлечения квадратного
корня [27, 29], сгенерированные для 5- и для 6-разрядных операндов соответственно.
На рисунке 1.10 приведена топология 8-разрядного (8  8) конвейерного
матричного умножителя с поразрядной конвейеризацией [26, 28, 29].
34
а)
б)
Рисунок 1.9 – Топологии схемы извлечения квадратного корня, полученные методом технологически инвариантной кремниевой компиляции: а) пятиразрядная;
б) шестиразрядная
35
Рисунок 1.10 – Топология восьмиразрядного (88) конвейерного матричного умножителя с поразрядной конвейеризацией, полученная методом иерархической
технологически инвариантной кремниевой компиляции
1.5 Управление сжатием при иерархическом проектировании
макроблоков СБИС
1.5.1 Исходная методика согласования габаритов и положения
выводов стыкуемых ячеек
Целью управления сжатием ячеек заказного макроблока является обеспечение
стыковки соответствующих элементов топологий ячеек при дальнейшей сборке
макроблока [25, 29, 30]. Файлы описания топологии в виртуальных координатах
обрабатываются программой сжатия, в результате чего эскиз топологии раскрывается до топологических примитивов в конкретной технологии с конкретными проектными нормами. При этом реальные координаты элементов топологии, находивших-
36
ся на одной и той же виртуальной координате различных ячеек, могут быть различны. Тем более могут не совпадать реальные координаты элементов топологии, находившихся на различных виртуальных координатах ячеек. В общем случае ситуация,
возникающая после сжатия ячеек, показана на рисунке 1.11, а.
а)
б)
Y3
Y13
Y23
1
Y12
1
Y22
Y11
X11
Y2
2
Y1 *
Y1
Y21
X21
X12
3
– Границы
ячейки
3
Y31
X31
2
X32
– Металл
нижний
– Металл
верхний
Y2 *
X2
X1
X1*
X2*
Рисунок 1.11 – Согласование габаритов и положения выводов стыкуемых ячеек
На рисунке 1.11 показаны 3 ячейки, в которых горизонтальные связи выполнены в слое верхнего металла, а вертикальные – в слое нижнего. Для каждой
ячейки показаны ее границы и те элементы топологии, которые должны быть состыкованы с элементами топологии других ячеек. Ячейки расположены друг относительно друга так, как они располагаются в сборке. Как видно из рисунка 1.11, а, в общем случае ни габариты ячеек, ни координаты стыкуемых элементов топологий не совпадают, в то время как необходимо состыковать ячейки
так, как показано на рисунке 1.11, б. Этого можно достичь, путем сжатия ячеек с
дополнительными ограничениями, не связанными явно с проектными нормами.
37
Дополнительные ограничения, представляющие собой фиксированные координаты элементов топологии ячеек в конкретной технологии, являются параметрами управления сжатием и определяются следующим образом (рисунок 1.11):
– значения абсцисс X1, X2 и ординат Y1, Y2, Y3 выводов ячеек:
X1 = max (X11, X31),
X2 = max (X12, X32),
Y1 = max (Y11, Y21),
Y2 = max (Y12, Y22),
Y3 = max (Y13, Y23);
– значения габаритов X1*, X2* и Y1*, Y2* ячеек:
X1* = X1 + X2,
X2* = X21,
Y1* = Y1 + Y2 + Y3,
Y2* = Y31,
где X11, X31, X12, X32, X21,Y11, Y21, Y12, Y22, Y13, Y23, Y31 – расстояния, показанные на рисунке 1.11.
1.5.2 Исследование существующей методики согласования
габаритов и положения выводов стыкуемых ячеек и выявление ее
недостатков. Динамическая модель топологии ячейки
Описанная в предыдущем пункте методика согласования габаритов и положения выводов стыкуемых ячеек [25, 29, 30] достаточно проста и наглядна.
Именно в соответствие с ней строились иерархические технологически инвариантные специализированные кремниевые компиляторы [26-29], результаты работы которых приведены на рисунках 1.9 и 1.10. Однако не всегда результат ее
применения будет оптимальным [33-35].
Рассмотрим в качестве примера процесс стыковки ячеек F1 и F2, топологические эскизы и чертежи которых приведены на рисунках 1.12, а и 1.12, б соответственно.
38
а)
б)
F2
hvg hvg hvg hvg hvg hvg hvg hvg . . .
2 2 2 2 2 2 2 2
Ячейка
F2
Ячейка
F2
hvg hvg hvg hvg hvg . . .
2 2 2 2 2
. . . hvg hvg
2 2
Ячейка
F1
hvg hvg hvg hvg hvg hvg hvg hvg hvg . . .
2 2 2 2 2 2 2 2 2
Ячейка
F1
hvg hvg hvg hvg hvg hvg hvg hvg . . .
2 2 2 2 2 2 2 2
. . . hvg
2
hvg hvg hvg hvg hvg hvg hvg hvg hvg . . .
2 2 2 2 2 2 2 2 2
hvg hvg hvg hvg hvg . . .
2 2 2 2 2
hvg – шаг виртуальной сетки
– стыкуемые выводы ячеек
– поликремний
– металл нижний
– диффузионная область
– металл нижний с
контактным окном
Рисунок 1.12 – Стыкуемые ячейки КМОП СБИС: а) топологические эскизы;
б) топологические чертежи на основе сетки с постоянным шагом в жестких
проектных нормах
39
Первым этапом обработки ячеек является их сжатие по горизонтали, иллюстрируемое рисунком 1.13.
При использовании простых алгоритмов сжатия линии виртуальной координатной сетки смещаются в направлении сжатия (в примере справа налево)
– пока не совместятся с виртуальной линией, на которой располагается
какой-либо элемент топологии или
– пока смещающиеся вместе с виртуальной линией расположенные на
ней элементы не окажутся на минимально допустимом проектными
нормами расстоянии от элементов в левой, ранее сжатой части топологии.
Таким образом, некоторые линии виртуальной сетки могут совмещаться
друг с другом, как вертикальные линии “1,0” и “1,5” или “2,0” и “2,5” правой
ячейки F2 на рисунке 1.13, б.
При использовании сложных алгоритмов сжатия уже не линии, а отдельные элементы топологии или даже их части могут смещаться друг относительно друга, проскальзывая над соседними элементами в несвязанных с ними топологических слоях, что приводит к еще большим взаимным смещениям элементов, чем при использовании простых алгоритмов сжатия.
За сжатием по горизонтали следует этап вертикального сжатия ячеек (в
примере сверху вниз). На рисунке 1.14 представлены исходные (рисунок 1.14, а) и результирующие (рисунок 1.14, б) топологии этапа вертикального
сжатия.
При вертикальном сжатии в нашем примере друг с другом совмещаются в
левой ячейке F1 горизонтальные линии “1,5” и “2,0”, “2,5” и “3,0”, а в правой
ячейке F2 горизонтальные линии “0,5”, “1,0” и “1,5” или “2,0” и “2,5”, “3,0” и
“3,5”.
Полученные ячейки имеют меньшую площадь, но и их габариты, и положение их выводов – различны, а потому, ни о какой стыковке элементов речи
быть не может.
40
Для согласования стыкуемых ячеек СБИС в заданных проектных нормах
необходимо выполнить следующие действия, иллюстрируемые рисунком 1.15:
– выбрать максимальные значения из пар расстояний между стыкуемыми
объектами (выводами или границами ячеек, расположенными на виртуальных линиях с выделенными на рисунке 1.15, а жирным шрифтом
номерами):
RY1 = max ( RYF11, RYF21 ) = RYF11 ;
RY2 = max ( RYF12, RYF22 ) = RYF12 ;
RY3 = max ( RYF13, RYF23 ) = RYF23 ;
RY4 = max ( RYF14, RYF24 ) = RYF14 .
– повторить сжатие, используя полученные значения в качестве дополнительных ограничений на взаимное расположение соответствующих
элементов топологии стыкуемых ячеек.
Однако полученные в результате топологические чертежи, подготовленные для объединения в более крупный фрагмент СБИС, как это видно из рисунка 1.15, б, могут обладать избыточной площадью на кристалле.
Это связано с тем, что при сжатии расстояние между согласуемыми элементами стыкуемых ячеек (выводами или границами) определяется не только
их взаимным влиянием, но и влиянием, оказываемым на них другими элементами топологии, смещающимися друг относительно друга при сжатии.
Таким образом, недостатком существующей методики согласования габаритов и положения выводов стыкуемых ячеек является рассмотрение ячейки
как статического множества элементов топологии.
В качестве альтернативы предлагается динамическая модель ячеек СБИС
[33-35], в рамках которой ячейки рассматриваются как динамические множества
взаимодействующих элементов, влияние которых друг на друга в некоторой окружающей их области, определяющее их положение, изменяется при раздвижке
частей топологии в процессе сжатия с дополнительными ограничениями.
41
а)
VY
VY
VXF1
– 0,5
Ячейка
F1
...
...
VYF1
VYF2
4,0
3,5
3,5
3,0
3,0
2,5
2,5
2,0
2,0
1,5
1,5
1,0
1,0
0,5
0,5
0,0
VX
0,0 . . . VXF1
– 1,0
б)
0,0
0,0 0,5 1,0 1,5 2,0 2,5 . . . VXF2
VXF1
VYF2
...
VXF1
– 0,5
...
Ячейка
F1
VX
VY
VY
VYF1
Ячейка
F2
4,0
3,5
3,5
3,0
3,0
2,5
2,5
2,0
2,0
1,5
1,5
1,0
1,0
0,5
0,5
0,0
VX 0,0
0,0 . . .
VXF1
Ячейка
F2
VX
1,0
0,0
0,5 1,5
2,0 VXF2
2,5 . . .
– Стыкуемые выводы ячеек
– Границы ячеек (исходные и новые)
– Поликремний
– Металл нижний
– Диффузионная область
– Металл нижний с контактным окном
Рисунок 1.13 – Горизонтальное сжатие стыкуемых ячеек КМОП СБИС в
заданных проектных нормах: а) исходные топологические чертежи на основе
сетки с постоянным шагом; б) чертежи после горизонтального сжатия
42
а)
VY
Ячейка
F1
4,0
3,5
3,5
3,0
3,0
2,5
2,5
2,0
2,0
1,5
1,5
1,0
1,0
0,5
0,5
0,0
VX 0,0
0,0 . . .
б)
VY
VY
...
...
VYF1
VYF2
VXF1
– 0,5
VXF1
Ячейка
F2
VX
1,0
0,0
0,5 1,5
2,0 VXF2
2,5 . . .
VY
VXF1
– 0,5
...
VYF1
3,5
...
VYF2
Ячейка
F1
4,0
3,0
2,5
3,5
3,0
2,5
2,0
2,0
1,5
1,0
0,5
0,0
0,0 . . .
Ячейка
F2
0,5
VX 0,0
1,0
VXF1
0,0
0,5 1,5
1,0 1,5
VX
2,0 VXF2
2,5 . . .
– Стыкуемые выводы ячеек
– Границы ячеек (исходные и новые)
– Поликремний
– Металл нижний
– Диффузионная область
– Металл нижний с контактным окном
Рисунок 1.14 – Вертикальное сжатие стыкуемых ячеек КМОП СБИС в заданных
проектных нормах: а) топологические чертежи после горизонтального сжатия;
б) топологические чертежи после вертикального сжатия
43
а)
VY
VY
VXF1
– 0,5
2,0
1,5
2,0
1,0
0,5
0,0
1,5
1,0
RYF11
VX
б)
0,0 . . .
VY
1,0
0,0
0,5 1,5
VXF1
2,0 VXF2
2,5 . . .
RYF22
3,5
3,0
RYF23 RYF24
...
3,0
RYF21
2,5
RYF12
Ячейка
F1
...
3,5
RYF13 RYF14
VYF1
VYF2
4,0
2,5
0,5
0,0
Ячейка
F2
VX
VY
VXF1 – 0,5
VYF1
3,5
...
...
RY4
VYF2
RY3
4,0
3,5
3,0
3,0
2,0
1,5
0,5
0,0
Ячейка
F2
2,0
1,0
1,5
1,0
VX
0,0 . . .
2,5
RY2
2,5
VXF1
RY1
Ячейка
F1
1,0
0,0
0,5 1,5
2,0 VXF2
2,5 . . .
0,5
VX
0,0
– Стыкуемые выводы ячеек
– Границы ячеек (исходные и новые)
– Поликремний
– Металл нижний
– Диффузионная область
– Металл нижний с контактным окном
Рисунок 1.15 – Единовременное согласование стыкуемых ячеек КМОП СБИС в
заданных проектных нормах: а) топологические чертежи после горизонтального
сжатия; б) топологические чертежи после однократного вертикального сжатия с
ограничениями
44
1.5.3 Модернизация иерархического проектирования топологии
макроблоков. Итерационное сжатие топологии
В примере на рисунке 1.15, б расстояние RY2 между выводами ячеек F1 и F2 с
виртуальными координатами 2,5 и 4,0 по оси VY чрезмерно велико в связи с тем,
что в ячейке F2 при сжатии без ограничений (рисунок 1.15, а):
– вывод в слое металла на горизонтальной виртуальной линии 2,5, не встретив “препятствий”, опустился до горизонтальной виртуальной линии 2,0,
– а вывод в слое поликремния на горизонтальной виртуальной линии 4,0 существенно “отстал” от него, “упершись” в поликремниевую шину на виртуальной
линии 3,0, в свою очередь встретившую «препятствие» в лице контакта к поликремнию на виртуальной линии 2,0.
Избежать возникновения подобных ситуаций при сжатии возможно лишь,
перейдя к динамической модели топологии ячеек и отказавшись от единовременного определения ограничений на взаимное расположение стыкуемых элементов топологии ячеек. Этот процесс нужно осуществлять итерационно [3335], начиная с “нижних” выводов, путем поэтапного сжатия топологии, определения положения очередных выводов стыкуемых ячеек, выбора максимального
из полученных значений и повторения сжатия с использованием полученной величины в качестве еще одного очередного ограничения на взаимное расположение элементов стыкуемых ячеек.
В качестве иллюстраций к сказанному на рисунках 1.16, а и 1.16, б представлены соответственно:
– топологии рассматривавшихся ячеек на этапе определения величины ограничения на расстояние между выводами ячейки F1 с виртуальными координатами
2,5 и 3,5 по оси VY и выводами ячейки F2 с виртуальными координатами 2,5 и 4,0
по оси VY,
– результирующие топологии рассматривавшихся ячеек, в которых отсутствует избыточная площадь на кристалле.
45
VY
VY
VXF1
– 0,5
2,0
1,5
0,5
0,0
1,0
1,5
1,0
VX
VY
VXF1
1,0
0,0
0,5 1,5
2,0 VXF2
2,5 . . .
0,5
VX
0,0
...
RY4
...
RY3
4,0
3,5
3,0
Ячейка
F2
2,0
1,0
VXF1
RY1
VX
0,0 . . .
2,5
RY2
3,0
2,0
1,5
0,5
0,0
Ячейка
F2
VYF2
3,5
2,5
2,5
VY
VXF1
– 0,5
VYF1
Ячейка
F1
4,0
2,0
0,0 . . .
б)
VYF2
RYF24
3,5
3,0
3,0
RY2
2,5
RY1
Ячейка
F1
RYF13 RYF14
...
3,5
...
VYF1
RYF23
а)
1,0
0,0
0,5 1,5
1,5
1,0
0,5
2,0 VXF2
2,5 . . .
0,0
VX
– Стыкуемые выводы ячеек
– Границы ячеек (исходные и новые)
– Поликремний
– Металл нижний
– Диффузионная область
– Металл нижний с контактным окном
Рисунок 1.16 – Итерационное согласование стыкуемых ячеек КМОП СБИС в заданных проектных нормах: а) определение величины RY3 ограничения на расстояние по оси VY между выводами ячеек F1 и F2; б) результат итерационного
согласования ячеек
46
Программа «Matching of Cells», реализующая данный подход, который в
дальнейшем будем называть итерационным согласованием выводов и габаритов
ячеек, включает процедуры [36-38], осуществляющие:
– чтение координат из соответствующих структур данных,
– определение значения ограничения на взаимное расположение выводов
для очередного этапа сжатия топологии ячеек,
– запись очередного полученного значения ограничения в программу управления сжатием стыкуемых ячеек.
В качестве исходных данных для программы выступают наборы меток и
значений виртуальных координат выводов и границ для двух фрагментов.
Распространение методики итерационного согласования выводов и габаритов ячеек, на произвольное число ячеек позволило существенно упростить и ускорить процесс иерархического проектирования макрофрагментов СБИС, обеспечивая автоматическое согласование целых строк и столбцов разнотипных стыкуемых ячеек, которое будет проиллюстрировано в главе 2 на примере технологически инвариантного компилятора матричного делителя.
ВЫВОДЫ ПО ГЛАВЕ 1
1. Проведен анализ основных этапов проектирования топологии иерархических макроблоков СБИС и в качестве подлежащих автоматизации в рамках
данной работы выделены два функционально значимых этапа:
– согласование топологии ячеек по габаритам и положению выводов в процессе их настройки на задаваемые разработчиком проектные нормы;
– сборка топологии из ячеек.
2. На основании результатов анализа процесса согласования габаритов и положения выводов ячеек предложена динамическая модель топологии ячеек СБИС,
согласно которой ячейки рассматриваются как динамические множества элемен-
47
тов, взаимодействующих друг с другом и соответственно влияющих на положение соседей в некоторой окружающей их области.
3. Предложена базирующаяся на динамической модели ячеек СБИС методика индивидуального итерационного согласования положения стыкуемых выводов и границ топологии ячеек макроблоков СБИС, обеспечивающая высокую
плотность упаковки топологии макроблоков. Такой подход позволяет после согласования каждой из пар выводов учитывать изменения во взаимном влиянии
внутренних элементов топологии ячеек, происходящие вследствие осуществляемой при согласовании раздвижки топологии.
48
ГЛАВА 2 ТЕХНОЛОГИЧЕСКИ ИНВАРИАНТНАЯ КОНЦЕПЦИЯ
ПРОГРАММНОЙ ГЕНЕРАЦИИ ИЕРАРХИЧЕСКОГО ОПИСАНИЯ
ТОПОЛОГИИ МАКРОБЛОКА СБИС
Программная генерация топологической информации позволяет придать
фрагменту свойство гибкости и обеспечивает возможность комплексной параметризации на всех уровнях: информационном, алгоритмическом, структурном, схемотехническом, топологическом. Программа, генерирующая реализацию топологии фрагмента СБИС с заданными значениями параметров, называется специализированным кремниевым компилятором (СКК). В данной главе описан процесс
разработки технологически инвариантных компиляторов макроблоков СБИС в
соответствии с приведенной в разделе 2.1 методикой.
В качестве объекта приложения методики проектирования взят матричный
делитель без восстановления остатка.
2.1 Разработка модернизированной методики программной
генерации иерархического описания топологии макроблока СБИС
Выше были описаны разработанные в рамках данного исследования динамическая модель ячеек СБИС и базирующаяся на ней методики итерационного
согласования выводов и габаритов ячеек. В данном разделе описывается созданная на их основе методика программной генерации иерархического описания топологии макроблока СБИС.
Программная генерация иерархического описания топологии макроблока
СБИС осуществляется в соответствии с приведенной ниже последовательностью
действий.
1. Разработка структурно-топологического плана макроблока СБИС и составление его текстового иерархического описания – спецификации макроблока.
2. Разработка библиотеки виртуальных описаний топологий ячеек макроблока в редакторе TopDesign.
49
3. Разработка библиотеки текстовых файлов спецификаций ячеек макроблока.
4. Формирование библиотеки реальных описаний топологий ячеек макроблока в заданных проектных нормах путем автоматического согласования ячеек
по положению выводов и границ между собой в соответствии с заданным структурным планом макроблока с помощью программы «Matching of Cells» [36-38],
(речь о которой пойдет ниже).
5. Генерация выходного файла иерархического описания топологии макроблока на языке CIF с помощью программы «Matching of Cells».
Ниже последовательность действий рассмотрена более подробно.
Основные действия по генерации топологии макроблоков выполнятся с помощью программы Matching of Cells, которая согласует по границам и положению
выводов топологии фрагментов СБИС и осуществляет сборку макроблока. Результатом ее работы является файл, содержащий библиотеку топологических описаний согласованных ячеек и иерархическое описание реализуемого макроблока.
Входными данными для нее являются набор файлов виртуального описания ячеек, набор файлов их спецификаций и файл иерархического описания макроблока.
Информацию, о том какие ячейки согласуются между собой программа получает из файла иерархического описания макроблока, отражающего пространственную реализацию структуры макроблока СБИС. Информация о согласуемых выводах, извлекается программой из файлов спецификации ячеек, а значения координат виртуальных линий, на которых расположены согласуемые элементы топологии
ячеек, извлекаются из файлов реализации сжатия ячеек (*.xy файлы, находятся в
папке для размещения файлов реализации сжатия топологий).
Позиционирование ячеек в строках и столбцах и позиционирование строк и
столбцов в макроблоке осуществляется в соответствии со структурно-топологическим планом задаваемым файлом иерархического описания макроблока.
Согласование ячеек в устройстве с двумерной организацией структурно-топологического плана осуществляется в два этапа: по каждой из двух осей координат.
50
После получения в заданных проектных нормах библиотеки согласованных
по габаритам и положению выводов ячеек выполняется сборка топологии макроблока. Исходной информацией для сборки служат текстовые описания (аналогично описаниям на языке VHDL) структуры макроблока СБИС и его составляющих.
Описание компонуемой топологии состоит из имени структурного элемента, типа его пространственной ориентации (горизонтальный (g) или вертикальный
(v)) и упорядоченного справа налево или сверху вниз списка имен входящих в него элементов более низкого уровня с указанием их числа.
В соответствии с описанным таким образом структурно-топологическим планом формируется иерархический файл, описывающий топологию макроблока на
языке описания топологии CIF. В него записываются описания топологии ячеек,
полученные в результате итерационного согласования ячеек по габаритам и положению выводов. К ним добавляются описания собираемых из них структурных
элементов макроблока и самого макроблока.
Разработанная методика и реализованная программа Matching of Cells позволяют согласовывать любые матричные конструкции. Далее методика будет
подробно продемонстрирована на примере матричного делителя.
2.2 Разработка структурно-топологического плана
макроблока СБИС
Как уже было отмечено выше, регулярные макроблоки собираются из заказных специализированных ячеек с топологией, оптимизированной под конкретную
схему, в соответствии с топологическим планом, более или менее однозначно определяемым спецификой реализуемой схемы, например, реализуемым аппаратным образом алгоритмом. Такие устройства, построенные в соответствии с идеологией пространственной реализации алгоритма, являются наиболее быстродействующими. Сущность пространственной реализации алгоритма состоит в том, что
каждая из операций выполняется на отдельном блоке устройства (сумматор,
мультиплексор, счетчик, …), используемом в процессе вычислений лишь один
51
раз, структура соответствует последовательности операций в алгоритме, а сдвиги
кодовых комбинаций реализуются посредством соответствующей коммутации
блоков вычислительного устройства. В связи с тем, что такие устройства требуют
большой площади кристалла, при их разработке применяется изощренное топологическое проектирование, позволяющее даже при незначительном уменьшении
размеров матрицируемых ячеек существенно снизить аппаратные затраты за счет
большого их количества.
Основные этапы алгоритма деления без восстановления остатка [39], перечислены ниже.
1. Берутся модули от делимого и делителя.
2. Исходное значение частичного остатка полагается равным старшим разрядам
делимого.
3. Частичный остаток удваивается путем сдвига на один разряд влево, при
этом в освобождающийся при сдвиге младший разряд частичного остатка
заносится очередная цифра делимого.
4. Из сдвинутого частичного остатка вычитается делитель, если остаток не отрицателен, либо к сдвинутому частичному остатку прибавляется делитель, если
остаток отрицателен.
5. Очередная цифра модуля частного равна 1, если результат вычитания не
отрицателен, и 0, если отрицателен.
6. Пункты 3-5 последовательно выполняются для получения всех цифр модуля
частного.
7. Знак частного – “плюс”, если знаки делимого и делителя одинаковы, и
“минус” в противном случае.
Приведенные на рисунках 2.1 и 2.2 пример выполнения деления и соответствующая ему структурная схема дают представление о пространственной реализации алгоритма деления без восстановления остатка. Необходимо отметить, что для
повышения наглядности и упрощения примера, иллюстрирующего иерархическое
проектирование в реализуемую схему не включены регистр частного, регистр де-
52
лимого и регистр делителя, включающий схему изменения знака делителя («строку» последовательного полусумматора с инверторами на входах разрядов делителя
и единицей на входе переноса в младший разряд) и буферные каскады, усиливающие сигналы перед подачей их на матрицу делителя.
В связи с тем, что макроблоки СБИС должны иметь форму прямоугольника,
переход от их структурной схемы к структурно-топологическому плану часто
предполагает изменение формы. Применительно к матричному делителю без восстановления остатка этот переход осуществляется путем преобразования параллелограмма структуры в прямоугольник топологии. Оно осуществляется путем взаимного смещения строк устройства. Причем межсоединения вносятся внутрь топологии ячеек и не отображаются на плане как самостоятельные элементы.
В структурно-топологическом плане делителя, приведенном на рисунке 2.3,
можно выделить четыре основных типа строк, перечисленных ниже.
1. Строка матричного делителя первого типа (SH2) содержит ячейки четырех
видов: буфер B, левую ячейку LC, базовую ячейку BASC и верхнюю правую ячейку
RTC2. В соответствии с алгоритмом деления в первой строке матричного делителя
осуществляется вычитание делителя из делимого, для чего на входы сумматора
первой строки подаются прямые старшие разряды делимого и инверсные разряды
делителя, а также входной перенос в младший разряде, равный единице Сin=1.
2. К строкам второго типа (SH1) относятся строки верхней части делителя. В
этих (RA-RB) строках, в зависимости от знака предыдущего остатка, к нему прибавляется или из него вычитается делитель. Поэтому на вход переноса подается
управляющий сигнал мультиплексора, равный инверсии знакового разряда остатка из предыдущего сумматора.
53
Рисунок 2.1 – Пример выполнения операции деления методом без восстановления
остатка
54
Рисунок 2.2 – Структурная схема матричного делителя без восстановления остатка
55
RB разрядный делитель B (парафазный)
RA разрядное делимое А
...
RB старших
разрядов делимого А
RA-RB младших
разрядов делимого А
RСh разрядное частное Ch
...
.
.
.
0
B
LC
BASC
...
BASC RTC2
Cin1=1
B
LC
BASC
...
BASC RTC1
Cin2
...
...
B
LC
BASC
...
BASC RTC1
CinRA-RB
B
LC
BASC
...
BASC RBC1
CinRA-RB +1
...
...
B
LC
BASC
...
BB
BLC
BC
...
...
...
...
BASC RBC1
BC
RBC2
RA – разрядность делимого A
RB – разрядность делителя B
RCh – разрядность частного Сh
SH1 – верхние строки средней части делителя
SH2 – верхняя строка делителя
SL1 – нижние строки средней части делителя
SL2 – нижняя строка делителя
Cini – входной перенос в i-ю строку делителя
B – буферный каскад
BB – нижний буферный каскад
...
0
0
1 верхняя
строка SH2
RA-RB
верхних
строк SH1
...
...
...
.
.
.
...
...
RСh-(RA-RB+1)
дополняющих нулей
.
.
.
RСh(RA-RB+2)
нижних
строк SL1
CinRСh---1
CinRСh
1 нижняя
строка SL2
– левая ячейка
– нижняя левая ячейка
– базовая ячейка
– нижняя ячейка
– правая ячейка верхней строки SH2 делителя
– правая ячейка верхних строк SH1 средней
части делителя
RBC1 – правая ячейка нижних строк SL1 средней
части делителя
RBC2 – правая ячейка нижней строки SL2 делителя
LC
BLC
BASC
BC
RTC2
RTC1
Рисунок 2.3 – Структурно-топологический план матричного делителя без восстановления остатка
3. Число строк в верхней части определяется разрядностью делимого. В том
случае, если требуется получить частное большей разрядности, чем (RA – RB +1), раз-
56
рядная сетка делимого расширяется путем добавления требуемого (RCh – (RA – RB
+1)) количества нулей. В связи с этим в строках третьего типа (SL1) в правой позиции
располагают ячейки RBC1 модификацию ячеек RTC1, на один из входов которой подается нулевой сигнал (вход “заземляется”).
4. Строка четвертого типа (SL2) отличаются от строки третьего типа лишь
тем, что из ее ячеек исключены мультиплексоры.
При проектировании выполняется согласование топологии ячеек по габаритам и по положению выводов. Причем согласование осуществляется по двум осям
координат. Таким образом, между собой должны согласовываться не только ячейки строк четырех типов, о которых было сказано выше, но и ячейки столбцов. В
структурно-топологическом плане делителя, приведенном на рисунке 2.3, можно
выделить 4 типа столбцов:
– левый столбец, состоящий только из буферов B и BB (в связи с чем, согласование ячеек столбца друг с другом по оси абсцисс не требуется);
– второй слева столбец, включающий левые LC и нижнюю левую BLC ячейки;
– центральные столбцы, состоящие из базовых BASC и нижних базовых BC
ячеек;
– правый столбец, состоящий из правой ячейки RTC2 верхней строки SH2
делителя, правых ячеек RTC1 верхних строк SH1, правых ячеек RBC1 нижних
строк SL1 и правой ячейки RBC2 нижней строки SL2 делителя.
В строке всегда есть три ячейки: буфер B, левая ячейка LC (или BLC) и одна
из правых ячеек (RTC2, RTC1, RBC1 или RBC2). Таким образом, число базовых
ячеек BASC зависит от разрядности делителя и должно определяться выражением:
RB – 2 .
Однако в связи с тем, что разрядности операндов практически всегда четные,
ячейки делителя (естественно кроме буфера B) для сокращения их номенклатуры и
удобства матрицирования сделаны 2-разрядными. Поэтому число базовых ячеек
BASC будет равно (RB – 4)/2.
57
2.3 Разработка топологических моделей и схемотопологическое проектирование ячеек макроблока СБИС
Основными элементами матричного делителя, схемы которых приведены на
рисунках 2.4, 2.5 и 2.6 соответственно, являются сумматор, мультиплексор «2 в
1», и буфер, состоящий из инверторов.
Рисунок 2.4 – Полный одноразрядный двоичный сумматор Hample с ускорением
переноса
Следует отметить, что матричный делитель поддается схемотехнической параметризации, в том смысле, что в компиляторе делителя могут использоваться различные схемотопологические решения. Например, в качестве сумматора в матричном
делителе для повышения быстродействия имеет смысл использовать схемы с ускоренным переносом. Однако во избежание усложнения примера в нем используется
более простой сумматор Hample [40] (рисунок 2.4), тоже обладающий достаточно высоким быстродействием и отличающийся тем, что с целью уменьшения задержки в
цепи переноса в нем уменьшена входная емкость. Входной каскад переноса организо-
58
ван так, что в нем число транзисторов, на которые поступает сигнал переноса из предыдущего разряда сокращено с четырех до двух (общее число таких транзисторов во
всем сумматоре изменилось с восьми до шести).
В делителе без восстановления остатка на входы мультиплексора подаются
прямые и инверсные значения разрядов делителя. Поэтому простая перекоммутация этих сигналов позволяет использовать мультиплексор не с двумя инверторами на выходе (рисунок 2.5, а), а с одним (рисунок 2.5, б), и тем самым сократить
площадь схемы на кристалле.
В связи с тем, что для повышения надежности работы в мультиплексорах
использованы двутранзисторные ключи на транзисторах разных типов, через которые сигнал любой полярности проходит без искажения, для управления мультиплексорами потребуются парофазные сигналы. Поэтому в схеме буфера (рисунок 2.6) предусмотрены как инверсный выход (с которого снимается разряд частного), так и прямой.
С целью минимизации площади схем на кристалле во всех ячейках, кроме
буферов, за основу была принята топологическая модель, приведенная на рисунке 2.7.
В соответствии с этой моделью области транзисторов в топологии соседних
ячеек расположены зеркально симметрично друг к другу. Это позволяет вдвое сократить количество зон, разделяющих элементы с разным типом проводимости.
Поэтому, как уже было сказано выше (смотрите раздел 2.1), для упрощения
матрицирования ячеек и в связи с тем, что разрядности операндов практически
всегда четные, ячейки делителя сделаны 2-разрядными.
Вертикальные шины земли и питания, проходящие насквозь через ячейки матричного делителя, проведены в слое верхнего металла, что позволяет, используя топологические слои поликремния и нижнего металла, наиболее эффективно:
– выполнить внутреннюю разводку ячеек;
– организовать связи между ячейками как внутри одной строки, так и между
ячейками разных строк.
59
а)
MUX
MUX
TN1
x0
Bi
0
VCC
VCC
VCC
TP3
TP4
TP1
MXout
x i
TN2
TN3
Bi
x1
0
TN4
0
0
VCC
TP2
б)
MUX
MUX
TN8
x0
Bi
0
VCC
VCC
TP6
TP8
MXout
x i
TN5
TN6
x1
Bi
0
0
VCC
TP5
Рисунок 2.5 – Схемы мультиплексоров с прямым (а) и инверсным (б) выходом
Все сказанное можно проиллюстрировать примером топологии сдвоенной
базовой ячейки делителя, приведенной на рисунке 2.8.
Буферы (рисунок 2.9) реализованы в соответствии с иной топологической
моделью.
60
Coutj
MUXj
Chj
MUXj
Рисунок 2.6 – Схема буфера
Транзисторы n-типа
GND
Транзисторы p-типа
GND
VCC
Ячейка 1
- карман p-типа
Транзисторы n-типа
VCC
GND
GND
Ячейка 2
- карман n-типа
- граница ячейки
Рисунок 2.7 – Топологическая модель базовой ячейки матричного делителя
В связи с тем, что в них с целью упрощения параметризации ширин каналов
транзисторов используются «размножающиеся» контакты к диффузионным облас-
61
тям с нижним металлом, проходящие вертикально через всю ячейку, горизонтальные шины могут быть проведены только в слое верхнего металла.
Рисунок 2.8 – Топологический эскиз двухразрядной секции базовой ячейки матричного делителя на основе сумматора Hample
Итак, большинство ячеек матричного делителя – это две секции, каждая из
которых включает в себя одноразрядный сумматор и мультиплексор. Однако, в
62
соответствии со структурно-топологическим планом делителя (рисунок 2.3) можно выделить несколько модификаций таких ячеек.
Рисунок 2.9 – Топологический эскиз буферного каскада матричного делителя
63
BASC – базовая ячейка, является основной, формирует перенос и передает
его в следующую за ней по горизонтали ячейку. Имеет две модификации – левую и
правую ячейки.
LC – левая ячейка является модификацией базовой, отличается от нее тем,
что имеет соединение с буфером, куда передается сумма.
RTC2 – верхняя правая ячейка в первой строке матричного делителя. В нее
поступает входной перенос Cin=1, что обеспечивает безусловное вычитание на
первом шаге алгоритма деления.
RTC1 – верхняя правая ячейка в верхних строках матричного делителя. На
один из входов сумматора ячейки данного типа поступают разряды делимого.
RBC1 – нижняя правая ячейка в нижних строках матричного делителя. На
один из входов сумматора ячейки данного типа поступают нули (для формирования дробной части частного), так как разряды делимого закончились.
RBC2 – нижняя правая ячейка в последней строке матричного делителя.
Аналогична RBC1 или RTC1 (если разрядность частного RСh меньше разности
RA-RB разрядностей делимого и делителя), но RBC2 не содержит мультиплексоров.
B – буферный каскад, предназначен для усиления выходного сигнала и сигнала, управляющего мультиплексорами следующей строки делителя.
BB – буферный каскад нижней строки матричного делителя, потенциально
может обладать меньшей мощностью, нежели B.
Ячейки на основе сумматора и мультиплексоров отличаются друг от друга
нюансами внутренней разводки, позволяющими получать на базе одинаковых
транзисторных сборок различные функциональные элементы делителя.
Расположение же внешних выводов у ячеек практически одинаковое. Оно
иллюстрируется рисунком 2.10, на котором приведен топологический эскиз ячейки BASC с обозначением выводов.
64
Рисунок 2.10 – Топологический эскиз базовой ячейки BASC матричного делителя
без восстановления остатка с обозначением выводов
65
2.4 Методика генерации ячеек и сборки макроблока
В данном разделе рассматривается процесс согласования ячеек и сборки из
них топологии регулярного иерархического макроблока СБИС. Описывается консольное приложение «Matching of Cells», позволяющее в автоматическом режиме
осуществить согласование между собой ячеек макроблока и в случае успешного
завершения этих действий выполнить операцию сборки макроблока [36-38].
Типовая последовательность этапов для получения топологии иерархического макроблока СБИС приведена ниже.
1. Пользователь должен разработать структурный план макроблока СБИС и
подготовить его описание.
Описание структурного плана представляет собой текстовый файл, формируемый в соответствии с синтаксисом, описанным ниже. Данный файл используется как на этапе согласования ячеек, так и на этапе сборки макроблока СБИС.
В начале файла спецификации необходимо обязательно определить следующие 3 переменные, которые отвечают за пути к папкам.
a. Путь к материнской папке.
b. Путь к папке для размещения файлов виртуальных описаний ячеек (файлы *.vlf).
c. Путь к папке для размещения файлов реализации сжатия топологий (файлы *.xy).
В рассматриваемом примере матричного делителя в папке проекта размещается файл Divider.txt:
c:\\TopVG
c:\\TopVG\\Matching of Cells\\Divider
c:\\TopVG\\Matching of Cells\\Divider\\M1.2
SH1 g: buffer buffer, 1 ; F_left_base_cell
F_left_base_cell, 1 ;
66
SH2 g: buffer_end buffer_end, 1 ;
F_bottom_left_cell F_bottom_left_cell, 1 ;
Divider v: SH1 , 2 ; SH2 , 2 ;
2. В соответствии со структурным планом пользователь должен подготовить все необходимые файлы виртуальных описаний топологии ячеек, используемых в текущем проекте, и файлы спецификации для каждой ячейки.
Виртуальные описания топологий должны быть спроектированы в топологическом редакторе TopDesign (файлы «*.vlf»), а файлы спецификации созданы и заполнены вручную с помощью любого текстового редактора (файлы «*.dat»)
(структура файла будет описана ниже). Эти файлы являются входными данными
для программы «Matching of Cells».
В рассматриваемом примере матричного делителя ими являются расположенные в папке проекта Divider:
– файлы виртуального описания топологии ячеек: B.vlf, BB.vlf, LC.vlf,
BLC.vlf, BASC.vlf, BC.vlf, RTC1.vlf, RTC2.vlf, RBC1.vlf, RBC2.vlf;
– текстовые файлы спецификаций ячеек: B1.dat, B2.dat, B3.dat, BB.dat,
LC1.dat, LC2.dat, LC3.dat, BLC.dat, BASC1.dat, BASC2.dat, BASC3.dat, BC.dat,
RTC1.dat, RTC2.dat, RBC1.dat, RBC2.dat.
Как видно из примера, файлов спецификации ячеек больше, чем файлов виртуальных описаний ячеек. Это связано с тем, что на основе файлов виртуального
описания строится несколько вариантов топологической реализации, которые могут отличаться друг от друга, так как в состав строк входят разные ячейки и при их
согласовании могут быть получены топологические варианты отличающиеся друг
от друга размеры и положением выводов.
3. С помощью программы «Matching of Cells» пользователь осуществляет
выполнение операции автоматического согласования ячеек по положению выводов и границ между собой в соответствии с заданным структурным планом
макроблока.
67
4. После успешного выполнения операции согласования ячеек осуществляется генерация программой «Matching of Cells» выходного файла, содержащего
описание топологии согласованных ячеек и иерархическое описание сборки макроблока на языке CIF.
При запуске приложения Matching of Cells пользователь должен учесть следующие принципиальные особенности.
 Файл действующей лицензии системы TopDesign должен находиться в
материнском каталоге, в который должна быть инсталлирована система
TopDesign.
 Программа генерации файла описания топологии макроблока на языке
CIF (vgcif.exe) должна находиться в материнском каталоге.
 Файлы технологии (tehnol.bin – для операции сжатия, tehcif.bin – для генерации выходного CIF-файла) должны находиться в каталоге для размещения файлов реализации сжатия топологий (*.xy).
При невыполнении какого-либо пункта из списка, корректная работа программы не гарантируется.
2.4.1 Разработка файлов спецификации ячеек макроблока
Файл спецификации спроектированной ячейки содержит имена и координаты виртуальных линий, на которых расположены ее выводы и границы. Имена
и координаты используются для операции согласования ячеек. Спецификации
ячеек определяют, какие их выводы будут согласовываться в процессе обработки.
Доступ к получаемым в результате сжатия значениям реальных координат
элементов топологии осуществляется по значениям координат виртуальных. А
ограничения на взаимное расположение элементов топологии, задаются как ограничения на взаимное положение проводимых через них виртуальных линий, которые должны иметь уникальные (для одной оси координат) имена. Поэтому
сквозной вывод, проходящий через границы ячейки на разных уровнях (по горизонтали или вертикали) должен быть связан с разными по имени виртуальными
68
линиями, а разные сигналы, подходящие с противоположных сторон на одном
уровне должны быть связаны с одной и той же виртуальной линией. Граница
ячейки описывается таким же образом, как если бы этот был сквозной одноуровневый вывод, т.е. связывается с одной виртуальной линией.
В топологическом редакторе TopDesign виртуальные линии определены,
как горизонтальные или вертикальные (Components->Virtual Line-> Vertical / Horizontal).
Каждая строка в файле спецификации представляет собой следующую конструкцию:
Имя – Отношение – Значение
где
 Имя – название виртуальной линии,
 Значение – значение виртуальной координаты виртуальной линии,
 «–» – разделитель выражений в строке (можно использовать любой разделитель из следующего набора «-!:?,;' '»),
 Отношение – связь виртуальной линии с одной из четырех границ ячейки
(определено четыре ключевых слова):
Сокращенное
Полное
Значение
top
top
сверху
btm
bottom
снизу
lft
left
слева
rht
right
справа
Примеры строк файла спецификации:
11 -- lft -- 2.0
12 -- rht -- 3.0
13 -- lft -- 5.0
14 -- rht -- 6.0
15 -- lft -- 8.0
21 -- lft -- 8.0
69
ar -- top -- 6.0
at -- btm -- 6.0
mp -- rht -- 6.0
Замечание: на каждой строке файла спецификации, определено описание
одного вывода или границы ячейки.
В качестве примера ниже приведена спецификация левой ячейки BLC матричного делителя, иллюстрируемая соответствующим топологическим эскизом с
обозначением виртуальных линий (рисунок 2.11).
BRleft
S_L
GND_L
MP_L
Y_L
MP_R
GND_R
BRright
BRtop
Test
1
CoutCin
SumBuf
BRbottom
X_L
MN_L
VCC_L
VCC_R
MN_R
X_R
Рисунок 2.11 – Топологический эскиз двухразрядной секции левой ячейки BLC
матричного делителя без восстановления остатка
70
BRbottom--lft--0.00
BRbottom--rht--0.00
SumBuf--lft--1.00
BRtop--lft--16.00
SumBuf--rht--1.00
CoutCin--rht--2.00
Test1--rht--14.00
BRtop--rht--16.00
GND_L--top--4.50
GND_L--btm--4.50
VCC_L--top--5.50
VCC_L--btm--5.50
GND_R--top--15.50
GND_R--btm--15.50
VCC_R--top--14.50
VCC_R--btm--14.50
BRleft--btm--0.00
BRleft--top--0.00
X_L--top--0.50
X_L--btm--0.50
S_L--top--1.50
S_L--btm--1.50
MN_L--top--2.50
MN_L--btm--2.50
MP_L--top--7.50
MP_L--btm--7.50
Y_L--top--9.50
Y_L--btm--9.50
MP_R--top--12.50
71
MP_R--btm--12.50
MN_R--top--17.50
MN_R--btm--17.50
X_R--top--19.50
X_R--btm--19.50
BRright--top--20.00
BRright--btm--20.00
2.4.2 Разработка файла спецификации макроблока
В файле спецификации, описывающей структурный план макроблока, используется иерархическое текстовое описание расположения ячеек: ячейки собираются в горизонтальные строки, которые в свою очередь по вертикали объединяются в матрицы. Ячейки и строки имеют матрицирующие коэффициенты, которые будут учитываться при выполнении операции сборки. Каждая строка в файле
спецификации представляет собой следующую конструкцию (по окончании описания всех горизонтальных строк, текстовое описание завершается описанием
вертикальной сборки строк в матрицу):
1) горизонтальная строка:
NameRow g: NameCell_1 NameSCell_1 , K1 ; NameCell_2 NameSCell_2 , K2 ;
… NameCell_N NameSCell_N , KN ; EOL
2) вертикальная сборка строк (матрица):
NameMB v: NameRow , K1 ; NameRow_2 , K2 ; … NameRow_N , KN ; EOL
где
NameRow – имя строки, которая включает некоторое количество ячеек,
NameCell_i – имя описания i-го типа виртуальной ячейки,
NameSCell_i – имя спецификации i-го типа виртуальной ячейки,
NameMB – имя макроблока в cif-файле,
Ki – коэффициент матрицирования (ячейки/строки),
g: (v:) – служебные символы, определяющие тип строки (горизонтальная
/вертикальная),
72
EOL – признак конца строки (End Of Line).
Замечание: разделителями между литералами являются символы «пробела»
и «точка с запятой», наличие их обязательно.
Примеры
1.
STR1 g: buffer buffer, 1 ; left_cell left_cell, 1 ; EOL
STR2 g: buffer_end buffer_end , 1 ; bottom_cell bottom_cell , 1 ; EOL
Matrix v: STR1 , 2 ; STR2 , 2 ; EOL
2.
S1 g: buffer buffer , 1 ; left_cell left_cell , 1 ;
base_cell base_cell , 1 ; right_cell right_cell , 1 ;
EOL
S2 g: buffer_end buffer_end , 1 ; bottom_cell bottom_cell , 1 ; base_cell base_cell , 1 ;
right_cell right_cell , 1 ; EOL
ResOut v: S1 , 1 ; S2 , 2 ; EOL
Необходимо обратить внимание на следующие моменты:
 ограничение на количество символов в строке – максимально 256 символов;
 файл реализации ячейки (xy-файл) будет иметь название, совпадающее с
названием спецификации ячейки (dat-файл), в котором прописывается
набор виртуальных линий);
 для ячеек – если коэффициент матрицирования равен 1, то его можно
опустить в строке описания вместе с символом «запятая».
Для наглядности ниже приводится примеры описания макроблоков делите-
лей pr_3 и Divider, состоящих соответственно из десяти 4-разрядных и десяти 6разрядных строк.
DIV1 g: B B1 , 1 ; LC LC1 , 1 ; RTC2 RTC2 , 1 ; EOL
DIV2 g: B B2 , 1 ; LC LC2 , 1 ; RTC2 RTC1 , 1 ; EOL
73
DIV3 g: B B3 , 1 ; LC LC3 , 1 ; RBC1 RBC1 , 1 ; EOL
DIV4 g: BB BB , 1 ; BLC BLC , 1 ; RBC2 RBC2 , 1 ; EOL
pr_3 v: DIV1 , 1 ; DIV2 , 4 ; DIV3 , 4 ; DIV4 , 1 ; EOL
SH2 g: B B1 , 1 ; LC LC1 , 1 ; BASC BASC1 , 1 ; RTC2 RTC2
, 1 ; EOL
SH1 g: B B2 , 1 ; LC LC2 , 1 ; BASC BASC2 , 1 ; RTC1 RTC1
, 1 ; EOL
SL1 g: B B3 , 1 ; LC LC3 , 1 ; BASC BASC3 , 1 ; RBC1 RBC1
, 1 ; EOL
SL2 g: BB BB , 1 ; BLC BLC , 1 ; BC BC , 1 ; RBC2 RBC2 , 1
; EOL
Divider v: SH2, 1 ; SH1 , 4 ; SL1, 4 ; SL2 , 1 ; EOL
где B – буфер;
BB – буфер для последней строки делителя;
LC – левые базовые ячейки;
BLC – нижняя левая базовая ячейка;
BASC – базовые ячейки;
BC – нижняя базовая ячейка;
RTC2 – правая базовая ячейка;
RTC1 – правая базовая ячейка верхней части матричного делителя;
RBC1 – правая базовая ячейка нижней части матричного делителя;
RBC2 – нижняя правая базовая ячейка.
В данном примере макроблок Divider выполняет деление с получением, как
целой части частного, так и дробной, из чего следует использование четырех типов строк SH2, SH1, SL1 и SL2. Каждая строка в свою очередь включает в себя
модификации буфера, левой, базовой и правой ячеек. Макроблок состоит из 1
строки типа SH2, 4 строк типа SH1, 4 строк типа SL1 и 1 строки типа SL2.
74
Позиционирование ячеек в строке матричного делителя определяется габаритами ячеек, а также их количеством, зависящим от разрядности делителя. В зависимости от разрядности делителя структурно-топологическое описание строки
(рисунок 2.12) меняется, так как меняется количество базовых ячеек в строке.
После задания файла описания макроблока запускается консольная программа Matching of Cells (главное окно, рисунок 2.13), стоит сделать замечание,
что на данный момент разрабатывается улучшенная версия программы, имеющая
графический интерфейс и дополнительные возможности.
Для приведенного примера следует выполнить следующие действия.
1. Выбрать первый пункт меню «Загрузка спецификации макроблока из
файла», для этого необходимо ввести в поле «Выбор пункта меню» цифру «1» и
подтвердить выбор, нажав кнопку «Enter». Программа попросит ввести имя файла
спецификации макроблока, например, Divider, расширение «txt» добавляется автоматически, если оно отсутствует и подтвердить ввод, нажав кнопку «Enter».
Программа проанализирует каталог на наличие файла спецификации и в случае,
если не найдет, выведет сообщение об ошибке. Если файл найден, программа
начнет извлечение информации, необходимой для согласования ячеек и сборки
результирующей топологии макроблока. Также будут проанализированы файлы
спецификаций каждой ячейки, при возникновении ошибок, будут выведены соответствующие сообщения, либо в случае успешного выполнения, будет выведено
«Спецификация макроблока загружена» (рисунок 2.14).
2. После успешного извлечения информации, необходимо выполнить операцию «Согласование ячеек в макроблоке», в процессе которого выполняется согласование ячеек (по положению выводов и границ) (рисунок 2.15).
3. После успешного выполнения операции согласования, необходимо выполнить операцию «Сборка макроблока», в процессе которого выполняется сборка структурных элементов (строк/столбцов) самого устройства. При успешном
выполнении операции на выходе генерируется файл сборки топологии макроблока. В противном случае программа выдаст сообщения об ошибках (рисунок 2.16).
75
Y
B
LC
BASC
...
BASC
RTC2
X
B_w
B_w + LC_w
B_w + LC_w + 1*BASC_w
Name_w –
ширина
ячейки Name
B_w + LC_w + ((RB/2 – 2) – 1)* BASC_w
B_w + LC_w + (RB/2 – 2)* BASC_w
Рисунок 2.12 – Структурно-топологическое описание 1-ой строки матричного делителя в общем виде
Рисунок 2.13 – Главное окно Matching of Cells
В результате выполнения данной последовательности действий программой
будут созданы файлы с расширением *.xy для каждой из используемых ячеек, а
также иерархический файл с расширением *.cif, описывающий топологию макроблока на языке описания топологии CIF. В него записываются описания топологии ячеек, полученные в результате итерационного согласования ячеек по габаритам и положению выводов. Также добавляются описания строк делителя и самого
макроблока, состоящего из этих строк.
76
Рисунок 2.14 – Задание имени файла текстовой иерархической спецификации
макроблока матричного делителя
Рисунок 2.15 – Успешное выполнение операции согласования ячеек макроблока
77
Так, после выполнения согласования ячеек и сборки макроблока Divider из
рассмотренного ранее примера для восьмиразрядного делимого, шестиразрядного
делителя и десятиразрядного частного, получаем топологию, приведенную на рисунке 2.17.
Рисунок 2.16 – Успешное выполнение операции сборки макроблока
В качестве примера на рисунке 2.18 приведена топология строки типа SH2.
Следует отметить, что на заключительном этапе разработки матричного делителя без восстановления остатка (или любого другого макроблока) для модификации структуры матричного делителя достаточно внести изменения в текстовое
описание макроблока, которое наряду с файлами данных, содержащих информацию о виртуальных линиях ячеек, является входными данными для программы
Matching of Cells.
78
Рисунок 2.17 – Топология макроблока Divider – матричного делителя без
восстановления остатка
Буфер B1
строки SH2
матричного делителя
Базовая ячейка BASC1
строки SH2
матричного делителя
Правая базовая ячейка RTC2
строки SH2
матричного делителя
Рисунок 2.18 – Топология строки типа SH2 матричного делителя Divider
Левая базовая ячейка LC1
строки SH2
матричного делителя
79
.
80
Ниже приводятся фрагменты описания топологии делителя, верхней его
строки и входящих в ее состав ячеек на языке CIF. В связи с тем, что основной задачей приводимого текста является иллюстрирование результатов согласования
ячеек и иерархической сборки из них макроблока “матричный делитель”, из описаний простых ячеек исключена вся информация, кроме операторов, описывающих границы ячеек. Описания сложных иерархических конструкций, содержащие
операторы позиционирования составляющих их элементов (как простых, так и
иерархических), приведены полностью и иллюстрируются рисунками 2.19 и 2.20.
DS 21 1 1;
(определение макроблока “матричный дели-
тель” Divider);
(описание макроблока “матричный делитель” Divider);
9 Divider;
C 17 T 0 -10207;
C 18 T 0 -20414;
C 18 T 0 -30621;
C 18 T 0 -40828;
C 18 T 0 -51035;
C 19 T 0 -61242;
C 19 T 0 -71449;
C 19 T 0 -81656;
C 19 T 0 -91863;
C 20 T 0 -99173;
DF; (оператор конца определения макроблока Divider);
DS 17 1 1;
(определение строки типа SH2);
(описание строки типа SH2);
9 SH2;
C 1 T 0 0;
C 2 T 5897 0;
81
C 3 T 15710 0;
C 4 T 25473 0;
DF; (оператор конца определения строки типа SH2);
(ОПИСАНИЕ ЯЧЕЕК – смотрите в файле Divider.cif);
DS 1 1 1;
(определение ячейки B1);
(описание ячейки B1, полученной);
(из файла описания виртуального фрагмента: B.vlf);
9 B;
(топологические примитивы ячейки B1);
…
L B1;
(границы ячейки B1);
W 0 5897 0 0 0;
W 0 0 0 0 10207 5897 10207 5897 0;
…
DF; (оператор конца определения ячейки B1);
DS 2 1 1;
(определение ячейки LC1);
(описание ячейки LC1, полученной);
(из файла описания виртуального фрагмента: LC.vlf);
9 LC;
(топологические примитивы ячейки LC1);
…
L B1;
(границы ячейки LC1);
W 0 0 0 9813 0;
W 0 0 10207 0 0;
W 0 9813 0 9813 10207;
W 0 9813 10207 0 10207;
…
DF; (оператор конца определения ячейки LC1);
82
DS 3 1 1;
(определение ячейки BASC1);
(описание ячейки BASC1, полученной);
(из файла описания виртуального фрагмента: BASC.vlf);
9 BASC;
(топологические примитивы ячейки BASC1);
…
L B1;
(границы ячейки BASC1);
W 0 0 0 9763 0;
W 0 0 10207 0 0;
W 0 9763 0 9763 10207;
W 0 9763 10207 0 10207;
…
DF; (оператор конца определения ячейки BASC1);
DS 4 1 1;
(определение ячейки RTC2);
(описание ячейки RTC2, полученной);
(из файла описания виртуального фрагмента: RTC2.vlf);
9 RTC2;
(топологические примитивы ячейки RTC2);
…
L B1;
(границы ячейки RTC2);
W 0 9803 10207 0 10207;
W 0 0 0 9803 0;
W 0 0 10207 0 0;
W 0 9803 0 9803 10207;
…
DF; (оператор конца определения ячейки RTC2);
83
Y Divider v: SH2, 1 ; SH1 , 4 ; SL1, 4 ; SL2 , 1 ; EOL
(0; 0)
X
SH2
(C 17 T 0 -10207;)
SH1
(C 18 T 0 -20414;)
SH1
(C 18 T 0 -30621;)
-10207
Divider v:
-20414
SH2, 1 ;
-30621
SH1
(C 18 T 0 -40828;)
-40828
SH1 , 4 ;
SH1
(C 18 T 0 -51035;)
SL1
(C 19 T 0 -61242;)
SL1
(C 19 T 0 -71449;)
SL1
(C 19 T 0 -81656;)
-51035
SL1 , 4 ;
-61242
-71449
-81656
SL2 , 1 ;
EOL
SL1
(C 19 T 0 -91863;)
SL2
(C 19 T 0 -99173;)
-91863
-99173
Рисунок 2.19 – Структурно-топологический план матричного делителя Divider,
топология которого приведена на рисунке 2.17
Y
5897
LC1
(C 2 T 5897 0;)
15710
BASC1
(C 3 T 15710 0;)
25473
RTC2
(C 4 T 25473 0;)
топология которой приведена на рисунке 2.18
Рисунок 2.20 – Структурно-топологический план строки типа SH2 матричного делителя Divider,
(0; 0)
B1
(C 1 T 0 0)
SH2 g: B B1 , 1 ; LC LC1 , 1 ; BASC BASC1 , 1 ; RTC2 RTC2 , 1 ; EOL
X
84
85
Приведенные фрагменты описания на языке CIF топологии делителя, его
верхней строки и входящих в ее состав ячеек наглядно демонстрируют тот неоспоримый факт, что генерация описания многоуровневых иерархических конструкций, включающая в себя:
– настройку на проектные нормы,
– согласование габаритов и положения выводов ячеек,
– сборку топологии макроблоков заданной разрядности,
представляет собой сложный трудоемкий процесс, автоматизация которого существенно ускоряет и упрощает проектирование макроблоков.
При этом при итерационном согласовании ячеек даже для макроблоков с
высокой степенью регулярности можно получить выигрыш по площади на кристалле по сравнению с использовавшимися ранее средствами единовременного их
согласования. Например даже для практически однородного матричного делителя
уменьшение аппаратных затрат на реализацию макроблока составило около 1,5 %.
ВЫВОДЫ ПО ГЛАВЕ 2
1. На основе предложенной методики индивидуального согласования положения стыкуемых выводов и границ топологии ячеек макроблоков СБИС разработана модернизированная методика программной генерации иерархического описания топологии макроблока СБИС в технологически инвариантной концепции.
2. Разработаны алгоритм и соответствующие программные средства, реализующие в технологически инвариантной концепции предложенную модернизированную методику программной генерации иерархического описания топологии
макроблоков СБИС с регулярной структурно-топологической организацией.
3. Тестирование на примере матричного делителя разработанных средств
программной генерации иерархического описания топологии макроблоков СБИС
с регулярной структурно-топологической организацией, подтвердило правильность методики и алгоритма, на основе которых они были разработаны.
86
ГЛАВА 3 ИТЕРАЦИОННОЕ СОГЛАСОВАНИЕ ПОЛОЖЕНИЯ
ВЫВОДОВ И ГАБАРИТОВ ПРОИЗВОЛЬНОГО ЧИСЛА ЯЧЕЕК
Как уже было сказано распространение метода итерационного согласования выводов и габаритов ячеек, на произвольное число ячеек позволяет существенно упростить и ускорить процесс иерархического проектирования макрофрагментов СБИС, обеспечивая автоматическое согласование целых строк и
столбцов разнотипных стыкуемых ячеек.
Однако такое автоматическое согласование, большого числа ячеек с большим же количеством выводов влечет за собой многократный запуск процедур
сжатия ячеек с учетом ограничений на расположение выводов и границ. К сожалению, в используемой для сжатия топологии системе TopDesgn отсутствует
возможность сжатия отдельных областей в топологии ячеек. Поэтому многократные процедуры сжатия выполняются над ячейками целиком, а не над их областями между очередными парами выводов.
В связи с этим, несмотря на высокое быстродействие современной вычислительной техники, одной из важных задач построения программных средств автоматизации иерархического технологически инвариантного проектирования топологии макроблоков СБИС является уменьшение числа согласований, которое может быть осуществлено двумя способами. Первый из них связан с выбором очередности попарного согласования выводов соседних ячеек, уменьшающей число
согласований [41, 42]. Второй же предназначен для сокращения количества ячеек,
участвующих в процессе согласования.
3.1 Поиск очередности согласования ячеек
3.1.1 Влияние очередности согласования ячеек на число этапов
согласования
Связи между ячейками макроблока можно разделить на две группы. К одной относятся собственно «межъячеечные» связи – связи между двумя соседними
87
ячейками (рисунок 3.1, а), а к другой «сквозные» связи, проходящие ячейки (или
ячейку) насквозь (рисунок 3.1, б). Естественно, что в топологии одного макроблока могут встречаться связи разного типа.
а)
б)
а)
Рисунок 3.1 – Характер связей между ячейками макроблока:
а) «межъячеечные» связи; б) «сквозные» связи
Для сквозных связей положение выводов определяется «параллельно» –
единовременно без итерационных согласований как максимальная из координат
выводов, через которые проходит сквозная шина. Примером таких шин могут, например, служить шины, передающие в матрицу умножителя с группировкой разрядов множителя сигналы, управляющие работой элементов умножения, в качестве которых выступают мультиплексоры.
Процесс согласования координат выводов, соединенных «межъячеечными»
связями, должен выполняться «последовательно» – поэтапно с учетом очередных
изменений положения выводов в соседних ячейках. При этом могут возникать ситуации, требующие «возврата» к ранее согласованным выводам соседних ячеек
для коррекции их положения.
Процесс согласования топологии ячеек предполагает действия по выявлению характера связей между ячейками и по собственно согласованию положения выводов и границ (согласованию габаритов) ячеек. Связи очередного яруса
88
разделяются на группы сквозных и межъячеечных связей, после чего к ним применяются процедуры согласования. Граничные ячейки групп или не связаны друг
с другом или связаны межъячеечными связями, и согласование их выводов соответственно или не требуется вообще или выполняется в соответствии с «последовательным» алгоритмом.
Как уже было сказано выше, этот процесс осуществляется итерационно и
существенно влияет на время генерации топологии кремниевым компилятором.
Сокращение времени работы компилятора было достигнуто благодаря разработке алгоритма поиска последовательности согласования положения выводов
и габаритов ячеек и соответствующих программных средств.
Задача алгоритма состоит в поиске вывода, положение которого зависит от
положения минимального числа выводов остальных ячеек (одного) и в свою очередь определяет положение возможно большего числа выводов других ячеек (в
пределе – всех остальных).
Для иллюстрации эффективности алгоритма на рисунках 3.2, а и 3.2, б соответственно для худшей и лучшей последовательности схематично изображены
этапы согласования положения выводов четырех ячеек.
Рассмотрим подробно процесс согласования на примерах худшей (рисунок 3.2, а) и лучшей (рисунок 3.2, б) последовательности согласования выводов 4
ячеек. Для простоты проиллюстрируем этот процесс согласованием только одного
яруса выводов.
Рассмотрение начнем с худшей последовательности обработки (рисунок 3.2, а), при которой согласование выводов каждой из пар ячеек осуществляется слева направо.
На первом этапе согласуется положение выводов правого 1-й и левого 2-й
ячеек. Вследствие того, что правый вывод у первой ячейки располагается ниже,
чем левый у второй его необходимо поднять до уровня вывода второй ячейки. В
результате этого габарит первой ячейки возрастает.
89
а)
1
2
3
4
б)
1-й
1-й
этап
этап
1
2
3
4
2-й
2-й
этап
этап
1
2
3
4
3-й
3-й
этап
этап
1
2
3
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
4
4-й
этап
1
2
3
4
5-й
Пара ячеек до и
этап
после очередно1
2
3
4
го этапа согла-
6-й
сования положе-
этап
ния выводов
1
2
3
4
Рисунок 3.2 – Этапы согласования положения выводов четырех ячеек:
а) для худшей последовательности согласования;
б) для лучшей последовательности согласования
90
Изменения в 1-й ячейке не приводят к изменениям у ее соседей слева, так
как их просто нет. Алгоритм переходит к анализу пары ячеек справа: 2-й (ставшей
«текущей») и 3-й (ставшей «следующей»).
На втором этапе при согласовании выводов 2-й и 3-й ячеек, мы встречаемся
с ситуацией, аналогичной рассмотренной ранее: в паре ячеек правый вывод текущей (2-й) ячейки располагается ниже, чем левый у следующей (3-й).
В этом случае правый вывод текущей (2-й) ячейки необходимо поднять до
уровня левого вывода следующей (3-й) ячейки.
Результатом этих действий становится
– смещение левого вывода текущей (2-й) ячейки вверх, а, значит рассогласование положения выводов у первой (правого) и второй (левого) ячеек и
– увеличение габарита текущей (2-й) ячейки.
На третьем этапе в связи с рассогласованием положения выводов правого у
первой и левого у второй ячеек необходимо повторение действий первого этапа
по их согласованию: правый вывод текущей (1-й) ячейки необходимо поднять до
уровня левого вывода следующей (2-й) ячейки. В результате этого, габарит первой ячейки снова возрастает.
Изменения в 1-й ячейке не приводят к изменениям у ее соседей слева, так
как их просто нет. Алгоритм переходит к анализу пар ячеек справа.
Так как во 2-й (ставшей «текущей») и 3-й (ставшей «следующей») ячейках
рассогласования выводов нет (оно только что было ликвидировано) очередной
парой для анализа становятся 3-я (ставшая «текущей») и 4-я (ставшая «следующей») ячейки, положение выводов у которых не согласовано.
На четвертом этапе в паре ячеек правый вывод текущей (3-й) ячейки располагается ниже, чем левый у следующей (4-й).
Эта ситуация аналогична тем, что были:
– на первом этапе (у 1-й и 2-й ячеек),
– на втором этапе (у 2-й и 3-й ячеек),
91
– на втором этапе (у 1-й и 2-й ячеек).
В этом случае правый вывод текущей (3-й) ячейки необходимо поднять до
уровня левого вывода следующей (4-й) ячейки.
Результатом этих действий становится
– смещение левого вывода текущей (3-й) ячейки вверх, а, значит рассогласование положения выводов у 2-й (правого) и 3-й (левого) ячеек и
– увеличение габарита текущей (3-й) ячейки.
Алгоритм переходит к анализу пар ячеек слева.
На пятом этапе выполняются действия по пересогласованию положения выводов у 2-й (правого) и 3-й (левого) ячеек, аналогичные действиям второго этапа.
На шестом этапе выполняются действия по пересогласованию положения
выводов у 1-й (правого) и 2-й (левого) ячеек, аналогичные действиям первого этапа.
Соседей слева нет, выводы ячеек справа согласованы. Процесс согласования
одного яруса выводов 4-х ячеек завершен, обработка осуществлена за 6 этапов, на
3-х из которых выполнялось пересогласование положения выводов.
Лучший вариант (рисунок 3.2, б) процесса согласования отличается от рассмотренного только что худшего (рисунок 3.2, а) последовательностью обработки
ячеек: в нем согласование выводов каждой из пар ячеек осуществляется справа
налево.
На первом этапе согласуется положение выводов правого 3-й и левого 4-й
ячеек. Так как правый вывод у 3-й ячейки располагается ниже, чем левый у 4-й
его необходимо поднять до уровня вывода 4-й ячейки. В результате этого:
– левый вывод текущей (3-й) ячейки смещается вверх, еще больше увеличивая рассогласование положения выводов у 2-й (правого) и 3-й (левого)
ячеек;
– габарит 3-й ячейки возрастает.
92
Алгоритм переходит к анализу пар ячеек слева.
На втором этапе при согласовании выводов 2-й и 3-й ячеек, мы встречаемся
с ситуацией, аналогичной рассмотренной ранее: в паре ячеек правый вывод текущей (2-й) ячейки располагается ниже, чем левый у следующей (3-й).
В этом случае правый вывод текущей (2-й) ячейки необходимо поднять до
уровня левого вывода следующей (3-й) ячейки.
Результатом этих действий становится:
– смещение левого вывода текущей (2-й) ячейки вверх, а, значит еще большее рассогласование положения выводов у 1-й (правого) и 2-й (левого)
ячеек и
– увеличение габарита текущей (2-й) ячейки.
Алгоритм переходит к анализу пар ячеек слева.
Третий этап полностью аналогичен двум предыдущим: в паре ячеек правый
вывод текущей (1-й) ячейки располагается ниже, чем левый у следующей (2-й).
В этом случае правый вывод текущей (2-й) ячейки необходимо поднять до
уровня левого вывода следующей (3-й) ячейки.
В результате действий по согласованию выводов 1-й и 2-й ячеек:
– левый вывод текущей (1-й) ячейки смещается вверх до уровня правого
вывода 2-й ячейки;
– габарит 1-й ячейки возрастает.
Соседей слева нет, выводы ячеек справа согласованы. Процесс согласования
одного яруса выводов 4-х ячеек завершен, обработка осуществлена за 3 этапа без
выполнения пересогласований положения выводов.
В таблице 3.1 приведено количество этапов для худшей и лучшей последовательности согласования в зависимости от числа согласуемых ячеек.
93
Таблица 3.1 – Сравнение худшей и лучшей последовательности согласования «одного яруса» выводов ячеек строки иерархического макроблока СБИС
Число
Число этапов согласования «одного яруса» выводов ячеек
согласуемых
Худшая
Лучшая
ячеек
последовательность
последовательность
согласования
согласования
2
1
1
3
3
2
4
6 (рис. 3.2, а)
3 (рис. 3.2, б)
5
10
4
N
N
Σ (i-1)
N-1
i=2
Итак, число «пересогласований», увеличивается с ростом количества ячеек
и количества выводов. Соответственно для устройств со сложными структурнотопологическими планами процесс согласования, осуществляющийся путем многократного сжатия ячеек, может сильно затянуться. Поэтому необходимо либо исключить пересогласования, либо уменьшить их количество. Идеальный вариант –
«расходовать» в процессе обработки одну операцию согласования на вывод каждой ячейки.
Таким образом, если зависимость числа этапов согласования «одного яруса»
выводов ячеек для худшей последовательности согласования носит квадратичный
характер и определяется выражением
N * (N - 1) / 2 ,
то для лучшей последовательности согласования она является линейной:
N -1.
94
3.1.2 Разработка алгоритма поиска очередности согласования
ячеек
Развивая изложенное ранее (рисунок 3.2, таблица 3.1), можно сказать, что с
точки зрения уменьшения числа этапов согласования наилучшим вариантом организации множества ячеек является строка, в которой для каждой пары согласуемых выводов i-й и (i+1)-й ячеек последующая реальная координата yi+1 меньше
предыдущей координаты yi (рисунок 3.3, а). В этом случае количество необходимых корректировок равно нулю.
Наихудшим вариантом организации (рисунок 3.3, б) обладает строка, в которой у каждой пары выводов последующая реальная координата yi+1 больше предыдущей координаты yi. В этом случае корректировки необходимы на каждой шаге алгоритма. Однако выходом является изменение «направления обхода» ячеек
строки, сводящее эту ситуацию к лучшей, рассмотренной ранее.
Действительно структуры в этом плане становятся идентичными. Следовательно, развивая эту, мысль можно сказать, что задача ускорения согласования
состоит в поиске последовательности обработки пар выводов, избавленной от
конфликтов, при которой согласование очередной пары выводов не приводит к
необходимости пересогласования положения выводов, обработанных ранее. Однако, помимо рассмотренных вариантов организации строки ячеек, где выбор последовательности обработки достаточно очевиден, существует множество смешанных вариантов организации (рисунок 3.3, в), в которых пары согласуемых выводов организованы не однотипно. Во всех этих вариантах при последовательном
обходе ячеек необходимо некоторое число корректировок.
Таким образом, количество пересогласований находиться в прямой зависимости от последовательности обработки и, что самое важное, может равняться
нулю (одна операция согласования на вывод каждой ячейки). Поэтому в каждом
конкретном случае необходимо отыскать свою индивидуальную последовательность обработки, такую, чтобы количество пересогласований равнялось нулю.
95
а)
б)
в)
Рисунок 3.3 – Варианты организации строки ячеек:
а) наилучший (для согласования слева направо);
б) наихудший (для согласования слева направо);
в) «смешанный»
В ходе исследований было установлено, что пару ячеек можно добавить в
последовательность для обработки, если они удовлетворяют следующим условиям (рисунок 3.4):
l a > ra ,
l b < rb ,
где
la, ra – виртуальные ординаты левого и правого выводов ячейки a,
lb, rb – виртуальные ординаты левого и правого выводов ячейки b.
96
То есть значения виртуальной ординаты внешнего вывода каждой из ячеек
пары должно быть больше виртуального значения ординаты ее внутреннего вывода. При выполнении этого условия пару ячеек можно добавлять в выходную последовательность обработки, в соответствии с которой будет осуществляться
дальнейшее согласование и расчет ограничений.
Если какое-либо из пары названных ранее условий не выполняется, то на
соответствующей стороне пары ячеек (либо на обеих сторонах) возникает конфликт согласования. Для различных соотношений значений ординат выводов ячеек
пары возможны следующие ситуации:
а) la > ra и l b > rb – конфликт справа;
б) la < ra и l b > rb – конфликты справа и слева;
в) la > ra и l b < rb – конфликтов нет;
г) la < ra и l b < rb – конфликт слева.
Рисунок 3.4 – Две согласуемые ячейки
Возникающий конфликт согласования необходимо преодолеть, перемещаясь в сторону конфликта в поисках пары ячеек, у которых оба конфликта отсутствуют, а затем возобновить процесс.
Построение последовательности обработки без конфликтных пар ячеек легло в основу названия алгоритма.
В алгоритме построения бесконфликтной последовательности обработки
ячеек важно соотношение виртуальных координат без конфликтов на параллель-
97
ных границах ячейки. Конфликт ограничения – это ситуация, когда в рассматриваемой паре ячеек, в одной (один конфликт) или обеих ячейках (два конфликта),
значение виртуальной координаты внешнего вывода меньше значения виртуальной координаты внутреннего вывода, из-за чего возникает несовместимость ограничений при их дальнейших вычислениях.
Отметим, что данный алгоритм универсален и не зависит от осей координат: для того чтобы обработать не строку, а столбец ячеек необходимо лишь изменить флаг текущей оси координат.
Рассмотрим реализацию алгоритма при определении бесконфликтной последовательности обработки для строки из 5 ячеек, приведенной на рисунке 3.5.
Рисунок 3.5 – Строка макроблока из 5 ячеек
В середине верхней части ячеек указаны их номера. Числа внутри ячеек
около нижнего яруса их выводов соответствуют их ординатам.
Исходная строка состоит из 5 ячеек – 1, 2, 3, 4, 5. Счетчик необработанных
ячеек равен 5.
Анализ спецификаций ячеек. Поиск ячеек с наименьшим значением виртуальной ординаты вывода. Выбор из найденных ячеек для дальнейшей обработки
ячейки с наименьшим номером.
1 шаг. Анализируемая последовательность состоит из 5 ячеек. Наименьшее
значение ординаты вывода, равное 2, у 4-й ячейки. Дальнейшая обработка начнется с 4-й ячейки.
98
Анализ выбранной на предыдущем шаге ячейки. Выполняется до обнуления
счетчика необработанных ячеек.
2 шаг. Проверка соотношения значений ординат выводов 4-й ячейки. Значение ординаты левого вывода (2) меньше значения ординаты правого вывода (6),
поэтому конфликта справа нет, и дальнейшему анализу подвергается сосед 4-й
ячейки слева – ячейка 3.
Проверяем соотношение значений ординат выводов 3-й ячейки. Значение
ординаты левого (внешнего для пары ячеек (3;4)) вывода (17) больше значения
ординаты правого (внутреннего для пары ячеек (3;4)) вывода (4), следовательно,
конфликта слева тоже нет.
Так как конфликтов нет, выполняем поиск пары (3;4) в выходной последовательности. Убедившись, что такой пары нет, добавляем пару (3;4) в выходную
последовательность и устанавливаем флаг «обработана» у ячейки 4. Уменьшаем
счетчик необработанных ячеек. Переходим к следующей ячейке c номером 3.
3 шаг. Проверка соотношения значений ординат выводов 3-й ячейки. Значение ординаты левого (внешнего для пары ячеек (3;4)) вывода (17) больше значения ординаты правого (внутреннего для пары ячеек (3;4)) вывода (4), следовательно, переходим к анализу соседа справа – ячейки 4. Так как она уже обработана, переходим к соседу слева – ячейке 2 (конфликта справа нет) и проверяем
соотношение значений ординат ее выводов. Значение ординаты левого (внешнего
для пары ячеек (2;3)) вывода (12) больше значения ординаты правого (внутреннего для пары ячеек (2;3)) вывода (8), следовательно, конфликта слева нет.
Конфликтов нет. Выполняем поиск пары (2;3) в выходной последовательности. Убедившись, что такой пары нет, добавляем пару (2;3) в выходную последовательность и устанавливаем флаг «обработана» у ячейки 3. Уменьшаем
счетчик необработанных ячеек. Переходим к следующей ячейке с номером 2.
4 шаг. Проверка соотношения значений ординат выводов 2-й ячейки. Значение ординаты левого вывода (12) больше значения ординаты правого вывода
99
(8), следовательно, переходим к анализу соседа справа – ячейки 3. Так как она
уже обработана, переходим к соседу слева – ячейке 1 (конфликта справа нет).
Ячейка 1 является крайней левой ячейкой, следовательно, конфликта слева нет.
Конфликтов нет. Выполняем поиск пары (1;2) в выходной последовательности. Убедившись, что такой пары нет, добавляем пару (1;2) в выходную последовательность и устанавливаем флаг «обработана» у ячейки 2. Уменьшаем счетчик необработанных ячеек. Переходим к следующей ячейке с номером 1.
5 шаг. Анализ 1-й ячейки. 1-я ячейка является краевой (крайней левой), следовательно, конфликта слева нет, и анализируется ее сосед справа – ячейка 2, но
она уже обработана (конфликта справа нет).
Конфликтов нет. Выполняем поиск пары (1;2) в выходной последовательности. Выясняем, что такая пара уже есть, а потому в выходную последовательность еще раз ее не добавляем. Устанавливаем флаг «обработана» у ячейки 1.
Уменьшаем счетчик необработанных ячеек. Переход к следующей ячейке с номером 2.
6 шаг. Анализ 2-й ячейки. Она обработана. Пропуск ячейки 2 и переход к
ячейке 3.
7 шаг. Анализ 3-й ячейки. Она обработана. Пропуск ячейки 3 и переход к
ячейке 4.
8 шаг. Анализ 4-й ячейки. Она обработана. Пропуск ячейки 4 и переход к
ячейке 5.
9 шаг. Анализ 5-й ячейки. Она является краевой (крайней справа), следовательно, конфликта справа нет, и анализируется ее сосед слева – ячейка 4, но она
уже обработана (конфликта слева нет).
Конфликтов нет. Выполняем поиск пары (4;5) в выходной последовательности. Убедившись, что такой пары нет, добавляем пару (4;5) в выходную последовательность и устанавливаем флаг «обработана» у ячейки 5. Уменьшаем счет-
100
чик необработанных ячеек. Направление перехода изменилось, переход к ячейке с
номером 4.
Счетчик необработанных ячеек равен 0, все ячейки обработаны.
Выходная бесконфликтная последовательности обработки для приведенной
на рисунке 3.5 строки из 5 ячеек
(3;4), (2;3), (1;2), (4;5).
Следует особо отметить тот факт, что построение бесконфликтной последовательности обработки ячеек может быть осуществлено по виртуальным описаниям топологии ячеек без их сжатия, что существенно сокращает время обработки, доводя число согласований до одного на каждую согласуемую пару выводов (или границ).
Разработанный алгоритм построения бесконфликтной последовательности
обработки ячеек предполагает добавление пары элементов в выходную последовательность при выполнении необходимых условий и переход по последовательности в сторону конфликтных ситуаций при наличии оных. При этом возможны
повторные проходы по уже рассмотренным элементам, в связи с тем, что пара
элементов не добавляется в выходную последовательность, пока не будет удовлетворять необходимым условиям, а, следовательно, остается необработанной и к
ней необходимо будет вернуться позже.
Однако, возможен еще один алгоритм поиска очередности согласования ячеек, который предполагает вместо выполнения неоднократного прохода по их последовательности, одного единственного прохода с последовательным вычислением приоритетов обработки элементов.
Как и предыдущий алгоритм он не требует повторных этапов сжатия, но имеет сложность по числу операций анализа соотношения значений виртуальных ординат выводов не O(N*(N-1)/2), а O(N).
Суть алгоритма можно пояснить на простом примере, иллюстрируемом рисунком 3.6.
101
(i-1)-я
Yl
ячейка
i-я
ячейка Y
r
(i+1)-я
Yl – ордината левого вывода i-й ячейки
ячейка
Yr – ордината правого вывода i-й ячейки
Yl > Yr
=>
Yl = f (Yr)
Рисунок 3.6 – Влияние положения выводов на противоположных сторонах ячейки
друг на друга
Если правый вывод рассматриваемой i-ой ячейки ниже левого (рисунок 3.6),
то изменение его положения (он может быть поднят при согласовании с выводом
соседней справа (i+1)-ой ячейки) может повлиять на положение левого вывода
(может поднять его). Следовательно, сначала нужно определить положение правого вывода рассматриваемой i-ой ячейки, для чего выполнить его согласование с
левым выводом соседней с ним правой (i+1)-ой ячейки, а уже после этого приступать к согласованию левого вывода i-ой ячейки с правым выводом соседней с ним
(i-1)-ой ячейки
Линейная сложность достигается благодаря тому, что (в отличие от рассмотренного ранее алгоритма) в нем избавиться от итераций при построении последовательности обхода множества ячеек можно, используя принципы карманной сортировки («вычерпыванием») [43].
Построенный на этих принципах алгоритм предполагает выполнение следующих действий:
– анализ соотношения положения выводов на противоположных сторонах
каждой из ячеек (выше/ниже) и в зависимости от соотношения их координат назначение каждой следующей паре согласуемых выводов некоторой метрики;
– нормализация метрик – приведение их значений к единому базису, в качестве которого выступает минимальное из значений метрик (выполняется путем
увеличения метрик на модуль минимального из их значений).
102
Нормализованная метрика определяет приоритет согласования пары выводов
соседних ячеек, то есть согласование пар текущего яруса выводов ячеек осуществляется в порядке возрастания метрик.
Для первой пары ячеек устанавливаем нулевой приоритет и анализируем
взаимное расположение выводов каждой последующей ячейки, начиная со второй
в последовательности. При анализе взаимного расположения выводов очередной
ячейки возможны 3 ситуации, приведенные на рисунке 3.7. Важно уточнить, что
нижерасположенный вывод, по отношению к рассматриваемому текущему выводу всегда имеет более высокий приоритет при обработке.
а)
б)
в)
Рисунок 3.7 – Взаимное расположение выводов
(направление обхода задано стрелками)
Когда у ячейки следующий вывод ниже рассматриваемого текущего вывода,
(рисунок 3.7, а), необходимо уменьшить значение счетчика текущего приоритета
обработки.
Когда у ячейки следующий вывод выше рассматриваемого текущего вывода
(рисунок 3.7, б), необходимо увеличить значение счетчика текущего приоритета
обработки.
Когда у ячейки следующий вывод находиться на том же уровне, что и рассматриваемый текущий вывод, то есть значения их координат совпадают (рисунок 3.7, в), значение счетчика текущего приоритета обработки не изменяется.
Проиллюстрируем алгоритм с помощью примера на рисунке 3.8.
На нулевом шаге, устанавливаем нулевой приоритет обработки пары, включающей ячейки 1 и 2. Так как мы заранее не знаем, какая пара будет иметь мини-
103
мальный приоритет, то значение счетчика может становиться отрицательным или
положительным по мере работы алгоритма. Поэтому, после завершения работы
алгоритма выполняется проверка на наличие отрицательных значений приоритетов обработки, и если таковые имеются, то выполняется нормализация значений
приоритетов обработки пар – их увеличение на модуль минимального из значений
приоритетов.
1.
1
2
1
2
0
3.
1
5
3
4
5
4
5
-2
-1
2
0
4
-1
0
2.
3
3
-1
-2
-1
Нормализуем порядок
4.
2
1
0
1
Рисунок 3.8 – Пошаговая иллюстрация работы алгоритма поиска очередности
согласования ячеек на основе принципов карманной сортировки
(«вычерпыванием»)
104
На первом шаге анализируется соотношение виртуальных значений ординат
выводов ячейки 2. Так как значение ординаты следующего (правого) вывода
меньше значения ординаты текущего левого (как на рисунке 3.7, а), необходимо
уменьшить значение счетчика приоритета обработки, и для пары, включающей
ячейки 2 и 3, счетчик приоритета будет равен «-1».
На втором шаге анализируется соотношение виртуальных значений ординат
выводов ячейки 3. Перед нами ситуация, аналогичная предыдущей, и, следовательно, для пары, включающей ячейки 3 и 4, так же уменьшаем счетчик приоритета, получая значение «-2»
На третьем шаге, анализируя соотношение ординат выводов ячейки 4 (аналогичное приведенному на рисунке 3.7, б), увеличиваем счетчик приоритета до
значения «-1».
Обработка ячеек закончена, но так как в полученном множестве приоритетов обработки имеются отрицательные значения, их необходимо скорректировать,
для чего на четвертом шаге алгоритма выполняется их нормализация.
Полученная очередность обработки пар ячеек
(3;4), (2;3), (1;2), (4;5)
(или (3;4), (4;5), (2;3), (1;2))
передается на следующий этап – собственно согласование положения выводов,
осуществляемый путем сжатия топологии ячеек с дополнительными ограничениями на расположение их выводов.
Данный пример демонстрирует еще и то, что для множества согласуемых
ячеек может не существовать единой «непрерывной» очередности согласования,
что множество согласуемых пар выводов ячеек может распадаться на несколько
подмножеств, для каждого из которых очередность согласования не будет зависеть от ячеек из других подмножеств. В частности это может происходить, когда
некоторые ячейки в группе не связаны выводами с одним или обоими своими соседями. В этом случае можно продолжить назначение приоритетов с текущего
105
значения счетчика или сбросить счетчик до начального (минимального среди обработанных подмножеств) значения и снова продолжить обработку.
Примечательно, что при разработке сложных устройств с большим числом
различных типов ячеек с многочисленными выводами такое разделение на подмножества может позволить сократить время согласования выводов за счет распараллеливания сложных процедур сжатия топологии на многоядерных процессорах.
3.1.3 Оценка эффективности алгоритма поиска очередности
согласования ячеек
На основе алгоритма поиска очередности согласования ячеек были разработаны две версии программы генерации топологии иерархических макроблоков
СБИС: консольная, а позже – графическая, о которой более подробно будет рассказано в главе 4 «Интеграция технологии иерархического проектирования топологии макроблоков СБИС в графическую среду редактора».
Ниже в таблице 3.2 приведены результаты тестирования данных программ
на примере генерации топологии рассмотренного ранее макроблока матричного
делителя различной разрядности (конфигурация компьютера: процессор Intel Core
2 Duo, 3000 MHz; оперативная память 2048 Мб; система Windows 7).
Приведенные в таблице 3.2 данные наглядно свидетельствуют о том, что
выполнение согласования положения выводов и границ ячеек макроблока может
быть существенного (в примерах из таблицы 3.2 – примерно в 2 раза) ускорено, за
счет уменьшения числа обращений к программе сжатия топологии.
Однако для регулярных макроблоков СБИС помимо этого существует еще
одна гораздо большая возможность сокращения времени генерации файлов описания топологии.
106
Таблица 3.2 – Значения параметров процесса согласования ячеек матричного
делителя с поиском и без поиска очередности согласования ячеек
Программы генерации топологии
Основные
Делитель
характеристики
Консольная
Графическая
версия
версия
процесса
согласования
Без поиска
С поиском
С поиском
ячеек делителя
очередности
очередности
очередности
согласования
согласования
согласования
3
4
5
по оси Х
812
464
464
сжатия по оси У
294
186
186
по оси Х
18,620
11,530
12,087
согласо- по оси У
6,630
5,648
5,147
вания, с
общее
25,250
17,178
17,234
Число
по оси Х
3300
1760
1760
сжатия по оси У
1230
694
694
по оси Х
92,870
44,810
47,058
согласо- по оси У
33,310
21,960
20,490
126,180
66,770
67,548
1
2
Число
вызовов
8
на
8
Время
вызовов
16
на
16
Время
вания, с
общее
107
Продолжение таблицы 3.2
1
2
3
4
5
по оси Х
13268
6848
6848
сжатия по оси У
5022
2670
2670
по оси Х
345,800
174,700
186,889
согласо- по оси У
137,500
80,750
82,889
общее
483,300
255,450
269,778
по оси Х
53172
27008
27008
сжатия по оси У
20286
10462
10462
по оси Х
1389,000
675,900
739,534
согласо- по оси У
533,000
335,500
331,016
общее
1922,000
1011,400
1070,550
по оси Х
212852
107264
107264
сжатия по оси У
81534
41406
41406
по оси Х
6448,000
2725,600
3063,402
согласо- по оси У
1965,000
1228,400
1331,284
8413,000
3954,000
4394,686
Число
вызовов
32
на
32
Время
вания, с
Число
вызовов
64
на
64
Время
вания, с
Число
вызовов
128
на
128
Время
вания, с
общее
Причем помимо времени генерации, которое сейчас, при наличии мощной
быстродействующей техники не является столь критичным (особенно для задач,
108
не связанных с потоковой обработкой больших объемов данных в реальном времени), при этом будет сокращаться размер файлов описания топологии. Речь об
этом пойдет в следующем разделе.
3.2 Уменьшение числа согласований ячеек макроблока
путем сокращения набора согласуемых ячеек
3.2.1 Уменьшение числа этапов согласования ячеек путем
сокращения числа обрабатываемых ячеек и множеств ячеек
Упрощение и ускорение процесса обработки множеств напрямую связано с
числом их элементов, и ускорение процессов обработки может осуществляться
путем сокращения:
– числа обрабатываемых множеств,
– числа объектов в обрабатываемых множествах,
что может обеспечиваться исключением из рассмотрения дублирующих друг друга элементов или множеств.
Применительно к макроблоку это предполагает сокращение числа обрабатываемых множеств – строк и столбцов ячеек, а применительно к строкам и
столбцам – сокращение числа ячеек, подвергающихся обработке.
Таким образом, для ускорения согласования нужно выявить минимальный
набор компонентов, достаточных для получения требуемого результата.
В регулярной структуре матричного типа библиотека ячеек, формируемая в
процессе согласования габаритов ячеек и положения их выводов, может быть не
слишком велика. В рассмотренном в разделе 2.2 («Разработка структурно-топологического плана макроблока СБИС») примере топология макроблока формировалась в соответствии с его структурой из 4-х типов строк, в свою очередь состоящих из 4-х типов ячеек, отличающихся друг от друга функционально, схемотехнически и топологически.
109
Однако существуют и иные схемы, в которых даже при использовании одинаковых ячеек нельзя говорить о тождестве строк и столбцов устройства. В качестве примера можно предложить конвейерный матричный умножитель фирмы
AT&T Bell Laboratories [44, 45], структурно-топологическая схема которого приведена на рисунке 3.9. В этом устройстве строки и столбцы не просто построены
из однотипных ячеек, но и организованы сходным образом, тем не менее, речь
может идти лишь об определенном их подобии.
Если рассмотренный ранее матричный делитель независимо от разрядности
собирался из 4-х типов строк, то конвейерный матричный умножитель с поразрядной конвейеризацией, хоть и обладает регулярной структурой, но регулярность его
носит локальный «зонный» характер, а каждая из строк (или столбцов) уникальна.
В структурном и в функциональном смысле эта уникальность может проявляться
не только качественно – в различии состава, но и количественно – в различии коэффициентов матрицирования входящих в нее ячеек. В топологическом же смысле
уникальность может проявляться в широком разнообразии топологических реализаций одной и той же ячейки, связанном с ее положением в макроблоке.
Одно и то же схемотехническое решение может быть топологически качественно по-разному реализовано. Под качественной реализацией понимается топологическая компоновка ячейки, не связанная с конкретными проектными нормами, отражающая лишь характер взаимного расположения элементов (как например различные варианты топологической организации сумматоров в первой
главе). На основе таких технологически инвариантных библиотек топологических
решений строятся реальные библиотеки в конкретных проектных нормах, из ячеек которых непосредственно и собираются макроблоки. Число ячеек в реальных
библиотеках может превышать число топологических решений. Это связано с
тем, что каждое качественное топологическое решение может порождать целое
семейство количественно отличающихся друг от друга топологических реализаций. Отличия эти могут проявляться в габаритах и положении выводов ячеек, на
110
которые оказывают влияние габариты и положение выводов их соседей в строке и
в столбце макроблока.
В свою очередь на габариты и положение выводов соседей ячейки по столбцу и строке влияют их соседи, и так далее. Таким образом, опосредованно на габариты и положение выводов ячейки могут через своих соседей влиять все ячейки
столбца и строки, на пересечении которых рассматриваемая ячейка располагается.
Поскольку же воздействие удаленных ячеек осуществляется через цепочку ячеек
промежуточных, то для выявления идентичности топологических реализаций учитывать нужно не только типы ячеек в строках или столбцах топологического плана
макроблока СБИС, но и последовательность их расположения в них.
При этом необходимо учитывать тот факт, что, как уже было сказано в
подразделе 1.4.2. «Недостатки методики согласования габаритов и положения
выводов стыкуемых ячеек», процесс согласования ячеек макроблока СБИС выполняется в два этапа.
Первым этапом обработки ячеек является их сжатие по горизонтали, в результате которого осуществляется согласование по ширине и по положению верхних и нижних выводов ячеек в каждом из столбцов макроблока. А это значит, что
достаточным условием для идентичности результатов согласования столбцов (или
строк, если начинать согласование со сжатия по вертикали) макроблока на первом
этапе согласования, является тождество векторов имен их ячеек. Здесь под векторами имен подразумевается упорядоченное по горизонтали или по вертикали
множество имен описания виртуальных ячеек, входящих в состав строки или
столбца. В некотором плане вектор имен сходен с рассматривавшейся ранее (в
пункте 2.5.3 «Структура файла спецификации макроблока») спецификацией строки, но без имен виртуальных описаний ячеек (vlf-файлов), а только с именами
спецификаций ячеек и без коэффициентов матрицирования входящих в нее ячеек:
NameSCell_1 ; NameSCell_2 ; … NameSCell_N ;
111
Y7 . . . Y0
X7 . . . X0
1
P15 . . . P0
Сумматор и три триггера
Полусумматор и два триггера
Триггер и буфер
Элемент «EXOR» и триггер
Элемент «2И» и триггер
Триггер
Рисунок 3.9 – Структурно-топологическая схема конвейерного матричного
умножителя фирмы AT&T Bell Laboratories с поразрядной конвейеризацией
разрядностью 8×8 (в качестве примера выделены два столбца с одинаковой
организацией)
112
Очевидно, что эта информация может быть извлечена из файла спецификации макроблока.
Имена реализации сжатия ячеек должны формироваться по мере необходимости самой программой согласования на основе имен файлов спецификаций
ячеек.
Таким образом, выявление на первом этапе согласования столбцов (или
строк), состоящих из одинаковых множеств идентичных топологических решений ячеек (различающихся как в конвейерном матричном умножителе только
коэффициентами матрицирования), позволяет уменьшить число самих согласований (число групп согласуемых объектов). В приведенной на рисунке 3.9 структурно-топологической схеме конвейерного матричного умножителя в качестве
примера выделены два столбца с одинаковой организацией.
На втором этапе осуществляется согласование ячеек в строках макроблока
по высоте и по положению горизонтальных выводов, расположенных на их вертикальных границах. Этот этап принципиально отличается от первого тем, что
согласование ячеек выполняется с учетом полученных на первом этапе реальных
горизонтальных координат элементов топологии ячеек.
В этом случае тождество векторов имен ячеек в строках макроблока уже не
является достаточным условием для идентичности результатов согласования, так
как на предыдущем этапе уже могло начаться формирование в разных столбцах
различных топологических реализаций на основе одного и того же топологического решения. В качестве примера на рисунке 3.10 приведен структурно-топологический план матричного устройства, в котором влиянием более широкой
ячейки C3 обусловлено возникновение на втором этапе согласования модификаций ячеек C1 и C2 – дополнительных топологических реализаций C1a и C2a.
Таким образом, после первого этапа согласования следует при необходимости внести изменения в векторы имен ячеек, добавив новые имена (как в
примере на рисунке 3.10), отражающие факт возникновения дополнительных
топологических реализаций ячеек макроблока. А для сокращения числа групп
113
согласуемых объектов на втором этапе согласования нужно выявить строки, у
которых совпадают уже не исходные вектора имен, а их модификации. При
этом следует обратить внимание на тот факт, что число векторов имен может
измениться.
C1 C1 C1 C1 C1 C1 C1 C2 C2 C2 C2a C2a C2a C1a C1a C1a
C3
C1 C1 C1 C1 C1 C1 C2 C2 C2 C2 C2a C2a C1a C1a C1a
C3
C1a
C1 C1 C1 C1 C1 C2 C2 C2 C2 C2 C2a C1a C1a C1a
C3
C1a C1a
C1 C1 C1 C1 C2 C2 C2 C2 C2 C2 C1a C1a C1a
C3
C1a C1a C1a
C1 C1 C1 C2 C2 C2 C2 C2 C2 C1 C1a C1a
C3
C1a C1a C1a C1a
C1 C1 C2 C2 C2 C2 C2 C2 C1 C1 C1a
C3
C1a C1a C1a C1a C1a
C1 C2 C2 C2 C2 C2 C2 C1 C1 C1
C1a C1a C1a C1a C1a C1a
C3
Рисунок 3.10 – Структурно-топологический план матричного устройства из пяти
топологических реализаций ячеек C1, C2, C3, C1a, C2a на основе трех топологических решений C1, C2, C3. В качестве примера выделены две строки из ячеек с
одинаковой топологической организацией, но с различной топологической реализацией, что связано с влиянием на соседей в столбцах более широкой ячейки C3
Модифицированные вектора имен, по сути, отражают состав уже не технологически инвариантных библиотек топологических решений, а состав реальных
библиотек в конкретных проектных нормах, из ячеек которых непосредственно и
собираются макроблоки. И в случае появления в составе реальных библиотек модифицированных ячеек их именами должны заменяться имена технологически
114
инвариантных решений в соответствующих местах текстовых спецификаций
структурных составляющих (строк и столбцов) макроблока.
Алгоритм ускорения обработки путем уменьшения числа обрабатываемых
множеств проходит по каждой цепочке ячеек (строки или столбцы) в структурнотопологическом плане в соответствующем направлении обработки (для оси ординат – слева направо, для абсцисс – снизу-вверх) и выполняет сравнение текущей
цепочки с уже обработанными на предыдущих шагах алгоритма. Если таковых
нет (начало работы), то выполняется передача этой цепочки на согласование. Если же есть уже обработанные, то выполняется перебор цепочек и их поэлементное
сравнение, в результате возможны 3 случая.
1) Цепочки идентичны по количеству и составу ячеек, тогда достаточно сохранить найденную цепочку в контейнер.
2) Цепочки имеют общие типы ячеек, тогда необходимо выполнить расширение типов реализаций ячеек (топологических реализаций) в текущей
цепочке и передать ее на этап согласования. Затем очистить контейнер,
хранящий дублирующие цепочки, перед этим выполнив копирование ограничений на расположение выводов и границ из ранее обработанных
ячеек.
3) Цепочки отличны, необходимо передать текущую цепочку ячеек на этап
согласования.
Эти действия повторяются до тех пор, пока все цепочки ячеек не будут обработаны.
Механика поэлементного сравнения реализована следующим образом. Каждому набору однотипных ячеек ставится в соответствие объект группа, с тремя
параметрами: 1) тип предыдущей группы, 2) тип самой группы, 3) тип следующей
группы. Если соседняя группа отсутствует, устанавливается соответствующий
флаг, который учитывается при операции сравнения, т. е. если у одной группы
есть соседняя, а у другой нет, то группы однозначно отличны. Для совпадения необходимо, чтобы у групп совпадали все три параметра.
115
Расширение типа реализации ячеек выполняется следующим образом. В начале работы алгоритма согласования генерируется контейнер, хранящий все уникальные типы ячеек. К контейнеру в процессе работы происходит обращение с
исходным именем, выполняется поиск и инкремент обращения к данному имени,
после чего алгоритм возвращает расширенное имя, в которое добавлен индекс в
зависимости от числа обращений к данному типу ячейки. Если же имя не найдено, то оно добавляется в контейнер.
Ускорение обработки путем уменьшения числа элементов в обрабатываемых множествах предусматривает анализ в блоке сравнения цепочек ячеек текущей цепочки, рассматриваемой на возможность сокращения числа элементов, составляющих эту последовательность. Для реализации этого, необходимо в блоке
обновления последовательности, добавить в начало алгоритма этап построения
сокращенной последовательности, в результате работы которого исключаются
повторяющиеся типы реализаций ячеек в рамках одной группы и заносятся в специальный контейнер группы, хранящий матрицируемые ячейки (в предыдущем
же алгоритме все однотипные ячейки поступили на этап согласования). В данном
контейнере элементы хранятся до тех пор, пока очередная рассматриваемая последовательность не будет отлична от уже обработанных.
С учетом сказанного было разработано расширение программного средства «Matching of Cells» в виде отдельного приложения для реализации матричных конструкций «DockingFindings», позволяющего в автоматическом режиме осуществлять иллюстрируемую рисунками 3.11 и 3.12 последовательность действий по ускоренному по отношению к программе «Matching of
Cells» согласованию ячеек макроблока и его сборке.
116
Рисунок 3.11 – Задание имени файла текстовой иерархической спецификации
макроблока матричного делителя
а)
Рисунок 3.12 – Примеры сообщений об ошибках: а) при ошибках в имени текстового файла иерархической спецификации макроблока, б) при отсутствии файлов
спецификации или ошибках в них, в) при ошибках на этапах согласования, сборки
или формирования выходного файла
117
б)
в)
Продолжение рисунка 3.12
3.2.2 Оценка эффективности алгоритма
сокращения набора согласуемых ячеек
На основе алгоритма сокращения набора согласуемых ячеек была разработана программа генерации топологии иерархических макроблоков СБИС, позволяющая создавать иерархическое описание топологии регулярных заказных
схем с учетом и без учета совпадения его ячеек и строк.
Ниже в таблице 3.3 приведены результаты тестирования программы в разных режимах работы на примере генерации топологии рассмотренного ранее макроблока матричного делителя различной разрядности.
118
Таблица 3.3 – Значения параметров процесса согласования ячеек матричного
делителя без сокращения и с сокращением набора согласуемых ячеек
Основные
Графическая версия программы генерации топологии
Де-
характеристики
Без учета
ли-
процесса
совпадения
Без учета
С учетом
тель
согласования
Без учета
ячеек или
ячеек делителя
совпадения
совпадения
совпадения
строк
ячеек
строк
ячеек и строк
2
3
4
5
6
по оси Х
464
360
174
135
сжатия по оси У
186
66
186
52
по оси Х
12,087
8,963
4,216
3,275
согласо- по оси У
5,147
1,823
5,167
1,432
общее
17,234
10,786
9,383
4,707
по оси Х
1760
720
330
135
сжатия по оси У
694
122
694
52
по оси Х
47,058
20,369
8,362
3,194
согласо- по оси У
20,490
3,676
19,889
1,432
67,548
24,045
28,251
4,626
1
Число
Матричный вариант программы
вызовов
8
на
8
Время
вания, с
Число
вызовов
16
на
16
Время
вания, с
общее
119
Продолжение таблицы 3.3
1
2
3
4
5
6
по оси Х
6848
1440
642
135
сжатия по оси У
2670
234
2670
52
по оси Х
186,889
37,144
16,454
3,264
согласо- по оси У
82,889
6,739
90,470
1,463
общее
269,778
43,883
106,924
4,727
по оси Х
27008
2880
1266
135
сжатия по оси У
10462
458
10462
52
по оси Х
739,534
71,122
31,996
3,305
согласо- по оси У
331,016
13,179
352,457
1,592
общее
1070,550
84,301
384,453
4,897
по оси Х
107264
5760
2514
135
сжатия по оси У
41406
906
41406
52
по оси Х
3063,402
144,107
76,019
3,605
согласо- по оси У
1331,284
26,438
1372,063
1,762
4394,686
170,545
1448,082
5,367
Число
вызовов
32
на
32
Время
вания, с
Число
вызовов
64
на
64
Время
вания, с
Число
вызовов
128
на
128
Время
вания, с
общее
Очевидно, что сокращение времени генерации топологии регулярного макроблока при учете совпадения его ячеек и строк будет зависеть от степени регу-
120
лярности макроблока и его разрядности. Приведенные в таблице 3.3 данные свидетельствуют о том, что в отличие от варианта без учета совпадения ячеек или
строк при учете совпадения время генерации для высоко регулярных макроблоков
может лишь незначительно изменяться при изменении их разрядности и может
быть на несколько десятичных порядков меньше времени генерации топологии
без учета совпадений.
Причем, как уже было сказано выше, помимо ускорения процесса генерации
топологии, при этом будет сокращаться размер файлов описания топологии. Это
наглядно демонстрирует приведенный на рисунке 3.13 фрагмент окна программы
explorer с параметрами файлов описания топологии матричных делителей разрядностью «8 на 8», «16 на 16», «32 на 32», «64 на 64» и «128 на 128», полученных
без учета совпадения ячеек и строк
Рисунок 3.13 – Размер файлов описания топологии матричных делителей
разрядностью «8 на 8», «16 на 16», «32 на 32», «64 на 64» и «128 на 128»,
полученных без учета совпадения ячеек и строк.
При этом каждая из ячеек и строк матрицы делителя рассматривается, как
уникальная. Таким образом, количество разных типов строк равно не 4-м, как уже
было сказано в главе 2 (смотрите структурно-топологические планы матричного
делителя без восстановления остатка на рисунках 2.3 и 2.19), а разрядности RСh
частного. Число же ячеек с разной топологией равно не 16-ти (4 типа строк по 4
типа ячеек), а произведению числа ячеек в строке (RB/2 + 1) (половина RB раз-
121
рядности делителя, так как ячейки матрицы деления сдвоенные, плюс один буферный каскад в каждой из строк) на число строк RСh (разрядность частного)
(RB/2 + 1) × RСh
Здесь необходимо отметить, что каждая из этого огромного множества ячеек должна подвергнуться схемотопологической и технологической верификации
(проверке соответствия топологии электрической схеме и проектным нормам), из
топологии ячеек должны быть экстрагированы паразитные параметры и с учетом
их значений должно быть осуществлено электрическое моделирование их работы
с целью определения времен их задержек. Причем, если результаты оценки паразитных параметров ячеек и их временные характеристики можно объявить одинаковыми, то верификацию все же нужно проводить для всех ячеек.
Таким образом, сокращение набора согласуемых ячеек существенно сокращает и размер файла описания топологии макроблока и число (а, следовательно, и время) выполняемых над ним операций.
ВЫВОДЫ ПО ГЛАВЕ 3
1. На основании результатов анализа процесса согласования ячеек макроблоков разработаны алгоритмы и соответствующие программные средства, ускоряющие процесс согласования ячеек макроблоков СБИС с регулярной структурно-топологической организацией путем сокращения числа согласований ячеек и
набора согласуемых ячеек.
2. Тестирование разработанных программных средств ускорения процесса согласования, проведенное при разработке специализированного кремниевого компилятора матричного делителя, продемонстрировало существенное сокращение:
– времени генерации выходного файла описания топологии,
– числа ячеек в специализированной библиотеке макроблока,
– объема файла описания топологии макроблока.
122
ГЛАВА 4 ИНТЕГРАЦИЯ ТЕХНОЛОГИИ ИЕРАРХИЧЕСКОГО
ПРОЕКТИРОВАНИЯ ТОПОЛОГИИ МАКРОБЛОКОВ СБИС В
ГРАФИЧЕСКУЮ СРЕДУ РЕДАКТОРА
4.1 Исследование структурно-топологических аспектов
согласования ячеек нерегулярных макроблоков СБИС
Проектирование топологии нерегулярных макроблоков СБИС, как уже было
сказано, осуществляется в основном автоматизированным путем – методом размещения и трассировки ячеек. Эта технология давно известна и хорошо отлажена.
Тем не менее, в отношении проектирования нерегулярных макроблоков СБИС
необходимо затронуть ряд аспектов, связанных с темой данной работы – плотноупакованным технологически инвариантным проектированием топологии. Более
подробно о предлагаемых методиках и соответствующих программных средствах
будет сказано позже. Поэтому здесь о проектировании нерегулярных макроблоков
будет сделано лишь два замечания, относящихся к двум типам «нерегулярности».
Первое замечание относится к тому типу макроблоков СБИС, который все
же обладает некоторой структурно-топологической упорядоченностью. Это наиболее распространенные макроблоки, которые можно назвать «1-D»-регулярными, так как они состоят из упорядоченных по одной из осей координат ячеек библиотеки стандартных фрагментов, объединенных в «полосы», называемые пеналами. Связи между ячейками организуются в трассировочных каналах, располагающихся между или над пеналами.
Замечание касается возможности применения описанного выше метода согласования ячеек для увеличения плотности упаковки макроблоков, что, учитывая
недостаточный уровень развития отечественных технологических линий, может
предоставить дополнительные возможности для разработчиков СБИС. При этом
следует особо отметить тот факт, что за рубежом разрабатывались средства преобразования топологических проектов в полностью заказные топологии из топологий на основе БМК [46].
123
Второе замечание относится к «0-D»-регулярным макроблокам, не обладающим упорядоченностью структуры ни по одной из осей координат.
Неоднородность состава и характера связей между ячейками затрудняет даже сам процесс структурно-топологического описания таких макроблоков. Поэтому обязательным условием для этого является разработка средств графического описания таких конструкций.
О графическом редакторе структурно-топологического описания макроблоков СБИС речь пойдет в следующем разделе, здесь же хотелось бы обратить
внимание на особенности процесса согласования, характерные именно для нерегулярных макроблоков СБИС.
Регулярные матричные структуры, о которых выше шла речь, представляют
собой своеобразные решетки, ячейки которых имеют одинаковую высоту в строке
и одинаковую ширину в столбце. В связи с этим процесс выравнивания положения выводов и границ осуществлялся относительно «общей базы», в кАчестве которой выступала левая граница столбца или нижняя граница строки.
Что же касается нерегулярных макроблоков СБИС, то в них выравнивание
положения выводов должно осуществляться для неструктурированных групп ячеек (не объединенных в строки или столбцы), и в качестве точки отсчета для них
будут выступать границы последних обработанных ячеек макроблоков, а именно,
правые границы левых ячеек и верхние границы нижних ячеек (рисунок 4.1).
Таким образом, при проектировании иерархических макроблоков с использованием систем технологически инвариантного проектирования на базе алгоритмов сжатия, для ячеек, также как и для элементов топологии можно говорить о
частоколах – виртуальных ломаных линиях, повторяющих контуры границ последних обработанных ячеек.
124
A – стыкуемые выводы
ячеек 3 и 4
Ячейка 2
H2
Ячейка 1
YA = H2 + Y4A
Y4A
Ячейка 4
H1
YA = H1 + Y3A
Y3A
Ячейка 3
Рисунок 4.1 – Определение положения выводов ячеек при их согласовании
с учетом габаритов ранее согласованных ячеек
4.2. Разработка графического редактора структурнотопологического описания макроблоков СБИС
Ранее рассматривались результаты работ в области иерархического технологически инвариантного проектирования, посвященных автоматизации проектирования регулярных макроблоков.
В них исследовались вопросы согласования габаритов и положения выводов
ячеек и сборки макроблоков СБИС, а также проблемы ускорения этих процессов с
целью уменьшения как размеров ячеек, так и времени их согласования.
125
Закономерным развитием направления явилась разработка подсистемы технологически инвариантного иерархического проектирования топологии макроблоков СБИС [47], как регулярных, так и нерегулярных, снабженная графическим
редактором Matching of Cells, совершенно необходимым для описания нерегулярных макроблоков и обеспечивающим гораздо большие удобство описания и наглядность отображения структуры регулярных макроблоков.
В рамках подсистемы автоматизированного иерархического проектирования топологии макроблоков предусмотрены действия по верификации исходных
данных, а именно:
– проверка спецификаций ячеек, представляющих собой текстовое описание
положения их выводов и границ;
– проверка корректности наборов согласуемых выводов ячеек;
– мониторинг библиотек ячеек на наличие файлов описания виртуальной
топологии (технологически инвариантных описаний топологии ячеек библиотеки);
– анализ корректности структурно-топологического описания макроблоков.
Одной из основных частей подсистемы автоматизированного иерархического проектирования макроблоков, является графический редактор Matching of
Cells, предоставляющий не только возможность построения наглядного иерархического описания макроблоков СБИС (главное окно программы представлено на
рисунке 4.2), но и возможность структурной параметризации такого описания, так
как в редакторе могут быть заданы коэффициенты матрицирования, как отдельных ячеек, так и групп ячеек.
Причем описываемые с помощью редактора структуры могут быть как прямоугольными, так и сложной не ортогональной формы (примеры структурных
планов устройств приведены на рисунках 4.3, а и 4.3, б).
В качестве основных компонентов структурных планов (рисунок 4.4) выступают ячейки, шины с контактами (в том числе виртуальные шины) и группы
ячеек (рисунок 4.5).
с окнами, содержащими графические описания макроблоков различных типов
Рисунок 4.2 – Главное окно графического редактора подсистемы иерархического проектирования топологии
126
127
а)
б)
Рисунок 4.3 – Примеры структурных планов:
а) регулярных устройств не ортогональной формы,
б) нерегулярных устройств
128
Рисунок 4.4 – Меню основных компонентов структурных планов
а)
б)
в)
г)
Рисунок 4.5 – Основные компоненты структурных планов:
а) ячейка, б) шина с контактами, в) виртуальная шина с контактами,
г) группа ячеек
Ячейки на структурных планах представляются прямоугольниками со штриховкой (рисунок 4.5, а).
Шины с контактами, изображаемые в редакторе линиями с кружками на
концах (рисунок 4.5, б), отражают взаимосвязь и взаимное расположение ячеек
структурного плана.
Используемые в проекте выводы ячеек активизируются в окне свойств
ячейки (рисунок 4.6) щелчком левой клавиши мыши, что отображается галочкой в
соответствующей позиции списка согласуемых виртуальных линий (выводов и
границ), приведенного на рисунке 4.5. Перед согласованием ячеек подсистемой
автоматически выполняется анализ взаимного соответствия числа активных выводов и границ взаимосвязанных ячеек.
129
Рисунок 4.6 – Окно свойств ячейки (штрихпунктирной линией выделен
список согласуемых виртуальных линий (выводов и границ)
окна свойств, приведенный на рисунке 4.7)
Виртуальные шины, отображаемые пунктирной линией (рисунок 4.5, в),
используются в случаях, когда необходимо отменить согласование положения
границ ячеек.
130
Рисунок 4.7 – Список согласуемых виртуальных линий (выводов и границ)
окна свойств, приведенного на рисунке 4.6
Как в регулярных, так и в нерегулярных схемах, ряд ячеек может быть объединен в группу по каким-либо структурным признакам для дальнейшего использования при описании макроблока путем матрицирования. Объединяемые в группы ячейки обводятся пунктирным прямоугольным контуром (рисунок 4.8 и рисунок 4.5, г) после активизации пункта меню «Компоненты–Группа» и выбора ориентации группы (рисунок 4.4): горизонтальная группа (для строки ячеек) , вертикальная группа (для столбца). Имя группы задается в свойствах группы, вызываемых через контекстное меню (рисунок 4.9).
И ячейки внутри группы и сами группы могут матрицироваться. Коэффициенты матрицирования, как и имя группы, задаются в её свойствах, через вызов контекстного меню для компонента «группа» (рисунок 4.9).
131
Программа позволяет согласовывать ячейки и выполнять сборку из них
устройств как с прямоугольными, так и со сложными не ортогональными структурными планами, как с единичными (из одной стороны одной ячейки в одну сторону другой), так и с множественными (на одну сторону ячейки из нескольких
ячеек) связями. Группы можно использовать только в структурах, имеющих только единичные связи (рисунок 4.8), в иных случаях они игнорируются.
Рисунок 4.8 – Пример объединения ячеек в группу:
фрагмент главного окна графического редактора
Использование подсистемы существенно упрощает поиск лучшего варианта
реализации сложных иерархических макроблоков СБИС, благодаря возможности
рассмотрения различных вариантов компоновки макроблоков.
132
Рисунок 4.9 – Контекстное меню «Свойства группы»
В качестве примеров на рисунках 4.10 и 4.11 приведены сгенерированные
топологии различных иерархических макроблоков СБИС, как обладающих регулярной структурной организацией (рисунки 4.10 и 4.11, г), так и нерегулярных
(рисунки 4.11, а–в)).
Рисунок 4.10 – Топология матричного извлекателя корня – пример
иерархического макроблока СБИС с матричной структурой
133
а)
б)
в)
г)
Рисунок 4.11 – Примеры структурных планов и сгенерированных на их основе
топологий иерархических макроблоков СБИС
134
Программа «Matching of Cells» разработана для семейства ОС Windows и
представляет собой приложение c графическим интерфейсом для сборки фрагментов (макроблоков) из ячеек с автоматическим согласованием ячеек по выводам и границам, если это требуется.
Входными данными для нее являются набор файлов виртуального описания
ячеек, набор файлов их спецификаций и подготовленный в графическом редакторе программы структурно-топологический план макроблока или текстовый
файл иерархического описания макроблока (для регулярных устройств).
Результатом работы программы является выходной файл описания топологии макроблока на языке описания топологии CIF для заданной технологии, содержащий библиотеку описаний топологии ячеек макроблока и иерархическое
описание его сборки из них. Программа отображает большой спектр информации,
как о введенной исходной структуре, так и о ходе выполнения различных операций, для контролирования процесса генерации топологии макроблока пользователем. Программа работает под Windows XP и в режиме совместимости (Windows
XP SP2) под Windows 7.
При запуске программы Matching of Cells пользователь должен учесть следующие принципиальные особенности, аналогичные тем, которые были перечислены в разделе 2.4 при описании методики генерации ячеек и сборки макроблока с использованием консольного приложения «Matching of Cells» (предполагается, что установлена система TopDesign версии 3.1 или 3.2).
 Файл действующей лицензии от TopDesign должен находиться в материнском каталоге, который необходимо указать в опциях согласования. Если по
какой-то причине материнский каталог отличается от каталога, в который
инсталлирована система TopDesign, то необходимо в соответствующий каталог скопировать файл лицензии;
 Программа генерации файла на языке описания топологии CIF (vgcif.exe)
должна находиться в материнском каталоге. Если по какой-то причине материнский каталог отличается от каталога, в который инсталлирована сис-
135
тема TopDesign, то необходимо в соответствующий каталог скопировать
файл vgcif.exe;
 Файлы технологии (tehnol.bin – для сжатия, tehcif.bin – для генерации CIF)
должны находиться в каталоге для размещения файлов реализации топологии (*.xy), то есть рабочую технологию проектирования необходимо скопировать из соответствующих папок технологий системы TopDesign.
При невыполнении какого-либо пункта из списка, корректная работа программы не гарантируется.
4.3 Разработка методики иерархического проектирования
топологии с помощью графического редактора иерархического
проектирования макроблоков Matching of Cells
Программная генерация иерархического описания топологии макроблока
СБИС осуществляется в соответствии с этапами приведенной ниже методики иерархического проектирования топологии.
1. Разработка структурно-топологического плана.
2. Схемотехническое проектирование ячеек макроблока и разработка библииотеки виртуальных описаний топологий ячеек в редакторе TopDesign и библиотеки текстовых файлов спецификаций ячеек макроблока.
3. Разработка иерархического описания макроблока СБИС – спецификации
макроблока. В случае матричной структуры можно загрузить в графический редактор текстовую спецификацию макроблока, в случае сложной нерегулярной
структуры его необходимо самостоятельно собирать из ячеек и шин, их соединяющих.
4. Формирование библиотеки реальных описаний топологий ячеек макроблока в заданных проектных нормах путем автоматического согласования ячеек
по положению выводов и границ между собой в соответствии с заданным структурным планом макроблока с помощью программы «Matching of Cells».
136
5. Генерация выходного файла иерархического описания топологии макроблока на языке CIF с помощью программы «Matching of Cells».
Принципиальными отличиями этой методики от описанной в разделе 2.1 с
точки зрения особенностей реализуемых устройств является возможность описания
и генерации нерегулярных структур, а с точки зрения технологии разработки –
возможность, как загрузки текстовых описаний, так и формирования их в диалоге.
Кроме того для ситуации, когда уже разработан структурно-топологический
план и имеется библиотека согласованных ячеек, то есть когда необходимо лишь
изменить структурные параметры реализуемого устройства (разрядность данных)
предусмотрена методика сокращенной программной генерации иерархического
описания топологии макроблока СБИС. В этом случае достаточно, загрузив уже
имеющийся проект, задать только новые значения коэффициентов матрицирования ячеек и строк/столбцов и выполнить операцию сборки.
Ниже методика программной генерации иерархического описания топологии макроблока СБИС на базе итерационного согласования ячеек будет рассмотрена более подробно на примере макроблока делителя.
Перед рассмотрением методики иерархического проектирования топологии
с помощью графического редактора иерархического проектирования макроблоков
Matching of Cells необходимо отметить, что этап разработки структурно-топологического плана макроблока предполагает формирование обобщенного описания
структуры минимальной разрядности, для части из ячеек и групп которой потом
задаются коэффициенты матрицирования.
Схемотехническое проектирование ячеек и библиотеки виртуальных описаний топологий ячеек макроблока в редакторе TopDesign ничем не отличаются от
аналогичных этапов предложенной в главе 2 методики проектирования. Потому
останавливаться на них не имеет смысла.
Что же касается текстовых файлов спецификаций ячеек макроблока (структура и синтаксис которых уже были рассмотрена ранее в подразделе 2.4.1), то они
могут быть сформированы тремя разными способами.
137
В соответствие с первым из них файлы спецификаций ячеек (файлы «*.dat»)
могут быть созданы и заполнены вручную с помощью любого текстового редактора. Во втором способе, о котором будет рассказано ниже, заполнение осуществляется пользователем в диалоге свойств ячейки в графическом редакторе. Третий
способ предполагает автоматическое формирование спецификации на основе анализа текстового файла описания виртуальной топологии (*.cpp) [48], полученного
экспортом из файла виртуального описания топологии ячейки (*.vlf), или на основе анализа непосредственно файла виртуального описания.
Разработка структурно-топологического плана начинается с формирования
обобщенного описания структуры минимальной разрядности, для части из ячеек и
групп которой потом задаются коэффициенты матрицирования. В качестве примера можно сослаться на рисунок 4.8, на котором приведен структурный план
макроблока делителя.
Разработка иерархического описания макроблока СБИС в графическом редакторе Matching of Cells предполагает:
– размещение в окне графического редактора ячеек (рисунок 4.12);
– проведение между ними связей (отдельно стоящих ячеек в структуре не
должно быть) (рисунок 4.13) ;
– задание свойств ячеек (может быть выполнено как при размещении ячеек
в окне графического редактора, так и после соединения ячеек связями в еди-
ную структуру).
При задании свойств ячеек необходимо вызвать контекстное меню для отмеченной ячейки и выбрать команду «Свойства» (рисунок 4.14).
Появляющееся в результате этого незаполненное окно свойств ячейки
приведено на рисунке 4.15.
138
Рисунок 4.12 – Добавление компонента «Ячейка»
Рисунок 4.13 – Добавление компонента «Шина»
139
Рисунок 4.14 – Контекстное меню ячейки
Рисунок 4.15 – Незаполненное окно свойств ячейки
140
Для задания свойств выбранной ячейки пользователю необходимо указать
ранее сформированный файл спецификации ячейки. Для этого необходимо нажать на кнопку
рядом с полем «Имя файла спецификации», запускающую диа-
лог выбора файла с фильтром по расширению *.dat. Из него будет взята информация о виртуальных линиях, на которых располагаются согласуемые выводы и
границы ячеек. При наличии ошибок они будут выведены в лог.
В случае отсутствия файла спецификации следует задать свойства ячейки
вручную, используя поля «Имя виртуальной лини», «Значение виртуальной координаты», «Отношение к границе» и управляющие кнопки «Добавить», «Изменить», «Удалить». В результате в приведенном на рисунке 4.7 списке согласуемых виртуальных линий окна свойств ячейки (рисунок 4.6) будут заполнены
столбцы «Значение», «Граница», «Имя».
Статус «активный/неактивный» (true/false) виртуальных линий задается
выбором с помощью курсора соответствующих ячеек столбца «Статус». Галочка
в них свидетельствует об активизации соответствующих виртуальных линий.
Виртуальные линии со статусом «неактивная» (false) не принимают участие в
операции согласования.
Если поля «Имя ячейки» и «Имя файла реализации сжатия» остались пустыми, то выдается запрос на заполнение их именем файла спецификации. Пользователю рекомендуется использовать этот механизм, чтобы не заполнять поля
вручную.
В завершение необходимо заполнить поле «Имя файла виртуального описания» вручную либо с помощью диалога выбора файла с фильтром по расширению *.vlf (для этого необходимо нажатие на кнопку
рядом с полем) и если тре-
буется указать коэффициент матрицирования.
После задания имени файла виртуального описании и заполнения списка
виртуальных линий можно выполнить проверку на совпадение этой информации
с данными полученными из vlf-файла (файла виртуального описания топологии
ячейки). При наличии ошибок они будут выведены в лог. Проверка осуществ-
141
ляется на существование виртуальных линий и уникальность их имён. Одинаковые значения виртуальных координат не являются ошибкой, так как возможно,
что эти виртуальные линии формируют систему координат, что считается допустимым.
Блок «Размеры ячейки» и столбец «Ограничение» в списке виртуальных
линий окна свойств будут заполнены после выполнении операции согласования.
Для сохранения заданных свойств и закрытия диалога необходимо нажать
на кнопку «Сохранить» (иначе «Отмена»).
В качестве примера на рисунке 4.16 приведена заполненная экранная форма «Свойства ячейки».
Рисунок 4.16 – Заполненная экранная форма «Свойства ячейки»
142
После задания свойств всех ячеек можно перейти к операции согласования
ячеек по границам и положению выводов. Однако, если необходимо, то после задания свойств ячеек они могут быть объединены в группы, которые можно матрицировать, указав коэффициенты в свойствах через контекстное меню. В качестве примеров на рисунках 4.17 и 4.18 приведены окна графического редактора с
собранным структурным планом матричного делителя соответственно без группировки и с группировкой ячеек в строки.
Рисунок 4.17 – Окно графического редактора со структурным планом матричного
делителя без группировки ячеек
143
Рисунок 4.18 – Окно графического редактора со структурным планом матричного
делителя с группировкой ячеек в строки
При построении структурных планов устройств и заполнении свойств их
ячеек очень ошибки. Для выявления таких ситуации, была реализовано средство
проверки входных данных, которое отображает текущее состояние ячеек, шин и
структурного плана в целом.
В качестве примера на рисунке 4.19 представлено окно проверки входных
данных для матричного делителя.
Рисунок 4.19 – Окно проверки входных данных для матричного делителя
144
145
Для каждого типа данных используется своя вкладка. Кроме этого при выполнении операции согласования сначала проводиться проверка структурного
плана на корректность разрядности шин и на наличие ошибок в плане и пользователь информируется об обнаруженных ошибках.
Перед началом согласования ячеек пользователь должен задать параметры
согласования. Окно параметров согласования (рисунок 4.20) вызывается через
вкладку «Операции – Параметры согласования» или появляется автоматически
при первом запуске операции согласования.
Рисунок 4.20 – Окно параметров согласования
В окне параметров согласования задаются:
– очередность сжатия: по умолчанию X-Y (сначала по оси X, потом по оси Y)
или Y-X (в обратной последовательности);
– ведение лога работы;
– пути к материнскому каталогу, к каталогу с файлами виртуального описания и к каталогу с файлами реализации сжатия.
146
После задания путей, можно выполнить согласование. Последующее редактирование данных путей (в случае необходимости) производиться здесь же.
После запуска операции согласования (вкладка «Операции – Выполнить согласование») появляется окно с демонстрацией прогресса обработки ячеек (рисунок 4.21).
Рисунок 4.21 – Окно прогресса обработки ячеек
После завершения выводится общая информация о процессе согласования:
время, число вызовов функции сжатия, количество шагов цикла (рисунок 4.22).
Рисунок 4.22 – Окно информации о процессе согласования
147
После успешного согласования, пользователь может запустить операцию
сборки макроблока (вкладка «Операции – Выполнить сборку»). При первом выполнении команды отобразиться диалоговое окно параметров сборки (рисунок 4.23), запрашивающее имя выходного файла описания сборки макроблока и
имя макроблока в сборке и параметры для формата CIF (для выходного файла
описания топологии макроблока на языке CIF рекомендуется использовать параметры по умолчанию, высвечивающиеся в окне).
При нажатии на кнопку
рядом с полем «Имя файла сборки» вызывается
диалог выбора или создания выходного файла, где пользователь может задать
произвольное расположение файла сборки.
Рисунок 4.23 – Окно параметров сборки
После выполнения операции сборки макроблока, пользователь получит сообщение об успешном или неуспешном завершении операции (рисунок 4.24).
148
Рисунок 4.24 – Окно сообщения о завершении операции сборки
Необходимо отметить, что помимо создания нового проекта пользователь
может работать с ранее созданным. Для открытия проекта используется соответствующая команда «Открыть» из вкладки «Файл» меню программы (рисунок 4.25).
Рисунок 4.25 – Команда «Открыть» проект в интерфейсе программы
Если пользователь собирается работать с проектом, в котором сохранена
вся информация о структурно-топологическом плане, то этап формирования данного плана пропускается.
149
Тогда пользователю необходимо использовать команду «Загрузка спецификации» из вкладки «Файл» меню программы (рисунок 4.26), после чего программа автоматически добавит в текущий проект всю необходимую информацию
о структурно-топологическом плане, включая загрузку информации из файлов
спецификаций для всех уникальных типов ячеек.
Рисунок 4.26 – Команда «Загрузка спецификации» в интерфейсе программы
После загрузки спецификации пользователь может переходить к этапу согласования ячеек. Данная функция упрощает построение в редакторе матричных
конструкций. При сложных же конструкция пользователю придется вручную составлять структурно-топологических план, проводить шины связи между ячейками и загружать информацию из спецификаций ячеек.
Если же перед сохранением проекта был успешно пройден этап согласования, то повторно выполнять его после загрузки проекта не обязательно, можно
сразу переходить к этапу сборки макроблока. Однако в случае любого изменения
структурно-топологического плана, (например изменения взаимного расположения ячеек, добавления/удаления шины связи, или добавления/удаления виртуаль-
150
ных линий в какой-либо ячейке) необходимо снова пройти этап согласования,
прежде чем выполнять сборку выходного макроблока.
4.4 Обобщенная структура подсистемы автоматизированного
иерархического технологически инвариантного проектирования
топологии макроблоков КМОП СБИС Matching of Cells
Графический редактор представляет собой одну из составляющих подсистемы автоматизированного иерархического технологически инвариантного проектирования топологии макроблоков КМОП СБИС Matching of Cells, обобщенная
структура которой приведена на рисунке 4.27.
Входными данными для подсистемы являются файлы виртуального описания ячеек (vlf-файлы), спецификации ячеек (dat-файлы) и спецификация макроблока. Файлы виртуального описания ячеек создаются в системе символьного
проектирования TopDesign [20]. Файлы спецификации ячеек, содержащие описание границ и выводов ячеек либо генерируются с помощью программы парсера
[48] из файлов виртуального описания ячеек, предварительно сохраненных в
формате cpp, используя редактор TopDesign, либо заполняются вручную с помощью текстового редактора, в соответствии с заданным синтаксисом конструкций.
Файлы спецификации макроблока либо заполняются вручную с помощью текстового редактора, либо проектируются в графическом редакторе подсистемы.
Подсистема автоматизированного иерархического технологически инвариантного проектирования топологии макроблоков КМОП СБИС Matching of Cells
состоит из трех модулей:
– структурно-топологического проектирования макроблоков СБИС;
– согласования топологии ячеек макроблока СБИС;
– сборки топологии макроблоков СБИС.
н
о
р
м
ы
П
р
о
е
к
т
н
ы
е
Спецификация
макроблока СБИС
Текстовый
редактор
Файл проекта макроблока СБИС
Спецификации ячеек
(dat- файлы)
Парсер описания топологии
(генератор спецификаций ячеек)
Библиотека cif-файлов
описания топологии ячеек
Cif-файл описания сборки
макроблока СБИС
Выходные данные (Cif-файл описания топологии макроблока СБИС)
Подсистема автоматизированного иерархического технологически
инвариантного проектирования топологии макроблоков КМОП СБИС
Matching of Cells
Модуль структурно-топологического
Модуль согласования тополопроектирования макроблоков СБИС
гии ячеек макроблока СБИС
Графический редактор
структурно-топологического
описания макроблоков СБИС
Модуль сборки топологии
Модуль веримакроблоков СБИС
Генератор матриц ячеек фикации ячемакроблоков СБИС
ек СБИС
Исходные данные
vlf-файлы описания
эскизов топологии ячеек
cpp-файлы описания
эскизов топологии ячеек
Средства формирования спецификаций
Рисунок 4.27 – Обобщенная структура подсистемы автоматизированного иерархического
технологически инвариантного проектирования топологии макроблоков КМОП СБИС Matching of Cells
Cif-файлы выходных описаний
топологии ячеек
в заданной технологии
Подсистема генерации выходного описания топологии ячеек
xy-файлы ячеек
в заданной технологии
Подсистема сжатия
топологии ячеек
vlf-файлы описания
эскизов топологии ячеек
Графический редактор
топологии ячеек
Система символьного проектирования топологии ячеек СБИС
TopDesign
151
152
Модуль структурно-топологического проектирования макроблоков СБИС
включает графический редактор структурно-топологического описания макроблоков СБИС, с возможностью проверки описания макроблоков на корректность. (В
консольной версии приложения отсутствует графический редактор и возможность
проверки входных данных.)
Данные в подсистему проектирования загружаются из файлов исходных
данных или из файла проекта макроблока. Причем структурно-топологическое
описание макроблоков СБИС может не только загружаться из текстового файла
спецификация макроблока или файла проекта макроблока, но и проектироваться в
графическом редакторе (не только в ручную, но и с помощью генератора матриц
ячеек макроблоков). После загрузки данные поступают в модуль согласования топологии ячеек макроблока СБИС, который в процессе работы обращается к системе сжатия топологии TopDesign.
Модуль согласования выполняет сжатие ячеек в заданных проектных нормах с учетом вычисляемых им дополнительных ограничений на расположение
выводов и границ ячеек. Передача информации о вычисленных ограничениях осуществляется через внутренние объекты приложения. После завершения согласования, осуществляется расчет габаритов ячеек, необходимых для выполнения
операции сборки топологии макроблока.
При сборке топологии макроблока, осуществляемой модулем сборки топологии макроблоков СБИС, используются данные о структуре макроблока из модуля структурно-топологического проектирования макроблоков СБИС.
Выходные данные, генерируемые подсистемой автоматизированного иерархического технологически инвариантного проектирования топологии макроблоков КМОП СБИС Matching of Cells, представляют собой структурированный иерархически файл описания топологии макроблока СБИС в заданной технологии
на стандартном языке описания топологии CIF, включающий в себя:
– библиотеку ячеек макроблока;
153
– библиотеку модулей макроблока (описание сборки строк и столбцов из
ячеек);
– описание сборки макроблока из строк и столбцов ячеек.
Подсистема Matching of Cells предоставляет возможность сборки макроблока определенной разрядности без повторного выполнения операций согласования.
Подсистема отображает большой спектр информации, как о введенной исходной структуре, так и о ходе выполнения различных операций, для контролирования процесса генерации топологии макроблока пользователем. Подсистема
работает под Windows XP и в режиме совместимости (Windows XP SP2) под
Windows 7.
ВЫВОДЫ ПО ГЛАВЕ 4
1. Принципы согласования ячеек и построения макроблоков СБИС с регулярной структурно-топологической организацией распространены на макроблоки
с нерегулярной структурно-топологической организацией, являющиеся более общим случаем организации макроблоков СБИС.
2. Разработаны алгоритмы и соответствующие программные средства иерархического технологически инвариантного проектирования топологии для макроблоков СБИС с регулярной и с нерегулярной структурно-топологической организацией.
3. Тестирование программных средств, проведенное при разработке специализированных кремниевых компиляторов для матричного делителя, матричного
извлекателя корня и тестовых нерегулярных структур, подтвердило практическую
реализацию интеграции иерархического проектирования топологии макроблоков
СБИС в графическую среду редактора.
154
ЗАКЛЮЧЕНИЕ
1. На основании результатов анализа процесса согласования габаритов и положения выводов ячеек предложена динамическая модель топологии ячеек СБИС,
согласно которой ячейки рассматриваются как динамические множества элементов, взаимодействующих друг с другом и соответственно влияющих на положение соседей в некоторой окружающей их области.
2. Предложена базирующаяся на динамической модели ячеек СБИС методика индивидуального итерационного согласования положения стыкуемых выводов и границ топологии ячеек макроблоков СБИС, обеспечивающая высокую
плотность упаковки топологии макроблоков. Такой подход позволяет после согласования каждой из пар выводов учитывать изменения во взаимном влиянии
внутренних элементов топологии ячеек, происходящие вследствие осуществляемой при согласовании раздвижки топологии.
3. На основе предложенной методики индивидуального итерационного согласования положения стыкуемых выводов и границ топологии ячеек макроблоков
СБИС разработана методика программной генерации иерархического описания топологии регулярных макроблоков СБИС в технологически инвариантной концепции.
4. Разработаны алгоритм и соответствующие программные средства, реализующие в технологически инвариантной концепции предложенную методику
программной генерации иерархического описания топологии макроблоков СБИС
с регулярной структурно-топологической организацией.
Тестирование на примере матричного делителя разработанных средств программной генерации иерархического описания топологии макроблоков СБИС с
регулярной структурно-топологической организацией, подтвердило правильность
методики и алгоритма, на основе которых они были разработаны, продемонстрировав сокращение площади по сравнению с использовавшимися ранее средст-
155
вами единовременного согласования даже для макроблока СБИС с практически
однородной структурой, такого как матричный делитель.
5. На основании результатов анализа процесса согласования ячеек макроблоков разработаны алгоритмы и соответствующие программные модули, существенно уменьшающие число согласований ячеек и набор согласуемых ячеек
макроблоков СБИС с регулярной структурно-топологической организацией.
6. Тестирование разработанных программных средств ускорения процесса
согласования, проведенное при разработке специализированного кремниевого компилятора матричного делителя, продемонстрировало существенное сокращение:
– времени генерации выходного файла описания топологии,
– числа ячеек в специализированной библиотеке макроблока,
– объема файла описания топологии макроблока.
7. Принципы согласования ячеек и построения макроблоков СБИС с регулярной структурно-топологической организацией распространены на макроблоки
с нерегулярной структурно-топологической организацией, являющиеся более общим случаем организации макроблоков СБИС.
8. Разработаны алгоритмы и соответствующие программные модули иерархического технологически инвариантного проектирования топологии для макроблоков СБИС с регулярной и с нерегулярной структурно-топологической организацией.
Тестирование программных средств, проведенное при разработке специализированных кремниевых компиляторов для матричного делителя, матричного
извлекателя корня и тестовых нерегулярных структур, подтвердило практическую
реализацию интеграции иерархического проектирования топологии макроблоков
СБИС в графическую среду редактора.
156
9. Разработана методика программной генерации иерархического описания
топологии макроблоков СБИС с регулярной и с нерегулярной структурно-топологической организацией в технологически инвариантной концепции.
Результаты диссертационной работы используются в системе TopDesgn
и внедрены учебный процесс на кафедре вычислительной техники СПбГЭТУ
“ЛЭТИ” в рамках магистерской дисциплины «Проектирование заказных систем
на кристалле», о чем имеются акты внедрения. Материалы по теме диссертации
использованы в работе по трем проектам.
В качестве дальнейших направлений исследований по тематике данной
работы рассматривается адаптация предложенной методики иерархического
технологически инвариантного проектирования топологии макроблоков СБИС
(базирующейся на индивидуальном согласовании положения стыкуемых выводов
и границ ячеек) к разрабатываемым сейчас более изощренным методам технологически инвариантного проектирования на основе алгоритмов сжатия с изменением формы элементов. Исследования предполагается осуществить в рамках работ
по проекту ГПМИ/ВТ-64 «САПР иерархического инвариантного проектирования
топологии блоков СБИС (САПР ИИП) для специализированных вычислительных
систем» по гранту РФФИ № 14-07-31098.
157
СПИСОК СОКРАЩЕНИЙ И УСЛОВНЫХ ОБОЗНАЧЕНИЙ
СБИС
– большая интегральная схема.
БЯ
– базовая ячейка.
КТТ
– конструкторско-технологические требования.
МВУ
– матричное вычислительное устройство.
МВУ ИКК – матричное
вычислительное
устройство
для
извлечения
квадратного корня.
САПР
– система автоматизированного проектирования.
СБИС
– сверхбольшая интегральная схема.
СКК
– специализированный кремниевый компилятор.
ТИ
– технологическая инвариантность.
ТИ СКК
– технологически
инвариантный
специализированный
кремниевый компилятор.
CIF
– Caltech intermediate form – язык описания топологии – разработанная в калифорнийском технологическом институте под руководством профессора Карвера Мида [1] промежуточная форма
представления топологической информации.
158
СЛОВАРЬ ТЕРМИНОВ
Vlf-файл: файл описания виртуальной топологии (Virtual layouts file).
Xy-файл: файл реализации сжатия ячеек топологии, содержащий значения
координат виртуальных линий, на которых расположены элементы топологии ячеек.
Виртуальная топология: описание топологии, обладающее свойством технологической инвариантности, топологический эскиз.
Динамическая модель ячейки: представление топологии ячейки в виде
совокупности элементов, изменение взаимного расположения которых (раздвижка) снижает степень их влияния на взаимное расположение их соседей.
Макроблок СБИС: крупный фрагмент СБИС (запоминающее устройство,
умножитель, делитель, арифметико-логическое устройство и тому подобное).
Специализированный кремниевый компилятор: программа, генерирующая описание топологии определенного устройства, в соответствии с задаваемым
набором его параметров (разрядность данных, мощность выходных каскадов, проектные нормы).
Спецификация макроблока: иерархическое текстовое описание расположения ячеек в макроблоке СБИС.
Спецификация ячейки: текстовое описание ячейки, содержащее имена и
координаты виртуальных линий, на которых расположены ее выводы и границы.
Используется для согласования ячеек.
Статическая модель ячейки: представление топологии ячейки в виде совокупности элементов, изменение взаимного расположения которых (раздвижка)
не оказывает влияния на взаимное расположение их соседей.
159
Технологическая инвариантность: свойство топологического описания,
обеспечивающее возможность настройки топологии на требуемые проектные
нормы.
Фрагмент СБИС: функционально законченная часть интегральной схемы
(ячейка, устройство).
160
СПИСОК ЛИТЕРАТУРЫ
1. Mead, C. A. Introduction to VLSI Systems / C. A. Mead, L. A. Conway. –
Reading, Mass.: Adddison-Wesley, 1980. – 396 p.
2. Mukherjee, A. Introduction to nMOS and CMOS VLSI Systems Design / A.
Mukherjee. – Englewood Cliffs, N.J.: Prentice Hall, 1986.
3. Physical Design Automation of VLSI Systems / B. T. Preas, M. J. Lorenzetti,
B. D. Ackland [et al.]. – Menlo Park, California: The Benjamin/Cummings Publishing
Company, 1988. – P. 211–281.
4. Эйрис, Р. Проектирование СБИС. Метод кремниевой компиляции: Пер. с
англ. / Р. Эйрис. – М.: Наука. Гл. ред. физ.-мат. лит., 1988. – 456 с.
5. Технологически независимые средства, обеспечивающие нисходящее
проектирование ИС. – "Электроника". – 1990. – № 22. – C. 68–70.
6. Weste, N. H. E., Principles of CMOS VLSI Design. A systems perspective /
N. H. E. Weste, K. Eshraghian. – 2nd edition. – USA: Addison-Wesley, 1993.
7. Clein, D. CMOS IC Layout – Concepts, Methodologies and Tools / D. Clein. –
Newnes, 2000.
8. Himanshu, B. Advanced ASIC chip synthesis / B. Himanshu. – USA, New
York: Kluwer Academic Publishers, 2002.
9. Analysis and Design of Digital IC's in Deep Submicron Technology /
D. Hodges [et al.]. – 3rd edition. – USA: McGraw-Hil, 2003.
10. Baker, R. CMOS – Circuit Design, Layout and Simulation / R. Baker – 2nd
edition. – USA: Wiley-IEEE, 2005.
11. Weste, N. H. E., Harris D. CMOS VLSI design / N. H. E. Weste, D. Harris. –
3rd edition. – USA: Addison-Wesley, 2005.
12. Рабаи, Ж. М.
Цифровые
Интегральные
Схемы.
Методология
проектирования: Пер. с англ. / Ж. М. Рабаи, А. Чандракасан, Б. Николич. – М.:
Вильямс, 2007. – 912 с.
161
13. Wayne, W. Modern VLSI design: IP-based design / W. Wayne. – 4th edition.
– Boston: Pearson Education Inc., 2009.
14. Официальный сайт компании Cadence [Электронный ресурс]. – Режим
доступа: http://www.cadence.com (Дата обращения: 14.04.2012).
15. Официальный сайт компании Mentor Graphics [Электронный ресурс]. –
Режим доступа: http://www.mentorgraphics.com (Дата обращения: 14.04.2012).
16. Официальный сайт компании Synopsys [Электронный ресурс]. – Режим
доступа: http://www.synopsys.com (Дата обращения: 14.04.2012).
17. Зуев, И. С. Метод и инструментальные средства технологически инвариантного проектирования топологии КМОП СБИС / И. С. Зуев, С. Э. Миронов,
Н. М. Сафьянников // Досвiд розроботи та застосування приладно-технологiчних
САПР мiкроелектронiки: Материалы 4-ой междунар. конф., Львов, 18-23 фев.
1997г. – Т1. – Львов: 1997. – С. 73-74.
18. Зуев, И. С. Метод и подсистема TRASVG технологически инвариантного проектирования топологии фрагментов КМОП СБИС / И. С. Зуев,
С. Э. Миронов, Н. М. Сафьянников // Автоматизация проектирования дискретных
систем CAD DD’97: Материалы 2-ой междунар. конф., Минск, 12-14 нояб. 1997 г.
– Минск: 1997. – С. 232-239.
19. Зуев, И. С. Технологически инвариантная система проектирования топологии стандартных фрагментов МОП СБИС / И. С. Зуев, С. Э. Миронов,
Н. М. Сафьянников // Электроника и информатика – 2002: Материалы 4-ой междунар. науч.-техн. конф. МИЭТ, г. Москва, 19-21 нояб. 2002г. – Т1. – М.: издательство, год издания. – С. 336-337.
20. Зуев, И. С. Технологически инвариантная система проектирования топологии стандартных фрагментов МОП СБИС / И. С. Зуев, А. Б. Максимов,
С. Э. Миронов, Н. М. Сафьянников // “Известия вузов. Электроника”. – 2003. –
№3. – С. 63-70.
21. Миронов, С. Э. Технологически инвариантная библиотека фрагментов
КМОП СБИС / И. С. Зуев, С. Э. Миронов // Досвiд розроботи та застосування
162
приладно-технологiчних САПР мiкроелектронiки: Материалы 4-ой междунар.
конф., Львов, 18-23 фев. 1997г. – Т1. – Львов: 1997. – С. 71-72.
22. Миронов, С. Э. Технологически инвариантная библиотека стандартных
фрагментов КМОП СБИС / И. С. Зуев, С. Э. Миронов, // Автоматизация проектирования дискретных систем CAD DD’97: Материалы 2-ой междунар. конф., Беларусь, Минск, 12-14 нояб. 1997г. – Т3. – Минск: 1997. – С. 240-245.
23. Миронов, С. Э. Метод технологически инвариантного проектирования
семейств библиотек стандартных фрагментов КМОП СБИС / С. Э. Миронов;
Санкт-Петербургск. гос. электротехн. ун-т. – СПб., 2003, – 6 c.: ил. – Библиогр. 9
назв. – Рус. – Деп. в ВИНИТИ 26.08.2003. № 1621-В2003.
24. Миронов, С. Э. Технологически инвариантное проектирование семейств
библиотек стандартных фрагментов КМОП СБИС / С. Э. Миронов, О. Л. Гаврикова // Известия СПбГЭТУ “ЛЭТИ”. Сер. “Информатика, управление и компьютерные технологии”. – 2005. – Вып. 1. – С. 3–6.
25. Миронов, С. Э. Принципы организации иерархического проектирования
топологии в системе символического проектирования на основе виртуальной сетки / С. Э. Миронов; Санкт-Петербургск. гос. электротехн. ун-т. – СПб., 1998, –
10 c.: ил. – Библиогр. 9 назв. – Рус. – Деп. в ВИНИТИ 20.01.98. № 144-B98.
26. Миронов, С. Э. Иерархический технологически инвариантный компилятор конвейерного матричного умножителя / С. Э. Миронов, Е. В. Стрельников;
Санкт-Петербургск. гос. электротехн. ун-т. – СПб., 1999, – 35 c.: ил. – Библиогр.
12 назв. – Рус. – Деп. в ВИНИТИ 22.07.99. № 2391-В99.
27. Миронов, С. Э. Иерархический технологически инвариантный компилятор схемы извлечения квадратного корня / С. Э. Миронов, А. А. Галкин; СанктПетербургск. гос. электротехн. ун-т. – СПб., 1999, – 37 c.: ил. – Библиогр. 12 назв.
– Рус. – Деп. в ВИНИТИ 22.07.99. № 2392-В99.
28. Миронов, С. Э. Иерархический технологически инвариантный специализированный кремниевый компилятор конвейерного матричного умножителя /
С. Э. Миронов, И. С. Зуев, Е. В. Стрельников // Автоматизация проектирования
163
дискретных систем CAD DD’99: Материалы 3-ей междунар. конф., Беларусь,
Минск, 10-12 нояб. 1999г. – Минск: 1999. – C. 176-183.
29. Миронов, С. Э. Иерархическое проектирование топологии регулярных
макрофрагментов интегральных схем в технологически инвариантной концепции
/ С. Э. Миронов, А. А. Галкин, Е. В. Стрельников // Известия СПбГЭТУ “ЛЭТИ”.
Сер. “Информатика, управление и компьютерные технологии”. – 2006. – Вып. 2. –
С. 50–54.
30. Миронов, С. Э. Технологически инвариантные методы в проектировании топологии иерархических макроблоков интегральных схем / С. Э. Миронов //
Автоматизация проектирования дискретных систем CAD DD’07: Материалы 6-ой
междунар. конф., Беларусь, Минск, 14-15 нояб. 2007г. – Т1. – Минск: 2007. –
С. 165-172.
31. Миронов, С. Э. Проектирование топологии для управляющих блоков заказных СБИС с оптимизированной прошивкой матриц / С. Э. Миронов, // Автоматизация проектирования дискретных систем CAD DD’07: Материалы 6-ой междунар. конф., Беларусь, Минск, 14-15 нояб. 2007г. – Т1. – Минск: 2007. – С. 173180.
32. Миронов, С. Э. Топология управляющих блоков заказных СБИС с оптимизированной прошивкой матриц / С. Э. Миронов // Известия СПбГЭТУ “ЛЭТИ”.
Сер. “Информатика, управление и компьютерные технологии”. – 2009. – Вып. 1. –
С. 26-32.
33. Васильев, А. Ю. Итерационное сжатие с ограничениями при иерархическом технологически инвариантном проектировании топологии макрофрагментов
СБИС / А. Ю. Васильев, С. Э. Миронов // Известия СПбГЭТУ «ЛЭТИ». Сер.
«Информатика, управление и компьютерные технологии». – 2010. – Вып. 3. –
С. 10-15.
34. Васильев, А. Ю. Оптимизация управления сжатием топологии при иерархическом технологически инвариантном проектировании макроблоков КМОП
СБИС / А. Ю. Васильев, С. Э. Миронов; Санкт-Петербургск. гос. электротехн. ун-
164
т. – СПб., 2010, – 19 c.: ил. – Библиогр. 9 назв. – Рус. – Деп. в ВИНИТИ № 361B2010 от 11.06.2010.
35. Васильев, А. Ю. Оптимизация иерархического технологически инвариантного проектирования макроблоков КМОП СБИС путем итерационного управления сжатием топологии / А. Ю. Васильев, С. Э. Миронов // Автоматизация проектирования дискретных систем. CAD DD’2010: Материалы 7-ой междунар.
конф., Минск, 16-17 нояб. 2010. – Минск, 2010. – С. 334-341.
36. Васильев, А. Ю. Иерархический технологически инвариантный компилятор
схемы
деления
/
А. Ю. Васильев,
С. Э. Миронов,
Л. Г. Морозова,
А. К. Фролкин // Известия СПбГЭТУ «ЛЭТИ». – 2011. – Вып. 4. – С. 31-35.
37. Васильев, А. Ю. Иерархический технологически инвариантный компилятор матричного делителя / А. Ю. Васильев, С. Э. Миронов, Л. Г. Морозова,
А. К. Фролкин // Сборник работ студентов и аспирантов СПбГЭТУ «ЛЭТИ». –
2011. – С. 93-96.
38. Васильев, А. Ю. Автоматизация иерархического технологически инвариантного проектирования топологии регулярных макроблоков СБИС / А. Ю. Васильев, С. Э. Миронов // Известия СПбГЭТУ «ЛЭТИ». – 2011. – Вып. 6. – С. 5055.
39. Базарова, С. Б., Чемерисюк, А. С., Тулохонов Э. А., Гомбоев Е. Ш. Выполнение арифметических операций в АЛУ / С. Б. Базарова, А. С. Чемерисюк,
Э. А. Тулохонов, Е. Ш. Гомбоев // Практическое пособие. Улан-Удэ, ВосточноСибирский государственный технологический университет. – 2002. – С. 67.
40. Hample, D. CMOS/SOS serial-parallel multiplier / D. Hample, K. E.
McGuire, K. J. Prost // IEEE journal of solid-state circuits, 1975. – Vol. SC-10. – №. 5.
– P. 307–314.
41. Васильев, А. Ю. Оптимизация согласования топологии ячеек макроблока по габаритам и положению выводов / А. Ю. Васильев, С. Э. Миронов // Известия СПбГЭТУ «ЛЭТИ». – 2012. – Вып. 6. – С. 42-46.
165
42. Васильев, А. Ю. Автоматизация технологически инвариантного иерархического проектирования топологии регулярных макроблоков СБИС / А. Ю. Васильев, С. Э. Миронов // Компьютерные науки и информационные технологии:
Материалы междунар. науч. конф., г. Саратов, 1-4 июля 2012. – Саратов: Наука,
2012. – С. 204-208.
43. Ахо, А. В. Структуры данных и алгоритмы: Пер. с англ.: Уч. пос. /
А. В. Ахо, Д. Э. Хопкрофт, Д. Д. Ульман. – М.: Издательский дом «Вильямс»,
2000. – 384 с.
44. Patent Number 4,887,233 United State, Int. Cl. G06F 7/52; G06F 7/50. Pipeline Arithmetic Adder and Multiplier / Glenn L. Cash, Hatamian M., Adrianus
Ligtenberg; assignee American Telephone and Telegraph Company, AT&T Bell Laboratories. – appl. № 846, 145; filed 31.03.1986; data of Patent 12.12.1989. – 13 p.
45. Hatamian, M. A. 70 MHz 8-bit*8-bit parallel pipelined multiplier in
2.5 micron CMOS / M. Hatamian, G. L. Gash // IEEE J. Solid-State Circuits. - 1986. V. SC-21, № 4. – P. 505-513.
46. Duchene, P. A. Highly Flexible Sea-of- Gates Structure for Digital and Analog Application / P. Duchene, M. J. Declercq // IEEE J. of Solid-State Circuits. – 1989.
– V. 24, № 3. – P. 576-584.
47. Миронов, С. Э. Технологически инвариантная САПР топологии иерархических макроблоков КМОП СБИС / С. Э. Миронов, А. Ю. Васильев // Известия
СПбГЭТУ «ЛЭТИ». – 2013. – Вып. 1. – С. 30-34.
48. Миронов, С. Э. Средства автоматизации проектирования иерархических
макроблоков СБИС с использованием параметризированных ячеек / С. Э. Миронов, А. А. Баранов, Т. О. Ефимова, // Известия СПбГЭТУ «ЛЭТИ». – 2014. – Вып.
4. – С. 15-18.
Download