языке программирования С++ для ОС Windows XP для трассировки цепей различной ширины в двухслойных коммутационных блоках. Программа использовалась для исследования работы НГА и выявления влияния нечетких методов расчета целевой функции на работу генетических операторов.
Постановка задачи. Трассировка - это процесс соединения выводов в соответствии с налагаемыми ограничениями [1]. Трассировка ИС и СБИС делится на глобальную (назначение цепей в определенные регионы) и детальную (прокладка соединений внутри областей). Детальная трассировка делится на трассировку коммутационных блоков и трассировку каналов (рис.1) [6].
Трассировка блока
(switch box) СБИС Трассировка канала
В классической постановке коммутационный блок представляет собой область, ограниченную с четырех сторон линейками контактов (терминалов) различных цепей [2]. Задача трассировки в блоке состоит в проведении участков трасс одноименных цепей при заданных конструкторских и технологических ограничениях. Основными ограничениями являются ширина проводников, минимально допустимый интервал между цепями и фиксированный размер коммутационного блока. Терминалы в коммутационном блоке при двухслойной трассировке могут располагаться следующим образом [2]:
- терминалы доступны в обоих слоях;
- терминалы верхней и нижней линеек контактов доступны на одном слое, а терминалы правой и левой линеек контактов доступны на втором слое.
В модели коммутационного блока выделяют два направления: сеточная и бессеточная модели (рис.2).
x
У
а б
Рис.2. Модель коммутационного блока: а - сеточная, б - бессеточная
В сеточной модели терминалы располагаются вдоль линий этой сетки, проводники проходят так же по линиям сетки. Не допускаются наложения друг на друга вертикальных и горизонтальных фрагментов, принадлежащих различным цепям, не допускается их пересечение в совместном эскизе топологии.
Модель называется бессеточной, если проводники размещены только относительно осей координат. В такой модели каждый элемент коммутационного блока СБИС (участок проводника, терминал, межслойный переход) задается множеством пар координат (х, у).
Нечеткий генетический алгоритм. В нечетких генетических алгоритмах принято выделять нечеткий модуль, в типовой структуре которого можно выделить [7]:
- базу знаний, которая включает информацию, данную экспертами в форме лингвистических правил управления;
- интерфейс фаззификации (Ги221Г1са1;юп), который преобразует входные данные к нечеткому виду;
- систему вывода, которая использует их вместе с базой знаний, чтобы делать вывод по средствам заложенного метода рассуждения;
- интерфейс дефаззификации (ёеГи221йса1;юп), который преобразует полученное нечеткое решение к четкому виду.
В разработанном алгоритме используются три нечетких критерия, определяющие решение задачи трассировки. Хорошее решение подразумевает малую длину соединений, малое число переходов и/или малую межслойную емкость.
Первоначально надо определить следующие составляющие [8]: одно или несколько правил; правила предпочтения критериев; функции принадлежности для каждого критерия. Рассмотрим эти составляющие применительно к задаче трассировки.
Нечеткие правила. В алгоритме используется правило вида: ЕСЛИ длина соединений малая и (число соединений мало или емкость мала), ТО решение хорошее.
Правила предпочтения. В дополнение к нечетким логическим правилам можно ввести правила предпочтения одного критерия по отношению к другим и тем самым акцентировать на нем внимание или, наоборот, уменьшить его влияние. Правило предпочтения, применяемое в работе: малая длина соединений более предпочтительна, чем малое число переходов и малая емкость.
Слово «предпочтительно» является лингвистической переменной, которая может принимать множество лингвистических значений, таких как «сильное», «среднее» и «слабое».
Функции принадлежности. В разработанной программе используются три лингвистические переменные (нечеткое правило), для каждой из них необходимо определить функцию принадлежности. Эти три переменные будут полностью отражать топологию каждой цепи в отдельности.
Малая длина соединений. Для начала определим два экстремума значений критерия. Минимальное значение 1еп§Ь1;т1п определим при помощи алгоритма формирования начального решения, так как алгоритм ищет минимальный маршрут прокладки соединений цепи. Максимальное значение 1еп§Ь1;тах определяется на этапе генерации начальной популяции и является максимальной длиной соединений цепи во всех особях популяции. Далее нормализуем функцию принадлежности со значением 1еп§Ь1;тах.
Функция принадлежности рассчитывается по следующей формуле (ее график изображен на рис.3):
Цa (length) :=
1 if
length lengthn
lenght length
lenghtn
lengthn
-1
length lengthn
if
length
■ <-
length
-1
0 if
length
length
lengthmax lengthn
> 1
< 1 (1)
Малое число переходов. Поскольку в разработанном алгоритме используется зарезервированная модель, то минимальное число переходов у1ат1п можно определить из начальной топологии цепи, а максимальное число переходов у1атах - в начальной популяции
среди всех особей. Нормализованная функция принадлежности «малое число переходов» рассчитывается по следующей формуле (ее график отображен на рис.4):
цa (via) :=
1 if
У1а < У1а
У1а
vian
-1
if
vian
<-
У1а
< 1
У1а„
-1
У1а„
У1а„
(2)
У1а„
0 if
ц
1,0 0,8
0,6 0,4 0,2 0
vlamax
vlamax
У1а
■> 1
vian
Рис.4. График нормализованной функции принадлежности «малое число переходов»
Малая межслойная емкость. Поскольку алгоритм начальной генерации цепей не размещает их по слоям, то оценить данным способом минимальную межслойную емкость ст1п нельзя. Поэтому минимальное ст1п и максимальное стах значение определяется из начальной популяции среди всех особей. Нормализованная функция принадлежности рассчитывается по следующей формуле (ее график изображен на рис.5):
ЦA (c) :=
1 if
c_< cmin
- 1
if
< 1
(3)
-1
0 if -> 1
1,0 0,8 -
0,6 - ; \
0,4 - : \
0,2 - \
0 : \
С ■ 1 с cmax cmax
Рис.5 График нормализованной функции принадлежности «малая межслойная емкость»
тах
viamax viamin
с с
тах тах
С
С
С
С
тах
<
С
( ( тах тах
С
тах
С
тах
Модель работы нечеткого генетического алгоритма. В разработанной модели нечеткого генетического алгоритма используются нечеткие критерии для расчета нечеткой целевой функции оценки топологии каждой цепи коммутационного блока. Хромосома представляет собой альтернативную топологию коммутационного блока, размерность хромосомы равна количеству цепей в коммутационном блоке. Ген содержит топологию цепи, а именно фрагменты (горизонтальные и вертикальные, а также межслойные переходы). Таким образом, каждый ген дополняется нечетким множеством вида
\ length ; via ; C 1
| ЦA (length) ' ЦA (via) ' ЦA (c) J '
где length, via, C - суммарная длина соединений, число межслойных переходов и меж-слойная емкость цепи соответственно.
Далее необходимо преобразовать это нечеткое множество к четкому виду для конечной оценки топологии цепи на этапе дефаззификации.
Дефаззификация. Для преобразования нечеткого множества к четкому виду могут использоваться различные операции. Операции, применяемые к нечетким множествам, можно разбить на две категории: некомпенсирующие, где более «слабый» элемент не может быть компенсирован за счет более «сильного» элемента, и компенсирующие, где более «слабый» элемент влияет на результат оператора [9].
Компенсирующие операторы. Целевая функция с учетом нечеткого правила и компенсирующего оператора Дюбуа и Прейда рассчитывается по формуле
cost( x) = ц1е^(х)(ц^с (x)) , (4)
max{(^1enght(x) M"viauc (x)
где
(х) = Vvia (Х) + Vc (Х) - Vvia (x)Vc (х) - min{Vvia(x), Vc (x),(1 - а)} via^C max{(1 -Vvia(x)),(1 -Vc (x)), а}
С учетом правила предпочтения расчет осуществляется по формуле t( ) = min{P(OVlenght(x),1 - РОНЦ viatic
(x))
max{min{p0^enght(x),1 - P(0},Vvia^c(x), а} '
где p() - функция принадлежности лингвистической переменной «сильное предпочтение».
Некомпенсирующие операторы. С некомпенсирующими операторами применяется нечеткое правило, согласно которому целевая функция рассчитывается по формуле
cost( x) = min{|^enght(x),max{!^ia(x),V c (x)}}. (6)
Если использовать правило предпочтения с функцией принадлежности p() для лингвистической переменной «сильное предпочтение», целевая функция рассчитывается по формуле
cost(x) = тт^Ш^Оц^МЛ - P(0},max{|^ia( x),Цc (x)}}. (7)
Вероятностные операторы. Можно использовать следующие операторы [7, 10]: вероятностный оператор, оператор аддитивной свертки и оператор среднего арифметического.
Рассчитанная таким образом целевая функция для каждой цепи использовалась в генетических операторах, схемы использования которых представлены в [11, 12].
Экспериментальные исследования. Для оценки решений полученных НГА результаты его работы сравнивались с результатами простого генетического алгоритма трассировки коммутационных блоков. График зависимости целевой функции (ЦФ) от числа выводов в коммутационном блоке для генетического алгоритма и нечеткого генетического алгоритма представлен на рис.6. Видно, что применение нечетких методов в генетических операторах приводит к улучшению результатов от 5 до 30% (рис.7).
Число выводов Число выводов
Рис.6. Зависимость ЦФ для генетического алгорит- Рис.7. Сравнение результатов работы ГА и НГА ма (кривая 1) и нечеткого генетического алгоритма (кривая 2)
Также проводился анализ работы нечетких методов, который заключался в применении различных операторов над нечеткими множествами. Эти исследования направлены на выявление предпочтительных операторов нечеткой логики. В результате не было выявлено доминантных нечетких операторов, так как все показали приблизительно схожие результаты. Отметим, что можно выделить вероятностный и некомпенси-рующий операторы, потому что они в большей степени зависят от применяемых нечетких правил, исследования которых планируется продолжить в дальнейшем.
Кроме того, алгоритм был проверен на различных бенчмарках, таких как difficulty [13], augmented_dense [14] и др. Поскольку в алгоритме используется бессеточная модель коммутационного блока, то сравнение результатов с другими аналогами будет корректным только по критерию «число межслойных переходов» при условии использования зарезервированной «УИ»-модели.
Проведенные экспериментальные исследования для нечеткого генетического алгоритма трассировки коммутационного блока показали, что временная сложность имеет квадратичную зависимость O(N2) от числа выводов (цепей) коммутационного блока.
Представленный нечеткий генетический алгоритм трассировки цепей с различной шириной основан на использовании нечеткой целевой функции в генетических операторах, учитывает современные факторы производства СБИС и показывает достаточно хорошие результаты. Главное достоинство предложенного подхода состоит в возможности применения большого количества критериев при трассировке коммутационных
блоков, что очень важно в связи с развитием технологий изготовления электронных устройств и переходом на наноуровень. Главными задачами в настоящий момент являются разработка схемы параллельного нечеткого генетического алгоритма для задачи трассировки коммутационных блоков, а также разработка схемы внедрения нейронных сетей в генетические алгоритмы с применением нечетких методов. Все это должно оказать существенную помощь в развитии наноэлектроники, поскольку эта область находится на стадии интенсивного развития и нуждается в новых методах исследования и моделирования нанопроцессов.
Работа выполнена при частичной финансовой поддержке Министерства образования и науки РФ по программе «Развитие научного потенциала высшей школы» РНП 2.1.2/1652.
Литература
1. Shervani N. Algorithms for VLSI physical design automation. - Kluwer Academy Publisher - USA, 1995. - 538 p.
2. Malgorzata Marek-Sadowska. Electrical and Computer Engineering Department. - Santa Barbara: University of California, CA 93106, USA.
3. Курейчик В.В., Курейчик В.М., Сороколетов П.В. Анализ и обзор моделей эволюции // Изв. РАН. Теория и системы управления. - 2007. - № 5. - С. 114-126.
4. Щеглов А.Ю. Метод поинтервального учета неравнозначности разнородных параметров альтернативных вариантов сложных систем вычислительной техники // Автоматика и вычислительная техника. -1990. - № 6. - С. 10-13.
5. Курейчик В.М., Кныш Д.С. Программа нечеткого генетического алгоритма трассировки коммутационного блока с цепями различной ширины // Патент РФ № 2009610459. Опубл., 2009.
6. Pinaki Mazumder, Elizabeth M. Rudnick. Genetic algorithms for VLSI Design // Layout & Test Automation. - 2003. - ISBM 81-7808-707-3.
7. Cox E. The fuzzy systems handbook. - London: Academic Press. - 1994.
8. Adiche H. Fuzzy genetic algorithm for VLSI floorplan design // Computer engineering. - 1997.
9. Методы генетического поиска / В.А.Гладков, Л.А.Зинченко, В.В.Курейчик и др. // Под ред. В.М.Курейчика. - Таганрог: Изд-во ТРТУ, 2002. - 122 с.
10. Yager H. Fuzzy sets and approximate reasoning in decision and control // IEEE, 1992.
11. Курейчик В.М., Кныш Д.С. Нечеткий оператор кроссинговера для задачи трассировки коммутационного блока // КИИ-2008. - 2008. - Т. 3. - С. 179-191.
12. Курейчик В.М., Кныш Д.С. Нечеткий оператор селекции для задачи трассировки коммутационного блока // НСМВ-2008, 2008.
13. Burstein M. Channel routing, layout design and verification // Elsevier Science. - 1986. - P. 133-167.
14. Howard H. Chen and Emest S. Kuh. Glitter a gridless variable width channel router // IEEE Transaction on Computer-Aided Design. - 1986. - Vol. CAD-5, N. 4, October. - P. 459-465.
Статья поступила после доработки 20 мая 2009 г.
Курейчик Виктор Михайлович - доктор технических наук, профессор кафедры систем автоматизированного проектирования (САПР) ТТИ ЮФУ в г. Таганроге. Область научных интересов: генетические алгоритмы, искусственный интеллект, бионические модели.
Кныш Данил Сергеевич - аспирант кафедры САПР ТТИ ЮФУ в г. Таганроге. Область научных интересов: генетические алгоритмы, искусственный интеллект, нечеткие системы, нейронные сети. E-mail: [email protected]
УДК 621.3
Временная характеризация статических ЗУПВ КМОП, компилируемых по субмикронным проектным нормам
В.А.Бачманов, С.А.Бобриков, И.В.Заболотнов ОАО «Ангстрем-М» (г. Москва)
Рассмотрена временная характеризация готовых схемотопологиче-ских вариантов компиляторов ЗУПВ. Их количество может достигать 0,5-106. Проблема заключается в неприемлемом сочетании показателей «точность-быстродействие» всех известных алгоритмов и программ расчета сигнальных задержек, если указанный расчет выполнять для каждого варианта непосредственно в компиляторе. Предложен ряд концептуально связанных принципов, позволяющих рассматривать соотношение «точность-быстродействие» в области приемлемых компромиссов.
Блоки памяти разного класса необходимы в любой системе-на-кристалле (СнК) и допускают словарно-разрядную параметризацию своей конструкции. Поэтому их выгодно проектировать автоматически, посредством так называемых ЗУ-компиляторов.
За рубежом такого рода компиляторы, ориентированные на субмикронные технологии, уже эксплуатируются [1, 2]. Требуемые параметры ЗУ как одного из блоков СнК задают на входе компилятора, и через время порядка минуты получают схемо-топологическое решение и поведенческую модель блока в форматах САПР СнК, например Cadence, Synopsys. Получение динамических характеристик (временная характеризация) любого варианта памяти занимает время Tx < 10 с [1, 2]. В результате в дизайн-центрах существенно уменьшено время проектирования СнК и снята острота организационных и финансовых сторон получения ЗУ требуемого класса с нужными параметрами.
Аналогичные коллективы РФ такой возможности не имеют и сроки проектирования СнК неоправданно затягиваются. Разработка отечественных компиляторов памяти остается актуальной. Основная проблема подобных разработок - характеризация компилируемых вариантов ЗУ во временной области, т.е. в неприемлемом сочетании показателей эффективности «точность-быстродействие» всех известных алгоритмов расчета (моделирования) сигнальных задержек, если этот расчет выполнять для каждого варианта непосредственно в компиляторе или инициировать из него каждый раз какой-либо внешний вычислитель.
Например, при таком подходе характеризация варианта ЗУ посредством симулято-ра SPICE занимает ~ 3-102Tx - 105Tx. Применение же средств логико-временного моделирования, наоборот, сопряжено с недопустимо высоким уровнем погрешности, обусловленным наличием в принципиальной схеме ЗУ функционально значимых аналоговых режимов. В случае субмикронных проектных норм ситуация усложняется: временные таблицы, получаемые посредством SPICE для логических элементов, могут иметь пониженную достоверность, в частности, из-за малой длительности сигнальных фронтов (5-200 пс).
© Бачманов В.А., Бобриков С.А., Заболотнов И.В., 2009