Добрый день. Возник вопрос следующего характера: как правильно рассчитывать передаваемые на моделирование периметры стока и истока МОП-транзистора ps, pd (низковольтный классический КМОП , nmos со стандартной полосковой геометрией). Казалось бы это две ширины транзистора плюс два размера области под контакт.
НО: в некоторых PDK и в правилах LVS, и в расчете этих параметров для моделирования суммируются лишь ОДНА ширина + два размера под контакт (в частности xfab). Плюс к этому в документации spectre (файл spectremod.pdf) для приведенной формулы учета периметра стоковой области также показан вариант с только тремя сторонами прямоугольника.
Соответсвенно некоторые (но не все из тех, что я видел) фабрики используют именно вариант с тремя сторонами. Другие же учитывают 4 стороны. Возможно, тут все очевидно, но я не понимаю. Хотелось бы разобраться. В частности, область применения как одного, так и другого варианта расчетов.
Заранее спасибо.
Jurenja
Sep 12 2013, 05:47
Если топология транзистора не простейшая линейная, а многозатворная (много фингеров (finger) ), то в среднем на один затвор такого транзистора приходится именно такие значения площади и периметра стоков и истоков.
В случае многозатворного транзистора периметр и площадь стоков делятся пополам. Половина передается в нетлист для "левого затвора", половина для "правого". В классическом случае, когда периметр затвора определяли как (2*Wfing + 2*D) каждому затвору периметром пошло бы значение (Wfing + D). В том случае, о котором у меня задан вопрос, каждой половинке многосекционного транзистора пойдет значение (D), т.е. формальный суммарный периметр станет (2*D), т.е. на (2*Wfing )мкм меньше, чем в классическом случае.
Это я расписал для многозатворного транзистора, пример которого Вы удачно привели. Но изначальный вопрос в принципе касался одиночного транзистора.
Jurenja
Sep 12 2013, 08:18
Очевидно, что для одиночного транзистора такой метод расчета неправилен. Ошибка в дизайн ките. Правильный дизайн кит корректно считает площади и периметры и для одночного и для многозатворного транзистора.
Ошибкой PDK это вряд ли может быть. Такая развитая фабрика,как xfab вряд ли может сделать такую "детскую" ошибку. У них этот подход используется в правилах LVS, в организации схемотехнического символа элемента и в SPICE-моделях. Плюс, как я уже писал выше - этот вариант не "придуман" с головы, а описан в документации. Например, опять-таки, в описании симулятора spectre. Там расчет по трем сторонам идет, если в явном виде указана длина стоковой области (ls).
Может кто-то с таким сталкивался и разобрался?
Jurenja
Sep 12 2013, 20:04
Цитата(TiNat @ Sep 12 2013, 12:24)

... Такая развитая фабрика,как xfab вряд ли может сделать такую "детскую" ошибку...
Подскажите плз, о какой XFAB-овской технологии речь, какой транзистор и какая версия дизайн кита. Интересно взглянуть...
Я говорил про XFAB xh035, причем любого года (2007, 2009, 2012). За это время в подходе ничего не менялось. А именно: в символе элемента по умолчанию для расчета периметров стока\истока используются лишь 3 стороны диффузионной области. Далее при моделировании четвертая сторона(ширина транзистора) добавляется в сабсокете spice-модели. Но добавляется не всегда, при некоторых условиях моделирование будет идти с учетом только трех сторон. В этом по сути и заключался вопрос: когда правильно брать 3 стороны, а когда четыре.
И еще, что интересно, не зная этой их "фишки", не открывая spice-параметры, а просто руками задав периметр в символе, получится так, что в модели к тому, что я задал добавится ширина. Соответственно XFAB подразумевает, что я должен вписывать только 3 стороны (вроде как для них это само собой разумеющееся, как бы "по умолчанию"). По крайней мере я так понял.
Jurenja
Sep 14 2013, 15:06
Посмотрел кит 2011 года (v.4.3.1). Действительно, по умолчанию формулы для периметров и площадей стоков/истоков такие как вы написали, причем независимо как нарисован транзистор - одиночный затвор или многозатворная конструкция, как на рисунке выше. Ошибки расчета периметров и площадей будут. Если есть желание поправить ситуацию, то кит дает возможность в свойствах транзистора написать свою формулу в зависимости от ширины канала или просто значение.
Все-таки возможно Вы не совсем правильно поняли вопрос. Ссылка на XFAB была просто "к слову".
Цитата
Ошибки расчета периметров и площадей будут
Не будут. Внимательно почитайте мои предыдущие посты и внимательно посмотрите spice-модели.
Вопрос остается открытым.
Jurenja
Sep 17 2013, 14:31
Цитата(TiNat @ Sep 14 2013, 19:11)

Цитата(Jurenja @ Sep 14 2013, 18:06)

Ошибки расчета периметров и площадей будут
Не будут. Внимательно почитайте...
В случае четного количества затворов количества стоков и истоков будут разными, поэтому будут также разными их площади и периметры. В (ваших) формулах это не предусмотрено.
Цитата(Jurenja @ Sep 17 2013, 17:31)

В случае четного количества затворов количества стоков и истоков будут разными, поэтому будут также разными их площади и периметры.
С этим я согласен. Сразу не так Вас понял. Делаю сам что-то типа PDK. Равное и неравное количество истоков я учел. И периметр я рассчитывал по 4 сторонам. Потом посмотрел XFAB и всю транзисторную библиотеку переделал по причине: "на XFAB умные люди работают". Теперь задумался, в чем фишка расчета периметра у XFAB. Задал вопрос на форуме. До сих пор ответа не нашел, а снова переделывать транзисторы не хочется.
Jurenja
Sep 17 2013, 20:38
Цитата(TiNat @ Sep 17 2013, 21:10)

... Делаю сам что-то типа PDK. Равное и неравное количество истоков я учел. И периметр я рассчитывал по 4 сторонам. Потом посмотрел XFAB и всю транзисторную библиотеку переделал по причине: "на XFAB умные люди работают"...
Если ваши формулы считают правильно, но в XFAB-овском ките они не такие как у вас, то это значит что "умные люди на XFAB-е" ошиблись имхо. Надеюсь что версия до переделки у вас сохранилась и ее можно быстро восстановить.
PS. Вообще-то вклад емкостей p-n-переходов стоков/истоков в, например, задержки цифровых элементов составляет 20...30%. Причем, для типового лэйаута транзистора (одиночного или многосекционного), емкость периметра намного меньше емкости дна стока/истока. Поэтому ошибка XFAB-а в расчете периметра очень мало влияет на точность моделирования задержек. Ошибка в расчете площади влияет заметнее, но при проектировании стараются не заставлять работать цифровые элементы в режимах с предельным быстродействием, поэтому на заметную разницу предельного быстродействия модели и изготовленных кристаллов обычно не обращают внимания.
Цитата(Jurenja @ Sep 14 2013, 18:06)

Посмотрел кит 2011 года (v.4.3.1). Действительно, по умолчанию формулы для периметров и площадей стоков/истоков такие как вы написали, причем независимо как нарисован транзистор - одиночный затвор или многозатворная конструкция, как на рисунке выше. Ошибки расчета периметров и площадей будут. Если есть желание поправить ситуацию, то кит дает возможность в свойствах транзистора написать свою формулу в зависимости от ширины канала или просто значение.
Скорее всего я разобрался почему XFAB периметр считает по трем сторонам, и это, на мой взгляд, правильно. В Spectre для модели bsim3v3 помимо параметра cjsw (удельной емкости боковой части стокового/истокового p-n перехода) есть парметр cjswg (удельная емкость боковой части стокового/истокового p-n перехода в сторону канала транзистора). По умолчанию cjsw=cjswg (когда нет возможности определить cjswg), в этом случае периметр стоковых/истоковых областей можно считать по четрыем сторонам.
Spectre считает емкость перехода по следующей формуле: cd = ad x cjbs + pd x cjbssw – Weff x cjbssw + Weff x cjbsswg, где cjbs функция от cj, mj и pb; cjbssw функция от cjsw, mjsw и pbsw; cjbsswg функция от cjswg, mjswg и pbswg. Слудует обратить внимание на Weff -
эффективная ширина канала. Теперь представим, что в нашей топологии имеются транзисторы, у которых затвор имеет перегибы. В этом случае при экстракции необходимо учитывать изгибы (колени) затвора и пересчитывать их в эквивалентное значение ширины канала. Тогда Weff для данного транзистора не будет равно длине грани, где затвор соприкасается с областью стока (истока). Поэтому правильно будет считать периметр по трем сторонам, а в файле модели (в subckt) к рассчитанному периметру добавлять рассчитанное значение Weff. В этом случае будет учтена ошибка (резность длины грани, где затвор соприкасается с областью стока (истока),и Weff). Если транзисторы в design kit запрещено рисовать с перегнутыми затворами, то в этом случае pd и ps можно считать по четырем сторонам.
Полное название параметров ps, pd - "Source diffusion periphery", "Drain diffusion periphery". Думаю, это периметр областей истока (стока) по сторонам диффузионной области, куда не входит сторона, примыкающая к затвору. Поэтому считают только одну ширину.
Вообще на практике увеличение ps, pd на одну ширину почти не влияет на результаты моделирования.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.