Домой
назад Оглавление вперед




[стр.-0]

Точная табличная модель компонентов ИС для моделирования аналоговых ИС

Белугин С.С. (puerco@mail.ru), Кокин С.А.

ООО «Юник Ай Сиз» Введение

Непосредственное использование современных компонентных моделей полупроводниковых приборов, например BSIM3, BSIM4 [1,2], для схемотехнического (Spice) моделирования ограничивается вычислительными ресурсами. Альтернативой являются табличные модели компонентов интегральных схем (ИС) [3]. Такие модели состоят из многомерных массивов, в которых хранятся экспериментально полученные точки вольтамперных, вольтфарадных характеристик, и алгоритм их извлечения и обработки.

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

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

1). Требуется большой объем машинной памяти для хранения табличных данных.

2). Получаемые из таблиц характеристики элемента (транзистора) должны перекрывать весь

диапазон изменения входных воздействий, необходимых при моделировании схемы.

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

точность.

Особенности сплайн интерполяции моделей компонентов ИС

В дальнейшем для простоты ограничимся построением табличной модели, для вычисления статической ВАХ MOП-транзистора. В качестве исходной возьмем модель описанную в [1]. В общем случае выражение для тока канала записывается в виде:

ids = f(vds,vbs,vgs).(1)

ids - ток между стоком и истоком, vgs - разность потенциалов затвора и истока, vbs - разность потенциалов подложки и истока, vds - разность потенциалов стока и истока. Сначала создается таблица значений функции (1) для дискретных значений переменных vdst, vgsj и vbsk. Она представляет собой трехмерный параллелепипед, разбитый по координатам vds, vgs и vbs на ячейки qij. Каждая из них ограничена диапазоном:

vdsx < vds < vdst+1,

vgsj < vgs < vgsj+1,(2)

vbsk < vbs < vbsk+1.

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


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

Рассмотрим сплайн интерполяцию кубическим трехмерным эрмитовым сплайном [4] применительно к таблично заданной функции (1). Таким сплайном называется функция s3j(x,y,z) = s3j3(f;x,y,z), которая в каждом из параллелепипедов f2ij,k = [xu xi+1] х [yu yi+1] x [zu zj+i] (в нашем случае x=vds, y=vgs, z=vbs) имеет вид:

= t(x - x,)r * £ (y - y})r * £(z - zk)),(3)

r=0r=0r=0

i - текущий шаг по координате Vds, j - текущий шаг по координате Vgs, k - текущий шаг по координате vbs, ar, b} , crk - коэффициенты сплайна. r=0,1,2,3. Переменные сплайна в текущей ячейке ограничены диапазоном значений (2).

Форма записи сплайна вида (3) содержит 12 неизвестных коэффициентов для каждой ячейки, которые необходимо предварительно вычислить, накладывая на сплайн условия интерполяции. Нам необходимо вычислить коэффициенты a\, bJr, ckr. Используем тот факт, что при фиксированных значениях двух переменных сплайн s3t3(x,y,z) и его первая производная по оставшейся переменной превращаются в одномерные эрмитовы кубические сплайны относительно третьей переменной. Поэтому:

£r,°S„(x,,yq,z) = s,[dr,0f (xp,yq,z);z], r = 0,1;p=i,i+1; q=jj+1.(4)

d -оператор дифференцирования. Формула (4) означает, что производная сплайна равна сплайну производной. Это обстоятельство освобождает нас от необходимости интерполировать функции проводимостей транзистора и его емкостей, поскольку они представляют собой производные функций токов и зарядов. И для получения их значений достаточно будет взять производную соответствующего сплайна в заданной точке.

Таким образом, с помощью (4) из (3) можно вывести четыре одномерных сплайна:

s1jk = a0 + a1*(vds- vds1) + a2*(vds - vds1 )2 + a3*(vds- vds1 )3(5)

s\ijk = S33[f (vds,vgsj,vbsk);Vds] - сплайн (4) при vgs= vgsj и vbs= vbsk.

S2, jk = b0 + b1* (vds - vds1) + b2* (vds - vds1 )2 + b3* (vds - vds1 )3(6)

дд

s2jk = rr-S3[f(Vds,Vgsj,Vbsk);vds] = S3 37-f(Vds,Vgsj,Vbsk);vds] - сплайн вида (4) от dvgs dvgs

производной функции (1) при vgs= vgsj и vbs= vbsk.

s3ijk = c 0 + C1* (Vgs - vgs}) + c 2* (Vgs - vgs} )2 + c 3* (Vgs - vgs} )3(7)

s3ijk = S33[f(vdsi,vgs,vbsk);Vgs]- сплайн (4) при vds= vdsi и vbs= vbsk.

s4jk = d0 + D1* (Vbs - vbsk ) + D2* (Vbs - vbsk )2 + D3* (Vbs - vbsk )3(8)

s4ijk = S33[f(vdsi,vgsj,Vbs);Vbs] - сплайн (4) при vds= vdsi и vgs= vgsj.

Где a0, a1, a2, a3 - коэффициенты одномерного сплайна slijk, а b0, b1, b2, b3; c0, c1, c2, c3и d0, d1, d2, d3 - коэффициенты одномерных сплайнов s2ijk, s3ijk и s4ijk соответственно. Чтобы

вычислить эти коэффициенты, на каждый одномерный сплайн накладываем следующие условия интерполяции:


\st[f (x), xt ] = f (xt)

S1[f(x) = f (x+1

dSJ f ( x), xi ]

)

Здесь x - переменная одномерного фиксированные переменные. В случае

dx

f ( x), xt+1] dx

сплайна, а (6) f ( x)

f( x,+1)

f(x) = f(x,y,r)

df (x, y г)

где y,z оставшиеся две

dx

s1 [f (x), x] - один из сплайнов,

представленных в (5) - (8). После решения системы (9) для каждого одномерного сплайна находятся соответствующие ему коэффициенты. После подстановки их в (5)- (8) можно выделить 12 уравнений для 12 искомых коэффициентов a\, b1

\a0 * b0* c0 = A0

r 1 r •

a1* b0* c0 = la 2* b0* c0 a3* b0* c0:

b1* c0 * a0 b1* c0 * a1 = a2 * b1* c0

l a0* b2* c0

a0 * b3 * c0

a0* b0* c1 = a0* b0* c2 a0* b0* c3:

= 2 = 3 b0 b1 b2 --c 2

c3

d1

--d 2

d3

(10)

Система (10) является нелинейной. Проведенные исследования показали, что применение метода Ньютона и прочих итерационных методов решения нелинейных систем в нашем случае крайне не желательно, поскольку решение зависит от удачного выбора начальных условий и может расходиться. Более того, на практике система (10) зачастую является вырожденной. Для нас важно гарантированно получить точное решение. Этого можно добиться только выводом аналитических формул для неизвестных системы (10). Для этого коэффициенты a0 и b0 зададим равными 1, и после подстановки в (10) найдем остальные коэффициенты. Правильность решения от этого не пострадает, поскольку все 12 равенств в (10) будут выполняться. Систему (10) можно назвать условиями интерполяции, определяемыми расчетом одномерных сплайнов вида 5 - 8. В таком способе расчета коэффициентов возникает опасность деления на ноль. При a0=0 c0=0, а при определении остальных коэффициентов происходит деление на с0. Эту проблему можно избежать, проанализировав интерполируемую функцию.

Из (5) и (9) следует, что a0 = f(vdsi,vbsj,vgsk). Функция канального тока такова, что точному нулю она равняется при vds = 0, при этом vgs и vbs могут принимать любые значения. В этой точке при фиксированном и равном нулю vds сплайны (7) и (8) тоже равны нулю, поскольку в общем случае они заменяют функцию канального тока. Тогда коэффициенты этих сплайнов с и d можно обнулить. Для решения системы (10) в этом случае приравняем b0 и с0 единице, тогда a0=0. Неизвестные коэффициенты, которые получаются посредством деления правых частей на a0, тоже можно обнулить, поскольку в правых частях этих уравнений стоят нулевые коэффициенты c и d. На рис.1 представлена интерполяция функции канального тока.



[стр.Начало] [стр.1] [стр.2] [стр.3]
пеноблоки производство