РУС | УКР | ENG
Автореферат Биография Ссылки Отчет по поиску Индивидуальное задание

В библиотеку    На главную

УДК 681.325, Информационные технологии, № 9. 1997, - с. 12-16.

Алгоритм ключевого временного моделирования с оценкой мощности
Ю.Б. Егоров, А.В. Зиновьев
НИИ систем автоматизированного проектирования РЭА и СБИС Российской Академии наук (НИИСАПРАН)

Ключевое моделирование является широко используемым средством, применяемым при проектировании цифровых МОП-схем. Программы ключевого моделирования работают намного быстрее, чем программы схемотехнического моделирования и обеспечивают результаты, подходящие для первоначальной оценки логического и временного поведения схемы. В настоящее время в связи с переходом к субмикронным проектным нормам и с ростом рабочих частот возникает необходимость в повышении точности методов, применяемых для временной верификации проекта.

Традиционные способы ключевого моделирования [4], [5] подходят только для функциональной верификации МОП-схем и в них обычно используется временная модель с нулевой задержкой. С помощью таких простых способов моделирования нельзя правильно обрабатывать схемы в сложных случаях, когда используются специфические для МОП-схем эффекты, например хранение информации на паразитных емкостях, использование отношения сопротивлений проводящих путей для формирования логического сигнала и т.д. Более того, с помощью любого способа моделирования, использующего принцип преобладания сильнейшего сигнала, можно успешно предсказать лишь логическое поведение и лишь для ограниченного класса схем. Попытки учесть временные свойства схемы в простых алгоритмах ключевого моделирования обычно ограничиваются использованием заранее построенных моделей вентилей с уже вычисленными задержками и длительностями фронтов выходного сигнала. В то же время наиболее важные типы интегральных схем, такие как оперативная память или микропроцессоры, часто проектируются вручную с целью обеспечения максимальной производительности и не состоят из предварительно спроектированных вентилей.

В последнее время разработано несколько методов, которые не нуждаются в предварительно построенных временных моделях вентилей, таким и методами непосредственно вычисляют временные характеристики поведения схемы из ее транзисторного описания. Среди них можно отметить Elogic [I], Rsim [2] и Mom [3]. К сожалению, все они имеют недостатки, которые ограничивают возможности их использования.

Elogic использует только непосредственное взаимодействие между соседними узлами в схеме. Он работает подобно алгоритму Гаусса-Зейделя, но не использует итераций при решении. В результате простейший из алгоритмов серии Elogic сталкивается с трудностями при моделировании схем с сильными связями между соседними узлами. Более сложные алгоритмы Elogic справляются с такими схемами лучше, но работают намного дольше.

Rsim использует простейшую модель транзистора, в результате временная ошибка обычно составляет около 15 % от ошибки при работе с программой SPICE, но иногда может возрастать до 30 %. Rsim использует только три дискретных уровня напряжения (0,1, X), что затрудняет включение Rsim в состав программы смешанного моделирования, а также приводит к погрешностям при оценке потребляемой мощности с учетом сбоев и гонок.

Mom - улучшенная версия Rsim - использует непрерывное аналоговое представление напряжения и модельного времени, более сложную кусочно-линейную модель транзистора. В результате Mom достигает лучших результатов, чем Rsim. Для расчета переходных процессов в схеме Mom использует аппроксимации AWE [6] высокого порядка, что улучшает его точность. Однако AWE-метод аппроксимирует Лапласовское изображение передаточной функции схемы при s = 0, что соответствует t = ~ во временной области. Это снижает преимущество использования аппроксимаций высокого порядка для схем, содержащих элементы с кусочно-линейными характеристиками, которые меняют свои параметры во время переходного процесса. Также Mom может успешно обрабатывать схемы лишь древовидной структуры и использует разрезание схемы, если структура не древовидная. Разрезание схемы вносит дополнительные погрешности в получаемые результаты.

В этой статье описывается новый подход, в котором объединяются достоинства перечисленных выше методов. При таком подходе используется непрерывное аналоговое представление напряжения и времени, в результате чего полученный алгоритм может быть легко включен в состав системы смешанного моделирования. Этот алгоритм не нуждается в предварительном построении временных моделей логических вентилей. Он не использует разрезание схемы, но может успешно обрабатывать и древовидные, и не древовидные структуры, кроме того, оценивает потребляемую схемой мощность.

Этот подход реализован в экспериментальной программе ключевого моделирование. Некоторые примеры ее использования приведены ниже.

Модели элементов

В описании схемы допускаются четыре вида элементов. Это пМОП - и рМОП - транзисторы, резисторы и конденсаторы. Один из выводов конденсатора должен быть подключен к источнику постоянного сигнала или к земле. В отличие от простых методов ключевого моделирования [4], [5] здесь используются реальные значения сопротивлений и емкостей для каждого элемента схемы. Для транзисторов используются табличные модели. Фактически для каждого типа транзистора хранятся четыре различные таблицы. Одна таблица описывает электрические свойства канала транзистора и содержит данные о токе через канал и его сопротивлении. Три другие таблицы хранят данные о емкостях затвора, стока и истока транзистора. Обычно программы ключевого моделирования используют некоторые средние значения этих паразитных емкостей для упрощения вычислений. В данном подходе используются фактические значения. Известно, что значения этих емкостей сильно зависят от напряжений на контактах транзистора. Эта зависимость существенно влияет на форму сигналов и на вычисленные временные характеристики (задержки, длительности фронтов).

Каждая из этих таблиц построена на сетке, шаг которой указывается пользователем для того, чтобы получить требуемое соотношение точность/скорость. Шаг сетки всегда выбирается постоянным для ускорения получения реального интерполированного значения.

Мы используем масштабирование транзисторов на величину L/W для сокращения числа необходимых для моделирования таблиц. Это допущение работает достаточно хорошо, пока различные граничные эффекты не играют большой роли. В противном же случае масштабирование можно отключить.

Все таблицы строятся с использованием точных аналитических моделей непосредственно перед моделированием. Это позволяет работать с моделями любого уровня сложности. На ключевом уровне используется модель, которая содержит источник тока и резистор, включенные между контактами стока и истока (рис. 1). Параметры этих двух элементов вычисляются для каждого режима работы транзистора. Пусть точная модель транзистора описывается следующими уравнениями:

тогда используется двухкомпонентная замена с параметрами




Рис. 1. Модель МОП транзистора

где Ids - ток через канал транзистора (точная модель); Vgs - напряжение затвор - исток; Vds - напряжение сток -исток; Vth - пороговое напряжение транзистора; Idsl - ток через канал транзистора в линейном режиме (точная модель); Idss - ток через канал транзистора в режиме насыщения (точная модель); It - ток источника (ключевая модель); Rt - сопротивление резистора (ключевая модель).

Процесс моделирования

Процесс моделирования состоит из трех стадий: подготовки, инициализации и расчета переходного процесса.

Во время подготовки вычисляются параметры элементов и строятся таблицы и структуры, которые описывают схему. При этом используется разделение схемы на группы связанных по постоянному току компонентов (DCCC-группы). Также строятся отношения зависимости между узлами в разных DCCC-группах. Если изменение напряжения на одном из таких узлов непосредственно может приводить к изменению напряжения на другом, то первый называется управляющим, а второй - управляемым.

Инициализация и расчет переходного процесса отличаются друг от друга только используемой временной моделью и набором входных сигналов. Во время инициализации в качестве входных воздействий применяются источники постоянного напряжения, значения которых соответствуют напряжениям в начальный момент времени, используется также временная модель с нулевой задержкой. Во время расчета переходного процесса используются входные воздействия, указываемые пользователем программы, а также временная модель с фактическими значениями задержек.

Так же, как и в других подходах к ключевому моделированию, используется событийный механизм селективной трассировки активности. DCCC-группа является единицей планирования. Когда прогнозируется изменение напряжения какого-либо узла, DCCC-группа, которая содержит этот узел, планируется для последующей обработки и помещается в упорядоченный во времени календарь событий. Кратко алгоритм моделирования выглядит следующим образом (псевдокод):

algorithm transient simulation( circuit) {
  put stimuli io the time queue (queue);
  while queue is not empty and simulation period is not expired {
    event = get next event( queue };
    process_DCCC_group( event->group, event->time):
    foreach fanout of event->group
      if inputs of fanout are changed enough
        process_DCCC_group(fanout, event->time);
}

procedure process_DCCC_group( group, time ) {
  foreach node in group
    update voltage( node, time);
  foreach element in group
    calculate parameters( element);
  if group is tree {
    calculate moment P1( group->root, m1 ):
    calculate moment P2( group->root, m1 );
    calculate moment P1( group->root, m0 );
    calculate moment P2( group->root, m0 );
  } else
    solve_LUsystem for moments( group);
  dt_min= ~:
  foreach node in group
  if different(node->v, node->m1) {
    next_v = next_voltage_level(node->v, node->m1);
    dt = node->m0/node->m1*
      ln ((next_v-node->m1)/(node->v-node->m1));
    dt_min = min(dt, dt_min);
  }
  schedule_DCCC_group( group, time+dt_min),
}

procedure calculate_moment_P1( vertex, moment) {
  Sg = 0:
  vertex->i = 0;
  if vertex has children {
  foreach child of vertex {
    calculate_moment_PI (child, moment);
    It = edge_current( vertex, child):
    Rt = edge_resistance( vertex, child);
    vertex->i += It;
    if child->node is driven {
      Sg += 1/(child->r + Rt);
      vertex->i += (child->r*child->r+It*Rt)/(child->r+Rt);
    } else {
      Sg += 1/Rt;
      if moment == m0
        vertex->i += It;
      else
        vertex->i += (child->v+shift)/Rt + It;
      }
    }
    vertex->r = 1/Sg;
    if moment == m0;
      vertex->i -= vertex->node->m1* vertex->node->c;
  } else if vertex->node is driven {
      vertex-> = 0;
      vertex->r = ~;
}

procedure calculate_moment_P2( vertex, moment) {
  if vertex->node is driven {
    if vertex has parent {
      It = edge_current( vertex, parent);
      Rt = edge_resistance( vertex, parent):
      vertex->node->moment = vertex->r* (parent->node->moment)
         + (vertex-i-It)*Rt)/(vertex->r+Rt):
    } else
      vertex->node->moment = vertex->r*vertex->i:
  }
  foreach child of vertex
    calculate_moment_P2( child, moment):
}

В данном алгоритме используются две вспомогательные функции, являющиеся достаточно традиционными и не требующие детального описания. Функция solve _LUsystemfor_noments решает систему линейных алгебраических уравнений, описывающих не древовидную DCCC-группу методом LU-разложения с правыми частями, соответствующими моментам m1 и m0. Функция schedule_DCCC_group помещает в календарь событий информацию о том, что указанная группа планируется для обработки.

Для вычисления параметров переходного процесса одной DCCC-группы используется основанный на AWE метод совпадения временных моментов. Но в отличие от метода Mom в данном подходе никогда не используется порядок аппроксимации выше первого. В то время как увеличение используемого порядка аппроксимации на единицу требует почти в 10 раз больших вычислительных затрат [З], при AWE-методе аппроксимируется Лапласовское изображение функции цепи при s = 0, в этом случае максимальная ошибка соответствует точке t = 0. Это снижает положительный эффект от применения аппроксимации высокого порядка для схем, содержащих элементы с кусочно-линейными вольт-амперными характеристиками, так как параметры таких элементов меняются в течение переходного процесса.

Для вычисления временных моментов используется модифицированный вариант алгоритма прохождения дерева [З], при этом вычисления параметров эквивалентных двухполюсников всех узлов дерева упрощены и оптимизированы для используемой модели транзистора (рис. 2). Если DCCC-группа имеет не древовидную структуру, то вместо разрезания схемы используется LU-разложение матрицы подсхемы. Это занимает несколько больше времени, но обычно для большинства схем, представляющих практический интерес, число таких подсхем невелико и размерность матрицы невелика.

После вычисления моментов m1 и m0 график напряжения в узле аппроксимируется экспонентой. В качестве асимптоты используется величина m1, а в качестве постоянной времени -величина (-m0/m1). При этом возникает проблема, если асимптотически решение стремится к нулю при t - ~. Чтобы избежать такой ситуации к напряжению каждого узла схемы добавляется некоторое поправочное значение с тем, чтобы асимптотическое решение никогда не было равно нулю:

r2 = r1 + Rt                             (4)
i2 = (i1*r1 + It*Rt) / (r1 + Rt)         (5)
v1 = (v2 + (i1-It)*Rt)*r1 / (r1 + Rt)    (6)

После вычисления параметров переходного процесса DCCC-группа и все управляемые ею группы планируются для дальнейшей обработки, если значение напряжения в соответствующих узлах изменилось в достаточной степени. Смысл термина "в достаточной степени" определяется пользователем для любых частей схемы с целью достижения требуемого уровня точности и скорости расчета.

Таким образом, процесс моделирования цикличен, а результирующие графики напряжений в узлах имеют кусочно-экспоненциальную форму. Моделирование прекращается, когда либо в календаре не оказывается больше спрогнозированных и не отработанных событий, либо модельное время оказывается больше некоторого заданного значения.

В процессе моделирования описываемый алгоритм оценивает мощность, потребляемую схемой. В настоящее время используется простейшая мощностная модель, которая учитывает только мощность, расходуемую на перезаряд емкостей. Всякий раз, когда напряжение в каком-либо узле меняется, к общей энергии, рассеиваемой схемой, добавляется величина

ei = C*(Vnew^2 - Vold^2)                (7)

если Vnew > Vold. Здесь С - емкость узла, Vnew и Vold - соответственно новое и старое значения напряжения в узле.

Pиc. 2. Вычисления параметров эквивалентного двухполюсника

Примеры

Несколько примеров использования описанного алгоритма представлены в этом разделе. Первый пример-моделирование логической КМОП-схемы 2И. Результаты моделирования показаны на рис. 3. На нем одновременно изображены: сигнал на переключившемся входе вентиля (сплошная жирная линия), выходной сигнал при моделировании с помощью полностью аналогового, подобного используемому в Spice алгоритма (сплошная тонкая линия), и выходной сигнал при моделировании с помощью описанного алгоритма ключевого моделирования (штриховая тонкая линия). Результаты оказываются практически неразличимыми приданном масштабе отображения, погрешность оценки задержки по уровню 50 % составляет менее 2 %. На рис. 4 изображены результаты моделирования схемы исключающего ИЛИ на проходных транзисторах. Как было отмечено в литературе [7], если этот вентиль имеет один слабый входной инвертор, то обыкновенные программы ключевого моделирования терпят неудачу при анализе данной схемы. Результаты, обеспечиваемые нашим алгоритмом, совпадают с результатами моделирования Spice.

Рис. 3. Моделирование вентиля 2И

Рис. 4. Моделирование вентиля EXOR

Для определения выигрыша по быстродействию по сравнению с методами аналогового моделирования тестировалась схема восьмиразрядного КМОП-умножителя. Эта схема содержит около 2000 МОП-транзисторов и около 900 узлов. Входной тест содержит 18 тактов, причем входные вектора подобраны таким образом, чтобы обеспечить активность большей части схемы. Программа точного аналогового моделирования (типа Spice) затрачивает около 90 мин процессорного времени компьютера Pentium-100 для нахождения решения. Экспериментальная программа, использующая наш алгоритм, работает более чем на два порядка быстрее даже при низком уровне латентности схемы и затрачивает около 40 с для получения результатов. Временные характеристики этой программы отличаются от точных менее чем на 10%.


Описанный в этой статье новый алгоритм временного ключевого моделирования моделирует временное поведение цифровых КМОП-схем на два-три порядка быстрее, чем известные программы аналогового моделирования. Погрешность получаемых результатов находится в пределах 10 %. Описанный способ оценивает также потребляемую схемой мощность. Используемое аналоговое представление модельного времени и потенциалов узлов позволяет легко включить его в состав программы смешанного моделирования.

Список литературы

  1. Kirn Y., KIcchncr J.E., Salch R.A., Newton A.R. Electrical-logic simulator. International Conference on Computer-Aided Design, Santa-Clara. Nov. 1984. CA. Pp. 7-10.
  2. Tcrnian С. RSIM - a logic-level timing simulator. / Proc. Int'l СопГ. Computers and Design. 1983.
  3. Kao R., Horowitz M. Timing analysis for piecewise linear Rsim // IEEE Trans. Computer-Aided Design. Vol. CAD-13, no. 12. Dec. 1994. Pp. 1498-1512.
  4. Bryant R.E. A switch-level model and simulator for MOS digital systems//IEEE Trans. Comput. Vol. C-33. Feb. 1984. Pp. 160-177.
  5. Barzilai Z. ct al. SLS - a fast switch-level simulator. // IEEE Trans. Computer-Aided Design. Vol. CAD-7, no 8. Aug. 1988. Pp. 838-849.
  6. Pillage L., Rohrcr R. Asymptotic waveform evaluation for timing analysis // IEEE Trans. Computer-Aided Design, Vol. CAD-9, no 4. Apr. 1990. Pp. 352-366.
  7. Svcnsson С., Tjarnstrom R. Switch-level simulation and the pass transistor EXOR gate// IEEE Trans. Computer-Aided Design. Vol. CAD-7, no. 9, Sep. 1988. Pp.994-997.

Наверх

Автореферат Электронная библиотека Ссылки Отчет по поиску Биография